Showing
14 changed files
with
897 additions
and
40 deletions
actions/userActions.js
0 → 100644
1 | +const jwt = require("jsonwebtoken"); | ||
2 | +const bcrypt = require("bcryptjs"); | ||
3 | +const asyncHandler = require("express-async-handler"); | ||
4 | + | ||
5 | +// @desc Signup new user | ||
6 | +// @route POST /api/users | ||
7 | +// @access Public | ||
8 | +const signupUser = asyncHandler(async (req, res) => { | ||
9 | + const { username, email, password } = req.body; | ||
10 | + if (!name || !email || !password) { | ||
11 | + res.status(400); | ||
12 | + throw new Error("Please fill in all fields"); | ||
13 | + } | ||
14 | + | ||
15 | + // Check if user already exists | ||
16 | + | ||
17 | + // Hash password (bcrypt) | ||
18 | + | ||
19 | + // Create/Build user | ||
20 | + | ||
21 | + // Send response | ||
22 | +}); | ||
23 | + | ||
24 | +const loginUser = asyncHandler(async (req, res) => { | ||
25 | + const { email, password } = req.body; | ||
26 | + | ||
27 | + // Check for the user email | ||
28 | + | ||
29 | + // Send response | ||
30 | +}); | ||
31 | + | ||
32 | +module.exports = { | ||
33 | + signupUser, | ||
34 | + loginUser, | ||
35 | +}; |
... | @@ -11,6 +11,7 @@ | ... | @@ -11,6 +11,7 @@ |
11 | "@testing-library/jest-dom": "^5.16.4", | 11 | "@testing-library/jest-dom": "^5.16.4", |
12 | "@testing-library/react": "^13.2.0", | 12 | "@testing-library/react": "^13.2.0", |
13 | "@testing-library/user-event": "^13.5.0", | 13 | "@testing-library/user-event": "^13.5.0", |
14 | + "axios": "^0.27.2", | ||
14 | "react": "^18.1.0", | 15 | "react": "^18.1.0", |
15 | "react-dom": "^18.1.0", | 16 | "react-dom": "^18.1.0", |
16 | "react-router-dom": "^6.3.0", | 17 | "react-router-dom": "^6.3.0", |
... | @@ -4523,6 +4524,28 @@ | ... | @@ -4523,6 +4524,28 @@ |
4523 | "node": ">=12" | 4524 | "node": ">=12" |
4524 | } | 4525 | } |
4525 | }, | 4526 | }, |
4527 | + "node_modules/axios": { | ||
4528 | + "version": "0.27.2", | ||
4529 | + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", | ||
4530 | + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", | ||
4531 | + "dependencies": { | ||
4532 | + "follow-redirects": "^1.14.9", | ||
4533 | + "form-data": "^4.0.0" | ||
4534 | + } | ||
4535 | + }, | ||
4536 | + "node_modules/axios/node_modules/form-data": { | ||
4537 | + "version": "4.0.0", | ||
4538 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | ||
4539 | + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | ||
4540 | + "dependencies": { | ||
4541 | + "asynckit": "^0.4.0", | ||
4542 | + "combined-stream": "^1.0.8", | ||
4543 | + "mime-types": "^2.1.12" | ||
4544 | + }, | ||
4545 | + "engines": { | ||
4546 | + "node": ">= 6" | ||
4547 | + } | ||
4548 | + }, | ||
4526 | "node_modules/axobject-query": { | 4549 | "node_modules/axobject-query": { |
4527 | "version": "2.2.0", | 4550 | "version": "2.2.0", |
4528 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", | 4551 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", |
... | @@ -19468,6 +19491,27 @@ | ... | @@ -19468,6 +19491,27 @@ |
19468 | "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", | 19491 | "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", |
19469 | "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==" | 19492 | "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==" |
19470 | }, | 19493 | }, |
19494 | + "axios": { | ||
19495 | + "version": "0.27.2", | ||
19496 | + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", | ||
19497 | + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", | ||
19498 | + "requires": { | ||
19499 | + "follow-redirects": "^1.14.9", | ||
19500 | + "form-data": "^4.0.0" | ||
19501 | + }, | ||
19502 | + "dependencies": { | ||
19503 | + "form-data": { | ||
19504 | + "version": "4.0.0", | ||
19505 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | ||
19506 | + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | ||
19507 | + "requires": { | ||
19508 | + "asynckit": "^0.4.0", | ||
19509 | + "combined-stream": "^1.0.8", | ||
19510 | + "mime-types": "^2.1.12" | ||
19511 | + } | ||
19512 | + } | ||
19513 | + } | ||
19514 | + }, | ||
19471 | "axobject-query": { | 19515 | "axobject-query": { |
19472 | "version": "2.2.0", | 19516 | "version": "2.2.0", |
19473 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", | 19517 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", | ... | ... |
... | @@ -6,6 +6,7 @@ | ... | @@ -6,6 +6,7 @@ |
6 | "@testing-library/jest-dom": "^5.16.4", | 6 | "@testing-library/jest-dom": "^5.16.4", |
7 | "@testing-library/react": "^13.2.0", | 7 | "@testing-library/react": "^13.2.0", |
8 | "@testing-library/user-event": "^13.5.0", | 8 | "@testing-library/user-event": "^13.5.0", |
9 | + "axios": "^0.27.2", | ||
9 | "react": "^18.1.0", | 10 | "react": "^18.1.0", |
10 | "react-dom": "^18.1.0", | 11 | "react-dom": "^18.1.0", |
11 | "react-router-dom": "^6.3.0", | 12 | "react-router-dom": "^6.3.0", |
... | @@ -20,17 +21,10 @@ | ... | @@ -20,17 +21,10 @@ |
20 | "eject": "react-scripts eject" | 21 | "eject": "react-scripts eject" |
21 | }, | 22 | }, |
22 | "eslintConfig": { | 23 | "eslintConfig": { |
23 | - "extends": [ | 24 | + "extends": ["react-app", "react-app/jest"] |
24 | - "react-app", | ||
25 | - "react-app/jest" | ||
26 | - ] | ||
27 | }, | 25 | }, |
28 | "browserslist": { | 26 | "browserslist": { |
29 | - "production": [ | 27 | + "production": [">0.2%", "not dead", "not op_mini all"], |
30 | - ">0.2%", | ||
31 | - "not dead", | ||
32 | - "not op_mini all" | ||
33 | - ], | ||
34 | "development": [ | 28 | "development": [ |
35 | "last 1 chrome version", | 29 | "last 1 chrome version", |
36 | "last 1 firefox version", | 30 | "last 1 firefox version", | ... | ... |
client/src/lib/auth.js
0 → 100644
1 | +const axios = require("axios").default; | ||
2 | + | ||
3 | +export const handleLogin = (email, pwd) => { | ||
4 | + console.log(email, pwd); | ||
5 | + axios | ||
6 | + .post("http://localhost:8000/api/login", { | ||
7 | + email, | ||
8 | + pwd, | ||
9 | + }) | ||
10 | + .then(function (response) { | ||
11 | + console.log("login request sent"); | ||
12 | + console.log(response); | ||
13 | + }) | ||
14 | + .catch(function (err) { | ||
15 | + console.log(err); | ||
16 | + }); | ||
17 | +}; |
1 | +import { useState } from "react"; | ||
2 | +// lib | ||
3 | +import { handleLogin } from "../lib/auth"; | ||
1 | // styles | 4 | // styles |
2 | import { Link } from "react-router-dom"; | 5 | import { Link } from "react-router-dom"; |
3 | import "../styles/layout.scss"; | 6 | import "../styles/layout.scss"; |
4 | 7 | ||
5 | function Login() { | 8 | function Login() { |
9 | + const [email, setEmail] = useState(""); | ||
10 | + const [pwd, setPwd] = useState(""); | ||
11 | + | ||
6 | const handleSubmit = (e) => { | 12 | const handleSubmit = (e) => { |
7 | e.preventDefault(); | 13 | e.preventDefault(); |
8 | - console.log("login form submit called"); | 14 | + handleLogin(email, pwd); |
9 | }; | 15 | }; |
10 | 16 | ||
11 | return ( | 17 | return ( |
... | @@ -20,10 +26,22 @@ function Login() { | ... | @@ -20,10 +26,22 @@ function Login() { |
20 | 26 | ||
21 | <form className="authForm" onSubmit={(e) => handleSubmit(e)}> | 27 | <form className="authForm" onSubmit={(e) => handleSubmit(e)}> |
22 | <label htmlFor="email"> | 28 | <label htmlFor="email"> |
23 | - email: <input type="text" id="email" /> | 29 | + email:{" "} |
30 | + <input | ||
31 | + onChange={(e) => setEmail(e.target.value)} | ||
32 | + value={email} | ||
33 | + type="text" | ||
34 | + id="email" | ||
35 | + /> | ||
24 | </label> | 36 | </label> |
25 | <label htmlFor="password"> | 37 | <label htmlFor="password"> |
26 | - password: <input type="text" id="password" /> | 38 | + password:{" "} |
39 | + <input | ||
40 | + onChange={(e) => setPwd(e.target.value)} | ||
41 | + value={pwd} | ||
42 | + type="text" | ||
43 | + id="password" | ||
44 | + /> | ||
27 | </label> | 45 | </label> |
28 | <label htmlFor="submit"> | 46 | <label htmlFor="submit"> |
29 | <input type="submit" id="submit" /> | 47 | <input type="submit" id="submit" /> | ... | ... |
client/src/styles/lib/auth.js
0 → 100644
File mode changed
config/db.js
0 → 100644
middleware/errorMiddleware.js
0 → 100644
1 | +const errorHandler = (err, req, res, next) => { | ||
2 | + const statusCode = res.statusCode ? res.statusCode : 500; | ||
3 | + | ||
4 | + res.status(statusCode); | ||
5 | + res.json({ | ||
6 | + message: err.message, | ||
7 | + // stack from mongoDB (maybe...) | ||
8 | + stack: process.env.NODE_ENV === "production" ? null : err.stack, | ||
9 | + }); | ||
10 | +}; | ||
11 | + | ||
12 | +module.exports = { | ||
13 | + errorHandler, | ||
14 | +}; |
... | @@ -9,7 +9,12 @@ | ... | @@ -9,7 +9,12 @@ |
9 | "version": "1.0.0", | 9 | "version": "1.0.0", |
10 | "license": "MIT", | 10 | "license": "MIT", |
11 | "dependencies": { | 11 | "dependencies": { |
12 | - "express": "^4.18.1" | 12 | + "bcryptjs": "^2.4.3", |
13 | + "dotenv": "^16.0.1", | ||
14 | + "express": "^4.18.1", | ||
15 | + "express-async-handler": "^1.2.0", | ||
16 | + "jsonwebtoken": "^8.5.1", | ||
17 | + "mongoose": "^6.3.4" | ||
13 | }, | 18 | }, |
14 | "devDependencies": { | 19 | "devDependencies": { |
15 | "nodemon": "^2.0.16" | 20 | "nodemon": "^2.0.16" |
... | @@ -36,6 +41,25 @@ | ... | @@ -36,6 +41,25 @@ |
36 | "node": ">=6" | 41 | "node": ">=6" |
37 | } | 42 | } |
38 | }, | 43 | }, |
44 | + "node_modules/@types/node": { | ||
45 | + "version": "17.0.35", | ||
46 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", | ||
47 | + "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" | ||
48 | + }, | ||
49 | + "node_modules/@types/webidl-conversions": { | ||
50 | + "version": "6.1.1", | ||
51 | + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", | ||
52 | + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" | ||
53 | + }, | ||
54 | + "node_modules/@types/whatwg-url": { | ||
55 | + "version": "8.2.1", | ||
56 | + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", | ||
57 | + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", | ||
58 | + "dependencies": { | ||
59 | + "@types/node": "*", | ||
60 | + "@types/webidl-conversions": "*" | ||
61 | + } | ||
62 | + }, | ||
39 | "node_modules/abbrev": { | 63 | "node_modules/abbrev": { |
40 | "version": "1.1.1", | 64 | "version": "1.1.1", |
41 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", | 65 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", |
... | @@ -111,6 +135,30 @@ | ... | @@ -111,6 +135,30 @@ |
111 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", | 135 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", |
112 | "dev": true | 136 | "dev": true |
113 | }, | 137 | }, |
138 | + "node_modules/base64-js": { | ||
139 | + "version": "1.5.1", | ||
140 | + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", | ||
141 | + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", | ||
142 | + "funding": [ | ||
143 | + { | ||
144 | + "type": "github", | ||
145 | + "url": "https://github.com/sponsors/feross" | ||
146 | + }, | ||
147 | + { | ||
148 | + "type": "patreon", | ||
149 | + "url": "https://www.patreon.com/feross" | ||
150 | + }, | ||
151 | + { | ||
152 | + "type": "consulting", | ||
153 | + "url": "https://feross.org/support" | ||
154 | + } | ||
155 | + ] | ||
156 | + }, | ||
157 | + "node_modules/bcryptjs": { | ||
158 | + "version": "2.4.3", | ||
159 | + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", | ||
160 | + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" | ||
161 | + }, | ||
114 | "node_modules/binary-extensions": { | 162 | "node_modules/binary-extensions": { |
115 | "version": "2.2.0", | 163 | "version": "2.2.0", |
116 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", | 164 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", |
... | @@ -187,6 +235,45 @@ | ... | @@ -187,6 +235,45 @@ |
187 | "node": ">=8" | 235 | "node": ">=8" |
188 | } | 236 | } |
189 | }, | 237 | }, |
238 | + "node_modules/bson": { | ||
239 | + "version": "4.6.4", | ||
240 | + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", | ||
241 | + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", | ||
242 | + "dependencies": { | ||
243 | + "buffer": "^5.6.0" | ||
244 | + }, | ||
245 | + "engines": { | ||
246 | + "node": ">=6.9.0" | ||
247 | + } | ||
248 | + }, | ||
249 | + "node_modules/buffer": { | ||
250 | + "version": "5.7.1", | ||
251 | + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", | ||
252 | + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", | ||
253 | + "funding": [ | ||
254 | + { | ||
255 | + "type": "github", | ||
256 | + "url": "https://github.com/sponsors/feross" | ||
257 | + }, | ||
258 | + { | ||
259 | + "type": "patreon", | ||
260 | + "url": "https://www.patreon.com/feross" | ||
261 | + }, | ||
262 | + { | ||
263 | + "type": "consulting", | ||
264 | + "url": "https://feross.org/support" | ||
265 | + } | ||
266 | + ], | ||
267 | + "dependencies": { | ||
268 | + "base64-js": "^1.3.1", | ||
269 | + "ieee754": "^1.1.13" | ||
270 | + } | ||
271 | + }, | ||
272 | + "node_modules/buffer-equal-constant-time": { | ||
273 | + "version": "1.0.1", | ||
274 | + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", | ||
275 | + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" | ||
276 | + }, | ||
190 | "node_modules/bytes": { | 277 | "node_modules/bytes": { |
191 | "version": "3.1.2", | 278 | "version": "3.1.2", |
192 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | 279 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", |
... | @@ -469,6 +556,14 @@ | ... | @@ -469,6 +556,14 @@ |
469 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", | 556 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", |
470 | "dev": true | 557 | "dev": true |
471 | }, | 558 | }, |
559 | + "node_modules/denque": { | ||
560 | + "version": "2.0.1", | ||
561 | + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", | ||
562 | + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", | ||
563 | + "engines": { | ||
564 | + "node": ">=0.10" | ||
565 | + } | ||
566 | + }, | ||
472 | "node_modules/depd": { | 567 | "node_modules/depd": { |
473 | "version": "2.0.0", | 568 | "version": "2.0.0", |
474 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | 569 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", |
... | @@ -498,12 +593,28 @@ | ... | @@ -498,12 +593,28 @@ |
498 | "node": ">=8" | 593 | "node": ">=8" |
499 | } | 594 | } |
500 | }, | 595 | }, |
596 | + "node_modules/dotenv": { | ||
597 | + "version": "16.0.1", | ||
598 | + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", | ||
599 | + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", | ||
600 | + "engines": { | ||
601 | + "node": ">=12" | ||
602 | + } | ||
603 | + }, | ||
501 | "node_modules/duplexer3": { | 604 | "node_modules/duplexer3": { |
502 | "version": "0.1.4", | 605 | "version": "0.1.4", |
503 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", | 606 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", |
504 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", | 607 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", |
505 | "dev": true | 608 | "dev": true |
506 | }, | 609 | }, |
610 | + "node_modules/ecdsa-sig-formatter": { | ||
611 | + "version": "1.0.11", | ||
612 | + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", | ||
613 | + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", | ||
614 | + "dependencies": { | ||
615 | + "safe-buffer": "^5.0.1" | ||
616 | + } | ||
617 | + }, | ||
507 | "node_modules/ee-first": { | 618 | "node_modules/ee-first": { |
508 | "version": "1.1.1", | 619 | "version": "1.1.1", |
509 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | 620 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", |
... | @@ -595,6 +706,11 @@ | ... | @@ -595,6 +706,11 @@ |
595 | "node": ">= 0.10.0" | 706 | "node": ">= 0.10.0" |
596 | } | 707 | } |
597 | }, | 708 | }, |
709 | + "node_modules/express-async-handler": { | ||
710 | + "version": "1.2.0", | ||
711 | + "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz", | ||
712 | + "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==" | ||
713 | + }, | ||
598 | "node_modules/fill-range": { | 714 | "node_modules/fill-range": { |
599 | "version": "7.0.1", | 715 | "version": "7.0.1", |
600 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | 716 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |
... | @@ -811,6 +927,25 @@ | ... | @@ -811,6 +927,25 @@ |
811 | "node": ">=0.10.0" | 927 | "node": ">=0.10.0" |
812 | } | 928 | } |
813 | }, | 929 | }, |
930 | + "node_modules/ieee754": { | ||
931 | + "version": "1.2.1", | ||
932 | + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", | ||
933 | + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", | ||
934 | + "funding": [ | ||
935 | + { | ||
936 | + "type": "github", | ||
937 | + "url": "https://github.com/sponsors/feross" | ||
938 | + }, | ||
939 | + { | ||
940 | + "type": "patreon", | ||
941 | + "url": "https://www.patreon.com/feross" | ||
942 | + }, | ||
943 | + { | ||
944 | + "type": "consulting", | ||
945 | + "url": "https://feross.org/support" | ||
946 | + } | ||
947 | + ] | ||
948 | + }, | ||
814 | "node_modules/ignore-by-default": { | 949 | "node_modules/ignore-by-default": { |
815 | "version": "1.0.1", | 950 | "version": "1.0.1", |
816 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", | 951 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", |
... | @@ -849,6 +984,11 @@ | ... | @@ -849,6 +984,11 @@ |
849 | "node": ">=10" | 984 | "node": ">=10" |
850 | } | 985 | } |
851 | }, | 986 | }, |
987 | + "node_modules/ip": { | ||
988 | + "version": "1.1.8", | ||
989 | + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", | ||
990 | + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" | ||
991 | + }, | ||
852 | "node_modules/ipaddr.js": { | 992 | "node_modules/ipaddr.js": { |
853 | "version": "1.9.1", | 993 | "version": "1.9.1", |
854 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | 994 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", |
... | @@ -984,6 +1124,56 @@ | ... | @@ -984,6 +1124,56 @@ |
984 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", | 1124 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", |
985 | "dev": true | 1125 | "dev": true |
986 | }, | 1126 | }, |
1127 | + "node_modules/jsonwebtoken": { | ||
1128 | + "version": "8.5.1", | ||
1129 | + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", | ||
1130 | + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", | ||
1131 | + "dependencies": { | ||
1132 | + "jws": "^3.2.2", | ||
1133 | + "lodash.includes": "^4.3.0", | ||
1134 | + "lodash.isboolean": "^3.0.3", | ||
1135 | + "lodash.isinteger": "^4.0.4", | ||
1136 | + "lodash.isnumber": "^3.0.3", | ||
1137 | + "lodash.isplainobject": "^4.0.6", | ||
1138 | + "lodash.isstring": "^4.0.1", | ||
1139 | + "lodash.once": "^4.0.0", | ||
1140 | + "ms": "^2.1.1", | ||
1141 | + "semver": "^5.6.0" | ||
1142 | + }, | ||
1143 | + "engines": { | ||
1144 | + "node": ">=4", | ||
1145 | + "npm": ">=1.4.28" | ||
1146 | + } | ||
1147 | + }, | ||
1148 | + "node_modules/jsonwebtoken/node_modules/ms": { | ||
1149 | + "version": "2.1.3", | ||
1150 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
1151 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
1152 | + }, | ||
1153 | + "node_modules/jwa": { | ||
1154 | + "version": "1.4.1", | ||
1155 | + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", | ||
1156 | + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", | ||
1157 | + "dependencies": { | ||
1158 | + "buffer-equal-constant-time": "1.0.1", | ||
1159 | + "ecdsa-sig-formatter": "1.0.11", | ||
1160 | + "safe-buffer": "^5.0.1" | ||
1161 | + } | ||
1162 | + }, | ||
1163 | + "node_modules/jws": { | ||
1164 | + "version": "3.2.2", | ||
1165 | + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", | ||
1166 | + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", | ||
1167 | + "dependencies": { | ||
1168 | + "jwa": "^1.4.1", | ||
1169 | + "safe-buffer": "^5.0.1" | ||
1170 | + } | ||
1171 | + }, | ||
1172 | + "node_modules/kareem": { | ||
1173 | + "version": "2.3.5", | ||
1174 | + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz", | ||
1175 | + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg==" | ||
1176 | + }, | ||
987 | "node_modules/keyv": { | 1177 | "node_modules/keyv": { |
988 | "version": "3.1.0", | 1178 | "version": "3.1.0", |
989 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", | 1179 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", |
... | @@ -1005,6 +1195,41 @@ | ... | @@ -1005,6 +1195,41 @@ |
1005 | "node": ">=8" | 1195 | "node": ">=8" |
1006 | } | 1196 | } |
1007 | }, | 1197 | }, |
1198 | + "node_modules/lodash.includes": { | ||
1199 | + "version": "4.3.0", | ||
1200 | + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", | ||
1201 | + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" | ||
1202 | + }, | ||
1203 | + "node_modules/lodash.isboolean": { | ||
1204 | + "version": "3.0.3", | ||
1205 | + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", | ||
1206 | + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" | ||
1207 | + }, | ||
1208 | + "node_modules/lodash.isinteger": { | ||
1209 | + "version": "4.0.4", | ||
1210 | + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", | ||
1211 | + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" | ||
1212 | + }, | ||
1213 | + "node_modules/lodash.isnumber": { | ||
1214 | + "version": "3.0.3", | ||
1215 | + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", | ||
1216 | + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" | ||
1217 | + }, | ||
1218 | + "node_modules/lodash.isplainobject": { | ||
1219 | + "version": "4.0.6", | ||
1220 | + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", | ||
1221 | + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" | ||
1222 | + }, | ||
1223 | + "node_modules/lodash.isstring": { | ||
1224 | + "version": "4.0.1", | ||
1225 | + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", | ||
1226 | + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" | ||
1227 | + }, | ||
1228 | + "node_modules/lodash.once": { | ||
1229 | + "version": "4.1.1", | ||
1230 | + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", | ||
1231 | + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" | ||
1232 | + }, | ||
1008 | "node_modules/lowercase-keys": { | 1233 | "node_modules/lowercase-keys": { |
1009 | "version": "1.0.1", | 1234 | "version": "1.0.1", |
1010 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", | 1235 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", |
... | @@ -1058,6 +1283,12 @@ | ... | @@ -1058,6 +1283,12 @@ |
1058 | "node": ">= 0.6" | 1283 | "node": ">= 0.6" |
1059 | } | 1284 | } |
1060 | }, | 1285 | }, |
1286 | + "node_modules/memory-pager": { | ||
1287 | + "version": "1.5.0", | ||
1288 | + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", | ||
1289 | + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", | ||
1290 | + "optional": true | ||
1291 | + }, | ||
1061 | "node_modules/merge-descriptors": { | 1292 | "node_modules/merge-descriptors": { |
1062 | "version": "1.0.1", | 1293 | "version": "1.0.1", |
1063 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | 1294 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", |
... | @@ -1128,6 +1359,98 @@ | ... | @@ -1128,6 +1359,98 @@ |
1128 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", | 1359 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", |
1129 | "dev": true | 1360 | "dev": true |
1130 | }, | 1361 | }, |
1362 | + "node_modules/mongodb": { | ||
1363 | + "version": "4.5.0", | ||
1364 | + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz", | ||
1365 | + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==", | ||
1366 | + "dependencies": { | ||
1367 | + "bson": "^4.6.2", | ||
1368 | + "denque": "^2.0.1", | ||
1369 | + "mongodb-connection-string-url": "^2.5.2", | ||
1370 | + "socks": "^2.6.2" | ||
1371 | + }, | ||
1372 | + "engines": { | ||
1373 | + "node": ">=12.9.0" | ||
1374 | + }, | ||
1375 | + "optionalDependencies": { | ||
1376 | + "saslprep": "^1.0.3" | ||
1377 | + } | ||
1378 | + }, | ||
1379 | + "node_modules/mongodb-connection-string-url": { | ||
1380 | + "version": "2.5.2", | ||
1381 | + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz", | ||
1382 | + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==", | ||
1383 | + "dependencies": { | ||
1384 | + "@types/whatwg-url": "^8.2.1", | ||
1385 | + "whatwg-url": "^11.0.0" | ||
1386 | + } | ||
1387 | + }, | ||
1388 | + "node_modules/mongoose": { | ||
1389 | + "version": "6.3.4", | ||
1390 | + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.4.tgz", | ||
1391 | + "integrity": "sha512-UP0azyGMdY+2YNbJUHeHhnVw5vPzCqs4GQDUwHkilif/rwmSZktUQhQWMp1pUgRNeF2JC30vWGLrInZxD7K/Qw==", | ||
1392 | + "dependencies": { | ||
1393 | + "bson": "^4.6.2", | ||
1394 | + "kareem": "2.3.5", | ||
1395 | + "mongodb": "4.5.0", | ||
1396 | + "mpath": "0.9.0", | ||
1397 | + "mquery": "4.0.3", | ||
1398 | + "ms": "2.1.3", | ||
1399 | + "sift": "16.0.0" | ||
1400 | + }, | ||
1401 | + "engines": { | ||
1402 | + "node": ">=12.0.0" | ||
1403 | + }, | ||
1404 | + "funding": { | ||
1405 | + "type": "opencollective", | ||
1406 | + "url": "https://opencollective.com/mongoose" | ||
1407 | + } | ||
1408 | + }, | ||
1409 | + "node_modules/mongoose/node_modules/ms": { | ||
1410 | + "version": "2.1.3", | ||
1411 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
1412 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
1413 | + }, | ||
1414 | + "node_modules/mpath": { | ||
1415 | + "version": "0.9.0", | ||
1416 | + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", | ||
1417 | + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", | ||
1418 | + "engines": { | ||
1419 | + "node": ">=4.0.0" | ||
1420 | + } | ||
1421 | + }, | ||
1422 | + "node_modules/mquery": { | ||
1423 | + "version": "4.0.3", | ||
1424 | + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", | ||
1425 | + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", | ||
1426 | + "dependencies": { | ||
1427 | + "debug": "4.x" | ||
1428 | + }, | ||
1429 | + "engines": { | ||
1430 | + "node": ">=12.0.0" | ||
1431 | + } | ||
1432 | + }, | ||
1433 | + "node_modules/mquery/node_modules/debug": { | ||
1434 | + "version": "4.3.4", | ||
1435 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", | ||
1436 | + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", | ||
1437 | + "dependencies": { | ||
1438 | + "ms": "2.1.2" | ||
1439 | + }, | ||
1440 | + "engines": { | ||
1441 | + "node": ">=6.0" | ||
1442 | + }, | ||
1443 | + "peerDependenciesMeta": { | ||
1444 | + "supports-color": { | ||
1445 | + "optional": true | ||
1446 | + } | ||
1447 | + } | ||
1448 | + }, | ||
1449 | + "node_modules/mquery/node_modules/ms": { | ||
1450 | + "version": "2.1.2", | ||
1451 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
1452 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
1453 | + }, | ||
1131 | "node_modules/ms": { | 1454 | "node_modules/ms": { |
1132 | "version": "2.0.0", | 1455 | "version": "2.0.0", |
1133 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | 1456 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
... | @@ -1341,6 +1664,14 @@ | ... | @@ -1341,6 +1664,14 @@ |
1341 | "once": "^1.3.1" | 1664 | "once": "^1.3.1" |
1342 | } | 1665 | } |
1343 | }, | 1666 | }, |
1667 | + "node_modules/punycode": { | ||
1668 | + "version": "2.1.1", | ||
1669 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
1670 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", | ||
1671 | + "engines": { | ||
1672 | + "node": ">=6" | ||
1673 | + } | ||
1674 | + }, | ||
1344 | "node_modules/pupa": { | 1675 | "node_modules/pupa": { |
1345 | "version": "2.1.1", | 1676 | "version": "2.1.1", |
1346 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", | 1677 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", |
... | @@ -1479,11 +1810,22 @@ | ... | @@ -1479,11 +1810,22 @@ |
1479 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | 1810 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
1480 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | 1811 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" |
1481 | }, | 1812 | }, |
1813 | + "node_modules/saslprep": { | ||
1814 | + "version": "1.0.3", | ||
1815 | + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", | ||
1816 | + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", | ||
1817 | + "optional": true, | ||
1818 | + "dependencies": { | ||
1819 | + "sparse-bitfield": "^3.0.3" | ||
1820 | + }, | ||
1821 | + "engines": { | ||
1822 | + "node": ">=6" | ||
1823 | + } | ||
1824 | + }, | ||
1482 | "node_modules/semver": { | 1825 | "node_modules/semver": { |
1483 | "version": "5.7.1", | 1826 | "version": "5.7.1", |
1484 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | 1827 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", |
1485 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | 1828 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", |
1486 | - "dev": true, | ||
1487 | "bin": { | 1829 | "bin": { |
1488 | "semver": "bin/semver" | 1830 | "semver": "bin/semver" |
1489 | } | 1831 | } |
... | @@ -1569,12 +1911,48 @@ | ... | @@ -1569,12 +1911,48 @@ |
1569 | "url": "https://github.com/sponsors/ljharb" | 1911 | "url": "https://github.com/sponsors/ljharb" |
1570 | } | 1912 | } |
1571 | }, | 1913 | }, |
1914 | + "node_modules/sift": { | ||
1915 | + "version": "16.0.0", | ||
1916 | + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", | ||
1917 | + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==" | ||
1918 | + }, | ||
1572 | "node_modules/signal-exit": { | 1919 | "node_modules/signal-exit": { |
1573 | "version": "3.0.7", | 1920 | "version": "3.0.7", |
1574 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", | 1921 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", |
1575 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", | 1922 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", |
1576 | "dev": true | 1923 | "dev": true |
1577 | }, | 1924 | }, |
1925 | + "node_modules/smart-buffer": { | ||
1926 | + "version": "4.2.0", | ||
1927 | + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", | ||
1928 | + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", | ||
1929 | + "engines": { | ||
1930 | + "node": ">= 6.0.0", | ||
1931 | + "npm": ">= 3.0.0" | ||
1932 | + } | ||
1933 | + }, | ||
1934 | + "node_modules/socks": { | ||
1935 | + "version": "2.6.2", | ||
1936 | + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", | ||
1937 | + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", | ||
1938 | + "dependencies": { | ||
1939 | + "ip": "^1.1.5", | ||
1940 | + "smart-buffer": "^4.2.0" | ||
1941 | + }, | ||
1942 | + "engines": { | ||
1943 | + "node": ">= 10.13.0", | ||
1944 | + "npm": ">= 3.0.0" | ||
1945 | + } | ||
1946 | + }, | ||
1947 | + "node_modules/sparse-bitfield": { | ||
1948 | + "version": "3.0.3", | ||
1949 | + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", | ||
1950 | + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", | ||
1951 | + "optional": true, | ||
1952 | + "dependencies": { | ||
1953 | + "memory-pager": "^1.0.2" | ||
1954 | + } | ||
1955 | + }, | ||
1578 | "node_modules/statuses": { | 1956 | "node_modules/statuses": { |
1579 | "version": "2.0.1", | 1957 | "version": "2.0.1", |
1580 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | 1958 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", |
... | @@ -1671,6 +2049,17 @@ | ... | @@ -1671,6 +2049,17 @@ |
1671 | "nodetouch": "bin/nodetouch.js" | 2049 | "nodetouch": "bin/nodetouch.js" |
1672 | } | 2050 | } |
1673 | }, | 2051 | }, |
2052 | + "node_modules/tr46": { | ||
2053 | + "version": "3.0.0", | ||
2054 | + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", | ||
2055 | + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", | ||
2056 | + "dependencies": { | ||
2057 | + "punycode": "^2.1.1" | ||
2058 | + }, | ||
2059 | + "engines": { | ||
2060 | + "node": ">=12" | ||
2061 | + } | ||
2062 | + }, | ||
1674 | "node_modules/type-fest": { | 2063 | "node_modules/type-fest": { |
1675 | "version": "0.20.2", | 2064 | "version": "0.20.2", |
1676 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", | 2065 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", |
... | @@ -1801,6 +2190,26 @@ | ... | @@ -1801,6 +2190,26 @@ |
1801 | "node": ">= 0.8" | 2190 | "node": ">= 0.8" |
1802 | } | 2191 | } |
1803 | }, | 2192 | }, |
2193 | + "node_modules/webidl-conversions": { | ||
2194 | + "version": "7.0.0", | ||
2195 | + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", | ||
2196 | + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", | ||
2197 | + "engines": { | ||
2198 | + "node": ">=12" | ||
2199 | + } | ||
2200 | + }, | ||
2201 | + "node_modules/whatwg-url": { | ||
2202 | + "version": "11.0.0", | ||
2203 | + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", | ||
2204 | + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", | ||
2205 | + "dependencies": { | ||
2206 | + "tr46": "^3.0.0", | ||
2207 | + "webidl-conversions": "^7.0.0" | ||
2208 | + }, | ||
2209 | + "engines": { | ||
2210 | + "node": ">=12" | ||
2211 | + } | ||
2212 | + }, | ||
1804 | "node_modules/widest-line": { | 2213 | "node_modules/widest-line": { |
1805 | "version": "3.1.0", | 2214 | "version": "3.1.0", |
1806 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", | 2215 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", |
... | @@ -1880,6 +2289,25 @@ | ... | @@ -1880,6 +2289,25 @@ |
1880 | "defer-to-connect": "^1.0.1" | 2289 | "defer-to-connect": "^1.0.1" |
1881 | } | 2290 | } |
1882 | }, | 2291 | }, |
2292 | + "@types/node": { | ||
2293 | + "version": "17.0.35", | ||
2294 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", | ||
2295 | + "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" | ||
2296 | + }, | ||
2297 | + "@types/webidl-conversions": { | ||
2298 | + "version": "6.1.1", | ||
2299 | + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", | ||
2300 | + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" | ||
2301 | + }, | ||
2302 | + "@types/whatwg-url": { | ||
2303 | + "version": "8.2.1", | ||
2304 | + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", | ||
2305 | + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", | ||
2306 | + "requires": { | ||
2307 | + "@types/node": "*", | ||
2308 | + "@types/webidl-conversions": "*" | ||
2309 | + } | ||
2310 | + }, | ||
1883 | "abbrev": { | 2311 | "abbrev": { |
1884 | "version": "1.1.1", | 2312 | "version": "1.1.1", |
1885 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", | 2313 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", |
... | @@ -1940,6 +2368,16 @@ | ... | @@ -1940,6 +2368,16 @@ |
1940 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", | 2368 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", |
1941 | "dev": true | 2369 | "dev": true |
1942 | }, | 2370 | }, |
2371 | + "base64-js": { | ||
2372 | + "version": "1.5.1", | ||
2373 | + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", | ||
2374 | + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" | ||
2375 | + }, | ||
2376 | + "bcryptjs": { | ||
2377 | + "version": "2.4.3", | ||
2378 | + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", | ||
2379 | + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" | ||
2380 | + }, | ||
1943 | "binary-extensions": { | 2381 | "binary-extensions": { |
1944 | "version": "2.2.0", | 2382 | "version": "2.2.0", |
1945 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", | 2383 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", |
... | @@ -2000,6 +2438,28 @@ | ... | @@ -2000,6 +2438,28 @@ |
2000 | "fill-range": "^7.0.1" | 2438 | "fill-range": "^7.0.1" |
2001 | } | 2439 | } |
2002 | }, | 2440 | }, |
2441 | + "bson": { | ||
2442 | + "version": "4.6.4", | ||
2443 | + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", | ||
2444 | + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", | ||
2445 | + "requires": { | ||
2446 | + "buffer": "^5.6.0" | ||
2447 | + } | ||
2448 | + }, | ||
2449 | + "buffer": { | ||
2450 | + "version": "5.7.1", | ||
2451 | + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", | ||
2452 | + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", | ||
2453 | + "requires": { | ||
2454 | + "base64-js": "^1.3.1", | ||
2455 | + "ieee754": "^1.1.13" | ||
2456 | + } | ||
2457 | + }, | ||
2458 | + "buffer-equal-constant-time": { | ||
2459 | + "version": "1.0.1", | ||
2460 | + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", | ||
2461 | + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" | ||
2462 | + }, | ||
2003 | "bytes": { | 2463 | "bytes": { |
2004 | "version": "3.1.2", | 2464 | "version": "3.1.2", |
2005 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | 2465 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", |
... | @@ -2209,6 +2669,11 @@ | ... | @@ -2209,6 +2669,11 @@ |
2209 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", | 2669 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", |
2210 | "dev": true | 2670 | "dev": true |
2211 | }, | 2671 | }, |
2672 | + "denque": { | ||
2673 | + "version": "2.0.1", | ||
2674 | + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", | ||
2675 | + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" | ||
2676 | + }, | ||
2212 | "depd": { | 2677 | "depd": { |
2213 | "version": "2.0.0", | 2678 | "version": "2.0.0", |
2214 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | 2679 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", |
... | @@ -2228,12 +2693,25 @@ | ... | @@ -2228,12 +2693,25 @@ |
2228 | "is-obj": "^2.0.0" | 2693 | "is-obj": "^2.0.0" |
2229 | } | 2694 | } |
2230 | }, | 2695 | }, |
2696 | + "dotenv": { | ||
2697 | + "version": "16.0.1", | ||
2698 | + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", | ||
2699 | + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" | ||
2700 | + }, | ||
2231 | "duplexer3": { | 2701 | "duplexer3": { |
2232 | "version": "0.1.4", | 2702 | "version": "0.1.4", |
2233 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", | 2703 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", |
2234 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", | 2704 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", |
2235 | "dev": true | 2705 | "dev": true |
2236 | }, | 2706 | }, |
2707 | + "ecdsa-sig-formatter": { | ||
2708 | + "version": "1.0.11", | ||
2709 | + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", | ||
2710 | + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", | ||
2711 | + "requires": { | ||
2712 | + "safe-buffer": "^5.0.1" | ||
2713 | + } | ||
2714 | + }, | ||
2237 | "ee-first": { | 2715 | "ee-first": { |
2238 | "version": "1.1.1", | 2716 | "version": "1.1.1", |
2239 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | 2717 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", |
... | @@ -2313,6 +2791,11 @@ | ... | @@ -2313,6 +2791,11 @@ |
2313 | "vary": "~1.1.2" | 2791 | "vary": "~1.1.2" |
2314 | } | 2792 | } |
2315 | }, | 2793 | }, |
2794 | + "express-async-handler": { | ||
2795 | + "version": "1.2.0", | ||
2796 | + "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz", | ||
2797 | + "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==" | ||
2798 | + }, | ||
2316 | "fill-range": { | 2799 | "fill-range": { |
2317 | "version": "7.0.1", | 2800 | "version": "7.0.1", |
2318 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | 2801 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |
... | @@ -2471,6 +2954,11 @@ | ... | @@ -2471,6 +2954,11 @@ |
2471 | "safer-buffer": ">= 2.1.2 < 3" | 2954 | "safer-buffer": ">= 2.1.2 < 3" |
2472 | } | 2955 | } |
2473 | }, | 2956 | }, |
2957 | + "ieee754": { | ||
2958 | + "version": "1.2.1", | ||
2959 | + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", | ||
2960 | + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" | ||
2961 | + }, | ||
2474 | "ignore-by-default": { | 2962 | "ignore-by-default": { |
2475 | "version": "1.0.1", | 2963 | "version": "1.0.1", |
2476 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", | 2964 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", |
... | @@ -2500,6 +2988,11 @@ | ... | @@ -2500,6 +2988,11 @@ |
2500 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", | 2988 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", |
2501 | "dev": true | 2989 | "dev": true |
2502 | }, | 2990 | }, |
2991 | + "ip": { | ||
2992 | + "version": "1.1.8", | ||
2993 | + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", | ||
2994 | + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" | ||
2995 | + }, | ||
2503 | "ipaddr.js": { | 2996 | "ipaddr.js": { |
2504 | "version": "1.9.1", | 2997 | "version": "1.9.1", |
2505 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | 2998 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", |
... | @@ -2596,6 +3089,54 @@ | ... | @@ -2596,6 +3089,54 @@ |
2596 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", | 3089 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", |
2597 | "dev": true | 3090 | "dev": true |
2598 | }, | 3091 | }, |
3092 | + "jsonwebtoken": { | ||
3093 | + "version": "8.5.1", | ||
3094 | + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", | ||
3095 | + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", | ||
3096 | + "requires": { | ||
3097 | + "jws": "^3.2.2", | ||
3098 | + "lodash.includes": "^4.3.0", | ||
3099 | + "lodash.isboolean": "^3.0.3", | ||
3100 | + "lodash.isinteger": "^4.0.4", | ||
3101 | + "lodash.isnumber": "^3.0.3", | ||
3102 | + "lodash.isplainobject": "^4.0.6", | ||
3103 | + "lodash.isstring": "^4.0.1", | ||
3104 | + "lodash.once": "^4.0.0", | ||
3105 | + "ms": "^2.1.1", | ||
3106 | + "semver": "^5.6.0" | ||
3107 | + }, | ||
3108 | + "dependencies": { | ||
3109 | + "ms": { | ||
3110 | + "version": "2.1.3", | ||
3111 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
3112 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
3113 | + } | ||
3114 | + } | ||
3115 | + }, | ||
3116 | + "jwa": { | ||
3117 | + "version": "1.4.1", | ||
3118 | + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", | ||
3119 | + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", | ||
3120 | + "requires": { | ||
3121 | + "buffer-equal-constant-time": "1.0.1", | ||
3122 | + "ecdsa-sig-formatter": "1.0.11", | ||
3123 | + "safe-buffer": "^5.0.1" | ||
3124 | + } | ||
3125 | + }, | ||
3126 | + "jws": { | ||
3127 | + "version": "3.2.2", | ||
3128 | + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", | ||
3129 | + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", | ||
3130 | + "requires": { | ||
3131 | + "jwa": "^1.4.1", | ||
3132 | + "safe-buffer": "^5.0.1" | ||
3133 | + } | ||
3134 | + }, | ||
3135 | + "kareem": { | ||
3136 | + "version": "2.3.5", | ||
3137 | + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz", | ||
3138 | + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg==" | ||
3139 | + }, | ||
2599 | "keyv": { | 3140 | "keyv": { |
2600 | "version": "3.1.0", | 3141 | "version": "3.1.0", |
2601 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", | 3142 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", |
... | @@ -2614,6 +3155,41 @@ | ... | @@ -2614,6 +3155,41 @@ |
2614 | "package-json": "^6.3.0" | 3155 | "package-json": "^6.3.0" |
2615 | } | 3156 | } |
2616 | }, | 3157 | }, |
3158 | + "lodash.includes": { | ||
3159 | + "version": "4.3.0", | ||
3160 | + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", | ||
3161 | + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" | ||
3162 | + }, | ||
3163 | + "lodash.isboolean": { | ||
3164 | + "version": "3.0.3", | ||
3165 | + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", | ||
3166 | + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" | ||
3167 | + }, | ||
3168 | + "lodash.isinteger": { | ||
3169 | + "version": "4.0.4", | ||
3170 | + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", | ||
3171 | + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" | ||
3172 | + }, | ||
3173 | + "lodash.isnumber": { | ||
3174 | + "version": "3.0.3", | ||
3175 | + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", | ||
3176 | + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" | ||
3177 | + }, | ||
3178 | + "lodash.isplainobject": { | ||
3179 | + "version": "4.0.6", | ||
3180 | + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", | ||
3181 | + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" | ||
3182 | + }, | ||
3183 | + "lodash.isstring": { | ||
3184 | + "version": "4.0.1", | ||
3185 | + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", | ||
3186 | + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" | ||
3187 | + }, | ||
3188 | + "lodash.once": { | ||
3189 | + "version": "4.1.1", | ||
3190 | + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", | ||
3191 | + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" | ||
3192 | + }, | ||
2617 | "lowercase-keys": { | 3193 | "lowercase-keys": { |
2618 | "version": "1.0.1", | 3194 | "version": "1.0.1", |
2619 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", | 3195 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", |
... | @@ -2651,6 +3227,12 @@ | ... | @@ -2651,6 +3227,12 @@ |
2651 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | 3227 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", |
2652 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | 3228 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" |
2653 | }, | 3229 | }, |
3230 | + "memory-pager": { | ||
3231 | + "version": "1.5.0", | ||
3232 | + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", | ||
3233 | + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", | ||
3234 | + "optional": true | ||
3235 | + }, | ||
2654 | "merge-descriptors": { | 3236 | "merge-descriptors": { |
2655 | "version": "1.0.1", | 3237 | "version": "1.0.1", |
2656 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | 3238 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", |
... | @@ -2700,6 +3282,76 @@ | ... | @@ -2700,6 +3282,76 @@ |
2700 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", | 3282 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", |
2701 | "dev": true | 3283 | "dev": true |
2702 | }, | 3284 | }, |
3285 | + "mongodb": { | ||
3286 | + "version": "4.5.0", | ||
3287 | + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz", | ||
3288 | + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==", | ||
3289 | + "requires": { | ||
3290 | + "bson": "^4.6.2", | ||
3291 | + "denque": "^2.0.1", | ||
3292 | + "mongodb-connection-string-url": "^2.5.2", | ||
3293 | + "saslprep": "^1.0.3", | ||
3294 | + "socks": "^2.6.2" | ||
3295 | + } | ||
3296 | + }, | ||
3297 | + "mongodb-connection-string-url": { | ||
3298 | + "version": "2.5.2", | ||
3299 | + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz", | ||
3300 | + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==", | ||
3301 | + "requires": { | ||
3302 | + "@types/whatwg-url": "^8.2.1", | ||
3303 | + "whatwg-url": "^11.0.0" | ||
3304 | + } | ||
3305 | + }, | ||
3306 | + "mongoose": { | ||
3307 | + "version": "6.3.4", | ||
3308 | + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.4.tgz", | ||
3309 | + "integrity": "sha512-UP0azyGMdY+2YNbJUHeHhnVw5vPzCqs4GQDUwHkilif/rwmSZktUQhQWMp1pUgRNeF2JC30vWGLrInZxD7K/Qw==", | ||
3310 | + "requires": { | ||
3311 | + "bson": "^4.6.2", | ||
3312 | + "kareem": "2.3.5", | ||
3313 | + "mongodb": "4.5.0", | ||
3314 | + "mpath": "0.9.0", | ||
3315 | + "mquery": "4.0.3", | ||
3316 | + "ms": "2.1.3", | ||
3317 | + "sift": "16.0.0" | ||
3318 | + }, | ||
3319 | + "dependencies": { | ||
3320 | + "ms": { | ||
3321 | + "version": "2.1.3", | ||
3322 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
3323 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
3324 | + } | ||
3325 | + } | ||
3326 | + }, | ||
3327 | + "mpath": { | ||
3328 | + "version": "0.9.0", | ||
3329 | + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", | ||
3330 | + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" | ||
3331 | + }, | ||
3332 | + "mquery": { | ||
3333 | + "version": "4.0.3", | ||
3334 | + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", | ||
3335 | + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", | ||
3336 | + "requires": { | ||
3337 | + "debug": "4.x" | ||
3338 | + }, | ||
3339 | + "dependencies": { | ||
3340 | + "debug": { | ||
3341 | + "version": "4.3.4", | ||
3342 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", | ||
3343 | + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", | ||
3344 | + "requires": { | ||
3345 | + "ms": "2.1.2" | ||
3346 | + } | ||
3347 | + }, | ||
3348 | + "ms": { | ||
3349 | + "version": "2.1.2", | ||
3350 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
3351 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
3352 | + } | ||
3353 | + } | ||
3354 | + }, | ||
2703 | "ms": { | 3355 | "ms": { |
2704 | "version": "2.0.0", | 3356 | "version": "2.0.0", |
2705 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | 3357 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
... | @@ -2861,6 +3513,11 @@ | ... | @@ -2861,6 +3513,11 @@ |
2861 | "once": "^1.3.1" | 3513 | "once": "^1.3.1" |
2862 | } | 3514 | } |
2863 | }, | 3515 | }, |
3516 | + "punycode": { | ||
3517 | + "version": "2.1.1", | ||
3518 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
3519 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" | ||
3520 | + }, | ||
2864 | "pupa": { | 3521 | "pupa": { |
2865 | "version": "2.1.1", | 3522 | "version": "2.1.1", |
2866 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", | 3523 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", |
... | @@ -2960,11 +3617,19 @@ | ... | @@ -2960,11 +3617,19 @@ |
2960 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | 3617 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
2961 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | 3618 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" |
2962 | }, | 3619 | }, |
3620 | + "saslprep": { | ||
3621 | + "version": "1.0.3", | ||
3622 | + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", | ||
3623 | + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", | ||
3624 | + "optional": true, | ||
3625 | + "requires": { | ||
3626 | + "sparse-bitfield": "^3.0.3" | ||
3627 | + } | ||
3628 | + }, | ||
2963 | "semver": { | 3629 | "semver": { |
2964 | "version": "5.7.1", | 3630 | "version": "5.7.1", |
2965 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | 3631 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", |
2966 | - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | 3632 | + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" |
2967 | - "dev": true | ||
2968 | }, | 3633 | }, |
2969 | "semver-diff": { | 3634 | "semver-diff": { |
2970 | "version": "3.1.1", | 3635 | "version": "3.1.1", |
... | @@ -3036,12 +3701,40 @@ | ... | @@ -3036,12 +3701,40 @@ |
3036 | "object-inspect": "^1.9.0" | 3701 | "object-inspect": "^1.9.0" |
3037 | } | 3702 | } |
3038 | }, | 3703 | }, |
3704 | + "sift": { | ||
3705 | + "version": "16.0.0", | ||
3706 | + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", | ||
3707 | + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==" | ||
3708 | + }, | ||
3039 | "signal-exit": { | 3709 | "signal-exit": { |
3040 | "version": "3.0.7", | 3710 | "version": "3.0.7", |
3041 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", | 3711 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", |
3042 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", | 3712 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", |
3043 | "dev": true | 3713 | "dev": true |
3044 | }, | 3714 | }, |
3715 | + "smart-buffer": { | ||
3716 | + "version": "4.2.0", | ||
3717 | + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", | ||
3718 | + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" | ||
3719 | + }, | ||
3720 | + "socks": { | ||
3721 | + "version": "2.6.2", | ||
3722 | + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", | ||
3723 | + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", | ||
3724 | + "requires": { | ||
3725 | + "ip": "^1.1.5", | ||
3726 | + "smart-buffer": "^4.2.0" | ||
3727 | + } | ||
3728 | + }, | ||
3729 | + "sparse-bitfield": { | ||
3730 | + "version": "3.0.3", | ||
3731 | + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", | ||
3732 | + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", | ||
3733 | + "optional": true, | ||
3734 | + "requires": { | ||
3735 | + "memory-pager": "^1.0.2" | ||
3736 | + } | ||
3737 | + }, | ||
3045 | "statuses": { | 3738 | "statuses": { |
3046 | "version": "2.0.1", | 3739 | "version": "2.0.1", |
3047 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | 3740 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", |
... | @@ -3111,6 +3804,14 @@ | ... | @@ -3111,6 +3804,14 @@ |
3111 | "nopt": "~1.0.10" | 3804 | "nopt": "~1.0.10" |
3112 | } | 3805 | } |
3113 | }, | 3806 | }, |
3807 | + "tr46": { | ||
3808 | + "version": "3.0.0", | ||
3809 | + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", | ||
3810 | + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", | ||
3811 | + "requires": { | ||
3812 | + "punycode": "^2.1.1" | ||
3813 | + } | ||
3814 | + }, | ||
3114 | "type-fest": { | 3815 | "type-fest": { |
3115 | "version": "0.20.2", | 3816 | "version": "0.20.2", |
3116 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", | 3817 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", |
... | @@ -3207,6 +3908,20 @@ | ... | @@ -3207,6 +3908,20 @@ |
3207 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | 3908 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", |
3208 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" | 3909 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" |
3209 | }, | 3910 | }, |
3911 | + "webidl-conversions": { | ||
3912 | + "version": "7.0.0", | ||
3913 | + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", | ||
3914 | + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" | ||
3915 | + }, | ||
3916 | + "whatwg-url": { | ||
3917 | + "version": "11.0.0", | ||
3918 | + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", | ||
3919 | + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", | ||
3920 | + "requires": { | ||
3921 | + "tr46": "^3.0.0", | ||
3922 | + "webidl-conversions": "^7.0.0" | ||
3923 | + } | ||
3924 | + }, | ||
3210 | "widest-line": { | 3925 | "widest-line": { |
3211 | "version": "3.1.0", | 3926 | "version": "3.1.0", |
3212 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", | 3927 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", | ... | ... |
1 | { | 1 | { |
2 | "name": "weather_chatbot", | 2 | "name": "weather_chatbot", |
3 | "version": "1.0.0", | 3 | "version": "1.0.0", |
4 | - "description": "", | 4 | + "description": "web-app weather chatbot", |
5 | - "main": "index.js", | 5 | + "main": "server.js", |
6 | "scripts": { | 6 | "scripts": { |
7 | - "test": "echo \"Error: no test specified\" && exit 1" | 7 | + "start": "node server.js", |
8 | + "dev": "nodemon server.js" | ||
8 | }, | 9 | }, |
9 | "repository": { | 10 | "repository": { |
10 | "type": "git", | 11 | "type": "git", |
... | @@ -13,7 +14,12 @@ | ... | @@ -13,7 +14,12 @@ |
13 | "author": "황선혁", | 14 | "author": "황선혁", |
14 | "license": "MIT", | 15 | "license": "MIT", |
15 | "dependencies": { | 16 | "dependencies": { |
16 | - "express": "^4.18.1" | 17 | + "bcryptjs": "^2.4.3", |
18 | + "dotenv": "^16.0.1", | ||
19 | + "express": "^4.18.1", | ||
20 | + "express-async-handler": "^1.2.0", | ||
21 | + "jsonwebtoken": "^8.5.1", | ||
22 | + "mongoose": "^6.3.4" | ||
17 | }, | 23 | }, |
18 | "devDependencies": { | 24 | "devDependencies": { |
19 | "nodemon": "^2.0.16" | 25 | "nodemon": "^2.0.16" | ... | ... |
routes/userRoutes.js
0 → 100644
server.js
0 → 100644
1 | +const express = require("express"); | ||
2 | +const dotenv = require("dotenv").config(); | ||
3 | +const { errorHandler } = require("./middleware/errorMiddleware"); | ||
4 | +const connectDB = require("./config/db"); | ||
5 | +const port = process.env.PORT || 8000; | ||
6 | + | ||
7 | +connectDB(); | ||
8 | +const app = express(); | ||
9 | + | ||
10 | +app.use(express.json()); | ||
11 | +app.use(express.urlencoded({ extended: false })); | ||
12 | + | ||
13 | +app.use("/api/users", require("./routes/userRoutes")); | ||
14 | + | ||
15 | +app.use(errorHandler); | ||
16 | + | ||
17 | +app.listen(port, () => { | ||
18 | + console.log(`Server started on port ${port}`); | ||
19 | +}); |
server/index.js
deleted
100644 → 0
1 | -const express = require("express"); | ||
2 | -const app = express(); | ||
3 | - | ||
4 | -const PORT = 8000; | ||
5 | - | ||
6 | -app.listen(PORT, () => { | ||
7 | - console.log(`App listening on port ${PORT}`); | ||
8 | -}); | ||
9 | - | ||
10 | -app.get("/", (req, res) => { | ||
11 | - res.send("Hello World!"); | ||
12 | -}); | ||
13 | - | ||
14 | -app.get("/login", (req, res) => { | ||
15 | - res.send("Hello World!"); | ||
16 | -}); | ||
17 | - | ||
18 | -app.get("/signup", (req, res) => { | ||
19 | - res.send("Hello World!"); | ||
20 | -}); |
-
Please register or login to post a comment