From 17df5eb27b248c56e8d0bc5a7b759c607bd52824 Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Sat, 22 Mar 2025 16:32:05 +0900 Subject: [PATCH 1/6] Initial commit --- .gitignore | 24 + README.md | 14 +- eslint.config.js | 33 + index.html | 13 + package-lock.json | 2718 ++++++++++++++++++++++++++++++++++++++++++ package.json | 27 + public/vite.svg | 1 + src/App.css | 42 + src/App.jsx | 36 + src/assets/react.svg | 1 + src/index.css | 68 ++ src/main.jsx | 10 + vite.config.js | 7 + 13 files changed, 2992 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100644 src/assets/react.svg create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md index 09c2750..fd3b758 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ -# study-frontend -프론트엔드 스터디를 위한 레포지토리입니다. +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..ec2b712 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...reactHooks.configs.recommended.rules, + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/index.html b/index.html new file mode 100644 index 0000000..0c589ec --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b229e5e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2718 @@ +{ + "name": "study-frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "study-frontend", + "version": "0.0.0", + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "vite": "^6.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", + "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", + "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.10" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz", + "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.10", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", + "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", + "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", + "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz", + "integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz", + "integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", + "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz", + "integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz", + "integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz", + "integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz", + "integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz", + "integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz", + "integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz", + "integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz", + "integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz", + "integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz", + "integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz", + "integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz", + "integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz", + "integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz", + "integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz", + "integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz", + "integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.0.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", + "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001706", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", + "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.123", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz", + "integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", + "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.2.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.23.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", + "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz", + "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.36.0", + "@rollup/rollup-android-arm64": "4.36.0", + "@rollup/rollup-darwin-arm64": "4.36.0", + "@rollup/rollup-darwin-x64": "4.36.0", + "@rollup/rollup-freebsd-arm64": "4.36.0", + "@rollup/rollup-freebsd-x64": "4.36.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.36.0", + "@rollup/rollup-linux-arm-musleabihf": "4.36.0", + "@rollup/rollup-linux-arm64-gnu": "4.36.0", + "@rollup/rollup-linux-arm64-musl": "4.36.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.36.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.36.0", + "@rollup/rollup-linux-riscv64-gnu": "4.36.0", + "@rollup/rollup-linux-s390x-gnu": "4.36.0", + "@rollup/rollup-linux-x64-gnu": "4.36.0", + "@rollup/rollup-linux-x64-musl": "4.36.0", + "@rollup/rollup-win32-arm64-msvc": "4.36.0", + "@rollup/rollup-win32-ia32-msvc": "4.36.0", + "@rollup/rollup-win32-x64-msvc": "4.36.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz", + "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6d20991 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "study-frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "vite": "^6.2.0" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..c7915d1 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,36 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Hi

+

Vite + React

+
+ +

+ Edit src/App.jsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..08a3ac9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..b9a1a6d --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.jsx' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..8b0f57b --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 944ef147de78390504058cc035d354f2432c0b1f Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Sat, 22 Mar 2025 16:51:57 +0900 Subject: [PATCH 2/6] =?UTF-8?q?README=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/README.md b/README.md index fd3b758..4906665 100644 --- a/README.md +++ b/README.md @@ -1,12 +1 @@ -# React + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. +안녕하세요 \ No newline at end of file From 70ac417e909a7eb56d037fc6adfbddb567c083f3 Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Sat, 29 Mar 2025 13:58:17 +0900 Subject: [PATCH 3/6] Update README.md & src folder --- README.md | 75 ++++++++++++++++++++++++++++++++- src/App.css | 42 ------------------ src/App.jsx | 36 ---------------- src/assets/react.svg | 1 - src/components/.gitkeep | 0 src/features/login/LogForm.jsx | 0 src/features/login/useLogin.jsx | 0 src/features/user/.gitkeep | 0 src/hooks/.gitkeep | 0 src/index.css | 68 ------------------------------ src/main.jsx | 4 +- src/pages/.gitkeep | 0 12 files changed, 75 insertions(+), 151 deletions(-) delete mode 100644 src/App.css delete mode 100644 src/App.jsx delete mode 100644 src/assets/react.svg create mode 100644 src/components/.gitkeep create mode 100644 src/features/login/LogForm.jsx create mode 100644 src/features/login/useLogin.jsx create mode 100644 src/features/user/.gitkeep create mode 100644 src/hooks/.gitkeep delete mode 100644 src/index.css create mode 100644 src/pages/.gitkeep diff --git a/README.md b/README.md index 4906665..b434780 100644 --- a/README.md +++ b/README.md @@ -1 +1,74 @@ -안녕하세요 \ No newline at end of file +# 조사해보기 (1) + +## 트랜스파일링, 번들링, 폴리필은 어떤 작업인가요? 필요한 이유는 무엇일까요? + +### 트랜스파일링(Transpiling) + +- 하나의 프로그래밍 언어를 다른 언어로 변환하거나, 최신 버전의 언어를 구형 버전의 언어로 변환하는 것으로 주로 자바스크립트가 많이 이용됨. +- 유명하지 않은 언어들을 자바스크립트로 변환함으로써 오래된 프로그램이 동작할 수 있도록 보호할 수 있음. +- 다음 버전 자바스크립트의 새로운 기능을 현재 버전으로 변환하면 새로운 기능을 즉시 사용해볼 수 있음. + +### 번들링(Bundling) + +- 사용자에게 웹 애플리케이션을 제공하기 위해 여러 코드와 프로그램들을 묶는 행위. +- ‘번들링’은 컴퓨터 파일을 압축하는 것과 비슷한 개념으로, 원본 프로그램 파일보다 크기가 작아지고, 실행 속도, 로딩 속도 등이 빨라지며, 성능 측면에서 긍정적 효과를 얻음. +- 번들링된 웹 애플리케이션은 사용자가 임의로 조작할 수 없으므로, 사용자의 임의 조작으로 발생하는 위험 가능성을 줄일 수 있음. + +### 폴리필(Polyfill) + +- 최신 자바스크립트의 기능을 구식 자바스크립트 코드로 똑같이 구현한 코드. +- 최신 문법에 추가된 메서드나 객체, 함수 등 구버전 브라우저에서 동작하지 않는 코드를 다른 방식으로 작성하여 동일한 기능으로 동작하게 함. + +## 대표적인 번들러와 자바스크립트 트랜스파일러에는 어떤 것들이 있을까요? + +### 번들러(Bundler) + +- Webpack : 간편하고 직관적인 설명으로 이루어져 있으며, plugin과 loader를 쉽게 부착할 수 있음. +- vs grunt : 설정이 파편화되고, 개발자가 직접 컨드롤해야하는 영역이 많음. +- Rollup : 작은 코드 조각들을 크고 복잡한 어플리케이션 혹은 라이브러리로 만들어줌. 확장에 용이하며, 라이브러리를 만들 때 많이 사용됨. +- ESBuild : 다른 번들러들과 달리 자바스크립트를 기반으로 하지 않고, 내부적으로 Go를 작성하여 빠른 처리가 가능하도록 함. 다만, 설정이 유연하지 못하며, 아직 안전성 문제가 존재함. +- Vite : ESBuild의 단점을 보완시켜 만들어졌으며, 활발한 업데이트가 이루어짐. 성능과 유연성을 골고루 챙긴 frontend build tool임. + +### 자바스크립트 트랜스파일러 + +- TypeScript : 자바스크립트의 상위 집합 언어로, TypeScript 컴파일러를 이용하면 TypeScript 코드를 JavaScript 코드로 변환 가능함. +- Buble : 경량화된 트랜스파일러로 빠른 변환 속도와 간결한 결과 코드를 제공함. +- SWC : Rust로 작성된 고성능 트랜스파일러로 Buble과 비슷한 기능을 가지며, 빠른 컴파일 속도를 가짐. +- Closure Compiler : 구글에서 개발한 자바스크립트파일로, 코드 압축 및 최적화를 포함하여 효율적 코드 생성이 가능함. + +# 조사해보기 (2) + +## npm 외의 다른 패키지 매니저에는 어떤 것들이 있을까요? npm에 비해 갖는 장점은 무엇일까요? + +- 패키지 : 코드의 배포를 위해 사용되는 코드의 묶음. 일반적으로 라이브러리나 실행 파일을 포함하며, 컴파일한 소프트웨어의 바이너리, 환경 설정에 관련된 정보, 의존에 관련된 정보를 가짐. +- 패키지 매니저 : 패키지를 다루는 작업(설치, 업데이트, 수정, 삭제 등)을 편리하고 안전하게 수행하기 위해 사용되는 툴. + +### npm 외의 다른 패키지 매니저 + +- Yarn classic : npm이 가지고 있던 일관성, 보안, 성능 문제 등을 해결하기 위해 개발됨. 패키지 관리자 환경에 큰 영향을 미쳤으며, 설치 프로세스의 속도를 높이기 위해 작업을 병렬화 시킴. +- pnpm (performant npm) : npm, Yarn이 가지고 있던 dependency의 중복 저장 문제를 개선하기 위해 개발됨. 패키지를 동일한 디렉토리에 저장하지 않고, 중첩된 node_modules 폴더를 생성하여 저장하는 방식으로 디스크 공간을 절약함. + +## 프로젝트를 생성했을 때 나오는 각 파일들은 어떤 역할을 하나요? + +- .gitignore : Git으로 버전 관리할 때 제외할 파일 목록. +- index.html : 브라우저가 로딩하는 실제 HTML 파일. +- package.json : 프로젝트의 메타데이터, 설치된 패키지 목록, 스크립트 명령어 등을 포함. +- package-lock.json : 설치된 패키지의 정확한 버전 기록. 재설치 시 동일한 환경을 보장함. +- vite.config.js : Vite 설정 파일. 빌드 도구, 플러그인 설정. +- eslint.config.js : 코드 품질 체크용 설정 파일. 코드 스타일 통일을 위해 사용. +- README.md : 프로젝트 설명용 문서. 프로젝트 목적, 설치 방법 등을 작성. +- public 폴더 + - vite.svg : 정적인 에셋 파일. +- src 폴더 + - main.jsx : App.jsx를 #root DOM에 렌더링하는 역할. + - App.jsx : 앱의 전체 UI 구조를 만듦. + - App.css : App.jsx에 적용되는 스타일. + - index.css : 전체 프로젝트에 적용되는 전역 스타일. + - assets/react.svg : 프로젝트 내에서 사용하는 이미지나 아이콘 등 정적 파일. + +## src 폴더는 우리가 만들 웹 애플리케이션의 소스 모듈이 위치한 곳입니다. src 내부의 폴더 구조를 어떻게 설정할 수 있을까요? 다양한 방법을 조사해주세요. + +- 기능 중심 구조 : 기능 단위로 폴더를 구성. +- 레이어드 구조 : 역할 별로 폴더를 구성. +- 도메인 기반 구조 : 업무 영역 단위로 구성. +- Atomic Design 구조 : UI 컴포넌트를 원자 단위로 쪼개어 구성. \ No newline at end of file diff --git a/src/App.css b/src/App.css deleted file mode 100644 index b9d355d..0000000 --- a/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/src/App.jsx b/src/App.jsx deleted file mode 100644 index c7915d1..0000000 --- a/src/App.jsx +++ /dev/null @@ -1,36 +0,0 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> -
- - Vite logo - - - React logo - -
-

Hi

-

Vite + React

-
- -

- Edit src/App.jsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) -} - -export default App diff --git a/src/assets/react.svg b/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/.gitkeep b/src/components/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/features/login/LogForm.jsx b/src/features/login/LogForm.jsx new file mode 100644 index 0000000..e69de29 diff --git a/src/features/login/useLogin.jsx b/src/features/login/useLogin.jsx new file mode 100644 index 0000000..e69de29 diff --git a/src/features/user/.gitkeep b/src/features/user/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/hooks/.gitkeep b/src/hooks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/index.css b/src/index.css deleted file mode 100644 index 08a3ac9..0000000 --- a/src/index.css +++ /dev/null @@ -1,68 +0,0 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/src/main.jsx b/src/main.jsx index b9a1a6d..8387f24 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,10 +1,8 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.jsx' createRoot(document.getElementById('root')).render( - + , ) diff --git a/src/pages/.gitkeep b/src/pages/.gitkeep new file mode 100644 index 0000000..e69de29 From 9dc8675accba71904d3affac11ff6a6bc7a73352 Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Fri, 4 Apr 2025 10:08:36 +0900 Subject: [PATCH 4/6] =?UTF-8?q?(=EA=B3=BC=EC=A0=9C2)=20Make=20WebScreen=20?= =?UTF-8?q?&=20Update=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 85 ++++++++------------------------ eslint.config.js | 1 + index.html | 3 ++ package-lock.json | 16 +++++- package.json | 3 +- src/App.jsx | 41 ++++++++++++++++ src/index.css | 122 ++++++++++++++++++++++++++++++++++++++++++++++ src/main.jsx | 3 +- vite.config.js | 8 ++- 9 files changed, 212 insertions(+), 70 deletions(-) create mode 100644 src/App.jsx create mode 100644 src/index.css diff --git a/README.md b/README.md index b434780..f44cf1b 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,27 @@ -# 조사해보기 (1) +# 조사해보기 -## 트랜스파일링, 번들링, 폴리필은 어떤 작업인가요? 필요한 이유는 무엇일까요? +## 리액트는 Client Side Rendering 방식의 웹앱을 위한 UI 라이브러리입니다. Client Side Rendering이란 무엇일까요? 전통적인 SSR 방식의 웹앱과의 차이점은 무엇일까요? -### 트랜스파일링(Transpiling) +- Client Side Rendering : 처음에 rendering에 필요한 모든 정보를 받아오지 않고, 그때그때 필요한 정보를 요청하여 변화된 부분만 rendering하는 방식을 말한다. +- 서버에서 모든 정보를 rendering하여 클라이언트에 전달하는 SSR과 달리, CSR은 브라우저에서 JS 코드가 실행되고, 실행 과정에서 필요한 데이터를 요청하여 이를 기반으로 rendering이 이루어진다. 유저의 행동에 따라 변화된 부분만 re-rendering이 이루어지기 때문에 SSR보다 빠른 interaction이 가능하다. +- CSR에서는 요청 전까지 body가 비어있기 때문에 Search Engine Optimization이 효율적으로 작동하지 않아 SSR보다 검색 노출 면에서 불리한 점이 있다. -- 하나의 프로그래밍 언어를 다른 언어로 변환하거나, 최신 버전의 언어를 구형 버전의 언어로 변환하는 것으로 주로 자바스크립트가 많이 이용됨. -- 유명하지 않은 언어들을 자바스크립트로 변환함으로써 오래된 프로그램이 동작할 수 있도록 보호할 수 있음. -- 다음 버전 자바스크립트의 새로운 기능을 현재 버전으로 변환하면 새로운 기능을 즉시 사용해볼 수 있음. +## 앞서 리액트는 상태에 따른 선언적 프로그래밍이 가능하도록 돕도록 한다고 말씀드렸습니다. 선언적 프로그래밍과 명령형 프로그래밍의 차이는 무엇일까요? -### 번들링(Bundling) +- 선언적 프로그래밍 : 무엇을(WHAT) 해야 하는지에 주목하는 프로그래밍 형식. 내부적으로 절차적 알고리즘이 동작하며, 절차적인 명령형 프로그래밍이 추상화되어서 선언적 프로그래밍으로 제공된다. +- 명령형 프로그래밍 : 어떻게(HOW) 해야 하는지에 주목하는 프로그래밍 형식. 어떠한 일을 수행하기 위해서 거쳐야 하는 단계를 상세하게 나열한다. -- 사용자에게 웹 애플리케이션을 제공하기 위해 여러 코드와 프로그램들을 묶는 행위. -- ‘번들링’은 컴퓨터 파일을 압축하는 것과 비슷한 개념으로, 원본 프로그램 파일보다 크기가 작아지고, 실행 속도, 로딩 속도 등이 빨라지며, 성능 측면에서 긍정적 효과를 얻음. -- 번들링된 웹 애플리케이션은 사용자가 임의로 조작할 수 없으므로, 사용자의 임의 조작으로 발생하는 위험 가능성을 줄일 수 있음. +## 브라우저가 웹 페이지를 표시하는 과정을 단계를 나누어 자세히 설명해주세요. -### 폴리필(Polyfill) +- HTML 파싱 : HTML 문서를 파싱하여 DOM 트리를 생성한다. +- CSS 파싱 : CSS 문서를 파싱하여 CSSOM 트리를 생성한다. +- 렌더 트리 생성 : 브라우저가 DOM 트리와 CSSOM 트리를 결합하여 렌더 트리를 생성한다. 레이아웃과 페인팅에 필요한 정보를 추출한다. +- 레이아웃 : 렌더 트리 각 요소의 위치, 크기를 계산해 정확한 배치를 수행한다. +- 페인팅 : 렌더링된 요소들을 화면에 그린다. -- 최신 자바스크립트의 기능을 구식 자바스크립트 코드로 똑같이 구현한 코드. -- 최신 문법에 추가된 메서드나 객체, 함수 등 구버전 브라우저에서 동작하지 않는 코드를 다른 방식으로 작성하여 동일한 기능으로 동작하게 함. +## 리액트를 사용하는 이유를 조사해주세요. -## 대표적인 번들러와 자바스크립트 트랜스파일러에는 어떤 것들이 있을까요? - -### 번들러(Bundler) - -- Webpack : 간편하고 직관적인 설명으로 이루어져 있으며, plugin과 loader를 쉽게 부착할 수 있음. -- vs grunt : 설정이 파편화되고, 개발자가 직접 컨드롤해야하는 영역이 많음. -- Rollup : 작은 코드 조각들을 크고 복잡한 어플리케이션 혹은 라이브러리로 만들어줌. 확장에 용이하며, 라이브러리를 만들 때 많이 사용됨. -- ESBuild : 다른 번들러들과 달리 자바스크립트를 기반으로 하지 않고, 내부적으로 Go를 작성하여 빠른 처리가 가능하도록 함. 다만, 설정이 유연하지 못하며, 아직 안전성 문제가 존재함. -- Vite : ESBuild의 단점을 보완시켜 만들어졌으며, 활발한 업데이트가 이루어짐. 성능과 유연성을 골고루 챙긴 frontend build tool임. - -### 자바스크립트 트랜스파일러 - -- TypeScript : 자바스크립트의 상위 집합 언어로, TypeScript 컴파일러를 이용하면 TypeScript 코드를 JavaScript 코드로 변환 가능함. -- Buble : 경량화된 트랜스파일러로 빠른 변환 속도와 간결한 결과 코드를 제공함. -- SWC : Rust로 작성된 고성능 트랜스파일러로 Buble과 비슷한 기능을 가지며, 빠른 컴파일 속도를 가짐. -- Closure Compiler : 구글에서 개발한 자바스크립트파일로, 코드 압축 및 최적화를 포함하여 효율적 코드 생성이 가능함. - -# 조사해보기 (2) - -## npm 외의 다른 패키지 매니저에는 어떤 것들이 있을까요? npm에 비해 갖는 장점은 무엇일까요? - -- 패키지 : 코드의 배포를 위해 사용되는 코드의 묶음. 일반적으로 라이브러리나 실행 파일을 포함하며, 컴파일한 소프트웨어의 바이너리, 환경 설정에 관련된 정보, 의존에 관련된 정보를 가짐. -- 패키지 매니저 : 패키지를 다루는 작업(설치, 업데이트, 수정, 삭제 등)을 편리하고 안전하게 수행하기 위해 사용되는 툴. - -### npm 외의 다른 패키지 매니저 - -- Yarn classic : npm이 가지고 있던 일관성, 보안, 성능 문제 등을 해결하기 위해 개발됨. 패키지 관리자 환경에 큰 영향을 미쳤으며, 설치 프로세스의 속도를 높이기 위해 작업을 병렬화 시킴. -- pnpm (performant npm) : npm, Yarn이 가지고 있던 dependency의 중복 저장 문제를 개선하기 위해 개발됨. 패키지를 동일한 디렉토리에 저장하지 않고, 중첩된 node_modules 폴더를 생성하여 저장하는 방식으로 디스크 공간을 절약함. - -## 프로젝트를 생성했을 때 나오는 각 파일들은 어떤 역할을 하나요? - -- .gitignore : Git으로 버전 관리할 때 제외할 파일 목록. -- index.html : 브라우저가 로딩하는 실제 HTML 파일. -- package.json : 프로젝트의 메타데이터, 설치된 패키지 목록, 스크립트 명령어 등을 포함. -- package-lock.json : 설치된 패키지의 정확한 버전 기록. 재설치 시 동일한 환경을 보장함. -- vite.config.js : Vite 설정 파일. 빌드 도구, 플러그인 설정. -- eslint.config.js : 코드 품질 체크용 설정 파일. 코드 스타일 통일을 위해 사용. -- README.md : 프로젝트 설명용 문서. 프로젝트 목적, 설치 방법 등을 작성. -- public 폴더 - - vite.svg : 정적인 에셋 파일. -- src 폴더 - - main.jsx : App.jsx를 #root DOM에 렌더링하는 역할. - - App.jsx : 앱의 전체 UI 구조를 만듦. - - App.css : App.jsx에 적용되는 스타일. - - index.css : 전체 프로젝트에 적용되는 전역 스타일. - - assets/react.svg : 프로젝트 내에서 사용하는 이미지나 아이콘 등 정적 파일. - -## src 폴더는 우리가 만들 웹 애플리케이션의 소스 모듈이 위치한 곳입니다. src 내부의 폴더 구조를 어떻게 설정할 수 있을까요? 다양한 방법을 조사해주세요. - -- 기능 중심 구조 : 기능 단위로 폴더를 구성. -- 레이어드 구조 : 역할 별로 폴더를 구성. -- 도메인 기반 구조 : 업무 영역 단위로 구성. -- Atomic Design 구조 : UI 컴포넌트를 원자 단위로 쪼개어 구성. \ No newline at end of file +- Virtual DOM의 사용을 통해 DOM을 업데이트할 때 전체 DOM을 다시 그리는 대신 DOM의 복사본을 Virtual DOM에 저장하고 변화가 필요한 부분만 일부 수정하는 방식을 거친다. 이를 통해 불필요한 화면의 갱신을 최소화하고, 성능을 향상시킬 수 있다. +- 컴포넌트 기반이므로 특정 기능이나 화면을 구현할 때 그 화면을 구성하는 일에만 집중할 수 있게 해준다. 서로 다른 파일을 작업하도록 구성할 수 있으므로 효율적 코드 분리가 가능하다. +- 부모 컴포넌트에서 자식 컴포넌트로 단방향 데이터 전달만 가능하여, 데이터를 쉽게 추적할 수 있다. +- 리액트는 유연성과 호환성이 좋아, 웹 애플리케이션, 모바일 애플리케이션 등 다양한 플랫폼에서 쉽게 재사용할 수 있다. \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js index ec2b712..3fb33cb 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -16,6 +16,7 @@ export default [ sourceType: 'module', }, }, + extends: ["eslint:recommended", "google"], plugins: { 'react-hooks': reactHooks, 'react-refresh': reactRefresh, diff --git a/index.html b/index.html index 0c589ec..881c0cd 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,9 @@ Vite + React + + +
diff --git a/package-lock.json b/package-lock.json index b229e5e..5175694 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,8 @@ "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.21.0", + "eslint": "^9.23.0", + "eslint-config-google": "^0.14.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^15.15.0", @@ -1754,6 +1755,19 @@ } } }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, "node_modules/eslint-plugin-react-hooks": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", diff --git a/package.json b/package.json index 6d20991..40b193a 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.21.0", + "eslint": "^9.23.0", + "eslint-config-google": "^0.14.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^15.15.0", diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..57ff86e --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,41 @@ +import { useState } from 'react' +import './index.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+
+
SiteName
+
+
+
+
+
+
+
+

Hello
World!!!

+
+
1
+
2
+
3
+
4
+
5
+
+
+ +
+ + ) +} + +export default App \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..965e2c0 --- /dev/null +++ b/src/index.css @@ -0,0 +1,122 @@ + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + html, body { + width: 100vw; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; + background-color: #F1DFC5; + } + + .all { + width: 393px; + height: 852px; + transform: scale(calc(100vh / 852)); + transform-origin: top left; + display: flex; + flex-direction: column; + } + + header { + width: 100%; + height: 60px; + background-color: #FAEBD7; + display: flex; + } + + .sitename { + width: 87px; + height: 22px; + margin-top: 19px; + margin-left: 20px; + font-family: 'Inter', sans-serif; + font-weight: 800; + font-size: 18px; + line-height: 100%; + letter-spacing: 0%; + color: #7C6C56; + } + + .headerboxes { + margin-left: auto; + margin-right: 20px; + margin-top: 15px; + display: flex; + } + + .headerbox { + width: 30px; + height: 30px; + background-color: #DDC7AA; + margin-left: 10px; + } + + main { + width: 100%; + height: calc(100% - 120px); + } + + h1 { + width: 120px; + height: 72px; + margin-top: 60px; + margin-left: 20px; + font-family: 'Inter', sans-serif; + font-weight: 800; + font-size: 30px; + line-height: 100%; + letter-spacing: 0%; + color: #7C6C56; + } + + .widgetboxes { + width: 100%; + margin-left: 20px; + margin-top: 20px; + display: flex; + overflow-x: auto; + gap: 20px; + padding-bottom: 10px; + padding-right: 40px; + } + + .widgetbox { + width: 160px; + height: 90px; + background-color: #DDC7AA; + font-family: 'Inter', sans-serif; + font-weight: 800; + font-size: 30px; + line-height: 100%; + color: #7C6C56; + padding-top: 30px; + text-align: center; + flex-shrink: 0; + } + + + nav { + width: 100%; + height: 60px; + background-color: #FAEBD7; + display: flex; + } + + .navboxes { + margin-right: auto; + margin-left: 20px; + margin-top: 15px; + display: flex; + } + + .navbox { + width: 30px; + height: 30px; + background-color: #DDC7AA; + margin-right: 77px; + } \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx index 8387f24..976736c 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,8 +1,9 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' +import App from './App' createRoot(document.getElementById('root')).render( - + , ) diff --git a/vite.config.js b/vite.config.js index 8b0f57b..2e5f51e 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,7 +1,13 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import path from 'path' // https://vite.dev/config/ export default defineConfig({ plugins: [react()], -}) + resolve: { + alias: { + '@component': path.resolve(__dirname, 'src/component'), + }, + }, +}) \ No newline at end of file From 09f38c20afed141c0ee388a1721dcbb307d2c3b2 Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Fri, 4 Apr 2025 13:42:31 +0900 Subject: [PATCH 5/6] =?UTF-8?q?(=EA=B3=BC=EC=A0=9C2)=20Make=20WebScreen=20?= =?UTF-8?q?&=20Update=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.css | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/index.css b/src/index.css index 965e2c0..8849d89 100644 --- a/src/index.css +++ b/src/index.css @@ -8,8 +8,6 @@ width: 100vw; height: 100vh; display: flex; - justify-content: center; - align-items: center; background-color: #F1DFC5; } @@ -76,13 +74,13 @@ .widgetboxes { width: 100%; - margin-left: 20px; + padding-left: 20px; margin-top: 20px; display: flex; overflow-x: auto; gap: 20px; padding-bottom: 10px; - padding-right: 40px; + padding-right: 20px; } .widgetbox { From 90d60eacd10d6e2c82e6523edd8bd40c7efb5481 Mon Sep 17 00:00:00 2001 From: yoonjung561 Date: Fri, 9 May 2025 04:09:50 +0900 Subject: [PATCH 6/6] =?UTF-8?q?(=EA=B3=BC=EC=A0=9C3)=20Update=20Week3=20Ho?= =?UTF-8?q?mework?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 12 ++- package.json | 3 +- src/App.jsx | 120 +++++++++++++++++++++----- src/Ranking_select.jsx | 28 ++++++ src/header.jsx | 12 +++ src/img/busan.jpg | Bin 0 -> 98401 bytes src/index.css | 188 ++++++++++++++++++++++------------------- 7 files changed, 253 insertions(+), 110 deletions(-) create mode 100644 src/Ranking_select.jsx create mode 100644 src/header.jsx create mode 100644 src/img/busan.jpg diff --git a/package-lock.json b/package-lock.json index 5175694..69ea42e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-icons": "^4.12.0" }, "devDependencies": { "@eslint/js": "^9.21.0", @@ -2422,6 +2423,15 @@ "react": "^19.0.0" } }, + "node_modules/react-icons": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", diff --git a/package.json b/package.json index 40b193a..e0dd267 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ }, "dependencies": { "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-icons": "^4.12.0" }, "devDependencies": { "@eslint/js": "^9.21.0", diff --git a/src/App.jsx b/src/App.jsx index 57ff86e..49e951c 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,5 +1,13 @@ import { useState } from 'react' import './index.css' +import Header from './header' +import RankingSelector from './Ranking_select' +import pic from './img/busan.jpg' +import { HiOutlineHome } from "react-icons/hi2"; +import { IoTrophyOutline } from "react-icons/io5"; +import { GoDeviceCameraVideo } from "react-icons/go"; +import { PiCameraPlus } from "react-icons/pi"; +import { FaHeart } from "react-icons/fa"; function App() { const [count, setCount] = useState(0) @@ -7,31 +15,99 @@ function App() { return ( <>
-
-
SiteName
-
-
-
-
-
-
+
+
-

Hello
World!!!

-
-
1
-
2
-
3
-
4
-
5
-
+
+

1

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

2

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

3

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

4

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

5

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

6

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
+
+

7

+ picture_busan +
+
부산광역시
+
조회수 2억 6천만회
+
+
+ +
12.3K
+
+
diff --git a/src/Ranking_select.jsx b/src/Ranking_select.jsx new file mode 100644 index 0000000..58a390b --- /dev/null +++ b/src/Ranking_select.jsx @@ -0,0 +1,28 @@ +import React, { useState } from 'react'; + +const RankingSelector = () => { + const [selected, setSelected] = useState('weekly'); + + const handleClick = (buttonType) => {setSelected(buttonType);}; + + return ( +
+ + +
+ ); +}; + +export default RankingSelector; diff --git a/src/header.jsx b/src/header.jsx new file mode 100644 index 0000000..a0a7bd1 --- /dev/null +++ b/src/header.jsx @@ -0,0 +1,12 @@ +import { useState } from "react" +function Header(props) { + + return ( + <> +
+

순위 상세 페이지

+
+ +) +} +export default Header \ No newline at end of file diff --git a/src/img/busan.jpg b/src/img/busan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a1634429bbcbf08b5952054c8271d4d6b9269e5 GIT binary patch literal 98401 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%0AZS)eAcXuNr{ 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

Mn;(i>W%NO$EDhknEKq$+9GPfzs2dP|EYU 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 div { + text-align: center; + float: left; + width: 25%; + + height: 45px; + line-height: 15px; + } + + .nav { + font-size: 10px; + font-weight: 500; } - .navbox { - width: 30px; - height: 30px; - background-color: #DDC7AA; - margin-right: 77px; + .icon { + font-size: 30px; + display: block; + margin: 0 auto; + margin-top: 15px; } \ No newline at end of file