From be021543f151fd16a37059bd3f95debf1366b0c1 Mon Sep 17 00:00:00 2001
From: minho
Date: Sat, 11 May 2024 14:31:52 +0900
Subject: [PATCH] =?UTF-8?q?feat:=20=ED=85=9C=ED=94=8C=EB=A6=BF=EC=BD=94?=
=?UTF-8?q?=EB=93=9C=20=EB=A6=AC=EC=95=A1=ED=8A=B8=20=EC=BF=BC=EB=A6=AC?=
=?UTF-8?q?=EC=A0=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.json | 5 +-
app/global.scss | 4 -
app/layout.jsx | 14 -
app/page.jsx | 65 -
app/signin/page.jsx | 9 -
app/signup/page.jsx | 3 -
package-lock.json | 330 +-
package.json | 2 +-
pages/_app.tsx | 6 +
pages/_document.tsx | 13 +
.../folder/[[...folderId]]/index.tsx | 43 +-
pages/index.tsx | 17 +
.../shared/[folderId]/index.tsx | 29 +-
pages/signin/index.tsx | 22 +
pages/signup/index.tsx | 22 +
public/images/eye-off.svg | 6 -
public/images/eye-on.svg | 6 -
public/images/google-oauth.png | Bin 0 -> 3875 bytes
public/images/google.png | Bin 801 -> 0 bytes
public/images/kakao-oauth.png | Bin 0 -> 2704 bytes
public/images/kakao.svg | 13 -
public/images/linkbrary.svg | 2 +-
src/auth/data-access-auth/index.ts | 3 +
.../useCheckEmailDuplicate.tsx | 23 +
src/auth/data-access-auth/useSignIn.tsx | 31 +
src/auth/data-access-auth/useSignUp.tsx | 31 +
src/auth/feature-oauth/Oauth.module.scss | 24 +
src/auth/feature-oauth/Oauth.tsx | 23 +
src/auth/feature-oauth/constant.ts | 12 +
src/auth/feature-oauth/index.ts | 1 +
.../SignInForm.module.scss | 23 +
src/auth/feature-sign-in-form/SignInForm.tsx | 76 +
src/auth/feature-sign-in-form/constant.ts | 12 +
src/auth/feature-sign-in-form/index.ts | 1 +
.../SignUpForm.module.scss | 23 +
src/auth/feature-sign-up-form/SignUpForm.tsx | 111 +
src/auth/feature-sign-up-form/constant.ts | 13 +
src/auth/feature-sign-up-form/index.ts | 1 +
src/auth/type.ts | 4 +
.../ui-oauth-badge/OauthBadge.module.scss | 4 +
src/auth/ui-oauth-badge/OauthBadge.tsx | 18 +
src/auth/ui-oauth-badge/index.ts | 1 +
.../ui-sign-header/SignHeader.module.scss | 30 +
src/auth/ui-sign-header/SignHeader.tsx | 33 +
src/auth/ui-sign-header/index.ts | 1 +
src/auth/util-use-token-redirect/index.ts | 1 +
.../useTokenRedirect.tsx | 23 +
src/folder/data-access-folder/constant.ts | 6 +
src/folder/data-access-folder/index.js | 3 +-
src/folder/data-access-folder/useGetFolder.ts | 25 +-
.../data-access-folder/useGetFolders.ts | 8 +-
.../data-access-folder/useGetSampleFolder.ts | 13 +
.../feature-folder-tool-bar/FolderToolBar.tsx | 28 +-
.../feature-folder-tool-bar/constant.js | 6 +-
src/folder/type.ts | 2 +-
src/folder/ui-folder-button/FolderButton.tsx | 11 +-
src/folder/ui-folder-item/FolderItem.tsx | 2 +-
src/folder/util-map/constant.ts | 2 +-
src/folder/util-map/index.js | 3 +-
src/folder/util-map/mapFoldersData.ts | 2 +-
...apFolderData.ts => mapSampleFolderData.ts} | 6 +-
src/link/data-access-link/index.js | 1 +
src/link/data-access-link/useGetLinks.ts | 34 +-
.../data-access-link/useGetSharedLinks.ts | 26 +
src/link/ui-editable-card/EditableCard.tsx | 4 +-
src/link/ui-link-form/LinkForm.tsx | 4 +-
src/link/ui-read-only-card/ReadOnlyCard.tsx | 1 -
src/link/ui-search-bar/SearchBar.tsx | 6 +-
src/link/ui-search-bar/constant.js | 2 +-
src/link/util-map/formatLinkRawData.ts | 19 +
src/link/util-map/index.js | 1 +
src/link/util-search-link/useSearchLink.ts | 1 -
src/page-layout/SignInLayout/SignInLayout.jsx | 126 -
.../SignInLayout/SigninLayout.module.css | 188 -
src/page-layout/SignInLayout/index.js | 1 -
.../SignLayout/SignLayout.module.scss | 26 +
src/page-layout/SignLayout/SignLayout.tsx | 23 +
src/page-layout/SignLayout/index.ts | 1 +
src/sharing/feature-layout/Layout.tsx | 7 +-
src/sharing/styles/colors.scss | 16 -
src/sharing/styles/global.scss | 3 -
src/sharing/styles/mixin.scss | 24 -
src/sharing/styles/reset.css | 40 -
src/sharing/styles/variables.scss | 4 -
src/sharing/ui-card-image/constant.js | 2 +-
src/sharing/ui-footer/Footer.tsx | 8 +-
src/sharing/ui-input/Input.tsx | 43 +-
.../ui-modal-content-box/ModalContentBox.tsx | 2 +-
src/sharing/ui-navigation-bar/constant.js | 2 +-
.../ui-password-input/PasswordInput.tsx | 74 +-
src/sharing/util/axiosInstance.js | 9 +
src/sharing/util/constant.js | 4 +-
src/sharing/util/index.js | 1 -
src/sharing/util/useAsync.ts | 24 +-
src/sign/SignHeader.jsx | 3 -
src/sign/signin/index.js | 0
src/user/data-access-user/constant.ts | 6 +
src/user/data-access-user/index.js | 1 +
.../data-access-user/useGetCurrentUser.ts | 30 +
src/user/data-access-user/useGetUser.ts | 21 +-
src/user/type.ts | 9 +-
tsconfig.json | 28 +-
yarn.lock | 3829 +++++++++++++++++
103 files changed, 5002 insertions(+), 903 deletions(-)
delete mode 100644 app/global.scss
delete mode 100644 app/layout.jsx
delete mode 100644 app/page.jsx
delete mode 100644 app/signin/page.jsx
delete mode 100644 app/signup/page.jsx
create mode 100644 pages/_app.tsx
create mode 100644 pages/_document.tsx
rename app/folder/page.tsx => pages/folder/[[...folderId]]/index.tsx (56%)
create mode 100644 pages/index.tsx
rename app/shared/page.tsx => pages/shared/[folderId]/index.tsx (53%)
create mode 100644 pages/signin/index.tsx
create mode 100644 pages/signup/index.tsx
delete mode 100644 public/images/eye-off.svg
delete mode 100644 public/images/eye-on.svg
create mode 100644 public/images/google-oauth.png
delete mode 100644 public/images/google.png
create mode 100644 public/images/kakao-oauth.png
delete mode 100644 public/images/kakao.svg
create mode 100644 src/auth/data-access-auth/index.ts
create mode 100644 src/auth/data-access-auth/useCheckEmailDuplicate.tsx
create mode 100644 src/auth/data-access-auth/useSignIn.tsx
create mode 100644 src/auth/data-access-auth/useSignUp.tsx
create mode 100644 src/auth/feature-oauth/Oauth.module.scss
create mode 100644 src/auth/feature-oauth/Oauth.tsx
create mode 100644 src/auth/feature-oauth/constant.ts
create mode 100644 src/auth/feature-oauth/index.ts
create mode 100644 src/auth/feature-sign-in-form/SignInForm.module.scss
create mode 100644 src/auth/feature-sign-in-form/SignInForm.tsx
create mode 100644 src/auth/feature-sign-in-form/constant.ts
create mode 100644 src/auth/feature-sign-in-form/index.ts
create mode 100644 src/auth/feature-sign-up-form/SignUpForm.module.scss
create mode 100644 src/auth/feature-sign-up-form/SignUpForm.tsx
create mode 100644 src/auth/feature-sign-up-form/constant.ts
create mode 100644 src/auth/feature-sign-up-form/index.ts
create mode 100644 src/auth/type.ts
create mode 100644 src/auth/ui-oauth-badge/OauthBadge.module.scss
create mode 100644 src/auth/ui-oauth-badge/OauthBadge.tsx
create mode 100644 src/auth/ui-oauth-badge/index.ts
create mode 100644 src/auth/ui-sign-header/SignHeader.module.scss
create mode 100644 src/auth/ui-sign-header/SignHeader.tsx
create mode 100644 src/auth/ui-sign-header/index.ts
create mode 100644 src/auth/util-use-token-redirect/index.ts
create mode 100644 src/auth/util-use-token-redirect/useTokenRedirect.tsx
create mode 100644 src/folder/data-access-folder/constant.ts
create mode 100644 src/folder/data-access-folder/useGetSampleFolder.ts
rename src/folder/util-map/{mapFolderData.ts => mapSampleFolderData.ts} (64%)
create mode 100644 src/link/data-access-link/useGetSharedLinks.ts
create mode 100644 src/link/util-map/formatLinkRawData.ts
delete mode 100644 src/page-layout/SignInLayout/SignInLayout.jsx
delete mode 100644 src/page-layout/SignInLayout/SigninLayout.module.css
delete mode 100644 src/page-layout/SignInLayout/index.js
create mode 100644 src/page-layout/SignLayout/SignLayout.module.scss
create mode 100644 src/page-layout/SignLayout/SignLayout.tsx
create mode 100644 src/page-layout/SignLayout/index.ts
delete mode 100644 src/sharing/styles/colors.scss
delete mode 100644 src/sharing/styles/global.scss
delete mode 100644 src/sharing/styles/mixin.scss
delete mode 100644 src/sharing/styles/reset.css
delete mode 100644 src/sharing/styles/variables.scss
delete mode 100644 src/sign/SignHeader.jsx
delete mode 100644 src/sign/signin/index.js
create mode 100644 src/user/data-access-user/constant.ts
create mode 100644 src/user/data-access-user/useGetCurrentUser.ts
create mode 100644 yarn.lock
diff --git a/.eslintrc.json b/.eslintrc.json
index bffb357a71..eb82587b1a 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,3 +1,6 @@
{
- "extends": "next/core-web-vitals"
+ "extends": "next/core-web-vitals",
+ "rules": {
+ "react/display-name": "off"
+ }
}
diff --git a/app/global.scss b/app/global.scss
deleted file mode 100644
index 21f683c07f..0000000000
--- a/app/global.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "../styles/colors.scss";
-@import "../styles/variables.scss";
-@import "../styles/mixin.scss";
-@import "../styles/reset.css";
diff --git a/app/layout.jsx b/app/layout.jsx
deleted file mode 100644
index 4cd57a80a0..0000000000
--- a/app/layout.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import Head from "next/head";
-import Image from "next/image";
-import { Inter } from "next/font/google";
-import "./global.scss";
-
-const inter = Inter({ subsets: ["latin"] });
-
-export default function Home({ children }) {
- return (
-
- {children}
-
- );
-}
diff --git a/app/page.jsx b/app/page.jsx
deleted file mode 100644
index d2a8d5f2f6..0000000000
--- a/app/page.jsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import Link from "next/link";
-export default function HomePage() {
- return (
- <>
-
-
- folder
-
-
-
-
- shared
-
-
-
-
- signin
-
-
-
- >
- );
-}
diff --git a/app/signin/page.jsx b/app/signin/page.jsx
deleted file mode 100644
index f1e4e6f3b9..0000000000
--- a/app/signin/page.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { SignInLayout } from "../../src/page-layout/SignInLayout/SignInLayout";
-
-export default function SignInPage() {
- return (
- <>
-
- >
- );
-}
diff --git a/app/signup/page.jsx b/app/signup/page.jsx
deleted file mode 100644
index 499f2b7c09..0000000000
--- a/app/signup/page.jsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function SignUp() {
- return <>>;
-}
diff --git a/package-lock.json b/package-lock.json
index e834a20c9d..ec9191b8a1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,7 @@
"next": "13.5.6",
"react": "^18",
"react-dom": "^18",
- "react-hook-form": "^7.51.2"
+ "react-hook-form": "^7.48.2"
},
"devDependencies": {
"@svgr/webpack": "^8.1.0",
@@ -72,21 +72,21 @@
}
},
"node_modules/@babel/core": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz",
- "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
+ "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.24.2",
- "@babel/generator": "^7.24.4",
+ "@babel/generator": "^7.24.5",
"@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.24.4",
- "@babel/parser": "^7.24.4",
+ "@babel/helper-module-transforms": "^7.24.5",
+ "@babel/helpers": "^7.24.5",
+ "@babel/parser": "^7.24.5",
"@babel/template": "^7.24.0",
- "@babel/traverse": "^7.24.1",
- "@babel/types": "^7.24.0",
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -123,12 +123,12 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz",
- "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
+ "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.24.0",
+ "@babel/types": "^7.24.5",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1"
@@ -202,19 +202,19 @@
"dev": true
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz",
- "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz",
+ "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
- "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.24.5",
"@babel/helper-optimise-call-expression": "^7.22.5",
"@babel/helper-replace-supers": "^7.24.1",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-split-export-declaration": "^7.24.5",
"semver": "^6.3.1"
},
"engines": {
@@ -260,9 +260,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz",
- "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
+ "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
"dev": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.22.6",
@@ -310,12 +310,12 @@
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
- "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz",
+ "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.23.0"
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -334,16 +334,16 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
- "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
+ "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.20"
+ "@babel/helper-module-imports": "^7.24.3",
+ "@babel/helper-simple-access": "^7.24.5",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -365,9 +365,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz",
- "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -408,12 +408,12 @@
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
+ "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -432,12 +432,12 @@
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
+ "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -453,9 +453,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+ "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -471,40 +471,40 @@
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
- "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz",
+ "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==",
"dev": true,
"dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.22.19"
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/template": "^7.24.0",
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz",
- "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
+ "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
"dev": true,
"dependencies": {
"@babel/template": "^7.24.0",
- "@babel/traverse": "^7.24.1",
- "@babel/types": "^7.24.0"
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.2",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
- "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+ "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-validator-identifier": "^7.24.5",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -585,9 +585,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
- "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
+ "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -597,13 +597,13 @@
}
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz",
- "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz",
+ "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1003,12 +1003,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz",
- "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz",
+ "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1051,18 +1051,18 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz",
- "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz",
+ "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/helper-replace-supers": "^7.24.1",
- "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-split-export-declaration": "^7.24.5",
"globals": "^11.1.0"
},
"engines": {
@@ -1098,12 +1098,12 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz",
- "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz",
+ "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1417,15 +1417,15 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz",
- "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz",
+ "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==",
"dev": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.24.1"
+ "@babel/plugin-transform-parameters": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1467,12 +1467,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz",
- "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz",
+ "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
@@ -1484,12 +1484,12 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz",
- "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz",
+ "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1515,14 +1515,14 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz",
- "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz",
+ "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.24.1",
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-create-class-features-plugin": "^7.24.5",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -1720,12 +1720,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz",
- "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz",
+ "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1735,14 +1735,14 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz",
- "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz",
+ "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.24.4",
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-create-class-features-plugin": "^7.24.5",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/plugin-syntax-typescript": "^7.24.1"
},
"engines": {
@@ -1816,16 +1816,16 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz",
- "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz",
+ "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.24.4",
"@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-plugin-utils": "^7.24.5",
"@babel/helper-validator-option": "^7.23.5",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1",
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1",
@@ -1852,12 +1852,12 @@
"@babel/plugin-transform-async-generator-functions": "^7.24.3",
"@babel/plugin-transform-async-to-generator": "^7.24.1",
"@babel/plugin-transform-block-scoped-functions": "^7.24.1",
- "@babel/plugin-transform-block-scoping": "^7.24.4",
+ "@babel/plugin-transform-block-scoping": "^7.24.5",
"@babel/plugin-transform-class-properties": "^7.24.1",
"@babel/plugin-transform-class-static-block": "^7.24.4",
- "@babel/plugin-transform-classes": "^7.24.1",
+ "@babel/plugin-transform-classes": "^7.24.5",
"@babel/plugin-transform-computed-properties": "^7.24.1",
- "@babel/plugin-transform-destructuring": "^7.24.1",
+ "@babel/plugin-transform-destructuring": "^7.24.5",
"@babel/plugin-transform-dotall-regex": "^7.24.1",
"@babel/plugin-transform-duplicate-keys": "^7.24.1",
"@babel/plugin-transform-dynamic-import": "^7.24.1",
@@ -1877,13 +1877,13 @@
"@babel/plugin-transform-new-target": "^7.24.1",
"@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1",
"@babel/plugin-transform-numeric-separator": "^7.24.1",
- "@babel/plugin-transform-object-rest-spread": "^7.24.1",
+ "@babel/plugin-transform-object-rest-spread": "^7.24.5",
"@babel/plugin-transform-object-super": "^7.24.1",
"@babel/plugin-transform-optional-catch-binding": "^7.24.1",
- "@babel/plugin-transform-optional-chaining": "^7.24.1",
- "@babel/plugin-transform-parameters": "^7.24.1",
+ "@babel/plugin-transform-optional-chaining": "^7.24.5",
+ "@babel/plugin-transform-parameters": "^7.24.5",
"@babel/plugin-transform-private-methods": "^7.24.1",
- "@babel/plugin-transform-private-property-in-object": "^7.24.1",
+ "@babel/plugin-transform-private-property-in-object": "^7.24.5",
"@babel/plugin-transform-property-literals": "^7.24.1",
"@babel/plugin-transform-regenerator": "^7.24.1",
"@babel/plugin-transform-reserved-words": "^7.24.1",
@@ -1891,7 +1891,7 @@
"@babel/plugin-transform-spread": "^7.24.1",
"@babel/plugin-transform-sticky-regex": "^7.24.1",
"@babel/plugin-transform-template-literals": "^7.24.1",
- "@babel/plugin-transform-typeof-symbol": "^7.24.1",
+ "@babel/plugin-transform-typeof-symbol": "^7.24.5",
"@babel/plugin-transform-unicode-escapes": "^7.24.1",
"@babel/plugin-transform-unicode-property-regex": "^7.24.1",
"@babel/plugin-transform-unicode-regex": "^7.24.1",
@@ -2004,19 +2004,19 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz",
- "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
+ "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.24.1",
- "@babel/generator": "^7.24.1",
+ "@babel/code-frame": "^7.24.2",
+ "@babel/generator": "^7.24.5",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.24.1",
- "@babel/types": "^7.24.0",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/parser": "^7.24.5",
+ "@babel/types": "^7.24.5",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -2034,13 +2034,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.24.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
- "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.23.4",
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-string-parser": "^7.24.1",
+ "@babel/helper-validator-identifier": "^7.24.5",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -3083,13 +3083,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz",
- "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==",
+ "version": "0.4.11",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
+ "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.6.1",
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -3119,12 +3119,12 @@
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz",
- "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
+ "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
"dev": true,
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.1"
+ "@babel/helper-define-polyfill-provider": "^0.6.2"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -3255,9 +3255,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001606",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001606.tgz",
- "integrity": "sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==",
+ "version": "1.0.30001617",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz",
+ "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==",
"funding": [
{
"type": "opencollective",
@@ -3386,9 +3386,9 @@
"dev": true
},
"node_modules/core-js-compat": {
- "version": "3.36.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz",
- "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==",
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
"dev": true,
"dependencies": {
"browserslist": "^4.23.0"
@@ -3709,9 +3709,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.729",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.729.tgz",
- "integrity": "sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==",
+ "version": "1.4.763",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.763.tgz",
+ "integrity": "sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -5914,9 +5914,9 @@
}
},
"node_modules/react-hook-form": {
- "version": "7.51.2",
- "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.2.tgz",
- "integrity": "sha512-y++lwaWjtzDt/XNnyGDQy6goHskFualmDlf+jzEZvjvz6KWDf7EboL7pUvRCzPTJd0EOPpdekYaQLEvvG6m6HA==",
+ "version": "7.51.4",
+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.4.tgz",
+ "integrity": "sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==",
"engines": {
"node": ">=12.22.0"
},
@@ -6169,9 +6169,9 @@
}
},
"node_modules/sass": {
- "version": "1.74.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz",
- "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==",
+ "version": "1.77.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.1.tgz",
+ "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==",
"devOptional": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -6458,9 +6458,9 @@
"dev": true
},
"node_modules/svgo": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz",
- "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==",
+ "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": {
"@trysound/sax": "0.2.0",
@@ -6711,9 +6711,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz",
+ "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==",
"dev": true,
"funding": [
{
@@ -6730,7 +6730,7 @@
}
],
"dependencies": {
- "escalade": "^3.1.1",
+ "escalade": "^3.1.2",
"picocolors": "^1.0.0"
},
"bin": {
diff --git a/package.json b/package.json
index 3713ba28cb..8ef921f696 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"next": "13.5.6",
"react": "^18",
"react-dom": "^18",
- "react-hook-form": "^7.51.2"
+ "react-hook-form": "^7.48.2"
},
"devDependencies": {
"@svgr/webpack": "^8.1.0",
diff --git a/pages/_app.tsx b/pages/_app.tsx
new file mode 100644
index 0000000000..8e301a9e83
--- /dev/null
+++ b/pages/_app.tsx
@@ -0,0 +1,6 @@
+import "@/styles/reset.css";
+import type { AppProps } from "next/app";
+
+export default function App({ Component, pageProps }: AppProps) {
+ return ;
+}
diff --git a/pages/_document.tsx b/pages/_document.tsx
new file mode 100644
index 0000000000..54e8bf3e2a
--- /dev/null
+++ b/pages/_document.tsx
@@ -0,0 +1,13 @@
+import { Html, Head, Main, NextScript } from 'next/document'
+
+export default function Document() {
+ return (
+
+
+
+
+
+
+
+ )
+}
diff --git a/app/folder/page.tsx b/pages/folder/[[...folderId]]/index.tsx
similarity index 56%
rename from app/folder/page.tsx
rename to pages/folder/[[...folderId]]/index.tsx
index 3b2e4b64f1..797f39091e 100644
--- a/app/folder/page.tsx
+++ b/pages/folder/[[...folderId]]/index.tsx
@@ -1,45 +1,46 @@
-"use client";
import { useGetFolders } from "@/src/folder/data-access-folder";
import { useGetLinks } from "@/src/link/data-access-link";
import { Layout } from "@/src/sharing/feature-layout";
import { FolderLayout } from "@/src/page-layout/FolderLayout";
import { FolderToolBar } from "@/src/folder/feature-folder-tool-bar";
import { SearchBar } from "@/src/link/ui-search-bar";
-import { useState } from "react";
import { ALL_LINKS_ID } from "@/src/link/data-access-link/constant";
import { LinkForm } from "@/src/link/feature-link-form";
import { CardList } from "@/src/link/feature-card-list";
-import { SelectedFolderId } from "@/src/folder/type";
import { useSearchLink } from "@/src/link/util-search-link";
-import { useIntersectionObserver } from "@/src/sharing/util";
+import { ROUTE, useIntersectionObserver } from "@/src/sharing/util";
+import { useRouter } from "next/router";
+import { useEffect, useMemo } from "react";
const FolderPage = () => {
+ const router = useRouter();
+ const { folderId } = router.query;
+ const currentFolderId = useMemo(() => {
+ if (router.isReady) {
+ return folderId?.[0] ? parseInt(folderId?.[0]) : ALL_LINKS_ID;
+ }
+ return undefined;
+ }, [router.isReady, folderId]);
const { data: folders } = useGetFolders();
- const [selectedFolderId, setSelectedFolderId] =
- useState(ALL_LINKS_ID);
- const { data: links, loading } = useGetLinks(selectedFolderId);
- const { searchValue, handleChange, handleCloseClick, result } =
- useSearchLink(links);
+ const { data: links, loading } = useGetLinks(currentFolderId);
+ const { searchValue, handleChange, handleCloseClick, result } = useSearchLink(links);
const { ref, isIntersecting } = useIntersectionObserver();
+ useEffect(() => {
+ const accessToken = localStorage.getItem("accessToken");
+ if (!accessToken) {
+ router.replace(ROUTE.로그인);
+ }
+ }, [router]);
+
return (
}
searchBar={
-
- }
- folderToolBar={
-
+
}
+ folderToolBar={}
cardList={loading ? null : }
/>
diff --git a/pages/index.tsx b/pages/index.tsx
new file mode 100644
index 0000000000..fade5a4047
--- /dev/null
+++ b/pages/index.tsx
@@ -0,0 +1,17 @@
+import Head from "next/head";
+import Image from "next/image";
+import { Inter } from "next/font/google";
+import styles from "@/styles/Home.module.css";
+
+const inter = Inter({ subsets: ["latin"] });
+
+export default function Home() {
+ return (
+ <>
+
+ Linkbrary
+
+
+ >
+ );
+}
diff --git a/app/shared/page.tsx b/pages/shared/[folderId]/index.tsx
similarity index 53%
rename from app/shared/page.tsx
rename to pages/shared/[folderId]/index.tsx
index ad53f774fb..29af373f16 100644
--- a/app/shared/page.tsx
+++ b/pages/shared/[folderId]/index.tsx
@@ -1,5 +1,4 @@
-"use client";
-import { useGetFolder } from "@/src/folder/data-access-folder";
+import { useGetFolder, useGetSampleFolder } from "@/src/folder/data-access-folder";
import { Layout } from "@/src/sharing/feature-layout";
import { SharedLayout } from "@/src/page-layout/SharedLayout";
import { CardList } from "@/src/link/ui-card-list";
@@ -7,29 +6,31 @@ import { FolderInfo } from "@/src/folder/ui-folder-info";
import { ReadOnlyCard } from "@/src/link/ui-read-only-card";
import { SearchBar } from "@/src/link/ui-search-bar";
import { useSearchLink } from "@/src/link/util-search-link/useSearchLink";
+import { useRouter } from "next/router";
+import { useGetUser } from "@/src/user/data-access-user/useGetUser";
+import { useGetSharedLinks } from "@/src/link/data-access-link";
const SharedPage = () => {
- const { data } = useGetFolder();
- const { profileImage, ownerName, folderName, links } = data || {};
- const { searchValue, handleChange, handleCloseClick, result } =
- useSearchLink(links);
+ const router = useRouter();
+ const { folderId } = router.query;
+ const { data: folder } = useGetFolder(folderId as string);
+ const { data: owner } = useGetUser(folder.userId);
+ const { data: links } = useGetSharedLinks(folder.userId, folderId as string);
+
+ const { searchValue, handleChange, handleCloseClick, result } = useSearchLink(links);
return (
}
searchBar={
-
+
}
cardList={
diff --git a/pages/signin/index.tsx b/pages/signin/index.tsx
new file mode 100644
index 0000000000..0ad430d3d1
--- /dev/null
+++ b/pages/signin/index.tsx
@@ -0,0 +1,22 @@
+import { SignInForm } from "@/src/auth/feature-sign-in-form";
+import { Oauth } from "@/src/auth/feature-oauth";
+import { SignHeader } from "@/src/auth/ui-sign-header";
+import { SignLayout } from "@/src/page-layout/SignLayout";
+import { ROUTE } from "@/src/sharing/util";
+
+const SignInPage = () => {
+ return (
+
+ }
+ form={}
+ oauth={}
+ />
+ );
+};
+
+export default SignInPage;
diff --git a/pages/signup/index.tsx b/pages/signup/index.tsx
new file mode 100644
index 0000000000..6351db6fbe
--- /dev/null
+++ b/pages/signup/index.tsx
@@ -0,0 +1,22 @@
+import { Oauth } from "@/src/auth/feature-oauth";
+import { SignHeader } from "@/src/auth/ui-sign-header";
+import { SignLayout } from "@/src/page-layout/SignLayout";
+import { ROUTE } from "@/src/sharing/util";
+import { SignUpForm } from "@/src/auth/feature-sign-up-form";
+
+const SignUpPage = () => {
+ return (
+
+ }
+ form={}
+ oauth={}
+ />
+ );
+};
+
+export default SignUpPage;
diff --git a/public/images/eye-off.svg b/public/images/eye-off.svg
deleted file mode 100644
index bec50d66f7..0000000000
--- a/public/images/eye-off.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/public/images/eye-on.svg b/public/images/eye-on.svg
deleted file mode 100644
index 61afee8981..0000000000
--- a/public/images/eye-on.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/public/images/google-oauth.png b/public/images/google-oauth.png
new file mode 100644
index 0000000000000000000000000000000000000000..c59796fbc3ab1388d53c5c7cdf37d8787952e202
GIT binary patch
literal 3875
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
literal 0
HcmV?d00001
diff --git a/public/images/google.png b/public/images/google.png
deleted file mode 100644
index 0c4b3886c75c6fc3e381599904d9c6ec7403989c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 801
zcmV++1K#|JP)$)B!*ZQ3GWcqH`FqP151HI>&;yU}C?eeH0-wP5~+*
zw=OU9yIt*EzL}Gl_I8%9g`~%<*A2ztM2*Yi&`$8$fj<|}MHE@9UoJV)=W(Lr
zJ9gO0Nc%P|1bPDz5KvjbSgrqU&|whRTefLPCo*oRHgwit{&lBmo`~B_2?P5^p9!G;
zI+w?jY2jC)wQ7(1%}>Y{iP}V*x?#GmzZZUCBGN}=GzvwL8tU9DUMLYb&OV4MBCzw!
zCu}(KLzQdW3Td1ZKyvB`Xfp&;L1&TY(w&c93%-YZApCXL)$MkkI?HNhh@_+)|3_ZP
zw1%CG{g79x(#2Xk212<_MkDB8+&eOZ41HOtxzfue2Egrhl`2%`{5=y
zAL#7Ov_>}k-Iso|WS-ah5Fqbj{0x$d9}5!w67N1q?F8R=U63ltE5TAD%u|Ok1|t+Dn)IS
zV!K!odTsL6qIJF4!ePD#OQs7uzK>R7`M(&-ljhmW#t$jPG4j*Tp@<@cS%e1v2usgK
zmR!i{zEYN~8!4&QFxdEvC|on^=FeAEAr}V8_=?HnrsglUUV@ZJGobC^sd081hM9S9
zPGSTireO69Jh_!_%ld0NI6YwIv1DNzoMV-)3js>_syV;N&VfS-%Tp^uGa_sS2cGuT
fv`qKb7wZ2H{5b)Dkg(L500000NkvXXu0mjfvEgfi
diff --git a/public/images/kakao-oauth.png b/public/images/kakao-oauth.png
new file mode 100644
index 0000000000000000000000000000000000000000..94f7e7518649ed97feece7808b89287485bea0c8
GIT binary patch
literal 2704
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
KMNUMnLSTZ_b|
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/images/linkbrary.svg b/public/images/linkbrary.svg
index 2820220902..97359ef331 100644
--- a/public/images/linkbrary.svg
+++ b/public/images/linkbrary.svg
@@ -1,4 +1,4 @@
-