diff --git a/cypress/e2e/add-forge-now-request-create.cy.js b/cypress/e2e/add-forge-now-request-create.cy.js --- a/cypress/e2e/add-forge-now-request-create.cy.js +++ b/cypress/e2e/add-forge-now-request-create.cy.js @@ -92,6 +92,8 @@ cy.get('#swh-add-forge-user-filter').should('exist').should('be.checked'); cy.wait('@addForgeRequestsList'); + // ensure datatable got rendered + cy.wait(100); // check unfiltered user requests cy.get('tbody tr').then(rows => { @@ -102,6 +104,8 @@ .uncheck({force: true}); cy.wait('@addForgeRequestsList'); + // ensure datatable got rendered + cy.wait(100); // Users now sees everything cy.get('tbody tr').then(rows => { diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -56,6 +56,7 @@ }); it('should get info about a user logged in from javascript', function() { + cy.visit(this.url); cy.window().then(win => { expect(win.swh.webapp.isUserLoggedIn()).to.be.false; }); diff --git a/cypress/e2e/home.cy.js b/cypress/e2e/home.cy.js --- a/cypress/e2e/home.cy.js +++ b/cypress/e2e/home.cy.js @@ -91,6 +91,7 @@ }); it('should redirect to search page when submitting search form', function() { + cy.visit(url); const searchText = 'git'; cy.get('#swh-origins-url-patterns') .type(searchText) diff --git a/cypress/e2e/language-select.cy.js b/cypress/e2e/language-select.cy.js --- a/cypress/e2e/language-select.cy.js +++ b/cypress/e2e/language-select.cy.js @@ -5,7 +5,7 @@ * See top-level LICENSE file for more information */ -import {random, checkLanguageHighlighting} from '../utils'; +import {checkLanguageHighlighting, random} from '../utils'; const $ = Cypress.$; @@ -40,7 +40,7 @@ }); context('When language is switched from dropdown', function() { - before(function() { + beforeEach(function() { cy.visit(contentWithLanguageInfo); cy.get('.chosen-container') diff --git a/cypress/e2e/layout.cy.js b/cypress/e2e/layout.cy.js --- a/cypress/e2e/layout.cy.js +++ b/cypress/e2e/layout.cy.js @@ -187,6 +187,7 @@ describe('Test navbar', function() { it('should redirect to search page when submitting search form in navbar', function() { + cy.visit(url); const keyword = 'python'; cy.get('#swh-origins-search-top-input') .type(keyword); diff --git a/package.json b/package.json --- a/package.json +++ b/package.json @@ -20,15 +20,15 @@ "license": "AGPL-3.0-or-later", "dependencies": { "@babel/runtime-corejs3": "^7.20.6", - "@mdi/font": "^7.0.96", - "@sentry/browser": "^7.22.0", + "@mdi/font": "^7.1.96", + "@sentry/browser": "^7.26.0", "admin-lte": "^3.2.0", "ansi_up": "^5.1.0", "bootstrap": "^4.6.2", "chosen-js": "^1.8.7", "clipboard": "^2.0.11", "core-js": "^3.26.1", - "d3": "^7.6.1", + "d3": "^7.7.0", "datatables.net": "^1.13.1", "datatables.net-bs4": "^1.13.1", "dompurify": "^2.4.1", @@ -77,7 +77,7 @@ "html-encoder-decoder": "^1.3.9", "iframe-resizer": "^4.3.2", "intro.js": "^6.0.0", - "jquery": "^3.6.1", + "jquery": "^3.6.2", "js-cookie": "^3.0.1", "js-year-calendar": "^2.0.0", "mathjax": "^3.2.2", @@ -101,20 +101,20 @@ "@cypress/code-coverage": "^3.10.0", "@sentry/webpack-plugin": "^1.20.0", "autoprefixer": "^10.4.13", - "axios": "^1.1.3", + "axios": "^1.2.1", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bootstrap-loader": "^4.0.1", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.7.2", - "cy2": "^3.2.0", - "cypress": "^11.2.0", + "css-loader": "^6.7.3", + "cy2": "3.2.0", + "cypress": "11.2.0", "cypress-hmr-restarter": "^2.0.4", - "cypress-multi-reporters": "^1.6.1", + "cypress-multi-reporters": "^1.6.2", "ejs": "^3.1.8", "ejs-compiled-loader": "^3.1.0", - "eslint": "^8.28.0", + "eslint": "^8.29.0", "eslint-plugin-chai-friendly": "^0.7.2", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-import": "^2.26.0", @@ -127,16 +127,16 @@ "imports-loader": "^4.0.1", "istanbul-lib-coverage": "^3.2.0", "json-stable-stringify": "^1.0.2", - "mini-css-extract-plugin": "^2.7.1", - "mocha": "^10.1.0", + "mini-css-extract-plugin": "^2.7.2", + "mocha": "^10.2.0", "mocha-junit-reporter": "^2.2.0", "mochawesome": "^7.1.3", - "mochawesome-merge": "^4.2.1", + "mochawesome-merge": "^4.2.2", "mochawesome-report-generator": "^6.2.0", "node-sass": "^8.0.0", "nyc": "^15.1.0", "optimize-css-assets-webpack-plugin": "^6.0.1", - "postcss": "^8.4.19", + "postcss": "^8.4.20", "postcss-loader": "^7.0.2", "postcss-normalize": "^10.0.1", "postcss-reporter": "^7.0.5", @@ -148,21 +148,21 @@ "script-loader": "^0.7.2", "shelljs": "^0.8.5", "spdx-expression-parse": "^3.0.1", - "sqlite3": "^5.1.2", + "sqlite3": "^5.1.4", "style-loader": "^3.3.1", - "stylelint": "^14.15.0", + "stylelint": "^14.16.0", "stylelint-config-standard": "^29.0.0", "terser-webpack-plugin": "^5.3.6", "url-loader": "^4.1.1", "webpack": "^5.75.0", - "webpack-bundle-tracker": "^1.7.0", - "webpack-cli": "^5.0.0", + "webpack-bundle-tracker": "^1.8.0", + "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.11.1", "webpack-log": "^3.0.2", "yaml-loader": "^0.8.0" }, "resolutions": { - "jquery": "^3.6.1" + "jquery": "^3.6.2" }, "browserslist": [ "cover 99.5%", diff --git a/swh/web/browse/views/iframe.py b/swh/web/browse/views/iframe.py --- a/swh/web/browse/views/iframe.py +++ b/swh/web/browse/views/iframe.py @@ -4,6 +4,7 @@ # See top-level LICENSE file for more information from typing import Any, Dict, List, Optional, Tuple +from urllib.parse import quote from django.shortcuts import render from django.urls import re_path as url @@ -281,7 +282,9 @@ ) ) - archive_link = reverse("browse-swhid", url_args={"swhid": swhid}) + archive_link = reverse( + "browse-swhid", url_args={"swhid": quote(swhid, safe=":;=/")} + ) if ( parsed_swhid.origin is None and parsed_swhid.visit is None @@ -293,15 +296,17 @@ root_dir_swhid = CoreSWHID( object_type=ObjectType.DIRECTORY, object_id=hash_to_bytes(root_dir) ) - archive_swhid = QualifiedSWHID( - object_type=parsed_swhid.object_type, - object_id=parsed_swhid.object_id, - path=parsed_swhid.path, - anchor=root_dir_swhid, + archive_swhid = str( + QualifiedSWHID( + object_type=parsed_swhid.object_type, + object_id=parsed_swhid.object_id, + path=parsed_swhid.path, + anchor=root_dir_swhid, + ) ) archive_link = reverse( "browse-swhid", - url_args={"swhid": f"{archive_swhid}"}, + url_args={"swhid": quote(archive_swhid, safe=":;=/")}, ) except BadInputExc as e: diff --git a/swh/web/utils/identifiers.py b/swh/web/utils/identifiers.py --- a/swh/web/utils/identifiers.py +++ b/swh/web/utils/identifiers.py @@ -361,7 +361,8 @@ object_type, object_id, metadata=swhid_context ) swhid_with_context_url = reverse( - "browse-swhid", url_args={"swhid": swhid_with_context} + "browse-swhid", + url_args={"swhid": quote(swhid_with_context, safe=":;=/")}, ) swhids_info.append( diff --git a/swh/web/utils/tests/test_identifiers.py b/swh/web/utils/tests/test_identifiers.py --- a/swh/web/utils/tests/test_identifiers.py +++ b/swh/web/utils/tests/test_identifiers.py @@ -4,7 +4,7 @@ # See top-level LICENSE file for more information import random -from urllib.parse import quote +from urllib.parse import quote, unquote, urlparse import pytest @@ -458,21 +458,26 @@ extra_context={"path": path}, )[0] - # check special characters in SWHID have been escaped + # check special characters in SWHID have been percent escaped assert ( swhid_info["context"]["origin"] == "http://example.org/?project%3Dabc%3Bdef%25" ) assert swhid_info["context"]["path"] == "/foo%3B/bar%25" # check special characters in SWHID URL have been escaped - parsed_url_swhid = QualifiedSWHID.from_string( - swhid_info["swhid_with_context_url"][1:] + parsed_swhid_url = urlparse(swhid_info["swhid_with_context_url"]) + assert ( + "origin=http://example.org/%253Fproject%25253Dabc%25253Bdef%252525;" + in parsed_swhid_url.path ) + assert "path=/foo%25253B/bar%252525" in parsed_swhid_url.path + + # check that by double unquoting SWHID URL path, we get back on the SWHID value + # first unquoting is done by HTTP server, second unquoting by the SWHID parser + # when processing origin and path qualifiers assert ( - parsed_url_swhid.qualifiers()["origin"] - == "http://example.org/%3Fproject%253Dabc%253Bdef%2525" + unquote(unquote(parsed_swhid_url.path[1:])) == swhid_info["swhid_with_context"] ) - assert parsed_url_swhid.qualifiers()["path"] == "/foo%253B/bar%2525" def test_resolve_swhids_snapshot_context( diff --git a/yarn.lock b/yarn.lock --- a/yarn.lock +++ b/yarn.lock @@ -51,7 +51,7 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.20.5": +"@babel/generator@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== @@ -252,7 +252,7 @@ "@babel/traverse" "^7.18.11" "@babel/types" "^7.18.10" -"@babel/helpers@^7.20.1", "@babel/helpers@^7.20.5": +"@babel/helpers@^7.20.5": version "7.20.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== @@ -270,7 +270,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2", "@babel/parser@^7.20.5": +"@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== @@ -919,7 +919,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.4.4": +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.4.4": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== @@ -1164,10 +1164,10 @@ semver "^7.3.5" tar "^6.1.11" -"@mdi/font@^7.0.96": - version "7.0.96" - resolved "https://registry.yarnpkg.com/@mdi/font/-/font-7.0.96.tgz#9853c222623072f5575b4039c8c195ea929b61fc" - integrity sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w== +"@mdi/font@^7.1.96": + version "7.1.96" + resolved "https://registry.yarnpkg.com/@mdi/font/-/font-7.1.96.tgz#211ca4acfa31964278e5085de595e8c73967d400" + integrity sha512-Imag6npmfkBDi2Ze2jiZVAPTDIKLxhz2Sx82xJ2zctyAU5LYJejLI5ChnDwiD9bMkQfVuzEsI98Q8toHyC+HCg== "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" @@ -1229,14 +1229,14 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@sentry/browser@^7.22.0": - version "7.22.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.22.0.tgz#c4f283cd7825db0db59ac97c3334c939982ace94" - integrity sha512-8MA+f46+T3G7fb4BYYX9Wl3bMDloG5a3Ng0GWdBeq6DE2tXVHeCvba8Yrrcnn1qFHpmnOn5Nz4xWBUDs3uBFxA== +"@sentry/browser@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.26.0.tgz#152d0f59df85be3ed8a7161b0ca90a4dca7b382d" + integrity sha512-S6uW+Ni2VLGHUV9eAUtTy5QEvqKeOhcnWnv+2yTGDtQCJ0SuHfXRCM7ASAQYBiKffZqIFc9Z2XNU/2cuWcXJmw== dependencies: - "@sentry/core" "7.22.0" - "@sentry/types" "7.22.0" - "@sentry/utils" "7.22.0" + "@sentry/core" "7.26.0" + "@sentry/types" "7.26.0" + "@sentry/utils" "7.26.0" tslib "^1.9.3" "@sentry/cli@^1.74.6": @@ -1252,26 +1252,26 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@7.22.0": - version "7.22.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.22.0.tgz#8e50f288e5e8fcaa2774daffd2487e042a392893" - integrity sha512-qYJiJrL1mfQQln84mNunBRUkXq7xDGQQoNh4Sz9VYP5698va51zmS5BLYRCZ5CkPwRYNuhUqlUXN7bpYGYOOIA== +"@sentry/core@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.26.0.tgz#8f9fa439b40560edd09b464292d3084e1f16228f" + integrity sha512-ydi236ZoP/xpvLdf7B8seKjCcGc5Z+q9c14tHCFusplPZgLSXcYpiiLIDWmF7OAXO89sSbb1NaFt9YB0LkYdLQ== dependencies: - "@sentry/types" "7.22.0" - "@sentry/utils" "7.22.0" + "@sentry/types" "7.26.0" + "@sentry/utils" "7.26.0" tslib "^1.9.3" -"@sentry/types@7.22.0": - version "7.22.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.22.0.tgz#58e4ce77b523048e0f31e2ea4b597946d76f6079" - integrity sha512-LhCL+wb1Jch+OesB2CIt6xpfO1Ab6CRvoNYRRzVumWPLns1T3ZJkarYfhbLaOEIb38EIbPgREdxn2AJT560U4Q== +"@sentry/types@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.26.0.tgz#2fe8a38a143797abecbcd53175ebf8bf736e18de" + integrity sha512-U2s0q3ALwWFdHJBgn8nrG9bCTJZ3hAqL/I2Si4Mf0ZWnJ/KTJKbtyrputHr8wMbHvX0NZTJGTxFVUO46J+GBRA== -"@sentry/utils@7.22.0": - version "7.22.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.22.0.tgz#fb46dc2761e2d44cf70bc3e1fba61d55852904b5" - integrity sha512-1GiNw1opIngxg0nktCTc9wibh4/LV12kclrnB9dAOHrqazZXHXZRAkjqrhQphKcMpT+3By91W6EofjaDt5a/hg== +"@sentry/utils@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.26.0.tgz#4b501064c5220947f210aa2d59e9b8bf60677502" + integrity sha512-nIC1PRyoMBi4QB7XNCWaPDqaQbPayMwAvUm6W3MC5bHPfVZmmFt+3sLZQKUD/E0NeQnJ3vTyPewPF/LfxLOE5A== dependencies: - "@sentry/types" "7.22.0" + "@sentry/types" "7.26.0" tslib "^1.9.3" "@sentry/webpack-plugin@^1.20.0": @@ -1619,20 +1619,20 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.0.tgz#5e1bc37064c7d00e1330641fa523f8ff85a39513" - integrity sha512-war4OU8NGjBqU3DP3bx6ciODXIh7dSXcpQq+P4K2Tqyd8L5OjZ7COx9QXx/QdCIwL2qoX09Wr4Cwf7uS4qdEng== +"@webpack-cli/configtest@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" + integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== -"@webpack-cli/info@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.0.tgz#5a58476b129ee9b462117b23393596e726bf3b80" - integrity sha512-NNxDgbo4VOkNhOlTgY0Elhz3vKpOJq4/PKeKg7r8cmYM+GQA9vDofLYyup8jS6EpUvhNmR30cHTCEIyvXpskwA== +"@webpack-cli/info@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" + integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== -"@webpack-cli/serve@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.0.tgz#f08ea194e01ed45379383a8886e8c85a65a5f26a" - integrity sha512-Rumq5mHvGXamnOh3O8yLk1sjx8dB30qF1OeR6VC00DIR6SLJ4bwwUGKC4pE7qBFoQyyh0H9sAg3fikYgAqVR0w== +"@webpack-cli/serve@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" + integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2097,10 +2097,10 @@ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== +axios@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" + integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -2992,13 +2992,13 @@ resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== -css-loader@^6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.2.tgz#26bc22401b5921686a10fbeba75d124228302304" - integrity sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q== +css-loader@^6.7.3: + version "6.7.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" + integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== dependencies: icss-utils "^5.1.0" - postcss "^8.4.18" + postcss "^8.4.19" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -3108,7 +3108,7 @@ dependencies: cssom "~0.3.6" -cy2@^3.2.0: +cy2@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cy2/-/cy2-3.2.0.tgz#a90ed0f111267e6c266b2017ed06699e3c1b5cc9" integrity sha512-QUYvEVHHGKS0CCXWrDBRUo7pJx4aeRCXazORRybUbuQcclPtngRmrE6CYjNLzJ7rRYbny60jeNBAVMfnYJ2J5A== @@ -3126,15 +3126,15 @@ resolved "https://registry.yarnpkg.com/cypress-hmr-restarter/-/cypress-hmr-restarter-2.0.4.tgz#a75e3aade4e357a3ba7905eda762f3a16881b9d3" integrity sha512-u++i7p/s5QcdtiaHi2PRLskeh9+iGpgiNhyOfMrxe5736sReg+fS8+XmLogbcVka4Qrdgk6/hq8s/x9a1LQPgQ== -cypress-multi-reporters@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.6.1.tgz#515b891f6c80e0700068efb03ab9d55388399c95" - integrity sha512-FPeC0xWF1N6Myrwc2m7KC0xxlrtG8+x4hlsPFBDRWP8u/veR2x90pGaH3BuJfweV7xoQ4Zo85Qjhu3fgZGrBQQ== +cypress-multi-reporters@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.6.2.tgz#129dfeffa00d4deca3e9f58d84570b9962c28c2b" + integrity sha512-lvwGwHqZG5CwGxBJ6UJXWaxlWGkJgxBjP0h+IVLrrwRlJpT4coSwwt+UzMdeqEMrzT4IDfhbtmUNOiDleisOYA== dependencies: debug "^4.1.1" lodash "^4.17.15" -cypress@^11.2.0: +cypress@11.2.0: version "11.2.0" resolved "https://registry.yarnpkg.com/cypress/-/cypress-11.2.0.tgz#63edef8c387b687066c5493f6f0ad7b9ced4b2b7" integrity sha512-u61UGwtu7lpsNWLUma/FKNOsrjcI6wleNmda/TyKHe0dOBcVjbCPlp1N6uwFZ0doXev7f/91YDpU9bqDCFeBLA== @@ -3390,10 +3390,10 @@ d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.6.1: - version "7.6.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.6.1.tgz#b21af9563485ed472802f8c611cc43be6c37c40c" - integrity sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw== +d3@^7.7.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.7.0.tgz#e7779a74ea7c807b432fdfd8128de062b19c62eb" + integrity sha512-VEwHCMgMjD2WBsxeRGUE18RmzxT9Bn7ghDpzvTEvkLSBAKgTMydJjouZTjspgQfRHpPt/PB3EHWBa6SSyFQq4g== dependencies: d3-array "3" d3-axis "3" @@ -4389,10 +4389,10 @@ normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@^8.28.0: - version "8.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" - integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== +eslint@^8.29.0: + version "8.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" + integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" @@ -5755,10 +5755,10 @@ resolved "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.3.2.tgz#42dd88345d18b9e377b6044dddb98c664ab0ce6b" integrity sha512-gOWo2hmdPjMQsQ+zTKbses08mDfDEMh4NneGQNP4qwePYujY1lguqP6gnbeJkf154gojWlBhIltlgnMfYjGHWA== -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0, ignore@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== imagesloaded@^4.1.4: version "4.1.4" @@ -6344,10 +6344,10 @@ resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, "jquery@>=1.8.0 <4.0.0", jquery@>=2.2, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.5.1, jquery@^3.6.0, jquery@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.1.tgz#fab0408f8b45fc19f956205773b62b292c147a16" - integrity sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw== +jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, "jquery@>=1.8.0 <4.0.0", jquery@>=2.2, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.5.1, jquery@^3.6.0, jquery@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.2.tgz#8302bbc9160646f507bdf59d136a478b312783c4" + integrity sha512-/e7ulNIEEYk1Z/l4X0vpxGt+B/dNsV8ghOPAWZaJs8pkGvsSC0tm33aMGylXcj/U7y4IcvwtMXPMyBFZn/gK9A== jqvmap-novulnerability@^1.5.1: version "1.5.1" @@ -7035,10 +7035,10 @@ resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz#ec924df783cff32ce6183fceb653028f70128643" - integrity sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw== +mini-css-extract-plugin@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz#e049d3ea7d3e4e773aad585c6cb329ce0c7b72d7" + integrity sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw== dependencies: schema-utils "^4.0.0" @@ -7177,10 +7177,10 @@ strip-ansi "^6.0.1" xml "^1.0.1" -mocha@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a" - integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -7204,10 +7204,10 @@ yargs-parser "20.2.4" yargs-unparser "2.0.0" -mochawesome-merge@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/mochawesome-merge/-/mochawesome-merge-4.2.1.tgz#484e5c500dd5d88b33adb440e6dfef80d9109a18" - integrity sha512-G7+LqIKgixShKG4FyWDn1PIrzpKEwCofrJip/VzdqghNGqZl4S5MNoXx5YDfk9KLe+pr4qGa1TOzCc/oVw/8Kw== +mochawesome-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/mochawesome-merge/-/mochawesome-merge-4.2.2.tgz#67164973f8efeefcc206764c3702aa2d5f0ba406" + integrity sha512-ZHeZcChGhb3If7fjSVuyB9rmDH86inNtsTb1ONYq1h0L1IduldFu38bJDcow46alMpiYQgJ7cPhv6nwpCwbJQw== dependencies: fs-extra "^7.0.1" glob "^7.1.6" @@ -8213,10 +8213,10 @@ indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -8243,10 +8243,10 @@ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.1, postcss@^8.2.14, postcss@^8.4.18, postcss@^8.4.19: - version "8.4.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== +postcss@^8.2.1, postcss@^8.2.14, postcss@^8.4.19, postcss@^8.4.20: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -9197,10 +9197,10 @@ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sqlite3@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.2.tgz#f50d5b1482b6972fb650daf6f718e6507c6cfb0f" - integrity sha512-D0Reg6pRWAFXFUnZKsszCI67tthFD8fGPewRddDCX6w4cYwz3MbvuwRICbL+YQjBAh9zbw+lJ/V9oC8nG5j6eg== +sqlite3@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.4.tgz#35f83d368963168b324ad2f0fffce09f3b8723a7" + integrity sha512-i0UlWAzPlzX3B5XP2cYuhWQJsTtlMD6obOa1PgeEQ4DHEXUuyJkgv50I3isqZAP5oFc2T8OFvakmDh2W6I+YpA== dependencies: "@mapbox/node-pre-gyp" "^1.0.0" node-addon-api "^4.2.0" @@ -9425,10 +9425,10 @@ dependencies: stylelint-config-recommended "^9.0.0" -stylelint@^14.15.0: - version "14.15.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.15.0.tgz#4df55078e734869f81f6b85bbec2d56a4b478ece" - integrity sha512-JOgDAo5QRsqiOZPZO+B9rKJvBm64S0xasbuRPAbPs6/vQDgDCnZLIiw6XcAS6GQKk9k1sBWR6rmH3Mfj8OknKg== +stylelint@^14.16.0: + version "14.16.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.16.0.tgz#8e1a424f4b9852e59089f95de306734d70e5048b" + integrity sha512-X6uTi9DcxjzLV8ZUAjit1vsRtSwcls0nl07c9rqOPzvpA8IvTX/xWEkBRowS0ffevRrqkHa/ThDEu86u73FQDg== dependencies: "@csstools/selector-specificity" "^2.0.2" balanced-match "^2.0.0" @@ -9443,7 +9443,7 @@ globby "^11.1.0" globjoin "^0.1.4" html-tags "^3.2.0" - ignore "^5.2.0" + ignore "^5.2.1" import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" @@ -9457,7 +9457,7 @@ postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" resolve-from "^5.0.0" string-width "^4.2.3" @@ -10117,10 +10117,10 @@ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-bundle-tracker@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-tracker/-/webpack-bundle-tracker-1.7.0.tgz#800141b9e383b78c2507a08bd0c5a7b3f5378439" - integrity sha512-CwdFpeLcc4uBurgmtszCHW6ISJ5RN70jvGWnvUG/7LQS1gmv2g6IdYw9A8DvT4rydHzWnRFwqVsx1hN1IebkQA== +webpack-bundle-tracker@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-tracker/-/webpack-bundle-tracker-1.8.0.tgz#18135492d74e7cff56e87306bfbe7d7b17171537" + integrity sha512-5SihX9O+wZVzAvxKIHEW18zTd2BBy5AqV7lMdkKTHd+sQFMpDKNmTcFt6ZgaiV47Db3zB2I0l6MO2pmc2ob+Gg== dependencies: lodash.assign "^4.2.0" lodash.defaults "^4.2.0" @@ -10130,15 +10130,15 @@ lodash.topairs "^4.3.0" strip-ansi "^6.0.0" -webpack-cli@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.0.tgz#bd380a9653e0cd1a08916c4ff1adea17201ef68f" - integrity sha512-AACDTo20yG+xn6HPW5xjbn2Be4KUzQPebWXsDMHwPPyKh9OnTOJgZN2Nc+g/FZKV3ObRTYsGvibAvc+5jAUrVA== +webpack-cli@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" + integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.0.0" - "@webpack-cli/info" "^2.0.0" - "@webpack-cli/serve" "^2.0.0" + "@webpack-cli/configtest" "^2.0.1" + "@webpack-cli/info" "^2.0.1" + "@webpack-cli/serve" "^2.0.1" colorette "^2.0.14" commander "^9.4.1" cross-spawn "^7.0.3"