diff --git a/.github/semantic.yml b/.github/semantic.yml new file mode 100644 index 000000000..be3439f6b --- /dev/null +++ b/.github/semantic.yml @@ -0,0 +1,3 @@ +enabled: true +titleOnly: true +targetUrl: "https://www.conventionalcommits.org/en/v1.0.0/#summary" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 95fd24cf0..5bbffc88e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: echo "NEXT_VERSION=$nextStrict" >> $GITHUB_ENV - name: Create Draft Release - uses: ncipollo/release-action@v1.11.1 + uses: ncipollo/release-action@v1.12.0 if: ${{ github.event.inputs.publish == 'true' && github.event.inputs.dryrun == 'false' }} with: prerelease: true @@ -368,10 +368,11 @@ jobs: histCoveragePath: historical-coverage.json - name: Create Release - uses: ncipollo/release-action@v1.11.1 + uses: ncipollo/release-action@v1.12.0 if: ${{ env.SHOULD_DEPLOY == 'true' && github.event.inputs.dryrun == 'false' }} with: allowUpdates: true + makeLatest: true draft: false tag: ${{ env.PKG_VERSION }} name: ${{ env.PKG_VERSION }} @@ -384,7 +385,6 @@ jobs: if: ${{ github.event.inputs.updateCoverage == 'true' && github.event.inputs.dryrun == 'false' }} with: allowUpdates: true - makeLatest: true tag: baseline omitBodyDuringUpdate: true omitNameDuringUpdate: true diff --git a/.github/workflows/dev-db-nightly.yml b/.github/workflows/dev-db-nightly.yml index b7b1b470d..128780544 100644 --- a/.github/workflows/dev-db-nightly.yml +++ b/.github/workflows/dev-db-nightly.yml @@ -122,11 +122,18 @@ jobs: - uses: actions/checkout@v3 with: ref: 'feat/postgres' - + - name: Migrate - run: | - chmod +x ./docker/scripts/db-pg-migrate.sh - sh ./docker/scripts/db-pg-migrate.sh + uses: nick-fields/retry@v2 + with: + timeout_minutes: 30 + max_attempts: 3 + command: | + chmod +x ./docker/scripts/db-pg-migrate.sh + sh ./docker/scripts/db-pg-migrate.sh + on_retry_command: | + psql -U django -h pgdb -d ietf -v ON_ERROR_STOP=1 -c '\x' -c 'DROP SCHEMA ietf_utf8 CASCADE;' + rm -f cast.load - name: Upload DB Dump uses: actions/upload-artifact@v3 diff --git a/.pnp.cjs b/.pnp.cjs index b2d1cbfc9..46892da0d 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -50,41 +50,41 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@twuni/emojify", "npm:1.0.2"],\ ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.2.0"],\ ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3"],\ - ["bootstrap-icons", "npm:1.10.2"],\ + ["bootstrap-icons", "npm:1.10.3"],\ ["browser-fs-access", "npm:0.31.1"],\ ["browserlist", "npm:1.0.1"],\ ["c8", "npm:7.12.0"],\ - ["caniuse-lite", "npm:1.0.30001439"],\ - ["d3", "npm:7.7.0"],\ - ["eslint", "npm:8.29.0"],\ + ["caniuse-lite", "npm:1.0.30001442"],\ + ["d3", "npm:7.8.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.0.0"],\ ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.12.1"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ - ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.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.8.0"],\ ["file-saver", "npm:2.0.5"],\ ["highcharts", "npm:10.3.2"],\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.10.1"],\ - ["jquery", "npm:3.6.2"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.12.2"],\ + ["jquery", "npm:3.6.3"],\ ["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.0"],\ ["jquery-ui-dist", "npm:1.13.2"],\ ["js-cookie", "npm:3.0.1"],\ ["list.js", "npm:2.3.1"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ - ["luxon", "npm:3.1.1"],\ + ["luxon", "npm:3.2.1"],\ ["moment", "npm:2.29.4"],\ ["moment-timezone", "npm:0.5.40"],\ ["ms", "npm:2.1.3"],\ ["murmurhash-js", "npm:1.0.0"],\ - ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.2"],\ + ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.3"],\ ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.8.2"],\ ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.0.28"],\ ["pinia-plugin-persist", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:1.0.0"],\ ["pug", "npm:3.0.2"],\ - ["sass", "npm:1.56.2"],\ + ["sass", "npm:1.57.1"],\ ["seedrandom", "npm:3.0.5"],\ ["select2", "npm:4.1.0-rc.0"],\ ["select2-bootstrap-5-theme", "npm:1.3.0"],\ @@ -169,10 +169,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10", {\ - "packageLocation": "./.yarn/__virtual__/@css-render-plugin-bem-virtual-ca2408adfb/0/cache/@css-render-plugin-bem-npm-0.15.10-41ccecaa2f-cbab72a7b5.zip/node_modules/@css-render/plugin-bem/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10", {\ + "packageLocation": "./.yarn/__virtual__/@css-render-plugin-bem-virtual-1bbf78173b/0/cache/@css-render-plugin-bem-npm-0.15.10-41ccecaa2f-cbab72a7b5.zip/node_modules/@css-render/plugin-bem/",\ "packageDependencies": [\ - ["@css-render/plugin-bem", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10"],\ + ["@css-render/plugin-bem", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10"],\ ["@types/css-render", null],\ ["css-render", "npm:0.15.10"]\ ],\ @@ -191,10 +191,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10", {\ - "packageLocation": "./.yarn/__virtual__/@css-render-vue3-ssr-virtual-864cfc3967/0/cache/@css-render-vue3-ssr-npm-0.15.10-b8526cc313-7977e0c440.zip/node_modules/@css-render/vue3-ssr/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10", {\ + "packageLocation": "./.yarn/__virtual__/@css-render-vue3-ssr-virtual-75d553c878/0/cache/@css-render-vue3-ssr-npm-0.15.10-b8526cc313-7977e0c440.zip/node_modules/@css-render/vue3-ssr/",\ "packageDependencies": [\ - ["@css-render/vue3-ssr", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10"],\ + ["@css-render/vue3-ssr", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10"],\ ["@types/vue", null],\ ["vue", "npm:3.2.45"]\ ],\ @@ -233,14 +233,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@eslint/eslintrc", [\ - ["npm:1.3.3", {\ - "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-1.3.3-9e3a462140-f03e9d6727.zip/node_modules/@eslint/eslintrc/",\ + ["npm:1.4.1", {\ + "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-1.4.1-007f670de2-cd3e5a8683.zip/node_modules/@eslint/eslintrc/",\ "packageDependencies": [\ - ["@eslint/eslintrc", "npm:1.3.3"],\ + ["@eslint/eslintrc", "npm:1.4.1"],\ ["ajv", "npm:6.12.6"],\ ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ ["espree", "npm:9.4.0"],\ - ["globals", "npm:13.15.0"],\ + ["globals", "npm:13.19.0"],\ ["ignore", "npm:5.2.0"],\ ["import-fresh", "npm:3.3.0"],\ ["js-yaml", "npm:4.1.0"],\ @@ -339,7 +339,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@fullcalendar/luxon2", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.11.3"],\ ["@fullcalendar/common", "npm:5.11.3"],\ ["@types/luxon", null],\ - ["luxon", "npm:3.1.1"],\ + ["luxon", "npm:3.2.1"],\ ["tslib", "npm:2.4.0"]\ ],\ "packagePeers": [\ @@ -405,10 +405,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@humanwhocodes/config-array", [\ - ["npm:0.11.7", {\ - "packageLocation": "./.yarn/cache/@humanwhocodes-config-array-npm-0.11.7-fa83ecd27f-cf506dc45d.zip/node_modules/@humanwhocodes/config-array/",\ + ["npm:0.11.8", {\ + "packageLocation": "./.yarn/cache/@humanwhocodes-config-array-npm-0.11.8-7955bfecc2-0fd6b3c54f.zip/node_modules/@humanwhocodes/config-array/",\ "packageDependencies": [\ - ["@humanwhocodes/config-array", "npm:0.11.7"],\ + ["@humanwhocodes/config-array", "npm:0.11.8"],\ ["@humanwhocodes/object-schema", "npm:1.2.1"],\ ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ ["minimatch", "npm:3.1.2"]\ @@ -1883,10 +1883,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fdf68f1c9ed6d3f4d0cc171ccde72d64c557f4597d23823af77249d92d02fba30826705ed7601dac52f4b714700e596a202b388b79b16ac8ce3faf54eb780dd1#npm:2.0.0", {\ - "packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-db57922bf1/0/cache/@sidvind-better-ajv-errors-npm-2.0.0-3531bddef9-12b0d87855.zip/node_modules/@sidvind/better-ajv-errors/",\ + ["virtual:ef051354894d83cc0cda7d7a4a6eca604681f35eb8f2a25fe305435ac599a4d71af04fcaa26daa3f5aa064e73442d202ba9dfbda5c3f8c7b1daf472f3a17da86#npm:2.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-65bece6091/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:fdf68f1c9ed6d3f4d0cc171ccde72d64c557f4597d23823af77249d92d02fba30826705ed7601dac52f4b714700e596a202b388b79b16ac8ce3faf54eb780dd1#npm:2.0.0"],\ + ["@sidvind/better-ajv-errors", "virtual:ef051354894d83cc0cda7d7a4a6eca604681f35eb8f2a25fe305435ac599a4d71af04fcaa26daa3f5aa064e73442d202ba9dfbda5c3f8c7b1daf472f3a17da86#npm:2.0.0"],\ ["@babel/code-frame", "npm:7.16.7"],\ ["@types/ajv", null],\ ["ajv", "npm:8.11.0"],\ @@ -2549,10 +2549,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["bootstrap-icons", [\ - ["npm:1.10.2", {\ - "packageLocation": "./.yarn/cache/bootstrap-icons-npm-1.10.2-09a829eafa-1d73556a70.zip/node_modules/bootstrap-icons/",\ + ["npm:1.10.3", {\ + "packageLocation": "./.yarn/cache/bootstrap-icons-npm-1.10.3-d595a95ca4-bef7f83ce0.zip/node_modules/bootstrap-icons/",\ "packageDependencies": [\ - ["bootstrap-icons", "npm:1.10.2"]\ + ["bootstrap-icons", "npm:1.10.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -2714,10 +2714,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:1.0.30001439", {\ - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001439-dd9478bf75-3912dd536c.zip/node_modules/caniuse-lite/",\ + ["npm:1.0.30001442", {\ + "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001442-4206643829-c1bff65bd4.zip/node_modules/caniuse-lite/",\ "packageDependencies": [\ - ["caniuse-lite", "npm:1.0.30001439"]\ + ["caniuse-lite", "npm:1.0.30001442"]\ ],\ "linkType": "HARD"\ }]\ @@ -3024,10 +3024,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["d3", [\ - ["npm:7.7.0", {\ - "packageLocation": "./.yarn/cache/d3-npm-7.7.0-af244e0e9d-ed1308674f.zip/node_modules/d3/",\ + ["npm:7.8.0", {\ + "packageLocation": "./.yarn/cache/d3-npm-7.8.0-43f19bbccd-383d2c8aa6.zip/node_modules/d3/",\ "packageDependencies": [\ - ["d3", "npm:7.7.0"],\ + ["d3", "npm:7.8.0"],\ ["d3-array", "npm:3.1.6"],\ ["d3-axis", "npm:3.0.0"],\ ["d3-brush", "npm:3.0.0"],\ @@ -3410,10 +3410,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:1.3.3", {\ - "packageLocation": "./.yarn/__virtual__/date-fns-tz-virtual-fb0179cea3/0/cache/date-fns-tz-npm-1.3.3-4b42de3dcf-52111dffb4.zip/node_modules/date-fns-tz/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:1.3.3", {\ + "packageLocation": "./.yarn/__virtual__/date-fns-tz-virtual-ec6b2c4cf2/0/cache/date-fns-tz-npm-1.3.3-4b42de3dcf-52111dffb4.zip/node_modules/date-fns-tz/",\ "packageDependencies": [\ - ["date-fns-tz", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:1.3.3"],\ + ["date-fns-tz", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:1.3.3"],\ ["@types/date-fns", null],\ ["date-fns", "npm:2.28.0"]\ ],\ @@ -4055,12 +4055,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint", [\ - ["npm:8.29.0", {\ - "packageLocation": "./.yarn/cache/eslint-npm-8.29.0-289be12b40-e05204b059.zip/node_modules/eslint/",\ + ["npm:8.31.0", {\ + "packageLocation": "./.yarn/cache/eslint-npm-8.31.0-da99c7e469-5e5688bb86.zip/node_modules/eslint/",\ "packageDependencies": [\ - ["eslint", "npm:8.29.0"],\ - ["@eslint/eslintrc", "npm:1.3.3"],\ - ["@humanwhocodes/config-array", "npm:0.11.7"],\ + ["eslint", "npm:8.31.0"],\ + ["@eslint/eslintrc", "npm:1.4.1"],\ + ["@humanwhocodes/config-array", "npm:0.11.8"],\ ["@humanwhocodes/module-importer", "npm:1.0.1"],\ ["@nodelib/fs.walk", "npm:1.2.8"],\ ["ajv", "npm:6.12.6"],\ @@ -4070,7 +4070,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["doctrine", "npm:3.0.0"],\ ["escape-string-regexp", "npm:4.0.0"],\ ["eslint-scope", "npm:7.1.1"],\ - ["eslint-utils", "virtual:289be12b405674cebfe9f1aad885baa35bb9c6cc913399fbdf01ae783a453de6030ce46c02728e37888c5ed9f57187791e3f7e39ace8be01102f7c43152bb92a#npm:3.0.0"],\ + ["eslint-utils", "virtual:da99c7e4695a5fca5898fad31d2872f7fe46acc9506643f9acaa2915e169293c951732a239e9f38aa784a4d9e0c1021cee45cb2a8bcf8008a11e40816a14adaa#npm:3.0.0"],\ ["eslint-visitor-keys", "npm:3.3.0"],\ ["espree", "npm:9.4.0"],\ ["esquery", "npm:1.4.0"],\ @@ -4079,7 +4079,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["file-entry-cache", "npm:6.0.1"],\ ["find-up", "npm:5.0.0"],\ ["glob-parent", "npm:6.0.2"],\ - ["globals", "npm:13.15.0"],\ + ["globals", "npm:13.19.0"],\ ["grapheme-splitter", "npm:1.0.4"],\ ["ignore", "npm:5.2.0"],\ ["import-fresh", "npm:3.3.0"],\ @@ -4118,9 +4118,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/eslint-plugin-import", null],\ ["@types/eslint-plugin-n", null],\ ["@types/eslint-plugin-promise", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ - ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.1"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"]\ ],\ "packagePeers": [\ @@ -4196,7 +4196,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.12.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["globals", "npm:11.12.0"]\ ],\ "packagePeers": [\ @@ -4226,7 +4226,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-utils", "npm:2.1.0"],\ ["regexpp", "npm:3.2.0"]\ ],\ @@ -4236,12 +4236,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:658a9afbd516149c6b89f8c02ca059f939b9effd6e1985f93fe95b2fc69ff85f0fce97fdb597120caf8f55668982ff4610a3873febcfef8a1fc18348d5149188#npm:4.1.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-264027714f/0/cache/eslint-plugin-es-npm-4.1.0-a4cf26d3cd-26b87a216d.zip/node_modules/eslint-plugin-es/",\ + ["virtual:75c7efde890fd11a780800acb1cde469ae49edf8842af9f91484f93337ad61713574973ccf7c8eb0a0a15f7ed6c372fd23697f1d4d519b2d7a42f92c04a56cff#npm:4.1.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-c640ae95c4/0/cache/eslint-plugin-es-npm-4.1.0-a4cf26d3cd-26b87a216d.zip/node_modules/eslint-plugin-es/",\ "packageDependencies": [\ - ["eslint-plugin-es", "virtual:658a9afbd516149c6b89f8c02ca059f939b9effd6e1985f93fe95b2fc69ff85f0fce97fdb597120caf8f55668982ff4610a3873febcfef8a1fc18348d5149188#npm:4.1.0"],\ + ["eslint-plugin-es", "virtual:75c7efde890fd11a780800acb1cde469ae49edf8842af9f91484f93337ad61713574973ccf7c8eb0a0a15f7ed6c372fd23697f1d4d519b2d7a42f92c04a56cff#npm:4.1.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-utils", "npm:2.1.0"],\ ["regexpp", "npm:3.2.0"]\ ],\ @@ -4271,7 +4271,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["array.prototype.flat", "npm:1.3.0"],\ ["debug", "virtual:faadf6353f98b703db6d695690b392666015d2aab4b710ea086196f4598c68e2b84944d3717503cadb554811494ac27c376eca728086556897f6a7cdb35eaef5#npm:2.6.9"],\ ["doctrine", "npm:2.1.0"],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-import-resolver-node", "npm:0.3.6"],\ ["eslint-module-utils", "virtual:c0858ad0a599e687a7d876de5591e3b098ca550f5c1ad46e7d0e2b6f5720a919cb228a47405daf7d626be1747e41a5b93e4b4d748f16d5e7c36c433aed618452#npm:2.7.3"],\ ["has", "npm:1.0.3"],\ @@ -4292,22 +4292,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-plugin-n", [\ - ["npm:15.6.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-15.6.0-2f5a6f5e8e-629dc3e8c8.zip/node_modules/eslint-plugin-n/",\ + ["npm:15.6.1", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-15.6.1-e4ab4703b3-269d6f2896.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "npm:15.6.0"]\ + ["eslint-plugin-n", "npm:15.6.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-658a9afbd5/0/cache/eslint-plugin-n-npm-15.6.0-2f5a6f5e8e-629dc3e8c8.zip/node_modules/eslint-plugin-n/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-75c7efde89/0/cache/eslint-plugin-n-npm-15.6.1-e4ab4703b3-269d6f2896.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.1"],\ ["@types/eslint", null],\ ["builtins", "npm:5.0.1"],\ - ["eslint", "npm:8.29.0"],\ - ["eslint-plugin-es", "virtual:658a9afbd516149c6b89f8c02ca059f939b9effd6e1985f93fe95b2fc69ff85f0fce97fdb597120caf8f55668982ff4610a3873febcfef8a1fc18348d5149188#npm:4.1.0"],\ - ["eslint-utils", "virtual:289be12b405674cebfe9f1aad885baa35bb9c6cc913399fbdf01ae783a453de6030ce46c02728e37888c5ed9f57187791e3f7e39ace8be01102f7c43152bb92a#npm:3.0.0"],\ + ["eslint", "npm:8.31.0"],\ + ["eslint-plugin-es", "virtual:75c7efde890fd11a780800acb1cde469ae49edf8842af9f91484f93337ad61713574973ccf7c8eb0a0a15f7ed6c372fd23697f1d4d519b2d7a42f92c04a56cff#npm:4.1.0"],\ + ["eslint-utils", "virtual:da99c7e4695a5fca5898fad31d2872f7fe46acc9506643f9acaa2915e169293c951732a239e9f38aa784a4d9e0c1021cee45cb2a8bcf8008a11e40816a14adaa#npm:3.0.0"],\ ["ignore", "npm:5.2.0"],\ ["is-core-module", "npm:2.11.0"],\ ["minimatch", "npm:3.1.2"],\ @@ -4334,7 +4334,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ ["eslint-utils", "npm:2.1.0"],\ ["ignore", "npm:5.2.0"],\ @@ -4362,7 +4362,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"]\ + ["eslint", "npm:8.31.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -4384,8 +4384,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.8.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ - ["eslint-utils", "virtual:289be12b405674cebfe9f1aad885baa35bb9c6cc913399fbdf01ae783a453de6030ce46c02728e37888c5ed9f57187791e3f7e39ace8be01102f7c43152bb92a#npm:3.0.0"],\ + ["eslint", "npm:8.31.0"],\ + ["eslint-utils", "virtual:da99c7e4695a5fca5898fad31d2872f7fe46acc9506643f9acaa2915e169293c951732a239e9f38aa784a4d9e0c1021cee45cb2a8bcf8008a11e40816a14adaa#npm:3.0.0"],\ ["natural-compare", "npm:1.4.0"],\ ["nth-check", "npm:2.1.1"],\ ["postcss-selector-parser", "npm:6.0.10"],\ @@ -4427,12 +4427,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:289be12b405674cebfe9f1aad885baa35bb9c6cc913399fbdf01ae783a453de6030ce46c02728e37888c5ed9f57187791e3f7e39ace8be01102f7c43152bb92a#npm:3.0.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-utils-virtual-7a7c69068b/0/cache/eslint-utils-npm-3.0.0-630b3a4013-0668fe02f5.zip/node_modules/eslint-utils/",\ + ["virtual:da99c7e4695a5fca5898fad31d2872f7fe46acc9506643f9acaa2915e169293c951732a239e9f38aa784a4d9e0c1021cee45cb2a8bcf8008a11e40816a14adaa#npm:3.0.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-utils-virtual-e17c8db5e4/0/cache/eslint-utils-npm-3.0.0-630b3a4013-0668fe02f5.zip/node_modules/eslint-utils/",\ "packageDependencies": [\ - ["eslint-utils", "virtual:289be12b405674cebfe9f1aad885baa35bb9c6cc913399fbdf01ae783a453de6030ce46c02728e37888c5ed9f57187791e3f7e39ace8be01102f7c43152bb92a#npm:3.0.0"],\ + ["eslint-utils", "virtual:da99c7e4695a5fca5898fad31d2872f7fe46acc9506643f9acaa2915e169293c951732a239e9f38aa784a4d9e0c1021cee45cb2a8bcf8008a11e40816a14adaa#npm:3.0.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-visitor-keys", "npm:2.1.0"]\ ],\ "packagePeers": [\ @@ -4840,6 +4840,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["type-fest", "npm:0.20.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:13.19.0", {\ + "packageLocation": "./.yarn/cache/globals-npm-13.19.0-a63c75a2dd-a000dbd00b.zip/node_modules/globals/",\ + "packageDependencies": [\ + ["globals", "npm:13.19.0"],\ + ["type-fest", "npm:0.20.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["graceful-fs", [\ @@ -4961,20 +4969,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["html-validate", [\ - ["npm:7.10.1", {\ - "packageLocation": "./.yarn/cache/html-validate-npm-7.10.1-c3b507b154-7a7dbc0a57.zip/node_modules/html-validate/",\ + ["npm:7.12.2", {\ + "packageLocation": "./.yarn/cache/html-validate-npm-7.12.2-4a7c5f12a3-04bccd1680.zip/node_modules/html-validate/",\ "packageDependencies": [\ - ["html-validate", "npm:7.10.1"]\ + ["html-validate", "npm:7.12.2"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.10.1", {\ - "packageLocation": "./.yarn/__virtual__/html-validate-virtual-fdf68f1c9e/0/cache/html-validate-npm-7.10.1-c3b507b154-7a7dbc0a57.zip/node_modules/html-validate/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.12.2", {\ + "packageLocation": "./.yarn/__virtual__/html-validate-virtual-ef05135489/0/cache/html-validate-npm-7.12.2-4a7c5f12a3-04bccd1680.zip/node_modules/html-validate/",\ "packageDependencies": [\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.10.1"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.12.2"],\ ["@babel/code-frame", "npm:7.16.7"],\ ["@html-validate/stylish", "npm:3.0.0"],\ - ["@sidvind/better-ajv-errors", "virtual:fdf68f1c9ed6d3f4d0cc171ccde72d64c557f4597d23823af77249d92d02fba30826705ed7601dac52f4b714700e596a202b388b79b16ac8ce3faf54eb780dd1#npm:2.0.0"],\ + ["@sidvind/better-ajv-errors", "virtual:ef051354894d83cc0cda7d7a4a6eca604681f35eb8f2a25fe305435ac599a4d71af04fcaa26daa3f5aa064e73442d202ba9dfbda5c3f8c7b1daf472f3a17da86#npm:2.0.0"],\ ["@types/jest", null],\ ["@types/jest-diff", null],\ ["@types/jest-snapshot", null],\ @@ -5573,10 +5581,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:3.6.2", {\ - "packageLocation": "./.yarn/cache/jquery-npm-3.6.2-73fded3d09-b8ca408b94.zip/node_modules/jquery/",\ + ["npm:3.6.3", {\ + "packageLocation": "./.yarn/cache/jquery-npm-3.6.3-cbc34d2330-0fd366bdca.zip/node_modules/jquery/",\ "packageDependencies": [\ - ["jquery", "npm:3.6.2"]\ + ["jquery", "npm:3.6.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -5594,7 +5602,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.0"],\ ["@types/jquery", null],\ - ["jquery", "npm:3.6.2"]\ + ["jquery", "npm:3.6.3"]\ ],\ "packagePeers": [\ "@types/jquery",\ @@ -5951,10 +5959,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["luxon", [\ - ["npm:3.1.1", {\ - "packageLocation": "./.yarn/cache/luxon-npm-3.1.1-64fe977c1d-388fb35d3c.zip/node_modules/luxon/",\ + ["npm:3.2.1", {\ + "packageLocation": "./.yarn/cache/luxon-npm-3.2.1-56f8d97395-3fa3def2c5.zip/node_modules/luxon/",\ "packageDependencies": [\ - ["luxon", "npm:3.1.1"]\ + ["luxon", "npm:3.2.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -6225,19 +6233,19 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["naive-ui", [\ - ["npm:2.34.2", {\ - "packageLocation": "./.yarn/cache/naive-ui-npm-2.34.2-e423e7211e-48871bb068.zip/node_modules/naive-ui/",\ + ["npm:2.34.3", {\ + "packageLocation": "./.yarn/cache/naive-ui-npm-2.34.3-ba2dfb08d8-792d9e6c51.zip/node_modules/naive-ui/",\ "packageDependencies": [\ - ["naive-ui", "npm:2.34.2"]\ + ["naive-ui", "npm:2.34.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.2", {\ - "packageLocation": "./.yarn/__virtual__/naive-ui-virtual-fbe7528a5c/0/cache/naive-ui-npm-2.34.2-e423e7211e-48871bb068.zip/node_modules/naive-ui/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.3", {\ + "packageLocation": "./.yarn/__virtual__/naive-ui-virtual-4fa5810747/0/cache/naive-ui-npm-2.34.3-ba2dfb08d8-792d9e6c51.zip/node_modules/naive-ui/",\ "packageDependencies": [\ - ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.2"],\ - ["@css-render/plugin-bem", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10"],\ - ["@css-render/vue3-ssr", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10"],\ + ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.3"],\ + ["@css-render/plugin-bem", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10"],\ + ["@css-render/vue3-ssr", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10"],\ ["@types/katex", "npm:0.14.0"],\ ["@types/lodash", "npm:4.14.182"],\ ["@types/lodash-es", "npm:4.17.6"],\ @@ -6245,17 +6253,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["async-validator", "npm:4.1.1"],\ ["css-render", "npm:0.15.10"],\ ["date-fns", "npm:2.28.0"],\ - ["date-fns-tz", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:1.3.3"],\ + ["date-fns-tz", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:1.3.3"],\ ["evtd", "npm:0.2.4"],\ ["highlight.js", "npm:11.5.1"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ ["seemly", "npm:0.3.6"],\ ["treemate", "npm:0.3.11"],\ - ["vdirs", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.1.8"],\ - ["vooks", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.2.12"],\ + ["vdirs", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.1.8"],\ + ["vooks", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.2.12"],\ ["vue", "npm:3.2.45"],\ - ["vueuc", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.4.47"]\ + ["vueuc", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.4.47"]\ ],\ "packagePeers": [\ "@types/vue",\ @@ -7280,41 +7288,41 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@twuni/emojify", "npm:1.0.2"],\ ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.2.0"],\ ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3"],\ - ["bootstrap-icons", "npm:1.10.2"],\ + ["bootstrap-icons", "npm:1.10.3"],\ ["browser-fs-access", "npm:0.31.1"],\ ["browserlist", "npm:1.0.1"],\ ["c8", "npm:7.12.0"],\ - ["caniuse-lite", "npm:1.0.30001439"],\ - ["d3", "npm:7.7.0"],\ - ["eslint", "npm:8.29.0"],\ + ["caniuse-lite", "npm:1.0.30001442"],\ + ["d3", "npm:7.8.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.0.0"],\ ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.12.1"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ - ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.6.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.8.0"],\ ["file-saver", "npm:2.0.5"],\ ["highcharts", "npm:10.3.2"],\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.10.1"],\ - ["jquery", "npm:3.6.2"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.12.2"],\ + ["jquery", "npm:3.6.3"],\ ["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.0"],\ ["jquery-ui-dist", "npm:1.13.2"],\ ["js-cookie", "npm:3.0.1"],\ ["list.js", "npm:2.3.1"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ - ["luxon", "npm:3.1.1"],\ + ["luxon", "npm:3.2.1"],\ ["moment", "npm:2.29.4"],\ ["moment-timezone", "npm:0.5.40"],\ ["ms", "npm:2.1.3"],\ ["murmurhash-js", "npm:1.0.0"],\ - ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.2"],\ + ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.3"],\ ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.8.2"],\ ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.0.28"],\ ["pinia-plugin-persist", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:1.0.0"],\ ["pug", "npm:3.0.2"],\ - ["sass", "npm:1.56.2"],\ + ["sass", "npm:1.57.1"],\ ["seedrandom", "npm:3.0.5"],\ ["select2", "npm:4.1.0-rc.0"],\ ["select2-bootstrap-5-theme", "npm:1.3.0"],\ @@ -7385,10 +7393,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:1.56.2", {\ - "packageLocation": "./.yarn/cache/sass-npm-1.56.2-bd3179d6b5-7b1f524d04.zip/node_modules/sass/",\ + ["npm:1.57.1", {\ + "packageLocation": "./.yarn/cache/sass-npm-1.57.1-bafdba484f-734a08781b.zip/node_modules/sass/",\ "packageDependencies": [\ - ["sass", "npm:1.56.2"],\ + ["sass", "npm:1.57.1"],\ ["chokidar", "npm:3.5.3"],\ ["immutable", "npm:4.0.0"],\ ["source-map-js", "npm:1.0.2"]\ @@ -8086,10 +8094,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.1.8", {\ - "packageLocation": "./.yarn/__virtual__/vdirs-virtual-9a95e8a1b4/0/cache/vdirs-npm-0.1.8-59a32a98d6-a7be8ccad3.zip/node_modules/vdirs/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.1.8", {\ + "packageLocation": "./.yarn/__virtual__/vdirs-virtual-f3d9f623fd/0/cache/vdirs-npm-0.1.8-59a32a98d6-a7be8ccad3.zip/node_modules/vdirs/",\ "packageDependencies": [\ - ["vdirs", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.1.8"],\ + ["vdirs", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.1.8"],\ ["@types/vue", null],\ ["evtd", "npm:0.2.3"],\ ["vue", "npm:3.2.45"]\ @@ -8125,7 +8133,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["postcss", "npm:8.4.18"],\ ["resolve", "patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b"],\ ["rollup", "npm:2.79.1"],\ - ["sass", "npm:1.56.2"],\ + ["sass", "npm:1.57.1"],\ ["stylus", null],\ ["sugarss", null],\ ["terser", null]\ @@ -8163,10 +8171,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.2.12", {\ - "packageLocation": "./.yarn/__virtual__/vooks-virtual-1f1870e5c2/0/cache/vooks-npm-0.2.12-0d1a2d856b-e6841ec5b6.zip/node_modules/vooks/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.2.12", {\ + "packageLocation": "./.yarn/__virtual__/vooks-virtual-f44f5b55b4/0/cache/vooks-npm-0.2.12-0d1a2d856b-e6841ec5b6.zip/node_modules/vooks/",\ "packageDependencies": [\ - ["vooks", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.2.12"],\ + ["vooks", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.2.12"],\ ["@types/vue", null],\ ["evtd", "npm:0.2.3"],\ ["vue", "npm:3.2.45"]\ @@ -8256,7 +8264,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["vue-eslint-parser", "virtual:b1db986ed39a80a226fbfa4d653465b173f10958eed2dd2079c16424a052a437a3b029f3b0228d6df47b4f864f76b70bc3e54b0b37aaac5dc8f4ae6650567a27#npm:9.0.3"],\ ["@types/eslint", null],\ ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ - ["eslint", "npm:8.29.0"],\ + ["eslint", "npm:8.31.0"],\ ["eslint-scope", "npm:7.1.1"],\ ["eslint-visitor-keys", "npm:3.3.0"],\ ["espree", "npm:9.3.2"],\ @@ -8302,18 +8310,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.4.47", {\ - "packageLocation": "./.yarn/__virtual__/vueuc-virtual-e7a7bcc64e/0/cache/vueuc-npm-0.4.47-ad081ddd15-b82b77a882.zip/node_modules/vueuc/",\ + ["virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.4.47", {\ + "packageLocation": "./.yarn/__virtual__/vueuc-virtual-326ef48c83/0/cache/vueuc-npm-0.4.47-ad081ddd15-b82b77a882.zip/node_modules/vueuc/",\ "packageDependencies": [\ - ["vueuc", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.4.47"],\ - ["@css-render/vue3-ssr", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.15.10"],\ + ["vueuc", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.4.47"],\ + ["@css-render/vue3-ssr", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.15.10"],\ ["@juggle/resize-observer", "npm:3.3.1"],\ ["@types/vue", null],\ ["css-render", "npm:0.15.10"],\ ["evtd", "npm:0.2.3"],\ ["seemly", "npm:0.3.3"],\ - ["vdirs", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.1.8"],\ - ["vooks", "virtual:fbe7528a5ca5bae03aee1ecb3bd12568e1a4061d2923a771668e8a940ef9ad64125dd8cc7324107ffbd6e34ffa123be3bcd813b79ff7b2db2cb2572affe66874#npm:0.2.12"],\ + ["vdirs", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.1.8"],\ + ["vooks", "virtual:4fa5810747c131dcf20cc36c17e835ba5fa42265b3b1f99a6712420e8672195f31ac73d077125c82af29bde6232df6ecc61b1f3ff0dde337b62085ef712e7d6a#npm:0.2.12"],\ ["vue", "npm:3.2.45"]\ ],\ "packagePeers": [\ diff --git a/.yarn/cache/@eslint-eslintrc-npm-1.3.3-9e3a462140-f03e9d6727.zip b/.yarn/cache/@eslint-eslintrc-npm-1.4.1-007f670de2-cd3e5a8683.zip old mode 100644 new mode 100755 similarity index 83% rename from .yarn/cache/@eslint-eslintrc-npm-1.3.3-9e3a462140-f03e9d6727.zip rename to .yarn/cache/@eslint-eslintrc-npm-1.4.1-007f670de2-cd3e5a8683.zip index 4d1a8efd5..b51019b7a Binary files a/.yarn/cache/@eslint-eslintrc-npm-1.3.3-9e3a462140-f03e9d6727.zip and b/.yarn/cache/@eslint-eslintrc-npm-1.4.1-007f670de2-cd3e5a8683.zip differ diff --git a/.yarn/cache/@humanwhocodes-config-array-npm-0.11.7-fa83ecd27f-cf506dc45d.zip b/.yarn/cache/@humanwhocodes-config-array-npm-0.11.7-fa83ecd27f-cf506dc45d.zip deleted file mode 100644 index c9615b501..000000000 Binary files a/.yarn/cache/@humanwhocodes-config-array-npm-0.11.7-fa83ecd27f-cf506dc45d.zip and /dev/null differ diff --git a/.yarn/cache/@humanwhocodes-config-array-npm-0.11.8-7955bfecc2-0fd6b3c54f.zip b/.yarn/cache/@humanwhocodes-config-array-npm-0.11.8-7955bfecc2-0fd6b3c54f.zip new file mode 100755 index 000000000..dc21af1cb Binary files /dev/null and b/.yarn/cache/@humanwhocodes-config-array-npm-0.11.8-7955bfecc2-0fd6b3c54f.zip differ diff --git a/.yarn/cache/bootstrap-icons-npm-1.10.2-09a829eafa-1d73556a70.zip b/.yarn/cache/bootstrap-icons-npm-1.10.3-d595a95ca4-bef7f83ce0.zip old mode 100644 new mode 100755 similarity index 91% rename from .yarn/cache/bootstrap-icons-npm-1.10.2-09a829eafa-1d73556a70.zip rename to .yarn/cache/bootstrap-icons-npm-1.10.3-d595a95ca4-bef7f83ce0.zip index 307de47c6..90f160475 Binary files a/.yarn/cache/bootstrap-icons-npm-1.10.2-09a829eafa-1d73556a70.zip and b/.yarn/cache/bootstrap-icons-npm-1.10.3-d595a95ca4-bef7f83ce0.zip differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001439-dd9478bf75-3912dd536c.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001439-dd9478bf75-3912dd536c.zip deleted file mode 100755 index 9c5e92670..000000000 Binary files a/.yarn/cache/caniuse-lite-npm-1.0.30001439-dd9478bf75-3912dd536c.zip and /dev/null differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001442-4206643829-c1bff65bd4.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001442-4206643829-c1bff65bd4.zip new file mode 100755 index 000000000..698cd7ec9 Binary files /dev/null and b/.yarn/cache/caniuse-lite-npm-1.0.30001442-4206643829-c1bff65bd4.zip differ diff --git a/.yarn/cache/d3-npm-7.7.0-af244e0e9d-ed1308674f.zip b/.yarn/cache/d3-npm-7.7.0-af244e0e9d-ed1308674f.zip deleted file mode 100755 index 5aa0baffa..000000000 Binary files a/.yarn/cache/d3-npm-7.7.0-af244e0e9d-ed1308674f.zip and /dev/null differ diff --git a/.yarn/cache/d3-npm-7.8.0-43f19bbccd-383d2c8aa6.zip b/.yarn/cache/d3-npm-7.8.0-43f19bbccd-383d2c8aa6.zip new file mode 100755 index 000000000..c4600b4d0 Binary files /dev/null and b/.yarn/cache/d3-npm-7.8.0-43f19bbccd-383d2c8aa6.zip differ diff --git a/.yarn/cache/eslint-npm-8.29.0-289be12b40-e05204b059.zip b/.yarn/cache/eslint-npm-8.31.0-da99c7e469-5e5688bb86.zip similarity index 88% rename from .yarn/cache/eslint-npm-8.29.0-289be12b40-e05204b059.zip rename to .yarn/cache/eslint-npm-8.31.0-da99c7e469-5e5688bb86.zip index 5a4ab3e84..f91ee3f7b 100755 Binary files a/.yarn/cache/eslint-npm-8.29.0-289be12b40-e05204b059.zip and b/.yarn/cache/eslint-npm-8.31.0-da99c7e469-5e5688bb86.zip differ diff --git a/.yarn/cache/eslint-plugin-n-npm-15.6.0-2f5a6f5e8e-629dc3e8c8.zip b/.yarn/cache/eslint-plugin-n-npm-15.6.1-e4ab4703b3-269d6f2896.zip similarity index 92% rename from .yarn/cache/eslint-plugin-n-npm-15.6.0-2f5a6f5e8e-629dc3e8c8.zip rename to .yarn/cache/eslint-plugin-n-npm-15.6.1-e4ab4703b3-269d6f2896.zip index 435d362d4..7de1a1a97 100755 Binary files a/.yarn/cache/eslint-plugin-n-npm-15.6.0-2f5a6f5e8e-629dc3e8c8.zip and b/.yarn/cache/eslint-plugin-n-npm-15.6.1-e4ab4703b3-269d6f2896.zip differ diff --git a/.yarn/cache/globals-npm-13.19.0-a63c75a2dd-a000dbd00b.zip b/.yarn/cache/globals-npm-13.19.0-a63c75a2dd-a000dbd00b.zip new file mode 100755 index 000000000..ab24c0d57 Binary files /dev/null and b/.yarn/cache/globals-npm-13.19.0-a63c75a2dd-a000dbd00b.zip differ diff --git a/.yarn/cache/html-validate-npm-7.10.1-c3b507b154-7a7dbc0a57.zip b/.yarn/cache/html-validate-npm-7.10.1-c3b507b154-7a7dbc0a57.zip deleted file mode 100755 index cc4d6f07a..000000000 Binary files a/.yarn/cache/html-validate-npm-7.10.1-c3b507b154-7a7dbc0a57.zip and /dev/null differ diff --git a/.yarn/cache/html-validate-npm-7.12.2-4a7c5f12a3-04bccd1680.zip b/.yarn/cache/html-validate-npm-7.12.2-4a7c5f12a3-04bccd1680.zip new file mode 100755 index 000000000..680577511 Binary files /dev/null and b/.yarn/cache/html-validate-npm-7.12.2-4a7c5f12a3-04bccd1680.zip differ diff --git a/.yarn/cache/jquery-npm-3.6.2-73fded3d09-b8ca408b94.zip b/.yarn/cache/jquery-npm-3.6.2-73fded3d09-b8ca408b94.zip deleted file mode 100755 index f6a70828a..000000000 Binary files a/.yarn/cache/jquery-npm-3.6.2-73fded3d09-b8ca408b94.zip and /dev/null differ diff --git a/.yarn/cache/jquery-npm-3.6.3-cbc34d2330-0fd366bdca.zip b/.yarn/cache/jquery-npm-3.6.3-cbc34d2330-0fd366bdca.zip new file mode 100755 index 000000000..5009afaf9 Binary files /dev/null and b/.yarn/cache/jquery-npm-3.6.3-cbc34d2330-0fd366bdca.zip differ diff --git a/.yarn/cache/luxon-npm-3.1.1-64fe977c1d-388fb35d3c.zip b/.yarn/cache/luxon-npm-3.1.1-64fe977c1d-388fb35d3c.zip deleted file mode 100644 index 1e0c7262f..000000000 Binary files a/.yarn/cache/luxon-npm-3.1.1-64fe977c1d-388fb35d3c.zip and /dev/null differ diff --git a/.yarn/cache/luxon-npm-3.2.1-56f8d97395-3fa3def2c5.zip b/.yarn/cache/luxon-npm-3.2.1-56f8d97395-3fa3def2c5.zip new file mode 100755 index 000000000..e4837bdf7 Binary files /dev/null and b/.yarn/cache/luxon-npm-3.2.1-56f8d97395-3fa3def2c5.zip differ diff --git a/.yarn/cache/naive-ui-npm-2.34.2-e423e7211e-48871bb068.zip b/.yarn/cache/naive-ui-npm-2.34.3-ba2dfb08d8-792d9e6c51.zip old mode 100644 new mode 100755 similarity index 59% rename from .yarn/cache/naive-ui-npm-2.34.2-e423e7211e-48871bb068.zip rename to .yarn/cache/naive-ui-npm-2.34.3-ba2dfb08d8-792d9e6c51.zip index 070e8bdcb..d025f4e67 Binary files a/.yarn/cache/naive-ui-npm-2.34.2-e423e7211e-48871bb068.zip and b/.yarn/cache/naive-ui-npm-2.34.3-ba2dfb08d8-792d9e6c51.zip differ diff --git a/.yarn/cache/sass-npm-1.56.2-bd3179d6b5-7b1f524d04.zip b/.yarn/cache/sass-npm-1.56.2-bd3179d6b5-7b1f524d04.zip deleted file mode 100755 index dc54ed7ac..000000000 Binary files a/.yarn/cache/sass-npm-1.56.2-bd3179d6b5-7b1f524d04.zip and /dev/null differ diff --git a/.yarn/cache/sass-npm-1.57.1-bafdba484f-734a08781b.zip b/.yarn/cache/sass-npm-1.57.1-bafdba484f-734a08781b.zip new file mode 100755 index 000000000..5979d6ab7 Binary files /dev/null and b/.yarn/cache/sass-npm-1.57.1-bafdba484f-734a08781b.zip differ diff --git a/ietf/doc/factories.py b/ietf/doc/factories.py index 40e0f506b..a8b7b4656 100644 --- a/ietf/doc/factories.py +++ b/ietf/doc/factories.py @@ -14,14 +14,16 @@ from django.utils import timezone from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor, StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, TelechatDocEvent, - DocumentActionHolder, BofreqEditorDocEvent, BofreqResponsibleDocEvent ) + DocumentActionHolder, BofreqEditorDocEvent, BofreqResponsibleDocEvent, DocExtResource ) from ietf.group.models import Group from ietf.person.factories import PersonFactory from ietf.group.factories import RoleFactory +from ietf.name.models import ExtResourceName from ietf.utils.text import xslugify from ietf.utils.timezone import date_today + def draft_name_generator(type_id,group,n): return '%s-%s-%s-%s%d'%( type_id, @@ -520,3 +522,12 @@ class ProceedingsMaterialDocFactory(BaseDocumentFactory): obj.set_state(State.objects.get(type_id=state_type_id,slug=state_slug)) else: obj.set_state(State.objects.get(type_id='procmaterials', slug='active')) + +class DocExtResourceFactory(factory.django.DjangoModelFactory): + + name = factory.Iterator(ExtResourceName.objects.filter(type_id='url')) + value = factory.Faker('url') + doc = factory.SubFactory('ietf.doc.factories.BaseDocumentFactory') + class Meta: + model = DocExtResource + diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 75cf5a764..c60ee8b3d 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -40,7 +40,7 @@ from ietf.doc.factories import ( DocumentFactory, DocEventFactory, CharterFactor ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory, IndividualRfcFactory, StateDocEventFactory, BallotPositionDocEventFactory, BallotDocEventFactory, DocumentAuthorFactory, NewRevisionDocEventFactory, - StatusChangeFactory, BofreqFactory) + StatusChangeFactory, BofreqFactory, DocExtResourceFactory) from ietf.doc.forms import NotifyForm from ietf.doc.fields import SearchableDocumentsField from ietf.doc.utils import create_ballot_if_not_open, uppercase_std_abbreviated_name @@ -602,6 +602,8 @@ Man Expires September 22, 2015 [Page 3] updated_by = IndividualDraftFactory() updated_by.relateddocument_set.create(relationship_id='updates',source=obsoleted_by,target=draft.docalias.first()) + external_resource = DocExtResourceFactory(doc=draft) + # these tests aren't testing all attributes yet, feel free to # expand them @@ -622,6 +624,7 @@ Man Expires September 22, 2015 [Page 3] self.assertNotContains(r, updated.title) self.assertNotContains(r, updated_by.canonical_name()) self.assertNotContains(r, updated_by.title) + self.assertContains(r, external_resource.value) r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=0") self.assertEqual(r.status_code, 200) diff --git a/ietf/group/management/commands/generate_group_aliases.py b/ietf/group/management/commands/generate_group_aliases.py index 2610ba5ad..484574a67 100755 --- a/ietf/group/management/commands/generate_group_aliases.py +++ b/ietf/group/management/commands/generate_group_aliases.py @@ -26,8 +26,8 @@ from ietf.utils.aliases import dump_sublist DEFAULT_YEARS = 5 ACTIVE_STATES=['active', 'bof', 'proposed'] -GROUP_TYPES=['wg', 'rg', 'dir', 'team', 'review', 'program', 'rfcedtyp'] -NO_AD_GROUP_TYPES=['rg', 'team', 'program', 'rfcedtyp'] +GROUP_TYPES=['wg', 'rg', 'rag', 'dir', 'team', 'review', 'program', 'rfcedtyp'] +NO_AD_GROUP_TYPES=['rg', 'rag', 'team', 'program', 'rfcedtyp'] IETF_DOMAIN=['ietf.org', ] IRTF_DOMAIN=['irtf.org', ] IAB_DOMAIN=['iab.org', ] @@ -61,7 +61,7 @@ class Command(BaseCommand): for g in GROUP_TYPES: domains = [] domains += IETF_DOMAIN - if g == 'rg': + if g in ('rg', 'rag'): domains += IRTF_DOMAIN if g == 'program': domains += IAB_DOMAIN diff --git a/ietf/group/tests.py b/ietf/group/tests.py index 2c63ff95d..532f599a3 100644 --- a/ietf/group/tests.py +++ b/ietf/group/tests.py @@ -142,6 +142,9 @@ class GenerateGroupAliasesTests(TestCase): testrg = GroupFactory(type_id='rg', acronym='testrg', parent=irtf) testrgchair = PersonFactory(user__username='testrgchair') testrg.role_set.create(name_id='chair', person=testrgchair, email=testrgchair.email()) + testrag = GroupFactory(type_id='rg', acronym='testrag', parent=irtf) + testragchair = PersonFactory(user__username='testragchair') + testrag.role_set.create(name_id='chair', person=testragchair, email=testragchair.email()) individual = PersonFactory() args = [ ] @@ -184,6 +187,7 @@ class GenerateGroupAliasesTests(TestCase): ameschair.email_address(), recentchair.email_address(), testrgchair.email_address(), + testragchair.email_address(), ]])) self.assertFalse(all([x in vcontent for x in [ done_ad.email_address(), @@ -200,8 +204,11 @@ class GenerateGroupAliasesTests(TestCase): 'xfilter-' + recent.acronym + '-ads', 'xfilter-' + recent.acronym + '-chairs', 'xfilter-' + testrg.acronym + '-chairs', + 'xfilter-' + testrag.acronym + '-chairs', testrg.acronym + '-chairs@ietf.org', testrg.acronym + '-chairs@irtf.org', + testrag.acronym + '-chairs@ietf.org', + testrag.acronym + '-chairs@irtf.org', ]])) self.assertFalse(all([x in vcontent for x in [ 'xfilter-' + done.acronym + '-ads', diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index e7655a566..281d65465 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -7315,7 +7315,12 @@ class ProceedingsTests(BaseMeetingTestCase): ) def test_proceedings(self): - """Proceedings should be displayed correctly""" + """Proceedings should be displayed correctly + + Currently only tests that the view responds with a 200 response code and checks the ProceedingsMaterials + at the top of the proceedings. Ought to actually test the display of the individual group/session + materials as well. + """ meeting = make_meeting_test_data(meeting=MeetingFactory(type_id='ietf', number='100')) session = Session.objects.filter(meeting=meeting, group__acronym="mars").first() GroupEventFactory(group=session.group,type='status_update') @@ -7369,6 +7374,65 @@ class ProceedingsTests(BaseMeetingTestCase): self._assertMeetingHostsDisplayed(r, meeting) self._assertProceedingsMaterialsDisplayed(r, meeting) + def test_named_session(self): + """Session with a name should appear separately in the proceedings""" + meeting = MeetingFactory(type_id='ietf', number='100') + group = GroupFactory() + plain_session = SessionFactory(meeting=meeting, group=group) + named_session = SessionFactory(meeting=meeting, group=group, name='I Got a Name') + for doc_type_id in ('agenda', 'minutes', 'bluesheets', 'recording', 'slides', 'draft'): + # Set up sessions materials that will have distinct URLs for each session. + # This depends on settings.MEETING_DOC_HREFS and may need updating if that changes. + SessionPresentationFactory( + session=plain_session, + document__type_id=doc_type_id, + document__uploaded_filename=f'upload-{doc_type_id}-plain', + document__external_url=f'external_url-{doc_type_id}-plain', + ) + SessionPresentationFactory( + session=named_session, + document__type_id=doc_type_id, + document__uploaded_filename=f'upload-{doc_type_id}-named', + document__external_url=f'external_url-{doc_type_id}-named', + ) + + url = urlreverse('ietf.meeting.views.proceedings', kwargs={'num': meeting.number}) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + + plain_label = q(f'div#{group.acronym}') + self.assertEqual(plain_label.text(), group.acronym) + plain_row = plain_label.closest('tr') + self.assertTrue(plain_row) + + named_label = q(f'div#{slugify(named_session.name)}') + self.assertEqual(named_label.text(), named_session.name) + named_row = named_label.closest('tr') + self.assertTrue(named_row) + + for material in (sp.document for sp in plain_session.sessionpresentation_set.all()): + if material.type_id == 'draft': + expected_url = urlreverse( + 'ietf.doc.views_doc.document_main', + kwargs={'name': material.canonical_name()}, + ) + else: + expected_url = material.get_href(meeting) + self.assertTrue(plain_row.find(f'a[href="{expected_url}"]')) + self.assertFalse(named_row.find(f'a[href="{expected_url}"]')) + + for material in (sp.document for sp in named_session.sessionpresentation_set.all()): + if material.type_id == 'draft': + expected_url = urlreverse( + 'ietf.doc.views_doc.document_main', + kwargs={'name': material.canonical_name()}, + ) + else: + expected_url = material.get_href(meeting) + self.assertFalse(plain_row.find(f'a[href="{expected_url}"]')) + self.assertTrue(named_row.find(f'a[href="{expected_url}"]')) + def test_proceedings_no_agenda(self): # Meeting number must be larger than the last special-cased proceedings (currently 96) meeting = MeetingFactory(type_id='ietf',populate_schedule=False,date=date_today(), number='100') diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index b90f2506a..9415be9bc 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -3586,6 +3586,74 @@ def upcoming_json(request): response = HttpResponse(json.dumps(data, indent=2, sort_keys=False), content_type='application/json;charset=%s'%settings.DEFAULT_CHARSET) return response +def organize_proceedings_sessions(sessions): + # Collect sessions by Group, then bin by session name (including sessions with blank names). + # If all of a group's sessions are 'notmeet', the processed data goes in not_meeting_sessions. + # Otherwise, the data goes in meeting_sessions. + meeting_groups = [] + not_meeting_groups = [] + for group_acronym, group_sessions in itertools.groupby(sessions, key=lambda s: s.group.acronym): + by_name = {} + is_meeting = False + all_canceled = True + group = None + for s in sorted( + group_sessions, + key=lambda gs: ( + gs.official_timeslotassignment().timeslot.time + if gs.official_timeslotassignment() else datetime.datetime(datetime.MAXYEAR, 1, 1) + ), + ): + group = s.group + if s.current_status != 'notmeet': + is_meeting = True + if s.current_status != 'canceled': + all_canceled = False + by_name.setdefault(s.name, []) + if s.current_status != 'notmeet' or s.sessionpresentation_set.exists(): + by_name[s.name].append(s) # for notmeet, only include sessions with materials + for sess_name, ss in by_name.items(): + def _format_materials(items): + """Format session/material for template + + Input is a list of (session, materials) pairs. The materials value can be a single value or a list. + """ + material_times = {} # key is material, value is first timestamp it appeared + for s, mats in items: + timestamp = s.official_timeslotassignment().timeslot.time + if not isinstance(mats, list): + mats = [mats] + for mat in mats: + if mat and mat not in material_times: + material_times[mat] = timestamp + n_mats = len(material_times) + result = [] + if n_mats == 1: + result.append({'material': list(material_times)[0]}) # no 'time' when only a single material + elif n_mats > 1: + for mat, timestamp in material_times.items(): + result.append({'material': mat, 'time': timestamp}) + return result + + entry = { + 'group': group, + 'name': sess_name, + 'canceled': all_canceled, + # pass sessions instead of the materials here so session data (like time) is easily available + 'agendas': _format_materials((s, s.agenda()) for s in ss), + 'minutes': _format_materials((s, s.minutes()) for s in ss), + 'bluesheets': _format_materials((s, s.bluesheets()) for s in ss), + 'recordings': _format_materials((s, s.recordings()) for s in ss), + 'slides': _format_materials((s, s.slides()) for s in ss), + 'drafts': _format_materials((s, s.drafts()) for s in ss), + } + if is_meeting: + meeting_groups.append(entry) + else: + not_meeting_groups.append(entry) + return meeting_groups, not_meeting_groups + + def proceedings(request, num=None): meeting = get_meeting(num) @@ -3606,36 +3674,48 @@ def proceedings(request, num=None): today_utc = date_today(datetime.timezone.utc) schedule = get_schedule(meeting, None) - sessions = add_event_info_to_session_qs( - Session.objects.filter(meeting__number=meeting.number) - ).filter( - Q(timeslotassignments__schedule__in=[schedule, schedule.base if schedule else None]) | Q(current_status='notmeet') - ).select_related().order_by('-current_status') - plenaries = sessions.filter(name__icontains='plenary').exclude(current_status='notmeet') - ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu') - irtf = sessions.filter(group__parent__acronym = 'irtf') - training = sessions.filter(group__acronym__in=['edu','iaoc'], type_id__in=['regular', 'other',]).exclude(current_status='notmeet') - iab = sessions.filter(group__parent__acronym = 'iab').exclude(current_status='notmeet') + sessions = ( + meeting.session_set.with_current_status() + .filter(Q(timeslotassignments__schedule__in=[schedule, schedule.base if schedule else None]) + | Q(current_status='notmeet')) + .select_related() + .order_by('-current_status') + ) + + plenaries, _ = organize_proceedings_sessions( + sessions.filter(name__icontains='plenary') + .exclude(current_status='notmeet') + ) + irtf, _ = organize_proceedings_sessions( + sessions.filter(group__parent__acronym = 'irtf').order_by('group__acronym') + ) + training, _ = organize_proceedings_sessions( + sessions.filter(group__acronym__in=['edu','iaoc'], type_id__in=['regular', 'other',]) + .exclude(current_status='notmeet') + ) + iab, _ = organize_proceedings_sessions( + sessions.filter(group__parent__acronym = 'iab') + .exclude(current_status='notmeet') + ) + + ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu').order_by('group__parent__acronym', 'group__acronym') + ietf_areas = [] + for area, area_sessions in itertools.groupby( + ietf, + key=lambda s: s.group.parent + ): + meeting_groups, not_meeting_groups = organize_proceedings_sessions(area_sessions) + ietf_areas.append((area, meeting_groups, not_meeting_groups)) cache_version = Document.objects.filter(session__meeting__number=meeting.number).aggregate(Max('time'))["time__max"] - ietf_areas = [] - for area, sessions in itertools.groupby(sorted(ietf, key=lambda s: (s.group.parent.acronym, s.group.acronym)), key=lambda s: s.group.parent): - sessions = list(sessions) - meeting_groups = set(s.group_id for s in sessions if s.current_status != 'notmeet') - meeting_sessions = [] - not_meeting_sessions = [] - for s in sessions: - if s.current_status == 'notmeet' and s.group_id not in meeting_groups: - not_meeting_sessions.append(s) - else: - meeting_sessions.append(s) - ietf_areas.append((area, meeting_sessions, not_meeting_sessions)) - with timezone.override(meeting.tz()): return render(request, "meeting/proceedings.html", { 'meeting': meeting, - 'plenaries': plenaries, 'ietf': ietf, 'training': training, 'irtf': irtf, 'iab': iab, + 'plenaries': plenaries, + 'training': training, + 'irtf': irtf, + 'iab': iab, 'ietf_areas': ietf_areas, 'cut_off_date': cut_off_date, 'cor_cut_off_date': cor_cut_off_date, diff --git a/ietf/static/css/document_html.scss b/ietf/static/css/document_html.scss index 42e0af1a6..7294a067c 100644 --- a/ietf/static/css/document_html.scss +++ b/ietf/static/css/document_html.scss @@ -166,6 +166,11 @@ $tooltip-margin: inherit !default; .rfcmarkup { + pre { + width: 72ch; + white-space: pre-wrap; + } + h1, h2, h3, diff --git a/ietf/static/css/document_html_txt.scss b/ietf/static/css/document_html_txt.scss index 7016dba3d..f79734e1a 100644 --- a/ietf/static/css/document_html_txt.scss +++ b/ietf/static/css/document_html_txt.scss @@ -43,6 +43,12 @@ margin-bottom: var(--line); margin-left: 3ch; + /* Really long lines can wrap when all else fails. + * This won't affect
 or , or cases where soft-wrapping occurs.
+   * Mostly this exists so that long URLs wrap properly in Safari, which
+   * doesn't break words at '/' like other browsers. */
+  overflow-wrap: break-word;
+
 h1, h2, h3, h4, h5 {
   font-weight: bold;
   font-size: inherit;
diff --git a/ietf/static/css/ietf.scss b/ietf/static/css/ietf.scss
index 9cfb610b7..3dab7880c 100644
--- a/ietf/static/css/ietf.scss
+++ b/ietf/static/css/ietf.scss
@@ -220,6 +220,12 @@ th,
     }
 }
 
+.charter.revision-list {
+    .page-item {
+        width: auto;
+    }
+}
+
 // Style the photo cards
 .photo {
     width: 12em;
diff --git a/ietf/static/js/nav.js b/ietf/static/js/nav.js
index f89e8466b..7d0bf6dff 100644
--- a/ietf/static/js/nav.js
+++ b/ietf/static/js/nav.js
@@ -38,7 +38,7 @@ export function populate_nav(nav, heading_selector, classes) {
             while (level < cur_level) {
                 let nav = nav_stack.pop();
                 cur_level--;
-                nav_stack[level].appendChild(nav);
+                nav_stack[cur_level].appendChild(nav);
             }
         } else {
             while (level > cur_level) {
diff --git a/ietf/templates/doc/document_history.html b/ietf/templates/doc/document_history.html
index 67e34d0cd..9c76774b8 100644
--- a/ietf/templates/doc/document_history.html
+++ b/ietf/templates/doc/document_history.html
@@ -18,7 +18,7 @@
     {{ top|safe }}
     {% if diff_revisions and diff_revisions|length > 1 or doc.name|rfcbis %}
         

Revision differences

- {% include "doc/document_history_form.html" with doc=doc diff_revisions=diff_revisions action=rfcdiff_base_url only %} + {% include "doc/document_history_form.html" with doc=doc diff_revisions=diff_revisions action=rfcdiff_base_url snapshot=snapshot only %} {% endif %}

Document history

{% if can_add_comment %} diff --git a/ietf/templates/doc/document_history_form.html b/ietf/templates/doc/document_history_form.html index 0045a70d9..30e0d2800 100644 --- a/ietf/templates/doc/document_history_form.html +++ b/ietf/templates/doc/document_history_form.html @@ -11,22 +11,34 @@
{% endif %} +{% with prev_rev=doc.rev|add:"-1"|stringformat:"02d" %} {% for name, rev, time, url in diff_revisions %} @@ -90,6 +107,7 @@ name="difftype"> Inline +{% endwith %} {% if not document_html %}
diff --git a/ietf/templates/doc/document_html.html b/ietf/templates/doc/document_html.html index 6a7e86eb7..1edeec944 100644 --- a/ietf/templates/doc/document_html.html +++ b/ietf/templates/doc/document_html.html @@ -41,6 +41,14 @@ {% include "base/icons.html" %} {% include "doc/opengraph.html" %} {% analytical_head_bottom %} + {% analytical_body_top %} @@ -93,6 +101,17 @@ {% include "doc/document_info.html" with sidebar=False %} + + + +
+ + Report a bug + + +
@@ -131,8 +150,8 @@
-

- + Datatracker +

{% if not snapshot and doc.get_state_slug == "rfc" %} RFC {{ doc.rfc_number }} {% else %} @@ -146,7 +165,7 @@ Internet-Draft {% endif %} - +

{% if request.COOKIES.htmlconf != 'html' and html %}
@@ -209,6 +228,12 @@ {% include "doc/document_info.html" with sidebar=True %}
+ + Report a bug + +
Compare versions - {% include "doc/document_history_form.html" with doc=doc diff_revisions=diff_revisions action=rfcdiff_base_url document_html=document_html only %} + {% include "doc/document_history_form.html" with doc=doc diff_revisions=diff_revisions action=rfcdiff_base_url document_html=document_html snapshot=snapshot only %} {% endif %} @@ -394,7 +394,6 @@ href="{% url 'ietf.doc.views_draft.review_possibly_replaces' name=doc.name %}">E {% endif %} {% endif %} {% with doc.docextresource_set.all as resources %} - {% if document_html and resources or document_html and doc.group and doc.group.list_archive %} {% if resources or doc.group and doc.group.list_archive or can_edit_stream_info or can_edit_individual %} @@ -443,6 +442,5 @@ href="{% url 'ietf.doc.views_draft.review_possibly_replaces' name=doc.name %}">E {% endif %} - {% endif %} {% endwith %} \ No newline at end of file diff --git a/ietf/templates/doc/revisions_list.html b/ietf/templates/doc/revisions_list.html index 578263447..cde628dda 100644 --- a/ietf/templates/doc/revisions_list.html +++ b/ietf/templates/doc/revisions_list.html @@ -1,16 +1,16 @@ {# Copyright The IETF Trust 2015, All Rights Reserved #} -{% load origin %} +{% load origin ietf_filters %} {% origin %} {% if not document_html %}