From 9b5f53e7aa821e3734f4d9a3ac31676dd7e6f03b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=ED=95=B4=EC=A4=80?=
<127281057+ftery0@users.noreply.github.com>
Date: Mon, 8 Jul 2024 20:26:44 +0900
Subject: [PATCH 01/10] feat :: sign password_check
---
package-lock.json | 1017 +++++++++++++++++++++------
package.json | 3 +-
src/assets/icons/sign/CloseEye.svg | 4 +
src/assets/icons/sign/OpenEye.svg | 6 +
src/components/auth/Login/index.tsx | 10 +-
src/components/auth/style.ts | 14 +
src/hooks/auth/useLogin.ts | 20 +-
src/types/login/login.type.ts | 5 +
webpack.common.js | 13 +-
webpack.development.js | 2 +-
10 files changed, 877 insertions(+), 217 deletions(-)
create mode 100644 src/assets/icons/sign/CloseEye.svg
create mode 100644 src/assets/icons/sign/OpenEye.svg
diff --git a/package-lock.json b/package-lock.json
index fd8dc85..835932b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -49,6 +49,7 @@
"@babel/preset-env": "^7.18.10",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.18.6",
+ "@svgr/webpack": "^8.1.0",
"@types/gtag.js": "^0.0.11",
"@types/js-cookie": "^3.0.2",
"@types/jsonwebtoken": "^8.5.8",
@@ -59,7 +60,7 @@
"@types/styled-components": "^5.1.26",
"babel-loader": "^8.2.5",
"css-loader": "^6.7.1",
- "dotenv-webpack": "^8.0.1",
+ "dotenv-webpack": "^8.1.0",
"esbuild-loader": "^2.19.0",
"fork-ts-checker-webpack-plugin": "^7.2.13",
"html-webpack-plugin": "^5.5.0",
@@ -4705,206 +4706,356 @@
}
},
"node_modules/@svgr/babel-plugin-add-jsx-attribute": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
- "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
- "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
- "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
+ "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
- "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
+ "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-svg-dynamic-title": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
- "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
+ "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-svg-em-dimensions": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
- "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
+ "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-transform-react-native-svg": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
- "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
+ "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-plugin-transform-svg-component": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
- "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
+ "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/babel-preset": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
- "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
+ "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+ "dev": true,
"dependencies": {
- "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
- "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
- "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
- "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
- "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
- "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
- "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
- "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
+ "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+ "@svgr/babel-plugin-transform-svg-component": "8.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
"node_modules/@svgr/core": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
- "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
+ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "dev": true,
"dependencies": {
- "@svgr/plugin-jsx": "^5.5.0",
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
"camelcase": "^6.2.0",
- "cosmiconfig": "^7.0.0"
+ "cosmiconfig": "^8.1.3",
+ "snake-case": "^3.0.4"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
}
},
+ "node_modules/@svgr/core/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/@svgr/core/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@svgr/core/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/@svgr/hast-util-to-babel-ast": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
- "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
+ "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+ "dev": true,
"dependencies": {
- "@babel/types": "^7.12.6"
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
}
},
+ "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/@svgr/plugin-jsx": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
- "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
+ "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+ "dev": true,
"dependencies": {
- "@babel/core": "^7.12.3",
- "@svgr/babel-preset": "^5.5.0",
- "@svgr/hast-util-to-babel-ast": "^5.5.0",
- "svg-parser": "^2.0.2"
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "@svgr/hast-util-to-babel-ast": "8.0.0",
+ "svg-parser": "^2.0.4"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
}
},
"node_modules/@svgr/plugin-svgo": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
- "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
+ "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+ "dev": true,
"dependencies": {
- "cosmiconfig": "^7.0.0",
- "deepmerge": "^4.2.2",
- "svgo": "^1.2.2"
+ "cosmiconfig": "^8.1.3",
+ "deepmerge": "^4.3.1",
+ "svgo": "^3.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo/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/@svgr/plugin-svgo/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@svgr/plugin-svgo/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/@svgr/webpack": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
- "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
+ "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+ "dev": true,
"dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/plugin-transform-react-constant-elements": "^7.12.1",
- "@babel/preset-env": "^7.12.1",
- "@babel/preset-react": "^7.12.5",
- "@svgr/core": "^5.5.0",
- "@svgr/plugin-jsx": "^5.5.0",
- "@svgr/plugin-svgo": "^5.5.0",
- "loader-utils": "^2.0.0"
+ "@babel/core": "^7.21.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
+ "@svgr/core": "8.1.0",
+ "@svgr/plugin-jsx": "8.1.0",
+ "@svgr/plugin-svgo": "8.1.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "github",
@@ -6208,14 +6359,16 @@
}
},
"node_modules/array.prototype.reduce": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz",
- "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz",
+ "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
"es-array-method-boxes-properly": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"is-string": "^1.0.7"
},
"engines": {
@@ -7855,15 +8008,16 @@
}
},
"node_modules/css-tree": {
- "version": "1.0.0-alpha.37",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
- "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
"dependencies": {
- "mdn-data": "2.0.4",
- "source-map": "^0.6.1"
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
"node_modules/css-what": {
@@ -8049,12 +8203,60 @@
"node": ">=10"
}
},
- "node_modules/date-fns": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
- "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
"dependencies": {
- "@babel/runtime": "^7.21.0"
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/date-fns": {
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
},
"engines": {
"node": ">=0.11"
@@ -8438,9 +8640,9 @@
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
},
"node_modules/dotenv-webpack": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.0.1.tgz",
- "integrity": "sha512-CdrgfhZOnx4uB18SgaoP9XHRN2v48BbjuXQsZY5ixs5A8579NxQkmMxRtI7aTwSiSQcM2ao12Fdu+L3ZS3bG4w==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.1.0.tgz",
+ "integrity": "sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==",
"dev": true,
"dependencies": {
"dotenv-defaults": "^2.0.2"
@@ -8599,16 +8801,20 @@
}
},
"node_modules/es-abstract": {
- "version": "1.22.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz",
- "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"arraybuffer.prototype.slice": "^1.0.3",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
@@ -8619,10 +8825,11 @@
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.1",
+ "hasown": "^2.0.2",
"internal-slot": "^1.0.7",
"is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
"is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.3",
@@ -8633,17 +8840,17 @@
"object-keys": "^1.1.1",
"object.assign": "^4.1.5",
"regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.0",
+ "safe-array-concat": "^1.1.2",
"safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "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.14"
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -8706,6 +8913,17 @@
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz",
"integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="
},
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-set-tostringtag": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
@@ -11491,6 +11709,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -14445,9 +14677,10 @@
}
},
"node_modules/mdn-data": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
- "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
},
"node_modules/media-typer": {
"version": "0.3.0",
@@ -14941,15 +15174,17 @@
}
},
"node_modules/object.getownpropertydescriptors": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz",
- "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz",
+ "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==",
"dependencies": {
"array.prototype.reduce": "^1.0.6",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "safe-array-concat": "^1.0.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "gopd": "^1.0.1",
+ "safe-array-concat": "^1.1.2"
},
"engines": {
"node": ">= 0.8"
@@ -16804,6 +17039,7 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
"engines": {
"node": ">=0.6.0",
"teleport": ">=0.2.0"
@@ -17418,6 +17654,270 @@
}
}
},
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
+ "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
+ "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
+ "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
+ "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
+ "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
+ "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
+ "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
+ "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/babel-preset": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
+ "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
+ "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/core": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
+ "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
+ "dependencies": {
+ "@svgr/plugin-jsx": "^5.5.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
+ "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
+ "dependencies": {
+ "@babel/types": "^7.12.6"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/plugin-jsx": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
+ "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@svgr/babel-preset": "^5.5.0",
+ "@svgr/hast-util-to-babel-ast": "^5.5.0",
+ "svg-parser": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/plugin-svgo": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
+ "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
+ "dependencies": {
+ "cosmiconfig": "^7.0.0",
+ "deepmerge": "^4.2.2",
+ "svgo": "^1.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@svgr/webpack": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
+ "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.12.1",
+ "@babel/preset-env": "^7.12.1",
+ "@babel/preset-react": "^7.12.5",
+ "@svgr/core": "^5.5.0",
+ "@svgr/plugin-jsx": "^5.5.0",
+ "@svgr/plugin-svgo": "^5.5.0",
+ "loader-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/react-scripts/node_modules/css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "node_modules/react-scripts/node_modules/css-tree": {
+ "version": "1.0.0-alpha.37",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+ "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+ "dependencies": {
+ "mdn-data": "2.0.4",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/react-scripts/node_modules/css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/react-scripts/node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/react-scripts/node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/react-scripts/node_modules/domutils/node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
"node_modules/react-scripts/node_modules/dotenv": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
@@ -17437,6 +17937,19 @@
"node": ">=10"
}
},
+ "node_modules/react-scripts/node_modules/mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
+ },
+ "node_modules/react-scripts/node_modules/nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dependencies": {
+ "boolbase": "~1.0.0"
+ }
+ },
"node_modules/react-scripts/node_modules/semver": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
@@ -17451,6 +17964,33 @@
"node": ">=10"
}
},
+ "node_modules/react-scripts/node_modules/svgo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
+ "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+ "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.",
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "coa": "^2.0.2",
+ "css-select": "^2.0.0",
+ "css-select-base-adapter": "^0.1.1",
+ "css-tree": "1.0.0-alpha.37",
+ "csso": "^4.0.2",
+ "js-yaml": "^3.13.1",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.1.0",
+ "sax": "~1.2.4",
+ "stable": "^0.1.8",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/react-scripts/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -18405,6 +18945,16 @@
"node": ">=8"
}
},
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
+ "dev": true,
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
"node_modules/sockjs": {
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
@@ -18739,13 +19289,14 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -18755,26 +19306,29 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -19089,85 +19643,143 @@
"integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
},
"node_modules/svgo": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
- "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
- "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
+ "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
+ "dev": true,
"dependencies": {
- "chalk": "^2.4.1",
- "coa": "^2.0.2",
- "css-select": "^2.0.0",
- "css-select-base-adapter": "^0.1.1",
- "css-tree": "1.0.0-alpha.37",
- "csso": "^4.0.2",
- "js-yaml": "^3.13.1",
- "mkdirp": "~0.5.1",
- "object.values": "^1.1.0",
- "sax": "~1.2.4",
- "stable": "^0.1.8",
- "unquote": "~1.1.1",
- "util.promisify": "~1.0.0"
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^2.3.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.0.0"
},
"bin": {
"svgo": "bin/svgo"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/svgo/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
}
},
"node_modules/svgo/node_modules/css-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
- "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dev": true,
"dependencies": {
"boolbase": "^1.0.0",
- "css-what": "^3.2.1",
- "domutils": "^1.7.0",
- "nth-check": "^1.0.2"
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/svgo/node_modules/css-what": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
- "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "node_modules/svgo/node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "dev": true,
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
"engines": {
- "node": ">= 6"
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/fb55"
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
}
},
"node_modules/svgo/node_modules/dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dev": true,
"dependencies": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
- "node_modules/svgo/node_modules/domutils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
- "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "node_modules/svgo/node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dev": true,
"dependencies": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
- "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "node_modules/svgo/node_modules/nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "node_modules/svgo/node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dev": true,
"dependencies": {
- "boolbase": "~1.0.0"
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
}
},
+ "node_modules/svgo/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/svgo/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "dev": true
+ },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -19629,9 +20241,9 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
- "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dependencies": {
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
@@ -19659,7 +20271,6 @@
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
- "dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -20569,15 +21180,15 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
- "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dependencies": {
- "available-typed-arrays": "^1.0.6",
- "call-bind": "^1.0.5",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.1"
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
diff --git a/package.json b/package.json
index a5fb50e..67adbdb 100644
--- a/package.json
+++ b/package.json
@@ -49,6 +49,7 @@
"@babel/preset-env": "^7.18.10",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.18.6",
+ "@svgr/webpack": "^8.1.0",
"@types/gtag.js": "^0.0.11",
"@types/js-cookie": "^3.0.2",
"@types/jsonwebtoken": "^8.5.8",
@@ -59,7 +60,7 @@
"@types/styled-components": "^5.1.26",
"babel-loader": "^8.2.5",
"css-loader": "^6.7.1",
- "dotenv-webpack": "^8.0.1",
+ "dotenv-webpack": "^8.1.0",
"esbuild-loader": "^2.19.0",
"fork-ts-checker-webpack-plugin": "^7.2.13",
"html-webpack-plugin": "^5.5.0",
diff --git a/src/assets/icons/sign/CloseEye.svg b/src/assets/icons/sign/CloseEye.svg
new file mode 100644
index 0000000..58b83f2
--- /dev/null
+++ b/src/assets/icons/sign/CloseEye.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/assets/icons/sign/OpenEye.svg b/src/assets/icons/sign/OpenEye.svg
new file mode 100644
index 0000000..8f96b65
--- /dev/null
+++ b/src/assets/icons/sign/OpenEye.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/components/auth/Login/index.tsx b/src/components/auth/Login/index.tsx
index ee862cd..013c596 100644
--- a/src/components/auth/Login/index.tsx
+++ b/src/components/auth/Login/index.tsx
@@ -1,7 +1,8 @@
import { Dispatch, SetStateAction } from "react";
import useLogin from "@src/hooks/auth/useLogin";
import * as S from "./style";
-
+import OpenEye from "@src/assets/icons/sign/OpenEye.svg"
+import CloseEye from "@src/assets/icons/sign/CloseEye.svg"
import { FiCheck } from "@react-icons/all-files/fi/FiCheck";
import * as AuthS from "../style";
@@ -11,6 +12,8 @@ interface Props {
const Login = ({ setIsLogin }: Props) => {
const {
+ passwordType,
+ handlePasswordView,
loginData,
handleLoginData,
loginKeep,
@@ -36,8 +39,11 @@ const Login = ({ setIsLogin }: Props) => {
name="pw"
value={loginData.pw}
onChange={handleLoginData}
- type="password"
+ type={passwordType.type}
/>
+
+
+
diff --git a/src/components/auth/style.ts b/src/components/auth/style.ts
index 8466e85..b7f59dd 100644
--- a/src/components/auth/style.ts
+++ b/src/components/auth/style.ts
@@ -76,6 +76,7 @@ export const AuthWrap = styled.div`
`;
export const AuthInputWrap = styled.div`
+ position: relative;
height: 56px;
display: flex;
flex-direction: column;
@@ -105,6 +106,19 @@ export const AuthInput = styled.input`
}
`;
+export const AuthPasswordBtn = styled.div`
+ position: absolute;
+ right: 10px;
+ bottom: 5px;
+ cursor: pointer;
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ width: 25px;
+ height: 25px;
+`;
+
export const AuthOppositePartWrap = styled.div`
display: flex;
align-items: center;
diff --git a/src/hooks/auth/useLogin.ts b/src/hooks/auth/useLogin.ts
index a39cc2c..0161318 100644
--- a/src/hooks/auth/useLogin.ts
+++ b/src/hooks/auth/useLogin.ts
@@ -1,4 +1,4 @@
-import { FormEvent, useCallback, useState } from "react";
+import React, { FormEvent, useCallback, useState } from "react";
import { useNavigate } from "react-router-dom";
import authRepository from "@src/repository/auth/auth.repository";
import { Login } from "@src/types/login/login.type";
@@ -12,15 +12,19 @@ import { useQueryClient } from "react-query";
import * as Sentry from "@sentry/react";
import { QUERY_KEYS } from "@src/queries/queryKey";
import { AxiosError } from "axios";
-import errorResponseHandler from "@src/lib/axios/errorResponseHandler";
import ErrorHandler from "@src/util/error/ErrorHandler";
import { useRecoilValue } from "recoil";
import { pointViewTypeAtom } from "@src/store/point/pointStore";
+import { PasswordParm } from "@src/types/login/login.type";
const useLogin = () => {
const queryClient = useQueryClient();
const navigate = useNavigate();
const type = useRecoilValue(pointViewTypeAtom);
+ const [passwordType, setPasswordType] = useState({
+ type: "password",
+ visible: false,
+ });
const [loginData, setLoginData] = useState({
id: "",
@@ -30,6 +34,7 @@ const useLogin = () => {
const handleLoginKeep = () => setLoginKeep((prev) => !prev);
+
const handleLoginData = useCallback(
(e: React.ChangeEvent): void => {
const { value, name } = e.target;
@@ -82,12 +87,23 @@ const useLogin = () => {
[loginData, navigate]
);
+ const handlePasswordView = () => {
+ setPasswordType(() => {
+ if (!passwordType.visible) {
+ return { type: "text", visible: true };
+ }
+ return { type: "password", visible: false };
+ });
+ };
+
return {
loginData,
handleLoginData,
loginKeep,
handleLoginKeep,
submitLoginData,
+ handlePasswordView,
+ passwordType,
};
};
diff --git a/src/types/login/login.type.ts b/src/types/login/login.type.ts
index 96a82c7..341bd13 100644
--- a/src/types/login/login.type.ts
+++ b/src/types/login/login.type.ts
@@ -12,3 +12,8 @@ export interface LoginResponse extends Response {
accessToken: string;
};
}
+
+export interface PasswordParm {
+ type: string;
+ visible: boolean;
+}
diff --git a/webpack.common.js b/webpack.common.js
index 4e01a91..8327364 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -1,7 +1,6 @@
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const webpack = require("webpack");
-const svgToMiniDataURI = require("mini-svg-data-uri");
const DotEnv = require("dotenv-webpack");
module.exports = {
@@ -30,14 +29,12 @@ module.exports = {
type: "asset",
},
{
- test: /\.svg/,
- type: "asset",
- generator: {
- dataUrl: (content) => {
- content = content.toString();
- return svgToMiniDataURI(content);
+ test: /\.(svg)$/,
+ use: [
+ {
+ loader: 'file-loader',
},
- },
+ ],
},
{
test: /\.css$/,
diff --git a/webpack.development.js b/webpack.development.js
index a785c46..6c5b5ae 100644
--- a/webpack.development.js
+++ b/webpack.development.js
@@ -7,7 +7,7 @@ module.exports = merge(webpackCommon, {
devtool: "source-map",
devServer: {
hot: true,
- port: 3000,
+ port: 3400,
historyApiFallback: true,
},
plugins: [new ForkTsCheckerWebpackPlugin()],
From 09bbca94a69ba4e17a0f76d167237dbb3845f3fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=ED=95=B4=EC=A4=80?=
<127281057+ftery0@users.noreply.github.com>
Date: Mon, 5 Aug 2024 18:22:45 +0900
Subject: [PATCH 02/10] =?UTF-8?q?=EB=B0=B1=EC=97=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../auth/Signup/SignupFirst/index.tsx | 8 ++++----
.../auth/Signup/SignupSecond/index.tsx | 10 +++++++---
.../auth/signup/signupSecond/style.ts | 4 +++-
src/hooks/auth/useLogin.ts | 1 +
src/lib/axios/customAxios.ts | 2 +-
src/store/password/passwordStore.ts | 6 ++++++
src/store/theme/themeStore.ts | 2 +-
src/util/check/passwordCheck.ts | 20 +++++++++++++++++++
src/util/check/patternCheck.ts | 2 +-
webpack.development.js | 2 +-
10 files changed, 45 insertions(+), 12 deletions(-)
create mode 100644 src/store/password/passwordStore.ts
create mode 100644 src/util/check/passwordCheck.ts
diff --git a/src/components/auth/Signup/SignupFirst/index.tsx b/src/components/auth/Signup/SignupFirst/index.tsx
index cca8d1f..355bdc9 100644
--- a/src/components/auth/Signup/SignupFirst/index.tsx
+++ b/src/components/auth/Signup/SignupFirst/index.tsx
@@ -23,7 +23,7 @@ const SignupFirst = ({
ID
@@ -43,20 +43,20 @@ const SignupFirst = ({
{
- //회원가입쪽과 같은 로직으로, map을 돌리기 위해 object인 agrees를 배열로 만들어 리턴함.
+
const agreesList = useMemo(() => {
const { first, second } = agrees;
return [first, second];
}, [agrees]);
-
+ const navigate = useNavigate();
return (
<>
@@ -82,7 +83,10 @@ const SignupSecond = ({
{agree.title}
- 상세 내용 보기
+
+
+ 상세 내용 보기
+
))}
diff --git a/src/components/auth/signup/signupSecond/style.ts b/src/components/auth/signup/signupSecond/style.ts
index e49619f..aacdff7 100644
--- a/src/components/auth/signup/signupSecond/style.ts
+++ b/src/components/auth/signup/signupSecond/style.ts
@@ -52,7 +52,9 @@ export const SignupAgreeDetail = styled.p`
font-size: 14px;
color: #7c7c7c;
cursor: pointer;
-
+ a{
+ color: #7c7c7c;
+ }
&:hover {
text-decoration: underline;
}
diff --git a/src/hooks/auth/useLogin.ts b/src/hooks/auth/useLogin.ts
index 0161318..6369c1d 100644
--- a/src/hooks/auth/useLogin.ts
+++ b/src/hooks/auth/useLogin.ts
@@ -17,6 +17,7 @@ import { useRecoilValue } from "recoil";
import { pointViewTypeAtom } from "@src/store/point/pointStore";
import { PasswordParm } from "@src/types/login/login.type";
+
const useLogin = () => {
const queryClient = useQueryClient();
const navigate = useNavigate();
diff --git a/src/lib/axios/customAxios.ts b/src/lib/axios/customAxios.ts
index 2307a41..82bf14c 100644
--- a/src/lib/axios/customAxios.ts
+++ b/src/lib/axios/customAxios.ts
@@ -31,6 +31,6 @@ export const dodamAxiosSetAccessToken = (token: string) => {
dodamAxios.defaults.headers.common[REQUEST_TOKEN_KEY] = `Bearer ${token}`;
};
-dodamAxios.interceptors.request.use(requestHandler, (res) => res);
+dodamAxios.interceptors.request.use(requestHandler , (res) => res);
dodamAxios.interceptors.response.use((res) => res, errorResponseHandler);
diff --git a/src/store/password/passwordStore.ts b/src/store/password/passwordStore.ts
new file mode 100644
index 0000000..7c7e3aa
--- /dev/null
+++ b/src/store/password/passwordStore.ts
@@ -0,0 +1,6 @@
+import { atom } from "recoil";
+
+export const passwordAtom = atom({
+ key: "passwordCheck",
+ default: false,
+})
\ No newline at end of file
diff --git a/src/store/theme/themeStore.ts b/src/store/theme/themeStore.ts
index 9a2a4f5..9f4a6ef 100644
--- a/src/store/theme/themeStore.ts
+++ b/src/store/theme/themeStore.ts
@@ -5,4 +5,4 @@ import { getTheme } from "@src/util/theme/getTheme";
export const themeModeAtom = atom({
key: "theme/themeModeAtom",
default: getTheme(),
-});
+});
\ No newline at end of file
diff --git a/src/util/check/passwordCheck.ts b/src/util/check/passwordCheck.ts
new file mode 100644
index 0000000..77cf1c9
--- /dev/null
+++ b/src/util/check/passwordCheck.ts
@@ -0,0 +1,20 @@
+import { PasswordParm } from "@src/types/login/login.type";
+import React,{useState} from "react";
+
+const passwordCheck = ()=>{
+ const [passwordType, setPasswordType] = useState({
+ type: "password",
+ visible: false,
+ });//이부분을 리코일로
+
+
+ const handlePasswordView = () => {
+ setPasswordType(() => {
+ if (!passwordType.visible) {
+ return { type: "text", visible: true };
+ }
+ return { type: "password", visible: false };
+ });
+ };
+}
+export default passwordCheck
diff --git a/src/util/check/patternCheck.ts b/src/util/check/patternCheck.ts
index 9d3d281..dcd90f1 100644
--- a/src/util/check/patternCheck.ts
+++ b/src/util/check/patternCheck.ts
@@ -7,7 +7,7 @@ class PatternCheck {
}
public pwCheck(value: string): boolean {
- if (/^[a-zA-Z0-9!@#$%^*+=-]{7,20}$/.test(value)) {
+ if (/^[a-zA-Z0-9!@#$%^*+=-]{7,20}$/.test(value) && !/[ㄱ-ㅎㅏ-ㅣ가-힣]/.test(value)) {
return true;
}
return false;
diff --git a/webpack.development.js b/webpack.development.js
index 6c5b5ae..a785c46 100644
--- a/webpack.development.js
+++ b/webpack.development.js
@@ -7,7 +7,7 @@ module.exports = merge(webpackCommon, {
devtool: "source-map",
devServer: {
hot: true,
- port: 3400,
+ port: 3000,
historyApiFallback: true,
},
plugins: [new ForkTsCheckerWebpackPlugin()],
From e1fc17b379d8a3cd6648162f3a4c78ab56a91139 Mon Sep 17 00:00:00 2001
From: ftery0
Date: Fri, 16 Aug 2024 00:24:17 +0900
Subject: [PATCH 03/10] feat :: passwrodCheck
---
.../auth/Signup/SignupFirst/index.tsx | 13 ++++++-
src/components/auth/Signup/index.tsx | 32 ++++++++---------
src/hooks/auth/useLogin.ts | 24 ++++++-------
src/hooks/auth/useSignup.ts | 4 +++
src/store/password/passwordStore.ts | 6 ----
src/util/check/passwordCheck.ts | 34 +++++++++----------
6 files changed, 57 insertions(+), 56 deletions(-)
delete mode 100644 src/store/password/passwordStore.ts
diff --git a/src/components/auth/Signup/SignupFirst/index.tsx b/src/components/auth/Signup/SignupFirst/index.tsx
index 355bdc9..26dfca0 100644
--- a/src/components/auth/Signup/SignupFirst/index.tsx
+++ b/src/components/auth/Signup/SignupFirst/index.tsx
@@ -2,19 +2,27 @@ import React from "react";
import { Signup } from "@src/types/signup/signup.type";
import { AuthInput, AuthInputTitle, AuthInputWrap } from "../../style";
import * as SignupS from "../style";
+import * as AuthS from "../../style";
import * as S from "./style";
import { FiChevronRight } from "@react-icons/all-files/fi/FiChevronRight";
+import { PasswordParm } from "@src/types/login/login.type";
+import OpenEye from "@src/assets/icons/sign/OpenEye.svg";
+import CloseEye from "@src/assets/icons/sign/CloseEye.svg"
interface Props {
signupData: Signup;
+ passwordType:PasswordParm;
handleSignupData: (e: React.ChangeEvent) => void;
submitSignupDataFirst: () => void;
+ handlePasswordView:()=>void;
}
const SignupFirst = ({
signupData,
+ passwordType,
handleSignupData,
submitSignupDataFirst,
+ handlePasswordView
}: Props) => {
return (
<>
@@ -34,9 +42,12 @@ const SignupFirst = ({
name="pw"
value={signupData.pw}
onChange={handleSignupData}
- type="password"
+ type={passwordType.type}
placeholder="abcdefg1234"
/>
+
+
+
학번
diff --git a/src/components/auth/Signup/index.tsx b/src/components/auth/Signup/index.tsx
index 6bcf598..8552c46 100644
--- a/src/components/auth/Signup/index.tsx
+++ b/src/components/auth/Signup/index.tsx
@@ -6,36 +6,32 @@ import SignupFirst from "./SignupFirst";
import SignupSecond from "./SignupSecond";
import * as AuthS from "../style";
+
interface Props {
setIsLogin: Dispatch>;
}
const Signup = ({ setIsLogin }: Props) => {
const {
- section,
- setSection,
- signupData,
- handleSignupData,
- submitSignupDataFirst,
- agrees,
- handleSignupAgree,
- submitSignupDataSecond,
+ ...sign
} = useSignup();
const signupComponents: ReactNode[] = [
,
,
];
@@ -44,7 +40,7 @@ const Signup = ({ setIsLogin }: Props) => {
{signupComponents.map((component, idx) => {
- return section === SIGNUP_SECTION_NAME[idx].title && component;
+ return sign.section === SIGNUP_SECTION_NAME[idx].title && component;
// 회원가입 섹션이 2개가 있는데, 일일이 &&연산자로 하면 코드가 더러울거 같아서 배열에 담아서 map을 돌렸음.
})}
diff --git a/src/hooks/auth/useLogin.ts b/src/hooks/auth/useLogin.ts
index 6369c1d..288c7c1 100644
--- a/src/hooks/auth/useLogin.ts
+++ b/src/hooks/auth/useLogin.ts
@@ -16,16 +16,13 @@ import ErrorHandler from "@src/util/error/ErrorHandler";
import { useRecoilValue } from "recoil";
import { pointViewTypeAtom } from "@src/store/point/pointStore";
import { PasswordParm } from "@src/types/login/login.type";
-
+import usePasswordCheck from "@src/util/check/passwordCheck";
const useLogin = () => {
const queryClient = useQueryClient();
const navigate = useNavigate();
const type = useRecoilValue(pointViewTypeAtom);
- const [passwordType, setPasswordType] = useState({
- type: "password",
- visible: false,
- });
+ const { passwordType, handlePasswordView } = usePasswordCheck();
const [loginData, setLoginData] = useState({
id: "",
@@ -87,15 +84,14 @@ const useLogin = () => {
},
[loginData, navigate]
);
-
- const handlePasswordView = () => {
- setPasswordType(() => {
- if (!passwordType.visible) {
- return { type: "text", visible: true };
- }
- return { type: "password", visible: false };
- });
- };
+ // const handlePasswordView = () => {
+ // setPasswordType(() => {
+ // if (!passwordType.visible) {
+ // return { type: "text", visible: true };
+ // }
+ // return { type: "password", visible: false };
+ // });
+ // };
return {
loginData,
diff --git a/src/hooks/auth/useSignup.ts b/src/hooks/auth/useSignup.ts
index c1ef437..84af8f1 100644
--- a/src/hooks/auth/useSignup.ts
+++ b/src/hooks/auth/useSignup.ts
@@ -6,9 +6,11 @@ import * as Sentry from "@sentry/react";
import memberRepository from "@src/repository/member/member.repository";
import ErrorHandler from "@src/util/error/ErrorHandler";
import { AxiosError } from "axios";
+import usePasswordCheck from "@src/util/check/passwordCheck";
const useSignup = () => {
const [section, setSection] = useState("first");
+const {passwordType, handlePasswordView} =usePasswordCheck()
const [signupData, setSignupData] = useState({
id: "",
@@ -118,6 +120,7 @@ const useSignup = () => {
}, [agrees, signupData]);
return {
+ passwordType,
section,
setSection,
signupData,
@@ -126,6 +129,7 @@ const useSignup = () => {
agrees,
handleSignupAgree,
submitSignupDataSecond,
+ handlePasswordView
};
};
diff --git a/src/store/password/passwordStore.ts b/src/store/password/passwordStore.ts
deleted file mode 100644
index 7c7e3aa..0000000
--- a/src/store/password/passwordStore.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { atom } from "recoil";
-
-export const passwordAtom = atom({
- key: "passwordCheck",
- default: false,
-})
\ No newline at end of file
diff --git a/src/util/check/passwordCheck.ts b/src/util/check/passwordCheck.ts
index 77cf1c9..0ebd6c7 100644
--- a/src/util/check/passwordCheck.ts
+++ b/src/util/check/passwordCheck.ts
@@ -1,20 +1,20 @@
import { PasswordParm } from "@src/types/login/login.type";
import React,{useState} from "react";
-const passwordCheck = ()=>{
- const [passwordType, setPasswordType] = useState({
- type: "password",
- visible: false,
- });//이부분을 리코일로
-
-
- const handlePasswordView = () => {
- setPasswordType(() => {
- if (!passwordType.visible) {
- return { type: "text", visible: true };
- }
- return { type: "password", visible: false };
- });
- };
-}
-export default passwordCheck
+const usePasswordCheck = () => {
+ const [passwordType, setPasswordType] = useState({
+ type: "password",
+ visible: false,
+ });
+
+
+ const handlePasswordView = () => {
+ setPasswordType((prev) => ({
+ type: prev.visible ? 'password' : 'text',
+ visible: !prev.visible,
+ }));
+ };
+
+ return { passwordType, handlePasswordView };
+};
+export default usePasswordCheck
\ No newline at end of file
From b499b6908344ea32d1da189d0dc75462dac87dbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=ED=95=B4=EC=A4=80?=
<127281057+ftery0@users.noreply.github.com>
Date: Fri, 20 Sep 2024 15:37:58 +0900
Subject: [PATCH 04/10] =?UTF-8?q?fix=20::=20=EB=A6=AC=ED=94=84=EB=A0=88?=
=?UTF-8?q?=EC=89=AC=20=EC=97=90=EB=9F=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/lib/axios/errorResponseHandler.ts | 21 +++------------------
src/lib/axios/requestHandler.ts | 1 -
2 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/src/lib/axios/errorResponseHandler.ts b/src/lib/axios/errorResponseHandler.ts
index 7a442ff..24fa430 100644
--- a/src/lib/axios/errorResponseHandler.ts
+++ b/src/lib/axios/errorResponseHandler.ts
@@ -11,15 +11,6 @@ import authRepository from "@src/repository/auth/auth.repository";
//리프레쉬 작업중인지 아닌지를 구분하는 변수
let isRefreshing = false;
-let refreshSubscribers: ((accessToken: string) => void)[] = [];
-
-const onTokenRefreshed = (accessToken: string) => {
- refreshSubscribers.map((callback) => callback(accessToken));
-};
-
-const addRefreshSubscriber = (callback: (accessToken: string) => void) => {
- refreshSubscribers.push(callback);
-};
const errorResponseHandler = async (error: AxiosError) => {
if (error.response) {
@@ -32,7 +23,6 @@ const errorResponseHandler = async (error: AxiosError) => {
const usingRefreshToken = token.getToken(REFRESH_TOKEN_KEY);
if (
- usingAccessToken !== undefined &&
usingRefreshToken !== undefined &&
status === 401
) {
@@ -58,7 +48,7 @@ const errorResponseHandler = async (error: AxiosError) => {
isRefreshing = false;
//새로 받은 accessToken을 기반으로 이때까지 밀려있던 요청을 모두 처리
- onTokenRefreshed(newAccessToken);
+
} catch (error) {
//리프레쉬 하다가 오류난거면 리프레쉬도 만료된 것이므로 다시 로그인
window.alert("세션이 만료되었습니다.");
@@ -67,13 +57,8 @@ const errorResponseHandler = async (error: AxiosError) => {
}
}
- //어떤 요청이 리프레쉬 작업중이라면 여기로 와서 그 후에 요청된 다른 API Promise를 refreshSubscribers에 넣어줌
- return new Promise((resolve) => {
- addRefreshSubscriber((accessToken: string) => {
- originalRequest.headers![REQUEST_TOKEN_KEY] = `Bearer ${accessToken}`;
- resolve(dodamAxios(originalRequest));
- });
- });
+
+
}
}
diff --git a/src/lib/axios/requestHandler.ts b/src/lib/axios/requestHandler.ts
index e429b3e..2e8f763 100644
--- a/src/lib/axios/requestHandler.ts
+++ b/src/lib/axios/requestHandler.ts
@@ -8,7 +8,6 @@ import token from "../token/token";
const requestHandler = (config: AxiosRequestConfig) => {
if (
- token.getToken(ACCESS_TOKEN_KEY) === undefined ||
token.getToken(REFRESH_TOKEN_KEY) === undefined
) {
window.location.href = "/sign";
From 4ac950ee531472098d7821e54f11ed9eb175aa80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=ED=95=B4=EC=A4=80?=
<127281057+ftery0@users.noreply.github.com>
Date: Fri, 20 Sep 2024 15:47:15 +0900
Subject: [PATCH 05/10] =?UTF-8?q?refactor=20::=20=EB=B6=88=ED=95=84?=
=?UTF-8?q?=EC=9A=94=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/hooks/auth/useLogin.ts | 8 --------
src/hooks/auth/useSignup.ts | 2 +-
src/hooks/auth/useTokenCheck.ts | 22 ----------------------
src/pages/homePage.tsx | 6 ++----
4 files changed, 3 insertions(+), 35 deletions(-)
delete mode 100644 src/hooks/auth/useTokenCheck.ts
diff --git a/src/hooks/auth/useLogin.ts b/src/hooks/auth/useLogin.ts
index 288c7c1..b1e8797 100644
--- a/src/hooks/auth/useLogin.ts
+++ b/src/hooks/auth/useLogin.ts
@@ -84,14 +84,6 @@ const useLogin = () => {
},
[loginData, navigate]
);
- // const handlePasswordView = () => {
- // setPasswordType(() => {
- // if (!passwordType.visible) {
- // return { type: "text", visible: true };
- // }
- // return { type: "password", visible: false };
- // });
- // };
return {
loginData,
diff --git a/src/hooks/auth/useSignup.ts b/src/hooks/auth/useSignup.ts
index 84af8f1..224f562 100644
--- a/src/hooks/auth/useSignup.ts
+++ b/src/hooks/auth/useSignup.ts
@@ -9,7 +9,7 @@ import { AxiosError } from "axios";
import usePasswordCheck from "@src/util/check/passwordCheck";
const useSignup = () => {
- const [section, setSection] = useState("first");
+const [section, setSection] = useState("first");
const {passwordType, handlePasswordView} =usePasswordCheck()
const [signupData, setSignupData] = useState({
diff --git a/src/hooks/auth/useTokenCheck.ts b/src/hooks/auth/useTokenCheck.ts
deleted file mode 100644
index 32a72f1..0000000
--- a/src/hooks/auth/useTokenCheck.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import {
- ACCESS_TOKEN_KEY,
- REFRESH_TOKEN_KEY,
-} from "@src/constants/token/token.constant";
-import token from "@src/lib/token/token";
-import { useEffect } from "react";
-import { useNavigate } from "react-router-dom";
-
-const useTokenCheck = () => {
- const navigate = useNavigate();
-
- useEffect(() => {
- if (
- token.getToken(ACCESS_TOKEN_KEY) === undefined ||
- token.getToken(REFRESH_TOKEN_KEY) === undefined
- ) {
- navigate("/sign");
- }
- }, []);
-};
-
-export default useTokenCheck;
diff --git a/src/pages/homePage.tsx b/src/pages/homePage.tsx
index 65d7b84..d4c62e7 100644
--- a/src/pages/homePage.tsx
+++ b/src/pages/homePage.tsx
@@ -1,12 +1,10 @@
import { useLogGA } from "@src/hooks/ga/useLogGA";
import PageTemplate from "../components/common/PageTemplate";
import Home from "../components/home";
-import useTokenCheck from "../hooks/auth/useTokenCheck";
-const HomePage = () => {
- useTokenCheck();
- const { handleGALogEvent } = useLogGA();
+const HomePage = () => {
+
return (
From a073cf14aad40ef8367244f2d761261a0e01f3d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=ED=95=B4=EC=A4=80?=
<127281057+ftery0@users.noreply.github.com>
Date: Mon, 23 Sep 2024 17:32:05 +0900
Subject: [PATCH 06/10] =?UTF-8?q?feat=20::=20=EC=A0=80=EB=85=81=20?=
=?UTF-8?q?=EA=B8=89=EC=8B=9D=20=EC=88=98=EC=9A=94=EC=A1=B0=EC=82=AC=20?=
=?UTF-8?q?=EA=B8=B0=EB=8A=A5=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/index.html | 1 +
src/components/common/Modal/index.tsx | 83 ++++++++++++++
src/components/common/Modal/type.ts | 11 ++
src/components/common/modalPortal/index.tsx | 7 ++
.../Apply/ApplyPass/ApplyPassForm/index.tsx | 12 ++
.../Apply/ApplyPass/ApplyPassModal/index.tsx | 108 ++++++++++++++++++
.../Apply/ApplyPass/ApplyPassModal/style.ts | 72 ++++++++++++
src/hooks/pass/useApplyPass.ts | 23 +++-
src/hooks/pass/useApplyPassModal.ts | 5 +
src/types/pass/pass.type.ts | 1 +
10 files changed, 321 insertions(+), 2 deletions(-)
create mode 100644 src/components/common/Modal/index.tsx
create mode 100644 src/components/common/Modal/type.ts
create mode 100644 src/components/common/modalPortal/index.tsx
create mode 100644 src/components/home/Apply/ApplyPass/ApplyPassModal/index.tsx
create mode 100644 src/components/home/Apply/ApplyPass/ApplyPassModal/style.ts
create mode 100644 src/hooks/pass/useApplyPassModal.ts
diff --git a/public/index.html b/public/index.html
index fcc95b2..e18af9b 100644
--- a/public/index.html
+++ b/public/index.html
@@ -11,5 +11,6 @@
+