Eric Whale

Setup npm script for client/server

...@@ -14,8 +14,7 @@ const root = ReactDOM.createRoot(document.getElementById("root")); ...@@ -14,8 +14,7 @@ const root = ReactDOM.createRoot(document.getElementById("root"));
14 root.render( 14 root.render(
15 <BrowserRouter> 15 <BrowserRouter>
16 <Routes> 16 <Routes>
17 - // root route is for chatroom 17 + <Route path="/" element={<App />} /> // App = chatroom
18 - <Route path="/" element={<App />} />
19 <Route path="/login" element={<Login />} /> 18 <Route path="/login" element={<Login />} />
20 <Route path="/signup" element={<Signup />} /> 19 <Route path="/signup" element={<Signup />} />
21 <Route path="/userroom" element={<Userroom />} /> 20 <Route path="/userroom" element={<Userroom />} />
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
18 "mongoose": "^6.3.4" 18 "mongoose": "^6.3.4"
19 }, 19 },
20 "devDependencies": { 20 "devDependencies": {
21 + "concurrently": "^7.2.1",
21 "nodemon": "^2.0.16" 22 "nodemon": "^2.0.16"
22 } 23 }
23 }, 24 },
...@@ -431,6 +432,17 @@ ...@@ -431,6 +432,17 @@
431 "url": "https://github.com/sponsors/sindresorhus" 432 "url": "https://github.com/sponsors/sindresorhus"
432 } 433 }
433 }, 434 },
435 + "node_modules/cliui": {
436 + "version": "7.0.4",
437 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
438 + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
439 + "dev": true,
440 + "dependencies": {
441 + "string-width": "^4.2.0",
442 + "strip-ansi": "^6.0.0",
443 + "wrap-ansi": "^7.0.0"
444 + }
445 + },
434 "node_modules/clone-response": { 446 "node_modules/clone-response": {
435 "version": "1.0.2", 447 "version": "1.0.2",
436 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 448 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
...@@ -472,6 +484,53 @@ ...@@ -472,6 +484,53 @@
472 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 484 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
473 "dev": true 485 "dev": true
474 }, 486 },
487 + "node_modules/concurrently": {
488 + "version": "7.2.1",
489 + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
490 + "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
491 + "dev": true,
492 + "dependencies": {
493 + "chalk": "^4.1.0",
494 + "date-fns": "^2.16.1",
495 + "lodash": "^4.17.21",
496 + "rxjs": "^6.6.3",
497 + "shell-quote": "^1.7.3",
498 + "spawn-command": "^0.0.2-1",
499 + "supports-color": "^8.1.0",
500 + "tree-kill": "^1.2.2",
501 + "yargs": "^17.3.1"
502 + },
503 + "bin": {
504 + "concurrently": "dist/bin/concurrently.js"
505 + },
506 + "engines": {
507 + "node": "^12.20.0 || ^14.13.0 || >=16.0.0"
508 + }
509 + },
510 + "node_modules/concurrently/node_modules/has-flag": {
511 + "version": "4.0.0",
512 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
513 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
514 + "dev": true,
515 + "engines": {
516 + "node": ">=8"
517 + }
518 + },
519 + "node_modules/concurrently/node_modules/supports-color": {
520 + "version": "8.1.1",
521 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
522 + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
523 + "dev": true,
524 + "dependencies": {
525 + "has-flag": "^4.0.0"
526 + },
527 + "engines": {
528 + "node": ">=10"
529 + },
530 + "funding": {
531 + "url": "https://github.com/chalk/supports-color?sponsor=1"
532 + }
533 + },
475 "node_modules/configstore": { 534 "node_modules/configstore": {
476 "version": "5.0.1", 535 "version": "5.0.1",
477 "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", 536 "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
...@@ -530,6 +589,19 @@ ...@@ -530,6 +589,19 @@
530 "node": ">=8" 589 "node": ">=8"
531 } 590 }
532 }, 591 },
592 + "node_modules/date-fns": {
593 + "version": "2.28.0",
594 + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
595 + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
596 + "dev": true,
597 + "engines": {
598 + "node": ">=0.11"
599 + },
600 + "funding": {
601 + "type": "opencollective",
602 + "url": "https://opencollective.com/date-fns"
603 + }
604 + },
533 "node_modules/debug": { 605 "node_modules/debug": {
534 "version": "2.6.9", 606 "version": "2.6.9",
535 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 607 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
...@@ -652,6 +724,15 @@ ...@@ -652,6 +724,15 @@
652 "once": "^1.4.0" 724 "once": "^1.4.0"
653 } 725 }
654 }, 726 },
727 + "node_modules/escalade": {
728 + "version": "3.1.1",
729 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
730 + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
731 + "dev": true,
732 + "engines": {
733 + "node": ">=6"
734 + }
735 + },
655 "node_modules/escape-goat": { 736 "node_modules/escape-goat": {
656 "version": "2.1.1", 737 "version": "2.1.1",
657 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 738 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
...@@ -784,6 +865,15 @@ ...@@ -784,6 +865,15 @@
784 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 865 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
785 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 866 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
786 }, 867 },
868 + "node_modules/get-caller-file": {
869 + "version": "2.0.5",
870 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
871 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
872 + "dev": true,
873 + "engines": {
874 + "node": "6.* || 8.* || >= 10.*"
875 + }
876 + },
787 "node_modules/get-intrinsic": { 877 "node_modules/get-intrinsic": {
788 "version": "1.1.1", 878 "version": "1.1.1",
789 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 879 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
...@@ -1204,6 +1294,12 @@ ...@@ -1204,6 +1294,12 @@
1204 "node": ">=8" 1294 "node": ">=8"
1205 } 1295 }
1206 }, 1296 },
1297 + "node_modules/lodash": {
1298 + "version": "4.17.21",
1299 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1300 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1301 + "dev": true
1302 + },
1207 "node_modules/lodash.includes": { 1303 "node_modules/lodash.includes": {
1208 "version": "4.3.0", 1304 "version": "4.3.0",
1209 "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 1305 "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
...@@ -1786,6 +1882,15 @@ ...@@ -1786,6 +1882,15 @@
1786 "node": ">=8" 1882 "node": ">=8"
1787 } 1883 }
1788 }, 1884 },
1885 + "node_modules/require-directory": {
1886 + "version": "2.1.1",
1887 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1888 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1889 + "dev": true,
1890 + "engines": {
1891 + "node": ">=0.10.0"
1892 + }
1893 + },
1789 "node_modules/responselike": { 1894 "node_modules/responselike": {
1790 "version": "1.0.2", 1895 "version": "1.0.2",
1791 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 1896 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
...@@ -1795,6 +1900,18 @@ ...@@ -1795,6 +1900,18 @@
1795 "lowercase-keys": "^1.0.0" 1900 "lowercase-keys": "^1.0.0"
1796 } 1901 }
1797 }, 1902 },
1903 + "node_modules/rxjs": {
1904 + "version": "6.6.7",
1905 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
1906 + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
1907 + "dev": true,
1908 + "dependencies": {
1909 + "tslib": "^1.9.0"
1910 + },
1911 + "engines": {
1912 + "npm": ">=2.0.0"
1913 + }
1914 + },
1798 "node_modules/safe-buffer": { 1915 "node_modules/safe-buffer": {
1799 "version": "5.2.1", 1916 "version": "5.2.1",
1800 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1917 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
...@@ -1907,6 +2024,12 @@ ...@@ -1907,6 +2024,12 @@
1907 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 2024 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1908 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 2025 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1909 }, 2026 },
2027 + "node_modules/shell-quote": {
2028 + "version": "1.7.3",
2029 + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
2030 + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
2031 + "dev": true
2032 + },
1910 "node_modules/side-channel": { 2033 "node_modules/side-channel": {
1911 "version": "1.0.4", 2034 "version": "1.0.4",
1912 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2035 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
...@@ -1962,6 +2085,12 @@ ...@@ -1962,6 +2085,12 @@
1962 "memory-pager": "^1.0.2" 2085 "memory-pager": "^1.0.2"
1963 } 2086 }
1964 }, 2087 },
2088 + "node_modules/spawn-command": {
2089 + "version": "0.0.2-1",
2090 + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
2091 + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
2092 + "dev": true
2093 + },
1965 "node_modules/statuses": { 2094 "node_modules/statuses": {
1966 "version": "2.0.1", 2095 "version": "2.0.1",
1967 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 2096 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
...@@ -2069,6 +2198,21 @@ ...@@ -2069,6 +2198,21 @@
2069 "node": ">=12" 2198 "node": ">=12"
2070 } 2199 }
2071 }, 2200 },
2201 + "node_modules/tree-kill": {
2202 + "version": "1.2.2",
2203 + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
2204 + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
2205 + "dev": true,
2206 + "bin": {
2207 + "tree-kill": "cli.js"
2208 + }
2209 + },
2210 + "node_modules/tslib": {
2211 + "version": "1.14.1",
2212 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
2213 + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
2214 + "dev": true
2215 + },
2072 "node_modules/type-fest": { 2216 "node_modules/type-fest": {
2073 "version": "0.20.2", 2217 "version": "0.20.2",
2074 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2218 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
...@@ -2275,11 +2419,47 @@ ...@@ -2275,11 +2419,47 @@
2275 "node": ">=8" 2419 "node": ">=8"
2276 } 2420 }
2277 }, 2421 },
2422 + "node_modules/y18n": {
2423 + "version": "5.0.8",
2424 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2425 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2426 + "dev": true,
2427 + "engines": {
2428 + "node": ">=10"
2429 + }
2430 + },
2278 "node_modules/yallist": { 2431 "node_modules/yallist": {
2279 "version": "4.0.0", 2432 "version": "4.0.0",
2280 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2433 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2281 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2434 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2282 "dev": true 2435 "dev": true
2436 + },
2437 + "node_modules/yargs": {
2438 + "version": "17.5.1",
2439 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
2440 + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
2441 + "dev": true,
2442 + "dependencies": {
2443 + "cliui": "^7.0.2",
2444 + "escalade": "^3.1.1",
2445 + "get-caller-file": "^2.0.5",
2446 + "require-directory": "^2.1.1",
2447 + "string-width": "^4.2.3",
2448 + "y18n": "^5.0.5",
2449 + "yargs-parser": "^21.0.0"
2450 + },
2451 + "engines": {
2452 + "node": ">=12"
2453 + }
2454 + },
2455 + "node_modules/yargs-parser": {
2456 + "version": "21.0.1",
2457 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
2458 + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
2459 + "dev": true,
2460 + "engines": {
2461 + "node": ">=12"
2462 + }
2283 } 2463 }
2284 }, 2464 },
2285 "dependencies": { 2465 "dependencies": {
...@@ -2576,6 +2756,17 @@ ...@@ -2576,6 +2756,17 @@
2576 "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", 2756 "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
2577 "dev": true 2757 "dev": true
2578 }, 2758 },
2759 + "cliui": {
2760 + "version": "7.0.4",
2761 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
2762 + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
2763 + "dev": true,
2764 + "requires": {
2765 + "string-width": "^4.2.0",
2766 + "strip-ansi": "^6.0.0",
2767 + "wrap-ansi": "^7.0.0"
2768 + }
2769 + },
2579 "clone-response": { 2770 "clone-response": {
2580 "version": "1.0.2", 2771 "version": "1.0.2",
2581 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 2772 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
...@@ -2611,6 +2802,40 @@ ...@@ -2611,6 +2802,40 @@
2611 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 2802 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2612 "dev": true 2803 "dev": true
2613 }, 2804 },
2805 + "concurrently": {
2806 + "version": "7.2.1",
2807 + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
2808 + "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
2809 + "dev": true,
2810 + "requires": {
2811 + "chalk": "^4.1.0",
2812 + "date-fns": "^2.16.1",
2813 + "lodash": "^4.17.21",
2814 + "rxjs": "^6.6.3",
2815 + "shell-quote": "^1.7.3",
2816 + "spawn-command": "^0.0.2-1",
2817 + "supports-color": "^8.1.0",
2818 + "tree-kill": "^1.2.2",
2819 + "yargs": "^17.3.1"
2820 + },
2821 + "dependencies": {
2822 + "has-flag": {
2823 + "version": "4.0.0",
2824 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2825 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2826 + "dev": true
2827 + },
2828 + "supports-color": {
2829 + "version": "8.1.1",
2830 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
2831 + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
2832 + "dev": true,
2833 + "requires": {
2834 + "has-flag": "^4.0.0"
2835 + }
2836 + }
2837 + }
2838 + },
2614 "configstore": { 2839 "configstore": {
2615 "version": "5.0.1", 2840 "version": "5.0.1",
2616 "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", 2841 "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
...@@ -2654,6 +2879,12 @@ ...@@ -2654,6 +2879,12 @@
2654 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 2879 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
2655 "dev": true 2880 "dev": true
2656 }, 2881 },
2882 + "date-fns": {
2883 + "version": "2.28.0",
2884 + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
2885 + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
2886 + "dev": true
2887 + },
2657 "debug": { 2888 "debug": {
2658 "version": "2.6.9", 2889 "version": "2.6.9",
2659 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 2890 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
...@@ -2751,6 +2982,12 @@ ...@@ -2751,6 +2982,12 @@
2751 "once": "^1.4.0" 2982 "once": "^1.4.0"
2752 } 2983 }
2753 }, 2984 },
2985 + "escalade": {
2986 + "version": "3.1.1",
2987 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2988 + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2989 + "dev": true
2990 + },
2754 "escape-goat": { 2991 "escape-goat": {
2755 "version": "2.1.1", 2992 "version": "2.1.1",
2756 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 2993 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
...@@ -2855,6 +3092,12 @@ ...@@ -2855,6 +3092,12 @@
2855 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 3092 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2856 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 3093 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
2857 }, 3094 },
3095 + "get-caller-file": {
3096 + "version": "2.0.5",
3097 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
3098 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
3099 + "dev": true
3100 + },
2858 "get-intrinsic": { 3101 "get-intrinsic": {
2859 "version": "1.1.1", 3102 "version": "1.1.1",
2860 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 3103 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
...@@ -3169,6 +3412,12 @@ ...@@ -3169,6 +3412,12 @@
3169 "package-json": "^6.3.0" 3412 "package-json": "^6.3.0"
3170 } 3413 }
3171 }, 3414 },
3415 + "lodash": {
3416 + "version": "4.17.21",
3417 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
3418 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
3419 + "dev": true
3420 + },
3172 "lodash.includes": { 3421 "lodash.includes": {
3173 "version": "4.3.0", 3422 "version": "4.3.0",
3174 "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 3423 "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
...@@ -3612,6 +3861,12 @@ ...@@ -3612,6 +3861,12 @@
3612 "rc": "^1.2.8" 3861 "rc": "^1.2.8"
3613 } 3862 }
3614 }, 3863 },
3864 + "require-directory": {
3865 + "version": "2.1.1",
3866 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3867 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3868 + "dev": true
3869 + },
3615 "responselike": { 3870 "responselike": {
3616 "version": "1.0.2", 3871 "version": "1.0.2",
3617 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 3872 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
...@@ -3621,6 +3876,15 @@ ...@@ -3621,6 +3876,15 @@
3621 "lowercase-keys": "^1.0.0" 3876 "lowercase-keys": "^1.0.0"
3622 } 3877 }
3623 }, 3878 },
3879 + "rxjs": {
3880 + "version": "6.6.7",
3881 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
3882 + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
3883 + "dev": true,
3884 + "requires": {
3885 + "tslib": "^1.9.0"
3886 + }
3887 + },
3624 "safe-buffer": { 3888 "safe-buffer": {
3625 "version": "5.2.1", 3889 "version": "5.2.1",
3626 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3890 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
...@@ -3705,6 +3969,12 @@ ...@@ -3705,6 +3969,12 @@
3705 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 3969 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
3706 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 3970 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
3707 }, 3971 },
3972 + "shell-quote": {
3973 + "version": "1.7.3",
3974 + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
3975 + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
3976 + "dev": true
3977 + },
3708 "side-channel": { 3978 "side-channel": {
3709 "version": "1.0.4", 3979 "version": "1.0.4",
3710 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 3980 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
...@@ -3749,6 +4019,12 @@ ...@@ -3749,6 +4019,12 @@
3749 "memory-pager": "^1.0.2" 4019 "memory-pager": "^1.0.2"
3750 } 4020 }
3751 }, 4021 },
4022 + "spawn-command": {
4023 + "version": "0.0.2-1",
4024 + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
4025 + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
4026 + "dev": true
4027 + },
3752 "statuses": { 4028 "statuses": {
3753 "version": "2.0.1", 4029 "version": "2.0.1",
3754 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 4030 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
...@@ -3826,6 +4102,18 @@ ...@@ -3826,6 +4102,18 @@
3826 "punycode": "^2.1.1" 4102 "punycode": "^2.1.1"
3827 } 4103 }
3828 }, 4104 },
4105 + "tree-kill": {
4106 + "version": "1.2.2",
4107 + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
4108 + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
4109 + "dev": true
4110 + },
4111 + "tslib": {
4112 + "version": "1.14.1",
4113 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
4114 + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
4115 + "dev": true
4116 + },
3829 "type-fest": { 4117 "type-fest": {
3830 "version": "0.20.2", 4118 "version": "0.20.2",
3831 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 4119 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
...@@ -3980,11 +4268,38 @@ ...@@ -3980,11 +4268,38 @@
3980 "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 4268 "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
3981 "dev": true 4269 "dev": true
3982 }, 4270 },
4271 + "y18n": {
4272 + "version": "5.0.8",
4273 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
4274 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
4275 + "dev": true
4276 + },
3983 "yallist": { 4277 "yallist": {
3984 "version": "4.0.0", 4278 "version": "4.0.0",
3985 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 4279 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3986 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 4280 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
3987 "dev": true 4281 "dev": true
4282 + },
4283 + "yargs": {
4284 + "version": "17.5.1",
4285 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
4286 + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
4287 + "dev": true,
4288 + "requires": {
4289 + "cliui": "^7.0.2",
4290 + "escalade": "^3.1.1",
4291 + "get-caller-file": "^2.0.5",
4292 + "require-directory": "^2.1.1",
4293 + "string-width": "^4.2.3",
4294 + "y18n": "^5.0.5",
4295 + "yargs-parser": "^21.0.0"
4296 + }
4297 + },
4298 + "yargs-parser": {
4299 + "version": "21.0.1",
4300 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
4301 + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
4302 + "dev": true
3988 } 4303 }
3989 } 4304 }
3990 } 4305 }
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
5 "main": "server.js", 5 "main": "server.js",
6 "scripts": { 6 "scripts": {
7 "start": "node server.js", 7 "start": "node server.js",
8 - "server": "nodemon server.js" 8 + "server": "nodemon server.js",
9 + "client": "npm start --prefix client",
10 + "dev": "concurrently \"npm run client\" \"npm run server\""
9 }, 11 },
10 "repository": { 12 "repository": {
11 "type": "git", 13 "type": "git",
...@@ -23,6 +25,7 @@ ...@@ -23,6 +25,7 @@
23 "mongoose": "^6.3.4" 25 "mongoose": "^6.3.4"
24 }, 26 },
25 "devDependencies": { 27 "devDependencies": {
28 + "concurrently": "^7.2.1",
26 "nodemon": "^2.0.16" 29 "nodemon": "^2.0.16"
27 } 30 }
28 } 31 }
......