From 7106db7d64eef73cf1925e75c9d78cc8af44a1ad Mon Sep 17 00:00:00 2001 From: Ricardo Campos Date: Mon, 30 Dec 2024 13:35:05 -0300 Subject: [PATCH] feat: dependabot changes (#232) * build(deps-dev): bump @stylistic/eslint-plugin in /client Bumps [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) from 2.10.1 to 2.12.1. - [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases) - [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v2.12.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@stylistic/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * build(deps): bump react-router-dom from 6.28.0 to 7.1.1 in /client Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.28.0 to 7.1.1. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.1.1/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * build(deps-dev): bump globals from 15.13.0 to 15.14.0 in /client Bumps [globals](https://github.com/sindresorhus/globals) from 15.13.0 to 15.14.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v15.13.0...v15.14.0) --- updated-dependencies: - dependency-name: globals dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * build(deps-dev): bump eslint-plugin-n from 17.11.1 to 17.15.1 in /client Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.11.1 to 17.15.1. - [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases) - [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v17.11.1...v17.15.1) --- updated-dependencies: - dependency-name: eslint-plugin-n dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * build(deps): bump react-bootstrap from 2.10.6 to 2.10.7 in /client Bumps [react-bootstrap](https://github.com/react-bootstrap/react-bootstrap) from 2.10.6 to 2.10.7. - [Release notes](https://github.com/react-bootstrap/react-bootstrap/releases) - [Changelog](https://github.com/react-bootstrap/react-bootstrap/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-bootstrap/react-bootstrap/compare/v2.10.6...v2.10.7) --- updated-dependencies: - dependency-name: react-bootstrap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix: upgrade react-i18next from 15.1.2 to 15.1.3 Snyk has created this PR to upgrade react-i18next from 15.1.2 to 15.1.3. See this package in npm: react-i18next See this project in Snyk: https://app.snyk.io/org/ricardocampos-dcn/project/4d31651d-a849-4b8a-83a3-f8aaba677c53?utm_source=github&utm_medium=referral&page=upgrade-pr * feat: update to react router v7 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: snyk-bot --- client/package-lock.json | 279 ++++++++++-------- client/package.json | 12 +- client/src/App.tsx | 2 +- .../src/__test__/components/Footer.test.tsx | 2 +- .../src/__test__/components/Header.test.tsx | 2 +- .../__test__/components/LoginForm.test.tsx | 2 +- client/src/components/Footer/index.tsx | 5 +- client/src/components/Header/index.tsx | 31 +- client/src/components/LoginForm/index.tsx | 2 +- client/src/layout/PrivateLayout/index.tsx | 2 +- client/src/routes/ProtectedRoute/index.tsx | 2 +- client/src/routes/index.tsx | 2 +- client/src/views/Account/index.tsx | 4 +- client/src/views/Home/index.tsx | 27 +- client/src/views/Landing/index.tsx | 2 +- 15 files changed, 202 insertions(+), 174 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 6cb8963..db24916 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -20,12 +20,12 @@ "bootstrap": "^5.3.3", "i18next": "^23.16.8", "react": "^18.3.1", - "react-bootstrap": "^2.10.6", + "react-bootstrap": "^2.10.7", "react-bootstrap-icons": "^1.11.5", "react-dom": "^18.3.1", - "react-i18next": "^15.1.2", + "react-i18next": "^15.1.3", + "react-router": "^7.1.1", "react-router-bootstrap": "^0.26.3", - "react-router-dom": "^6.28.0", "typescript": "^5.7.2", "vite": "^6.0.3" }, @@ -33,7 +33,7 @@ "@eslint/compat": "^1.2.4", "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.17.0", - "@stylistic/eslint-plugin": "^2.10.1", + "@stylistic/eslint-plugin": "^2.12.1", "@testing-library/jest-dom": "^6.6.3", "@types/react": "^18.3.12", "@vitest/coverage-v8": "^2.1.8", @@ -41,10 +41,10 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^50.5.0", - "eslint-plugin-n": "^17.11.1", + "eslint-plugin-n": "^17.15.1", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-react": "^7.37.2", - "globals": "^15.13.0", + "globals": "^15.14.0", "jsdom": "^25.0.1", "prettier": "^3.4.2", "sass": "^1.80.4", @@ -710,16 +710,19 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -1412,14 +1415,6 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@restart/hooks": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", @@ -1709,13 +1704,12 @@ "dev": true }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.10.1.tgz", - "integrity": "sha512-U+4yzNXElTf9q0kEfnloI9XbOyD4cnEQCxjUI94q0+W++0GAEQvJ/slwEj9lwjDHfGADRSr+Tco/z0XJvmDfCQ==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.12.1.tgz", + "integrity": "sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.12.2", + "@typescript-eslint/utils": "^8.13.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "estraverse": "^5.3.0", @@ -2042,6 +2036,12 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2325,9 +2325,9 @@ } }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/react": { "version": "18.3.12", @@ -3190,6 +3190,15 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3961,20 +3970,19 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.11.1.tgz", - "integrity": "sha512-93IUD82N6tIEgjztVI/l3ElHtC2wTa9boJHrD8iN+NyDxjxz/daZUZKfkedjBZNdg6EqDk4irybUsiPwDqXAEA==", + "version": "17.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.15.1.tgz", + "integrity": "sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "enhanced-resolve": "^5.17.0", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^15.8.0", - "ignore": "^5.2.4", + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", "minimatch": "^9.0.5", - "semver": "^7.5.3" + "semver": "^7.6.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4120,15 +4128,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4607,9 +4606,9 @@ } }, "node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "engines": { "node": ">=18" @@ -6188,14 +6187,14 @@ } }, "node_modules/react-bootstrap": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.6.tgz", - "integrity": "sha512-fNvKytSp0nHts1WRnRBJeBEt+I9/ZdrnhIjWOucEduRNvFRU1IXjZueDdWnBiqsTSJ7MckQJi9i/hxGolaRq+g==", - "license": "MIT", + "version": "2.10.7", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.7.tgz", + "integrity": "sha512-w6mWb3uytB5A18S2oTZpYghcOUK30neMBBvZ/bEfA+WIF2dF4OGqjzoFVMpVXBjtyf92gkmRToHlddiMAVhQqQ==", "dependencies": { "@babel/runtime": "^7.24.7", "@restart/hooks": "^0.4.9", - "@restart/ui": "^1.9.0", + "@restart/ui": "^1.9.2", + "@types/prop-types": "^15.7.12", "@types/react-transition-group": "^4.4.6", "classnames": "^2.3.2", "dom-helpers": "^5.2.1", @@ -6241,9 +6240,9 @@ } }, "node_modules/react-i18next": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.2.tgz", - "integrity": "sha512-tl7AfbWyz9a4BefFXnVooc+gvQBVlavUkVTphGUcvhsNmbRf5UixJVdHeSFkE4gUyQkmFPYHVwTuxIdHjfQgiA==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", + "integrity": "sha512-J11oA30FbM3NZegUZjn8ySK903z6PLBz/ZuBYyT1JMR0QPrW6PFXvl1WoUhortdGi9dM0m48/zJQlPskVZXgVw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -6282,17 +6281,27 @@ } }, "node_modules/react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.21.0" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/react-router-bootstrap": { @@ -6308,19 +6317,20 @@ } }, "node_modules/react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.1.tgz", + "integrity": "sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==", + "license": "MIT", + "peer": true, "dependencies": { - "@remix-run/router": "1.21.0", - "react-router": "6.28.0" + "react-router": "7.1.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "react": ">=18", + "react-dom": ">=18" } }, "node_modules/react-transition-group": { @@ -6610,6 +6620,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -7223,6 +7239,12 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -9261,12 +9283,12 @@ "optional": true }, "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "requires": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" } }, "@eslint-community/regexpp": { @@ -9667,11 +9689,6 @@ "@swc/helpers": "^0.5.0" } }, - "@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==" - }, "@restart/hooks": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", @@ -9833,12 +9850,12 @@ "dev": true }, "@stylistic/eslint-plugin": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.10.1.tgz", - "integrity": "sha512-U+4yzNXElTf9q0kEfnloI9XbOyD4cnEQCxjUI94q0+W++0GAEQvJ/slwEj9lwjDHfGADRSr+Tco/z0XJvmDfCQ==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.12.1.tgz", + "integrity": "sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==", "dev": true, "requires": { - "@typescript-eslint/utils": "^8.12.2", + "@typescript-eslint/utils": "^8.13.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "estraverse": "^5.3.0", @@ -10072,6 +10089,11 @@ "@babel/types": "^7.20.7" } }, + "@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -10302,9 +10324,9 @@ } }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "@types/react": { "version": "18.3.12", @@ -10883,6 +10905,11 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, + "cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==" + }, "cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -11294,12 +11321,6 @@ "optionator": "^0.9.3" }, "dependencies": { - "@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11550,19 +11571,19 @@ } }, "eslint-plugin-n": { - "version": "17.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.11.1.tgz", - "integrity": "sha512-93IUD82N6tIEgjztVI/l3ElHtC2wTa9boJHrD8iN+NyDxjxz/daZUZKfkedjBZNdg6EqDk4irybUsiPwDqXAEA==", + "version": "17.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.15.1.tgz", + "integrity": "sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "enhanced-resolve": "^5.17.0", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^15.8.0", - "ignore": "^5.2.4", + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", "minimatch": "^9.0.5", - "semver": "^7.5.3" + "semver": "^7.6.3" }, "dependencies": { "semver": { @@ -11922,9 +11943,9 @@ } }, "globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true }, "globalthis": { @@ -13007,13 +13028,14 @@ } }, "react-bootstrap": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.6.tgz", - "integrity": "sha512-fNvKytSp0nHts1WRnRBJeBEt+I9/ZdrnhIjWOucEduRNvFRU1IXjZueDdWnBiqsTSJ7MckQJi9i/hxGolaRq+g==", + "version": "2.10.7", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.7.tgz", + "integrity": "sha512-w6mWb3uytB5A18S2oTZpYghcOUK30neMBBvZ/bEfA+WIF2dF4OGqjzoFVMpVXBjtyf92gkmRToHlddiMAVhQqQ==", "requires": { "@babel/runtime": "^7.24.7", "@restart/hooks": "^0.4.9", - "@restart/ui": "^1.9.0", + "@restart/ui": "^1.9.2", + "@types/prop-types": "^15.7.12", "@types/react-transition-group": "^4.4.6", "classnames": "^2.3.2", "dom-helpers": "^5.2.1", @@ -13043,9 +13065,9 @@ } }, "react-i18next": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.2.tgz", - "integrity": "sha512-tl7AfbWyz9a4BefFXnVooc+gvQBVlavUkVTphGUcvhsNmbRf5UixJVdHeSFkE4gUyQkmFPYHVwTuxIdHjfQgiA==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", + "integrity": "sha512-J11oA30FbM3NZegUZjn8ySK903z6PLBz/ZuBYyT1JMR0QPrW6PFXvl1WoUhortdGi9dM0m48/zJQlPskVZXgVw==", "requires": { "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" @@ -13068,11 +13090,14 @@ "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==" }, "react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", "requires": { - "@remix-run/router": "1.21.0" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" } }, "react-router-bootstrap": { @@ -13084,12 +13109,12 @@ } }, "react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.1.tgz", + "integrity": "sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==", + "peer": true, "requires": { - "@remix-run/router": "1.21.0", - "react-router": "6.28.0" + "react-router": "7.1.1" } }, "react-transition-group": { @@ -13286,6 +13311,11 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, + "set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -13743,6 +13773,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/client/package.json b/client/package.json index 57cc7b5..dfcc207 100644 --- a/client/package.json +++ b/client/package.json @@ -23,12 +23,12 @@ "bootstrap": "^5.3.3", "i18next": "^23.16.8", "react": "^18.3.1", - "react-bootstrap": "^2.10.6", + "react-bootstrap": "^2.10.7", "react-bootstrap-icons": "^1.11.5", "react-dom": "^18.3.1", - "react-i18next": "^15.1.2", + "react-i18next": "^15.1.3", + "react-router": "^7.1.1", "react-router-bootstrap": "^0.26.3", - "react-router-dom": "^6.28.0", "typescript": "^5.7.2", "vite": "^6.0.3" }, @@ -63,7 +63,7 @@ "@eslint/compat": "^1.2.4", "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.17.0", - "@stylistic/eslint-plugin": "^2.10.1", + "@stylistic/eslint-plugin": "^2.12.1", "@testing-library/jest-dom": "^6.6.3", "@types/react": "^18.3.12", "@vitest/coverage-v8": "^2.1.8", @@ -71,10 +71,10 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^50.5.0", - "eslint-plugin-n": "^17.11.1", + "eslint-plugin-n": "^17.15.1", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-react": "^7.37.2", - "globals": "^15.13.0", + "globals": "^15.14.0", "jsdom": "^25.0.1", "prettier": "^3.4.2", "sass": "^1.80.4", diff --git a/client/src/App.tsx b/client/src/App.tsx index 6fdeb44..24842fc 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -1,7 +1,7 @@ import React, { useContext, useEffect } from 'react'; import { createBrowserRouter, Navigate, RouteObject, RouterProvider -} from 'react-router-dom'; +} from 'react-router'; import AuthContext from './context/AuthContext'; import BrowserRoutes from './routes'; diff --git a/client/src/__test__/components/Footer.test.tsx b/client/src/__test__/components/Footer.test.tsx index 312258a..77b8841 100644 --- a/client/src/__test__/components/Footer.test.tsx +++ b/client/src/__test__/components/Footer.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { act, render, screen } from '@testing-library/react'; -import { BrowserRouter } from 'react-router-dom'; +import { BrowserRouter } from 'react-router'; import { describe, it, expect, vi, beforeAll, afterAll } from 'vitest'; import authContextMock from '../__mocks__/authContextMock'; import Footer from '../../components/Footer'; diff --git a/client/src/__test__/components/Header.test.tsx b/client/src/__test__/components/Header.test.tsx index bbc7de2..1ec7d50 100644 --- a/client/src/__test__/components/Header.test.tsx +++ b/client/src/__test__/components/Header.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { MemoryRouter } from 'react-router-dom'; +import { MemoryRouter } from 'react-router'; import { describe, it, expect, vi } from 'vitest'; import Header from '../../components/Header'; import '../../i18n'; diff --git a/client/src/__test__/components/LoginForm.test.tsx b/client/src/__test__/components/LoginForm.test.tsx index cce2b55..cddad49 100644 --- a/client/src/__test__/components/LoginForm.test.tsx +++ b/client/src/__test__/components/LoginForm.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { describe, it, expect } from 'vitest'; -import { BrowserRouter } from 'react-router-dom'; +import { BrowserRouter } from 'react-router'; import { render, screen } from '@testing-library/react'; import LoginForm from '../../components/LoginForm'; import '../../i18n'; diff --git a/client/src/components/Footer/index.tsx b/client/src/components/Footer/index.tsx index 9e9d438..b54d977 100644 --- a/client/src/components/Footer/index.tsx +++ b/client/src/components/Footer/index.tsx @@ -2,7 +2,7 @@ import React, { useContext } from 'react'; import { Button, Col, Container, Row } from 'react-bootstrap'; -import { Link, useNavigate } from 'react-router-dom'; +import { Link } from 'react-router'; import AuthContext from '../../context/AuthContext'; import './style.css'; import { useTranslation } from 'react-i18next'; @@ -18,13 +18,12 @@ import { useTranslation } from 'react-i18next'; function Footer(): JSX.Element { const { signOut, user } = useContext(AuthContext); const { t } = useTranslation(); - const navigate = useNavigate(); const build = import.meta.env.VITE_BUILD; const currentYear = new Date().getFullYear(); const goOut = () => { signOut(); - navigate('/'); + // navigate('/'); }; return ( diff --git a/client/src/components/Header/index.tsx b/client/src/components/Header/index.tsx index 9441829..fb83733 100644 --- a/client/src/components/Header/index.tsx +++ b/client/src/components/Header/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import Container from 'react-bootstrap/Container'; import Nav from 'react-bootstrap/Nav'; import Navbar from 'react-bootstrap/Navbar'; -import { LinkContainer } from 'react-router-bootstrap'; +import { NavLink } from 'react-router'; import Logo from '../../assets/logo2-450-450.png'; import { useTranslation } from 'react-i18next'; @@ -21,26 +21,27 @@ function Header(): JSX.Element {
- + TaskNote logo - + diff --git a/client/src/components/LoginForm/index.tsx b/client/src/components/LoginForm/index.tsx index d4bdb2f..3b04a54 100644 --- a/client/src/components/LoginForm/index.tsx +++ b/client/src/components/LoginForm/index.tsx @@ -13,7 +13,7 @@ import { Form, Row } from 'react-bootstrap'; -import { Link, useNavigate } from 'react-router-dom'; +import { Link, useNavigate } from 'react-router'; import { useTranslation } from 'react-i18next'; import AuthContext from '../../context/AuthContext'; import { translateServerResponse } from '../../utils/TranslatorUtils'; diff --git a/client/src/layout/PrivateLayout/index.tsx b/client/src/layout/PrivateLayout/index.tsx index 8255981..f3a3bec 100644 --- a/client/src/layout/PrivateLayout/index.tsx +++ b/client/src/layout/PrivateLayout/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Outlet } from 'react-router-dom'; +import { Outlet } from 'react-router'; import { Container } from 'react-bootstrap'; import Header from '../../components/Header'; import Footer from '../../components/Footer'; diff --git a/client/src/routes/ProtectedRoute/index.tsx b/client/src/routes/ProtectedRoute/index.tsx index cb9e30f..d256695 100644 --- a/client/src/routes/ProtectedRoute/index.tsx +++ b/client/src/routes/ProtectedRoute/index.tsx @@ -1,5 +1,5 @@ import React, { useContext } from 'react'; -import { Navigate, Outlet } from 'react-router-dom'; +import { Navigate, Outlet } from 'react-router'; import AuthContext from '../../context/AuthContext'; const ProtectedRoute = (): React.JSX.Element => { diff --git a/client/src/routes/index.tsx b/client/src/routes/index.tsx index 536c294..4bb86eb 100644 --- a/client/src/routes/index.tsx +++ b/client/src/routes/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Navigate, RouteObject } from 'react-router-dom'; +import { Navigate, RouteObject } from 'react-router'; import getStoredPath from '../utils/PathUtils'; import Home from '../views/Home'; import About from '../views/About'; diff --git a/client/src/views/Account/index.tsx b/client/src/views/Account/index.tsx index 45389f0..d25e7ed 100644 --- a/client/src/views/Account/index.tsx +++ b/client/src/views/Account/index.tsx @@ -2,7 +2,6 @@ import React, { useContext, useState } from 'react'; import { Alert, Button, Card, Col, Container, Row } from 'react-bootstrap'; import { useTranslation } from 'react-i18next'; import { FileText, Person, ShieldCheck } from 'react-bootstrap-icons'; -import { useNavigate } from 'react-router-dom'; import { clearStorage, setDefaultLang } from '../../storage-service/storage'; import AuthContext from '../../context/AuthContext'; import { LangAvailable, languages } from '../../constants/languages_available'; @@ -19,7 +18,6 @@ import ApiConfig from '../../api-service/apiConfig'; function Account(): JSX.Element { const { signOut, user } = useContext(AuthContext); const { i18n, t } = useTranslation(); - const navigate = useNavigate(); const [showAlert, setShowAlert] = useState(false); const handleLanguage = (lang: string) => { @@ -32,7 +30,7 @@ function Account(): JSX.Element { await api.postJSON(ApiConfig.deleteAccountUrl, {}); signOut(); clearStorage(); - navigate('/'); + // navigate('/'); }; return ( diff --git a/client/src/views/Home/index.tsx b/client/src/views/Home/index.tsx index f349d22..7851e12 100644 --- a/client/src/views/Home/index.tsx +++ b/client/src/views/Home/index.tsx @@ -5,8 +5,8 @@ import { Button, Card, Col, Container, Form, InputGroup, Row } from 'react-bootstrap'; import './style.css'; -import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; +import { NavLink } from 'react-router'; import { SummaryResponse } from '../../types/SummaryResponse'; import { HomeSearchResponse } from '../../types/HomeSearchResponse'; import { TaskResponse } from '../../types/TaskResponse'; @@ -29,7 +29,6 @@ function Home(): JSX.Element { const [validated, setValidated] = useState(false); const [formInvalid, setFormInvalid] = useState(false); const [searchResults, setSearchResults] = useState(null); - const navigate = useNavigate(); const { i18n, t } = useTranslation(); const handleError = (e: unknown): void => { @@ -110,13 +109,11 @@ function Home(): JSX.Element { ? ` ${summary?.doneTaskCount} ${t('home_card_task_done')}` : t('home_card_task_done_empty')} - + + + @@ -131,13 +128,11 @@ function Home(): JSX.Element { {summary?.notesCount} {t('home_card_note_count')} - + + + diff --git a/client/src/views/Landing/index.tsx b/client/src/views/Landing/index.tsx index 8edfcb4..07f5f7b 100644 --- a/client/src/views/Landing/index.tsx +++ b/client/src/views/Landing/index.tsx @@ -1,6 +1,6 @@ import React, { useContext, useEffect } from 'react'; import { Button, Container } from 'react-bootstrap'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import AuthContext from '../../context/AuthContext'; import { handleDefaultLang } from '../../lang-service/LangHandler';