From e2a4d612572adcb1d419b8588eaf22170eec9588 Mon Sep 17 00:00:00 2001 From: "edwardfgthomas@gmail.com" Date: Tue, 7 Mar 2023 12:26:40 +0000 Subject: [PATCH 01/24] create homepage route and basic navbar --- api/package-lock.json | 139 ++- api/spec/controllers/tokens.spec.js | 4 +- .../cypress/videos/making_a_post.cy.js.mp4 | Bin 6681 -> 0 bytes frontend/cypress/videos/signing_in.cy.js.mp4 | Bin 19697 -> 0 bytes frontend/cypress/videos/signing_up.cy.js.mp4 | Bin 17493 -> 0 bytes frontend/package-lock.json | 536 ++++++++++-- frontend/package.json | 2 + frontend/src/components/app/App.js | 6 + frontend/src/components/feed/Feed.js | 1 + frontend/src/components/homepage/Homepage.js | 9 + frontend/src/components/navbar/Navbar.js | 32 + frontend/src/index.css | 1 + frontend/src/index.js | 2 + package-lock.json | 801 ++++++++++++++++++ package.json | 5 + 15 files changed, 1394 insertions(+), 144 deletions(-) delete mode 100644 frontend/cypress/videos/making_a_post.cy.js.mp4 delete mode 100644 frontend/cypress/videos/signing_in.cy.js.mp4 delete mode 100644 frontend/cypress/videos/signing_up.cy.js.mp4 create mode 100644 frontend/src/components/homepage/Homepage.js create mode 100644 frontend/src/components/navbar/Navbar.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/api/package-lock.json b/api/package-lock.json index 04643f525..6e5a342a3 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -1451,7 +1451,7 @@ "node_modules/body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", "dependencies": { "bytes": "3.0.0", "content-type": "~1.0.4", @@ -1468,14 +1468,6 @@ "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1822,9 +1814,9 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "node_modules/core-util-is": { "version": "1.0.3", @@ -1957,9 +1949,9 @@ } }, "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -2273,14 +2265,6 @@ "node": ">= 0.6" } }, - "node_modules/express/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/express/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2359,23 +2343,26 @@ "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" }, "node_modules/formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", + "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", "dependencies": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" }, "funding": { "url": "https://ko-fi.com/tunnckoCore/commissions" } }, "node_modules/formidable/node_modules/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -3746,9 +3733,9 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -4045,9 +4032,9 @@ } }, "node_modules/mongoose": { - "version": "5.13.14", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.14.tgz", - "integrity": "sha512-j+BlQjjxgZg0iWn42kLeZTB91OejcxWpY2Z50bsZTiKJ7HHcEtcY21Godw496GMkBqJMTzmW7G/kZ04mW+Cb7Q==", + "version": "5.13.16", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.16.tgz", + "integrity": "sha512-kBNB+BfaQjn3Jjh1SfdZZub70pde9dI0sA8VN6AnnCOeK4TzbLDyB0lBmPBOajppm6U9orde5YfTRyyVa1U45w==", "dependencies": { "@types/bson": "1.x || 4.0.x", "@types/mongodb": "^3.5.27", @@ -4574,6 +4561,14 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -6765,7 +6760,7 @@ "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", "requires": { "bytes": "3.0.0", "content-type": "~1.0.4", @@ -6777,13 +6772,6 @@ "qs": "6.5.2", "raw-body": "2.3.3", "type-is": "~1.6.16" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } } }, "brace-expansion": { @@ -7046,9 +7034,9 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "core-util-is": { "version": "1.0.3", @@ -7159,9 +7147,9 @@ "dev": true }, "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "requires": { "asap": "^2.0.0", "wrappy": "1" @@ -7383,11 +7371,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -7481,20 +7464,23 @@ "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" }, "formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", + "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", "requires": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" }, "dependencies": { "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } } } }, @@ -8531,9 +8517,9 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonwebtoken": { @@ -8753,9 +8739,9 @@ } }, "mongoose": { - "version": "5.13.14", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.14.tgz", - "integrity": "sha512-j+BlQjjxgZg0iWn42kLeZTB91OejcxWpY2Z50bsZTiKJ7HHcEtcY21Godw496GMkBqJMTzmW7G/kZ04mW+Cb7Q==", + "version": "5.13.16", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.16.tgz", + "integrity": "sha512-kBNB+BfaQjn3Jjh1SfdZZub70pde9dI0sA8VN6AnnCOeK4TzbLDyB0lBmPBOajppm6U9orde5YfTRyyVa1U45w==", "requires": { "@types/bson": "1.x || 4.0.x", "@types/mongodb": "^3.5.27", @@ -9156,6 +9142,11 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", diff --git a/api/spec/controllers/tokens.spec.js b/api/spec/controllers/tokens.spec.js index e5f5d9c7b..9a70f2cd7 100644 --- a/api/spec/controllers/tokens.spec.js +++ b/api/spec/controllers/tokens.spec.js @@ -4,9 +4,9 @@ require("../mongodb_helper"); const User = require('../../models/user'); describe("/tokens", () => { - beforeAll( () => { + beforeAll( async () => { const user = new User({ email: "test@test.com", password: "12345678" }) - user.save() + await user.save() }); afterAll( async () => { diff --git a/frontend/cypress/videos/making_a_post.cy.js.mp4 b/frontend/cypress/videos/making_a_post.cy.js.mp4 deleted file mode 100644 index 9e0869abe3ec005c4863732b513f3aa6ec0405f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6681 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 Ba}fXl diff --git a/frontend/cypress/videos/signing_in.cy.js.mp4 b/frontend/cypress/videos/signing_in.cy.js.mp4 deleted file mode 100644 index 9642e0ba31c26b252e3b55b8fcf46ac58ddada0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19697 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

F1r16Lz<8+$Hx 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.9.0" @@ -2867,6 +2869,57 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.5.0.tgz", + "integrity": "sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==", + "dependencies": { + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@restart/hooks": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz", + "integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==", + "dependencies": { + "dequal": "^2.0.2" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.1.tgz", + "integrity": "sha512-cMI9DdqZV5VGEyANYM4alHK9/2Lh/mKZAMydztMl6PBLm6EetFbwE2RfYqliloR+EtEULlI4TiZk/XPhQAovxw==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "@popperjs/core": "^2.11.6", + "@react-aria/ssr": "^3.4.1", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -3185,6 +3238,14 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -3388,6 +3449,11 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==" }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, "node_modules/@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -3403,6 +3469,24 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "node_modules/@types/react": { + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -3416,6 +3500,11 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -3461,6 +3550,11 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -4740,6 +4834,24 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "node_modules/bootstrap": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.6" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5052,6 +5164,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/clean-css": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", @@ -5844,6 +5961,11 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, "node_modules/cypress": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", @@ -6069,6 +6191,14 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -6200,6 +6330,15 @@ "utila": "~0.4" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -8502,6 +8641,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -10023,9 +10170,9 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -10191,9 +10338,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -12495,6 +12642,23 @@ "react-is": "^16.13.1" } }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/prop-types-extra/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -12683,6 +12847,35 @@ "node": ">=14" } }, + "node_modules/react-bootstrap": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.7.2.tgz", + "integrity": "sha512-WDSln+mG4RLLFO01stkj2bEx/3MF4YihK9D/dWnHaSxOiQZLbhhlf95D2Jb20X3t2m7vMxRe888FVrfLJoGmmA==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@restart/hooks": "^0.4.6", + "@restart/ui": "^1.4.1", + "@types/react-transition-group": "^4.4.4", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -12718,9 +12911,9 @@ } }, "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "engines": { "node": ">= 12.13.0" } @@ -12747,6 +12940,11 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -12864,6 +13062,21 @@ "node": ">=12" } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -12897,25 +13110,14 @@ } }, "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dependencies": { - "brace-expansion": "^1.1.7" + "minimatch": "^3.0.5" }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, "node_modules/regenerate": { @@ -12935,9 +13137,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -14496,9 +14698,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dependencies": { "minimist": "^1.2.0" }, @@ -14631,6 +14833,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -14859,6 +15075,14 @@ "makeerror": "1.0.12" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -16971,11 +17195,11 @@ } }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/runtime-corejs3": { @@ -17639,6 +17863,43 @@ "source-map": "^0.7.3" } }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + }, + "@react-aria/ssr": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.5.0.tgz", + "integrity": "sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@restart/hooks": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz", + "integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==", + "requires": { + "dequal": "^2.0.2" + } + }, + "@restart/ui": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.1.tgz", + "integrity": "sha512-cMI9DdqZV5VGEyANYM4alHK9/2Lh/mKZAMydztMl6PBLm6EetFbwE2RfYqliloR+EtEULlI4TiZk/XPhQAovxw==", + "requires": { + "@babel/runtime": "^7.20.7", + "@popperjs/core": "^2.11.6", + "@react-aria/ssr": "^3.4.1", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -17833,6 +18094,14 @@ "loader-utils": "^2.0.0" } }, + "@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "requires": { + "tslib": "^2.4.0" + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -18030,6 +18299,11 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==" }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, "@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -18045,6 +18319,24 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/react": { + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "requires": { + "@types/react": "*" + } + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -18058,6 +18350,11 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -18103,6 +18400,11 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -19032,6 +19334,12 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "bootstrap": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "requires": {} + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -19240,6 +19548,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "clean-css": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", @@ -19810,6 +20123,11 @@ } } }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, "cypress": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", @@ -19980,6 +20298,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -20081,6 +20404,15 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -21760,6 +22092,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -22877,9 +23217,9 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonfile": { "version": "6.1.0", @@ -22993,9 +23333,9 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -24484,6 +24824,22 @@ } } }, + "prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "requires": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -24617,6 +24973,25 @@ "whatwg-fetch": "^3.6.2" } }, + "react-bootstrap": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.7.2.tgz", + "integrity": "sha512-WDSln+mG4RLLFO01stkj2bEx/3MF4YihK9D/dWnHaSxOiQZLbhhlf95D2Jb20X3t2m7vMxRe888FVrfLJoGmmA==", + "requires": { + "@babel/runtime": "^7.17.2", + "@restart/hooks": "^0.4.6", + "@restart/ui": "^1.4.1", + "@types/react-transition-group": "^4.4.4", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + } + }, "react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -24649,9 +25024,9 @@ }, "dependencies": { "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" } } }, @@ -24674,6 +25049,11 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -24763,6 +25143,17 @@ } } }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -24790,21 +25181,11 @@ } }, "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "minimatch": "^3.0.5" } }, "regenerate": { @@ -24821,9 +25202,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { "version": "0.15.0", @@ -25978,9 +26359,9 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "requires": { "minimist": "^1.2.0" } @@ -26077,6 +26458,17 @@ "which-boxed-primitive": "^1.0.2" } }, + "uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "requires": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + } + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -26240,6 +26632,14 @@ "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 04bf86188..e38dc59e5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,9 +4,11 @@ "private": true, "proxy": "http://localhost:8080", "dependencies": { + "bootstrap": "^5.2.3", "cypress": "^10.7.0", "eslint": "^8.23.0", "react": "^18.2.0", + "react-bootstrap": "^2.7.2", "react-dom": "^18.2.0", "react-router": "^6.3.0", "react-router-dom": "^6.3.0", diff --git a/frontend/src/components/app/App.js b/frontend/src/components/app/App.js index 760c05a4a..a040d3eb7 100644 --- a/frontend/src/components/app/App.js +++ b/frontend/src/components/app/App.js @@ -1,6 +1,7 @@ import './App.css'; import LoginForm from '../auth/LoginForm' import SignUpForm from '../user/SignUpForm' +import Homepage from '../homepage/Homepage' import React, { useState } from 'react'; import Feed from '../feed/Feed' import { @@ -8,14 +9,19 @@ import { Routes, Route, } from "react-router-dom"; +import Navbar from '../navbar/Navbar'; const App = () => { return ( + <> + + }/> }/> }/> }/> + ); } diff --git a/frontend/src/components/feed/Feed.js b/frontend/src/components/feed/Feed.js index fc89c68fc..a71a29155 100644 --- a/frontend/src/components/feed/Feed.js +++ b/frontend/src/components/feed/Feed.js @@ -1,5 +1,6 @@ import React, { useEffect, useState } from 'react'; import Post from '../post/Post' +import Navbar from '../navbar/Navbar' const Feed = ({ navigate }) => { const [posts, setPosts] = useState([]); diff --git a/frontend/src/components/homepage/Homepage.js b/frontend/src/components/homepage/Homepage.js new file mode 100644 index 000000000..dabb85223 --- /dev/null +++ b/frontend/src/components/homepage/Homepage.js @@ -0,0 +1,9 @@ +const Homepage = ({ navigate }) => { + + + return ( +

this is the homepage

+ ) +} + +export default Homepage; \ No newline at end of file diff --git a/frontend/src/components/navbar/Navbar.js b/frontend/src/components/navbar/Navbar.js new file mode 100644 index 000000000..4af0af7f9 --- /dev/null +++ b/frontend/src/components/navbar/Navbar.js @@ -0,0 +1,32 @@ + +const Navbar = () => { + + + return ( + <> + + + ) +} + +export default Navbar; \ No newline at end of file diff --git a/frontend/src/index.css b/frontend/src/index.css index ec2585e8c..e8cae275c 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -1,3 +1,4 @@ + body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', diff --git a/frontend/src/index.js b/frontend/src/index.js index e37d8a008..01f342782 100644 --- a/frontend/src/index.js +++ b/frontend/src/index.js @@ -4,6 +4,8 @@ import './index.css'; import App from './components/app/App'; import reportWebVitals from './reportWebVitals'; import { BrowserRouter } from 'react-router-dom'; +import 'bootstrap/dist/css/bootstrap.min.css'; + const root = ReactDOM.createRoot(document.getElementById('root')); root.render( diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..f95088643 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,801 @@ +{ + "name": "acebook-TEMPNAME", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "tailwindcss": "^3.2.7" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..14927a2f9 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "tailwindcss": "^3.2.7" + } +} From 80ed0531b11ca7c8be38d178cc538f3e8314024e Mon Sep 17 00:00:00 2001 From: "edwardfgthomas@gmail.com" Date: Tue, 7 Mar 2023 14:22:34 +0000 Subject: [PATCH 02/24] add logic for navbar updating when user signsout --- frontend/src/components/auth/LoginForm.js | 8 ++-- frontend/src/components/feed/Feed.js | 1 - frontend/src/components/navbar/Navbar.js | 48 +++++++++++++++++------ 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/auth/LoginForm.js b/frontend/src/components/auth/LoginForm.js index 69ce0a192..2b98ab171 100644 --- a/frontend/src/components/auth/LoginForm.js +++ b/frontend/src/components/auth/LoginForm.js @@ -16,13 +16,15 @@ const LogInForm = ({ navigate }) => { }) if(response.status !== 201) { - console.log("yay") + console.log(response.status); + console.log("failed") navigate('/login') } else { - console.log("oop") + console.log("logged in") + console.log(response.status); let data = await response.json() window.localStorage.setItem("token", data.token) - navigate('/posts'); + navigate('/'); } } diff --git a/frontend/src/components/feed/Feed.js b/frontend/src/components/feed/Feed.js index a71a29155..fc89c68fc 100644 --- a/frontend/src/components/feed/Feed.js +++ b/frontend/src/components/feed/Feed.js @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; import Post from '../post/Post' -import Navbar from '../navbar/Navbar' const Feed = ({ navigate }) => { const [posts, setPosts] = useState([]); diff --git a/frontend/src/components/navbar/Navbar.js b/frontend/src/components/navbar/Navbar.js index 4af0af7f9..7a6b11d5f 100644 --- a/frontend/src/components/navbar/Navbar.js +++ b/frontend/src/components/navbar/Navbar.js @@ -1,26 +1,48 @@ +import React, { useEffect, useState } from 'react'; const Navbar = () => { + const [token, setToken] = useState(window.localStorage.getItem("token")); + + // useEffect(() => { + // setToken(window.localStorage.getItem("token")) + // })}, []) + + const logout = () => { + setToken(''); + window.localStorage.removeItem("token") + } return ( <> -