From 0112dbdeb0bb5d9beea19cacd85d11993c516e80 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 29 May 2024 12:38:22 -0400 Subject: [PATCH 01/79] Uncommenting logging nulls on database restore to troubleshoot --- restore.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 restore.txt diff --git a/restore.txt b/restore.txt new file mode 100644 index 000000000..80c81b179 --- /dev/null +++ b/restore.txt @@ -0,0 +1,12 @@ +Finding the service instance details... +Setting up SSH tunnel... +SSH tunnel created. +Skipping call to client CLI. Connection information: + +Host: localhost +Port: 44265 +Username: u1pqgr5amf7bbsm3 +Password: o95jv0wxlkynbk5qx7fxbmc6o +Name: cgawsbrokerprodoly1e52tnaanm56 + +Leave this terminal open while you want to use the SSH tunnel. Press Control-C to stop. From 73e3c450739d26a6c382c41432e17c53306b6a3c Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 29 May 2024 12:42:49 -0400 Subject: [PATCH 02/79] Uncommenting logging nulls on database restore to troubleshoot 2 --- scripts/pipeline/s3-backup-download.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/pipeline/s3-backup-download.sh b/scripts/pipeline/s3-backup-download.sh index 3ac2c2f04..6ec677396 100755 --- a/scripts/pipeline/s3-backup-download.sh +++ b/scripts/pipeline/s3-backup-download.sh @@ -31,7 +31,7 @@ echo "Getting backup bucket credentials..." AWS_SECRET_ACCESS_KEY=$(echo "${s3_credentials}" | jq -r '.credentials.secret_access_key') export AWS_SECRET_ACCESS_KEY - } &> /dev/null + # } &> /dev/null echo "Downloading backup..." { @@ -49,6 +49,6 @@ echo "Downloading backup..." cf delete-service-key "${service}" "${service_key}" -f - } &> /dev/null + # } &> /dev/null echo "File downloaded: ${DATABASE_FILE}" From d811d803d764cb113572546daeb79f45db98aaff Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 29 May 2024 12:45:43 -0400 Subject: [PATCH 03/79] Uncommenting logging nulls on database restore to troubleshoot 3 --- scripts/pipeline/s3-backup-download.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/pipeline/s3-backup-download.sh b/scripts/pipeline/s3-backup-download.sh index 6ec677396..c2cb3f7ec 100755 --- a/scripts/pipeline/s3-backup-download.sh +++ b/scripts/pipeline/s3-backup-download.sh @@ -6,7 +6,7 @@ backup_bucket="${PROJECT}-backup-${BRANCH}" space="${PROJECT}-${BRANCH}" echo "Getting backup bucket credentials..." - { +# { cf target -s "${space}" service="${backup_bucket}" @@ -31,10 +31,10 @@ echo "Getting backup bucket credentials..." AWS_SECRET_ACCESS_KEY=$(echo "${s3_credentials}" | jq -r '.credentials.secret_access_key') export AWS_SECRET_ACCESS_KEY - # } &> /dev/null +# } &> /dev/null echo "Downloading backup..." - { + #{ rm -f "*.sql" @@ -49,6 +49,6 @@ echo "Downloading backup..." cf delete-service-key "${service}" "${service_key}" -f - # } &> /dev/null + # } &> /dev/null echo "File downloaded: ${DATABASE_FILE}" From 5cd113ee4ec2d522430fefd058ce9b10ac662f2c Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 31 May 2024 14:10:58 -0400 Subject: [PATCH 04/79] Add if statment to database restore script in case file was deleted earlier 1 --- scripts/pipeline/s3-backup-post-restore.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/pipeline/s3-backup-post-restore.sh b/scripts/pipeline/s3-backup-post-restore.sh index a049a1dbc..d055e2a36 100755 --- a/scripts/pipeline/s3-backup-post-restore.sh +++ b/scripts/pipeline/s3-backup-post-restore.sh @@ -34,14 +34,19 @@ if [ -z "${S3_FILE_PATH}" ]; then } >/dev/null 2>&1 - echo "Cleaning up old backup from S3..." - { - ## Delete database_restore.tar.gz after it's downloaded. - aws s3 rm "s3://${bucket}/database_restore.sql.gz" --no-verify-ssl 2>/dev/null - cf delete-service-key "${service}" "${service_key}" -f - } >/dev/null 2>&1 + echo "Cleaning up old backup from S3..." +{ + ## Delete database_restore.tar.gz after it's downloaded. + if aws s3 rm "s3://${bucket}/database_restore.sql.gz" --no-verify-ssl; then + echo "File deleted successfully." + else + echo "File not found or could not be deleted. Continuing script execution." + fi + + cf delete-service-key "${service}" "${service_key}" -f +} fi -echo "Restore complete!" \ No newline at end of file +echo "Restore complete!" From c766ba7712384ca4bf7ac3a7d75308857928f5eb Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 31 May 2024 15:01:11 -0400 Subject: [PATCH 05/79] Uncomment lines to hide output again --- scripts/pipeline/s3-backup-download.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/pipeline/s3-backup-download.sh b/scripts/pipeline/s3-backup-download.sh index c2cb3f7ec..f93915e2a 100755 --- a/scripts/pipeline/s3-backup-download.sh +++ b/scripts/pipeline/s3-backup-download.sh @@ -6,7 +6,7 @@ backup_bucket="${PROJECT}-backup-${BRANCH}" space="${PROJECT}-${BRANCH}" echo "Getting backup bucket credentials..." -# { + { cf target -s "${space}" service="${backup_bucket}" @@ -31,10 +31,10 @@ echo "Getting backup bucket credentials..." AWS_SECRET_ACCESS_KEY=$(echo "${s3_credentials}" | jq -r '.credentials.secret_access_key') export AWS_SECRET_ACCESS_KEY -# } &> /dev/null + } &> /dev/null echo "Downloading backup..." - #{ + { rm -f "*.sql" @@ -49,6 +49,6 @@ echo "Downloading backup..." cf delete-service-key "${service}" "${service_key}" -f - # } &> /dev/null + } &> /dev/null echo "File downloaded: ${DATABASE_FILE}" From 4aa1bdf9c49ef206c57990ca5d5e3649701b213e Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 3 Jun 2024 09:40:40 -0400 Subject: [PATCH 06/79] PXBF-1345-update-react-test-utils: update uswds and move to dep --- benefit-finder/package-lock.json | 36 ++++++++++---------------------- benefit-finder/package.json | 2 +- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/benefit-finder/package-lock.json b/benefit-finder/package-lock.json index 4e0db2c3c..f3c162f38 100644 --- a/benefit-finder/package-lock.json +++ b/benefit-finder/package-lock.json @@ -9,6 +9,7 @@ "version": "0.3.1.beta.1", "hasInstallScript": true, "dependencies": { + "@uswds/uswds": "^3.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-modal": "^3.16.1" @@ -29,7 +30,6 @@ "@testing-library/jest-dom": "^6.3.0", "@testing-library/react": "^14.2.2", "@testing-library/user-event": "^14.5.2", - "@uswds/uswds": "3.0.1", "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-v8": "^1.2.2", "concurrently": "^8.2.2", @@ -6184,13 +6184,11 @@ "dev": true }, "node_modules/@uswds/uswds": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@uswds/uswds/-/uswds-3.0.1.tgz", - "integrity": "sha512-O2WHvWjKJwy10UJV9srimCBFMHenvnWDtP3LelMpTCV2AxgO1j/zYPn2SWpK116X/SuiIZk9hycbBroJQ6eH4w==", - "dev": true, + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@uswds/uswds/-/uswds-3.8.1.tgz", + "integrity": "sha512-bKG/B9mJF1v0yoqth48wQDzST5Xyu3OxxpePIPDyhKWS84oDrCehnu3Z88JhSjdIAJMl8dtjtH8YvdO9kZUpAg==", "dependencies": { - "classlist-polyfill": "1.0.3", - "domready": "1.0.8", + "classlist-polyfill": "1.2.0", "object-assign": "4.1.1", "receptor": "1.0.0", "resolve-id-refs": "0.1.0" @@ -7775,10 +7773,9 @@ } }, "node_modules/classlist-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.0.3.tgz", - "integrity": "sha512-bDLDUsSg5LYFWsc2hphtG6ulyaCFSupdEBU3wxNECKWHnyPVvY8EB9Wbt9DzWkstWclFZhDaZK/VnEK/DmqE/Q==", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", + "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" }, "node_modules/clean-stack": { "version": "2.2.0", @@ -9150,12 +9147,6 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, - "node_modules/domready": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", - "integrity": "sha512-uIzsOJUNk+AdGE9a6VDeessoMCzF8RrZvJCX/W8QtyfgdR6Uofn/MvRonih3OtCO79b2VDzDOymuiABrQ4z3XA==", - "dev": true - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -9246,7 +9237,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/element-closest/-/element-closest-2.0.2.tgz", "integrity": "sha512-QCqAWP3kwj8Gz9UXncVXQGdrhnWxD8SQBSeZp5pOsyCcQ6RpL738L1/tfuwBiMi6F1fYkxqPnBrFBR4L+f49Cg==", - "dev": true, "engines": { "node": ">=4.0.0" } @@ -13546,8 +13536,7 @@ "node_modules/keyboardevent-key-polyfill": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", - "integrity": "sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==", - "dev": true + "integrity": "sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ==" }, "node_modules/keyv": { "version": "4.5.4", @@ -14631,8 +14620,7 @@ "node_modules/matches-selector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", - "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==", - "dev": true + "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==" }, "node_modules/mathml-tag-names": { "version": "2.1.3", @@ -17861,7 +17849,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/receptor/-/receptor-1.0.0.tgz", "integrity": "sha512-yvVEqVQDNzEmGkluCkEdbKSXqZb3WGxotI/VukXIQ+4/BXEeXVjWtmC6jWaR1BIsmEAGYQy3OTaNgDj2Svr01w==", - "dev": true, "dependencies": { "element-closest": "^2.0.1", "keyboardevent-key-polyfill": "^1.0.2", @@ -18190,8 +18177,7 @@ "node_modules/resolve-id-refs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz", - "integrity": "sha512-hNS03NEmVpJheF7yfyagNh57XuKc0z+NkSO0oBbeO67o6IJKoqlDfnNIxhjp7aTWwjmSWZQhtiGrOgZXVyM90w==", - "dev": true + "integrity": "sha512-hNS03NEmVpJheF7yfyagNh57XuKc0z+NkSO0oBbeO67o6IJKoqlDfnNIxhjp7aTWwjmSWZQhtiGrOgZXVyM90w==" }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", diff --git a/benefit-finder/package.json b/benefit-finder/package.json index 370598461..ab06ce5d4 100644 --- a/benefit-finder/package.json +++ b/benefit-finder/package.json @@ -41,6 +41,7 @@ "cy:run:cross-browser:e2e": "NODE_ENV=test npm run cy:run:e2e && npm run cy:run:edge:e2e && npm run cy:run:firefox:e2e && cy:run:webkit-safari:e2e" }, "dependencies": { + "@uswds/uswds": "^3.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-modal": "^3.16.1" @@ -61,7 +62,6 @@ "@testing-library/jest-dom": "^6.3.0", "@testing-library/react": "^14.2.2", "@testing-library/user-event": "^14.5.2", - "@uswds/uswds": "3.0.1", "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-v8": "^1.2.2", "concurrently": "^8.2.2", From 8f8c2367002f428b39a5f6d7810b4a9cfa45f8d1 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 3 Jun 2024 09:53:13 -0400 Subject: [PATCH 07/79] PXBF-1345-update-react-test-utils: update eslint --- benefit-finder/package-lock.json | 12 ++++++------ benefit-finder/package.json | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benefit-finder/package-lock.json b/benefit-finder/package-lock.json index f3c162f38..cad14ec24 100644 --- a/benefit-finder/package-lock.json +++ b/benefit-finder/package-lock.json @@ -37,11 +37,11 @@ "cypress": "^13.6.4", "cypress-axe": "^1.5.0", "cypress-plugin-tab": "^1.0.5", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-react-app": "^7.0.1", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-cypress": "^2.15.1", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", @@ -9831,9 +9831,9 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", - "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", + "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", "dev": true, "dependencies": { "globals": "^13.20.0" diff --git a/benefit-finder/package.json b/benefit-finder/package.json index ab06ce5d4..ec8adf48a 100644 --- a/benefit-finder/package.json +++ b/benefit-finder/package.json @@ -69,11 +69,11 @@ "cypress": "^13.6.4", "cypress-axe": "^1.5.0", "cypress-plugin-tab": "^1.0.5", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-react-app": "^7.0.1", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-cypress": "^2.15.1", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", From 9dbdc4037f2d07cc0097aacb1e78b60552154285 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 3 Jun 2024 09:55:52 -0400 Subject: [PATCH 08/79] PXBF-1345-update-react-test-utils: update the rest of our node packages --- benefit-finder/package-lock.json | 5439 +++++++++++++++++------------- benefit-finder/package.json | 48 +- 2 files changed, 3085 insertions(+), 2402 deletions(-) diff --git a/benefit-finder/package-lock.json b/benefit-finder/package-lock.json index cad14ec24..946ec6998 100644 --- a/benefit-finder/package-lock.json +++ b/benefit-finder/package-lock.json @@ -15,26 +15,26 @@ "react-modal": "^3.16.1" }, "devDependencies": { - "@babel/preset-env": "^7.23.9", - "@babel/preset-react": "^7.23.3", - "@storybook/addon-a11y": "^8.0.4", - "@storybook/addon-essentials": "^8.0.4", - "@storybook/addon-interactions": "^8.0.4", - "@storybook/addon-links": "^8.0.4", - "@storybook/addon-mdx-gfm": "^8.0.4", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", + "@storybook/addon-a11y": "^8.1.5", + "@storybook/addon-essentials": "^8.1.5", + "@storybook/addon-interactions": "^8.1.5", + "@storybook/addon-links": "^8.1.5", + "@storybook/addon-mdx-gfm": "^8.1.5", "@storybook/blocks": "^8.0.4", "@storybook/builder-vite": "^8.0.4", - "@storybook/react-vite": "^8.0.4", + "@storybook/react-vite": "^8.1.5", "@storybook/testing-library": "^0.2.2", - "@stylistic/eslint-plugin-js": "^1.6.2", - "@testing-library/jest-dom": "^6.3.0", - "@testing-library/react": "^14.2.2", + "@stylistic/eslint-plugin-js": "^1.8.1", + "@testing-library/jest-dom": "^6.4.5", + "@testing-library/react": "^14.3.1", "@testing-library/user-event": "^14.5.2", - "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.2.2", + "@vitejs/plugin-react": "^4.3.0", + "@vitest/coverage-v8": "^1.6.0", "concurrently": "^8.2.2", "cross-env": "^7.0.3", - "cypress": "^13.6.4", + "cypress": "^13.10.0", "cypress-axe": "^1.5.0", "cypress-plugin-tab": "^1.0.5", "eslint": "^8.57.0", @@ -45,21 +45,21 @@ "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", - "jsdom": "^24.0.0", - "lint-staged": "^15.2.2", - "playwright-webkit": "^1.43.1", + "jsdom": "^24.1.0", + "lint-staged": "^15.2.5", + "playwright-webkit": "^1.44.1", "plop": "^4.0.1", - "postcss": "^8.4.35", - "prettier": "^3.2.4", + "postcss": "^8.4.38", + "prettier": "^3.3.0", "prettier-eslint": "^16.3.0", "prop-types": "^15.8.1", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-scss": "^4.0.0", - "sass": "^1.70.0", - "storybook": "^8.0.4", - "stylelint": "^16.3.0", - "stylelint-config-standard-scss": "^13.0.0", - "vite": "^5.0.12", + "sass": "^1.77.4", + "storybook": "^8.1.5", + "stylelint": "^16.6.1", + "stylelint-config-standard-scss": "^13.1.0", + "vite": "^5.2.12", "vite-plugin-eslint": "^1.8.1", "vitest": "^1.2.2", "wait-on": "^7.2.0" @@ -68,15 +68,6 @@ "node": "20.x.x" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@adobe/css-tools": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", @@ -109,12 +100,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" }, "engines": { @@ -122,30 +113,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -161,9 +152,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", - "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.6.tgz", + "integrity": "sha512-Q1BfQX42zXHx732PLW0w4+Y3wJjoZKEMaatFUEAmQ7Z+jCXxinzeqX9bvv2Q8xNPes/H6F0I23oGkcgjaItmLw==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -175,7 +166,7 @@ }, "peerDependencies": { "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { @@ -188,12 +179,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -203,37 +194,37 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -243,19 +234,19 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", - "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "semver": "^6.3.1" }, "engines": { @@ -266,12 +257,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.6", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -283,9 +274,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -299,74 +290,74 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -376,35 +367,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -414,14 +405,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -431,103 +422,102 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -537,9 +527,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -548,13 +538,29 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -564,14 +570,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -581,13 +587,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -614,14 +620,14 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", - "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.6.tgz", + "integrity": "sha512-8DjR0/DzlBhz2SVi9a19/N2U5+C3y3rseXuyoKL9SP8vnbewscj1eHZtL6kpEn4UCuUmqEo0mvqyDYRFoN2gpA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-decorators": "^7.24.1" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-decorators": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -751,12 +757,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", - "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.6.tgz", + "integrity": "sha512-gInH8LEqBp+wkwTVihCd/qf+4s28g81FZyvlIbAurHk9eSiItEKG7E0uNK2UdpgsD79aJVAW3R3c85h0YJ0jsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -790,12 +796,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz", - "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.6.tgz", + "integrity": "sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -805,12 +811,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -820,12 +826,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -859,12 +865,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", + "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -976,12 +982,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz", + "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1007,12 +1013,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1022,14 +1028,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", - "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1040,14 +1046,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", - "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1057,12 +1063,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1072,12 +1078,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz", - "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1087,13 +1093,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1103,13 +1109,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz", - "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1120,18 +1126,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "globals": "^11.1.0" }, "engines": { @@ -1142,13 +1148,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1158,12 +1164,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1173,13 +1179,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1189,12 +1195,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1204,12 +1210,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1220,13 +1226,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1236,12 +1242,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1252,13 +1258,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz", - "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.6.tgz", + "integrity": "sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-flow": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-flow": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1268,13 +1274,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1284,14 +1290,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1301,12 +1307,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1317,12 +1323,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1332,12 +1338,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1348,12 +1354,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1363,13 +1369,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1379,14 +1385,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1396,15 +1402,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1414,13 +1420,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1430,13 +1436,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1446,12 +1452,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1461,12 +1467,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1477,12 +1483,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1493,15 +1499,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "@babel/plugin-transform-parameters": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1511,13 +1517,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1527,12 +1533,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1543,13 +1549,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1560,12 +1566,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1575,13 +1581,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1591,14 +1597,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1609,12 +1615,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1624,12 +1630,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", - "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz", + "integrity": "sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1639,16 +1645,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz", + "integrity": "sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1658,12 +1664,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz", + "integrity": "sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1673,12 +1679,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz", - "integrity": "sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", + "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1688,12 +1694,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz", - "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", + "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1703,13 +1709,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", - "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz", + "integrity": "sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1719,12 +1725,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.6", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1735,12 +1741,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1750,13 +1756,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", - "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz", + "integrity": "sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -1770,12 +1776,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1785,13 +1791,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1801,12 +1807,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1816,12 +1822,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1831,12 +1837,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1846,15 +1852,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.1.tgz", - "integrity": "sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz", + "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-typescript": "^7.24.1" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1864,12 +1870,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1879,13 +1885,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1895,13 +1901,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1911,13 +1917,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1927,26 +1933,27 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.3.tgz", - "integrity": "sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.1", - "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1958,54 +1965,54 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.24.1", - "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.1", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-class-static-block": "^7.24.1", - "@babel/plugin-transform-classes": "^7.24.1", - "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", - "@babel/plugin-transform-dotall-regex": "^7.24.1", - "@babel/plugin-transform-duplicate-keys": "^7.24.1", - "@babel/plugin-transform-dynamic-import": "^7.24.1", - "@babel/plugin-transform-exponentiation-operator": "^7.24.1", - "@babel/plugin-transform-export-namespace-from": "^7.24.1", - "@babel/plugin-transform-for-of": "^7.24.1", - "@babel/plugin-transform-function-name": "^7.24.1", - "@babel/plugin-transform-json-strings": "^7.24.1", - "@babel/plugin-transform-literals": "^7.24.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-member-expression-literals": "^7.24.1", - "@babel/plugin-transform-modules-amd": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-modules-systemjs": "^7.24.1", - "@babel/plugin-transform-modules-umd": "^7.24.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.24.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", - "@babel/plugin-transform-object-super": "^7.24.1", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", - "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", - "@babel/plugin-transform-property-literals": "^7.24.1", - "@babel/plugin-transform-regenerator": "^7.24.1", - "@babel/plugin-transform-reserved-words": "^7.24.1", - "@babel/plugin-transform-shorthand-properties": "^7.24.1", - "@babel/plugin-transform-spread": "^7.24.1", - "@babel/plugin-transform-sticky-regex": "^7.24.1", - "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", - "@babel/plugin-transform-unicode-escapes": "^7.24.1", - "@babel/plugin-transform-unicode-property-regex": "^7.24.1", - "@babel/plugin-transform-unicode-regex": "^7.24.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", @@ -2021,14 +2028,14 @@ } }, "node_modules/@babel/preset-flow": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.1.tgz", - "integrity": "sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.6.tgz", + "integrity": "sha512-huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-transform-flow-strip-types": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-flow-strip-types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2052,17 +2059,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", - "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.6.tgz", + "integrity": "sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-transform-react-display-name": "^7.24.1", - "@babel/plugin-transform-react-jsx": "^7.23.4", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-react-display-name": "^7.24.6", + "@babel/plugin-transform-react-jsx": "^7.24.6", + "@babel/plugin-transform-react-jsx-development": "^7.24.6", + "@babel/plugin-transform-react-pure-annotations": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2072,16 +2079,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", - "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz", + "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-typescript": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-typescript": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2091,9 +2098,9 @@ } }, "node_modules/@babel/register": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz", + "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -2234,9 +2241,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2246,33 +2253,33 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2281,13 +2288,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2317,9 +2324,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz", - "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", "dev": true, "funding": [ { @@ -2335,13 +2342,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz", - "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", "dev": true, "funding": [ { @@ -2358,9 +2365,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz", - "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", "dev": true, "funding": [ { @@ -2376,14 +2383,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.1", - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz", - "integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", "dev": true, "funding": [ { @@ -2431,20 +2438,6 @@ "node": ">= 6" } }, - "node_modules/@cypress/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/@cypress/request/node_modules/qs": { "version": "6.10.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", @@ -2498,9 +2491,9 @@ } }, "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", "dev": true, "funding": { "type": "github", @@ -2931,12 +2924,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -2952,18 +2939,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3034,11 +3009,20 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, + "node_modules/@inquirer/figures": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", + "integrity": "sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -3122,9 +3106,9 @@ } }, "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.3.0.tgz", - "integrity": "sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.3.1.tgz", + "integrity": "sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==", "dev": true, "dependencies": { "glob": "^7.2.0", @@ -3146,6 +3130,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -3357,6 +3342,15 @@ "node": ">=14" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", @@ -3375,14 +3369,13 @@ } } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" + "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", @@ -3394,125 +3387,458 @@ } } }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", "dev": true, "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" }, "peerDependenciesMeta": { - "rollup": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", - "cpu": [ - "arm" - ], + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", "dev": true, - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", - "cpu": [ - "arm64" - ], + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", "dev": true, - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", - "cpu": [ - "arm64" - ], + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", - "cpu": [ - "x64" - ], + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", - "cpu": [ - "arm" - ], + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", - "cpu": [ - "arm64" - ], + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", - "cpu": [ - "arm64" - ], + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", - "cpu": [ - "riscv64" + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" ], "dev": true, "optional": true, @@ -3521,9 +3847,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", "cpu": [ "x64" ], @@ -3534,9 +3860,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "cpu": [ "x64" ], @@ -3547,9 +3873,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "cpu": [ "arm64" ], @@ -3560,9 +3886,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "cpu": [ "ia32" ], @@ -3573,9 +3899,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "cpu": [ "x64" ], @@ -3586,9 +3912,9 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.8.0.tgz", - "integrity": "sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", "dev": true }, "node_modules/@sideway/address": { @@ -3618,13 +3944,25 @@ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@storybook/addon-a11y": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.0.4.tgz", - "integrity": "sha512-5OyZNzjNXjNUD9vBfjxFnJjMMcBFYWyI4zy5qmJcbAvBv/COiXNfNg2cr2YPNtU5WfA6nsaIESfHFGBHI3GDAg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.1.5.tgz", + "integrity": "sha512-ZEXrfdMzo0fT8vhzuzy+UZYyotC1PQV9T1mxnPBzCCCgqXQHgADv88JwOMIqgPKmKJb499Xq6E9h+ta9pYd8YQ==", "dev": true, "dependencies": { - "@storybook/addon-highlight": "8.0.4", + "@storybook/addon-highlight": "8.1.5", "axe-core": "^4.2.0" }, "funding": { @@ -3633,12 +3971,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.0.4.tgz", - "integrity": "sha512-EyCWo+8T11/TJGYNL/AXtW4yaB+q1v2E9mixbumryCLxpTl2NtaeGZ4e0dlwfIMuw/7RWgHk2uIypcIPR/UANQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.1.5.tgz", + "integrity": "sha512-XbCUGGXQ4XX/zTRgUsR1l1yZJQIWR33P/M1OEAn0HbsfwS+P87GqfApkj4N7QrMfLkUkoLtdfprp5BZul98AKA==", "dev": true, "dependencies": { - "@storybook/core-events": "8.0.4", + "@storybook/core-events": "8.1.5", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -3651,9 +3989,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.0.4.tgz", - "integrity": "sha512-fef0KD2GhJx2zpicOf8iL7k2LiIsNzEbGaQpIIjoy4DMqM1hIfNCt3DGTLH7LN5O8G+NVCLS1xmQg7RLvIVSCA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.5.tgz", + "integrity": "sha512-osAM4U8DCcKe/JGBBHoFYQi0oorNzFPwcETTy4SAc8LVqsv73SN7CyNnqCrN9Kjom9klJqB/tngvjdJ1XLu4WQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -3666,12 +4004,13 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.0.4.tgz", - "integrity": "sha512-K5EYBTsUOTJlvIdA7p6Xj31wnV+RbZAkk56UKQvA7nJD7oDuLOq3E9u46F/uZD1vxddd9zFhf2iONfMe3KTTwQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.1.5.tgz", + "integrity": "sha512-O0796G3+772kohYOsR98puROgkEakNXZ9n3FXVsQQ57Ww/CIP7gFRv5VM5z+Jw0a+HQI5be6504hDeAOHrd8qQ==", "dev": true, "dependencies": { - "@storybook/blocks": "8.0.4", + "@storybook/blocks": "8.1.5", + "dequal": "^2.0.2", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -3681,24 +4020,24 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.0.4.tgz", - "integrity": "sha512-m0Y7qGAMnNPLEOEgzW/SBm8GX0xabJBaRN+aYijO6UKTln7F6oXXVve+xPC0Y4s6Gc9HZFdJY8WXZr1YSGEUVA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.1.5.tgz", + "integrity": "sha512-D3kDWjOGAthbwQOnouauOmywiTnuvI4KS0E9TDBYspcufimoNve5nOlr/oo9SLS1O2Psmhi6MDJephaDDo+5Dw==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", + "@babel/core": "^7.24.4", "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/components": "8.0.4", - "@storybook/csf-plugin": "8.0.4", - "@storybook/csf-tools": "8.0.4", + "@storybook/blocks": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/components": "8.1.5", + "@storybook/csf-plugin": "8.1.5", + "@storybook/csf-tools": "8.1.5", "@storybook/global": "^5.0.0", - "@storybook/node-logger": "8.0.4", - "@storybook/preview-api": "8.0.4", - "@storybook/react-dom-shim": "8.0.4", - "@storybook/theming": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/node-logger": "8.1.5", + "@storybook/preview-api": "8.1.5", + "@storybook/react-dom-shim": "8.1.5", + "@storybook/theming": "8.1.5", + "@storybook/types": "8.1.5", "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "fs-extra": "^11.1.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -3713,24 +4052,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.0.4.tgz", - "integrity": "sha512-mUIqhAkSz6Qv7nRqAAyCqMLiXBWVsY/8qN7HEIoaMQgdFq38KW3rYwNdzd2JLeXNWP1bBXwfvfcFe7/eqhYJFA==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "8.0.4", - "@storybook/addon-backgrounds": "8.0.4", - "@storybook/addon-controls": "8.0.4", - "@storybook/addon-docs": "8.0.4", - "@storybook/addon-highlight": "8.0.4", - "@storybook/addon-measure": "8.0.4", - "@storybook/addon-outline": "8.0.4", - "@storybook/addon-toolbars": "8.0.4", - "@storybook/addon-viewport": "8.0.4", - "@storybook/core-common": "8.0.4", - "@storybook/manager-api": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/preview-api": "8.0.4", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.1.5.tgz", + "integrity": "sha512-0k2D5+j2N6hso3y+rSqTlQECZ/Z/Q85eit0exx2/Rk/TI5F5HceLveA1YXyC0J291nexdF9RvjP7aCtee3WSYg==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.1.5", + "@storybook/addon-backgrounds": "8.1.5", + "@storybook/addon-controls": "8.1.5", + "@storybook/addon-docs": "8.1.5", + "@storybook/addon-highlight": "8.1.5", + "@storybook/addon-measure": "8.1.5", + "@storybook/addon-outline": "8.1.5", + "@storybook/addon-toolbars": "8.1.5", + "@storybook/addon-viewport": "8.1.5", + "@storybook/core-common": "8.1.5", + "@storybook/manager-api": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/preview-api": "8.1.5", "ts-dedent": "^2.0.0" }, "funding": { @@ -3739,9 +4078,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.0.4.tgz", - "integrity": "sha512-tnEiVaJlXL07v8JBox+QtRPVruoy0YovOTAOWY7fKDiKzF1I9wLaJjQF3wOsvwspHTHu00OZw2gsazgXiH4wLQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.1.5.tgz", + "integrity": "sha512-E31yrV7lmE82T57tLSm8mg50BX3lBbA4qozaVKyWohw0NrZPcrS3Z6Iyjl0dp7heoUFpE3rljHwMxADRA25HkQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -3752,15 +4091,15 @@ } }, "node_modules/@storybook/addon-interactions": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.0.4.tgz", - "integrity": "sha512-wTEOnVUbF1lNJxxocr5IKmpgnmwyO8YsQf6Baw3tTWCHAa/MaWWQYq1OA6CfFfmVGGRjv/w2GTuf1Vyq99O7mg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.1.5.tgz", + "integrity": "sha512-jhDpqttch0XhRiCY9rfrs8xQpAH5KcAGAesqfaHaCnCZnZs6jqlGfJgCJAJWzA5PM+IdsK/RJ6abIgD1GAzNyw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.0.4", - "@storybook/test": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/instrumenter": "8.1.5", + "@storybook/test": "8.1.5", + "@storybook/types": "8.1.5", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -3770,12 +4109,12 @@ } }, "node_modules/@storybook/addon-links": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.0.4.tgz", - "integrity": "sha512-SzE+JPZ4mxjprZqbLHf8Hx7UA2fXfMajFjeY9c3JREKQrDoOF1e4r28nAoVsZYF+frWxQB51U4+hOqjlx06wEA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.1.5.tgz", + "integrity": "sha512-cRarzAI27K1JijDmFtNqr7khyg/l1JyOLXvLUDZRI6NBFGQo2oA42iHuR8jzje4tlUEh/8svGz52YR4TUvsDtQ==", "dev": true, "dependencies": { - "@storybook/csf": "^0.1.2", + "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" }, @@ -3784,7 +4123,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" }, "peerDependenciesMeta": { "react": { @@ -3793,12 +4132,12 @@ } }, "node_modules/@storybook/addon-mdx-gfm": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-mdx-gfm/-/addon-mdx-gfm-8.0.4.tgz", - "integrity": "sha512-YVRZ3q8RUzddAoRAsrTP5ZRgez+MhrW1izsuBrp+cbSEt/4PfVZjj9LeztzahBxiHlGjs5egP7TonMxqv6pCmA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-mdx-gfm/-/addon-mdx-gfm-8.1.5.tgz", + "integrity": "sha512-4Wo0fqRlWQZhz+SMtup5aey1fwCjZ2LO/2M43BrXJb0GwV4135c9sdGAosEzeX7skaHvNTDgmD8VoJq0xu9tKQ==", "dev": true, "dependencies": { - "@storybook/node-logger": "8.0.4", + "@storybook/node-logger": "8.1.5", "remark-gfm": "^4.0.0", "ts-dedent": "^2.0.0" }, @@ -3808,9 +4147,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.0.4.tgz", - "integrity": "sha512-GZYKo2ss5Br+dfHinoK3bgTaS90z3oKKDkhv6lrFfjjU1mDYzzMJpxajQhd3apCYxHLr3MbUqMQibWu2T/q2DQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.1.5.tgz", + "integrity": "sha512-kHiv2qq9Ws0lGQ8p7FfMKFtXO4hrRiYStG8CCp9i1IfPzLpY8S9Kl9bwnoyVyI5bwqZP1wjFQVw8sjumV6FMFw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -3822,9 +4161,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.0.4.tgz", - "integrity": "sha512-6J9ezNDUxdA3rMCh8sUEQbUwAgkrr+M9QdiFr1t+gKrk5FKP5gwubw1sr3sF1IRB9+s/AjljcOtJAVulSfq05w==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.1.5.tgz", + "integrity": "sha512-eCXnGN24ewfvUKKpzTJP7HtPJkAexIBnQdJCw9R9Jk8IyHh7xPWsrz+haY1FQHTXZGAevoBcI4/tpG2XOumBlw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -3836,9 +4175,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.0.4.tgz", - "integrity": "sha512-yodRXDYog/90cNEy84kg6s7L+nxQ+egBjHBTsav1L4cJmQI/uAX8yISHHiX4I5ppNc120Jz3UdHdRxXRlo345g==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.1.5.tgz", + "integrity": "sha512-UxEtb4ii0FORqUuPgLycPQ0MQ4Bq2YWBft6yT00xMjUuwkld27BlrvnpaBlx+disgWwOKGKVd02f/4dbZr2s1g==", "dev": true, "funding": { "type": "opencollective", @@ -3846,9 +4185,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.0.4.tgz", - "integrity": "sha512-E5IKOsxKcOtlOYc0cWgzVJohQB+dVBWwaJcg5FlslToknfVB9M0kfQ/SQcp3KB0C9/cOmJK1Jm388InW+EjrBQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.1.5.tgz", + "integrity": "sha512-kHaYdaAiv7107GSi4TsS1wEDN4I7cdYWSaCBBSvJlvvYvULKFVMkhsDJlSioskICx6OchkIKY5LJgLZ72fxdVA==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -3859,23 +4198,23 @@ } }, "node_modules/@storybook/blocks": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.0.4.tgz", - "integrity": "sha512-9dRXk9zLJVPOmEWsSXm10XUmIfvS/tVgeBgFXNbusFQZXPpexIPNdRgB004pDGg9RvlY78ykpnd3yP143zaXMg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.1.5.tgz", + "integrity": "sha512-rq8Ej5feS2BlfXOpNLDwdASkIIZJtKzLy9cUpuGftTiu06HiWAk3wpNpnn/kuunDYlZUa+qHEOSiIkTrdduwYw==", "dev": true, "dependencies": { - "@storybook/channels": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/components": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "8.0.4", + "@storybook/channels": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/components": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/csf": "^0.1.7", + "@storybook/docs-tools": "8.1.5", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/manager-api": "8.0.4", - "@storybook/preview-api": "8.0.4", - "@storybook/theming": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/manager-api": "8.1.5", + "@storybook/preview-api": "8.1.5", + "@storybook/theming": "8.1.5", + "@storybook/types": "8.1.5", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -3894,8 +4233,8 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" }, "peerDependenciesMeta": { "react": { @@ -3907,19 +4246,19 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.0.4.tgz", - "integrity": "sha512-BafYVxq77uuTmXdjYo5by42OyOrb6qcpWYKva3ntWK2ZhTaLJlwwqAOdahT1DVzi4VeUP6465YvsTCzIE8fuIw==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.1.5.tgz", + "integrity": "sha512-wDiHLV+UPaUN+765WwXkocVRB2QnJ61CjLHbpWaLiJvryFJt+JQ6nAvgSalCRnZxI046ztbS9T6okhpFI011IA==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "8.0.4", - "@storybook/manager": "8.0.4", - "@storybook/node-logger": "8.0.4", + "@storybook/core-common": "8.1.5", + "@storybook/manager": "8.1.5", + "@storybook/node-logger": "8.1.5", "@types/ejs": "^3.1.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", "browser-assert": "^1.2.1", - "ejs": "^3.1.8", + "ejs": "^3.1.10", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", "esbuild-plugin-alias": "^0.2.1", "express": "^4.17.3", @@ -3933,23 +4272,23 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.0.4.tgz", - "integrity": "sha512-Whb001bGkoGQ6/byp9QTQJ4NO61Qa5bh1p5WEEMJ5wYvHm83b+B/IwwilUfU5mL9bJB/RjbwyKcSQqGP6AxMzA==", - "dev": true, - "dependencies": { - "@storybook/channels": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/core-common": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/csf-plugin": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/preview": "8.0.4", - "@storybook/preview-api": "8.0.4", - "@storybook/types": "8.0.4", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.1.5.tgz", + "integrity": "sha512-4RblE2npnlRs8bj071g4xkCF8n/FYNdu/Ft5eH8YQIMEpgijtxWnuPXjyOWwnN6MG5e9q0cbZ4y1o3CZIGBIoQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/core-common": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/csf-plugin": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/preview": "8.1.5", + "@storybook/preview-api": "8.1.5", + "@storybook/types": "8.1.5", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", - "es-module-lexer": "^0.9.3", + "es-module-lexer": "^1.5.0", "express": "^4.17.3", "find-cache-dir": "^3.0.0", "fs-extra": "^11.1.0", @@ -3979,13 +4318,13 @@ } }, "node_modules/@storybook/channels": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.0.4.tgz", - "integrity": "sha512-haKV+8RbiSzLjicowUfc7h2fTClZHX/nz9SRUecf4IEZUEu2T78OgM/TzqZvL7rA3+/fKqp5iI+3PN3OA75Sdg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.5.tgz", + "integrity": "sha512-R+puP4tWYzQUbpIp8sX6U5oI+ZUevVOaFxXGaAN3PRXjIRC38oKTVWzj/G6GdziVFzN6rDn+JsYPmiRMYo1sYg==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.0.4", - "@storybook/core-events": "8.0.4", + "@storybook/client-logger": "8.1.5", + "@storybook/core-events": "8.1.5", "@storybook/global": "^5.0.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1" @@ -3996,22 +4335,22 @@ } }, "node_modules/@storybook/cli": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.0.4.tgz", - "integrity": "sha512-8jb8hrulRMfyFyNXFEapxHBS51xb42ZZGfVAacXIsHOJtjOd5CnOoSUYn0aOkVl19VF/snoa9JOW7BaW/50Eqw==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.1.5.tgz", + "integrity": "sha512-VEYluZEMleNEnD5wTD90KTh03pwjvQwEEmzHAJQJdLbWTAcgBxZ3Gb45nbUPauSqBL+HdJx0QXF8Ielk+iBttw==", "dev": true, "dependencies": { - "@babel/core": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/core": "^7.24.4", + "@babel/types": "^7.24.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "8.0.4", - "@storybook/core-common": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/core-server": "8.0.4", - "@storybook/csf-tools": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/telemetry": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/codemod": "8.1.5", + "@storybook/core-common": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/core-server": "8.1.5", + "@storybook/csf-tools": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/telemetry": "8.1.5", + "@storybook/types": "8.1.5", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -4025,7 +4364,7 @@ "fs-extra": "^11.1.0", "get-npm-tarball-url": "^2.0.3", "giget": "^1.0.0", - "globby": "^11.0.2", + "globby": "^14.0.1", "jscodeshift": "^0.15.1", "leven": "^3.1.0", "ora": "^5.4.1", @@ -4034,7 +4373,7 @@ "read-pkg-up": "^7.0.1", "semver": "^7.3.7", "strip-json-comments": "^3.0.1", - "tempy": "^1.0.1", + "tempy": "^3.1.0", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -4078,36 +4417,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@storybook/cli/node_modules/globby": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4122,15 +4446,6 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/@storybook/cli/node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -4140,18 +4455,6 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/cli/node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -4175,14 +4478,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/@storybook/cli/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/cli/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -4190,6 +4502,18 @@ "node": ">=10" } }, + "node_modules/@storybook/cli/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@storybook/cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4202,16 +4526,10 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@storybook/client-logger": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.0.4.tgz", - "integrity": "sha512-2SeEg3PT/d0l/+EAVtyj9hmMLTyTPp+bRBSzxYouBjtJPM1jrdKpFagj1o3uBRovwWm9SIVX6/ZsoRC33PEV1g==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.5.tgz", + "integrity": "sha512-zd+aENXnOHsxBATppELmhw/UywLzCxQjz/8i/xkUjeTRB4Ggp0hJlOUdJUEdIJz631ydyytfvM70ktBj9gMl1w==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4222,21 +4540,21 @@ } }, "node_modules/@storybook/codemod": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.0.4.tgz", - "integrity": "sha512-bysG46P4wjlR3RCpr/ntNAUaupWpzLcWYWti3iNtIyZ/iPrX6KtXoA9QCIwJZrlv41us6F+KEZbzLzkgWbymtQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.23.2", - "@babel/preset-env": "^7.23.2", - "@babel/types": "^7.23.0", - "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/types": "8.0.4", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.1.5.tgz", + "integrity": "sha512-eGoYozT2XPfsIFrzm4cJo9tRTX0yuK1y4uTYmKvnomezHu5kiY8qo2fUzQa5DHxiAzRDTpGlQTzb0PsxHOxYoA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/csf": "^0.1.7", + "@storybook/csf-tools": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/types": "8.1.5", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", - "globby": "^11.0.2", + "globby": "^14.0.1", "jscodeshift": "^0.15.1", "lodash": "^4.17.21", "prettier": "^3.1.1", @@ -4248,19 +4566,64 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/codemod/node_modules/globby": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/codemod/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/codemod/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@storybook/components": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.0.4.tgz", - "integrity": "sha512-i5ngl5GTOLB9nZ1cmpxTjtWct5IuH9UxzFC73a0jHMkCwN26w16IqufRVDaoQv0AvZN4pd4fNM2in/XVHA10dw==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.1.5.tgz", + "integrity": "sha512-IxoT2pH7V98gF0zDAMUuq9sUZPg0vvQ9Y+A13HeYHvaY25XdesXVMbdzEd6SpeLYmfPykMPIAEcADfqeM6eXfA==", "dev": true, "dependencies": { + "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-slot": "^1.0.2", - "@storybook/client-logger": "8.0.4", - "@storybook/csf": "^0.1.2", + "@storybook/client-logger": "8.1.5", + "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/theming": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/theming": "8.1.5", + "@storybook/types": "8.1.5", "memoizerific": "^1.11.3", "util-deprecate": "^1.0.2" }, @@ -4269,20 +4632,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, "node_modules/@storybook/core-common": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.0.4.tgz", - "integrity": "sha512-dzFRLm5FxUa2EFE6Rx/KLDTJNLBIp1S2/+Q1K+rG8V+CLvewCc2Cd486rStZqSXEKI7vDnsRs/aMla+N0X/++Q==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.5.tgz", + "integrity": "sha512-1QDOT6KPZ9KV7Gs1yyqzvSwGBmNSUB33gckUldSBF4aqP+tZ7W5JIQ6/YTtp3V02sEokZGdL9Ud4LczQxTgy3A==", "dev": true, "dependencies": { - "@storybook/core-events": "8.0.4", - "@storybook/csf-tools": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/core-events": "8.1.5", + "@storybook/csf-tools": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/types": "8.1.5", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", "chalk": "^4.1.0", @@ -4300,10 +4663,11 @@ "node-fetch": "^2.0.0", "picomatch": "^2.3.0", "pkg-dir": "^5.0.0", + "prettier-fallback": "npm:prettier@^3", "pretty-hrtime": "^1.0.3", "resolve-from": "^5.0.0", "semver": "^7.3.7", - "tempy": "^1.0.1", + "tempy": "^3.1.0", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0", "util": "^0.12.4" @@ -4311,6 +4675,14 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { @@ -4344,41 +4716,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/core-common/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@storybook/core-common/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4388,35 +4725,11 @@ "node": ">=8" } }, - "node_modules/@storybook/core-common/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/@storybook/core-common/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/core-common/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -4436,18 +4749,13 @@ "node": ">=8" } }, - "node_modules/@storybook/core-common/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@storybook/core-events": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.0.4.tgz", - "integrity": "sha512-1FgLacIGi9i6/fyxw7ZJDC621RK47IMaA3keH4lc11ASRzCSwJ4YOrXjBFjfPc79EF2BuX72DDJNbhj6ynfF3g==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.5.tgz", + "integrity": "sha512-fgwbrHoLtSX6kfmamTGJqD+KfuEgun8cc4mWKZK094ByaqbSjhnOyeYO1sfVk8qst7QTFlOfhLAUe4cz1z149A==", "dev": true, "dependencies": { + "@storybook/csf": "^0.1.7", "ts-dedent": "^2.0.0" }, "funding": { @@ -4456,29 +4764,31 @@ } }, "node_modules/@storybook/core-server": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.0.4.tgz", - "integrity": "sha512-/633Pp7LPcDWXkPLSW+W9VUYUbVkdVBG6peXjuzogV0vzdM0dM9af/T0uV2NQxUhzoy6/7QdSDljE+eEOBs2Lw==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.1.5.tgz", + "integrity": "sha512-y16W2sg5KIHG6qgbd+a0nBUYHAgiUpPDFF7cdcIpbeOIoqFn+6ECp93MVefukumiSj3sQiJFU/tSm2A8apGltw==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", - "@babel/core": "^7.23.9", + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "8.0.4", - "@storybook/channels": "8.0.4", - "@storybook/core-common": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "8.0.4", - "@storybook/docs-mdx": "3.0.0", + "@storybook/builder-manager": "8.1.5", + "@storybook/channels": "8.1.5", + "@storybook/core-common": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/csf": "^0.1.7", + "@storybook/csf-tools": "8.1.5", + "@storybook/docs-mdx": "3.1.0-next.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "8.0.4", - "@storybook/manager-api": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/preview-api": "8.0.4", - "@storybook/telemetry": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/manager": "8.1.5", + "@storybook/manager-api": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/preview-api": "8.1.5", + "@storybook/telemetry": "8.1.5", + "@storybook/types": "8.1.5", "@types/detect-port": "^1.3.0", + "@types/diff": "^5.0.9", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", "@types/semver": "^7.3.4", @@ -4487,9 +4797,10 @@ "cli-table3": "^0.6.1", "compression": "^1.7.4", "detect-port": "^1.3.0", + "diff": "^5.2.0", "express": "^4.17.3", "fs-extra": "^11.1.0", - "globby": "^11.0.2", + "globby": "^14.0.1", "ip": "^2.0.1", "lodash": "^4.17.21", "open": "^8.4.0", @@ -4510,15 +4821,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz", - "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4550,6 +4852,26 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@storybook/core-server/node_modules/globby": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@storybook/core-server/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4559,26 +4881,23 @@ "node": ">=8" } }, - "node_modules/@storybook/core-server/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@storybook/core-server/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -4586,6 +4905,18 @@ "node": ">=10" } }, + "node_modules/@storybook/core-server/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@storybook/core-server/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4598,28 +4929,22 @@ "node": ">=8" } }, - "node_modules/@storybook/core-server/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@storybook/csf": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.3.tgz", - "integrity": "sha512-IPZvXXo4b3G+gpmgBSBqVM81jbp2ePOKsvhgJdhyZJtkYQCII7rg9KKLQhvBQM5sLaF1eU6r0iuwmyynC9d9SA==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.8.tgz", + "integrity": "sha512-Ntab9o7LjBCbFIao5l42itFiaSh/Qu+l16l/r/9qmV9LnYZkO+JQ7tzhdlwpgJfhs+B5xeejpdAtftDRyXNajw==", "dev": true, "dependencies": { "type-fest": "^2.19.0" } }, "node_modules/@storybook/csf-plugin": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.0.4.tgz", - "integrity": "sha512-pEgctWuS/qeKMFZJJUM2JuKwjKBt27ye+216ft7xhNqpsrmCgumJYrkU/ii2CsFJU/qr5Fu9EYw+N+vof1OalQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.1.5.tgz", + "integrity": "sha512-p6imdhlcm2iEeCU+3BDDR1fuw+u9sOQDlQQbTLYhBDvjy3lydp3W0erWo5aUANhQRU2uobZf4wZ52MLrENt+dQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "8.0.4", + "@storybook/csf-tools": "8.1.5", "unplugin": "^1.3.1" }, "funding": { @@ -4628,17 +4953,17 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.0.4.tgz", - "integrity": "sha512-dMSZxWnXBhmXGOZZOAJ4DKZRCYdA0HaqqZ4/eF9MLLsI+qvW4EklcpjVY6bsIzACgubRWtRZkTpxTnjExi/N1A==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.5.tgz", + "integrity": "sha512-jOfUo0arlaG4LlsdWaRfZCS0I1FhUnkf06ThzRBrrp8mFAPtOpf9iW16J3fYMS5vAdE/v+Z1RxuTRich4/JGdQ==", "dev": true, "dependencies": { - "@babel/generator": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "@storybook/csf": "^0.1.2", - "@storybook/types": "8.0.4", + "@babel/generator": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "@storybook/csf": "^0.1.7", + "@storybook/types": "8.1.5", "fs-extra": "^11.1.0", "recast": "^0.23.5", "ts-dedent": "^2.0.0" @@ -4649,20 +4974,21 @@ } }, "node_modules/@storybook/docs-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-3.0.0.tgz", - "integrity": "sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==", + "version": "3.1.0-next.0", + "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-3.1.0-next.0.tgz", + "integrity": "sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==", "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.0.4.tgz", - "integrity": "sha512-PONfG8j/AOHi79NbEkneFRZIscrShbA0sgA+62zeejH4r9+fuIkIKtLnKcAxvr8Bm6uo9aSQbISJZUcBG42WhQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.5.tgz", + "integrity": "sha512-zlHv8fi1Bw8RbjkGGBJoO/RbM41bwxU1kV76TPQUyqQmzqPRsHi3zt+8bdddQLNrC6rhTF+Cj3yEdPfTZrB0aA==", "dev": true, "dependencies": { - "@storybook/core-common": "8.0.4", - "@storybook/preview-api": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/core-common": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/preview-api": "8.1.5", + "@storybook/types": "8.1.5", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -4693,16 +5019,16 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.0.4.tgz", - "integrity": "sha512-lkHv1na12oMTZvuDbzufgqrtFlV1XqdXrAAg7YXZOia/oMz6Z/XMldEqwLPUCLGVodbFJofrpE67Wtw8dNTDQg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.1.5.tgz", + "integrity": "sha512-pyOg0YeL06bIFw8J3y0E1xyaJEVX5dtyvFZ31xi7jcElhsO/uPTbrJzSfMFtv3kDXU3hKDpeI2pbxpkFUVSvsQ==", "dev": true, "dependencies": { - "@storybook/channels": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/core-events": "8.0.4", + "@storybook/channels": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/core-events": "8.1.5", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.4", + "@storybook/preview-api": "8.1.5", "@vitest/utils": "^1.3.1", "util": "^0.12.4" }, @@ -4712,9 +5038,9 @@ } }, "node_modules/@storybook/manager": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.0.4.tgz", - "integrity": "sha512-M5IofDSxbIQIdAglxUtZOGKjZ1EAq1Mdbh4UolVsF1PKF6dAvBQJLVW6TiLjEbmPBtqgeYKMgrmmYiFNqVcdBQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.1.5.tgz", + "integrity": "sha512-qMYwD1cXW0hJ3pMmdMlbsqktVBlsjsqwMH5PBzAN4FoWiCQ/yHeAnDXRUgFFaLcORS72h9H/cQuJ+p//RdeURg==", "dev": true, "funding": { "type": "opencollective", @@ -4722,20 +5048,20 @@ } }, "node_modules/@storybook/manager-api": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.0.4.tgz", - "integrity": "sha512-TudiRmWlsi8kdjwqW0DDLen76Zp4Sci/AnvTbZvZOWe8C2mruxcr6aaGwuIug6y+uxIyXDvURF6Cek5Twz4isg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.1.5.tgz", + "integrity": "sha512-iVP7FOKDf9L7zWCb8C2XeZjWSILS3hHeNwILvd9YSX9dg9du41kJYahsAHxDCR/jp/gv0ZM/V0vuHzi+naVPkQ==", "dev": true, "dependencies": { - "@storybook/channels": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/csf": "^0.1.2", + "@storybook/channels": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/router": "8.0.4", - "@storybook/theming": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/router": "8.1.5", + "@storybook/theming": "8.1.5", + "@storybook/types": "8.1.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4749,9 +5075,9 @@ } }, "node_modules/@storybook/node-logger": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.0.4.tgz", - "integrity": "sha512-cALLHuX53vLQsoJamGRlquh2pfhPq9copXou2JTmFT6mrCcipo77SzhBDfeeuhaGv6vUWPfmGjPBEHXWGPe4+g==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.5.tgz", + "integrity": "sha512-9qwPX/uGhdHaVjeVUSwJUSbKX7g9goyhGYdKVuCEyl7vHR9Kp7Zkag2sEHmVdd9ixTea3jk2GZQEbnBDNQNGnw==", "dev": true, "funding": { "type": "opencollective", @@ -4759,9 +5085,9 @@ } }, "node_modules/@storybook/preview": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.0.4.tgz", - "integrity": "sha512-dJa13bIxQBfa5ZsXAeL6X/oXI6b87Fy31pvpKPkW1o+7M6MC4OvwGQBqgAd7m8yn6NuIHxrdwjEupa7l7PGb6w==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.1.5.tgz", + "integrity": "sha512-8qNzK/5fCjfWcup5w3UxJXMAUp4+iOdh+vO+vDIJWSbPXRPtuarSM/tv/12N7hz/zvCpGLGBql0BE+oyC0bmhw==", "dev": true, "funding": { "type": "opencollective", @@ -4769,17 +5095,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.0.4.tgz", - "integrity": "sha512-uZCgZ/7BZkFTNudCBWx3YPFVdReMQSZJj9EfQVhQaPmfGORHGMvZMRsQXl0ONhPy7zDD4rVQxu5dSKWmIiYoWQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.5.tgz", + "integrity": "sha512-pv0aT5WbnSYR7KWQgy3jLfuBM0ocYG6GTcmZLREW5554oiBPHhzNFv+ZrBI47RzbrbFxq1h5dj4v8lkEcKIrbA==", "dev": true, "dependencies": { - "@storybook/channels": "8.0.4", - "@storybook/client-logger": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/csf": "^0.1.2", + "@storybook/channels": "8.1.5", + "@storybook/client-logger": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", - "@storybook/types": "8.0.4", + "@storybook/types": "8.1.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4795,17 +5121,17 @@ } }, "node_modules/@storybook/react": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.0.4.tgz", - "integrity": "sha512-p4wQSJIhG48UD2fZ6tFDT9zaqrVnvZxjV18+VjSi3dez/pDoEMJ3SWZWcmeDenKwvvk+SPdRH7k5mUHW1Rh0xg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.1.5.tgz", + "integrity": "sha512-Yr0Z1FQPKFnc3jI7UbNYyi5K6zoFRZlac7xzBMT4q+bUtl0g3fmYTDFisCwK8I30qE6r01EjzNvaTU75PqXkMw==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.0.4", - "@storybook/docs-tools": "8.0.4", + "@storybook/client-logger": "8.1.5", + "@storybook/docs-tools": "8.1.5", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.4", - "@storybook/react-dom-shim": "8.0.4", - "@storybook/types": "8.0.4", + "@storybook/preview-api": "8.1.5", + "@storybook/react-dom-shim": "8.1.5", + "@storybook/types": "8.1.5", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", "@types/node": "^18.0.0", @@ -4830,8 +5156,8 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "typescript": ">= 4.2.x" }, "peerDependenciesMeta": { @@ -4841,30 +5167,31 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.0.4.tgz", - "integrity": "sha512-H8bci23e+G40WsdYPuPrhAjCeeXypXuAV6mTVvLHGKH+Yb+3wiB1weaXrot/TgzPbkDNybuhTI3Qm48FPLt0bw==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.5.tgz", + "integrity": "sha512-eyHSngIBHeFT4vVkQTN2+c/mSKCPrb8uPpWbrc3ihGBKvL/656erWNmiUVnY3zuQvCBPz2q2Vy3v2Pr+nvfOTw==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, "node_modules/@storybook/react-vite": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.0.4.tgz", - "integrity": "sha512-SlAsLSDc9I1nhMbf0YgXCHaZbnjzDdv458xirmUj4aJhn45e8yhmODpkPYQ8nGn45VWYMyd0sC66lJNWRvI/FA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.1.5.tgz", + "integrity": "sha512-lBNfZGa9ZGyUgqp/Vo9Sli1l3dv1ebCkOtd7inm3cZBGLkFPmvtWAAoj5Pb+n1uBqEuOlBCFvljHUbu349x2zw==", "dev": true, "dependencies": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", + "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.1", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.0.4", - "@storybook/node-logger": "8.0.4", - "@storybook/react": "8.0.4", + "@storybook/builder-vite": "8.1.5", + "@storybook/node-logger": "8.1.5", + "@storybook/react": "8.1.5", + "@storybook/types": "8.1.5", "find-up": "^5.0.0", "magic-string": "^0.30.0", "react-docgen": "^7.0.0", @@ -4879,60 +5206,22 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "vite": "^4.0.0 || ^5.0.0" } }, - "node_modules/@storybook/react-vite/node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@storybook/react/node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "node_modules/@storybook/react/node_modules/@types/node": { - "version": "18.19.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz", - "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/react/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/react/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -4940,19 +5229,13 @@ "node": ">=10" } }, - "node_modules/@storybook/react/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@storybook/router": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.0.4.tgz", - "integrity": "sha512-hlR80QvmLBflAqMeGcgtDuSe6TJlzdizwEAkBLE1lDvFI6tvvEyAliCAXBpIDdOZTe0u/zeeJkOUXKSx33caoQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.1.5.tgz", + "integrity": "sha512-DCwvAswlbLhQu6REPV04XNRhtPvsrRqHjMHKzjlfs+qYJWY7Egkofy05qlegqjkMDve33czfnRGBm0C16IydkA==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.0.4", + "@storybook/client-logger": "8.1.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4962,14 +5245,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.0.4.tgz", - "integrity": "sha512-Q3ITY6J46R/TrrPRIU1fs3WNs69ExpTJZ9UlB8087qOUyV90Ex33SYk3i10xVWRczxCmyC1V58Xuht6nxz7mNQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.1.5.tgz", + "integrity": "sha512-QbB1Ox7oBaCvIF2TacFjPLi1XYeHxSPeZUuFXeE+tSMdvvWZzYLnXfj/oISmV6Q+X5VZfyJVMrZ2LfeW9CuFNg==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.0.4", - "@storybook/core-common": "8.0.4", - "@storybook/csf-tools": "8.0.4", + "@storybook/client-logger": "8.1.5", + "@storybook/core-common": "8.1.5", + "@storybook/csf-tools": "8.1.5", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -5034,21 +5317,20 @@ } }, "node_modules/@storybook/test": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.0.4.tgz", - "integrity": "sha512-/uvE8Rtu7tIcuyQBUzKq7uuDCsjmADI18BApLdwo/qthmN8ERDxRSz0Ngj2gvBMQFv99At8ESi/xh6oFGu3rWg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.1.5.tgz", + "integrity": "sha512-BuxzWWS7BIJrOTuwH5WTj3nGQ+xNCvinJBQsV+MRAdH+kltgPYbntd/NBceuHmYeUrX0t8id5VUapNaG4SHw1A==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.0.4", - "@storybook/core-events": "8.0.4", - "@storybook/instrumenter": "8.0.4", - "@storybook/preview-api": "8.0.4", + "@storybook/client-logger": "8.1.5", + "@storybook/core-events": "8.1.5", + "@storybook/instrumenter": "8.1.5", + "@storybook/preview-api": "8.1.5", "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^6.4.2", "@testing-library/user-event": "^14.5.2", "@vitest/expect": "1.3.1", "@vitest/spy": "^1.3.1", - "chai": "^4.4.1", "util": "^0.12.4" }, "funding": { @@ -5056,107 +5338,186 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/test/node_modules/@vitest/expect": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", - "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", + "node_modules/@storybook/test/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.3.1", - "@vitest/utils": "1.3.1", - "chai": "^4.3.10" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=14" } }, - "node_modules/@storybook/test/node_modules/@vitest/spy": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", - "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", + "node_modules/@storybook/test/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "tinyspy": "^2.2.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/test/node_modules/@vitest/utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", - "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", + "node_modules/@storybook/test/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" + "deep-equal": "^2.0.5" + } + }, + "node_modules/@storybook/test/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/test/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/@storybook/test/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/@storybook/test/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/testing-library": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz", + "integrity": "sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", + "dev": true, + "dependencies": { + "@testing-library/dom": "^9.0.0", + "@testing-library/user-event": "^14.4.0", + "ts-dedent": "^2.2.0" + } + }, + "node_modules/@storybook/testing-library/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@storybook/testing-library/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/test/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/@storybook/testing-library/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "dependencies": { - "@types/estree": "^1.0.0" + "deep-equal": "^2.0.5" + } + }, + "node_modules/@storybook/testing-library/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/test/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/@storybook/testing-library/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@storybook/test/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@storybook/testing-library": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz", - "integrity": "sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==", + "node_modules/@storybook/testing-library/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@testing-library/dom": "^9.0.0", - "@testing-library/user-event": "^14.4.0", - "ts-dedent": "^2.2.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@storybook/theming": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.0.4.tgz", - "integrity": "sha512-NxtTU2wMC0lj375ejoT3Npdcqwv6NeUpLaJl6EZCMXSR41ve9WG4suUNWQ63olhqKxirjzAz0IL7ggH7c3hPvA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.1.5.tgz", + "integrity": "sha512-E4z1t49fMbVvd/t2MSL0Ecp5zbqsU/QfWBX/eorJ+m+Xc9skkwwG5qf/FnP9x4RZ9KaX8U8+862t0eafVvf4Tw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@storybook/client-logger": "8.0.4", + "@storybook/client-logger": "8.1.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5165,8 +5526,8 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" }, "peerDependenciesMeta": { "react": { @@ -5178,12 +5539,12 @@ } }, "node_modules/@storybook/types": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.0.4.tgz", - "integrity": "sha512-OO7QY+qZFCYkItDUBACtIV32p75O7sNziAiyS1V2Oxgo7Ln7fwZwr3mJcA1ruBed6ZcrW3c87k7Xs40T2zAWcg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.5.tgz", + "integrity": "sha512-/PfAZh1xtXN2MvAZZKpiL/nPkC3bZj8BQ7P7z5a/aQarP+y7qdXuoitYQ6oOH3rkaiYywmkWzA/y4iW70KXLKg==", "dev": true, "dependencies": { - "@storybook/channels": "8.0.4", + "@storybook/channels": "8.1.5", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" }, @@ -5193,12 +5554,12 @@ } }, "node_modules/@stylistic/eslint-plugin-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.7.0.tgz", - "integrity": "sha512-PN6On/+or63FGnhhMKSQfYcWutRlzOiYlVdLM6yN7lquoBTqUJHYnl4TA4MHwiAt46X5gRxDr1+xPZ1lOLcL+Q==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.8.1.tgz", + "integrity": "sha512-c5c2C8Mos5tTQd+NWpqwEu7VT6SSRooAguFPMj1cp2RkTYl1ynKoXo8MWy3k4rkbzoeYHrqC2UlUzsroAN7wtQ==", "dev": true, "dependencies": { - "@types/eslint": "^8.56.2", + "@types/eslint": "^8.56.10", "acorn": "^8.11.3", "escape-string-regexp": "^4.0.0", "eslint-visitor-keys": "^3.4.3", @@ -5224,22 +5585,23 @@ } }, "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.1.0.tgz", + "integrity": "sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { @@ -5247,6 +5609,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -5262,6 +5625,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5278,6 +5642,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -5287,6 +5652,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -5295,9 +5661,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", - "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz", + "integrity": "sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==", "dev": true, "dependencies": { "@adobe/css-tools": "^4.3.2", @@ -5306,7 +5672,7 @@ "chalk": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.15", + "lodash": "^4.17.21", "redent": "^3.0.0" }, "engines": { @@ -5395,9 +5761,9 @@ } }, "node_modules/@testing-library/react": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.2.2.tgz", - "integrity": "sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz", + "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", @@ -5412,6 +5778,86 @@ "react-dom": "^18.0.0" } }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@testing-library/user-event": { "version": "14.5.2", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", @@ -5464,9 +5910,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" @@ -5515,6 +5961,12 @@ "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", "dev": true }, + "node_modules/@types/diff": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.2.1.tgz", + "integrity": "sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==", + "dev": true + }, "node_modules/@types/doctrine": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", @@ -5528,9 +5980,9 @@ "dev": true }, "node_modules/@types/emscripten": { - "version": "1.39.10", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz", - "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==", + "version": "1.39.13", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.13.tgz", + "integrity": "sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==", "dev": true }, "node_modules/@types/escodegen": { @@ -5540,9 +5992,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.56.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.6.tgz", - "integrity": "sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==", + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -5568,9 +6020,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz", + "integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==", "dev": true, "dependencies": { "@types/node": "*", @@ -5635,12 +6087,6 @@ "rxjs": "^7.2.0" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -5664,24 +6110,24 @@ } }, "node_modules/@types/lodash": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", - "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==", "dev": true }, "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, "dependencies": { "@types/unist": "*" } }, "node_modules/@types/mdx": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.12.tgz", - "integrity": "sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", "dev": true }, "node_modules/@types/mime": { @@ -5703,9 +6149,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5736,9 +6182,9 @@ "dev": true }, "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { @@ -5748,20 +6194,19 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.70", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.70.tgz", - "integrity": "sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ==", + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "dev": true, "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.22", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz", - "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "dependencies": { "@types/react": "*" @@ -5773,12 +6218,6 @@ "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", "dev": true }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true - }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -5796,14 +6235,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sinonjs__fake-timers": { @@ -5883,26 +6322,11 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -5910,12 +6334,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", @@ -6046,26 +6464,11 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -6073,12 +6476,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", @@ -6127,26 +6524,11 @@ "node": ">=4.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -6154,12 +6536,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", @@ -6193,78 +6569,145 @@ "receptor": "1.0.0", "resolve-id-refs": "0.1.0" }, - "engines": { - "node": ">= 4" + "engines": { + "node": ">= 4" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.0.tgz", + "integrity": "sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.0.tgz", + "integrity": "sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.4", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.4", + "istanbul-reports": "^3.1.6", + "magic-string": "^0.30.5", + "magicast": "^0.3.3", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "test-exclude": "^6.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "1.6.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", + "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@vitest/spy": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", + "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@vitest/utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", + "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "node_modules/@vitest/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=10" }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@vitest/coverage-v8": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.4.0.tgz", - "integrity": "sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==", + "node_modules/@vitest/expect/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.4", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.4", - "istanbul-reports": "^3.1.6", - "magic-string": "^0.30.5", - "magicast": "^0.3.3", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "1.4.0" + "@types/estree": "^1.0.0" } }, - "node_modules/@vitest/expect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.4.0.tgz", - "integrity": "sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==", + "node_modules/@vitest/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.4.0", - "@vitest/utils": "1.4.0", - "chai": "^4.3.10" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@vitest/expect/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/@vitest/runner": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.4.0.tgz", - "integrity": "sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", "dev": true, "dependencies": { - "@vitest/utils": "1.4.0", + "@vitest/utils": "1.6.0", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -6300,9 +6743,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.4.0.tgz", - "integrity": "sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -6340,15 +6783,15 @@ } }, "node_modules/@vitest/snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/@vitest/spy": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.4.0.tgz", - "integrity": "sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -6358,9 +6801,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.4.0.tgz", - "integrity": "sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -6408,9 +6851,9 @@ } }, "node_modules/@vitest/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/@yarnpkg/esbuild-plugin-pnp": { @@ -6428,6 +6871,12 @@ "esbuild": ">=0.10.0" } }, + "node_modules/@yarnpkg/esbuild-plugin-pnp/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", @@ -6441,12 +6890,6 @@ "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" } }, - "node_modules/@yarnpkg/fslib/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@yarnpkg/libzip": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", @@ -6460,12 +6903,6 @@ "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" } }, - "node_modules/@yarnpkg/libzip/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6519,9 +6956,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -6680,13 +7117,37 @@ } ] }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-hidden/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { @@ -6847,16 +7308,19 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { @@ -6939,6 +7403,12 @@ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, + "node_modules/ast-types/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -6994,24 +7464,24 @@ } }, "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", "dev": true }, "node_modules/axe-core": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.4.tgz", - "integrity": "sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "dev": true, "dependencies": { "follow-redirects": "^1.15.6", @@ -7019,6 +7489,20 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/axios/node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -7059,13 +7543,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -7086,12 +7570,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7337,12 +7821,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -7448,37 +7932,21 @@ } }, "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, "peer": true, "dependencies": { "semver": "^7.0.0" } }, - "node_modules/builtins/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/builtins/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -7486,13 +7954,6 @@ "node": ">=10" } }, - "node_modules/builtins/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -7558,10 +8019,16 @@ "tslib": "^2.0.3" } }, + "node_modules/camel-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", + "version": "1.0.30001627", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz", + "integrity": "sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==", "dev": true, "funding": [ { @@ -7589,6 +8056,12 @@ "upper-case-first": "^2.0.2" } }, + "node_modules/capital-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -7666,6 +8139,12 @@ "tslib": "^2.0.3" } }, + "node_modules/change-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -7811,9 +8290,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, "dependencies": { "string-width": "^4.2.0" @@ -8157,6 +8636,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -8183,6 +8668,12 @@ "upper-case": "^2.0.2" } }, + "node_modules/constant-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -8226,9 +8717,9 @@ "dev": true }, "node_modules/core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "dependencies": { "browserslist": "^4.23.0" @@ -8239,9 +8730,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/corser": { @@ -8302,18 +8793,36 @@ } }, "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true, "engines": { "node": ">=12 || >=16" @@ -8362,6 +8871,12 @@ "node": ">=18" } }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -8369,9 +8884,9 @@ "dev": true }, "node_modules/cypress": { - "version": "13.7.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.1.tgz", - "integrity": "sha512-4u/rpFNxOFCoFX/Z5h+uwlkBO4mWzAjveURi3vqdSu56HPvVdyGTxGw4XKGWt399Y1JwIn9E1L9uMXQpc0o55w==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.10.0.tgz", + "integrity": "sha512-tOhwRlurVOQbMduX+KonoMeQILs2cwR3yHGGENoFvvSoLUBHmJ8b9/n21gFSDqjlOJ+SRVcwuh+fG/JDsHsT6Q==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -8490,6 +9005,29 @@ "node": ">=8" } }, + "node_modules/cypress/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/cypress/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -8505,6 +9043,21 @@ "node": ">=10" } }, + "node_modules/cypress/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cypress/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8514,26 +9067,20 @@ "node": ">=8" } }, - "node_modules/cypress/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/cypress/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8.12.0" } }, "node_modules/cypress/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -8556,12 +9103,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/cypress/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -8661,15 +9202,15 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", "dev": true }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -9019,6 +9560,12 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "dev": true + }, "node_modules/detect-package-manager": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", @@ -9031,54 +9578,10 @@ "node": ">=12" } }, - "node_modules/detect-package-manager/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/detect-package-manager/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/detect-package-manager/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", "dev": true, "dependencies": { "address": "^1.0.1", @@ -9087,6 +9590,9 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" } }, "node_modules/devlop": { @@ -9102,6 +9608,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -9157,6 +9672,12 @@ "tslib": "^2.0.3" } }, + "node_modules/dot-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -9213,9 +9734,9 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -9228,9 +9749,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", + "version": "1.4.788", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.788.tgz", + "integrity": "sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==", "dev": true }, "node_modules/element-closest": { @@ -9300,9 +9821,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -9321,9 +9842,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", - "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -9365,11 +9886,11 @@ "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.7", + "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.2", "typed-array-byte-length": "^1.0.1", "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" }, @@ -9422,14 +9943,14 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", + "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", @@ -9447,9 +9968,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", + "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", "dev": true }, "node_modules/es-object-atoms": { @@ -9664,9 +10185,9 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz", - "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", "dev": true, "peer": true, "dependencies": { @@ -9679,28 +10200,12 @@ "eslint": ">=6.0.0" } }, - "node_modules/eslint-compat-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-compat-utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -9708,13 +10213,6 @@ "node": ">=10" } }, - "node_modules/eslint-compat-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/eslint-config-prettier": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", @@ -9960,6 +10458,30 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/eslint-plugin-jest": { "version": "25.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", @@ -10014,15 +10536,6 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, "node_modules/eslint-plugin-jsx-a11y/node_modules/axe-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", @@ -10077,28 +10590,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -10119,50 +10616,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", + "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", "dev": true, "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "version": "7.34.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz", + "integrity": "sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "string.prototype.matchall": "^4.0.11" }, "engines": { "node": ">=4" @@ -10172,9 +10665,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "engines": { "node": ">=10" @@ -10298,12 +10791,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10344,18 +10831,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10492,19 +10967,19 @@ "dev": true }, "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { @@ -10667,6 +11142,21 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -10846,9 +11336,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -11048,9 +11538,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.231.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.231.0.tgz", - "integrity": "sha512-WVzuqwq7ZnvBceCG0DGeTQebZE+iIU0mlk5PmJgYj9DDrt+0isGC2m1ezW9vxL4V+HERJJo9ExppOnwKH2op6Q==", + "version": "0.237.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.237.1.tgz", + "integrity": "sha512-PUeG8GQLmrv49vEcFcag7mriJvVs7Yyegnv1DGskvcokhP8UyqWsLV0KoTQ1iAW3ePVUIGUc3MFfBaXwz9MmIg==", "dev": true, "engines": { "node": ">=0.4.0" @@ -11144,17 +11634,17 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, "node_modules/forwarded": { @@ -11339,6 +11829,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/get-npm-tarball-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", @@ -11349,15 +11848,12 @@ } }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11381,9 +11877,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", "dev": true, "peer": true, "dependencies": { @@ -11437,22 +11933,22 @@ "dev": true }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11486,9 +11982,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -11573,12 +12069,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -11835,6 +12332,12 @@ "tslib": "^2.0.3" } }, + "node_modules/header-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -12033,12 +12536,12 @@ } }, "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=8.12.0" + "node": ">=10.17.0" } }, "node_modules/husky": { @@ -12098,9 +12601,9 @@ } }, "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", "dev": true }, "node_modules/import-fresh": { @@ -12150,6 +12653,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -12172,18 +12676,18 @@ } }, "node_modules/inquirer": { - "version": "9.2.16", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.16.tgz", - "integrity": "sha512-qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==", + "version": "9.2.23", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.23.tgz", + "integrity": "sha512-kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==", "dev": true, "dependencies": { + "@inquirer/figures": "^1.0.3", "@ljharb/through": "^2.3.13", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -12330,6 +12834,15 @@ "node": ">=10.13.0" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", @@ -13046,18 +13559,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -13074,13 +13575,10 @@ } }, "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -13100,12 +13598,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.4.tgz", @@ -13147,9 +13639,9 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -13165,9 +13657,9 @@ } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", + "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", "dev": true, "dependencies": { "async": "^3.2.3", @@ -13235,9 +13727,9 @@ } }, "node_modules/joi": { - "version": "17.12.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz", - "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==", + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", "dev": true, "dependencies": { "@hapi/hoek": "^9.3.0", @@ -13252,6 +13744,18 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -13350,9 +13854,9 @@ } }, "node_modules/jsdom": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", - "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz", + "integrity": "sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==", "dev": true, "dependencies": { "cssstyle": "^4.0.1", @@ -13360,21 +13864,21 @@ "decimal.js": "^10.4.3", "form-data": "^4.0.0", "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.7", + "nwsapi": "^2.2.10", "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", + "rrweb-cssom": "^0.7.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.3", + "tough-cookie": "^4.1.4", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0", - "ws": "^8.16.0", + "ws": "^8.17.0", "xml-name-validator": "^5.0.0" }, "engines": { @@ -13389,6 +13893,20 @@ } } }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jsdom/node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -13485,12 +14003,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -13566,15 +14078,15 @@ } }, "node_modules/known-css-properties": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", - "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", + "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", "dev": true }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", "dev": true }, "node_modules/language-tags": { @@ -13654,12 +14166,15 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -13669,21 +14184,21 @@ "dev": true }, "node_modules/lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.5.tgz", + "integrity": "sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==", + "dev": true, + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.3.4", + "execa": "~8.0.1", + "lilconfig": "~3.1.1", + "listr2": "~8.2.1", + "micromatch": "~4.0.7", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.4.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -13775,12 +14290,12 @@ } }, "node_modules/lint-staged/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/lint-staged/node_modules/emoji-regex": { @@ -13864,16 +14379,16 @@ } }, "node_modules/lint-staged/node_modules/listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz", + "integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==", "dev": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.0.0", - "rfdc": "^1.3.0", + "rfdc": "^1.3.1", "wrap-ansi": "^9.0.0" }, "engines": { @@ -14120,10 +14635,13 @@ } }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", + "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -14512,6 +15030,12 @@ "tslib": "^2.0.3" } }, + "node_modules/lower-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -14531,26 +15055,23 @@ } }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/magicast": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.3.tgz", - "integrity": "sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.4.tgz", + "integrity": "sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "source-map-js": "^1.0.2" + "@babel/parser": "^7.24.4", + "@babel/types": "^7.24.0", + "source-map-js": "^1.2.0" } }, "node_modules/make-dir": { @@ -14661,9 +15182,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", "dev": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -14934,9 +15455,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", "dev": true, "funding": [ { @@ -15408,9 +15929,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", "dev": true, "funding": [ { @@ -15462,12 +15983,12 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -15547,9 +16068,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -15608,15 +16129,15 @@ "dev": true }, "node_modules/mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", "dev": true, "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" } }, "node_modules/mlly/node_modules/acorn": { @@ -15701,6 +16222,12 @@ "tslib": "^2.0.3" } }, + "node_modules/no-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", @@ -15865,9 +16392,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", "dev": true }, "node_modules/nypm": { @@ -16281,17 +16808,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -16538,6 +17065,12 @@ "tslib": "^2.0.3" } }, + "node_modules/param-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -16622,6 +17155,12 @@ "tslib": "^2.0.3" } }, + "node_modules/pascal-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", @@ -16632,6 +17171,12 @@ "tslib": "^2.0.3" } }, + "node_modules/path-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -16687,25 +17232,25 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -16765,9 +17310,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -16825,14 +17370,14 @@ } }, "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", "dev": true, "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" } }, "node_modules/platform": { @@ -16842,9 +17387,9 @@ "dev": true }, "node_modules/playwright-core": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", - "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -16854,13 +17399,13 @@ } }, "node_modules/playwright-webkit": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.43.1.tgz", - "integrity": "sha512-7pWboK8mFeWxue4Zt/xot/ItpYTbtSf0qvynDKT7FKpdJwRyOQX0319zt29I2O8/FMeL5DXiGoyhWUSFDqe6pA==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.44.1.tgz", + "integrity": "sha512-aHdn+Fum7SEBG4JB1TAElewxHRjYX9tDhznxI5UMaYI3Ps9C3Ljz8y+D353rMfG5tyiokVNmM/Ma47vtPINy3A==", "dev": true, "hasInstallScript": true, "dependencies": { - "playwright-core": "1.43.1" + "playwright-core": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -17061,9 +17606,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -17089,9 +17634,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -17262,18 +17807,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/prettier-eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/prettier-eslint/node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", @@ -17304,19 +17837,16 @@ } }, "node_modules/prettier-eslint/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/prettier-eslint/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -17324,11 +17854,21 @@ "node": ">=10" } }, - "node_modules/prettier-eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/prettier-fallback": { + "name": "prettier", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } }, "node_modules/pretty-bytes": { "version": "5.6.0", @@ -17486,9 +18026,9 @@ } }, "node_modules/qs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", - "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", "dev": true, "dependencies": { "side-channel": "^1.0.6" @@ -17680,14 +18220,102 @@ } }, "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dev": true, + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dev": true, + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/react-remove-scroll/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dev": true, + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -17830,9 +18458,9 @@ } }, "node_modules/recast": { - "version": "0.23.6", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.6.tgz", - "integrity": "sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==", + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", "dev": true, "dependencies": { "ast-types": "^0.16.1", @@ -17845,6 +18473,12 @@ "node": ">= 4" } }, + "node_modules/recast/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/receptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/receptor/-/receptor-1.0.0.tgz", @@ -18222,6 +18856,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -18237,6 +18872,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -18253,6 +18889,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, "node_modules/rollup-plugin-copy": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", @@ -18293,6 +18964,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -18380,9 +19052,9 @@ "dev": true }, "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.0.tgz", + "integrity": "sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==", "dev": true }, "node_modules/run-async": { @@ -18426,6 +19098,12 @@ "tslib": "^2.1.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", @@ -18488,9 +19166,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.72.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz", - "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==", + "version": "1.77.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", + "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -18595,6 +19273,12 @@ "upper-case-first": "^2.0.2" } }, + "node_modules/sentence-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -18774,6 +19458,12 @@ "tslib": "^2.0.3" } }, + "node_modules/snake-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -18845,9 +19535,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, "node_modules/sshpk": { @@ -18927,12 +19617,12 @@ "dev": true }, "node_modules/storybook": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.0.4.tgz", - "integrity": "sha512-FUr3Uc2dSAQ80jINH5fSXz7zD7Ncn08OthROjwRtHAH+jMf4wxyZ+RhF3heFy9xLot2/HXOLIWyHyzZZMtGhxg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.1.5.tgz", + "integrity": "sha512-v4o8AfTvxWpdGa9Pa9x8EAmqbN5yJc+2fW8b6ZaCsDOTh2t5Y3EUHbIzdtvX+1Gb6ALsOs5e2Q9GlCAzjz+WNQ==", "dev": true, "dependencies": { - "@storybook/cli": "8.0.4" + "@storybook/cli": "8.1.5" }, "bin": { "sb": "index.js", @@ -19166,43 +19856,53 @@ } }, "node_modules/strip-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz", - "integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", "dev": true, "dependencies": { - "js-tokens": "^8.0.2" + "js-tokens": "^9.0.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/strip-literal/node_modules/js-tokens": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", - "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", "dev": true }, "node_modules/stylelint": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.3.0.tgz", - "integrity": "sha512-hqC6xNTbQ5HRGQXfIW4HwXcx09raIFz4W4XFbraeqWqYRVVY/ibYvI0dsu0ORMQY8re2bpDdCAeIa2cm+QJ4Sw==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.1.tgz", + "integrity": "sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.1", - "@csstools/css-tokenizer": "^2.2.4", - "@csstools/media-query-list-parser": "^2.1.9", - "@csstools/selector-specificity": "^3.0.2", - "@dual-bundle/import-meta-resolve": "^4.0.0", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11", + "@csstools/selector-specificity": "^3.1.1", + "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.1", + "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^9.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", @@ -19210,23 +19910,23 @@ "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.30.0", + "known-css-properties": "^0.31.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", - "micromatch": "^4.0.5", + "micromatch": "^4.0.7", "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.16", + "postcss-selector-parser": "^6.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", + "table": "^6.8.2", "write-file-atomic": "^5.0.1" }, "bin": { @@ -19234,10 +19934,6 @@ }, "engines": { "node": ">=18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" } }, "node_modules/stylelint-config-recommended": { @@ -19291,9 +19987,9 @@ } }, "node_modules/stylelint-config-standard-scss": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.0.0.tgz", - "integrity": "sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.1.0.tgz", + "integrity": "sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==", "dev": true, "dependencies": { "stylelint-config-recommended-scss": "^14.0.0", @@ -19304,7 +20000,7 @@ }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^16.1.0" + "stylelint": "^16.3.1" }, "peerDependenciesMeta": { "postcss": { @@ -19313,12 +20009,12 @@ } }, "node_modules/stylelint-scss": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.2.1.tgz", - "integrity": "sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.3.0.tgz", + "integrity": "sha512-8OSpiuf1xC7f8kllJsBOFAOYp/mR/C1FXMVeOFjtJPw+AFvEmC93FaklHt7MlOqU4poxuQ1TkYMyfI0V+1SxjA==", "dev": true, "dependencies": { - "known-css-properties": "^0.29.0", + "known-css-properties": "^0.30.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.15", @@ -19332,9 +20028,9 @@ } }, "node_modules/stylelint-scss/node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", + "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", "dev": true }, "node_modules/stylelint/node_modules/ansi-regex": { @@ -19349,12 +20045,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/stylelint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", @@ -19388,28 +20078,28 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", + "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", "dev": true, "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^5.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, "dependencies": { - "flatted": "^3.2.9", + "flatted": "^3.3.1", "keyv": "^4.5.4" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/stylelint/node_modules/global-modules": { @@ -19444,18 +20134,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/stylelint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/stylelint/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -19579,9 +20257,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -19595,15 +20273,15 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.14.0.tgz", + "integrity": "sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -19762,18 +20440,19 @@ } }, "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=14.16" } }, "node_modules/temp/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -19794,6 +20473,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -19803,62 +20483,30 @@ } }, "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", - "dev": true, - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tempy/node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19882,6 +20530,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -19936,15 +20585,15 @@ "dev": true }, "node_modules/tinybench": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", - "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", "dev": true }, "node_modules/tinypool": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", - "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", "dev": true, "engines": { "node": ">=14.0.0" @@ -19968,6 +20617,12 @@ "tslib": "^2.0.3" } }, + "node_modules/title-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -19999,9 +20654,9 @@ } }, "node_modules/tocbot": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.25.0.tgz", - "integrity": "sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.28.2.tgz", + "integrity": "sha512-/MaSa9xI6mIo84IxqqliSCtPlH0oy7sLcY9s26qPMyH/2CxtZ2vNAXYlIdEQ7kjAkCQnc0rbLygf//F5c663oQ==", "dev": true }, "node_modules/toidentifier": { @@ -20014,9 +20669,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "dependencies": { "psl": "^1.1.33", @@ -20090,33 +20745,23 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", + "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=6" } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tsutils": { @@ -20134,12 +20779,6 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -20278,9 +20917,9 @@ } }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -20379,6 +21018,18 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", @@ -20411,15 +21062,18 @@ } }, "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "dependencies": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unist-util-is": { @@ -20496,9 +21150,9 @@ } }, "node_modules/unplugin": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.0.tgz", - "integrity": "sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz", + "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==", "dev": true, "dependencies": { "acorn": "^8.11.3", @@ -20532,9 +21186,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -20551,8 +21205,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -20579,6 +21233,18 @@ "tslib": "^2.0.3" } }, + "node_modules/upper-case-first/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/upper-case/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -20604,6 +21270,61 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-callback-ref/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dev": true, + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -20645,20 +21366,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, "node_modules/v8flags": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", @@ -20701,6 +21408,12 @@ "extsprintf": "^1.2.0" } }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, "node_modules/vfile": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", @@ -20731,13 +21444,13 @@ } }, "node_modules/vite": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz", - "integrity": "sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", "dev": true, "dependencies": { "esbuild": "^0.20.1", - "postcss": "^8.4.36", + "postcss": "^8.4.38", "rollup": "^4.13.0" }, "bin": { @@ -20786,9 +21499,9 @@ } }, "node_modules/vite-node": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.4.0.tgz", - "integrity": "sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -20850,49 +21563,17 @@ "fsevents": "~2.3.2" } }, - "node_modules/vite/node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "fsevents": "~2.3.2" - } - }, "node_modules/vitest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.4.0.tgz", - "integrity": "sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", "dev": true, "dependencies": { - "@vitest/expect": "1.4.0", - "@vitest/runner": "1.4.0", - "@vitest/snapshot": "1.4.0", - "@vitest/spy": "1.4.0", - "@vitest/utils": "1.4.0", + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", "acorn-walk": "^8.3.2", "chai": "^4.3.10", "debug": "^4.3.4", @@ -20904,9 +21585,9 @@ "std-env": "^3.5.0", "strip-literal": "^2.0.0", "tinybench": "^2.5.1", - "tinypool": "^0.8.2", + "tinypool": "^0.8.3", "vite": "^5.0.0", - "vite-node": "1.4.0", + "vite-node": "1.6.0", "why-is-node-running": "^2.2.2" }, "bin": { @@ -20921,8 +21602,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.4.0", - "@vitest/ui": "1.4.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", "happy-dom": "*", "jsdom": "*" }, @@ -20947,6 +21628,20 @@ } } }, + "node_modules/vitest/node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/vitest/node_modules/acorn-walk": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", @@ -21091,9 +21786,9 @@ } }, "node_modules/vue-eslint-parser": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", - "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -21114,26 +21809,11 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-eslint-parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -21141,12 +21821,6 @@ "node": ">=10" } }, - "node_modules/vue-eslint-parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", @@ -21388,6 +22062,15 @@ "node": ">=8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -21518,9 +22201,9 @@ } }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/benefit-finder/package.json b/benefit-finder/package.json index ec8adf48a..5c5c29738 100644 --- a/benefit-finder/package.json +++ b/benefit-finder/package.json @@ -47,26 +47,26 @@ "react-modal": "^3.16.1" }, "devDependencies": { - "@babel/preset-env": "^7.23.9", - "@babel/preset-react": "^7.23.3", - "@storybook/addon-a11y": "^8.0.4", - "@storybook/addon-essentials": "^8.0.4", - "@storybook/addon-interactions": "^8.0.4", - "@storybook/addon-links": "^8.0.4", - "@storybook/addon-mdx-gfm": "^8.0.4", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", + "@storybook/addon-a11y": "^8.1.5", + "@storybook/addon-essentials": "^8.1.5", + "@storybook/addon-interactions": "^8.1.5", + "@storybook/addon-links": "^8.1.5", + "@storybook/addon-mdx-gfm": "^8.1.5", "@storybook/blocks": "^8.0.4", "@storybook/builder-vite": "^8.0.4", - "@storybook/react-vite": "^8.0.4", + "@storybook/react-vite": "^8.1.5", "@storybook/testing-library": "^0.2.2", - "@stylistic/eslint-plugin-js": "^1.6.2", - "@testing-library/jest-dom": "^6.3.0", - "@testing-library/react": "^14.2.2", + "@stylistic/eslint-plugin-js": "^1.8.1", + "@testing-library/jest-dom": "^6.4.5", + "@testing-library/react": "^14.3.1", "@testing-library/user-event": "^14.5.2", - "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.2.2", + "@vitejs/plugin-react": "^4.3.0", + "@vitest/coverage-v8": "^1.6.0", "concurrently": "^8.2.2", "cross-env": "^7.0.3", - "cypress": "^13.6.4", + "cypress": "^13.10.0", "cypress-axe": "^1.5.0", "cypress-plugin-tab": "^1.0.5", "eslint": "^8.57.0", @@ -77,21 +77,21 @@ "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", - "jsdom": "^24.0.0", - "lint-staged": "^15.2.2", - "playwright-webkit": "^1.43.1", + "jsdom": "^24.1.0", + "lint-staged": "^15.2.5", + "playwright-webkit": "^1.44.1", "plop": "^4.0.1", - "postcss": "^8.4.35", - "prettier": "^3.2.4", + "postcss": "^8.4.38", + "prettier": "^3.3.0", "prettier-eslint": "^16.3.0", "prop-types": "^15.8.1", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-scss": "^4.0.0", - "sass": "^1.70.0", - "storybook": "^8.0.4", - "stylelint": "^16.3.0", - "stylelint-config-standard-scss": "^13.0.0", - "vite": "^5.0.12", + "sass": "^1.77.4", + "storybook": "^8.1.5", + "stylelint": "^16.6.1", + "stylelint-config-standard-scss": "^13.1.0", + "vite": "^5.2.12", "vite-plugin-eslint": "^1.8.1", "vitest": "^1.2.2", "wait-on": "^7.2.0" From 4763dc8b36b571d6b1757c7c1ac44dd7a9913067 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 3 Jun 2024 10:20:44 -0400 Subject: [PATCH 09/79] PXBF-1345-update-react-test-utils: install latest for eslint plugins --- benefit-finder/package-lock.json | 159 ++++++++++++------------------- benefit-finder/package.json | 6 +- 2 files changed, 62 insertions(+), 103 deletions(-) diff --git a/benefit-finder/package-lock.json b/benefit-finder/package-lock.json index 946ec6998..b6084e5c1 100644 --- a/benefit-finder/package-lock.json +++ b/benefit-finder/package-lock.json @@ -26,9 +26,9 @@ "@storybook/builder-vite": "^8.0.4", "@storybook/react-vite": "^8.1.5", "@storybook/testing-library": "^0.2.2", - "@stylistic/eslint-plugin-js": "^1.8.1", + "@stylistic/eslint-plugin-js": "^2.1.0", "@testing-library/jest-dom": "^6.4.5", - "@testing-library/react": "^14.3.1", + "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", "@vitejs/plugin-react": "^4.3.0", "@vitest/coverage-v8": "^1.6.0", @@ -41,7 +41,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-config-react-app": "^7.0.1", "eslint-config-standard": "^17.1.0", - "eslint-plugin-cypress": "^2.15.2", + "eslint-plugin-cypress": "^3.3.0", "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", @@ -5554,19 +5554,18 @@ } }, "node_modules/@stylistic/eslint-plugin-js": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.8.1.tgz", - "integrity": "sha512-c5c2C8Mos5tTQd+NWpqwEu7VT6SSRooAguFPMj1cp2RkTYl1ynKoXo8MWy3k4rkbzoeYHrqC2UlUzsroAN7wtQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.1.0.tgz", + "integrity": "sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==", "dev": true, "dependencies": { "@types/eslint": "^8.56.10", "acorn": "^8.11.3", - "escape-string-regexp": "^4.0.0", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1" + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { "eslint": ">=8.40.0" @@ -5584,6 +5583,35 @@ "node": ">=0.4.0" } }, + "node_modules/@stylistic/eslint-plugin-js/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@stylistic/eslint-plugin-js/node_modules/espree": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@testing-library/dom": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.1.0.tgz", @@ -5761,101 +5789,30 @@ } }, "node_modules/@testing-library/react": { - "version": "14.3.1", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz", - "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.0.tgz", + "integrity": "sha512-guuxUKRWQ+FgNX0h0NS0FIq3Q3uLtWVpBzcLOggmfMoUpgBnzBzvLLd4fbm6yS8ydJd94cIfY4yP9qUQjM2KwQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^9.0.0", - "@types/react-dom": "^18.0.0" + "@babel/runtime": "^7.12.5" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", "react": "^18.0.0", "react-dom": "^18.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@testing-library/react/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@testing-library/react/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, "node_modules/@testing-library/user-event": { @@ -6208,6 +6165,8 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/react": "*" } @@ -10329,15 +10288,15 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", - "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-3.3.0.tgz", + "integrity": "sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ==", "dev": true, "dependencies": { "globals": "^13.20.0" }, "peerDependencies": { - "eslint": ">= 3.2.1" + "eslint": ">=7" } }, "node_modules/eslint-plugin-cypress/node_modules/globals": { diff --git a/benefit-finder/package.json b/benefit-finder/package.json index 5c5c29738..825fa6c47 100644 --- a/benefit-finder/package.json +++ b/benefit-finder/package.json @@ -58,9 +58,9 @@ "@storybook/builder-vite": "^8.0.4", "@storybook/react-vite": "^8.1.5", "@storybook/testing-library": "^0.2.2", - "@stylistic/eslint-plugin-js": "^1.8.1", + "@stylistic/eslint-plugin-js": "^2.1.0", "@testing-library/jest-dom": "^6.4.5", - "@testing-library/react": "^14.3.1", + "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", "@vitejs/plugin-react": "^4.3.0", "@vitest/coverage-v8": "^1.6.0", @@ -73,7 +73,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-config-react-app": "^7.0.1", "eslint-config-standard": "^17.1.0", - "eslint-plugin-cypress": "^2.15.2", + "eslint-plugin-cypress": "^3.3.0", "eslint-plugin-storybook": "^0.8.0", "http-server": "^14.1.1", "husky": "^9.0.11", From 8e7694845930f0d850a4ffdbe333b61d70b62371 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Mon, 3 Jun 2024 14:22:00 -0400 Subject: [PATCH 10/79] Remove uswds version-sync --- .github/workflows/uswds-version-sync.yml | 53 ------------------------ 1 file changed, 53 deletions(-) delete mode 100644 .github/workflows/uswds-version-sync.yml diff --git a/.github/workflows/uswds-version-sync.yml b/.github/workflows/uswds-version-sync.yml deleted file mode 100644 index faf621c6e..000000000 --- a/.github/workflows/uswds-version-sync.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- - name: Benefit-finder uswds version sync - - on: - workflow_dispatch: - # It will run at 6 AM on Modays - schedule: - - cron: '0 6 * * 1' - - jobs: - uswds-version-check: - runs-on: ubuntu-latest - steps: - - name: Cloning the Repo and initiating the Submodule - env: - GITHUB_TOKEN: '${{ secrets.ADD_TO_PROJECT_PAT }}' - run: | - echo "cloning the repo and initiating the usagov-2021 submodule" - gh repo clone GSA/px-bears-drupal - cd px-bears-drupal - git submodule init - git submodule update - - name: Run the script - env: - GITHUB_TOKEN: '${{ secrets.ADD_TO_PROJECT_PAT }}' - run: | - cd px-bears-drupal/bin - bash check-uswds-version.sh - - name: Create Pull Request - env: - GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} - Tech_lead: ${{ vars.TECH_LEAD }} - uses: peter-evans/create-pull-request@v5 - with: - path: "px-bears-drupal" - token: ${{ secrets.ADD_TO_PROJECT_PAT }} - commit-message: Update USDWS version - committer: GitHub - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - signoff: false - title: '[USDWS Version Sync] - Version Update' - body: | - Update report - - This PR is for ${{ env.Tech_lead }} to review. - - Auto-generated by [create-pull-request][1] - - [1]: https://github.com/peter-evans/create-pull-request - labels: | - USDWS version sync - automated pr - assignees: ${{ env.Tech_lead }} - reviewers: ${{ env.Tech_lead }} - \ No newline at end of file From 5173ed6b4629096266291853aab54a8cdc634c44 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 3 Jun 2024 14:25:05 -0400 Subject: [PATCH 11/79] PXBF-ensure-prod-checkout: ensure prod checkout when moved --- scripts/pipeline/mv-usagov_benefit_finder.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/pipeline/mv-usagov_benefit_finder.sh b/scripts/pipeline/mv-usagov_benefit_finder.sh index 34a366c09..8ff856a6a 100755 --- a/scripts/pipeline/mv-usagov_benefit_finder.sh +++ b/scripts/pipeline/mv-usagov_benefit_finder.sh @@ -18,12 +18,16 @@ then # init submodule git submodule init git submodule update - cd "${BENEFIT_FINDER_MODULE_LOCATION}" + cd "${USAGOV_PROJECT_LOCATION}" || exit 1 git fetch origin prod:prod git checkout prod else echo "usa.gov project directory exists, updating submodule" git pull --recurse-submodules + cd "${USAGOV_PROJECT_LOCATION}" || exit 1 + pwd + git fetch origin prod:prod + git checkout prod fi # check if module directory exist From e0a514261bcc4f87c9c43a15fe6127d195de5a11 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 5 Jun 2024 14:20:35 -0400 Subject: [PATCH 12/79] PXBF-1300-migrate-automated-nightly: remove migrated tests --- ...s-page-navigate-benefits-finder-card.cy.js | 15 --- .../e2e/usagov-public-site/links.cy.js | 2 - .../mobile-menu-and-breadcrumb.cy.js | 106 ------------------ 3 files changed, 123 deletions(-) delete mode 100644 benefit-finder/cypress/e2e/usagov-public-site/benefits-page-navigate-benefits-finder-card.cy.js delete mode 100644 benefit-finder/cypress/e2e/usagov-public-site/mobile-menu-and-breadcrumb.cy.js diff --git a/benefit-finder/cypress/e2e/usagov-public-site/benefits-page-navigate-benefits-finder-card.cy.js b/benefit-finder/cypress/e2e/usagov-public-site/benefits-page-navigate-benefits-finder-card.cy.js deleted file mode 100644 index 3f450df84..000000000 --- a/benefit-finder/cypress/e2e/usagov-public-site/benefits-page-navigate-benefits-finder-card.cy.js +++ /dev/null @@ -1,15 +0,0 @@ -/// - -import { pageObjects } from '../../support/pageObjects' - -describe('Validate benefit-finder card on benefits page', () => { - it('Should navigate to Benefit finder when clicking on Benefit finder card', () => { - cy.visit('/benefits') - pageObjects.cardGroup().contains('Benefit finder').click() - pageObjects - .breadCrumbList() - .should('contain', 'Home') - .and('contain', 'Government benefits') - .and('contain', 'Benefit finder') - }) -}) diff --git a/benefit-finder/cypress/e2e/usagov-public-site/links.cy.js b/benefit-finder/cypress/e2e/usagov-public-site/links.cy.js index 32218b437..496485c77 100644 --- a/benefit-finder/cypress/e2e/usagov-public-site/links.cy.js +++ b/benefit-finder/cypress/e2e/usagov-public-site/links.cy.js @@ -1,5 +1,3 @@ -/// - import * as utils from '../../support/utils' import * as BENEFITS_ELIBILITY_DATA from '../../fixtures/benefits-eligibility.json' diff --git a/benefit-finder/cypress/e2e/usagov-public-site/mobile-menu-and-breadcrumb.cy.js b/benefit-finder/cypress/e2e/usagov-public-site/mobile-menu-and-breadcrumb.cy.js deleted file mode 100644 index db65621d1..000000000 --- a/benefit-finder/cypress/e2e/usagov-public-site/mobile-menu-and-breadcrumb.cy.js +++ /dev/null @@ -1,106 +0,0 @@ -/// - -import { pageObjects } from '../../support/pageObjects' - -describe('Validate user can navigate each path of mobile menu and breadcrumb displays correctly', () => { - Cypress.on('uncaught:exception', (_err, runnable) => { - return false - }) - beforeEach(() => { - cy.visit('/benefit-finder') - }) - - context('Validate English menus and breadcrumb', () => { - it('Should navigate to Benefit Finder page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Benefit finder').click() - pageObjects - .breadCrumbList() - .should('contain', 'Home') - .and('contain', 'Government benefits') - .and('contain', 'Benefit finder') - }) - - it('Should navigate to Death of a Loved One page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Death of a loved one').click() - pageObjects - .breadCrumbList() - .should('contain', 'Home') - .and('contain', 'Government benefits') - .and('contain', 'Benefit finder') - .and('contain', 'Death of a loved one') - }) - - it('Should navigate to Retirement page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Retirement').click() - pageObjects - .breadCrumbList() - .should('contain', 'Home') - .and('contain', 'Government benefits') - .and('contain', 'Benefit finder') - .and('contain', 'Retirement') - }) - - it('Should navigate to Disability page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Disability').click() - pageObjects - .breadCrumbList() - .should('contain', 'Home') - .and('contain', 'Government benefits') - .and('contain', 'Benefit finder') - .and('contain', 'Disability') - }) - }) - - context('Validate Spanish menus and breadcrumb', () => { - beforeEach(() => { - cy.get('.language-link').click() - }) - - it('Should navigate to Buscador de beneficios page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Buscador de beneficios').click() - pageObjects - .breadCrumbList() - .should('contain', 'Página principal') - .and('contain', 'Ayuda económica y beneficios del Gobierno') - .and('contain', 'Buscador de beneficios') - }) - - it('Should navigate to Muerte de un ser querido page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Muerte de un ser querido').click() - pageObjects - .breadCrumbList() - .should('contain', 'Página principal') - .and('contain', 'Ayuda económica y beneficios del Gobierno') - .and('contain', 'Buscador de beneficios') - .and('contain', 'Muerte de un ser querido') - }) - - it('Should navigate to Jubilación page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Jubilación').click() - pageObjects - .breadCrumbList() - .should('contain', 'Página principal') - .and('contain', 'Ayuda económica y beneficios del Gobierno') - .and('contain', 'Buscador de beneficios') - .and('contain', 'Jubilación') - }) - - it('Should navigate to Discapacidad page', () => { - pageObjects.menuButton().click() - pageObjects.mobileMenu().contains('Discapacidad').click() - pageObjects - .breadCrumbList() - .should('contain', 'Página principal') - .and('contain', 'Ayuda económica y beneficios del Gobierno') - .and('contain', 'Buscador de beneficios') - .and('contain', 'Discapacidad') - }) - }) -}) From 3657922cb57d41f442e4b1baf0169d802da59c76 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 14:52:30 -0400 Subject: [PATCH 13/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index bf02d1495..b276a95ac 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -18,13 +18,14 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - + - name: Install Node uses: actions/setup-node@v4 with: node-version-file: "./benefit-finder/package.json" - name: Cypress Run + id: e2e uses: cypress-io/github-action@v6 with: browser: chrome @@ -32,8 +33,17 @@ jobs: config-file: cypress.prod.config.js working-directory: benefit-finder - - uses: actions/upload-artifact@v3 - if: failure () + - name: create github issue + uses: dacbd/create-issue-action@main with: - name: cypress-screenshots - path: cypress/screenshots + token: ${{ secrets.ADD_TO_PROJECT_PAT }} + assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} + title: "Nightly e2e Test(s) Fail" + body: | + ## Automated issue of Nightly e2e failure + +
Show Errors + + `${{ steps.e2e.outcome }}` + +
From 43abc9d535b772d06a17341a36979e4b949aec00 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 14:55:20 -0400 Subject: [PATCH 14/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index b276a95ac..38f378f25 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -37,7 +37,7 @@ jobs: uses: dacbd/create-issue-action@main with: token: ${{ secrets.ADD_TO_PROJECT_PAT }} - assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} + assignees: ${{ vars.TECH_LEAD }} title: "Nightly e2e Test(s) Fail" body: | ## Automated issue of Nightly e2e failure From f32bc4b2f3dfe2e4c127ac8160b843e66ebb3ca5 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 15:04:50 -0400 Subject: [PATCH 15/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index 38f378f25..40b896a79 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -35,6 +35,7 @@ jobs: - name: create github issue uses: dacbd/create-issue-action@main + if: failure() with: token: ${{ secrets.ADD_TO_PROJECT_PAT }} assignees: ${{ vars.TECH_LEAD }} From c5cf381fb9c474df1999f37aaabf3111aa20431b Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 15:20:34 -0400 Subject: [PATCH 16/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index 40b896a79..1c4b1b16b 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -1,4 +1,4 @@ -name: Run Cypress e2e Prod Nightly Tests +name: Run Cypress e2e Prod Links Tests on: workflow_dispatch: @@ -39,12 +39,14 @@ jobs: with: token: ${{ secrets.ADD_TO_PROJECT_PAT }} assignees: ${{ vars.TECH_LEAD }} - title: "Nightly e2e Test(s) Fail" + title: | + [${{ github.workflow }}] failed during [${{ github.event_name }}] body: | ## Automated issue of Nightly e2e failure -
Show Errors + ## Failure Report: - `${{ steps.e2e.outcome }}` + > [!IMPORTANT] + > Details on failed run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} -
+ - Workflow Path: `${{ github.workflow_ref }}` From 098f63638df04f68076fbcd8ef13ffdaee392e18 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 15:25:51 -0400 Subject: [PATCH 17/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index 1c4b1b16b..8c45c27bf 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -38,7 +38,7 @@ jobs: if: failure() with: token: ${{ secrets.ADD_TO_PROJECT_PAT }} - assignees: ${{ vars.TECH_LEAD }} + assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} title: | [${{ github.workflow }}] failed during [${{ github.event_name }}] body: | @@ -48,5 +48,3 @@ jobs: > [!IMPORTANT] > Details on failed run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - - - Workflow Path: `${{ github.workflow_ref }}` From d3b79ad5b502bf9fd8a6b12015afc832c4ab6be8 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 15:26:49 -0400 Subject: [PATCH 18/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index 8c45c27bf..d789b7143 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -40,9 +40,9 @@ jobs: token: ${{ secrets.ADD_TO_PROJECT_PAT }} assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} title: | - [${{ github.workflow }}] failed during [${{ github.event_name }}] + [${{ github.workflow }}] failed body: | - ## Automated issue of Nightly e2e failure + ## Automated issue of Prod Links Tests ## Failure Report: From e6caed0fc7fc27eb1c158db2a4f913905d89b359 Mon Sep 17 00:00:00 2001 From: Scott Queen Date: Wed, 5 Jun 2024 15:40:58 -0400 Subject: [PATCH 19/79] Update test-cypress-prod-e2e.yml --- .github/workflows/test-cypress-prod-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml index d789b7143..897c04aad 100644 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ b/.github/workflows/test-cypress-prod-e2e.yml @@ -3,7 +3,7 @@ name: Run Cypress e2e Prod Links Tests on: workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '0 0 * * 1' permissions: read-all From 46804be232ba89803aaa7ca3d8cf23b11b390017 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 5 Jun 2024 15:45:58 -0400 Subject: [PATCH 20/79] PXBF-dev: remove old file --- .github/workflows/test-cypress-prod-e2e.yml | 50 --------------------- 1 file changed, 50 deletions(-) delete mode 100644 .github/workflows/test-cypress-prod-e2e.yml diff --git a/.github/workflows/test-cypress-prod-e2e.yml b/.github/workflows/test-cypress-prod-e2e.yml deleted file mode 100644 index 897c04aad..000000000 --- a/.github/workflows/test-cypress-prod-e2e.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Run Cypress e2e Prod Links Tests - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * 1' - -permissions: read-all - -defaults: - run: - working-directory: ./benefit-finder - -jobs: - install: - name: cypress-run-prod-e2e - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Node - uses: actions/setup-node@v4 - with: - node-version-file: "./benefit-finder/package.json" - - - name: Cypress Run - id: e2e - uses: cypress-io/github-action@v6 - with: - browser: chrome - env: NODE_ENV=test - config-file: cypress.prod.config.js - working-directory: benefit-finder - - - name: create github issue - uses: dacbd/create-issue-action@main - if: failure() - with: - token: ${{ secrets.ADD_TO_PROJECT_PAT }} - assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} - title: | - [${{ github.workflow }}] failed - body: | - ## Automated issue of Prod Links Tests - - ## Failure Report: - - > [!IMPORTANT] - > Details on failed run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} From 350a5f94fcd77d9014448dcb349af05d70c36eba Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 5 Jun 2024 15:46:18 -0400 Subject: [PATCH 21/79] PXBF-dev: create new workflow file for prod links --- .github/workflows/test-cypress-prod-links.yml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/test-cypress-prod-links.yml diff --git a/.github/workflows/test-cypress-prod-links.yml b/.github/workflows/test-cypress-prod-links.yml new file mode 100644 index 000000000..4d1e036dd --- /dev/null +++ b/.github/workflows/test-cypress-prod-links.yml @@ -0,0 +1,50 @@ +name: Production Links Test + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 1' + +permissions: read-all + +defaults: + run: + working-directory: ./benefit-finder + +jobs: + install: + name: cypress-run-prod-e2e + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Node + uses: actions/setup-node@v4 + with: + node-version-file: "./benefit-finder/package.json" + + - name: Cypress Run + id: e2e + uses: cypress-io/github-action@v6 + with: + browser: chrome + env: NODE_ENV=test + config-file: cypress.prod.config.js + working-directory: benefit-finder + + - name: create github issue + uses: dacbd/create-issue-action@main + if: failure() + with: + token: ${{ secrets.ADD_TO_PROJECT_PAT }} + assignees: ${{ vars.TECH_LEAD }}, ${{ vars.CONTENT_LEAD }} + title: | + [${{ github.workflow }}] failed + body: | + ## Automated issue of produciton links test + + ## Failure Report: + + > [!IMPORTANT] + > Details on failed run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} From d2eed0f376e1fc07c0b53a3728b4b835be5223b5 Mon Sep 17 00:00:00 2001 From: gchi25 Date: Wed, 5 Jun 2024 19:11:46 -0400 Subject: [PATCH 22/79] PXBF-870-criteria-cannot-uncheck-haschild-validation: criteria uncheck haschild validation --- .../usagov_benefit_finder_content.module | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index 8b3e43eae..50a97ba2f 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -300,3 +300,92 @@ function _usagov_benefit_finder_content_check_criteria_usage_in_benefit(int $nid return $return; } + +/** + * Implements hook_form_FORM_ID_alter(). + * + * @param array $form + * Form array. + * @param FormStateInterface $form_state + * Form state object. + */ +function usagov_benefit_finder_content_form_node_bears_criteria_edit_form_alter(array &$form, FormStateInterface $form_state) { + $form['#validate'][] = '_usagov_benefit_finder_content_node_bears_criteria_edit_form_validate'; +} + +/** + * Validates criteria edit form hasChild field. + * + * @param array $form + * Form array. + * @param FormStateInterface $form_state + * Form state object. + */ +function _usagov_benefit_finder_content_node_bears_criteria_edit_form_validate(array $form, FormStateInterface $form_state) { + $errors = []; + $error_count = 0; + + $has_child = $form_state->getValue('field_b_has_child'); + + if ($has_child['value']) { + return; + } + + $node = \Drupal::routeMatch()->getParameter('node'); + $nid = $node->id(); + + $result = _usagov_benefit_finder_content_check_criteria_has_child($nid); + if (!empty($result)) { + foreach ($result as $row) { + $errors[] = t("Can not uncheck Has Child. Have child in Life event form: $row[title] ($row[nid])"); + } + } + + if (!empty($errors)) { + foreach ($errors as $error) { + $form_state->setErrorByName((string) ++$error_count, $error); + } + } +} + +/** + * It checks if criteria has child. + * + * @param int $nid + * Node ID of given criteria. + */ +function _usagov_benefit_finder_content_check_criteria_has_child(int $nid) { + $return = []; + + $connection = Database::getConnection(); + + $query = $connection->select('paragraph__field_b_children', 't'); + $query->fields('t', ['entity_id']); + $query->condition('t.bundle', 'b_levent_elg_criteria'); + $result = $query->execute(); + + $entity_ids = []; + foreach ($result as $row) { + $entity_ids[] = $row->entity_id; + } + + if (empty($entity_ids)) { + return $return; + } + + $query = $connection->select('node_field_data', 't1'); + $query->join('node__field_b_sections_elg_criteria', 't2', 't1.nid = t2.entity_id'); + $query->join('paragraph__field_b_criterias', 't3', 't2.field_b_sections_elg_criteria_target_id = t3.entity_id'); + $query->join('paragraph__field_b_criteria_key', 't4', 't3.field_b_criterias_target_id = t4.entity_id'); + $query->fields('t1', ['title', 'nid']); + $query->condition('t4.field_b_criteria_key_target_id', $nid); + $query->condition('t3.field_b_criterias_target_id', $entity_ids, 'IN'); + $query->orderBy('title'); + $result = $query->execute(); + + foreach ($result as $row) { + $return[] = ['nid' => $row->nid, 'title' => $row->title]; + } + + return $return; +} From 123a2b6bedce99f4f2c37bb978b456255e5b26a0 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 10:49:11 -0400 Subject: [PATCH 23/79] Overwrite tome scripts with blank script, changing Branch to dev to test --- .github/workflows/build-and-deploy.yml | 42 ++++++++++++++------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 8e46cafab..6d716c950 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -2,9 +2,10 @@ name: Build and deploy on: push: - branches: + branches: - dev - main + - 1393-stop-tome jobs: php-lint: @@ -19,7 +20,8 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + echo "BRANCH=dev" >> $GITHUB_ENV - name: Install PHP run: bash ./scripts/pipeline/deb-php-install.sh # - name: Install Node.js @@ -57,10 +59,10 @@ jobs: if: github.ref == 'refs/heads/dev' secrets: inherit backup-database-main: - needs: php-lint - uses: ./.github/workflows/database-backup-main.yml - if: github.ref == 'refs/heads/main' - secrets: inherit + needs: php-lint + uses: ./.github/workflows/database-backup-main.yml + if: github.ref == 'refs/heads/main' + secrets: inherit component-library: needs: [backup-database-dev, backup-database-main] if: always() && contains(needs.*.result, 'success') && !contains(needs.*.result, 'failure') @@ -90,10 +92,10 @@ jobs: cd .. - name: Deploy Storybook env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh cd benefit-finder @@ -146,6 +148,8 @@ jobs: sed -i 's/80/8080/g' Dockerfile-cms sed -i 's/ENTRYPOINT/CMD/' Dockerfile-cms sed -i 's/\["s3"\]\[\]?/s3\[\]/g' scripts/tome-run.sh scripts/tome-sync.sh + echo "#!/bin/bash" > scripts/tome-run.sh + echo "#!/bin/bash" > scripts/tome-sync.sh sed -i 's/80/8080/g' .docker/src-cms/etc/nginx/partials/cms.conf.tmpl sed -i "s/\$service\['name'\] === 'database'/stristr(\$service\['name'\], 'mysql')/" web/sites/default/settings.php sed -i "s/\$settings\['hash_salt'\] = \$service\['credentials'\]\['HASH_SALT'\]/\$settings\['hash_salt'\] = \$service\['credentials'\]\['hash_salt'\]/" web/sites/default/settings.php @@ -171,10 +175,10 @@ jobs: file: ./usagov-2021/Dockerfile-cms push: true tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + labels: ${{ steps.meta.outputs.labels }} - name: Configure manifest.yml env: - PROJECT: '${{ secrets.PROJECT }}' + PROJECT: "${{ secrets.PROJECT }}" run: | declare MEMORY [ "${BRANCH}" = "dev" ] && MEMORY=${{ vars.CMS_MEMORY_DEV }} @@ -191,12 +195,12 @@ jobs: sed -i '16i\ command: /var/www/scripts/entrypoint.sh' manifest.yml - name: Deploy application env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - CR_PAT: '${{ secrets.CR_PAT }}' - CR_USERNAME: '${{ secrets.CR_USERNAME }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + CR_PAT: "${{ secrets.CR_PAT }}" + CR_USERNAME: "${{ secrets.CR_USERNAME }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh cd usagov-2021 @@ -206,4 +210,4 @@ jobs: cf add-network-policy ${PROJECT}-waf-${BRANCH} ${PROJECT}-cms-${BRANCH} -s ${PROJECT}-${BRANCH} -o ${CF_ORG} --protocol tcp --port 61443 cf map-route benefit-finder-cms-${BRANCH} apps.internal --hostname benefit-finder-cms-${BRANCH} --app-protocol http1 cd .. - source ./scripts/pipeline/cloud-gov-post-deploy.sh \ No newline at end of file + source ./scripts/pipeline/cloud-gov-post-deploy.sh From d29629f2be29d87b785e15c947610eb458fc7246 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 10:57:35 -0400 Subject: [PATCH 24/79] Overwrite tome scripts with blank script, changing Branch to dev to test 2 --- .github/workflows/build-and-deploy.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 6d716c950..d0dc77fd7 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -77,7 +77,8 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + echo "BRANCH=dev" >> $GITHUB_ENV - name: Install basic dependancies run: | ./scripts/pipeline/deb-basic-deps.sh @@ -123,7 +124,8 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + echo "BRANCH=dev" >> $GITHUB_ENV - name: Install basic dependancies run: ./scripts/pipeline/deb-basic-deps.sh - name: Install Cloudfoundry CLI From b2f90b4fc049633ee883405b786a7a894bd1c2fd Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 11:19:22 -0400 Subject: [PATCH 25/79] Overwrite tome scripts with blank script, changing Branch to dev to test 3 --- .github/workflows/build-and-deploy.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index d0dc77fd7..825f2c972 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -150,8 +150,7 @@ jobs: sed -i 's/80/8080/g' Dockerfile-cms sed -i 's/ENTRYPOINT/CMD/' Dockerfile-cms sed -i 's/\["s3"\]\[\]?/s3\[\]/g' scripts/tome-run.sh scripts/tome-sync.sh - echo "#!/bin/bash" > scripts/tome-run.sh - echo "#!/bin/bash" > scripts/tome-sync.sh + sed -i "s,/var/www/scripts/tome-run.sh $URI $@,," > .docker/src-cms/etc/periodic/1min/generate-static-site sed -i 's/80/8080/g' .docker/src-cms/etc/nginx/partials/cms.conf.tmpl sed -i "s/\$service\['name'\] === 'database'/stristr(\$service\['name'\], 'mysql')/" web/sites/default/settings.php sed -i "s/\$settings\['hash_salt'\] = \$service\['credentials'\]\['HASH_SALT'\]/\$settings\['hash_salt'\] = \$service\['credentials'\]\['hash_salt'\]/" web/sites/default/settings.php From cd66c8e44b8874ac8ced67797f7d2c1e2fc9274a Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 11:25:13 -0400 Subject: [PATCH 26/79] Overwrite tome scripts with blank script, changing Branch to dev to test 4 --- .github/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 825f2c972..ca014e408 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -150,7 +150,7 @@ jobs: sed -i 's/80/8080/g' Dockerfile-cms sed -i 's/ENTRYPOINT/CMD/' Dockerfile-cms sed -i 's/\["s3"\]\[\]?/s3\[\]/g' scripts/tome-run.sh scripts/tome-sync.sh - sed -i "s,/var/www/scripts/tome-run.sh $URI $@,," > .docker/src-cms/etc/periodic/1min/generate-static-site + sed -i "s,/var/www/scripts/tome-run.sh $URI $@,," .docker/src-cms/etc/periodic/1min/generate-static-site sed -i 's/80/8080/g' .docker/src-cms/etc/nginx/partials/cms.conf.tmpl sed -i "s/\$service\['name'\] === 'database'/stristr(\$service\['name'\], 'mysql')/" web/sites/default/settings.php sed -i "s/\$settings\['hash_salt'\] = \$service\['credentials'\]\['HASH_SALT'\]/\$settings\['hash_salt'\] = \$service\['credentials'\]\['hash_salt'\]/" web/sites/default/settings.php From 9dfc66d2a546a2cca119d14c40a0622559de501b Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 12:06:08 -0400 Subject: [PATCH 27/79] Overwrite tome scripts with blank script, changing Branch to dev to test 5 --- .github/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index ca014e408..f1250cdcb 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -150,7 +150,7 @@ jobs: sed -i 's/80/8080/g' Dockerfile-cms sed -i 's/ENTRYPOINT/CMD/' Dockerfile-cms sed -i 's/\["s3"\]\[\]?/s3\[\]/g' scripts/tome-run.sh scripts/tome-sync.sh - sed -i "s,/var/www/scripts/tome-run.sh $URI $@,," .docker/src-cms/etc/periodic/1min/generate-static-site + sed -i "s|/var/www/scripts/tome-run.sh \$URI \$@||" .docker/src-cms/etc/periodic/1min/generate-static-site sed -i 's/80/8080/g' .docker/src-cms/etc/nginx/partials/cms.conf.tmpl sed -i "s/\$service\['name'\] === 'database'/stristr(\$service\['name'\], 'mysql')/" web/sites/default/settings.php sed -i "s/\$settings\['hash_salt'\] = \$service\['credentials'\]\['HASH_SALT'\]/\$settings\['hash_salt'\] = \$service\['credentials'\]\['hash_salt'\]/" web/sites/default/settings.php From a49ec8c4b7a63538a6ef9727c4aacb3e564399a1 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 12:23:43 -0400 Subject: [PATCH 28/79] Comfirmed working, now cleanup testing steps, prep for PR --- .github/workflows/build-and-deploy.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index f1250cdcb..e233fecd0 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -20,8 +20,7 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - echo "BRANCH=dev" >> $GITHUB_ENV + echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - name: Install PHP run: bash ./scripts/pipeline/deb-php-install.sh # - name: Install Node.js @@ -77,8 +76,7 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - echo "BRANCH=dev" >> $GITHUB_ENV + echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - name: Install basic dependancies run: | ./scripts/pipeline/deb-basic-deps.sh @@ -124,8 +122,7 @@ jobs: node-version-file: "./benefit-finder/package.json" - name: Set env.BRANCH run: | - # echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - echo "BRANCH=dev" >> $GITHUB_ENV + echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - name: Install basic dependancies run: ./scripts/pipeline/deb-basic-deps.sh - name: Install Cloudfoundry CLI From e3906eac2d7a0c80a7ab2d0ac4132195667cae31 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Thu, 6 Jun 2024 12:27:51 -0400 Subject: [PATCH 29/79] Comfirmed working, now cleanup testing steps, prep for PR 2 --- .github/workflows/build-and-deploy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index e233fecd0..4743b89d0 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -5,7 +5,6 @@ on: branches: - dev - main - - 1393-stop-tome jobs: php-lint: From ff9678d5eda3a8f0ac66ed65d4003e335c32f1c7 Mon Sep 17 00:00:00 2001 From: Gene Chi <88853916+gchi25@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:48:40 -0400 Subject: [PATCH 30/79] Update error message Co-authored-by: Scott Queen --- .../usagov_benefit_finder_content.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index 50a97ba2f..187cf44d9 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -337,7 +337,7 @@ function _usagov_benefit_finder_content_node_bears_criteria_edit_form_validate(a $result = _usagov_benefit_finder_content_check_criteria_has_child($nid); if (!empty($result)) { foreach ($result as $row) { - $errors[] = t("Can not uncheck Has Child. Have child in Life event form: $row[title] ($row[nid])"); + $errors[] = t("Can not uncheck "Has Child" field. There are related child values in the Life event form: $row[title] ($row[nid])"); } } From c05cc13cdb6cfd892395c05f77221f3cd7a0649d Mon Sep 17 00:00:00 2001 From: gchi25 Date: Thu, 6 Jun 2024 14:57:31 -0400 Subject: [PATCH 31/79] PXBF-870-criteria-cannot-uncheck-haschild-validation: escape double quotes --- .../usagov_benefit_finder_content.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index 187cf44d9..3b192ad52 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -337,7 +337,7 @@ function _usagov_benefit_finder_content_node_bears_criteria_edit_form_validate(a $result = _usagov_benefit_finder_content_check_criteria_has_child($nid); if (!empty($result)) { foreach ($result as $row) { - $errors[] = t("Can not uncheck "Has Child" field. There are related child values in the Life event form: $row[title] ($row[nid])"); + $errors[] = t("Can not uncheck \"Has Child\" field. There are related child values in the Life event form: $row[title] ($row[nid])"); } } From 62674c6adb55c9890d4be835b711fcadfe47b90d Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 14 Jun 2024 13:18:49 -0400 Subject: [PATCH 32/79] Remove restore --- restore.txt | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 restore.txt diff --git a/restore.txt b/restore.txt deleted file mode 100644 index 80c81b179..000000000 --- a/restore.txt +++ /dev/null @@ -1,12 +0,0 @@ -Finding the service instance details... -Setting up SSH tunnel... -SSH tunnel created. -Skipping call to client CLI. Connection information: - -Host: localhost -Port: 44265 -Username: u1pqgr5amf7bbsm3 -Password: o95jv0wxlkynbk5qx7fxbmc6o -Name: cgawsbrokerprodoly1e52tnaanm56 - -Leave this terminal open while you want to use the SSH tunnel. Press Control-C to stop. From 584a1d1dc00a913ea413fae4e4b0008e682c3e9e Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 14 Jun 2024 13:30:12 -0400 Subject: [PATCH 33/79] Try to fix validate command in main by adding quotes --- .../workflows/build-and-deploy-main-waf.yml | 83 ++++++++++--------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build-and-deploy-main-waf.yml b/.github/workflows/build-and-deploy-main-waf.yml index d10ba3ced..02dffafc4 100644 --- a/.github/workflows/build-and-deploy-main-waf.yml +++ b/.github/workflows/build-and-deploy-main-waf.yml @@ -2,7 +2,7 @@ name: Update Main WAF on: schedule: - - cron: '0 5 * * 4' + - cron: "0 5 * * 4" jobs: checkVersion: @@ -19,15 +19,15 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: source ./scripts/pipeline/cloud-gov-login.sh - name: Check version id: version env: - PROJECT: '${{ secrets.PROJECT }}' + PROJECT: "${{ secrets.PROJECT }}" run: | ubuntu_version=${{ vars.UBUNTU_VERSION }} modsecurity_nginx_version=${{ vars.MODSECURITY_NGINX_VERSION }} @@ -54,24 +54,24 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' - TF_BASTION: '${{ secrets.TF_BASTION }}' - TF_BACKEND_SPACE: '${{ secrets.TF_BACKEND_SPACE }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" + TF_BASTION: "${{ secrets.TF_BASTION }}" + TF_BACKEND_SPACE: "${{ secrets.TF_BACKEND_SPACE }}" run: | source ./scripts/pipeline/cloud-gov-login.sh cf target -s "${TF_BACKEND_SPACE}" >/dev/null 2>&1 - name: Start Bastion env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" run: | cf start "${TF_BASTION}" >/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${TF_BASTION}" - name: Cloud.gov bastion git checkout env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" run: | declare -a commands=("rm -rf px-benefit-finder" "git clone https://github.com/GSA/px-benefit-finder.git && cd px-benefit-finder && git checkout ${BRANCH}") for command in "${commands[@]}"; do @@ -79,19 +79,19 @@ jobs: done - name: Build nginx WAF Plugin env: - ubuntu_version: '${{ vars.UBUNTU_VERSION }}' - modsecurity_nginx_version: '${{ vars.MODSECURITY_NGINX_VERSION }}' + ubuntu_version: "${{ vars.UBUNTU_VERSION }}" + modsecurity_nginx_version: "${{ vars.MODSECURITY_NGINX_VERSION }}" new_nginx_version: ${{ needs.checkVersion.outputs.new_nginx_version }} - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" run: | source ./scripts/pipeline/terraform-build-waf-plugin.sh - name: Configure Terraform env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' - TF_BASTION: '${{ secrets.TF_BASTION }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" + TF_BASTION: "${{ secrets.TF_BASTION }}" run: | CWD=$(pwd) cd terraform/infra @@ -100,32 +100,32 @@ jobs: cd "${CWD}" - name: Terraform Init env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" id: init - run : ./scripts/pipeline/cloud-gov-remote-command.sh "${TF_BASTION}" "tofu -chdir=px-benefit-finder/terraform/infra init" 1 + run: ./scripts/pipeline/cloud-gov-remote-command.sh "${TF_BASTION}" "tofu -chdir=px-benefit-finder/terraform/infra init" 1 - name: Terraform Validate env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" id: validate - run : | - stdout=$(./scripts/pipeline/cloud-gov-remote-command.sh ${TF_BASTION} "TF_WORKSPACE=${BRANCH} tofu -chdir=px-benefit-finder/terraform/infra validate -no-color" 1)) + run: | + stdout=$(./scripts/pipeline/cloud-gov-remote-command.sh "${TF_BASTION}" "TF_WORKSPACE=${BRANCH} tofu -chdir=px-benefit-finder/terraform/infra validate -no-color" 1) stdout=$(echo $stdout | sed '$ d') echo ${stdout} echo "stdout=${stdout}" >> $GITHUB_OUTPUT - name: Terraform Plan env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" id: plan - run : | + run: | stdout=$(./scripts/pipeline/cloud-gov-remote-command.sh "${TF_BASTION}" "TF_WORKSPACE=${BRANCH} tofu -chdir=px-benefit-finder/terraform/infra plan -no-color" 1) stdout=$(echo $stdout | sed '$ d') echo ${stdout} echo "stdout=${stdout}" >> $GITHUB_OUTPUT - name: Terraform Apply env: - TF_BASTION: '${{ secrets.TF_BASTION }}' + TF_BASTION: "${{ secrets.TF_BASTION }}" id: apply - run : | + run: | stdout=$(./scripts/pipeline/cloud-gov-remote-command.sh "${TF_BASTION}" "TF_WORKSPACE=${BRANCH} tofu -chdir=px-benefit-finder/terraform/infra apply -auto-approve" 1) stdout=$(echo $stdout | sed '$ d') echo ${stdout} @@ -139,7 +139,7 @@ jobs: title: "Update to NGINX v${{ needs.checkVersion.outputs.new_nginx_version }} (main)" body: | ## Automated update of NGINX WAF - + This is an automated build and deploy of the NGINX WAF application in main. Build pack: ${{ needs.checkVersion.outputs.current_bp_version }} => ${{ needs.checkVersion.outputs.new_bp_version }} @@ -147,7 +147,7 @@ jobs: #### Terraform Initialization ⚙`${{ steps.init.outcome }}` #### Terraform Validation 🤖`${{ steps.validate.outcome }}` - +
Validation Output ``` @@ -189,16 +189,17 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' - TF_BASTION: '${{ secrets.TF_BASTION }}' - TF_BACKEND_SPACE: '${{ secrets.TF_BACKEND_SPACE }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" + TF_BASTION: "${{ secrets.TF_BASTION }}" + TF_BACKEND_SPACE: "${{ secrets.TF_BACKEND_SPACE }}" run: | source ./scripts/pipeline/cloud-gov-login.sh cf target -s "${TF_BACKEND_SPACE}" >/dev/null 2>&1 - name: Stop Bastion env: - TF_BASTION: '${{ secrets.TF_BASTION }}' - run: cf stop "${TF_BASTION}" >/dev/null 2>&1 \ No newline at end of file + TF_BASTION: "${{ secrets.TF_BASTION }}" + run: cf stop "${TF_BASTION}" >/dev/null 2>&1 + From 910345660dd3e4674ef0ada905b8cdc98a546322 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Thu, 20 Jun 2024 14:15:50 -0400 Subject: [PATCH 34/79] PXBF-uncomment-dev-null: uncomment dev null --- scripts/pipeline/s3-backup-upload.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/pipeline/s3-backup-upload.sh b/scripts/pipeline/s3-backup-upload.sh index ef752d6db..3397000e8 100755 --- a/scripts/pipeline/s3-backup-upload.sh +++ b/scripts/pipeline/s3-backup-upload.sh @@ -19,13 +19,13 @@ echo "Getting backup bucket credentials..." AWS_ACCESS_KEY_ID=$(echo "${s3_credentials}" | jq -r '.credentials.access_key_id') export AWS_ACCESS_KEY_ID - + bucket=$(echo "${s3_credentials}" | jq -r '.credentials.bucket') export bucket AWS_BUCKET="${bucket}" export AWS_BUCKET - + AWS_DEFAULT_REGION=$(echo "${s3_credentials}" | jq -r '.credentials.region') export AWS_DEFAULT_REGION @@ -49,13 +49,13 @@ echo "Checking AWS credentials..." fi done echo "Credentials Verified, Proceeding with Upload" - } + } echo "Uploading backup..." { - aws s3 cp "${TIMESTAMP}.sql.gz" "s3://${bucket}/$(date +%Y)/$(date +%m)/$(date +%d)/" --no-verify-ssl # 2>/dev/null - aws s3 cp "${TIMESTAMP}.sql.gz" "s3://${bucket}/latest.sql.gz" --no-verify-ssl # 2>/dev/null + aws s3 cp "${TIMESTAMP}.sql.gz" "s3://${bucket}/$(date +%Y)/$(date +%m)/$(date +%d)/" --no-verify-ssl 2>/dev/null + aws s3 cp "${TIMESTAMP}.sql.gz" "s3://${bucket}/latest.sql.gz" --no-verify-ssl 2>/dev/null cf delete-service-key "${service}" "${service_key}" -f } &> /dev/null From 48d1352dacfc6f58698cf8a382f4409ef3cee843 Mon Sep 17 00:00:00 2001 From: Casey Rapnicki Date: Fri, 21 Jun 2024 13:34:52 -0400 Subject: [PATCH 35/79] Create database backup bastion. --- .github/workflows/database-backup-dev.yml | 42 ++++++++++- .github/workflows/database-backup-main.yml | 46 +++++++++++- .github/workflows/database-restore.yml | 41 +++++++++- .../database-backup-bastion/apt.yml | 7 ++ .../database-backup-bastion/start | 67 +++++++++++++++++ .../modules/ngx_http_modsecurity_module.so | Bin 233072 -> 0 bytes terraform/infra/locals.tf | 70 ++++++++++++++++-- terraform/modules/application/data.tf | 32 ++++---- terraform/modules/application/variables.tf | 3 +- terraform/modules/service/variables.tf | 3 +- 10 files changed, 279 insertions(+), 32 deletions(-) create mode 100755 terraform/applications/database-backup-bastion/apt.yml create mode 100755 terraform/applications/database-backup-bastion/start delete mode 100755 terraform/applications/nginx-waf/modules/ngx_http_modsecurity_module.so diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index c630fd9b0..801ec7493 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -31,7 +31,22 @@ jobs: run: ./scripts/pipeline/deb-mysql-client-install.sh - name: Install Cloudfoundry CLI run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login + env: + CF_USER: '${{ secrets.CF_USER }}' + CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' + CF_ORG: '${{ secrets.CF_ORG }}' + PROJECT: '${{ secrets.PROJECT }}' + run: | + source ./scripts/pipeline/cloud-gov-login.sh + - name: Start Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: | + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) + id: backup shell: bash env: CF_USER: "${{ secrets.CF_USER }}" @@ -40,6 +55,31 @@ jobs: PROJECT: "${{ secrets.PROJECT }}" run: | export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') - source ./scripts/pipeline/cloud-gov-login.sh source ./scripts/pipeline/database-backup.sh source ./scripts/pipeline/s3-backup-upload.sh + stopBastion: + name: Stop Bastion + runs-on: ubuntu-latest + needs: backup-database + if: ${{ always() }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set env.BRANCH + run: echo "BRANCH=dev" >> $GITHUB_ENV + - name: Install basic dependancies + run: ./scripts/pipeline/deb-basic-deps.sh + - name: Install Cloudfoundry CLI + run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login + env: + CF_USER: '${{ secrets.CF_USER }}' + CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' + CF_ORG: '${{ secrets.CF_ORG }}' + PROJECT: '${{ secrets.PROJECT }}' + run: | + source ./scripts/pipeline/cloud-gov-login.sh + - name: Stop Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file diff --git a/.github/workflows/database-backup-main.yml b/.github/workflows/database-backup-main.yml index 29dca8458..6c5fb0aac 100644 --- a/.github/workflows/database-backup-main.yml +++ b/.github/workflows/database-backup-main.yml @@ -31,15 +31,55 @@ jobs: run: ./scripts/pipeline/deb-mysql-client-install.sh - name: Install Cloudfoundry CLI run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login + env: + CF_USER: '${{ secrets.CF_USER }}' + CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' + CF_ORG: '${{ secrets.CF_ORG }}' + PROJECT: '${{ secrets.PROJECT }}' + run: | + source ./scripts/pipeline/cloud-gov-login.sh + - name: Start Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: | + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (main) + id: backup shell: bash + env: + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" + run: | + export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') + source ./scripts/pipeline/database-backup.sh + source ./scripts/pipeline/s3-backup-upload.sh + stopBastion: + name: Stop Bastion + runs-on: ubuntu-latest + needs: backup-database + if: ${{ always() }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set env.BRANCH + run: echo "BRANCH=main" >> $GITHUB_ENV + - name: Install basic dependancies + run: ./scripts/pipeline/deb-basic-deps.sh + - name: Install Cloudfoundry CLI + run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login env: CF_USER: '${{ secrets.CF_USER }}' CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' CF_ORG: '${{ secrets.CF_ORG }}' PROJECT: '${{ secrets.PROJECT }}' run: | - export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') source ./scripts/pipeline/cloud-gov-login.sh - source ./scripts/pipeline/database-backup.sh - source ./scripts/pipeline/s3-backup-upload.sh \ No newline at end of file + - name: Stop Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file diff --git a/.github/workflows/database-restore.yml b/.github/workflows/database-restore.yml index 37705989a..50d514d3c 100644 --- a/.github/workflows/database-restore.yml +++ b/.github/workflows/database-restore.yml @@ -23,6 +23,20 @@ jobs: run: ./scripts/pipeline/deb-mysql-client-install.sh - name: Install Cloudfoundry CLI run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login + env: + CF_USER: '${{ secrets.CF_USER }}' + CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' + CF_ORG: '${{ secrets.CF_ORG }}' + PROJECT: '${{ secrets.PROJECT }}' + run: | + source ./scripts/pipeline/cloud-gov-login.sh + - name: Start Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: | + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Restore database shell: bash env: @@ -32,8 +46,33 @@ jobs: PROJECT: '${{ secrets.PROJECT }}' run: | export S3_FILE_PATH=${{ github.event.inputs.database_file_override }} - source ./scripts/pipeline/cloud-gov-login.sh source ./scripts/pipeline/s3-backup-download.sh source ./scripts/pipeline/database-restore.sh source ./scripts/pipeline/cloud-gov-post-deploy.sh source ./scripts/pipeline/s3-backup-post-restore.sh + stopBastion: + name: Stop Bastion + runs-on: ubuntu-latest + needs: restore-database + if: ${{ always() }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set env.BRANCH + run: echo "BRANCH=main" >> $GITHUB_ENV + - name: Install basic dependancies + run: ./scripts/pipeline/deb-basic-deps.sh + - name: Install Cloudfoundry CLI + run: ./scripts/pipeline/deb-cf-install.sh + - name: Cloud.gov login + env: + CF_USER: '${{ secrets.CF_USER }}' + CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' + CF_ORG: '${{ secrets.CF_ORG }}' + PROJECT: '${{ secrets.PROJECT }}' + run: | + source ./scripts/pipeline/cloud-gov-login.sh + - name: Stop Bastion + env: + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file diff --git a/terraform/applications/database-backup-bastion/apt.yml b/terraform/applications/database-backup-bastion/apt.yml new file mode 100755 index 000000000..e2f874272 --- /dev/null +++ b/terraform/applications/database-backup-bastion/apt.yml @@ -0,0 +1,7 @@ +--- +packages: + - curl + - gettext + - mysql-client + - postgresql-client + - wget diff --git a/terraform/applications/database-backup-bastion/start b/terraform/applications/database-backup-bastion/start new file mode 100755 index 000000000..78b8c4994 --- /dev/null +++ b/terraform/applications/database-backup-bastion/start @@ -0,0 +1,67 @@ +#!/bin/bash + +home="/home/vcap" +#app_path="${home}/app" + +echo "export PATH=${PATH}:${home}/deps/0/bin" > "${home}/exports.sh" +echo "alias terraform=tofu" >> "${home}/exports.sh" +echo "alias tf=tofu" >> "${home}/exports.sh" + +AWS_ACCESS_KEY_ID=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.access_key_id') +AWS_SECRET_ACCESS_KEY=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.secret_access_key') +AWS_DEFAULT_REGION=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.region') +AWS_BUCKET=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.bucket') +AWS_ENDPOINT=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.endpoint') +AWS_FIPS_ENDPOINT=$(echo "${VCAP_SERVICES}" | jq '.s3[] | select(.name | contains("backup")) | .credentials.fips_endpoint') + +if [ -n "${AWS_ACCESS_KEY_ID}" ]; then + { + echo "export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" + echo "export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" + echo "export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}" + echo "export AWS_BUCKET=${AWS_BUCKET}" + echo "export AWS_ENDPOINT=${AWS_ENDPOINT}" + echo "export AWS_FIPS_ENDPOINT=${AWS_FIPS_ENDPOINT}" + } >> "${home}/exports.sh" +fi + +MYSQL_CONN_STR=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.uri') +MYSQL_DATABASE=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.db_name') +MYSQL_HOST=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.host') +MYSQL_PASSWORD=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.password') +MYSQL_PORT=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.port') +MYSQL_USER=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("mysql")) | .credentials.username') + +if [ -n "${MYSQL_CONN_STR}" ]; then + { + echo "export MYSQL_CONN_STR=${MYSQL_CONN_STR}" + echo "export MYSQL_DATABASE=${MYSQL_DATABASE}" + echo "export MYSQL_HOST=${MYSQL_HOST}" + echo "export MYSQL_PASSWORD=${MYSQL_PASSWORD}" + echo "export MYSQL_PORT=${MYSQL_PORT}" + echo "export MYSQL_USER=${MYSQL_USER}" + } >> "${home}/exports.sh" +fi + +PG_CONN_STR=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.uri') +PGDATABASE=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.db_name') +PGHOST=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.host') +PGPASSWORD=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.password') +PGPORT=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.port') +PGUSER=$(echo "${VCAP_SERVICES}" | jq '."aws-rds"[] | select(.plan | contains("psql")) | .credentials.username') + +if [ -n "${PG_CONN_STR}" ]; then + { + echo "export PG_CONN_STR=${PG_CONN_STR}" + echo "export PGDATABASE=${PGDATABASE}" + echo "export PGHOST=${PGHOST}" + echo "export PGPASSWORD=${PGPASSWORD}" + echo "export PGPORT=${PGPORT}" + echo "export PGUSER=${PGUSER}" + } >> "${home}/exports.sh" +fi + +sed -i '1s/^/source exports.sh\n/' "${home}/.bashrc" + +while : ; do sleep 500 ; done + diff --git a/terraform/applications/nginx-waf/modules/ngx_http_modsecurity_module.so b/terraform/applications/nginx-waf/modules/ngx_http_modsecurity_module.so deleted file mode 100755 index 8f323a72bfbca80c556e2b537b82cb3d930ed859..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233072 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%0DXf&EAW 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 value - } - name_or_id = each.value - space = try(var.cloudfoundry.space.id, null) + for_each = try(local.services_external, []) + name_or_id = each.value + space = try(var.cloudfoundry.space.id, null) } \ No newline at end of file diff --git a/terraform/modules/application/variables.tf b/terraform/modules/application/variables.tf index e3747b8b0..3a4649ccc 100755 --- a/terraform/modules/application/variables.tf +++ b/terraform/modules/application/variables.tf @@ -92,7 +92,8 @@ variable "env" { services_external = optional(list(string), []) space = optional(string ,null) source = optional(string, null) - templates = list(map(string)) + stopped = optional(bool, false) + templates = optional(list(map(string)), []) }) ), {} ) diff --git a/terraform/modules/service/variables.tf b/terraform/modules/service/variables.tf index 4c633c9bb..e4e64d735 100755 --- a/terraform/modules/service/variables.tf +++ b/terraform/modules/service/variables.tf @@ -80,7 +80,8 @@ variable "env" { port = optional(number, 80) public_route = optional(bool, false) source = optional(string, null) - templates = list(map(string)) + stopped = optional(bool, false) + templates = optional(list(map(string)), []) }) ), {} ) From 180f77e813eae529964554c885128dc3b2e1e8e3 Mon Sep 17 00:00:00 2001 From: Casey Rapnicki Date: Fri, 21 Jun 2024 13:49:15 -0400 Subject: [PATCH 36/79] Update backup/restore script bastion name. --- .github/workflows/database-backup-dev.yml | 1 + .github/workflows/database-backup-main.yml | 1 + .github/workflows/database-restore.yml | 1 + scripts/pipeline/database-backup.sh | 2 +- scripts/pipeline/database-restore.sh | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index 801ec7493..b84161ae3 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -53,6 +53,7 @@ jobs: CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" CF_ORG: "${{ secrets.CF_ORG }}" PROJECT: "${{ secrets.PROJECT }}" + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' run: | export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') source ./scripts/pipeline/database-backup.sh diff --git a/.github/workflows/database-backup-main.yml b/.github/workflows/database-backup-main.yml index 6c5fb0aac..69f455b3b 100644 --- a/.github/workflows/database-backup-main.yml +++ b/.github/workflows/database-backup-main.yml @@ -53,6 +53,7 @@ jobs: CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" CF_ORG: "${{ secrets.CF_ORG }}" PROJECT: "${{ secrets.PROJECT }}" + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' run: | export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') source ./scripts/pipeline/database-backup.sh diff --git a/.github/workflows/database-restore.yml b/.github/workflows/database-restore.yml index 50d514d3c..8f806d995 100644 --- a/.github/workflows/database-restore.yml +++ b/.github/workflows/database-restore.yml @@ -44,6 +44,7 @@ jobs: CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' CF_ORG: '${{ secrets.CF_ORG }}' PROJECT: '${{ secrets.PROJECT }}' + DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' run: | export S3_FILE_PATH=${{ github.event.inputs.database_file_override }} source ./scripts/pipeline/s3-backup-download.sh diff --git a/scripts/pipeline/database-backup.sh b/scripts/pipeline/database-backup.sh index 91a366b09..5f21c7a63 100755 --- a/scripts/pipeline/database-backup.sh +++ b/scripts/pipeline/database-backup.sh @@ -22,7 +22,7 @@ wait_for_tunnel() { ## Create a tunnel through the application to pull the database. echo "Creating tunnel to database..." -cf connect-to-service --no-client "${PROJECT}-cms-${BRANCH}" "${PROJECT}-mysql-${BRANCH}" > backup.txt & +cf connect-to-service --no-client "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" "${PROJECT}-mysql-${BRANCH}" > backup.txt & wait_for_tunnel diff --git a/scripts/pipeline/database-restore.sh b/scripts/pipeline/database-restore.sh index d4592aa75..3f017f68d 100755 --- a/scripts/pipeline/database-restore.sh +++ b/scripts/pipeline/database-restore.sh @@ -22,7 +22,7 @@ gunzip database_restore.sql.gz ## Create a tunnel through the application to restore the database. echo "Creating tunnel to database..." -cf connect-to-service --no-client "${PROJECT}-cms-${BRANCH}" "${PROJECT}-mysql-${BRANCH}" > restore.txt & +cf connect-to-service --no-client "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" "${PROJECT}-mysql-${BRANCH}" > restore.txt & wait_for_tunnel From 877a960a90284a5d7b70f283983dc2f3bf4949a6 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 14:33:59 -0400 Subject: [PATCH 37/79] test --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5c2e75f6c..d2dd2b8a0 100644 --- a/README.md +++ b/README.md @@ -330,3 +330,5 @@ To move files between your laptop and your Citrix desktop, use Google Drive. You ## Accessibility Statement We are committed to making our application accessible to all visitors. Our ongoing accessibility effort works towards conforming to Web Content Accessibility Guidelines (WCAG) version 2.1, level AA criteria and by performing regular automatic and manual testing audits. + +Test From b354a192d659cbcb2e8b7d8fdbebc7ef8a0673eb Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Fri, 21 Jun 2024 14:46:08 -0400 Subject: [PATCH 38/79] PXBF-1367-zero-benefits-view: include zeroBenefits content --- benefit-finder/src/shared/locales/en/en.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/benefit-finder/src/shared/locales/en/en.json b/benefit-finder/src/shared/locales/en/en.json index 6ec86ad91..02648e180 100644 --- a/benefit-finder/src/shared/locales/en/en.json +++ b/benefit-finder/src/shared/locales/en/en.json @@ -105,6 +105,15 @@ "heading": "Results", "description": "Based on your answers you are not eligible for these benefits.You may become eligible if you enter additional information or your situation changes." }, + "zeroBenefits": { + "chevron": { + "heading": "You are likely not eligible for the benefits of death of a loved one", + "description": "

If you reached these results by mistake, please go back to review your answers.

" + }, + "heading": "No eligible results", + "description": "Based on your answers you are likely not eligible for the [death of a loved one] benefits. You may become eligible if you enter more information or your situation changes.", + "cta": "See all benefits" + }, "stepBackLink": "Back", "eligibleResults": { "heading": "Results", From 09614986a7a68b8a8127219435e1e1e1c130c822 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 14:47:00 -0400 Subject: [PATCH 39/79] Uncomment logging in failing step --- .github/workflows/database-backup-dev.yml | 27 ++++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index b84161ae3..3f238ea7b 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -33,17 +33,17 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Start Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | - cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" #>/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup @@ -53,7 +53,7 @@ jobs: CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" CF_ORG: "${{ secrets.CF_ORG }}" PROJECT: "${{ secrets.PROJECT }}" - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') source ./scripts/pipeline/database-backup.sh @@ -74,13 +74,14 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Stop Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' - run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + From c722b0757fff4c912ad98fa7319ae25214805d4f Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Fri, 21 Jun 2024 14:47:06 -0400 Subject: [PATCH 40/79] PXBF-1367-zero-benefits-view: update content in eligible or not-eligible views based on count of elibible benefits --- .../shared/components/ResultsView/index.jsx | 58 ++++++++++++++----- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index 1ab0ae026..e9a2708f4 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -37,6 +37,7 @@ const ResultsView = ({ stepBackLink, notEligible, eligible, + zeroBenefits, notEligibleResults, resultsRelativeBenefits, shareResults, @@ -87,6 +88,8 @@ const ResultsView = ({ resetElement.current.focus() } + const zeroBenefitsResult = eligibilityCount.eligible === 0 + useEffect(() => { window.scrollTo(0, 0) setEligibilityCount({ @@ -145,13 +148,17 @@ const ResultsView = ({
@@ -173,22 +180,42 @@ const ResultsView = ({ )} - {notEligibleView ? notEligible.heading : eligible.heading} + {notEligibleView + ? (zeroBenefitsResult && zeroBenefits.heading) || + notEligible.heading + : (zeroBenefitsResult && zeroBenefits.heading) || + eligible.heading} - + {zeroBenefitsResult === false && ( + + )} + + {zeroBenefitsResult && !notEligibleView && ( +
+ +
+ )} + {/* { e.preventDefault() && + window.location.href = `${window.location.origin}${window.location.pathname}`} /> */} {/* map all the benefits into cards */}
- {notEligibleView === false && ( + {notEligibleView === false && zeroBenefitsResult === false && (
Date: Fri, 21 Jun 2024 14:47:22 -0400 Subject: [PATCH 41/79] PXBF-1367-zero-benefits-view: updated snaps --- .../src/App/__tests__/__snapshots__/index.spec.jsx.snap | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/benefit-finder/src/App/__tests__/__snapshots__/index.spec.jsx.snap b/benefit-finder/src/App/__tests__/__snapshots__/index.spec.jsx.snap index af7a2506a..d02f3401b 100644 --- a/benefit-finder/src/App/__tests__/__snapshots__/index.spec.jsx.snap +++ b/benefit-finder/src/App/__tests__/__snapshots__/index.spec.jsx.snap @@ -348,7 +348,7 @@ exports[`loads window query scenario 1 1`] = ` >

@@ -6728,7 +6728,7 @@ exports[`loads window query scenario 1 1`] = ` >

@@ -7104,7 +7104,7 @@ exports[`loads window query scenario 2 1`] = ` >

@@ -13496,7 +13496,7 @@ exports[`loads window query scenario 2 1`] = ` >

From a95b828372d7867bca8a5734eaff789dbc926a6d Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 15:02:45 -0400 Subject: [PATCH 42/79] Reset database-backup-bastion name secret --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index d2dd2b8a0..5c2e75f6c 100644 --- a/README.md +++ b/README.md @@ -330,5 +330,3 @@ To move files between your laptop and your Citrix desktop, use Google Drive. You ## Accessibility Statement We are committed to making our application accessible to all visitors. Our ongoing accessibility effort works towards conforming to Web Content Accessibility Guidelines (WCAG) version 2.1, level AA criteria and by performing regular automatic and manual testing audits. - -Test From 20d6cffc3394d010acdf19d2253abae8bd90bd43 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 15:15:25 -0400 Subject: [PATCH 43/79] db backup troubleshoot 1 --- .github/workflows/database-backup-dev.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index 3f238ea7b..9836f6686 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -43,7 +43,10 @@ jobs: env: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | - cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" #>/dev/null 2>&1 + cf start ${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH} #>/dev/null 2>&1 + echo "PROJECT=${PROJECT}" + echo "DATABASE_BACKUP_BASTION_NAME=${DATABASE_BACKUP_BASTION_NAME}" + echo "BRANCH=${BRANCH}" ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup @@ -84,4 +87,3 @@ jobs: env: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 - From d3aad12d015038236619555e5b4792cc35ae5f80 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 15:25:58 -0400 Subject: [PATCH 44/79] db backup troubleshoot 2 --- .github/workflows/database-backup-dev.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index 9836f6686..f5a768964 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -44,9 +44,9 @@ jobs: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | cf start ${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH} #>/dev/null 2>&1 - echo "PROJECT=${PROJECT}" - echo "DATABASE_BACKUP_BASTION_NAME=${DATABASE_BACKUP_BASTION_NAME}" - echo "BRANCH=${BRANCH}" + echo PROJECT=${PROJECT} + echo DATABASE_BACKUP_BASTION_NAME=${DATABASE_BACKUP_BASTION_NAME} + echo BRANCH=${BRANCH} ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup From 6c96bfb27b5483272fb9dc5cb47471d0d9e62a37 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 15:30:11 -0400 Subject: [PATCH 45/79] db backup troubleshoot 3 --- .github/workflows/database-backup-dev.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index f5a768964..5d9d0702e 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -11,6 +11,8 @@ on: required: true PROJECT: required: true + DATABASE_BACKUP_BASTION_NAME: + required: true schedule: - cron: "0 0 * * *" @@ -44,9 +46,6 @@ jobs: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | cf start ${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH} #>/dev/null 2>&1 - echo PROJECT=${PROJECT} - echo DATABASE_BACKUP_BASTION_NAME=${DATABASE_BACKUP_BASTION_NAME} - echo BRANCH=${BRANCH} ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup From e620e7fc508a965e76d871658c886b28c4166e43 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 15:45:23 -0400 Subject: [PATCH 46/79] db backup troubleshoot 4 --- .github/workflows/database-backup-dev.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index 5d9d0702e..fc8512b4e 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -44,8 +44,10 @@ jobs: - name: Start Bastion env: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + PROJECT: "${{ secrets.PROJECT }}" run: | - cf start ${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH} #>/dev/null 2>&1 + echo "BRANCH=dev" >> $GITHUB_ENV + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" #>/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup From 605d6ecffdaaa5144c288a185e5199668dad8848 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Fri, 21 Jun 2024 16:21:34 -0400 Subject: [PATCH 47/79] db backup troubleshoot 5 --- .github/workflows/database-backup-dev.yml | 7 ++-- .github/workflows/database-backup-main.yml | 34 +++++++++++------- .github/workflows/database-restore.yml | 42 ++++++++++++---------- 3 files changed, 50 insertions(+), 33 deletions(-) diff --git a/.github/workflows/database-backup-dev.yml b/.github/workflows/database-backup-dev.yml index fc8512b4e..4f99cfeee 100644 --- a/.github/workflows/database-backup-dev.yml +++ b/.github/workflows/database-backup-dev.yml @@ -47,7 +47,7 @@ jobs: PROJECT: "${{ secrets.PROJECT }}" run: | echo "BRANCH=dev" >> $GITHUB_ENV - cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" #>/dev/null 2>&1 + cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (dev) id: backup @@ -86,5 +86,8 @@ jobs: source ./scripts/pipeline/cloud-gov-login.sh - name: Stop Bastion env: + PROJECT: "${{ secrets.PROJECT }}" DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" - run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + run: | + echo "BRANCH=dev" >> $GITHUB_ENV + cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 diff --git a/.github/workflows/database-backup-main.yml b/.github/workflows/database-backup-main.yml index 69f455b3b..9a8b96e70 100644 --- a/.github/workflows/database-backup-main.yml +++ b/.github/workflows/database-backup-main.yml @@ -11,8 +11,10 @@ on: required: true PROJECT: required: true + DATABASE_BACKUP_BASTION_NAME: + required: true schedule: - - cron: '0 1 * * *' + - cron: "0 1 * * *" jobs: backup-database: @@ -33,16 +35,18 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Start Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + PROJECT: "${{ secrets.PROJECT }}" run: | + echo "BRANCH=main" >> $GITHUB_ENV cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Backup Database (main) @@ -53,7 +57,7 @@ jobs: CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" CF_ORG: "${{ secrets.CF_ORG }}" PROJECT: "${{ secrets.PROJECT }}" - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | export TIMESTAMP=$(date --utc +%FT%TZ | tr ':', '-') source ./scripts/pipeline/database-backup.sh @@ -74,13 +78,17 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Stop Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' - run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + PROJECT: "${{ secrets.PROJECT }}" + run: | + echo "BRANCH=main" >> $GITHUB_ENV + cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + diff --git a/.github/workflows/database-restore.yml b/.github/workflows/database-restore.yml index 8f806d995..307b0c734 100644 --- a/.github/workflows/database-restore.yml +++ b/.github/workflows/database-restore.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: inputs: database_file_override: - description: 'Path on S3 bucket to a specific database file to restore.' + description: "Path on S3 bucket to a specific database file to restore." required: false jobs: restore-database: @@ -25,26 +25,28 @@ jobs: run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Start Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | + echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + echo "BRANCH=main" >> $GITHUB_ENV cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Restore database shell: bash env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | export S3_FILE_PATH=${{ github.event.inputs.database_file_override }} source ./scripts/pipeline/s3-backup-download.sh @@ -60,20 +62,24 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Set env.BRANCH - run: echo "BRANCH=main" >> $GITHUB_ENV + run: echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - name: Install basic dependancies run: ./scripts/pipeline/deb-basic-deps.sh - name: Install Cloudfoundry CLI run: ./scripts/pipeline/deb-cf-install.sh - name: Cloud.gov login env: - CF_USER: '${{ secrets.CF_USER }}' - CF_PASSWORD: '${{ secrets.CF_PASSWORD }}' - CF_ORG: '${{ secrets.CF_ORG }}' - PROJECT: '${{ secrets.PROJECT }}' + CF_USER: "${{ secrets.CF_USER }}" + CF_PASSWORD: "${{ secrets.CF_PASSWORD }}" + CF_ORG: "${{ secrets.CF_ORG }}" + PROJECT: "${{ secrets.PROJECT }}" run: | source ./scripts/pipeline/cloud-gov-login.sh - name: Stop Bastion env: - DATABASE_BACKUP_BASTION_NAME: '${{ secrets.DATABASE_BACKUP_BASTION_NAME }}' - run: cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 \ No newline at end of file + DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + PROJECT: "${{ secrets.PROJECT }}" + run: | + echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV + cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 + From 9eac5220debc66f994684a6184dde211dfc3f133 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 24 Jun 2024 12:19:46 -0400 Subject: [PATCH 48/79] PXBF-1452-scale-based-fonts: update fixed size fonts to rem based fonts --- .../src/shared/styles/mixins/_index.scss | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/benefit-finder/src/shared/styles/mixins/_index.scss b/benefit-finder/src/shared/styles/mixins/_index.scss index 651c604dd..2461b5531 100644 --- a/benefit-finder/src/shared/styles/mixins/_index.scss +++ b/benefit-finder/src/shared/styles/mixins/_index.scss @@ -1,83 +1,96 @@ +// USAGov font ratio is based on 16px +// for example h1 @ 2.44rem = 39.04px + +// Our conversions +// 36px = 2.25rem +// 32px = 2rem +// 24px = 1.5rem +// 22px = 1.375rem +// 20px = 1.25rem +// 17px = 1.063rem +// 16px = 1rem +// 15px = 0.938rem + @mixin h0 { font-family: 'Public Sans', sans-serif; - font-size: 36px; + font-size: 2.25rem; font-weight: 800; line-height: 100%; } @mixin h1 { font-family: 'Public Sans', sans-serif; - font-size: 36px; + font-size: 2rem; font-weight: 800; line-height: 100%; } @mixin h2 { font-family: 'Public Sans', sans-serif; - font-size: 32px; + font-size: 1.5rem; font-weight: 800; line-height: 100%; } @mixin h3 { font-family: 'Public Sans', sans-serif; - font-size: 32px; + font-size: 1.375rem; font-weight: 700; line-height: 134.09%; } @mixin h4 { font-family: 'Public Sans', sans-serif; - font-size: 24px; + font-size: 1.25rem; font-weight: 800; line-height: 114.59%; } @mixin h5 { font-family: 'Public Sans', sans-serif; - font-size: 22px; + font-size: 1.375rem; font-weight: 700; line-height: 134.09%; } @mixin h6 { font-family: 'Public Sans', sans-serif; - font-size: 20px; + font-size: 1.25rem; font-weight: 700; line-height: 134.09%; } @mixin important-x-bold { font-family: 'Public Sans', sans-serif; - font-size: 16px; + font-size: 1rem; font-weight: 800; line-height: 134.09%; } @mixin important-bold { font-family: 'Public Sans', sans-serif; - font-size: 16px; + font-size: 1rem; font-weight: 700; line-height: 134.09%; } @mixin p { font-family: 'Public Sans', sans-serif; - font-size: 16px; + font-size: 1rem; font-weight: 400; line-height: 18.8px; } @mixin p1 { font-family: 'Public Sans', sans-serif; - font-size: 16px; + font-size: 1rem; font-weight: 400; line-height: 18.8px; } @mixin p2 { font-family: 'Public Sans', sans-serif; - font-size: 15px; + font-size: 0.938rem; font-weight: 400; line-height: 18.8px; } @@ -90,7 +103,7 @@ } @mixin list-items { - font-size: 17px; + font-size: 1.063rem; font-weight: 400; line-height: 26px; } From 03e6cd2004148d3be85bc24e62f87854c8f2c57c Mon Sep 17 00:00:00 2001 From: gchi25 Date: Mon, 24 Jun 2024 12:25:36 -0400 Subject: [PATCH 49/79] PXBF-1427-add-search-title-field-in-life-event: remove previous configuration --- ...orm_display.node.bears_benefit.default.yml | 191 ---------------- ...rm_display.node.bears_criteria.default.yml | 210 ------------------ ..._display.node.bears_life_event.default.yml | 200 ----------------- ...iew_display.node.bears_benefit.default.yml | 122 ---------- ...view_display.node.bears_benefit.teaser.yml | 41 ---- ..._display.node.bears_life_event.default.yml | 129 ----------- ...w_display.node.bears_life_event.teaser.yml | 48 ---- ...field.node.bears_life_event.field_b_id.yml | 19 -- ...ears_life_event.field_meta_description.yml | 19 -- ...node.bears_life_event.field_page_intro.yml | 19 -- ...ars_life_event.field_short_description.yml | 19 -- ....node.bears_life_event_form.field_b_id.yml | 19 -- ...levant_benefit.field_b_life_event_form.yml | 25 --- .../usagov_benefit_finder.settings.yml | 3 - 14 files changed, 1064 deletions(-) delete mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml delete mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml delete mode 100644 usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml delete mode 100644 usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml deleted file mode 100644 index 34d53aa65..000000000 --- a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml +++ /dev/null @@ -1,191 +0,0 @@ -uuid: d4fdb095-25a3-43ea-879c-0ddf2ef649ae -langcode: en -status: true -dependencies: - config: - - field.field.node.bears_benefit.field_b_agency - - field.field.node.bears_benefit.field_b_eligibility - - field.field.node.bears_benefit.field_b_headline - - field.field.node.bears_benefit.field_b_initial_elg_length - - field.field.node.bears_benefit.field_b_life_event_forms - - field.field.node.bears_benefit.field_b_source_is_english - - field.field.node.bears_benefit.field_b_source_link - - field.field.node.bears_benefit.field_b_summary - - field.field.node.bears_benefit.field_b_tags - - field.field.node.bears_benefit.field_language_toggle - - node.type.bears_benefit - module: - - content_moderation - - paragraphs - - path - - text -id: node.bears_benefit.default -targetEntityType: node -bundle: bears_benefit -mode: default -content: - created: - type: datetime_timestamp - weight: 12 - region: content - settings: { } - third_party_settings: { } - field_b_agency: - type: options_select - weight: 8 - region: content - settings: { } - third_party_settings: { } - field_b_eligibility: - type: paragraphs - weight: 18 - region: content - settings: - title: Paragraph - title_plural: Paragraphs - edit_mode: open - closed_mode: summary - autocollapse: none - closed_mode_threshold: 0 - add_mode: dropdown - form_display_mode: default - default_paragraph_type: '' - features: - collapse_edit_all: collapse_edit_all - duplicate: duplicate - third_party_settings: { } - field_b_headline: - type: text_textarea - weight: 3 - region: content - settings: - rows: 5 - placeholder: '' - third_party_settings: { } - field_b_initial_elg_length: - type: number - weight: 17 - region: content - settings: - placeholder: '' - third_party_settings: { } - field_b_life_event_forms: - type: options_buttons - weight: 7 - region: content - settings: { } - third_party_settings: { } - field_b_source_is_english: - type: boolean_checkbox - weight: 10 - region: content - settings: - display_label: true - third_party_settings: { } - field_b_source_link: - type: string_textfield - weight: 9 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_b_summary: - type: text_textarea - weight: 4 - region: content - settings: - rows: 5 - placeholder: '' - third_party_settings: { } - field_b_tags: - type: options_buttons - weight: 5 - region: content - settings: { } - third_party_settings: { } - field_language_toggle: - type: entity_reference_autocomplete - weight: 1 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - langcode: - type: language_select - weight: 0 - region: content - settings: - include_locked: true - third_party_settings: { } - moderation_state: - type: moderation_state_default - weight: 20 - region: content - settings: { } - third_party_settings: { } - path: - type: path - weight: 15 - region: content - settings: { } - third_party_settings: { } - promote: - type: boolean_checkbox - weight: 13 - region: content - settings: - display_label: true - third_party_settings: { } - simple_sitemap: - weight: 10 - region: content - settings: { } - third_party_settings: { } - status: - type: boolean_checkbox - weight: 16 - region: content - settings: - display_label: true - third_party_settings: { } - sticky: - type: boolean_checkbox - weight: 14 - region: content - settings: - display_label: true - third_party_settings: { } - title: - type: string_textfield - weight: 2 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - translation: - weight: 10 - region: content - settings: { } - third_party_settings: { } - uid: - type: entity_reference_autocomplete - weight: 11 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - url_redirects: - weight: 19 - region: content - settings: { } - third_party_settings: { } -hidden: - menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml deleted file mode 100644 index 569a12dc2..000000000 --- a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml +++ /dev/null @@ -1,210 +0,0 @@ -uuid: 7b0ea4b3-ad18-416a-81a4-6515572f433f -langcode: en -status: true -dependencies: - config: - - field.field.node.bears_criteria.field_b_child_dependency_option - - field.field.node.bears_criteria.field_b_criteria_key - - field.field.node.bears_criteria.field_b_has_child - - field.field.node.bears_criteria.field_b_id - - field.field.node.bears_criteria.field_b_label - - field.field.node.bears_criteria.field_b_name - - field.field.node.bears_criteria.field_b_type - - field.field.node.bears_criteria.field_b_values - - field.field.node.bears_criteria.field_language_toggle - - node.type.bears_criteria - module: - - content_moderation - - path -id: node.bears_criteria.default -targetEntityType: node -bundle: bears_criteria -mode: default -content: - created: - type: datetime_timestamp - weight: 3 - region: content - settings: { } - third_party_settings: { } - field_b_child_dependency_option: - type: string_textfield - weight: 16 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: - conditional_fields: - 7d256aff-5858-4005-83b2-7a6221d75c58: - entity_type: node - bundle: bears_criteria - dependee: field_b_has_child - settings: - state: required - reset: false - condition: checked - grouping: AND - values_set: 1 - value: '' - values: { } - value_form: - value: false - effect: show - effect_options: { } - selector: '' - 91ce84c7-8a94-49dc-a41c-d5c0f369a2d0: - entity_type: node - bundle: bears_criteria - dependee: field_b_has_child - settings: - state: visible - reset: false - condition: checked - grouping: AND - values_set: 1 - value: '' - values: { } - value_form: - value: false - effect: show - effect_options: { } - selector: '' - field_b_criteria_key: - type: string_textfield - weight: 9 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_b_has_child: - type: boolean_checkbox - weight: 15 - region: content - settings: - display_label: true - third_party_settings: { } - field_b_id: - type: string_textfield - weight: 10 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_b_label: - type: string_textfield - weight: 12 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_b_name: - type: string_textfield - weight: 13 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_b_type: - type: options_select - weight: 11 - region: content - settings: { } - third_party_settings: { } - field_b_values: - type: string_textfield - weight: 14 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_language_toggle: - type: entity_reference_autocomplete - weight: 1 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - langcode: - type: language_select - weight: 0 - region: content - settings: - include_locked: true - third_party_settings: { } - moderation_state: - type: moderation_state_default - weight: 18 - region: content - settings: { } - third_party_settings: { } - path: - type: path - weight: 6 - region: content - settings: { } - third_party_settings: { } - promote: - type: boolean_checkbox - weight: 4 - region: content - settings: - display_label: true - third_party_settings: { } - simple_sitemap: - weight: 10 - region: content - settings: { } - third_party_settings: { } - status: - type: boolean_checkbox - weight: 7 - region: content - settings: - display_label: true - third_party_settings: { } - sticky: - type: boolean_checkbox - weight: 5 - region: content - settings: - display_label: true - third_party_settings: { } - title: - type: string_textfield - weight: 8 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - translation: - weight: 3 - region: content - settings: { } - third_party_settings: { } - uid: - type: entity_reference_autocomplete - weight: 2 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - url_redirects: - weight: 17 - region: content - settings: { } - third_party_settings: { } -hidden: - menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml deleted file mode 100644 index 79e81be80..000000000 --- a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml +++ /dev/null @@ -1,200 +0,0 @@ -uuid: 99c745fb-37ed-4061-89ac-3bf52d328117 -langcode: en -status: true -dependencies: - config: - - field.field.node.bears_life_event.field_b_id - - field.field.node.bears_life_event.field_draft_json_data_file - - field.field.node.bears_life_event.field_draft_json_data_file_path - - field.field.node.bears_life_event.field_header_html - - field.field.node.bears_life_event.field_json_data_file - - field.field.node.bears_life_event.field_json_data_file_path - - field.field.node.bears_life_event.field_language_toggle - - field.field.node.bears_life_event.field_meta_description - - field.field.node.bears_life_event.field_page_intro - - field.field.node.bears_life_event.field_short_description - - field.field.node.bears_life_event.field_summary - - node.type.bears_life_event - module: - - allowed_formats - - content_moderation - - file - - path - - text -id: node.bears_life_event.default -targetEntityType: node -bundle: bears_life_event -mode: default -content: - created: - type: datetime_timestamp - weight: 9 - region: content - settings: { } - third_party_settings: { } - field_b_id: - type: string_textfield - weight: 3 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_draft_json_data_file: - type: file_generic - weight: 20 - region: content - settings: - progress_indicator: throbber - third_party_settings: { } - field_draft_json_data_file_path: - type: string_textfield - weight: 18 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_header_html: - type: text_textarea - weight: 21 - region: content - settings: - rows: 5 - placeholder: '' - third_party_settings: - allowed_formats: - hide_help: '1' - hide_guidelines: '0' - field_json_data_file: - type: file_generic - weight: 19 - region: content - settings: - progress_indicator: throbber - third_party_settings: { } - field_json_data_file_path: - type: string_textfield - weight: 17 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - field_language_toggle: - type: entity_reference_autocomplete - weight: 1 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - field_meta_description: - type: string_textarea - weight: 5 - region: content - settings: - rows: 1 - placeholder: '' - third_party_settings: { } - field_page_intro: - type: string_textarea - weight: 4 - region: content - settings: - rows: 1 - placeholder: '' - third_party_settings: { } - field_short_description: - type: string_textarea - weight: 6 - region: content - settings: - rows: 1 - placeholder: '' - third_party_settings: { } - field_summary: - type: string_textarea - weight: 7 - region: content - settings: - rows: 5 - placeholder: '' - third_party_settings: { } - langcode: - type: language_select - weight: 0 - region: content - settings: - include_locked: true - third_party_settings: { } - moderation_state: - type: moderation_state_default - weight: 15 - region: content - settings: { } - third_party_settings: { } - path: - type: path - weight: 12 - region: content - settings: { } - third_party_settings: { } - promote: - type: boolean_checkbox - weight: 10 - region: content - settings: - display_label: true - third_party_settings: { } - simple_sitemap: - weight: 14 - region: content - settings: { } - third_party_settings: { } - status: - type: boolean_checkbox - weight: 16 - region: content - settings: - display_label: true - third_party_settings: { } - sticky: - type: boolean_checkbox - weight: 11 - region: content - settings: - display_label: true - third_party_settings: { } - title: - type: string_textfield - weight: 2 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - translation: - weight: 10 - region: content - settings: { } - third_party_settings: { } - uid: - type: entity_reference_autocomplete - weight: 8 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - url_redirects: - weight: 13 - region: content - settings: { } - third_party_settings: { } -hidden: - menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml deleted file mode 100644 index ee07784d0..000000000 --- a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml +++ /dev/null @@ -1,122 +0,0 @@ -uuid: 6c74929f-e325-431f-be4a-a55e5ff5254f -langcode: en -status: true -dependencies: - config: - - field.field.node.bears_benefit.field_b_agency - - field.field.node.bears_benefit.field_b_eligibility - - field.field.node.bears_benefit.field_b_headline - - field.field.node.bears_benefit.field_b_initial_elg_length - - field.field.node.bears_benefit.field_b_life_event_forms - - field.field.node.bears_benefit.field_b_source_is_english - - field.field.node.bears_benefit.field_b_source_link - - field.field.node.bears_benefit.field_b_summary - - field.field.node.bears_benefit.field_b_tags - - field.field.node.bears_benefit.field_language_toggle - - node.type.bears_benefit - module: - - entity_reference_revisions - - text - - user -id: node.bears_benefit.default -targetEntityType: node -bundle: bears_benefit -mode: default -content: - field_b_agency: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 6 - region: content - field_b_eligibility: - type: entity_reference_revisions_entity_view - label: above - settings: - view_mode: default - link: '' - third_party_settings: { } - weight: 10 - region: content - field_b_headline: - type: text_default - label: above - settings: { } - third_party_settings: { } - weight: 1 - region: content - field_b_initial_elg_length: - type: number_integer - label: above - settings: - thousand_separator: '' - prefix_suffix: true - third_party_settings: { } - weight: 9 - region: content - field_b_life_event_forms: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 5 - region: content - field_b_source_is_english: - type: boolean - label: above - settings: - format: default - format_custom_false: '' - format_custom_true: '' - third_party_settings: { } - weight: 8 - region: content - field_b_source_link: - type: string - label: above - settings: - link_to_entity: false - third_party_settings: { } - weight: 7 - region: content - field_b_summary: - type: text_default - label: above - settings: { } - third_party_settings: { } - weight: 2 - region: content - field_b_tags: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 3 - region: content - field_language_toggle: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 12 - region: content - langcode: - type: language - label: above - settings: - link_to_entity: false - native_language: false - third_party_settings: { } - weight: 11 - region: content - links: - settings: { } - third_party_settings: { } - weight: 0 - region: content -hidden: { } diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml deleted file mode 100644 index 4f693d923..000000000 --- a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml +++ /dev/null @@ -1,41 +0,0 @@ -uuid: dab1fae4-5630-49c4-820a-d787fba71e65 -langcode: en -status: true -dependencies: - config: - - core.entity_view_mode.node.teaser - - field.field.node.bears_benefit.field_b_agency - - field.field.node.bears_benefit.field_b_eligibility - - field.field.node.bears_benefit.field_b_headline - - field.field.node.bears_benefit.field_b_initial_elg_length - - field.field.node.bears_benefit.field_b_life_event_forms - - field.field.node.bears_benefit.field_b_source_is_english - - field.field.node.bears_benefit.field_b_source_link - - field.field.node.bears_benefit.field_b_summary - - field.field.node.bears_benefit.field_b_tags - - field.field.node.bears_benefit.field_language_toggle - - node.type.bears_benefit - module: - - user -id: node.bears_benefit.teaser -targetEntityType: node -bundle: bears_benefit -mode: teaser -content: - links: - settings: { } - third_party_settings: { } - weight: 100 - region: content -hidden: - field_b_agency: true - field_b_eligibility: true - field_b_headline: true - field_b_initial_elg_length: true - field_b_life_event_forms: true - field_b_source_is_english: true - field_b_source_link: true - field_b_summary: true - field_b_tags: true - field_language_toggle: true - langcode: true diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml deleted file mode 100644 index 204f55b3b..000000000 --- a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml +++ /dev/null @@ -1,129 +0,0 @@ -uuid: 6a658720-5cd1-4c61-bf1c-a8f0c9a40680 -langcode: en -status: true -dependencies: - config: - - field.field.node.bears_life_event.field_b_id - - field.field.node.bears_life_event.field_draft_json_data_file - - field.field.node.bears_life_event.field_draft_json_data_file_path - - field.field.node.bears_life_event.field_header_html - - field.field.node.bears_life_event.field_json_data_file - - field.field.node.bears_life_event.field_json_data_file_path - - field.field.node.bears_life_event.field_language_toggle - - field.field.node.bears_life_event.field_meta_description - - field.field.node.bears_life_event.field_page_intro - - field.field.node.bears_life_event.field_short_description - - field.field.node.bears_life_event.field_summary - - node.type.bears_life_event - module: - - file - - text - - user -id: node.bears_life_event.default -targetEntityType: node -bundle: bears_life_event -mode: default -content: - content_moderation_control: - settings: { } - third_party_settings: { } - weight: -20 - region: content - field_b_id: - type: string - label: above - settings: - link_to_entity: false - third_party_settings: { } - weight: 2 - region: content - field_draft_json_data_file: - type: file_default - label: above - settings: - use_description_as_link_text: true - third_party_settings: { } - weight: 9 - region: content - field_draft_json_data_file_path: - type: string - label: above - settings: - link_to_entity: false - third_party_settings: { } - weight: 7 - region: content - field_header_html: - type: text_default - label: above - settings: { } - third_party_settings: { } - weight: 10 - region: content - field_json_data_file: - type: file_default - label: above - settings: - use_description_as_link_text: true - third_party_settings: { } - weight: 8 - region: content - field_json_data_file_path: - type: string - label: above - settings: - link_to_entity: false - third_party_settings: { } - weight: 6 - region: content - field_language_toggle: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 5 - region: content - field_meta_description: - type: basic_string - label: above - settings: { } - third_party_settings: { } - weight: 3 - region: content - field_page_intro: - type: basic_string - label: hidden - settings: { } - third_party_settings: { } - weight: 2 - region: content - field_short_description: - type: basic_string - label: above - settings: { } - third_party_settings: { } - weight: 11 - region: content - field_summary: - type: basic_string - label: above - settings: { } - third_party_settings: { } - weight: 1 - region: content - langcode: - type: language - label: above - settings: - link_to_entity: false - native_language: false - third_party_settings: { } - weight: 4 - region: content - links: - settings: { } - third_party_settings: { } - weight: 0 - region: content -hidden: { } diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml deleted file mode 100644 index 86cf298b8..000000000 --- a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml +++ /dev/null @@ -1,48 +0,0 @@ -uuid: 75f24593-dd3f-4f75-aea4-27d8ca76f40b -langcode: en -status: true -dependencies: - config: - - core.entity_view_mode.node.teaser - - field.field.node.bears_life_event.field_b_id - - field.field.node.bears_life_event.field_draft_json_data_file - - field.field.node.bears_life_event.field_draft_json_data_file_path - - field.field.node.bears_life_event.field_header_html - - field.field.node.bears_life_event.field_json_data_file - - field.field.node.bears_life_event.field_json_data_file_path - - field.field.node.bears_life_event.field_language_toggle - - field.field.node.bears_life_event.field_meta_description - - field.field.node.bears_life_event.field_page_intro - - field.field.node.bears_life_event.field_short_description - - field.field.node.bears_life_event.field_summary - - node.type.bears_life_event - module: - - user -id: node.bears_life_event.teaser -targetEntityType: node -bundle: bears_life_event -mode: teaser -content: - content_moderation_control: - settings: { } - third_party_settings: { } - weight: -20 - region: content - links: - settings: { } - third_party_settings: { } - weight: 100 - region: content -hidden: - field_b_id: true - field_draft_json_data_file: true - field_draft_json_data_file_path: true - field_header_html: true - field_json_data_file: true - field_json_data_file_path: true - field_language_toggle: true - field_meta_description: true - field_page_intro: true - field_short_description: true - field_summary: true - langcode: true diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml deleted file mode 100644 index 1c64ee604..000000000 --- a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 1d3a2be6-3f91-4d75-8388-e26cde7882d0 -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_b_id - - node.type.bears_life_event -id: node.bears_life_event.field_b_id -field_name: field_b_id -entity_type: node -bundle: bears_life_event -label: ID -description: '' -required: true -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml deleted file mode 100644 index 49b1522c3..000000000 --- a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: b3333760-014c-45c3-9ac9-1d5c9a3e6a91 -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_meta_description - - node.type.bears_life_event -id: node.bears_life_event.field_meta_description -field_name: field_meta_description -entity_type: node -bundle: bears_life_event -label: 'Meta Description' -description: 'Text to place in a "meta description" tag on this page. If this field is empty, the Page Intro will be used for the meta description. ' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml deleted file mode 100644 index aed5f3d4e..000000000 --- a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 1f6b04ec-e649-4672-8405-32a594ad93cb -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_page_intro - - node.type.bears_life_event -id: node.bears_life_event.field_page_intro -field_name: field_page_intro -entity_type: node -bundle: bears_life_event -label: 'Page Intro' -description: '' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml deleted file mode 100644 index c7d9084e2..000000000 --- a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: d892bc96-def5-4e8f-9725-d670fdc2c382 -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_short_description - - node.type.bears_life_event -id: node.bears_life_event.field_short_description -field_name: field_short_description -entity_type: node -bundle: bears_life_event -label: 'Short Description' -description: 'The short description appears on cards for the homepage and nav pages. Aim for less than 80 characters. If left blank the page intro will be used.' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml deleted file mode 100644 index 9bd263382..000000000 --- a/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 27344f9c-03c7-4232-a628-107b8893f3cb -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_b_id - - node.type.bears_life_event_form -id: node.bears_life_event_form.field_b_id -field_name: field_b_id -entity_type: node -bundle: bears_life_event_form -label: ID -description: '' -required: true -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string diff --git a/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml b/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml deleted file mode 100644 index 71829a0d7..000000000 --- a/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: ec5f36b1-45d7-4c91-b74d-3d8a49dd348f -langcode: en -status: true -dependencies: - config: - - field.storage.paragraph.field_b_life_event_form - - paragraphs.paragraphs_type.b_levent_relevant_benefit -id: paragraph.b_levent_relevant_benefit.field_b_life_event_form -field_name: field_b_life_event_form -entity_type: paragraph -bundle: b_levent_relevant_benefit -label: 'Life Event Form' -description: '' -required: true -translatable: false -default_value: { } -default_value_callback: '' -settings: - handler: views - handler_settings: - view: - view_name: benefit_finder - display_name: entity_reference_3 - arguments: { } -field_type: entity_reference diff --git a/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml b/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml deleted file mode 100644 index e6e3832be..000000000 --- a/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml +++ /dev/null @@ -1,3 +0,0 @@ -_core: - default_config_hash: sgIXuoeVJ1TaEzDT2BEh-RcCvmocaPx_0QpNgfRpxQA -automate_json_data_file_generating: true From 9bd8b485e97a21f5375572b91176792af11ba3ab Mon Sep 17 00:00:00 2001 From: gchi25 Date: Mon, 24 Jun 2024 12:28:18 -0400 Subject: [PATCH 50/79] PXBF-1427-add-search-title-field-in-life-event: add search title field --- ..._display.node.bears_life_event.default.yml | 209 ++++++++++++++++++ ..._display.node.bears_life_event.default.yml | 138 ++++++++++++ ...w_display.node.bears_life_event.teaser.yml | 50 +++++ ....bears_life_event.field_b_search_title.yml | 19 ++ ...ield.storage.node.field_b_search_title.yml | 25 +++ 5 files changed, 441 insertions(+) create mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml create mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml create mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_search_title.yml create mode 100644 usagov_benefit_finder/configuration/field.storage.node.field_b_search_title.yml diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml new file mode 100644 index 000000000..94335f34f --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_life_event.default.yml @@ -0,0 +1,209 @@ +uuid: 99c745fb-37ed-4061-89ac-3bf52d328117 +langcode: en +status: true +dependencies: + config: + - field.field.node.bears_life_event.field_b_id + - field.field.node.bears_life_event.field_b_search_title + - field.field.node.bears_life_event.field_draft_json_data_file + - field.field.node.bears_life_event.field_draft_json_data_file_path + - field.field.node.bears_life_event.field_header_html + - field.field.node.bears_life_event.field_json_data_file + - field.field.node.bears_life_event.field_json_data_file_path + - field.field.node.bears_life_event.field_language_toggle + - field.field.node.bears_life_event.field_meta_description + - field.field.node.bears_life_event.field_page_intro + - field.field.node.bears_life_event.field_short_description + - field.field.node.bears_life_event.field_summary + - node.type.bears_life_event + module: + - allowed_formats + - content_moderation + - file + - path + - text +id: node.bears_life_event.default +targetEntityType: node +bundle: bears_life_event +mode: default +content: + created: + type: datetime_timestamp + weight: 10 + region: content + settings: { } + third_party_settings: { } + field_b_id: + type: string_textfield + weight: 3 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_search_title: + type: string_textfield + weight: 7 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_draft_json_data_file: + type: file_generic + weight: 21 + region: content + settings: + progress_indicator: throbber + third_party_settings: { } + field_draft_json_data_file_path: + type: string_textfield + weight: 19 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_header_html: + type: text_textarea + weight: 22 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: + allowed_formats: + hide_help: '1' + hide_guidelines: '0' + field_json_data_file: + type: file_generic + weight: 20 + region: content + settings: + progress_indicator: throbber + third_party_settings: { } + field_json_data_file_path: + type: string_textfield + weight: 18 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_language_toggle: + type: entity_reference_autocomplete + weight: 1 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + field_meta_description: + type: string_textarea + weight: 5 + region: content + settings: + rows: 1 + placeholder: '' + third_party_settings: { } + field_page_intro: + type: string_textarea + weight: 4 + region: content + settings: + rows: 1 + placeholder: '' + third_party_settings: { } + field_short_description: + type: string_textarea + weight: 6 + region: content + settings: + rows: 1 + placeholder: '' + third_party_settings: { } + field_summary: + type: string_textarea + weight: 8 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + langcode: + type: language_select + weight: 0 + region: content + settings: + include_locked: true + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 16 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 13 + region: content + settings: { } + third_party_settings: { } + promote: + type: boolean_checkbox + weight: 11 + region: content + settings: + display_label: true + third_party_settings: { } + simple_sitemap: + weight: 15 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 17 + region: content + settings: + display_label: true + third_party_settings: { } + sticky: + type: boolean_checkbox + weight: 12 + region: content + settings: + display_label: true + third_party_settings: { } + title: + type: string_textfield + weight: 2 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + translation: + weight: 10 + region: content + settings: { } + third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 9 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + url_redirects: + weight: 14 + region: content + settings: { } + third_party_settings: { } +hidden: + menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml new file mode 100644 index 000000000..502604726 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.default.yml @@ -0,0 +1,138 @@ +uuid: 6a658720-5cd1-4c61-bf1c-a8f0c9a40680 +langcode: en +status: true +dependencies: + config: + - field.field.node.bears_life_event.field_b_id + - field.field.node.bears_life_event.field_b_search_title + - field.field.node.bears_life_event.field_draft_json_data_file + - field.field.node.bears_life_event.field_draft_json_data_file_path + - field.field.node.bears_life_event.field_header_html + - field.field.node.bears_life_event.field_json_data_file + - field.field.node.bears_life_event.field_json_data_file_path + - field.field.node.bears_life_event.field_language_toggle + - field.field.node.bears_life_event.field_meta_description + - field.field.node.bears_life_event.field_page_intro + - field.field.node.bears_life_event.field_short_description + - field.field.node.bears_life_event.field_summary + - node.type.bears_life_event + module: + - file + - text + - user +id: node.bears_life_event.default +targetEntityType: node +bundle: bears_life_event +mode: default +content: + content_moderation_control: + settings: { } + third_party_settings: { } + weight: -20 + region: content + field_b_id: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 2 + region: content + field_b_search_title: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 12 + region: content + field_draft_json_data_file: + type: file_default + label: above + settings: + use_description_as_link_text: true + third_party_settings: { } + weight: 9 + region: content + field_draft_json_data_file_path: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 7 + region: content + field_header_html: + type: text_default + label: above + settings: { } + third_party_settings: { } + weight: 10 + region: content + field_json_data_file: + type: file_default + label: above + settings: + use_description_as_link_text: true + third_party_settings: { } + weight: 8 + region: content + field_json_data_file_path: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 6 + region: content + field_language_toggle: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 5 + region: content + field_meta_description: + type: basic_string + label: above + settings: { } + third_party_settings: { } + weight: 3 + region: content + field_page_intro: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 2 + region: content + field_short_description: + type: basic_string + label: above + settings: { } + third_party_settings: { } + weight: 11 + region: content + field_summary: + type: basic_string + label: above + settings: { } + third_party_settings: { } + weight: 1 + region: content + langcode: + type: language + label: above + settings: + link_to_entity: false + native_language: false + third_party_settings: { } + weight: 4 + region: content + links: + settings: { } + third_party_settings: { } + weight: 0 + region: content +hidden: { } diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml new file mode 100644 index 000000000..7c76eec76 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_life_event.teaser.yml @@ -0,0 +1,50 @@ +uuid: 75f24593-dd3f-4f75-aea4-27d8ca76f40b +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.node.teaser + - field.field.node.bears_life_event.field_b_id + - field.field.node.bears_life_event.field_b_search_title + - field.field.node.bears_life_event.field_draft_json_data_file + - field.field.node.bears_life_event.field_draft_json_data_file_path + - field.field.node.bears_life_event.field_header_html + - field.field.node.bears_life_event.field_json_data_file + - field.field.node.bears_life_event.field_json_data_file_path + - field.field.node.bears_life_event.field_language_toggle + - field.field.node.bears_life_event.field_meta_description + - field.field.node.bears_life_event.field_page_intro + - field.field.node.bears_life_event.field_short_description + - field.field.node.bears_life_event.field_summary + - node.type.bears_life_event + module: + - user +id: node.bears_life_event.teaser +targetEntityType: node +bundle: bears_life_event +mode: teaser +content: + content_moderation_control: + settings: { } + third_party_settings: { } + weight: -20 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_b_id: true + field_b_search_title: true + field_draft_json_data_file: true + field_draft_json_data_file_path: true + field_header_html: true + field_json_data_file: true + field_json_data_file_path: true + field_language_toggle: true + field_meta_description: true + field_page_intro: true + field_short_description: true + field_summary: true + langcode: true diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_search_title.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_search_title.yml new file mode 100644 index 000000000..2d321559d --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_search_title.yml @@ -0,0 +1,19 @@ +uuid: 4cfe5edb-4b13-42ac-98b0-3cd6416cd289 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_b_search_title + - node.type.bears_life_event +id: node.bears_life_event.field_b_search_title +field_name: field_b_search_title +entity_type: node +bundle: bears_life_event +label: 'Search Title' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/usagov_benefit_finder/configuration/field.storage.node.field_b_search_title.yml b/usagov_benefit_finder/configuration/field.storage.node.field_b_search_title.yml new file mode 100644 index 000000000..802fb8742 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.storage.node.field_b_search_title.yml @@ -0,0 +1,25 @@ +uuid: ee685fe0-3e6b-4b9a-8c8a-d1733cd1dabd +langcode: en +status: true +dependencies: + module: + - field_permissions + - node +third_party_settings: + field_permissions: + permission_type: public +id: node.field_b_search_title +field_name: field_b_search_title +entity_type: node +type: string +settings: + max_length: 255 + case_sensitive: false + is_ascii: false +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false From 409f90c142712922302536f2eac8b7f1f9109897 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 24 Jun 2024 17:04:36 -0400 Subject: [PATCH 51/79] PXBF-1367-zero-benefits-view: updated a11y to handle new zero benefits view --- .../cypress/e2e/storybook/axe-a11y.cy.js | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/benefit-finder/cypress/e2e/storybook/axe-a11y.cy.js b/benefit-finder/cypress/e2e/storybook/axe-a11y.cy.js index a0adff305..0966b4d96 100644 --- a/benefit-finder/cypress/e2e/storybook/axe-a11y.cy.js +++ b/benefit-finder/cypress/e2e/storybook/axe-a11y.cy.js @@ -1,6 +1,7 @@ /// import * as utils from '../../support/utils.js' +import * as BENEFITS_ELIBILITY_DATA from '../../fixtures/benefits-eligibility.json' import * as EN_LOCALE_DATA from '../../../../benefit-finder/src/shared/locales/en/en.json' import * as EN_DOLO_MOCK_DATA from '../../../../benefit-finder/src/shared/api/mock-data/current.json' import { pageObjects } from '../../support/pageObjects' @@ -107,16 +108,27 @@ describe(`Validate code passes axe scanning`, () => { }) it('Has no detectable a11y violations on see benefits', () => { - pageObjects.button().contains(EN_LOCALE_DATA.intro.button).click() - utils.dataInputs({ dob, relation, status }) - pageObjects.button().contains(EN_LOCALE_DATA.buttonGroup[1].value).click() - utils.dataInputs({ dod }) - pageObjects.button().contains(EN_LOCALE_DATA.buttonGroup[1].value).click() - pageObjects - .button() - .contains(EN_LOCALE_DATA.reviewSelectionModal.buttonGroup[1].value) - .click() - runA11y() + const selectedData = BENEFITS_ELIBILITY_DATA.scenario_1_covid.en.param + const scenario = utils.encodeURIFromObject(selectedData) + delete selectedData.shared // We don't want to include the "shared" param + + cy.visit(`${utils.storybookUri}${scenario}`) + cy.injectAxe() // we inject axe again because of the reload -> visit + // get a node list of all accordions + // get the heading of the first in the list + cy.get(`[data-analytics="bf-usa-accordion"]`).then(accordionItems => { + pageObjects + .benefitResultsView() + .invoke('attr', 'data-analytics') + .should('eq', 'bf-result-view') + + pageObjects + .accordion( + `${accordionItems[0].getAttribute('data-analytics-content')}` + ) + .click() + runA11y() + }) }) it('Has no detectable a11y violations on see benefits you did not qualify for', () => { @@ -131,8 +143,17 @@ describe(`Validate code passes axe scanning`, () => { .click() pageObjects .button() - .contains(EN_LOCALE_DATA.resultsView.notEligibleResults.cta) + .contains(EN_LOCALE_DATA.resultsView.zeroBenefits.cta) .click() - runA11y() + // get a node list of all accordions + // get the heading of the first in the list + cy.get(`[data-analytics="bf-usa-accordion"]`).then(accordionItems => { + pageObjects + .accordion( + `${accordionItems[0].getAttribute('data-analytics-content')}` + ) + .click() + runA11y() + }) }) }) From 486bbd42bef2ca2126b396761b07fd5d640b86ae Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 24 Jun 2024 17:21:33 -0400 Subject: [PATCH 52/79] PXBF-1367-zero-benefits-view: make content more generic --- benefit-finder/src/shared/locales/en/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benefit-finder/src/shared/locales/en/en.json b/benefit-finder/src/shared/locales/en/en.json index 02648e180..da134b877 100644 --- a/benefit-finder/src/shared/locales/en/en.json +++ b/benefit-finder/src/shared/locales/en/en.json @@ -107,11 +107,11 @@ }, "zeroBenefits": { "chevron": { - "heading": "You are likely not eligible for the benefits of death of a loved one", + "heading": "You are likely not eligible for benefits", "description": "

If you reached these results by mistake, please go back to review your answers.

" }, "heading": "No eligible results", - "description": "Based on your answers you are likely not eligible for the [death of a loved one] benefits. You may become eligible if you enter more information or your situation changes.", + "description": "Based on your answers you are likely not eligible for benefits. You may become eligible if you enter more information or your situation changes.", "cta": "See all benefits" }, "stepBackLink": "Back", From c104a9ec20b8926c1692c5fc32b34dca6ead060f Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 24 Jun 2024 17:22:10 -0400 Subject: [PATCH 53/79] PXBF-1367-zero-benefits-view: include datalayer values --- .../shared/components/ResultsView/index.jsx | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index e9a2708f4..cc9ae6fff 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -16,6 +16,8 @@ import { import { createMarkup } from '../../utils' import './_index.scss' +// Results View is a single view with three states, eligible, not eligible, and zero benefits + /** * a functional component that renders a view of the form benefit state values * @component @@ -114,12 +116,16 @@ const ResultsView = ({ pageView: 'bf-result-view', viewTitle: notEligibleView === false - ? eligible.chevron.heading - : notEligible.chevron.heading, + ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || + eligible.chevron.heading + : (zeroBenefitsResult && zeroBenefits.chevron.heading) || + notEligible.chevron.heading, viewState: notEligibleView === true - ? 'bf-not-eligible-view' - : 'bf-eligible-view', + ? (zeroBenefitsResult && 'bf-not-eligible-view-zero-benefits') || + 'bf-not-eligible-view' + : (zeroBenefitsResult && 'bf-eligible-view-zero-benefits') || + 'bf-eligible-view', }, }) }, [notEligibleView]) @@ -211,11 +217,11 @@ const ResultsView = ({ {zeroBenefitsResult && !notEligibleView && (
- +
)} - {/*
{ e.preventDefault() && - window.location.href = `${window.location.origin}${window.location.pathname}`} /> */} {/* map all the benefits into cards */}
Date: Mon, 24 Jun 2024 17:39:08 -0400 Subject: [PATCH 54/79] PXBF-1480-optimized-deps-config: exclude blocks from storybook optimized dependencies --- benefit-finder/vite.config.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/benefit-finder/vite.config.mjs b/benefit-finder/vite.config.mjs index a1df1e933..452f236d7 100644 --- a/benefit-finder/vite.config.mjs +++ b/benefit-finder/vite.config.mjs @@ -44,6 +44,9 @@ const server = test ? testServer : devServer export default defineConfig({ base: './', plugins: [react(), eslint(), copy(copyConfig)], + optimizeDeps: { + exclude: ['@storybook/blocks'], + }, css: { postcss: poscssConfig, }, From 917ec471fc33e545d228319cd0ca47f4a2c38fe0 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Mon, 24 Jun 2024 18:08:13 -0400 Subject: [PATCH 55/79] PXBF-1367-zero-benefits-view: update datalayer state dependencies to align push values --- benefit-finder/src/shared/components/ResultsView/index.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index cc9ae6fff..f88fa3ccd 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -109,7 +109,8 @@ const ResultsView = ({ // handle dataLayer useEffect(() => { - window.dataLayer && + eligibilityCount.notEligible >= 0 && + window.dataLayer && window.dataLayer.push({ event: 'bf_page_change', bfData: { @@ -128,7 +129,7 @@ const ResultsView = ({ 'bf-eligible-view', }, }) - }, [notEligibleView]) + }, [notEligibleView, zeroBenefitsResult, eligibilityCount]) useEffect(() => { eligibilityCount.notEligible >= 0 && From 2875795ffe7113522c9b0585f1523f0bdd43cac1 Mon Sep 17 00:00:00 2001 From: gchi25 Date: Tue, 25 Jun 2024 11:31:17 -0400 Subject: [PATCH 56/79] PXBF-1338-no-auto-json-file-in-multi-contents-action: do not generate json file in multi contents action --- .../usagov_benefit_finder_api.module | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module b/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module index 526ad1bda..2a0edefb8 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module @@ -6,6 +6,7 @@ */ use Drupal\Core\Batch\BatchBuilder; +use Drupal\Core\Url; use Drupal\node\Entity\Node; use Drupal\usagov_benefit_finder_api\Controller\LifeEventController; @@ -15,7 +16,13 @@ use Drupal\usagov_benefit_finder_api\Controller\LifeEventController; * @param Node $node */ function usagov_benefit_finder_api_node_update(Node $node) { - _usagov_benefit_finder_api_batch_generate_json_data_files($node); + $url = _usagov_benefit_finder_api_get_current_page_url(); + if (strpos($url, "/admin/content") === false) { + _usagov_benefit_finder_api_batch_generate_json_data_files($node); + } + else { + \Drupal::messenger()->addWarning(t('The system did not generate Benefit Finder JSON files in this action.')); + } } /** @@ -128,3 +135,14 @@ function _usagov_benefit_finder_api_batch_generate_json_data_files(Node $node) { } } } + +/** + * Gets the current page URL. + * + * @return string + * The current page URL. + */ +function _usagov_benefit_finder_api_get_current_page_url() { + $current_url = Url::fromRoute('')->toString(); + return $current_url; +} From 155ddafdee087200d1d6339610881f39dac467c6 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 12:59:51 -0400 Subject: [PATCH 57/79] PXBF-1482-structure-data-layer: move our dataLayer init values to an export object --- .../dataLayerUtils/dataLayerStructure.js | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js new file mode 100644 index 000000000..9fa7b0dc8 --- /dev/null +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js @@ -0,0 +1,37 @@ +const dataLayerStructure = { + intro: { + event: 'bf_page_change', + bfData: { pageView: 'bf-intro', viewTitle: null }, + }, + lifeEventSection: { + event: 'bf_page_change', + bfData: { + pageView: 'bf-form', + viewTitle: null, + }, + }, + modal: { + event: 'bf_modal_open', + bfData: { + modalOpen: false, + }, + }, + verifySelections: { + event: 'bf_page_change', + bfData: { + pageView: 'bf-verify-selections', + viewTitle: null, + }, + }, + resultsView: { + event: 'bf_page_change', + bfData: { + pageView: 'bf-result-view', + viewTitle: null, + viewState: ['bf-not-eligible-view', 'bf-eligible-view'], + }, + }, + benefitCount: { event: 'bf_count', bfData: null }, +} + +export default dataLayerStructure From daaaaa994072dff94bb1c4a507f36d086fa02f3c Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:00:20 -0400 Subject: [PATCH 58/79] PXBF-1482-structure-data-layer: create a custom function for handling dataLayer pushes --- .../utils/dataLayerUtils/dataLayerPush.js | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js new file mode 100644 index 000000000..7d1c4329e --- /dev/null +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js @@ -0,0 +1,41 @@ +const dataLayerPush = (w, dataLayerObj, dedup) => { + const isObject = object => { + return object != null && typeof object === 'object' + } + + const isDeepEqual = (object1, object2) => { + // get the keys of our two objects + const objKeys1 = Object.keys(object1) + const objKeys2 = Object.keys(object2) + + // if they have a different length we can return early + if (objKeys1.length !== objKeys2.length) return false + + // compare each key + for (const key of objKeys1) { + const value1 = object1[key] + const value2 = object2[key] + + const isObjects = isObject(value1) && isObject(value2) + + if ( + (isObjects && !isDeepEqual(value1, value2)) || + (!isObjects && value1 !== value2) + ) { + return false + } + } + return true + } + + if (w.dataLayer) { + // get the last index of the dataLayer array + const lastItem = window.dataLayer[window.dataLayer.length - 1] + + // to prevent pushing duplicate objects unecessarily, as long as our last item doesn't match our current data obj, we push + isDeepEqual(lastItem, dataLayerObj) === false && + w.dataLayer.push(dataLayerObj) + } +} + +export default dataLayerPush From bbaaeb208c25a09a280cde20aa4973865e6215b6 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:29:28 -0400 Subject: [PATCH 59/79] PXBF-1482-structure-data-layer: export dataLayerUtils --- benefit-finder/src/shared/utils/dataLayerUtils/index.js | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 benefit-finder/src/shared/utils/dataLayerUtils/index.js diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/index.js b/benefit-finder/src/shared/utils/dataLayerUtils/index.js new file mode 100644 index 000000000..130be6ff7 --- /dev/null +++ b/benefit-finder/src/shared/utils/dataLayerUtils/index.js @@ -0,0 +1,4 @@ +import dataLayerPush from './dataLayerPush.js' +import dataLayerStructure from './dataLayerStructure.js' + +export default { dataLayerPush, dataLayerStructure } From 020fbaeff30ea29893d5ac400302410af5200cdc Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:29:48 -0400 Subject: [PATCH 60/79] PXBF-1482-structure-data-layer: export dataLayerUtils --- benefit-finder/src/shared/utils/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/benefit-finder/src/shared/utils/index.js b/benefit-finder/src/shared/utils/index.js index 488558054..43fef4c1f 100644 --- a/benefit-finder/src/shared/utils/index.js +++ b/benefit-finder/src/shared/utils/index.js @@ -1,5 +1,6 @@ export { default as buildURIParameter } from './buildURIParameter' export { default as createMarkup } from './createMarkup' +export { default as dataLayerUtils } from './dataLayerUtils' export { default as dateInputValidation } from './dateInputValidation' export { default as parseDate } from './parseDate' export { default as scrollLock } from './scrollLock' From 5103f4cbff70672f4d585ba4645ba7e250fc6a11 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:30:17 -0400 Subject: [PATCH 61/79] PXBF-1482-structure-data-layer: use dataLayerValues for pushing --- .../src/shared/components/Intro/index.jsx | 12 +++--- .../components/LifeEventSection/index.jsx | 24 +++-------- .../src/shared/components/Modal/index.jsx | 14 ++++++- .../shared/components/ResultsView/index.jsx | 40 ++++++++++--------- .../components/VerifySelectionsView/index.jsx | 18 ++++----- 5 files changed, 56 insertions(+), 52 deletions(-) diff --git a/benefit-finder/src/shared/components/Intro/index.jsx b/benefit-finder/src/shared/components/Intro/index.jsx index 559f23f72..62bc6f780 100644 --- a/benefit-finder/src/shared/components/Intro/index.jsx +++ b/benefit-finder/src/shared/components/Intro/index.jsx @@ -1,4 +1,5 @@ import { useEffect } from 'react' +import { dataLayerUtils } from '../../utils' import { useResetElement } from '../../hooks' import PropTypes from 'prop-types' import { @@ -24,7 +25,6 @@ import './_index.scss' const Intro = ({ data, ui, setStep, step }) => { const { timeEstimate, title, summary } = data const { heading, timeIndicator, steps, notices, button } = ui - // const resetElements = document.querySelectorAll('[tabindex="-1"]') const resetElement = useResetElement() const handleStep = () => { @@ -34,11 +34,11 @@ const Intro = ({ data, ui, setStep, step }) => { // handle dataLayer useEffect(() => { - window.dataLayer && - window.dataLayer.push({ - event: 'bf_page_change', - bfData: { pageView: 'bf-intro', viewTitle: title }, - }) + const { intro } = dataLayerUtils.dataLayerStructure + dataLayerUtils.dataLayerPush(window, { + event: intro.event, + bfData: { pageView: intro.bfData.pageView, viewTitle: title }, + }) }, []) return ( diff --git a/benefit-finder/src/shared/components/LifeEventSection/index.jsx b/benefit-finder/src/shared/components/LifeEventSection/index.jsx index a9c8f4069..702431cca 100644 --- a/benefit-finder/src/shared/components/LifeEventSection/index.jsx +++ b/benefit-finder/src/shared/components/LifeEventSection/index.jsx @@ -1,6 +1,6 @@ import { useState, useEffect, useRef, Fragment } from 'react' import PropTypes from 'prop-types' -import { dateInputValidation, createMarkup } from '../../utils' +import { dateInputValidation, createMarkup, dataLayerUtils } from '../../utils' import { useHandleUnload, useResetElement } from '../../hooks' import * as apiCalls from '../../api/apiCalls' import { @@ -261,29 +261,17 @@ const LifeEventSection = ({ // handle dataLayer useEffect(() => { - window.dataLayer && - window.dataLayer.push({ - event: 'bf_page_change', + const { lifeEventSection } = dataLayerUtils.dataLayerStructure + modalOpen === false && + dataLayerUtils.dataLayerPush(window, { + event: lifeEventSection.event, bfData: { - pageView: 'bf-form', + pageView: `${lifeEventSection.bfData.pageView}-${step}`, viewTitle: currentData.section.heading, }, }) }, []) - useEffect(() => { - modalOpen === true && - window.dataLayer && - window.dataLayer.push({ - event: 'bf_modal_open', - bfData: { - pageView: 'bf-form', - viewTitle: currentData.section.heading, - modalOpen, - }, - }) - }, []) - return ( data && ( <> diff --git a/benefit-finder/src/shared/components/Modal/index.jsx b/benefit-finder/src/shared/components/Modal/index.jsx index 9148d2f8c..f31807248 100644 --- a/benefit-finder/src/shared/components/Modal/index.jsx +++ b/benefit-finder/src/shared/components/Modal/index.jsx @@ -2,7 +2,7 @@ import { useEffect, useRef } from 'react' import NavModal from 'react-modal' import PropTypes from 'prop-types' import { Button, ObfuscatedLink, Icon, Heading } from '../index' -import { scrollLock } from '../../utils' +import { scrollLock, dataLayerUtils } from '../../utils' import './_index.scss' @@ -100,6 +100,18 @@ const Modal = ({ return cleanUp() }, []) + // handle dataLayer + useEffect(() => { + const { modal } = dataLayerUtils.dataLayerStructure + modalOpen === true && + dataLayerUtils.dataLayerPush(window, { + event: modal.event, + bfData: { + modalOpen, + }, + }) + }, []) + /** * a functional component that renders a link as a button for launching our dialog * @component diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index 1ab0ae026..a8558df9b 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -13,7 +13,7 @@ import { RelativeBenefitList, Summary, } from '../index' -import { createMarkup } from '../../utils' +import { createMarkup, dataLayerUtils } from '../../utils' import './_index.scss' /** @@ -104,27 +104,31 @@ const ResultsView = ({ // handle dataLayer useEffect(() => { - window.dataLayer && - window.dataLayer.push({ - event: 'bf_page_change', - bfData: { - pageView: 'bf-result-view', - viewTitle: - notEligibleView === false - ? eligible.chevron.heading - : notEligible.chevron.heading, - viewState: - notEligibleView === true - ? 'bf-not-eligible-view' - : 'bf-eligible-view', - }, - }) + const { resultsView } = dataLayerUtils.dataLayerStructure + dataLayerUtils.dataLayerPush(window, { + event: resultsView.event, + bfData: { + pageView: resultsView.bfData.pageView, + viewTitle: + notEligibleView === false + ? eligible.chevron.heading + : notEligible.chevron.heading, + viewState: + notEligibleView === true + ? resultsView.bfData.viewState[0] + : resultsView.bfData.viewState[1], + }, + }) }, [notEligibleView]) + // handle dataLayer useEffect(() => { + const { benefitCount } = dataLayerUtils.dataLayerStructure eligibilityCount.notEligible >= 0 && - window.dataLayer && - window.dataLayer.push({ event: 'bf_count', bfData: eligibilityCount }) + dataLayerUtils.dataLayerPush({ + event: benefitCount.event, + bfData: eligibilityCount, + }) }, [eligibilityCount]) // compare the selected criteria array with benefits diff --git a/benefit-finder/src/shared/components/VerifySelectionsView/index.jsx b/benefit-finder/src/shared/components/VerifySelectionsView/index.jsx index 19d129fab..c2e1df2c7 100644 --- a/benefit-finder/src/shared/components/VerifySelectionsView/index.jsx +++ b/benefit-finder/src/shared/components/VerifySelectionsView/index.jsx @@ -1,6 +1,6 @@ import { useEffect } from 'react' import PropTypes from 'prop-types' -import { parseDate } from '../../utils' +import { parseDate, dataLayerUtils } from '../../utils' import * as apiCalls from '../../api/apiCalls' import { Heading, Button } from '../index' @@ -109,14 +109,14 @@ const VerifySelectionsView = ({ // handle dataLayer useEffect(() => { - window.dataLayer && - window.dataLayer.push({ - event: 'bf_page_change', - bfData: { - pageView: 'bf-verify-selections', - viewTitle: verifySelectionsView?.heading, - }, - }) + const { verifySelections } = dataLayerUtils.dataLayerStructure + dataLayerUtils.dataLayerPush(window, { + event: verifySelections.event, + bfData: { + pageView: verifySelections.bfData.pageView, + viewTitle: verifySelectionsView?.heading, + }, + }) }, []) return ( From 9e227f734e9c1a56c906cd8e5931a66f76898a45 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:44:00 -0400 Subject: [PATCH 62/79] PXBF-1482-structure-data-layer: include zero benefits values in dataLayer Structure --- .../dataLayerUtils/dataLayerStructure.js | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js index 9fa7b0dc8..8de30cbbb 100644 --- a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js @@ -28,10 +28,33 @@ const dataLayerStructure = { bfData: { pageView: 'bf-result-view', viewTitle: null, - viewState: ['bf-not-eligible-view', 'bf-eligible-view'], + viewState: [ + 'bf-not-eligible-view', + 'bf-eligible-view', + 'bf-not-eligible-view-zero-benefits', + 'bf-eligible-view-zero-benefits', + ], }, }, benefitCount: { event: 'bf_count', bfData: null }, } export default dataLayerStructure + +// { +// event: 'bf_page_change', +// bfData: { +// pageView: 'bf-result-view', +// viewTitle: +// notEligibleView === false +// ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || +// eligible.chevron.heading +// : (zeroBenefitsResult && zeroBenefits.chevron.heading) || +// notEligible.chevron.heading, +// viewState: +// notEligibleView === true +// ? (zeroBenefitsResult && 'bf-not-eligible-view-zero-benefits') || +// 'bf-not-eligible-view' +// : (zeroBenefitsResult && 'bf-eligible-view-zero-benefits') || +// 'bf-eligible-view', +// } From 16fb6ace38aaa46091f1a1cb7c572af4670b77fd Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:44:20 -0400 Subject: [PATCH 63/79] PXBF-1482-structure-data-layer: include zero benefits values in the view states --- .../src/shared/components/ResultsView/index.jsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index 2b889369f..ad98aa3e9 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -116,12 +116,16 @@ const ResultsView = ({ pageView: resultsView.bfData.pageView, viewTitle: notEligibleView === false - ? eligible.chevron.heading - : notEligible.chevron.heading, + ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || + eligible.chevron.heading + : (zeroBenefitsResult && zeroBenefits.chevron.heading) || + notEligible.chevron.heading, viewState: notEligibleView === true - ? resultsView.bfData.viewState[0] - : resultsView.bfData.viewState[1], + ? (zeroBenefitsResult && resultsView.bfData.viewState[2]) || + resultsView.bfData.viewState[0] + : (zeroBenefitsResult && resultsView.bfData.viewState[3]) || + resultsView.bfData.viewState[1], }, }) }, [notEligibleView]) From 653880dc2c43b16fc3d2107344a626048b29e711 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 13:45:15 -0400 Subject: [PATCH 64/79] PXBF-1482-structure-data-layer: remove commented lines --- .../utils/dataLayerUtils/dataLayerStructure.js | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js index 8de30cbbb..615461e95 100644 --- a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js @@ -40,21 +40,3 @@ const dataLayerStructure = { } export default dataLayerStructure - -// { -// event: 'bf_page_change', -// bfData: { -// pageView: 'bf-result-view', -// viewTitle: -// notEligibleView === false -// ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || -// eligible.chevron.heading -// : (zeroBenefitsResult && zeroBenefits.chevron.heading) || -// notEligible.chevron.heading, -// viewState: -// notEligibleView === true -// ? (zeroBenefitsResult && 'bf-not-eligible-view-zero-benefits') || -// 'bf-not-eligible-view' -// : (zeroBenefitsResult && 'bf-eligible-view-zero-benefits') || -// 'bf-eligible-view', -// } From 8f77b5e271ef61f2ff6dc41b8d62383a169a6cef Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 18:23:07 -0400 Subject: [PATCH 65/79] PXBF-1482-structure-data-layer: spread copy value from dataLayer --- .../src/shared/utils/dataLayerUtils/dataLayerPush.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js index 7d1c4329e..79bf5ebf2 100644 --- a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerPush.js @@ -30,7 +30,9 @@ const dataLayerPush = (w, dataLayerObj, dedup) => { if (w.dataLayer) { // get the last index of the dataLayer array - const lastItem = window.dataLayer[window.dataLayer.length - 1] + const lastItem = { ...window.dataLayer[window.dataLayer.length - 1] } + + delete lastItem['gtm.uniqueEventId'] // to prevent pushing duplicate objects unecessarily, as long as our last item doesn't match our current data obj, we push isDeepEqual(lastItem, dataLayerObj) === false && From 68fd51c80cf6f32a5aa410fa8afdbb7dd3d20216 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 18:36:15 -0400 Subject: [PATCH 66/79] PXBF-1482-structure-data-layer: put condition in front of push effect --- .../shared/components/ResultsView/index.jsx | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/benefit-finder/src/shared/components/ResultsView/index.jsx b/benefit-finder/src/shared/components/ResultsView/index.jsx index ad98aa3e9..8b23dac69 100644 --- a/benefit-finder/src/shared/components/ResultsView/index.jsx +++ b/benefit-finder/src/shared/components/ResultsView/index.jsx @@ -110,31 +110,32 @@ const ResultsView = ({ // handle dataLayer useEffect(() => { const { resultsView } = dataLayerUtils.dataLayerStructure - dataLayerUtils.dataLayerPush(window, { - event: resultsView.event, - bfData: { - pageView: resultsView.bfData.pageView, - viewTitle: - notEligibleView === false - ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || - eligible.chevron.heading - : (zeroBenefitsResult && zeroBenefits.chevron.heading) || - notEligible.chevron.heading, - viewState: - notEligibleView === true - ? (zeroBenefitsResult && resultsView.bfData.viewState[2]) || - resultsView.bfData.viewState[0] - : (zeroBenefitsResult && resultsView.bfData.viewState[3]) || - resultsView.bfData.viewState[1], - }, - }) - }, [notEligibleView]) + eligibilityCount.notEligible >= 0 && + dataLayerUtils.dataLayerPush(window, { + event: resultsView.event, + bfData: { + pageView: resultsView.bfData.pageView, + viewTitle: + notEligibleView === false + ? (zeroBenefitsResult && zeroBenefits.chevron.heading) || + eligible.chevron.heading + : (zeroBenefitsResult && zeroBenefits.chevron.heading) || + notEligible.chevron.heading, + viewState: + notEligibleView === true + ? (zeroBenefitsResult && resultsView.bfData.viewState[2]) || + resultsView.bfData.viewState[0] + : (zeroBenefitsResult && resultsView.bfData.viewState[3]) || + resultsView.bfData.viewState[1], + }, + }) + }, [notEligibleView, eligibilityCount]) // handle dataLayer useEffect(() => { const { benefitCount } = dataLayerUtils.dataLayerStructure eligibilityCount.notEligible >= 0 && - dataLayerUtils.dataLayerPush({ + dataLayerUtils.dataLayerPush(window, { event: benefitCount.event, bfData: eligibilityCount, }) From 5ae36f6bff9bb97788596e2489dfbcaf8e22fa22 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Tue, 25 Jun 2024 18:36:51 -0400 Subject: [PATCH 67/79] PXBF-1482-structure-data-layer: import our dataLayerStructure and leverage it in testing --- .../cypress/e2e/storybook/dataLayer.cy.js | 193 +++++++++--------- 1 file changed, 101 insertions(+), 92 deletions(-) diff --git a/benefit-finder/cypress/e2e/storybook/dataLayer.cy.js b/benefit-finder/cypress/e2e/storybook/dataLayer.cy.js index bc1a50a82..19091367c 100644 --- a/benefit-finder/cypress/e2e/storybook/dataLayer.cy.js +++ b/benefit-finder/cypress/e2e/storybook/dataLayer.cy.js @@ -1,130 +1,139 @@ /// import * as utils from '../../support/utils.js' +import { dataLayerUtils } from '../../../src/shared/utils' import { pageObjects } from '../../support/pageObjects' import * as EN_LOCALE_DATA from '../../../../benefit-finder/src/shared/locales/en/en.json' import * as BENEFITS_ELIBILITY_DATA from '../../fixtures/benefits-eligibility.json' +const { intro, lifeEventSection, resultsView, benefitCount } = + dataLayerUtils.dataLayerStructure + const dataLayerValues = [ { - "event": "bf_page_change", - "bfData": { - "pageView": "bf-intro", - "viewTitle": "Benefit finder: death of a loved one" + event: intro.event, + bfData: { + pageView: intro.bfData.pageView, + viewTitle: 'Benefit finder: death of a loved one', }, }, { - "event": "bf_page_change", - "bfData": { - "pageView": "bf-form", - "viewTitle": "About the applicant" + event: lifeEventSection.event, + bfData: { + pageView: `${lifeEventSection.bfData.pageView}-1`, + viewTitle: 'About the applicant', }, }, { - "event": "bf_page_change", - "bfData": { - "pageView": "bf-result-view", - "viewTitle": "Your potential benefits", - "viewState": "bf-eligible-view" + event: resultsView.event, + bfData: { + pageView: resultsView.bfData.pageView, + viewTitle: 'Your potential benefits', + viewState: resultsView.bfData.viewState[1], }, }, { - "event": "bf_count", - "bfData": { - "eligible": 4, - "moreInfo": 1, - "notEligible": 25 + event: benefitCount.event, + bfData: { + eligible: 4, + moreInfo: 1, + notEligible: 25, }, - } - + }, ] describe('Basic Data Layer Checks', () => { it('has a dataLayer and loads GTM', () => { cy.visit(utils.storybookUri) - cy.window().then((window) => { - assert.isDefined(window.dataLayer, - 'window.dataLayer is defined'); + cy.window().then(window => { + assert.isDefined(window.dataLayer, 'window.dataLayer is defined') assert.isDefined( - window.dataLayer.find(x => x.event === "gtm.js"), - "GTM is loaded"); + window.dataLayer.find(x => x.event === 'gtm.js'), + 'GTM is loaded' + ) }) - }); -}); - - -describe('Calls to Google Analytics Object', function() { - + }) +}) - it('homepage has a bf_page_change event', function() { - cy.visit(utils.storybookUri) +describe('Calls to Google Analytics Object', function () { + it('homepage has a bf_page_change event', function () { + cy.visit(utils.storybookUri) - cy.window().then((window) => { - assert.isDefined(window.dataLayer, - 'window.dataLayer is defined'); + cy.window().then(window => { + assert.isDefined(window.dataLayer, 'window.dataLayer is defined') - pageObjects.button().contains(EN_LOCALE_DATA.intro.button).then(() => { - // get the last pushed event - const ev = window.dataLayer[window.dataLayer.length - 1] + pageObjects + .button() + .contains(EN_LOCALE_DATA.intro.button) + .then(() => { + // get the last pushed event + const ev = { ...window.dataLayer[window.dataLayer.length - 1] } + delete ev['gtm.uniqueEventId'] - delete ev["gtm.uniqueEventId"] - expect(dataLayerValues[0]).to.deep.equal(ev) - }) + expect(ev).to.deep.equal(dataLayerValues[0]) }) - }); + }) + }) - it('homepage has a bf_page_change event', function() { - cy.visit(utils.storybookUri) - pageObjects.button().contains(EN_LOCALE_DATA.intro.button).click() + it('homepage has a bf_page_change event', function () { + cy.visit(utils.storybookUri) + pageObjects.button().contains(EN_LOCALE_DATA.intro.button).click() - cy.window().then((window) => { - assert.isDefined(window.dataLayer, - 'window.dataLayer is defined'); + cy.window().then(window => { + assert.isDefined(window.dataLayer, 'window.dataLayer is defined') - pageObjects.button().contains(EN_LOCALE_DATA.buttonGroup[1].value).then(() => { - // get the last pushed event - const ev = window.dataLayer[window.dataLayer.length - 1] + pageObjects + .button() + .contains(EN_LOCALE_DATA.buttonGroup[1].value) + .then(() => { + // get the last pushed event + const ev = { ...window.dataLayer[window.dataLayer.length - 1] } + delete ev['gtm.uniqueEventId'] - delete ev["gtm.uniqueEventId"] - expect(dataLayerValues[1]).to.deep.equal(ev) - }) + expect(dataLayerValues[1]).to.deep.equal(ev) }) - }); - - - it('results page has a bf_page_change and bf_count events', function() { - const selectedData = BENEFITS_ELIBILITY_DATA.scenario_1_covid.en.param - const enResults = BENEFITS_ELIBILITY_DATA.scenario_1_covid.en.results - const scenario = utils.encodeURIFromObject(selectedData) - cy.visit(`${utils.storybookUri}${scenario}`) - - cy.window().then((window) => { - assert.isDefined(window.dataLayer, - 'window.dataLayer is defined'); - - pageObjects - .benefitsAccordion() - .filter(':visible') - .should('have.length', enResults.eligible.length) - .then(() => { - - // we wait for the last event to fire - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(100).then(() => { - - // check last page change event - const ev = window.dataLayer.filter(x => x?.bfData?.pageView === dataLayerValues[2].bfData.pageView) - - delete ev[0]["gtm.uniqueEventId"] - expect(dataLayerValues[2]).to.deep.equal(ev[0]) - - // check count event - const evCount = window.dataLayer.filter(x => x.event === dataLayerValues[3].event) - - delete evCount[0]["gtm.uniqueEventId"] - expect(dataLayerValues[3]).to.deep.equal(evCount[0]) - }) - }) + }) + }) + + it('results page has a bf_page_change and bf_count events', function () { + const selectedData = BENEFITS_ELIBILITY_DATA.scenario_1_covid.en.param + const enResults = BENEFITS_ELIBILITY_DATA.scenario_1_covid.en.results + const scenario = utils.encodeURIFromObject(selectedData) + cy.visit(`${utils.storybookUri}${scenario}`) + + cy.window().then(window => { + assert.isDefined(window.dataLayer, 'window.dataLayer is defined') + + pageObjects + .benefitsAccordion() + .filter(':visible') + .should('have.length', enResults.eligible.length) + .then(() => { + // we wait for the last event to fire + // eslint-disable-next-line cypress/no-unnecessary-waiting + cy.wait(100).then(() => { + // check last page change event + const ev = { + ...window.dataLayer.filter( + x => x?.event === dataLayerValues[2].event + ), + } + delete ev[0]['gtm.uniqueEventId'] + + expect(dataLayerValues[2]).to.deep.equal(ev[0]) + + // // check count event + const evCount = { + ...window.dataLayer.filter( + x => x.event === dataLayerValues[3].event + ), + } + + delete evCount[0]['gtm.uniqueEventId'] + + expect(dataLayerValues[3]).to.deep.equal(evCount[0]) + }) }) - }); + }) + }) }) From f6828ba96ffd85542109e1a7feda7abb6058985a Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 10:11:36 -0400 Subject: [PATCH 68/79] Remove hard coded branch --- .github/workflows/database-restore.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/database-restore.yml b/.github/workflows/database-restore.yml index 307b0c734..125345d7d 100644 --- a/.github/workflows/database-restore.yml +++ b/.github/workflows/database-restore.yml @@ -36,7 +36,6 @@ jobs: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" run: | echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV - echo "BRANCH=main" >> $GITHUB_ENV cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 ./scripts/pipeline/cloud-gov-wait-for-app-start.sh "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" - name: Restore database @@ -82,4 +81,3 @@ jobs: run: | echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV cf stop "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 - From bccacd657dc1c7440ac9d4d82e54d62d4a466e5e Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 10:18:16 -0400 Subject: [PATCH 69/79] Add project env var to bastion step --- .github/workflows/database-restore.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/database-restore.yml b/.github/workflows/database-restore.yml index 125345d7d..ab07b8c72 100644 --- a/.github/workflows/database-restore.yml +++ b/.github/workflows/database-restore.yml @@ -34,6 +34,7 @@ jobs: - name: Start Bastion env: DATABASE_BACKUP_BASTION_NAME: "${{ secrets.DATABASE_BACKUP_BASTION_NAME }}" + PROJECT: "${{ secrets.PROJECT }}" run: | echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV cf start "${PROJECT}-${DATABASE_BACKUP_BASTION_NAME}-${BRANCH}" >/dev/null 2>&1 From 0b6040e296ff718535597053863fce566c8a1a0d Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 26 Jun 2024 10:23:52 -0400 Subject: [PATCH 70/79] PXBF-1466-accordion-datalayer-event: include dataLayer structure for benefit accordion clicks --- .../src/shared/utils/dataLayerUtils/dataLayerStructure.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js index 615461e95..0bd697cf8 100644 --- a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js @@ -36,6 +36,12 @@ const dataLayerStructure = { ], }, }, + benefitClick: { + event: 'bf_benefit_click', + bfData: { + benefitTitle: null, + }, + }, benefitCount: { event: 'bf_count', bfData: null }, } From 89a83525d8858b288a899e74e392c3af1b8b28a0 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 26 Jun 2024 10:24:41 -0400 Subject: [PATCH 71/79] PXBF-1466-accordion-datalayer-event: only fire bf_benefit_click event when users click to open --- .../src/shared/components/Accordion/index.jsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/benefit-finder/src/shared/components/Accordion/index.jsx b/benefit-finder/src/shared/components/Accordion/index.jsx index 822751f7b..f0cfc316d 100644 --- a/benefit-finder/src/shared/components/Accordion/index.jsx +++ b/benefit-finder/src/shared/components/Accordion/index.jsx @@ -1,6 +1,7 @@ import { useEffect, useState } from 'react' import accordion from '@uswds/uswds/js/usa-accordion' import { Icon } from '../index' +import { dataLayerUtils } from '../../utils' import PropTypes from 'prop-types' import './_index.scss' @@ -38,6 +39,21 @@ const Accordion = ({ */ const [isOpen, setOpen] = useState(false) + const { benefitClick } = dataLayerUtils.dataLayerStructure + + // handle dataLayer + const handleOpenClose = isOpen => { + setOpen(isOpen) + isOpen === true && + dataLayerUtils.dataLayerPush(window, { + event: benefitClick.event, + bfData: { + benefitTitle: heading, + }, + }) + } + + // handle expand all useEffect(() => { setOpen(isExpanded) }, [isExpanded]) @@ -67,7 +83,7 @@ const Accordion = ({ className="bf-usa-accordion__button usa-accordion__button" aria-expanded={isOpen || false} aria-controls={id && handleAriaControl(id)} - onClick={() => setOpen(!isOpen)} + onClick={() => handleOpenClose(!isOpen)} > {heading}
From bd7a9c1b1ea6964e6fc0e3fb5575cdde922dca96 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 26 Jun 2024 10:41:43 -0400 Subject: [PATCH 72/79] PXBF-1467-benefit-link-datalayer-event: add dataLayer structure for benefit link clicks --- .../src/shared/utils/dataLayerUtils/dataLayerStructure.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js index 0bd697cf8..428d5c226 100644 --- a/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js +++ b/benefit-finder/src/shared/utils/dataLayerUtils/dataLayerStructure.js @@ -42,6 +42,12 @@ const dataLayerStructure = { benefitTitle: null, }, }, + benefitLink: { + event: 'bf_benefit_link', + bfData: { + benefitTitle: null, + }, + }, benefitCount: { event: 'bf_count', bfData: null }, } From d327de4e3f4d13e878202ed039787af458a3b630 Mon Sep 17 00:00:00 2001 From: scottqueen-bixal Date: Wed, 26 Jun 2024 10:42:29 -0400 Subject: [PATCH 73/79] PXBF-1467-benefit-link-datalayer-event: handle bf_benefit_link events when users click obfuscated links in accordions --- .../BenefitAccordionGroup/index.jsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/benefit-finder/src/shared/components/BenefitAccordionGroup/index.jsx b/benefit-finder/src/shared/components/BenefitAccordionGroup/index.jsx index 300c02132..b92f22b0b 100644 --- a/benefit-finder/src/shared/components/BenefitAccordionGroup/index.jsx +++ b/benefit-finder/src/shared/components/BenefitAccordionGroup/index.jsx @@ -1,6 +1,6 @@ import { useState } from 'react' import PropTypes from 'prop-types' -import { createMarkup } from '../../utils' +import { createMarkup, dataLayerUtils } from '../../utils' import { Accordion, Button, @@ -34,6 +34,7 @@ const BenefitAccordionGroup = ({ sourceIsEnglish, } = benefitAccordion const { closedState, openState } = benefitAccordionGroup + const { benefitLink } = dataLayerUtils.dataLayerStructure /** * a hook that hanldes our open state of the accordions in our group * @function @@ -44,10 +45,23 @@ const BenefitAccordionGroup = ({ /** * a function that returns the string value of our expanded action * @function - * @return {stroing} returns label for our button + * @return {string} returns label for our button */ const handleExpandIcon = isExpandAll ? `${openState} -` : `${closedState} +` + /** + * a function that pushes dataLayer events when the user clicks the link of that benefit + * @function + */ + const handleBenefitLinkClick = title => { + dataLayerUtils.dataLayerPush(window, { + event: benefitLink.event, + bfData: { + benefitTitle: title, + }, + }) + } + /** * a functional component that renders a button and controls the expansion of our accordions * @component @@ -208,6 +222,7 @@ const BenefitAccordionGroup = ({ href={SourceLink} target="_blank" rel="noopener noreferrer" + onClick={() => handleBenefitLinkClick(title)} > {visitLabel} {agency.title}{' '} {sourceIsEnglish && SourceIsEnglish === true From 7cc6c73061d9096e765cbc73be926f59d4b2cae4 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 10:52:20 -0400 Subject: [PATCH 74/79] Add thog scan 1 --- .github/workflows/thog_scan.yml | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/thog_scan.yml diff --git a/.github/workflows/thog_scan.yml b/.github/workflows/thog_scan.yml new file mode 100644 index 000000000..7d0587b63 --- /dev/null +++ b/.github/workflows/thog_scan.yml @@ -0,0 +1,34 @@ +name: TruffleHog Scan + +on: + # schedule: + # - cron: '0 8 * * *' # Runs daily at 8 AM UTC + workflow_dispatch: + +jobs: + scan: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.x" + + - name: Install TruffleHog + run: | + python -m pip install --upgrade pip + pip install truffleHog + + - name: Run TruffleHog scan + run: | + trufflehog filesystem --json --directory . > trufflehog-results.json + + - name: Upload TruffleHog scan results + uses: actions/upload-artifact@v3 + with: + name: trufflehog-results + path: trufflehog-results.json From 241897a078492f21ed08c466beac58257d9f57e9 Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 10:59:02 -0400 Subject: [PATCH 75/79] Add thog scan 2 --- .github/workflows/thog_scan.yml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/thog_scan.yml b/.github/workflows/thog_scan.yml index 7d0587b63..6eb7c360e 100644 --- a/.github/workflows/thog_scan.yml +++ b/.github/workflows/thog_scan.yml @@ -1,5 +1,3 @@ -name: TruffleHog Scan - on: # schedule: # - cron: '0 8 * * *' # Runs daily at 8 AM UTC @@ -13,22 +11,15 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - - name: Install TruffleHog - run: | - python -m pip install --upgrade pip - pip install truffleHog - - name: Run TruffleHog scan - run: | - trufflehog filesystem --json --directory . > trufflehog-results.json + uses: trufflesecurity/trufflehog@v3 + with: + scan: filesystem + output_format: json + directory: . - name: Upload TruffleHog scan results uses: actions/upload-artifact@v3 with: name: trufflehog-results - path: trufflehog-results.json + path: truffleHogResults.json From de9d648e599464e3cbef85058aefebdbdef6e7fd Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 11:01:15 -0400 Subject: [PATCH 76/79] Add thog scan 3 --- .github/workflows/thog_scan.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/thog_scan.yml b/.github/workflows/thog_scan.yml index 6eb7c360e..0ebc0173f 100644 --- a/.github/workflows/thog_scan.yml +++ b/.github/workflows/thog_scan.yml @@ -1,3 +1,5 @@ +name: TruffleHog Scan + on: # schedule: # - cron: '0 8 * * *' # Runs daily at 8 AM UTC From 55b569db8e8b81bae9db04281ea266459089cb9e Mon Sep 17 00:00:00 2001 From: Xavier Metichecchia Date: Wed, 26 Jun 2024 11:26:08 -0400 Subject: [PATCH 77/79] Add thog scan 4 --- .github/workflows/thog_scan.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/thog_scan.yml b/.github/workflows/thog_scan.yml index 0ebc0173f..89c0b6f0c 100644 --- a/.github/workflows/thog_scan.yml +++ b/.github/workflows/thog_scan.yml @@ -11,14 +11,16 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: Run TruffleHog scan - uses: trufflesecurity/trufflehog@v3 + - name: scan + uses: trufflesecurity/trufflehog@main with: - scan: filesystem - output_format: json - directory: . + base: "" + head: ${{ github.ref_name }} + extra_args: --only-verified - name: Upload TruffleHog scan results uses: actions/upload-artifact@v3 From 202d05293796924b7538a4a0f1de611a6fecf3b7 Mon Sep 17 00:00:00 2001 From: gchi25 Date: Wed, 26 Jun 2024 13:32:28 -0400 Subject: [PATCH 78/79] PXBF-1427-add-search-title-field-in-life-event: put previous configuration back --- ...orm_display.node.bears_benefit.default.yml | 191 ++++++++++++++++ ...rm_display.node.bears_criteria.default.yml | 210 ++++++++++++++++++ ...iew_display.node.bears_benefit.default.yml | 122 ++++++++++ ...view_display.node.bears_benefit.teaser.yml | 41 ++++ ...field.node.bears_life_event.field_b_id.yml | 19 ++ ...ears_life_event.field_meta_description.yml | 19 ++ ...node.bears_life_event.field_page_intro.yml | 19 ++ ...ars_life_event.field_short_description.yml | 19 ++ ....node.bears_life_event_form.field_b_id.yml | 19 ++ ...levant_benefit.field_b_life_event_form.yml | 25 +++ .../usagov_benefit_finder.settings.yml | 3 + 11 files changed, 687 insertions(+) create mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml create mode 100644 usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml create mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml create mode 100644 usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml create mode 100644 usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml create mode 100644 usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml create mode 100644 usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml new file mode 100644 index 000000000..34d53aa65 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_benefit.default.yml @@ -0,0 +1,191 @@ +uuid: d4fdb095-25a3-43ea-879c-0ddf2ef649ae +langcode: en +status: true +dependencies: + config: + - field.field.node.bears_benefit.field_b_agency + - field.field.node.bears_benefit.field_b_eligibility + - field.field.node.bears_benefit.field_b_headline + - field.field.node.bears_benefit.field_b_initial_elg_length + - field.field.node.bears_benefit.field_b_life_event_forms + - field.field.node.bears_benefit.field_b_source_is_english + - field.field.node.bears_benefit.field_b_source_link + - field.field.node.bears_benefit.field_b_summary + - field.field.node.bears_benefit.field_b_tags + - field.field.node.bears_benefit.field_language_toggle + - node.type.bears_benefit + module: + - content_moderation + - paragraphs + - path + - text +id: node.bears_benefit.default +targetEntityType: node +bundle: bears_benefit +mode: default +content: + created: + type: datetime_timestamp + weight: 12 + region: content + settings: { } + third_party_settings: { } + field_b_agency: + type: options_select + weight: 8 + region: content + settings: { } + third_party_settings: { } + field_b_eligibility: + type: paragraphs + weight: 18 + region: content + settings: + title: Paragraph + title_plural: Paragraphs + edit_mode: open + closed_mode: summary + autocollapse: none + closed_mode_threshold: 0 + add_mode: dropdown + form_display_mode: default + default_paragraph_type: '' + features: + collapse_edit_all: collapse_edit_all + duplicate: duplicate + third_party_settings: { } + field_b_headline: + type: text_textarea + weight: 3 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + field_b_initial_elg_length: + type: number + weight: 17 + region: content + settings: + placeholder: '' + third_party_settings: { } + field_b_life_event_forms: + type: options_buttons + weight: 7 + region: content + settings: { } + third_party_settings: { } + field_b_source_is_english: + type: boolean_checkbox + weight: 10 + region: content + settings: + display_label: true + third_party_settings: { } + field_b_source_link: + type: string_textfield + weight: 9 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_summary: + type: text_textarea + weight: 4 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + field_b_tags: + type: options_buttons + weight: 5 + region: content + settings: { } + third_party_settings: { } + field_language_toggle: + type: entity_reference_autocomplete + weight: 1 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + langcode: + type: language_select + weight: 0 + region: content + settings: + include_locked: true + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 20 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 15 + region: content + settings: { } + third_party_settings: { } + promote: + type: boolean_checkbox + weight: 13 + region: content + settings: + display_label: true + third_party_settings: { } + simple_sitemap: + weight: 10 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 16 + region: content + settings: + display_label: true + third_party_settings: { } + sticky: + type: boolean_checkbox + weight: 14 + region: content + settings: + display_label: true + third_party_settings: { } + title: + type: string_textfield + weight: 2 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + translation: + weight: 10 + region: content + settings: { } + third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 11 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + url_redirects: + weight: 19 + region: content + settings: { } + third_party_settings: { } +hidden: + menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml new file mode 100644 index 000000000..569a12dc2 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_form_display.node.bears_criteria.default.yml @@ -0,0 +1,210 @@ +uuid: 7b0ea4b3-ad18-416a-81a4-6515572f433f +langcode: en +status: true +dependencies: + config: + - field.field.node.bears_criteria.field_b_child_dependency_option + - field.field.node.bears_criteria.field_b_criteria_key + - field.field.node.bears_criteria.field_b_has_child + - field.field.node.bears_criteria.field_b_id + - field.field.node.bears_criteria.field_b_label + - field.field.node.bears_criteria.field_b_name + - field.field.node.bears_criteria.field_b_type + - field.field.node.bears_criteria.field_b_values + - field.field.node.bears_criteria.field_language_toggle + - node.type.bears_criteria + module: + - content_moderation + - path +id: node.bears_criteria.default +targetEntityType: node +bundle: bears_criteria +mode: default +content: + created: + type: datetime_timestamp + weight: 3 + region: content + settings: { } + third_party_settings: { } + field_b_child_dependency_option: + type: string_textfield + weight: 16 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: + conditional_fields: + 7d256aff-5858-4005-83b2-7a6221d75c58: + entity_type: node + bundle: bears_criteria + dependee: field_b_has_child + settings: + state: required + reset: false + condition: checked + grouping: AND + values_set: 1 + value: '' + values: { } + value_form: + value: false + effect: show + effect_options: { } + selector: '' + 91ce84c7-8a94-49dc-a41c-d5c0f369a2d0: + entity_type: node + bundle: bears_criteria + dependee: field_b_has_child + settings: + state: visible + reset: false + condition: checked + grouping: AND + values_set: 1 + value: '' + values: { } + value_form: + value: false + effect: show + effect_options: { } + selector: '' + field_b_criteria_key: + type: string_textfield + weight: 9 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_has_child: + type: boolean_checkbox + weight: 15 + region: content + settings: + display_label: true + third_party_settings: { } + field_b_id: + type: string_textfield + weight: 10 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_label: + type: string_textfield + weight: 12 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_name: + type: string_textfield + weight: 13 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_b_type: + type: options_select + weight: 11 + region: content + settings: { } + third_party_settings: { } + field_b_values: + type: string_textfield + weight: 14 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_language_toggle: + type: entity_reference_autocomplete + weight: 1 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + langcode: + type: language_select + weight: 0 + region: content + settings: + include_locked: true + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 18 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 6 + region: content + settings: { } + third_party_settings: { } + promote: + type: boolean_checkbox + weight: 4 + region: content + settings: + display_label: true + third_party_settings: { } + simple_sitemap: + weight: 10 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 7 + region: content + settings: + display_label: true + third_party_settings: { } + sticky: + type: boolean_checkbox + weight: 5 + region: content + settings: + display_label: true + third_party_settings: { } + title: + type: string_textfield + weight: 8 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + translation: + weight: 3 + region: content + settings: { } + third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 2 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + url_redirects: + weight: 17 + region: content + settings: { } + third_party_settings: { } +hidden: + menu_entity_index: true diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml new file mode 100644 index 000000000..ee07784d0 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.default.yml @@ -0,0 +1,122 @@ +uuid: 6c74929f-e325-431f-be4a-a55e5ff5254f +langcode: en +status: true +dependencies: + config: + - field.field.node.bears_benefit.field_b_agency + - field.field.node.bears_benefit.field_b_eligibility + - field.field.node.bears_benefit.field_b_headline + - field.field.node.bears_benefit.field_b_initial_elg_length + - field.field.node.bears_benefit.field_b_life_event_forms + - field.field.node.bears_benefit.field_b_source_is_english + - field.field.node.bears_benefit.field_b_source_link + - field.field.node.bears_benefit.field_b_summary + - field.field.node.bears_benefit.field_b_tags + - field.field.node.bears_benefit.field_language_toggle + - node.type.bears_benefit + module: + - entity_reference_revisions + - text + - user +id: node.bears_benefit.default +targetEntityType: node +bundle: bears_benefit +mode: default +content: + field_b_agency: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 6 + region: content + field_b_eligibility: + type: entity_reference_revisions_entity_view + label: above + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 10 + region: content + field_b_headline: + type: text_default + label: above + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_b_initial_elg_length: + type: number_integer + label: above + settings: + thousand_separator: '' + prefix_suffix: true + third_party_settings: { } + weight: 9 + region: content + field_b_life_event_forms: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 5 + region: content + field_b_source_is_english: + type: boolean + label: above + settings: + format: default + format_custom_false: '' + format_custom_true: '' + third_party_settings: { } + weight: 8 + region: content + field_b_source_link: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 7 + region: content + field_b_summary: + type: text_default + label: above + settings: { } + third_party_settings: { } + weight: 2 + region: content + field_b_tags: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 3 + region: content + field_language_toggle: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 12 + region: content + langcode: + type: language + label: above + settings: + link_to_entity: false + native_language: false + third_party_settings: { } + weight: 11 + region: content + links: + settings: { } + third_party_settings: { } + weight: 0 + region: content +hidden: { } diff --git a/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml new file mode 100644 index 000000000..4f693d923 --- /dev/null +++ b/usagov_benefit_finder/configuration/core.entity_view_display.node.bears_benefit.teaser.yml @@ -0,0 +1,41 @@ +uuid: dab1fae4-5630-49c4-820a-d787fba71e65 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.node.teaser + - field.field.node.bears_benefit.field_b_agency + - field.field.node.bears_benefit.field_b_eligibility + - field.field.node.bears_benefit.field_b_headline + - field.field.node.bears_benefit.field_b_initial_elg_length + - field.field.node.bears_benefit.field_b_life_event_forms + - field.field.node.bears_benefit.field_b_source_is_english + - field.field.node.bears_benefit.field_b_source_link + - field.field.node.bears_benefit.field_b_summary + - field.field.node.bears_benefit.field_b_tags + - field.field.node.bears_benefit.field_language_toggle + - node.type.bears_benefit + module: + - user +id: node.bears_benefit.teaser +targetEntityType: node +bundle: bears_benefit +mode: teaser +content: + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_b_agency: true + field_b_eligibility: true + field_b_headline: true + field_b_initial_elg_length: true + field_b_life_event_forms: true + field_b_source_is_english: true + field_b_source_link: true + field_b_summary: true + field_b_tags: true + field_language_toggle: true + langcode: true diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml new file mode 100644 index 000000000..1c64ee604 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_b_id.yml @@ -0,0 +1,19 @@ +uuid: 1d3a2be6-3f91-4d75-8388-e26cde7882d0 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_b_id + - node.type.bears_life_event +id: node.bears_life_event.field_b_id +field_name: field_b_id +entity_type: node +bundle: bears_life_event +label: ID +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml new file mode 100644 index 000000000..49b1522c3 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_meta_description.yml @@ -0,0 +1,19 @@ +uuid: b3333760-014c-45c3-9ac9-1d5c9a3e6a91 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_meta_description + - node.type.bears_life_event +id: node.bears_life_event.field_meta_description +field_name: field_meta_description +entity_type: node +bundle: bears_life_event +label: 'Meta Description' +description: 'Text to place in a "meta description" tag on this page. If this field is empty, the Page Intro will be used for the meta description. ' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml new file mode 100644 index 000000000..aed5f3d4e --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_page_intro.yml @@ -0,0 +1,19 @@ +uuid: 1f6b04ec-e649-4672-8405-32a594ad93cb +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_page_intro + - node.type.bears_life_event +id: node.bears_life_event.field_page_intro +field_name: field_page_intro +entity_type: node +bundle: bears_life_event +label: 'Page Intro' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml new file mode 100644 index 000000000..c7d9084e2 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event.field_short_description.yml @@ -0,0 +1,19 @@ +uuid: d892bc96-def5-4e8f-9725-d670fdc2c382 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_short_description + - node.type.bears_life_event +id: node.bears_life_event.field_short_description +field_name: field_short_description +entity_type: node +bundle: bears_life_event +label: 'Short Description' +description: 'The short description appears on cards for the homepage and nav pages. Aim for less than 80 characters. If left blank the page intro will be used.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string_long diff --git a/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml b/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml new file mode 100644 index 000000000..9bd263382 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.node.bears_life_event_form.field_b_id.yml @@ -0,0 +1,19 @@ +uuid: 27344f9c-03c7-4232-a628-107b8893f3cb +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_b_id + - node.type.bears_life_event_form +id: node.bears_life_event_form.field_b_id +field_name: field_b_id +entity_type: node +bundle: bears_life_event_form +label: ID +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml b/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml new file mode 100644 index 000000000..71829a0d7 --- /dev/null +++ b/usagov_benefit_finder/configuration/field.field.paragraph.b_levent_relevant_benefit.field_b_life_event_form.yml @@ -0,0 +1,25 @@ +uuid: ec5f36b1-45d7-4c91-b74d-3d8a49dd348f +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_b_life_event_form + - paragraphs.paragraphs_type.b_levent_relevant_benefit +id: paragraph.b_levent_relevant_benefit.field_b_life_event_form +field_name: field_b_life_event_form +entity_type: paragraph +bundle: b_levent_relevant_benefit +label: 'Life Event Form' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: views + handler_settings: + view: + view_name: benefit_finder + display_name: entity_reference_3 + arguments: { } +field_type: entity_reference diff --git a/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml b/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml new file mode 100644 index 000000000..e6e3832be --- /dev/null +++ b/usagov_benefit_finder/configuration/usagov_benefit_finder.settings.yml @@ -0,0 +1,3 @@ +_core: + default_config_hash: sgIXuoeVJ1TaEzDT2BEh-RcCvmocaPx_0QpNgfRpxQA +automate_json_data_file_generating: true From 03e558559bc490770d08c599c4f2b34c7ae7a59d Mon Sep 17 00:00:00 2001 From: gchi25 Date: Thu, 27 Jun 2024 10:00:37 -0400 Subject: [PATCH 79/79] PXBF-PXBF-fix-lint-error: fix lint error --- .../usagov_benefit_finder_api/usagov_benefit_finder_api.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module b/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module index 2a0edefb8..a2a8bab67 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_api/usagov_benefit_finder_api.module @@ -17,7 +17,7 @@ use Drupal\usagov_benefit_finder_api\Controller\LifeEventController; */ function usagov_benefit_finder_api_node_update(Node $node) { $url = _usagov_benefit_finder_api_get_current_page_url(); - if (strpos($url, "/admin/content") === false) { + if (strpos($url, "/admin/content") === FALSE) { _usagov_benefit_finder_api_batch_generate_json_data_files($node); } else {