From 8431858e665fbea2ef827c0bf4df3d350f5a8a5a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Feb 2024 20:42:46 +0530 Subject: [PATCH] finish --- index.html | 4 +- package-lock.json | 4264 ++++++++++++++++++++++++++ package.json | 7 +- postcss.config.js | 6 + src/App.css | 42 - src/App.jsx | 48 + src/App.tsx | 35 - src/assets/react.svg | 1 - src/assets/spotify_logo_white.png | Bin 0 -> 43822 bytes src/components/Button.jsx | 23 + src/components/Card.jsx | 15 + src/components/Header.jsx | 39 + src/components/SearchText.jsx | 33 + src/components/Sidebar.jsx | 88 + src/components/footer/FooterLink.jsx | 21 + src/components/footer/index.jsx | 31 + src/constant/category.json | 2020 ++++++++++++ src/constant/footer.js | 17 + src/constant/menus.js | 21 + src/constant/songLists.json | 83 + src/constant/songs.json | 51 + src/index.css | 78 +- src/main.jsx | 10 + src/main.tsx | 10 - src/pages/home/index.jsx | 31 + src/pages/search-result/index.jsx | 72 + src/pages/search/index.jsx | 35 + tailwind.config.js | 18 + 28 files changed, 6950 insertions(+), 153 deletions(-) create mode 100644 package-lock.json create mode 100644 postcss.config.js delete mode 100644 src/App.css create mode 100644 src/App.jsx delete mode 100644 src/App.tsx delete mode 100644 src/assets/react.svg create mode 100644 src/assets/spotify_logo_white.png create mode 100644 src/components/Button.jsx create mode 100644 src/components/Card.jsx create mode 100644 src/components/Header.jsx create mode 100644 src/components/SearchText.jsx create mode 100644 src/components/Sidebar.jsx create mode 100644 src/components/footer/FooterLink.jsx create mode 100644 src/components/footer/index.jsx create mode 100644 src/constant/category.json create mode 100644 src/constant/footer.js create mode 100644 src/constant/menus.js create mode 100644 src/constant/songLists.json create mode 100644 src/constant/songs.json create mode 100644 src/main.jsx delete mode 100644 src/main.tsx create mode 100644 src/pages/home/index.jsx create mode 100644 src/pages/search-result/index.jsx create mode 100644 src/pages/search/index.jsx create mode 100644 tailwind.config.js diff --git a/index.html b/index.html index e4b78ea..30fd69d 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,10 @@ - Vite + React + TS + Spotify
- + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..998c084 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4264 @@ +{ + "name": "assignment2", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "assignment2", + "version": "0.0.0", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-icons": "^5.0.1", + "react-router-dom": "^6.22.0" + }, + "devDependencies": { + "@types/react": "^18.2.55", + "@types/react-dom": "^18.2.19", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.17", + "eslint": "^8.56.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "typescript": "^5.2.2", + "vite": "^5.1.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "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/core/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.0.tgz", + "integrity": "sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "cpu": [ + "x64" + ], + "dev": true, + "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, + "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, + "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, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "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 + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "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, + "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, + "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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.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 + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001585", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", + "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", + "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" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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 + }, + "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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "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 + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "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 + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/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, + "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/eslint/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/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 + }, + "node_modules/eslint/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "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, + "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, + "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, + "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 + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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 + }, + "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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "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, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "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, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "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 + }, + "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 + }, + "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 + }, + "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, + "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, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "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, + "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 + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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 + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "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, + "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, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-icons": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz", + "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.0.tgz", + "integrity": "sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg==", + "dependencies": { + "@remix-run/router": "1.15.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.0.tgz", + "integrity": "sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag==", + "dependencies": { + "@remix-run/router": "1.15.0", + "react-router": "6.22.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.1.tgz", + "integrity": "sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "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, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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 + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 3dd4f7f..703e80c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ }, "dependencies": { "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-icons": "^5.0.1", + "react-router-dom": "^6.22.0" }, "devDependencies": { "@types/react": "^18.2.55", @@ -19,9 +21,12 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", "typescript": "^5.2.2", "vite": "^5.1.0" } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} 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 new file mode 100644 index 0000000..b289922 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,48 @@ +import { createBrowserRouter, Outlet } from "react-router-dom"; +import Sidebar from "./components/Sidebar"; +import SearchPage from "./pages/search"; +import Home from "./pages/home"; +import SearchResult from "./pages/search-result"; +import Header from "./components/Header"; +import Footer from "./components/footer"; +import { useState } from "react"; + +function App() { + const [activeMenu, setActiveMenu] = useState(false) + + return ( + <> +
+ +
+
+ +
+
+
+ + ); +} + +export const router = createBrowserRouter([ + { + path: "/", + element: , + children: [ + { + path: "/", + element: + }, + { + path: "/search", + element: + }, + { + path: "/search/:srch", + element: + }, + ], + }, +]); + +export default App; diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index afe48ac..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,35 +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 + React

-
- -

- Edit src/App.tsx 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/assets/spotify_logo_white.png b/src/assets/spotify_logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..fce40d8cbcef06bc51113d6ae704c850e2588591 GIT binary patch literal 43822 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 K`*6wf$^QZ1;qVy% literal 0 HcmV?d00001 diff --git a/src/components/Button.jsx b/src/components/Button.jsx new file mode 100644 index 0000000..5e07056 --- /dev/null +++ b/src/components/Button.jsx @@ -0,0 +1,23 @@ +import React from 'react' + +const Button = ({type,children,className=""}) => { + let style; + switch(type){ + case "primary": + style=`bg-white text-black font-semibold rounded-full hover:bg-[#f6f6f6]`; + break; + case "secondary": + style=`border-2 border-[#727272] text-white rounded-full hover:border-white`; + break; + case "tertiary": + style=`text-[#a7a7a7] font-semibold hover:text-white` + break; + } + return ( + + ) +} + +export default Button diff --git a/src/components/Card.jsx b/src/components/Card.jsx new file mode 100644 index 0000000..e87d847 --- /dev/null +++ b/src/components/Card.jsx @@ -0,0 +1,15 @@ +import React from 'react' + +const Card = ({title,image,description}) => { + return ( +
+
+ +
+

{title}

+

{description.slice(0,40)}{description.slice(41) && "..."}

+
+ ) +} + +export default Card diff --git a/src/components/Header.jsx b/src/components/Header.jsx new file mode 100644 index 0000000..7f5051b --- /dev/null +++ b/src/components/Header.jsx @@ -0,0 +1,39 @@ +import React, { useState } from "react"; +import { FaChevronLeft } from "react-icons/fa6"; +import { FaChevronRight } from "react-icons/fa6"; +import Button from "./Button"; +import SearchText from "./SearchText"; +import { useLocation } from "react-router-dom"; +import { IoMenu } from "react-icons/io5"; + +const Header = ({activeMenu, setActiveMenu}) => { + const { pathname } = useLocation(); + + return ( +
+
+
+ + +
+ {pathname != "/" && } +
+
+ +
+ setActiveMenu(!activeMenu)} className="text-xl cursor-pointer text-[#a7a7a7] block md:hidden"/> + + +
+
+ {/* FOR MOBILE */} +
+ {pathname != "/" && } +
+
+ ); +}; + +export default Header; diff --git a/src/components/SearchText.jsx b/src/components/SearchText.jsx new file mode 100644 index 0000000..3b94204 --- /dev/null +++ b/src/components/SearchText.jsx @@ -0,0 +1,33 @@ +import React, { useState } from "react"; +import { FiSearch } from "react-icons/fi"; +import { useNavigate } from "react-router-dom"; + + +const SearchText = () => { + const [searchText, setSearchText] = useState("") + const [focus,setFocus] = useState(true) + const navigate = useNavigate() + + const handleChange = (e) =>{ + setSearchText(e.target.value) + navigate(`/search/${e.target.value}`) + } + + return ( +
e.preventDefault()} className={`bg-[#242424] rounded-full py-3 px-4 flex gap-2 items-center text-lg w-full lg:w-80 ${focus && "border-2 border-white"}`}> + + setFocus(false)} + onFocus={e=>setFocus(true)} + /> + + ); +}; + +export default SearchText; diff --git a/src/components/Sidebar.jsx b/src/components/Sidebar.jsx new file mode 100644 index 0000000..bb4aeda --- /dev/null +++ b/src/components/Sidebar.jsx @@ -0,0 +1,88 @@ +import React from "react"; +import { menus } from "../constant/menus"; +import { Link } from "react-router-dom"; +import { FaPlus } from "react-icons/fa6"; +import { LuLibrary } from "react-icons/lu"; +import Button from "./Button"; +import { CiGlobe } from "react-icons/ci"; +import Logo from "../assets/spotify_logo_white.png" +import { IoMdClose } from "react-icons/io"; + + +const Sidebar = ({activeMenu, setActiveMenu}) => { + return ( + + ); +}; +export default Sidebar; diff --git a/src/components/footer/FooterLink.jsx b/src/components/footer/FooterLink.jsx new file mode 100644 index 0000000..8d02413 --- /dev/null +++ b/src/components/footer/FooterLink.jsx @@ -0,0 +1,21 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const FooterLink = ({ title, links }) => { + return ( +
+

{title}

+ {links.map((link) => ( + + {link} + + ))} +
+ ); +}; + +export default FooterLink; diff --git a/src/components/footer/index.jsx b/src/components/footer/index.jsx new file mode 100644 index 0000000..8b7b2e9 --- /dev/null +++ b/src/components/footer/index.jsx @@ -0,0 +1,31 @@ +import React from "react"; +import FooterLink from "./FooterLink"; +import { footerData } from "../../constant/footer"; +import { FaInstagram } from "react-icons/fa"; +import { FaFacebook } from "react-icons/fa"; +import { FaTwitter } from "react-icons/fa"; +import { Link } from "react-router-dom"; + +const Footer = () => { + return ( +
+ + + + +
+ + + + + + + + + +
+
+ ); +}; + +export default Footer; diff --git a/src/constant/category.json b/src/constant/category.json new file mode 100644 index 0000000..eb3ea8b --- /dev/null +++ b/src/constant/category.json @@ -0,0 +1,2020 @@ +{ + "data": { + "browseStart": { + "__typename": "BrowseSectionContainer", + "sections": { + "items": [ + { + "data": { + "__typename": "BrowseGridSectionData", + "title": { + "transformedLabel": "Browse all" + } + }, + "sectionItems": { + "items": [ + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab6765630000ba8a81f07e1ead0317ee3c285bfa", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#006450" + }, + "title": { + "transformedLabel": "Podcasts" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DArNBzkmxXHCqFLx2J" + }, + { + "content": { + "__typename": "BrowseXlinkResponseWrapper", + "data": { + "__typename": "BrowseClientFeature", + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://concerts.spotifycdn.com/images/live-events_category-image.jpg", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8400e7" + }, + "featureUri": "spotify:concerts", + "iconOverlay": { + "sources": [ + { + "height": 274, + "url": "https://t.scdn.co/images/728ed47fc1674feb95f7ac20236eb6d7.jpeg", + "width": 274 + } + ] + }, + "title": { + "transformedLabel": "Live Events" + } + } + }, + "uri": "spotify:xlink:0JQ5DAozXW0GUBAKjHsifL" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/ea364e99656e46a096ea1df50f581efe", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#1e3264" + }, + "title": { + "transformedLabel": "Made For You" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAt0tbjZptfcdMSKl3" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f000000027ea4d505212b9de1f72c5112", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e8115b" + }, + "title": { + "transformedLabel": "New Releases" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFz6FAsUtgAab" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caff5976b97bcf10d98acbae2cd", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#dc148c" + }, + "title": { + "transformedLabel": "Hindi" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFHCxg5H5PtqW" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f00000002461fda205f5f952eff8bae70", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#b02897" + }, + "title": { + "transformedLabel": "Punjabi" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFKSopHMaeIeI" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf4b3beede484da74b233fa299", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#a56752" + }, + "title": { + "transformedLabel": "Tamil" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFE33XAyDiPIr" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf666a4ae3e6161da7a120ca14", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#777777" + }, + "title": { + "transformedLabel": "Ghazals" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFEcBibYcDrCH" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/7262179db37c498480ef06bfacb60310.jpeg", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#0d73ec" + }, + "title": { + "transformedLabel": "Podcast Charts" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAB3zgCauRwnvdEQjJ" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/209c867f5bb34076b0dcc9deeb1868e6", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8e66ac" + }, + "title": { + "transformedLabel": "Podcast New Releases" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFH69NUcWRk7v" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/9af79fd06e34dea3cd27c4e1cd6ec7343ce20af4", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e13300" + }, + "title": { + "transformedLabel": "Video Podcasts" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFQ3ZuyILnKhg" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/e227cd9674618024276c65f1213fb05af34cf512", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#777777" + }, + "title": { + "transformedLabel": "Business & Technology" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFQRiNGmKYj3B" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://charts-images.scdn.co/assets/locale_en/regional/weekly/region_global_default.jpg", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8d67ab" + }, + "title": { + "transformedLabel": "Charts" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAudkNjCgYMM0TZXDw" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafbca4d84993408c24bec78de8", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#1e3264" + }, + "title": { + "transformedLabel": "Telugu" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFIdOwkMWR5at" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafa862ab80dd85682b37c4e768", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#148a08" + }, + "title": { + "transformedLabel": "Pop" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFEC4WFtoNRpw" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafa1a252e3a815b65778d8c2aa", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e91429" + }, + "title": { + "transformedLabel": "Indie" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFCWjUTdzaG0e" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafb03c6f8e7efca2ae36f41b31", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e61e32" + }, + "title": { + "transformedLabel": "Love" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAUsdyVjCQuL" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/d0fb2ab104dc4846bdc56d72b0b0d785.jpeg", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8d67ab" + }, + "title": { + "transformedLabel": "Discover" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAtOnAEpjOgUKwXyxj" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf1867113f5218598847550acd", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#b02897" + }, + "title": { + "transformedLabel": "Trending" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFQIL0AXnG5AK" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf271f9d895003c5f5561c1354", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e1118c" + }, + "title": { + "transformedLabel": "Mood" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFzHmL4tf05da" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafcbf80f8ea695536eace4fd2c", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#537aa1" + }, + "title": { + "transformedLabel": "Party" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFA6SOHvT3gck" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/ad3e3f8f80eb494d998a435f7a5ae8c7", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#c39687" + }, + "title": { + "transformedLabel": "Devotional" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFOTGtSOysEXE" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caff005a355830c374754d32868", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#ba5d07" + }, + "title": { + "transformedLabel": "Decades" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFIVNxQgRNSg0" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf9e3dea60be755ccd97b7351f", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#503750" + }, + "title": { + "transformedLabel": "Hip-Hop" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFQ00XGBls6ym" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafdfdaac1cf9574a196ca25196", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#d84000" + }, + "title": { + "transformedLabel": "Dance/Electronic" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFHOzuVTgTizF" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafdad1281e13697e8d8cf8f347", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#af2896" + }, + "title": { + "transformedLabel": "Student" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFJw7QLnM27p6" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf47e942f5bea637f4f4760170", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#d84000" + }, + "title": { + "transformedLabel": "Chill" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFFzDl7qN9Apr" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf26dd3719e8824756914ae61f", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e8115b" + }, + "title": { + "transformedLabel": "Gaming" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFCfObibaOZbv" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf013ee3c983e6f60bf28bad5a", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#148a08" + }, + "title": { + "transformedLabel": "K-pop" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFGvOw3O4nLAf" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f000000029249b35f23fb596b6f006a15", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#777777" + }, + "title": { + "transformedLabel": "Workout" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAXlCG6QvYQ4" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafe760702de052fbefea27064a", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#a56752" + }, + "title": { + "transformedLabel": "RADAR" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFOOxftoKZxod" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf9ed6e364e8839210dc4dbff7", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#056952" + }, + "title": { + "transformedLabel": "EQUAL" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFPw634sFwguI" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafcc1499bbb8565f490858c2bc", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#ff0090" + }, + "title": { + "transformedLabel": "Fresh Finds" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFImHYGo3eTSg" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafae7e69beb88f16969641b53e", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e91429" + }, + "title": { + "transformedLabel": "Rock" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFDXXwE9BDJAr" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f00000002b70e0223f544b1faa2e95ed0", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#1E3264" + }, + "title": { + "transformedLabel": "Sleep" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFCuoRTxhYWow" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f000000028bc55791c7c394b24c319877", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#7d4b32" + }, + "title": { + "transformedLabel": "Indian Classical" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAEu5QlAkwvV" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f000000028ed1a5002b96c2ea882541b2", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#537aa1" + }, + "title": { + "transformedLabel": "Instrumental" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFRieVZLLoo9m" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf14030380532b34badbf0a229", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#777777" + }, + "title": { + "transformedLabel": "Spotify Singles" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFDBgllo2cUIN" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafe914a07d20cec7a65e2e5dad", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#5179a1" + }, + "title": { + "transformedLabel": "At Home" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFx0uLQR2okcc" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafc0d2222b4c6441930e1a386e", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#d84000" + }, + "title": { + "transformedLabel": "Country" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFKLfwjuJMoNC" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caff4e38be86ca48a3b10884ae3", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#ba5d07" + }, + "title": { + "transformedLabel": "R&B" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFEZPnFQSFB1T" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafefa737b67ec51ec989f5a51d", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e91429" + }, + "title": { + "transformedLabel": "Metal" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFDkd668ypn6O" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafe289743024639ea8f202364d", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#777777" + }, + "title": { + "transformedLabel": "Jazz" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAJ5xb0fwo9m" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf12809992dfc5b318892ea07b", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#7d4b32" + }, + "title": { + "transformedLabel": "Classical" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFPrEiAOxgac3" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafcc70a3c2e4c71398708bdc4a", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#bc5900" + }, + "title": { + "transformedLabel": "Folk & Acoustic" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFy78wprEpAjl" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f00000002e4eadd417a05b2546e866934", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#503750" + }, + "title": { + "transformedLabel": "Focus" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFCbimwdOYlsl" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf78c17dc5631c053fd95f31bb", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#0d73ec" + }, + "title": { + "transformedLabel": "Disney" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFIxnofjQmnmn" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafd82e2c83fe100a89e9cbb2a2", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#dc148c" + }, + "title": { + "transformedLabel": "Soul" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFIpEuaCnimBj" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf8a04560a209b3f32165ea8a2", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8d67ab" + }, + "title": { + "transformedLabel": "Kids & Family" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFFoimhOqWzLB" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67706f00000002c19c5f13f8b3ff2d73ff00bc", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e41d63" + }, + "title": { + "transformedLabel": "Anime" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFziKOShCi009" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafb4c4523336133ec3c7fd1744", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#af2896" + }, + "title": { + "transformedLabel": "TV & Movies" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFOzQeOmemkuw" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafb2cdd7a95b0a5444aa15cfb5", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#1e3264" + }, + "title": { + "transformedLabel": "Punk" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAjfauKLOZiv" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafa6ee95dc83af715115f40522", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#477d95" + }, + "title": { + "transformedLabel": "Ambient" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFLjmiZRss79w" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caff22ac5cab318d550b593ffac", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#b06239" + }, + "title": { + "transformedLabel": "Blues" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFQiK2EHwyjcU" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafe53d71d0920a4f1f441d803c", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#ba5d07" + }, + "title": { + "transformedLabel": "Cooking & Dining" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFRY5ok2pxXJ0" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf106e29a9f294cb4265da6af9", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e13300" + }, + "title": { + "transformedLabel": "Alternative" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFFtlLYUHv8bT" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf8dec632effd9735fa8aba06e", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#a56752" + }, + "title": { + "transformedLabel": "Wellness" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFLb2EqgLtpjC" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf4b36a2c31432ace68d90c4f2", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#0d72ed" + }, + "title": { + "transformedLabel": "Travel" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFAQy4HL4XU2D" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf8ba1febbb4f77336b6f9aace", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#0d73ec" + }, + "title": { + "transformedLabel": "Caribbean" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFObNLOHydSW8" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf04faccb4f5e1828600921f37", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#d84000" + }, + "title": { + "transformedLabel": "Afro" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFNQ0fGp4byGU" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafb973ab1288f74f333e7e2e22", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#8c1932" + }, + "title": { + "transformedLabel": "Songwriters" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFSCjnQr8QZ3O" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafbbf84e26e69a78883118913c", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#477d95" + }, + "title": { + "transformedLabel": "Nature & Noise" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFI3pNLtYMD9S" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafbb0e4ea229824157eee7467d", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e61e32" + }, + "title": { + "transformedLabel": "Funk & Disco" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFFsW9N8maB6z" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf2b1ff59a971dd399dea96009", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#148a08" + }, + "title": { + "transformedLabel": "League of Legends" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFLYQVFHcXMae" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf097a46192e6bb67e52cdff60", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#27856a" + }, + "title": { + "transformedLabel": "Summer" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFLVaM30PMBm4" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf4546867d66e63e828683d872", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e61e32" + }, + "title": { + "transformedLabel": "Netflix" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFEOEBCABAxo9" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf43752ff9764492b8e2a5bf54", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#f59b23" + }, + "title": { + "transformedLabel": "Asian Pacific Islander Heritage Month" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFFgo8jQnAk7E" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf50cfe3fbd3a9fb8810da45ea", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#0d73ec" + }, + "title": { + "transformedLabel": "GLOW" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFGnsSfvg90Wo" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005caf3e87a8609ad96dd14c5e1ef3", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#ff4632" + }, + "title": { + "transformedLabel": "Music + Talk" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFRNXsIvgZF9A" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://i.scdn.co/image/ab67fb8200005cafa59f90c077c9f618fd0dde30", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e1118c" + }, + "title": { + "transformedLabel": "Latin" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFxXaXKP7zcDp" + }, + { + "content": { + "__typename": "BrowseSectionContainerWrapper", + "data": { + "__typename": "BrowseSectionContainer", + "data": { + "cardRepresentation": { + "artwork": { + "sources": [ + { + "height": 300, + "url": "https://t.scdn.co/images/37732285a0ff4e24987cdf5c45bdf31f.png", + "width": 300 + } + ] + }, + "backgroundColor": { + "hex": "#e8115b" + }, + "title": { + "transformedLabel": "Tastemakers" + } + } + } + } + }, + "uri": "spotify:page:0JQ5DAqbMKFRKBHIxJ5hMm" + } + ] + }, + "uri": "spotify:section:0JQ5DAwD41j2mAgQ1AtEZl" + } + ] + }, + "uri": "spotify:page:0JQ5DArNBzkmxXHCBROWSE" + } + }, + "extensions": {} +} \ No newline at end of file diff --git a/src/constant/footer.js b/src/constant/footer.js new file mode 100644 index 0000000..35340ec --- /dev/null +++ b/src/constant/footer.js @@ -0,0 +1,17 @@ +export const footerData = [ + { + id: 1, + title:"Company", + links: ["about", "jobs", "for the record"], + }, + { + id: 2, + title:"Communities", + links: ["for artists", "developers", "advertising","investors","vendors"], + }, + { + id: 3, + title:"Useful links", + links: ["support", "free mobile app"], + }, +]; diff --git a/src/constant/menus.js b/src/constant/menus.js new file mode 100644 index 0000000..1853376 --- /dev/null +++ b/src/constant/menus.js @@ -0,0 +1,21 @@ +import { GoHomeFill } from "react-icons/go"; +import { GoHome } from "react-icons/go"; +import { BiSearchAlt } from "react-icons/bi"; +import { BiSearch } from "react-icons/bi"; + +export const menus = [ + { + id: 1, + icon: GoHome, + activeIcon: GoHomeFill, + label: "Home", + link:"/", + }, + { + id: 2, + icon: BiSearch, + activeIcon: BiSearchAlt, + label: "Search", + link:"/search", + }, +]; diff --git a/src/constant/songLists.json b/src/constant/songLists.json new file mode 100644 index 0000000..2832be5 --- /dev/null +++ b/src/constant/songLists.json @@ -0,0 +1,83 @@ +[ + { + "title": "Tum Hi Ho", + "singer": "Arijit Singh", + "timestamp": "2013", + "image": "https://example.com/tum_hi_ho_image.jpg", + "audio_url": "https://example.com/tum_hi_ho_audio.mp3", + "duration": "4:24" + }, + { + "title": "Teri Mitti", + "singer": "B Praak", + "timestamp": "2019", + "image": "https://example.com/teri_mitti_image.jpg", + "audio_url": "https://example.com/teri_mitti_audio.mp3", + "duration": "5:14" + }, + { + "title": "Chaiyya Chaiyya", + "singer": "Sukhwinder Singh, Sapna Awasthi", + "timestamp": "1998", + "image": "https://example.com/chaiyya_chaiyya_image.jpg", + "audio_url": "https://example.com/chaiyya_chaiyya_audio.mp3", + "duration": "6:51" + }, + { + "title": "Gerua", + "singer": "Arijit Singh, Antara Mitra", + "timestamp": "2015", + "image": "https://example.com/gerua_image.jpg", + "audio_url": "https://example.com/gerua_audio.mp3", + "duration": "5:45" + }, + { + "title": "Dil Diyan Gallan", + "singer": "Atif Aslam", + "timestamp": "2017", + "image": "https://example.com/dil_diyan_gallan_image.jpg", + "audio_url": "https://example.com/dil_diyan_gallan_audio.mp3", + "duration": "4:21" + }, + { + "title": "Ghar More Pardesiya", + "singer": "Shreya Ghoshal, Vaishali Mhade", + "timestamp": "2019", + "image": "https://example.com/ghar_more_pardesiya_image.jpg", + "audio_url": "https://example.com/ghar_more_pardesiya_audio.mp3", + "duration": "4:21" + }, + { + "title": "Lamberghini", + "singer": "The Doorbeen, Ragini", + "timestamp": "2018", + "image": "https://example.com/lamberghini_image.jpg", + "audio_url": "https://example.com/lamberghini_audio.mp3", + "duration": "3:52" + }, + { + "title": "Tera Ban Jaunga", + "singer": "Akhil Sachdeva, Tulsi Kumar", + "timestamp": "2019", + "image": "https://example.com/tera_ban_jaunga_image.jpg", + "audio_url": "https://example.com/tera_ban_jaunga_audio.mp3", + "duration": "3:57" + }, + { + "title": "Ghoomar", + "singer": "Shreya Ghoshal, Swaroop Khan", + "timestamp": "2018", + "image": "https://example.com/ghoomar_image.jpg", + "audio_url": "https://example.com/ghoomar_audio.mp3", + "duration": "4:43" + }, + { + "title": "Malhari", + "singer": "Vishal Dadlani", + "timestamp": "2015", + "image": "https://example.com/malhari_image.jpg", + "audio_url": "https://example.com/malhari_audio.mp3", + "duration": "4:11" + } + ] + \ No newline at end of file diff --git a/src/constant/songs.json b/src/constant/songs.json new file mode 100644 index 0000000..bde64a3 --- /dev/null +++ b/src/constant/songs.json @@ -0,0 +1,51 @@ +[ + { + "id": 1, + "title": "Chaiyya Chaiyya", + "image": "https://example.com/chaiyya_chaiyya.jpg", + "description": "A popular Bollywood song from the movie 'Dil Se'." + }, + { + "id": 2, + "title": "Tum Hi Ho", + "image": "https://example.com/tum_hi_ho.jpg", + "description": "A romantic song by Arijit Singh." + }, + { + "id": 3, + "title": "Mere Sapno Ki Rani", + "image": "https://example.com/mere_sapno_ki_rani.jpg", + "description": "A classic Hindi song featuring Rajesh Khanna and Sharmila Tagore." + }, + { + "id": 4, + "title": "Jai Ho", + "image": "https://example.com/jai_ho.jpg", + "description": "An Oscar-winning song from the movie 'Slumdog Millionaire', composed by A.R. Rahman." + }, + { + "id": 5, + "title": "Tunak Tunak Tun", + "image": "https://example.com/tunak_tunak_tun.jpg", + "description": "A Punjabi pop song by Daler Mehndi, known for its infectious beats and colorful music video, which became a global sensation." + }, + { + "id": 6, + "title": "Ghoomar", + "image": "https://example.com/ghoomar.jpg", + "description": "A traditional Rajasthani folk song featured in the movie 'Padmaavat', known for its graceful dance moves and rich cultural elements." + }, + { + "id": 7, + "title": "Ae Dil Hai Mushkil", + "image": "https://example.com/ae_dil_hai_mushkil.jpg", + "description": "A romantic ballad from the movie of the same name, composed by Pritam and sung by Arijit Singh, expressing the complexities of love and heartbreak." + }, + { + "id": 8, + "title": "Radha", + "image": "https://example.com/radha.jpg", + "description": "A peppy song from the movie 'Student of the Year', featuring upbeat music and vibrant choreography, capturing the essence of youth and romance." + } + ] + \ No newline at end of file diff --git a/src/index.css b/src/index.css index 6119ad9..6f5fb25 100644 --- a/src/index.css +++ b/src/index.css @@ -1,68 +1,22 @@ -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; +@tailwind base; +@tailwind components; +@tailwind utilities; - 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; + /* For Webkit-based browsers (Chrome, Safari and Opera) */ +.scrollbar-hide::-webkit-scrollbar { + display: none; } -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; +/* For IE, Edge and Firefox */ +.scrollbar-hide { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ } -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } +::-webkit-scrollbar{ + background-color: transparent; + width: 15px; } +::-webkit-scrollbar-thumb{ + background-color: #4d4c4c; +} \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..519dfa0 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { router } from './App.jsx' +import './index.css' + +import { RouterProvider } from 'react-router-dom' + +ReactDOM.createRoot(document.getElementById('root')).render( + +) diff --git a/src/main.tsx b/src/main.tsx deleted file mode 100644 index 3d7150d..0000000 --- a/src/main.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.tsx' -import './index.css' - -ReactDOM.createRoot(document.getElementById('root')!).render( - - - , -) diff --git a/src/pages/home/index.jsx b/src/pages/home/index.jsx new file mode 100644 index 0000000..c0b354c --- /dev/null +++ b/src/pages/home/index.jsx @@ -0,0 +1,31 @@ +import React from "react"; +import Button from "../../components/Button"; +import { Link } from "react-router-dom"; +import songs from "../../constant/songs.json"; +import Card from "../../components/Card"; + +const Home = () => { + return ( + <> +
+

+ Spotify Playlists +

+ + +
+ {songs.slice(0, 5).map((song) => ( + + ))} +
+
+ + ); +}; + +export default Home; diff --git a/src/pages/search-result/index.jsx b/src/pages/search-result/index.jsx new file mode 100644 index 0000000..7dc497a --- /dev/null +++ b/src/pages/search-result/index.jsx @@ -0,0 +1,72 @@ +import React, { useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; +import songList from "../../constant/songLists.json"; + +const SearchResult = () => { + const { srch } = useParams(); + const [data, setData] = useState([]); + + useEffect(() => { + const filterData = songList?.filter( + (list) => + list.title.toLocaleLowerCase().startsWith(srch.toLocaleLowerCase()) || + list.singer.toLocaleLowerCase().startsWith(srch.toLocaleLowerCase()) + ); + + setData(filterData); + }, [srch]); + + console.log(data); + + return ( + <> +
+ {data?.length ? ( +
+
+

Top result

+
+ +

{data[0]?.title}

+ Song + {data[0]?.singer} +
+
+ +
+

Songs

+
+ {data?.slice(0, 3)?.map((item) => { + return ( +
+ +
+

{item.title}

+

{item.singer}

+
+

{item.duration}

+
+ ); + })} +
+
+ +
+ ) : ( +
+

No results found for "{srch}"

+

+ Please make sure your words are spelled correctly, or use fewer or + different keywords. +

+
+ )} +
+ + ); +}; + +export default SearchResult; diff --git a/src/pages/search/index.jsx b/src/pages/search/index.jsx new file mode 100644 index 0000000..db00daf --- /dev/null +++ b/src/pages/search/index.jsx @@ -0,0 +1,35 @@ +import React from "react"; +import category from "../../constant/category.json"; + +const SearchPage = () => { + return ( + <> +

Browse all

+
+ {category?.data?.browseStart?.sections?.items[0]?.sectionItems?.items?.map( + (item,idx) => ( + + ) + )} +
+ + ); +}; + +const RenderCard = ({ card }) => { + return ( + card && ( +
+

{card?.title?.transformedLabel}

+
+ +
+
+ ) + ); +}; + +export default SearchPage; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..976c3c9 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,18 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + screens:{ + xs:{min:'500px'}, + sm:{min:'640px'}, + md:{min:'768px'}, + lg:{min:'1024px'}, + xl:{min:'1280px'}, + + } + }, + plugins: [], +} \ No newline at end of file