From 531f8b869ab2b3cf1e2d11901e83dcba5dd4d5d4 Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Wed, 4 Oct 2023 18:30:10 -0400 Subject: [PATCH 1/7] Working addition, need to allow edits and delete --- .gitignore | 25 + README.md | 33 - index.html | 17 + package-lock.json | 2952 +++++++++++++++++ package.json | 34 + src/client/Resources/RhoBetaEpsilon_Logo.jpg | Bin 0 -> 36474 bytes src/client/Resources/RhoBetaEpsilon_Logo.svg | 1 + .../RhoBetaEpsilon_Logo_noBackground.png | Bin 0 -> 134631 bytes src/client/css/sidebar.css | 65 + src/client/css/theming.css | 20 + src/client/homepage.jsx | 182 + src/client/login.jsx | 97 + src/client/main.jsx | 21 + src/client/tableData.jsx | 52 + src/models/User.js | 12 + src/models/attendance.js | 0 src/models/hourSubmission.js | 16 + src/server/main.js | 192 ++ vite.config.js | 7 + 19 files changed, 3693 insertions(+), 33 deletions(-) create mode 100644 .gitignore delete mode 100644 README.md create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/client/Resources/RhoBetaEpsilon_Logo.jpg create mode 100644 src/client/Resources/RhoBetaEpsilon_Logo.svg create mode 100644 src/client/Resources/RhoBetaEpsilon_Logo_noBackground.png create mode 100644 src/client/css/sidebar.css create mode 100644 src/client/css/theming.css create mode 100644 src/client/homepage.jsx create mode 100644 src/client/login.jsx create mode 100644 src/client/main.jsx create mode 100644 src/client/tableData.jsx create mode 100644 src/models/User.js create mode 100644 src/models/attendance.js create mode 100644 src/models/hourSubmission.js create mode 100644 src/server/main.js create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1cac5597 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.env \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 70982294..00000000 --- a/README.md +++ /dev/null @@ -1,33 +0,0 @@ -Assignment 4 - Components -=== - -Due: October 4th, by 11:59 AM. - -For this assignment you will re-implement the client side portion of *either* A2 or A3 using either React or Svelte components. If you choose A3 you only need to use components for the data display / updating; you can leave your login UI as is. - -[Svelte Tutorial](https://github.com/cs-4241-23/cs-4241-23.github.io/blob/main/using.svelte.md) -[React Tutorial](https://github.com/cs-4241-23/cs-4241-23.github.io/blob/main/using.react.md) - -This project can be implemented on any hosting service (Glitch, DigitalOcean, Heroku etc.), however, you must include all files in your GitHub repo so that the course staff can view them. - -Deliverables ---- - -Do the following to complete this assignment: - -1. Implement your project with the above requirements. -3. Test your project to make sure that when someone goes to your main page on Glitch/Heroku/etc., it displays correctly. -4. Ensure that your project has the proper naming scheme `a4-firstname-lastname` so we can find it. -5. Fork this repository and modify the README to the specifications below. Be sure to add *all* project files. -6. Create and submit a Pull Request to the original repo. Name the pull request using the following template: `a4-firstname-lastname`. - -Sample Readme (delete the above when you're ready to submit, and modify the below so with your links and descriptions) ---- - -## Your Web Application Title - -your hosting link e.g. http://a4-charlieroberts.glitch.me - -Include a very brief summary of your project here and what you changed / added to assignment #3. Briefly (3–4 sentences) answer the following question: did the new technology improve or hinder the development experience? - -Unlike previous assignments, this assignment will be solely graded on whether or not you successfully complete it. Partial credit will be generously given. diff --git a/index.html b/index.html new file mode 100644 index 00000000..ba14ce09 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + + + + + + + Membership Portal + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..9604e77c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2952 @@ +{ + "name": "vite-react-starter", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vite-react-starter", + "version": "0.0.0", + "dependencies": { + "express": "^4.18.2", + "express-session": "^1.17.3", + "mongoose": "^7.5.3", + "passport": "^0.6.0", + "passport-github2": "^0.1.12", + "react": "^18.2.0", + "react-bootstrap": "^2.9.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.16.0", + "vite-express": "*" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.10", + "@vitejs/plugin-react": "^3.0.1", + "nodemon": "^2.0.20", + "vite": "^4.0.4" + } + }, + "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.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", + "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@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.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "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.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "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.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", + "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", + "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", + "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.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", + "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", + "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/runtime": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", + "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@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.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz", + "integrity": "sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", + "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@remix-run/router": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz", + "integrity": "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@restart/hooks": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", + "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.6.tgz", + "integrity": "sha512-eC3puKuWE1SRYbojWHXnvCNHGgf3uzHCb6JOhnF4OXPibOIPEkR1sqDSkL643ydigxwh+ruCa1CmYHlzk7ikKA==", + "dependencies": { + "@babel/runtime": "^7.21.0", + "@popperjs/core": "^2.11.6", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.4.9", + "@types/warning": "^3.0.0", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@restart/ui/node_modules/uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "peerDependencies": { + "react": ">=16.14.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/node": { + "version": "20.8.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", + "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.8", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", + "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" + }, + "node_modules/@types/react": { + "version": "18.2.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.24.tgz", + "integrity": "sha512-Ee0Jt4sbJxMu1iDcetZEIKQr99J1Zfb6D4F3qfUWoR1JpInkY1Wdg4WwCyBjL257D0+jGqSl1twBjV8iCaC0Aw==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.9.tgz", + "integrity": "sha512-6nNhVzZ9joQ6F7lozrASuQKC0Kf6ArYMU+DqA2ZrUbB+d+9lC6ZLn1GxiEBI1edmAwvTULtuJ6uPZpv3XudwUg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.7.tgz", + "integrity": "sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.4", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", + "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" + }, + "node_modules/@types/warning": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.1.tgz", + "integrity": "sha512-ywJmriP+nvjBKNBEMaNZgj2irZHoxcKeYcyMLbqhYKbDVn8yCIULy2Ol/tvIb37O3IBeZj3RU4tXqQTtGwoAMg==" + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.1.tgz", + "integrity": "sha512-8hKOnOan+Uu+NgMaCouhg3cT9x5fFZ92Jwf+uDLXLu/MFRbXxlWwGeQY7KVHkeSft6RvY+tdxklUBuyY9eIEKg==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", + "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.1.0-beta.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/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/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "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/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/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.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "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.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bson": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.0.tgz", + "integrity": "sha512-B+QB4YmDx9RStKv8LLSl/aVIEV3nYJc3cJNNTK2Cd1TL+7P+cNpw9mAPeCgc5K+j01Dv6sxUzcITXDx7ZU3F0w==", + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001543", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz", + "integrity": "sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==", + "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.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "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/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/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "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/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.540", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.540.tgz", + "integrity": "sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "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-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-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/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/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/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/kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", + "engines": { + "node": ">=12.0.0" + } + }, + "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/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/mongodb": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.8.1.tgz", + "integrity": "sha512-wKyh4kZvm6NrCPH8AxyzXm3JBoEf4Xulo0aUWh3hCgwgYJxyQ1KLST86ZZaSWdj6/kxYUA3+YZuyADCE61CMSg==", + "dependencies": { + "bson": "^5.4.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongoose": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.5.3.tgz", + "integrity": "sha512-QyYzhZusux0wIJs+4rYyHvel0kJm0CT887trNd1WAB3iQnDuJow0xEnjETvuS/cTjHQUVPihOpN7OHLlpJc52w==", + "dependencies": { + "bson": "^5.4.0", + "kareem": "2.5.1", + "mongodb": "5.8.1", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "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==" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "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/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "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/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/passport": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", + "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", + "dependencies": { + "passport-strategy": "1.x.x", + "pause": "0.0.1", + "utils-merge": "^1.0.1" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-github2": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/passport-github2/-/passport-github2-0.1.12.tgz", + "integrity": "sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw==", + "dependencies": { + "passport-oauth2": "1.x.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/passport-oauth2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.7.0.tgz", + "integrity": "sha512-j2gf34szdTF2Onw3+76alNnaAExlUmHvkc7cL+cmaS5NzHzDP/BvFHJruueQ9XAeNOdpI+CH+PWid8RA7KCwAQ==", + "dependencies": { + "base64url": "3.x.x", + "oauth": "0.9.x", + "passport-strategy": "1.x.x", + "uid2": "0.0.x", + "utils-merge": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "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/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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-bootstrap": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.9.0.tgz", + "integrity": "sha512-dGh6fGjqR9MBzPOp2KbXJznt1Zy6SWepXYUdxMT18Zu/wJ73HCU8JNZe9dfzjmVssZYsJH9N3HHE4wAtQvNz7g==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.6.6", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.5", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "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.16.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz", + "integrity": "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==", + "dependencies": { + "@remix-run/router": "1.9.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz", + "integrity": "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==", + "dependencies": { + "@remix-run/router": "1.9.0", + "react-router": "6.16.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.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/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "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": "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/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "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/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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/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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uid2": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", + "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==" + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.10.tgz", + "integrity": "sha512-TzIjiqx9BEXF8yzYdF2NTf1kFFbjMjUSV0LFZ3HyHoI3SGSPLnnFUKiIQtL3gl2AjHvMrprOvQ3amzaHgQlAxw==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "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/vite-express": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/vite-express/-/vite-express-0.10.0.tgz", + "integrity": "sha512-DtJEJ6dw5sZdH5i1hmjNPjdxcy+spHLhFSSgrQ7vESwZLZ8FnB3jbXqsWTvuKU9OIBXH7vLdmP57wQvQQTkpXA==", + "dependencies": { + "picocolors": "^1.0.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..f14d4b67 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "vite-react-starter", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "nodemon src/server/main.js -w src/server", + "start": "NODE_ENV=production node src/server/main.js", + "build": "vite build" + }, + "engines": { + "node": "^20.7.0" + } + , + "dependencies": { + "express": "^4.18.2", + "express-session": "^1.17.3", + "mongoose": "^7.5.3", + "passport": "^0.6.0", + "passport-github2": "^0.1.12", + "react": "^18.2.0", + "react-bootstrap": "^2.9.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.16.0", + "vite-express": "*" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.10", + "@vitejs/plugin-react": "^3.0.1", + "nodemon": "^2.0.20", + "vite": "^4.0.4" + } +} diff --git a/src/client/Resources/RhoBetaEpsilon_Logo.jpg b/src/client/Resources/RhoBetaEpsilon_Logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b6e31125dfc12639acd643a4a9bcf907ffe6f60 GIT binary patch literal 36474 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 \ No newline at end of file diff --git a/src/client/Resources/RhoBetaEpsilon_Logo_noBackground.png b/src/client/Resources/RhoBetaEpsilon_Logo_noBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..78d7921ca210d75c2a5ebfe22c3f29e864f4f311 GIT binary patch literal 134631 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

nc^K}mr5j1YZXMPW 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

&#GwOj-Li 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

v{1u0c*&Q7ITkhVi_4AD56s!ev5g0%x2s!T{^Q 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 I>zopr03L70$^ZZW literal 0 HcmV?d00001 diff --git a/src/client/css/sidebar.css b/src/client/css/sidebar.css new file mode 100644 index 00000000..5dd924f4 --- /dev/null +++ b/src/client/css/sidebar.css @@ -0,0 +1,65 @@ +body { + min-height: 100vh; + min-height: -webkit-fill-available; +} + +html { + height: -webkit-fill-available; +} + +main { + height: 100vh; + height: -webkit-fill-available; + max-height: 100vh; + overflow-x: auto; + overflow-y: hidden; +} + +.dropdown-toggle { + outline: 0; +} + +.btn-toggle { + padding: 0.25rem 0.5rem; + font-weight: 600; + color: var(--bs-emphasis-color); + background-color: transparent; +} +.btn-toggle:hover, +.btn-toggle:focus { + color: rgba(var(--bs-emphasis-color-rgb), 0.85); + background-color: var(--bs-tertiary-bg); +} + +.btn-toggle::before { + width: 1.25em; + line-height: 0; + content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); + transition: transform 0.35s ease; + transform-origin: 0.5em 50%; +} + +[data-bs-theme="dark"] .btn-toggle::before { + content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); +} + +.btn-toggle[aria-expanded="true"] { + color: rgba(var(--bs-emphasis-color-rgb), 0.85); +} +.btn-toggle[aria-expanded="true"]::before { + transform: rotate(90deg); +} + +.btn-toggle-nav a { + padding: 0.1875rem 0.5rem; + margin-top: 0.125rem; + margin-left: 1.25rem; +} +.btn-toggle-nav a:hover, +.btn-toggle-nav a:focus { + background-color: var(--bs-tertiary-bg); +} + +.scrollarea { + overflow-y: auto; +} diff --git a/src/client/css/theming.css b/src/client/css/theming.css new file mode 100644 index 00000000..9f313f87 --- /dev/null +++ b/src/client/css/theming.css @@ -0,0 +1,20 @@ +:root { + --primary-color: #a23535; + --secondary-color: #ffdf50; + --accent-color: #000; +} + +body { + margin-left: 380px; + font-family: "Ubuntu", Georgia, "Times New Roman", Times, serif; + background-color: white; +} + +.primary-color { + background-color: unset; + background-color: var(--primary-color); +} + +.editable td.edit { + background: #f8ff88; +} diff --git a/src/client/homepage.jsx b/src/client/homepage.jsx new file mode 100644 index 00000000..68c71fd2 --- /dev/null +++ b/src/client/homepage.jsx @@ -0,0 +1,182 @@ +import "./css/theming.css"; +import rbeLogo from "./Resources/RhoBetaEpsilon_Logo_noBackground.png"; +import "./css/sidebar.css"; +import React from "react"; +import { useState, useEffect } from "react"; +import { + Container, + Row, + Col, + Navbar, + Nav, + NavDropdown, + Form, + Button, + Table, +} from "react-bootstrap"; + +import TableData from "./tableData"; + +class hourEntry { + constructor(date, num, reasoning) { + this.date = date; + this.numHours = num; + this.reason = reasoning; + } + setDate(date) { + this.date = date; + } + setNumHours(num) { + this.numHours = num; + } + + setReason(reason) { + this.reason = reason; + } + + setID(id) { + this.id = id; + } +} + +function Homepage() { + const [hours, setHours] = useState(""); + const [date, setDate] = useState(""); + const [reason, setReason] = useState(""); + const [submissions, setSubmissions] = useState({}); + let tableData = null; + + //gets data from the server on load + useEffect(() => { + fetch("/getData", { + method: "GET", + headers: { "Content-Type": "application/json" }, + }) + .then((res) => res.json()) + .then((data) => { + console.log("recieved data: ", data); + setSubmissions(data); + }); + }, []); + + const submitData = async function () { + event.preventDefault(); + let newSubmission = new hourEntry(date, hours, reason); + const body = JSON.stringify(newSubmission); + console.log("New submission: ", body); + const response = await fetch("/getData", { + method: "GET", + headers: { "Content-Type": "application/json" }, + body: body, + }); + + const text = await response.text(); + const data = JSON.parse(text); + setSubmissions(data); + console.log("gonna print data:", data); + }; + + return ( + + + + + Rho Beta Epsilon Logo + Rho Beta Epsilon + +


+ +
+ + {/* Add NavDropdown.Item items as needed */} + + + Sign out + + + + + +
+ + + Number of Hours Completed + + setHours(event.target.value)} + /> + + + Date Completed + setDate(event.target.value)} + /> + + + + Reason for Hours + + { + setReason(event.target.value); + // console.log(reason); + }} + /> + + +
+
+ + + + + ); +} + +export default Homepage; diff --git a/src/client/login.jsx b/src/client/login.jsx new file mode 100644 index 00000000..6ee68bad --- /dev/null +++ b/src/client/login.jsx @@ -0,0 +1,97 @@ +import "./css/theming.css"; +import rbeLogo from "./Resources/RhoBetaEpsilon_Logo_noBackground.png"; +import React from "react"; +import { useState } from "react"; +import { Image, Form, Button, Navbar } from "react-bootstrap"; +import Modal from "react-bootstrap/Modal"; + +// const githubLogin = async function githubOAuth(); + +function Login() { + const [username, setUsername] = useState(""); + const [password, setPassword] = useState(""); + + const handleSubmit = (event) => { + event.preventDefault(); + alert(username); + }; + const githubOAuth = (event) => { + console.log("githubbing"); + window.location.href = "/auth/github"; + }; + + return ( +
+ + + Rho Beta Epsilon Logo +
+ Rho Beta Epsilon Member Portal +
+
+ + +
+ + + Sign In + + + +
+ + setUsername(e.target.value)} + /> + + + + setPassword(e.target.value)} + /> + + + +
+
+

Or use a third-party

+ +
+
+
+
+ ); +} + +export default Login; diff --git a/src/client/main.jsx b/src/client/main.jsx new file mode 100644 index 00000000..389f5f1a --- /dev/null +++ b/src/client/main.jsx @@ -0,0 +1,21 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import Login from "./login.jsx"; +import Homepage from "./homepage.jsx"; +import "./css/theming.css"; + +// Importing the Bootstrap CSS +import "bootstrap/dist/css/bootstrap.min.css"; + +const router = createBrowserRouter([ + { path: "/", element: }, + { path: "/index", element: }, + { path: "/homepage", element: }, +]); + +ReactDOM.createRoot(document.getElementById("root")).render( + + + +); diff --git a/src/client/tableData.jsx b/src/client/tableData.jsx new file mode 100644 index 00000000..7221d748 --- /dev/null +++ b/src/client/tableData.jsx @@ -0,0 +1,52 @@ +import React from "react"; +import { Button, Table } from "react-bootstrap"; + +function TableData({ entries }) { + const data = Array.isArray(entries) ? entries : []; + if (data == []) { + return
; + } + let totalHours = 0; + return ( +
+ + + + + + + + + + + {data.map((entry) => { + totalHours += entry.numHours; + return ( + + + + + + + ); + })} + +
Number of HoursDateReasonDelete
{entry.numHours}{entry.date}{entry.reason} + +
+
+ + + + + + + +
Total Hours:{totalHours}
+
+ ); +} + +export default TableData; diff --git a/src/models/User.js b/src/models/User.js new file mode 100644 index 00000000..daaa2e5a --- /dev/null +++ b/src/models/User.js @@ -0,0 +1,12 @@ +import mongoose from "mongoose"; + +const { Schema } = mongoose; + +const userSchema = new Schema({ + name: { type: String, required: true }, + password: { type: String, required: true }, + email: { type: String, unique: true, sparse: true }, + user_id: { type: String, sparse: true }, +}); + +export default mongoose.model("User", userSchema); diff --git a/src/models/attendance.js b/src/models/attendance.js new file mode 100644 index 00000000..e69de29b diff --git a/src/models/hourSubmission.js b/src/models/hourSubmission.js new file mode 100644 index 00000000..62c9c3e3 --- /dev/null +++ b/src/models/hourSubmission.js @@ -0,0 +1,16 @@ +import mongoose from "mongoose"; + +const { Schema, SchemaTypes } = mongoose; + +const HourSchema = new Schema({ + date: { type: Date, required: true }, + person: { type: SchemaTypes.ObjectId, ref: "User", required: true }, + numHours: { type: Number, required: true }, + reason: { type: String, required: true }, +}); + +HourSchema.virtual("url").get(function () { + return "/"; +}); + +export default mongoose.model("Submission", HourSchema); diff --git a/src/server/main.js b/src/server/main.js new file mode 100644 index 00000000..78d57fd6 --- /dev/null +++ b/src/server/main.js @@ -0,0 +1,192 @@ +import "dotenv/config"; +import mongoose from "mongoose"; +import User from "../models/User.js"; +import Submission from "../models/hourSubmission.js"; +import express from "express"; +import session from "express-session"; +import ViteExpress from "vite-express"; +import passport from "passport"; +import GitHubStrategy from "passport-github2"; +import "crypto"; + +// const cookieParser = require("cookie-parser"); +const app = express(); + +app.use(express.static("src/")); +// app.use(ViteExpress.static("/")); +app.use(express.static("./index.html")); +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); + +app.use( + session({ secret: "keyboard cat", resave: true, saveUninitialized: false }) +); + +// app.use(cookieParser); + +const password = encodeURIComponent(process.env.PASS); + +mongoose.connect( + `mongodb+srv://${process.env.MONGO_USER}:${password}@${process.env.HOST}` +); + +passport.serializeUser((user, done) => { + console.log("SerializeUser:", user); + done(null, user._id); +}); + +passport.deserializeUser(async (id, done) => { + try { + let user = await User.findById(id, "name email _id"); + done(null, user); + } catch (error) { + done(error, null); + } +}); + +passport.use( + new GitHubStrategy( + { + clientID: process.env.GITHUB_CLIENT_ID, + clientSecret: process.env.GITHUB_CLIENT_SECRET, + callbackURL: "http://localhost:8080/auth/github/callback", + }, + async (accessToken, refreshToken, profile, done) => { + console.log("GitHub Authentication Successful"); + // console.log(profile); // Log the user profile for debugging + try { + const user = await User.findOne({ user_id: profile.id }); + console.log("github user: ", user); + if (user != null) { + console.log("found the user"); + return done(null, user); + } else { + const newUser = new User({ + email: profile.email, + name: profile.displayName, + password: "auto", + user_id: profile.id, + }); + + const savedUser = await newUser.save(); + console.log("Saved a new user"); + return done(null, savedUser); + } + } catch (error) { + return done(error); + } + } + ) +); + +app.use(passport.initialize()); +app.use(passport.session()); + +// Routes +// GitHub OAuth2 login route +app.get( + "/auth/github", + passport.authenticate("github", { scope: ["user:email"] }) +); + +// GitHub OAuth2 callback route +app.get( + "/auth/github/callback", + passport.authenticate("github", { failureRedirect: "/", session: true }), + async function (req, res) { + req.session.user = await User.findById(req.session.passport.user._id); + console.log(req.session); + res.redirect("/homepage"); + } +); +//__________________________________________________________________________ + +app.post("/findUser", async function (req, res) { + console.log("accessing the db"); + // debugger; + let data = req.body; + console.log("data: ", data); + let username = data.username; + try { + const user = await User.findOne({ name: username }).exec(); + console.log("user: ", user); + + if (user != null) { + if (user.password == data.password) { + console.log("logging in the user"); + req.session.login = true; + req.session.user = user; + res.send(JSON.stringify("true")); + } else { + console.log("failed to log in due to password"); + res.send(JSON.stringify("false")); + } + } else { + console.log("creating a new user"); + let randNum = crypto.randomBytes(8).toString("hex"); + const newUser = new User({ + email: data.username, + name: data.username, + password: data.password, + user_id: randNum, + }); + + await newUser.save(); + console.log("Saved a new user and logging in"); + req.session.login = true; + req.session.user = newUser; + res.send(JSON.stringify("true")); + } + } catch (error) { + res.send(JSON.stringify("false")); + console.log("Something went wrong"); + console.log(error); + } +}); + +app.get("/signout", function (req, res) { + req.session = null; + res.redirect("/"); +}); + +app.get("/getData", async (req, res) => { + const result = await Submission.find({ person: req.session.user._id }); + let body = JSON.stringify(result); + // console.log("data: ", body); + res.send(body); +}); + +app.post("/add", async (req, res) => { + let data = req.body; + debugger; + console.log("addition data: ", data); + let submission = new Submission({ + date: data.date, + person: req.session.user._id, + numHours: data.numHours, + reason: data.reason, + }); + await submission.save(); + res.redirect("/getData"); + console.log("saved an entry"); +}); + +app.post("/update", async (req, res) => { + let data = req.body; + console.log("edited data: ", data); + debugger; + const query = { [`${data.updatedCell}`]: data.newVal }; + await Submission.updateOne({ _id: data.hourID }, query); + console.log("should have updated"); + res.redirect("/getData"); +}); + +const logger = (req, res, next) => { + // console.log("url:", req.url); + next(); +}; + +app.use(logger); +ViteExpress.listen(app, 8080, () => { + console.log("Listening"); +}); diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 00000000..9cc50ead --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); From 78bf0b6a8662686afcae4697ac5bb2802c7e28b2 Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Wed, 4 Oct 2023 21:15:12 -0400 Subject: [PATCH 2/7] Adding deletions --- src/client/homepage.jsx | 82 +++++++++++++++++++++++++++++++++++++--- src/client/tableData.jsx | 29 +++++++++++++- src/server/main.js | 8 ++++ 3 files changed, 111 insertions(+), 8 deletions(-) diff --git a/src/client/homepage.jsx b/src/client/homepage.jsx index 68c71fd2..5e149617 100644 --- a/src/client/homepage.jsx +++ b/src/client/homepage.jsx @@ -43,8 +43,7 @@ function Homepage() { const [hours, setHours] = useState(""); const [date, setDate] = useState(""); const [reason, setReason] = useState(""); - const [submissions, setSubmissions] = useState({}); - let tableData = null; + const [submissions, setSubmissions] = useState([]); //gets data from the server on load useEffect(() => { @@ -59,13 +58,13 @@ function Homepage() { }); }, []); - const submitData = async function () { + const submitData = async function (event) { event.preventDefault(); let newSubmission = new hourEntry(date, hours, reason); const body = JSON.stringify(newSubmission); console.log("New submission: ", body); - const response = await fetch("/getData", { - method: "GET", + const response = await fetch("/add", { + method: "POST", headers: { "Content-Type": "application/json" }, body: body, }); @@ -76,6 +75,22 @@ function Homepage() { console.log("gonna print data:", data); }; + const deleteEntry = async (event) => { + const elemID = + event.currentTarget.parentElement.parentElement.dataset.internal_id; + console.log("target to delete id: ", elemID); + const response = await fetch("/delete", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ hourID: elemID }), + }); + const text = await response.text(); + const newData = JSON.parse(text); + setSubmissions(newData); + console.log("gonna print data:", data); + }; + + let totalHours = 0; return ( @@ -172,7 +187,62 @@ function Homepage() {
- +
+ + + + + + + + + + + + {submissions.map((entry) => { + totalHours += entry.numHours; + return ( + + + + + + + + ); + })} + +
Number of HoursDateReasonDeleteEdit
{entry.numHours}{entry.date}{entry.reason} + + + +
+
+ + + + + + + +
Total Hours:{totalHours}
+
diff --git a/src/client/tableData.jsx b/src/client/tableData.jsx index 7221d748..a93eda39 100644 --- a/src/client/tableData.jsx +++ b/src/client/tableData.jsx @@ -2,6 +2,21 @@ import React from "react"; import { Button, Table } from "react-bootstrap"; function TableData({ entries }) { + const deleteEntry = async (event) => { + const elemID = + event.currentTarget.parentElement.parentElement.dataset.internal_id; + console.log("target to delete id: ", elemID); + const response = await fetch("/delete", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ hourID: elemID }), + }); + const text = await response.text(); + const newData = JSON.parse(text); + entries = newData; + console.log("gonna print data:", data); + }; + const data = Array.isArray(entries) ? entries : []; if (data == []) { return
; @@ -16,21 +31,31 @@ function TableData({ entries }) { Date Reason Delete + Edit {data.map((entry) => { totalHours += entry.numHours; return ( - + {entry.numHours} {entry.date} {entry.reason} - + + + ); })} diff --git a/src/server/main.js b/src/server/main.js index 78d57fd6..036e1f57 100644 --- a/src/server/main.js +++ b/src/server/main.js @@ -171,6 +171,14 @@ app.post("/add", async (req, res) => { console.log("saved an entry"); }); +app.post("/delete", async (req, res) => { + let data = req.body; + debugger; + console.log("deletion data: ", data); + await Submission.findByIdAndDelete(data.hourID); + res.redirect("/getData"); +}); + app.post("/update", async (req, res) => { let data = req.body; console.log("edited data: ", data); From 6d0829a9b96f133820e61e8516c669b6e4d92758 Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Thu, 5 Oct 2023 12:17:44 -0400 Subject: [PATCH 3/7] Everything is working --- package-lock.json | 89 ++++++++++++++++++++++------ package.json | 5 +- src/client/css/theming.css | 5 ++ src/client/homepage.jsx | 117 +++++++++++++++++++++++++++++++------ src/server/main.js | 21 +++++-- 5 files changed, 191 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9604e77c..43cc32bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,8 +23,11 @@ "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", "@vitejs/plugin-react": "^3.0.1", - "nodemon": "^2.0.20", + "nodemon": "^3.0.1", "vite": "^4.0.4" + }, + "engines": { + "node": "^20.7.0" } }, "node_modules/@ampproject/remapping": { @@ -2024,9 +2027,9 @@ "dev": true }, "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", + "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", "dev": true, "dependencies": { "chokidar": "^3.5.2", @@ -2034,8 +2037,8 @@ "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -2044,7 +2047,7 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", @@ -2060,15 +2063,39 @@ "ms": "^2.1.1" } }, + "node_modules/nodemon/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/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/nodemon/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/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -2612,26 +2639,50 @@ "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/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/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/simple-update-notifier/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/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", diff --git a/package.json b/package.json index f14d4b67..64629f17 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ }, "engines": { "node": "^20.7.0" - } - , + }, "dependencies": { "express": "^4.18.2", "express-session": "^1.17.3", @@ -28,7 +27,7 @@ "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", "@vitejs/plugin-react": "^3.0.1", - "nodemon": "^2.0.20", + "nodemon": "^3.0.1", "vite": "^4.0.4" } } diff --git a/src/client/css/theming.css b/src/client/css/theming.css index 9f313f87..6abbaddb 100644 --- a/src/client/css/theming.css +++ b/src/client/css/theming.css @@ -18,3 +18,8 @@ body { .editable td.edit { background: #f8ff88; } + +input:focus { + outline: 1px solid #ccc; + border: 1px solid #ccc; +} diff --git a/src/client/homepage.jsx b/src/client/homepage.jsx index 5e149617..b62cf421 100644 --- a/src/client/homepage.jsx +++ b/src/client/homepage.jsx @@ -44,7 +44,8 @@ function Homepage() { const [date, setDate] = useState(""); const [reason, setReason] = useState(""); const [submissions, setSubmissions] = useState([]); - + const [editable, setEditable] = useState(false); + const [content, setContent] = useState("Edit"); //gets data from the server on load useEffect(() => { fetch("/getData", { @@ -82,12 +83,52 @@ function Homepage() { const response = await fetch("/delete", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ hourID: elemID }), + body: JSON.stringify({ submissionID: elemID }), }); const text = await response.text(); const newData = JSON.parse(text); setSubmissions(newData); - console.log("gonna print data:", data); + }; + + const controlEdit = async () => { + console.log(editable); + if (editable) { + const response = await fetch("/getData", { + method: "GET", + headers: { "Content-Type": "application/json" }, + }); + const text = await response.text(); + const newData = JSON.parse(text); + setSubmissions(newData); + + setContent("Submit Edits"); + } else { + console.log("Gonna update"); + const response = await fetch("/update", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(submissions), + }); + const text = await response.text(); + const newData = JSON.parse(text); + setSubmissions(newData); + + setContent("Edit"); + } + setEditable(!editable); + console.log(editable); + }; + + const onChangeInput = (e, entryID) => { + e.preventDefault(); + let evt = e.currentTarget; + const name = evt.name; + const value = evt.value; + const rowID = evt.parentElement.parentElement.dataset.internal_id; + const edited = submissions.map((item) => + item._id === entryID && name ? { ...item, [name]: value } : item + ); + setSubmissions(edited); }; let totalHours = 0; @@ -168,6 +209,7 @@ function Homepage() { Reason for Hours Date Reason Delete - Edit - + {submissions.map((entry) => { - totalHours += entry.numHours; + totalHours += parseInt(entry.numHours); return ( - - {entry.numHours} - {entry.date} - {entry.reason} + + + onChangeInput(e, entry._id)} + > + + + onChangeInput(e, entry._id)} + > + + + onChangeInput(e, entry._id)} + > + - ); })} +
{ const result = await Submission.find({ person: req.session.user._id }); let body = JSON.stringify(result); - // console.log("data: ", body); + console.log("gotten data: ", result); res.send(body); }); @@ -173,18 +173,27 @@ app.post("/add", async (req, res) => { app.post("/delete", async (req, res) => { let data = req.body; - debugger; console.log("deletion data: ", data); - await Submission.findByIdAndDelete(data.hourID); + await Submission.findByIdAndDelete(data.submissionID); res.redirect("/getData"); }); app.post("/update", async (req, res) => { let data = req.body; console.log("edited data: ", data); - debugger; - const query = { [`${data.updatedCell}`]: data.newVal }; - await Submission.updateOne({ _id: data.hourID }, query); + data.map(async (item) => { + const result = await Submission.updateOne( + { _id: item._id }, + { + $set: { + numHours: item.numHours, + date: item.date, + reason: item.reason, + }, + } + ); + console.log("result:", result); + }); console.log("should have updated"); res.redirect("/getData"); }); From 3d5f338a5d5be55fcb715c6dc9461d09b0a920ea Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Thu, 5 Oct 2023 12:43:14 -0400 Subject: [PATCH 4/7] Working login --- package-lock.json | 7 +++++++ package.json | 1 + src/client/login.jsx | 23 +++++++++++++++++++---- src/server/main.js | 12 ++++++++++-- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43cc32bb..226f9178 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "vite-react-starter", "version": "0.0.0", "dependencies": { + "crypto": "^1.0.1", "express": "^4.18.2", "express-session": "^1.17.3", "mongoose": "^7.5.3", @@ -1262,6 +1263,12 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", diff --git a/package.json b/package.json index 64629f17..15612da3 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "node": "^20.7.0" }, "dependencies": { + "crypto": "^1.0.1", "express": "^4.18.2", "express-session": "^1.17.3", "mongoose": "^7.5.3", diff --git a/src/client/login.jsx b/src/client/login.jsx index 6ee68bad..bc150d51 100644 --- a/src/client/login.jsx +++ b/src/client/login.jsx @@ -5,15 +5,29 @@ import { useState } from "react"; import { Image, Form, Button, Navbar } from "react-bootstrap"; import Modal from "react-bootstrap/Modal"; -// const githubLogin = async function githubOAuth(); - function Login() { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); - const handleSubmit = (event) => { + const handleSubmit = async (event) => { event.preventDefault(); - alert(username); + const user = { + username: username, + password: password, + }; + const response = await fetch("/findUser", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(user), + }); + const text = await response.text(); + const validation = JSON.parse(text); + if (validation == "true") { + console.log("Normal login"); + window.location.href = "/login"; + } else { + console.log("failed to log in"); + } }; const githubOAuth = (event) => { console.log("githubbing"); @@ -73,6 +87,7 @@ function Login() { name="sign_in_button" className="w-100 mb-2 rounded-3" size="lg" + onClick={handleSubmit} > Sign In diff --git a/src/server/main.js b/src/server/main.js index 51deb0a8..30834bca 100644 --- a/src/server/main.js +++ b/src/server/main.js @@ -7,7 +7,7 @@ import session from "express-session"; import ViteExpress from "vite-express"; import passport from "passport"; import GitHubStrategy from "passport-github2"; -import "crypto"; +import Crypto from "crypto"; // const cookieParser = require("cookie-parser"); const app = express(); @@ -123,7 +123,7 @@ app.post("/findUser", async function (req, res) { } } else { console.log("creating a new user"); - let randNum = crypto.randomBytes(8).toString("hex"); + let randNum = Crypto.randomBytes(8).toString("hex"); const newUser = new User({ email: data.username, name: data.username, @@ -144,6 +144,14 @@ app.post("/findUser", async function (req, res) { } }); +app.get("/login", function (req, res) { + if (req.session.login == true) { + console.log("Signing in normally"); + console.log(req.session); + res.redirect("/homepage"); + } +}); + app.get("/signout", function (req, res) { req.session = null; res.redirect("/"); From 0b4e235e36859a51684b9d7ec57a626ff8e81a9e Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Thu, 5 Oct 2023 12:47:18 -0400 Subject: [PATCH 5/7] Production --- src/server/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/main.js b/src/server/main.js index 30834bca..0849f594 100644 --- a/src/server/main.js +++ b/src/server/main.js @@ -12,6 +12,8 @@ import Crypto from "crypto"; // const cookieParser = require("cookie-parser"); const app = express(); +ViteExpress.config({ mode: process.env.NODE_ENV }); + app.use(express.static("src/")); // app.use(ViteExpress.static("/")); app.use(express.static("./index.html")); From 24e6ad5a6cf6e6d723eab6770bf9f43c765f0dbf Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Thu, 5 Oct 2023 12:50:51 -0400 Subject: [PATCH 6/7] README --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..2cf4ad12 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Assignment 4 - Components + +## Membership Portal + +your hosting link e.g. http://a4-nikeshwalling.glitch.me + +This is a reimplementation of my A3 assignment using React-Bootstrap rather than +Bootstrap and JQuery. The app uses Vite-Express as the middleware and still +connects to MongoDB using mongoose. All functionality from A3 is preserved, but +there have been minor changes to the UI. From 3961856aa3c92a52b097bdb21421ea9f51980b1c Mon Sep 17 00:00:00 2001 From: Nikesh Walling Date: Thu, 5 Oct 2023 14:22:36 -0400 Subject: [PATCH 7/7] Added Glitch --- README.md | 2 +- package.json | 14 +++++++++----- src/client/main.jsx | 3 --- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2cf4ad12..ecff48fc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Membership Portal -your hosting link e.g. http://a4-nikeshwalling.glitch.me +your hosting link e.g. https://a4-nikeshwalling.glitch.me/ This is a reimplementation of my A3 assignment using React-Bootstrap rather than Bootstrap and JQuery. The app uses Vite-Express as the middleware and still diff --git a/package.json b/package.json index 15612da3..617db4a9 100644 --- a/package.json +++ b/package.json @@ -4,25 +4,29 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "nodemon src/server/main.js -w src/server", + "dev": "node src/server/main.js -w src/server", "start": "NODE_ENV=production node src/server/main.js", "build": "vite build" }, "engines": { - "node": "^20.7.0" + "node": "^16.14.2" }, "dependencies": { "crypto": "^1.0.1", "express": "^4.18.2", "express-session": "^1.17.3", - "mongoose": "^7.5.3", + "mongoose": "^7.5.4", "passport": "^0.6.0", "passport-github2": "^0.1.12", "react": "^18.2.0", "react-bootstrap": "^2.9.0", "react-dom": "^18.2.0", "react-router-dom": "^6.16.0", - "vite-express": "*" + "vite-express": "*", + "vite-plugin-top-level-await": "^1.3.1", + "rollup": "^3.29.4", + "@vitejs/plugin-react": "^4.0.4", + "bootstrap": "^5.3.2" }, "devDependencies": { "@types/react": "^18.0.26", @@ -31,4 +35,4 @@ "nodemon": "^3.0.1", "vite": "^4.0.4" } -} +} \ No newline at end of file diff --git a/src/client/main.jsx b/src/client/main.jsx index 389f5f1a..c495fbc9 100644 --- a/src/client/main.jsx +++ b/src/client/main.jsx @@ -5,9 +5,6 @@ import Login from "./login.jsx"; import Homepage from "./homepage.jsx"; import "./css/theming.css"; -// Importing the Bootstrap CSS -import "bootstrap/dist/css/bootstrap.min.css"; - const router = createBrowserRouter([ { path: "/", element: }, { path: "/index", element: },