diff --git a/.husky/_/.gitignore b/.husky/_/.gitignore deleted file mode 100644 index f59ec20a..00000000 --- a/.husky/_/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/.husky/_/applypatch-msg b/.husky/_/applypatch-msg deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/applypatch-msg +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/commit-msg b/.husky/_/commit-msg deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/commit-msg +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/h b/.husky/_/h deleted file mode 100644 index bf7c8964..00000000 --- a/.husky/_/h +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env sh -[ "$HUSKY" = "2" ] && set -x -n=$(basename "$0") -s=$(dirname "$(dirname "$0")")/$n - -[ ! -f "$s" ] && exit 0 - -if [ -f "$HOME/.huskyrc" ]; then - echo "husky - '~/.huskyrc' is DEPRECATED, please move your code to ~/.config/husky/init.sh" -fi -i="${XDG_CONFIG_HOME:-$HOME/.config}/husky/init.sh" -[ -f "$i" ] && . "$i" - -[ "${HUSKY-}" = "0" ] && exit 0 - -export PATH="node_modules/.bin:$PATH" -sh -e "$s" "$@" -c=$? - -[ $c != 0 ] && echo "husky - $n script failed (code $c)" -[ $c = 127 ] && echo "husky - command not found in PATH=$PATH" -exit $c diff --git a/.husky/_/husky.sh b/.husky/_/husky.sh deleted file mode 100644 index f9d06379..00000000 --- a/.husky/_/husky.sh +++ /dev/null @@ -1,9 +0,0 @@ -echo "husky - DEPRECATED - -Please remove the following two lines from $0: - -#!/usr/bin/env sh -. \"\$(dirname -- \"\$0\")/_/husky.sh\" - -They WILL FAIL in v10.0.0 -" \ No newline at end of file diff --git a/.husky/_/post-applypatch b/.husky/_/post-applypatch deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/post-applypatch +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/post-checkout b/.husky/_/post-checkout deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/post-checkout +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/post-commit b/.husky/_/post-commit deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/post-commit +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/post-merge b/.husky/_/post-merge deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/post-merge +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/post-rewrite b/.husky/_/post-rewrite deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/post-rewrite +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-applypatch b/.husky/_/pre-applypatch deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-applypatch +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-auto-gc b/.husky/_/pre-auto-gc deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-auto-gc +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-commit b/.husky/_/pre-commit deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-commit +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-merge-commit b/.husky/_/pre-merge-commit deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-merge-commit +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-push b/.husky/_/pre-push deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-push +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/pre-rebase b/.husky/_/pre-rebase deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/pre-rebase +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/_/prepare-commit-msg b/.husky/_/prepare-commit-msg deleted file mode 100755 index 16aae78f..00000000 --- a/.husky/_/prepare-commit-msg +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/h" \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100644 index 34f2fb24..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,17 +0,0 @@ -echo "๐Ÿ” commit ์ด์ „์— lint ๊ทœ์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค..." -if pnpm lint-staged; then - echo "โœ… ๋ชจ๋“  lint ๊ทœ์น™์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - exit 0 -else - echo "โŒ lint ๊ทœ์น™ ๊ฒ€์‚ฌ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค." - exit 1 -fi - -echo "๐Ÿ” commit ์ด์ „์— test๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค..." -if pnpm test; then - echo "โœ… ๋ชจ๋“  Test๋ฅผ ํ†ต๊ณผํ•˜์…จ์Šต๋‹ˆ๋‹ค." - exit 0 -else - echo "โŒ Test๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค." - exit 1 -fi \ No newline at end of file diff --git a/BackEnd/src/hello.js b/BackEnd/src/hello.js deleted file mode 100644 index 2a27d369..00000000 --- a/BackEnd/src/hello.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @param {void} - * @return {number} - * @description - * This function logs 'hello' to the console and returns 1 - * @example - * hello(); // 1 - */ -const hello = () => { - console.log('hello'); - - return 1; -}; diff --git a/BackEnd/package.json b/backend/package.json similarity index 64% rename from BackEnd/package.json rename to backend/package.json index 1b647fca..d48b18cf 100644 --- a/BackEnd/package.json +++ b/backend/package.json @@ -1,6 +1,12 @@ { - "name": "@web28-ddara/backend", + "name": "ddara-backend", + "private": true, + "workspaces": [ + "frontend", + "backend" + ], "version": "0.0.0", + "type": "module", "description": "๋”ฐ๋ผ๋”ฐ๋ผ์˜ ์„ ๋”ฐ๋ผ๊ธธ๋”ฐ๋ผ BackEnd ์ฝ”๋“œ", "main": "index.js", "scripts": { @@ -12,5 +18,8 @@ }, "keywords": [], "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": { + "express": "^4.21.1" + } } diff --git a/backend/src/index.js b/backend/src/index.js new file mode 100644 index 00000000..9b77d4fa --- /dev/null +++ b/backend/src/index.js @@ -0,0 +1,12 @@ +const express = require('express'); + +const app = express(); +const port = process.env.PORT || 3000; + +app.get('/', (req, res) => { + res.json({ + success: true, + }); +}); + +app.listen(port, () => {}); diff --git a/eslint.config.mjs b/eslint.config.mjs index a7b89d2c..6569cfeb 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,19 +1,19 @@ // Airbnb ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ESLint ์„ค์ •์„ ESM(ECMAScript Module) ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. -import { FlatCompat } from '@eslint/eslintrc'; -import airbnbBase from 'eslint-config-airbnb-base'; -import airbnbReact from 'eslint-config-airbnb'; -import importPlugin from 'eslint-plugin-import'; -import reactPlugin from 'eslint-plugin-react'; -import jsxA11yPlugin from 'eslint-plugin-jsx-a11y'; -import prettierPlugin from 'eslint-plugin-prettier'; -import prettierConfig from 'eslint-config-prettier'; +import { FlatCompat } from "@eslint/eslintrc"; +import airbnbBase from "eslint-config-airbnb-base"; +import airbnbReact from "eslint-config-airbnb"; +import importPlugin from "eslint-plugin-import"; +import reactPlugin from "eslint-plugin-react"; +import jsxA11yPlugin from "eslint-plugin-jsx-a11y"; +import prettierPlugin from "eslint-plugin-prettier"; +import prettierConfig from "eslint-config-prettier"; // eslint-disable-next-line import/no-unresolved -import typescriptPlugin from '@typescript-eslint/eslint-plugin'; +import typescriptPlugin from "@typescript-eslint/eslint-plugin"; // eslint-disable-next-line import/no-unresolved -import typescriptParser from '@typescript-eslint/parser'; -import storybook from 'eslint-plugin-storybook'; -import path from 'path'; -import { fileURLToPath } from 'url'; +import typescriptParser from "@typescript-eslint/parser"; +import storybook from "eslint-plugin-storybook"; +import path from "path"; +import { fileURLToPath } from "url"; // eslint-disable-next-line no-underscore-dangle const __dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -40,14 +40,16 @@ export default [ 'public/', // public ํด๋” ์ œ์™ธ '**/*.min.js', // ๋ชจ๋“  .min.js ํŒŒ์ผ ์ œ์™ธ path.join(__dirname, 'eslint.config.mjs'), // ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๋ฌด์‹œ - path.join(__dirname, 'FrontEnd', 'vite.config.ts'), // ์ถ”๊ฐ€๋กœ ๋ฌด์‹œํ•  ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋™์ผํ•˜๊ฒŒ ์ถ”๊ฐ€ + path.join(__dirname, 'frontend', 'vite.config.ts'), // ์ถ”๊ฐ€๋กœ ๋ฌด์‹œํ•  ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋™์ผํ•˜๊ฒŒ ์ถ”๊ฐ€ ], plugins: { import: importPlugin, prettier: prettierPlugin, }, rules: { - 'import/no-extraneous-dependencies': 'error', + 'import/no-extraneous-dependencies': ['error', { + "packageDir": ["./", "./backend", "./frontend"] + }], 'import/prefer-default-export': 'off', 'import/no-default-export': 'warn', 'prettier/prettier': 'error', @@ -73,18 +75,18 @@ export default [ }, }, - // 2. BackEnd ์„ค์ • - JavaScript ์ „์šฉ ๊ทœ์น™ ์ ์šฉ + // 2. backend ์„ค์ • - JavaScript ์ „์šฉ ๊ทœ์น™ ์ ์šฉ { - files: ['BackEnd/**/*.js'], + files: ['backend/**/*.js'], languageOptions: { ecmaVersion: 'latest', sourceType: 'module', }, }, - // 3. FrontEnd ์„ค์ • - React ๋ฐ TypeScript ์ „์šฉ ๊ทœ์น™ ์ ์šฉ + // 3. frontend ์„ค์ • - React ๋ฐ TypeScript ์ „์šฉ ๊ทœ์น™ ์ ์šฉ { - files: ['FrontEnd/**/*.ts', 'FrontEnd/**/*.tsx'], + files: ['frontend/**/*.ts', 'frontend/**/*.tsx'], languageOptions: { parser: typescriptParser, ecmaVersion: 'latest', diff --git a/FrontEnd/.gitignore b/frontend/.gitignore similarity index 100% rename from FrontEnd/.gitignore rename to frontend/.gitignore diff --git a/FrontEnd/.storybook/main.ts b/frontend/.storybook/main.ts similarity index 100% rename from FrontEnd/.storybook/main.ts rename to frontend/.storybook/main.ts diff --git a/FrontEnd/.storybook/preview.ts b/frontend/.storybook/preview.ts similarity index 100% rename from FrontEnd/.storybook/preview.ts rename to frontend/.storybook/preview.ts diff --git a/FrontEnd/index.html b/frontend/index.html similarity index 100% rename from FrontEnd/index.html rename to frontend/index.html diff --git a/FrontEnd/package.json b/frontend/package.json similarity index 98% rename from FrontEnd/package.json rename to frontend/package.json index 4d0170ad..0231444f 100644 --- a/FrontEnd/package.json +++ b/frontend/package.json @@ -2,8 +2,8 @@ "name": "ddara-frontend", "private": true, "workspaces": [ - "FrontEnd", - "BackEnd" + "frontend", + "backend" ], "version": "0.0.0", "type": "module", diff --git a/FrontEnd/postcss.config.js b/frontend/postcss.config.js similarity index 96% rename from FrontEnd/postcss.config.js rename to frontend/postcss.config.js index 2e7af2b7..2aa7205d 100644 --- a/FrontEnd/postcss.config.js +++ b/frontend/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/FrontEnd/public/vite.svg b/frontend/public/vite.svg similarity index 100% rename from FrontEnd/public/vite.svg rename to frontend/public/vite.svg diff --git a/FrontEnd/src/App.css b/frontend/src/App.css similarity index 100% rename from FrontEnd/src/App.css rename to frontend/src/App.css diff --git a/FrontEnd/src/App.tsx b/frontend/src/App.tsx similarity index 100% rename from FrontEnd/src/App.tsx rename to frontend/src/App.tsx diff --git a/FrontEnd/src/assets/react.svg b/frontend/src/assets/react.svg similarity index 100% rename from FrontEnd/src/assets/react.svg rename to frontend/src/assets/react.svg diff --git a/FrontEnd/src/index.css b/frontend/src/index.css similarity index 100% rename from FrontEnd/src/index.css rename to frontend/src/index.css diff --git a/FrontEnd/src/main.tsx b/frontend/src/main.tsx similarity index 100% rename from FrontEnd/src/main.tsx rename to frontend/src/main.tsx diff --git a/FrontEnd/src/stories/Button.stories.ts b/frontend/src/stories/Button.stories.ts similarity index 100% rename from FrontEnd/src/stories/Button.stories.ts rename to frontend/src/stories/Button.stories.ts diff --git a/FrontEnd/src/stories/Button.tsx b/frontend/src/stories/Button.tsx similarity index 100% rename from FrontEnd/src/stories/Button.tsx rename to frontend/src/stories/Button.tsx diff --git a/FrontEnd/src/stories/Configure.mdx b/frontend/src/stories/Configure.mdx similarity index 100% rename from FrontEnd/src/stories/Configure.mdx rename to frontend/src/stories/Configure.mdx diff --git a/FrontEnd/src/stories/Header.stories.ts b/frontend/src/stories/Header.stories.ts similarity index 100% rename from FrontEnd/src/stories/Header.stories.ts rename to frontend/src/stories/Header.stories.ts diff --git a/FrontEnd/src/stories/Header.tsx b/frontend/src/stories/Header.tsx similarity index 100% rename from FrontEnd/src/stories/Header.tsx rename to frontend/src/stories/Header.tsx diff --git a/FrontEnd/src/stories/Page.stories.ts b/frontend/src/stories/Page.stories.ts similarity index 100% rename from FrontEnd/src/stories/Page.stories.ts rename to frontend/src/stories/Page.stories.ts diff --git a/FrontEnd/src/stories/Page.tsx b/frontend/src/stories/Page.tsx similarity index 100% rename from FrontEnd/src/stories/Page.tsx rename to frontend/src/stories/Page.tsx diff --git a/FrontEnd/src/stories/assets/accessibility.png b/frontend/src/stories/assets/accessibility.png similarity index 100% rename from FrontEnd/src/stories/assets/accessibility.png rename to frontend/src/stories/assets/accessibility.png diff --git a/FrontEnd/src/stories/assets/accessibility.svg b/frontend/src/stories/assets/accessibility.svg similarity index 100% rename from FrontEnd/src/stories/assets/accessibility.svg rename to frontend/src/stories/assets/accessibility.svg diff --git a/FrontEnd/src/stories/assets/addon-library.png b/frontend/src/stories/assets/addon-library.png similarity index 100% rename from FrontEnd/src/stories/assets/addon-library.png rename to frontend/src/stories/assets/addon-library.png diff --git a/FrontEnd/src/stories/assets/assets.png b/frontend/src/stories/assets/assets.png similarity index 100% rename from FrontEnd/src/stories/assets/assets.png rename to frontend/src/stories/assets/assets.png diff --git a/FrontEnd/src/stories/assets/avif-test-image.avif b/frontend/src/stories/assets/avif-test-image.avif similarity index 100% rename from FrontEnd/src/stories/assets/avif-test-image.avif rename to frontend/src/stories/assets/avif-test-image.avif diff --git a/FrontEnd/src/stories/assets/context.png b/frontend/src/stories/assets/context.png similarity index 100% rename from FrontEnd/src/stories/assets/context.png rename to frontend/src/stories/assets/context.png diff --git a/FrontEnd/src/stories/assets/discord.svg b/frontend/src/stories/assets/discord.svg similarity index 100% rename from FrontEnd/src/stories/assets/discord.svg rename to frontend/src/stories/assets/discord.svg diff --git a/FrontEnd/src/stories/assets/docs.png b/frontend/src/stories/assets/docs.png similarity index 100% rename from FrontEnd/src/stories/assets/docs.png rename to frontend/src/stories/assets/docs.png diff --git a/FrontEnd/src/stories/assets/figma-plugin.png b/frontend/src/stories/assets/figma-plugin.png similarity index 100% rename from FrontEnd/src/stories/assets/figma-plugin.png rename to frontend/src/stories/assets/figma-plugin.png diff --git a/FrontEnd/src/stories/assets/github.svg b/frontend/src/stories/assets/github.svg similarity index 100% rename from FrontEnd/src/stories/assets/github.svg rename to frontend/src/stories/assets/github.svg diff --git a/FrontEnd/src/stories/assets/share.png b/frontend/src/stories/assets/share.png similarity index 100% rename from FrontEnd/src/stories/assets/share.png rename to frontend/src/stories/assets/share.png diff --git a/FrontEnd/src/stories/assets/styling.png b/frontend/src/stories/assets/styling.png similarity index 100% rename from FrontEnd/src/stories/assets/styling.png rename to frontend/src/stories/assets/styling.png diff --git a/FrontEnd/src/stories/assets/testing.png b/frontend/src/stories/assets/testing.png similarity index 100% rename from FrontEnd/src/stories/assets/testing.png rename to frontend/src/stories/assets/testing.png diff --git a/FrontEnd/src/stories/assets/theming.png b/frontend/src/stories/assets/theming.png similarity index 100% rename from FrontEnd/src/stories/assets/theming.png rename to frontend/src/stories/assets/theming.png diff --git a/FrontEnd/src/stories/assets/tutorials.svg b/frontend/src/stories/assets/tutorials.svg similarity index 100% rename from FrontEnd/src/stories/assets/tutorials.svg rename to frontend/src/stories/assets/tutorials.svg diff --git a/FrontEnd/src/stories/assets/youtube.svg b/frontend/src/stories/assets/youtube.svg similarity index 100% rename from FrontEnd/src/stories/assets/youtube.svg rename to frontend/src/stories/assets/youtube.svg diff --git a/FrontEnd/src/stories/button.css b/frontend/src/stories/button.css similarity index 100% rename from FrontEnd/src/stories/button.css rename to frontend/src/stories/button.css diff --git a/FrontEnd/src/stories/header.css b/frontend/src/stories/header.css similarity index 100% rename from FrontEnd/src/stories/header.css rename to frontend/src/stories/header.css diff --git a/FrontEnd/src/stories/page.css b/frontend/src/stories/page.css similarity index 100% rename from FrontEnd/src/stories/page.css rename to frontend/src/stories/page.css diff --git a/FrontEnd/src/vite-env.d.ts b/frontend/src/vite-env.d.ts similarity index 100% rename from FrontEnd/src/vite-env.d.ts rename to frontend/src/vite-env.d.ts diff --git a/FrontEnd/tailwind.config.js b/frontend/tailwind.config.js similarity index 100% rename from FrontEnd/tailwind.config.js rename to frontend/tailwind.config.js diff --git a/FrontEnd/tsconfig.app.json b/frontend/tsconfig.app.json similarity index 100% rename from FrontEnd/tsconfig.app.json rename to frontend/tsconfig.app.json diff --git a/FrontEnd/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from FrontEnd/tsconfig.json rename to frontend/tsconfig.json diff --git a/FrontEnd/tsconfig.node.json b/frontend/tsconfig.node.json similarity index 100% rename from FrontEnd/tsconfig.node.json rename to frontend/tsconfig.node.json diff --git a/FrontEnd/vite.config.ts b/frontend/vite.config.ts similarity index 100% rename from FrontEnd/vite.config.ts rename to frontend/vite.config.ts diff --git a/jsdoc.json b/jsdoc.json index 3c4c94f9..0ab0bc3c 100644 --- a/jsdoc.json +++ b/jsdoc.json @@ -1,10 +1,10 @@ { "source": { - "include": ["./BackEnd/src"], + "include": ["./backend/src"], "includePattern": ".+\\.js(doc|x)?$" }, "opts": { - "destination": "./docs/BackEnd", + "destination": "./docs/backend", "recurse": true } -} \ No newline at end of file +} diff --git a/package.json b/package.json index dd9ba9b4..1d00b624 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "jsdoc": "jsdoc -c jsdoc.json" }, "workspaces": [ - "FrontEnd", - "BackEnd" + "frontend", + "backend" ], "keywords": [], "author": "", @@ -56,7 +56,6 @@ "typedoc": "^0.26.11", "typescript": "~5.6.2", "typescript-eslint": "^8.11.0", - "vite": "^5.4.10", "vitest": "^2.1.4" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2c495d1..5d5db649 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,9 +106,13 @@ importers: specifier: ^2.1.4 version: 2.1.4(@types/node@22.9.0) - BackEnd: {} + backend: + dependencies: + express: + specifier: ^4.21.1 + version: 4.21.1 - FrontEnd: + frontend: dependencies: '@fontsource/pretendard': specifier: ^5.1.0 @@ -1088,6 +1092,10 @@ packages: '@vitest/utils@2.1.4': resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1149,6 +1157,9 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -1221,6 +1232,10 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1239,6 +1254,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1342,9 +1361,24 @@ packages: confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1375,6 +1409,14 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1411,10 +1453,18 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -1441,6 +1491,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.51: resolution: {integrity: sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==} @@ -1453,6 +1506,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -1510,6 +1571,9 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -1704,6 +1768,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -1715,6 +1783,10 @@ packages: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + engines: {node: '>= 0.10.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1746,6 +1818,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -1764,9 +1840,17 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1890,6 +1974,10 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -1899,6 +1987,10 @@ packages: engines: {node: '>=18'} hasBin: true + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1926,6 +2018,10 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -2230,9 +2326,16 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2240,6 +2343,10 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + micromark-util-character@2.1.0: resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} @@ -2259,6 +2366,19 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -2290,6 +2410,9 @@ packages: engines: {node: '>=10'} hasBin: true + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2304,6 +2427,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -2355,6 +2482,10 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2392,6 +2523,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2415,6 +2550,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -2522,6 +2660,10 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -2530,9 +2672,21 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + react-confetti@6.1.0: resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} engines: {node: '>=10.18'} @@ -2637,10 +2791,16 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -2653,6 +2813,14 @@ packages: engines: {node: '>=10'} hasBin: true + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -2661,6 +2829,9 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2705,6 +2876,10 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} @@ -2847,6 +3022,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -2884,6 +3063,10 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -2952,6 +3135,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + unplugin@1.15.0: resolution: {integrity: sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA==} engines: {node: '>=14.0.0'} @@ -2976,10 +3163,18 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -4067,6 +4262,11 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -4118,6 +4318,8 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 + array-flatten@1.1.1: {} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 @@ -4214,6 +4416,23 @@ snapshots: bluebird@3.7.2: {} + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -4236,6 +4455,8 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) + bytes@3.1.2: {} + cac@6.7.14: {} call-bind@1.0.7: @@ -4325,8 +4546,18 @@ snapshots: confusing-browser-globals@1.0.11: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + convert-source-map@2.0.0: {} + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -4359,6 +4590,10 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + debug@2.6.9: + dependencies: + ms: 2.0.0 + debug@3.2.7: dependencies: ms: 2.1.3 @@ -4385,8 +4620,12 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + depd@2.0.0: {} + dequal@2.0.3: {} + destroy@1.2.0: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -4409,6 +4648,8 @@ snapshots: eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + electron-to-chromium@1.5.51: {} emoji-regex@10.4.0: {} @@ -4417,6 +4658,10 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -4554,6 +4799,8 @@ snapshots: escalade@3.2.0: {} + escape-html@1.0.3: {} + escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} @@ -4816,6 +5063,8 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + eventemitter3@5.0.1: {} execa@8.0.1: @@ -4832,6 +5081,42 @@ snapshots: expect-type@1.1.0: {} + express@4.21.1: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.10 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -4862,6 +5147,18 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -4883,8 +5180,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + forwarded@0.2.0: {} + fraction.js@4.3.7: {} + fresh@0.5.2: {} + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -5015,10 +5316,22 @@ snapshots: html-void-elements@3.0.0: {} + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + human-signals@5.0.0: {} husky@9.1.6: {} + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + ignore@5.3.2: {} import-fresh@3.3.0: @@ -5043,6 +5356,8 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 + ipaddr.js@1.9.1: {} + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -5364,14 +5679,20 @@ snapshots: mdurl@2.0.0: {} + media-typer@0.3.0: {} + memoizerific@1.11.3: dependencies: map-or-similar: 1.5.0 + merge-descriptors@1.0.3: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} + methods@1.1.2: {} + micromark-util-character@2.1.0: dependencies: micromark-util-symbol: 2.0.0 @@ -5394,6 +5715,14 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + mimic-fn@4.0.0: {} mimic-function@5.0.1: {} @@ -5414,6 +5743,8 @@ snapshots: mkdirp@1.0.4: {} + ms@2.0.0: {} + ms@2.1.3: {} mz@2.7.0: @@ -5426,6 +5757,8 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -5476,6 +5809,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -5521,6 +5858,8 @@ snapshots: dependencies: callsites: 3.1.0 + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -5536,6 +5875,8 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-to-regexp@0.1.10: {} + pathe@1.1.2: {} pathval@2.0.0: {} @@ -5619,12 +5960,30 @@ snapshots: property-information@6.5.0: {} + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + punycode.js@2.3.1: {} punycode@2.3.1: {} + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + queue-microtask@1.2.3: {} + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + react-confetti@6.1.0(react@18.3.1): dependencies: react: 18.3.1 @@ -5771,12 +6130,16 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 + safer-buffer@2.1.2: {} + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -5785,6 +6148,33 @@ snapshots: semver@7.6.3: {} + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -5801,6 +6191,8 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + setprototypeof@1.2.0: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -5845,6 +6237,8 @@ snapshots: stackback@0.0.2: {} + statuses@2.0.1: {} + std-env@3.7.0: {} storybook@8.4.2(prettier@3.3.3): @@ -6025,6 +6419,8 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + trim-lines@3.0.1: {} ts-api-utils@1.4.0(typescript@5.6.3): @@ -6058,6 +6454,11 @@ snapshots: type-fest@2.19.0: {} + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -6150,6 +6551,8 @@ snapshots: universalify@2.0.1: {} + unpipe@1.0.0: {} + unplugin@1.15.0: dependencies: acorn: 8.14.0 @@ -6175,8 +6578,12 @@ snapshots: is-typed-array: 1.1.13 which-typed-array: 1.1.15 + utils-merge@1.0.1: {} + uuid@9.0.1: {} + vary@1.1.2: {} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7889e128..ed3994f9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ # pnpm์—๊ฒŒ ์–ด๋–ค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์›Œํฌ์ŠคํŽ˜์ด์Šค ํŒจํ‚ค์ง€๋กœ ํฌํ•จํ• ์ง€ ์•Œ๋ ค์ค€๋‹ค. packages: - - 'BackEnd' - - 'FrontEnd' -packageManager: "pnpm" \ No newline at end of file + - 'backend' + - 'frontend' +packageManager: "pnpm" diff --git a/typedoc.json b/typedoc.json index e44e1114..dcf30bf4 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,8 +1,8 @@ { - "entryPoints": ["./FrontEnd/src"], + "entryPoints": ["./frontend/src"], "entryPointStrategy": "expand", - "out": "./docs/FrontEnd", - "tsconfig": "./FrontEnd/tsconfig.json", + "out": "./docs/frontend", + "tsconfig": "./frontend/tsconfig.json", "includeVersion": true, "exclude": ["**/.storybook","**/*.stories.ts", "**/*.stories.tsx", "**/*.test.ts", "**/*.test.tsx"] }