From 391e19c9d08583647af4869c951e118423fe5462 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:50:30 -0400 Subject: [PATCH 01/22] add firebaserc --- .firebaserc | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .firebaserc diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..4ab958d --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "rapid-ce500" + } +} From 9cf579a552f35f17f4334ffb5f2d985b7608c043 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:50:38 -0400 Subject: [PATCH 02/22] add firebase config --- firebase.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 firebase.json diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..d194a32 --- /dev/null +++ b/firebase.json @@ -0,0 +1,30 @@ +{ + "firestore": { + "rules": "firestore.rules", + "indexes": "firestore.indexes.json" + }, + "hosting": { + "public": "build", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ] + }, + "storage": { + "rules": "storage.rules" + }, + "emulators": { + "firestore": { + "port": 69420 + }, + "hosting": { + "port": 42069 + }, + "ui": { + "enabled": true + } + } +} From 5b65ab44ba843e0501ed14fee7c1fd99b50eba20 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:50:45 -0400 Subject: [PATCH 03/22] add firestore indexes --- firestore.indexes.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 firestore.indexes.json diff --git a/firestore.indexes.json b/firestore.indexes.json new file mode 100644 index 0000000..415027e --- /dev/null +++ b/firestore.indexes.json @@ -0,0 +1,4 @@ +{ + "indexes": [], + "fieldOverrides": [] +} From b38ae9f3f60035eba353c378885b8c34480d82cd Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:50:49 -0400 Subject: [PATCH 04/22] basic firestore rules --- firestore.rules | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 firestore.rules diff --git a/firestore.rules b/firestore.rules new file mode 100644 index 0000000..c5d056b --- /dev/null +++ b/firestore.rules @@ -0,0 +1,18 @@ +rules_version = '2'; +service cloud.firestore { + match /databases/{database}/documents { + + // This rule allows anyone with your database reference to view, edit, + // and delete all data in your Firestore database. It is useful for getting + // started, but it is configured to expire after 30 days because it + // leaves your app open to attackers. At that time, all client + // requests to your Firestore database will be denied. + // + // Make sure to write security rules for your app before that time, or else + // all client requests to your Firestore database will be denied until you Update + // your rules + match /{document=**} { + allow read, write: if request.time < timestamp.date(2020, 8, 29); + } + } +} \ No newline at end of file From 6ec8dd339b74375a245f0d411a6c9850da62b050 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:50:53 -0400 Subject: [PATCH 05/22] basic storage rules --- storage.rules | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 storage.rules diff --git a/storage.rules b/storage.rules new file mode 100644 index 0000000..d494542 --- /dev/null +++ b/storage.rules @@ -0,0 +1,7 @@ +service firebase.storage { + match /b/{bucket}/o { + match /{allPaths=**} { + allow read, write: if request.auth!=null; + } + } +} From 60a0510d28f2a9aa98ad37852fe116b2c5d4df26 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 09:58:00 -0400 Subject: [PATCH 06/22] add theme --- src/components/theme/theme.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/components/theme/theme.ts diff --git a/src/components/theme/theme.ts b/src/components/theme/theme.ts new file mode 100644 index 0000000..abfbfef --- /dev/null +++ b/src/components/theme/theme.ts @@ -0,0 +1,7 @@ +import { theme as DefaultTheme } from '@chakra-ui/core' + +const theme = { + ...DefaultTheme, +} + +export default theme From 462a72d9e23b9548287df0a641ac0a10a49be2b4 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:00:00 -0400 Subject: [PATCH 07/22] update naming --- src/components/organisms/DisplayNavAndPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/DisplayNavAndPage.tsx b/src/components/organisms/DisplayNavAndPage.tsx index 0f516e0..ec31c07 100644 --- a/src/components/organisms/DisplayNavAndPage.tsx +++ b/src/components/organisms/DisplayNavAndPage.tsx @@ -6,7 +6,7 @@ import NavSidebar from './NavSidebar' interface IDisplayNavAndPage { children: JSX.Element[] | JSX.Element } -export default function DisplayNavAndPage({ +export default function NavLayout({ children, }: IDisplayNavAndPage): JSX.Element { return ( From 6e7678dea3d53f699c8ce41f0b282209ed05b83e Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:01:04 -0400 Subject: [PATCH 08/22] navLayout --- src/components/theme/index.tsx | 9 +++------ src/pages/Chat.tsx | 6 +++--- src/pages/Community.tsx | 6 +++--- src/pages/Explore.tsx | 6 +++--- src/pages/Users.tsx | 6 +++--- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/components/theme/index.tsx b/src/components/theme/index.tsx index 8e082fd..38e80f7 100644 --- a/src/components/theme/index.tsx +++ b/src/components/theme/index.tsx @@ -1,11 +1,8 @@ -import { - ColorModeProvider, - CSSReset, - theme, - ThemeProvider, -} from '@chakra-ui/core' +import { ColorModeProvider, CSSReset, ThemeProvider } from '@chakra-ui/core' import React from 'react' +import theme from './theme' + const ThemedComponent: React.FunctionComponent = ({ children }) => ( diff --git a/src/pages/Chat.tsx b/src/pages/Chat.tsx index f3cfb60..65dbb4b 100644 --- a/src/pages/Chat.tsx +++ b/src/pages/Chat.tsx @@ -1,11 +1,11 @@ import React from 'react' -import DisplayNavAndPage from '../components/organisms/DisplayNavAndPage' +import NavLayout from '../components/organisms/DisplayNavAndPage' export default function Chat(): JSX.Element { return ( - +

Messages

-
+ ) } diff --git a/src/pages/Community.tsx b/src/pages/Community.tsx index 0204e8c..a2fe228 100644 --- a/src/pages/Community.tsx +++ b/src/pages/Community.tsx @@ -4,12 +4,12 @@ import React from 'react' import GroupHeading from '../components/atoms/GroupHeading' import CommunityCardSmall from '../components/molecules/CommunityCardSmall' import Search from '../components/molecules/Search' -import DisplayNavAndPage from '../components/organisms/DisplayNavAndPage' +import NavLayout from '../components/organisms/DisplayNavAndPage' interface ICommunityPage {} export default function Community() { return ( - + @@ -39,6 +39,6 @@ export default function Community() { ) })} - + ) } diff --git a/src/pages/Explore.tsx b/src/pages/Explore.tsx index f92b137..2ccacd6 100644 --- a/src/pages/Explore.tsx +++ b/src/pages/Explore.tsx @@ -3,7 +3,7 @@ import React from 'react' import GroupHeading from '../components/atoms/GroupHeading' import DropsList from '../components/molecules/DropsList' -import DisplayNavAndPage from '../components/organisms/DisplayNavAndPage' +import NavLayout from '../components/organisms/DisplayNavAndPage' import FindInterface from '../components/organisms/FindInterface' import Recommended from '../components/organisms/Recommended' import Trending from '../components/organisms/Trending' @@ -11,7 +11,7 @@ import Trending from '../components/organisms/Trending' interface IExplorePage {} export default function ExplorePage() { return ( - + Drops @@ -31,6 +31,6 @@ export default function ExplorePage() { - + ) } diff --git a/src/pages/Users.tsx b/src/pages/Users.tsx index 7bb561f..e19c37f 100644 --- a/src/pages/Users.tsx +++ b/src/pages/Users.tsx @@ -1,12 +1,12 @@ import React from 'react' -import DisplayNavAndPage from '../components/organisms/DisplayNavAndPage' +import NavLayout from '../components/organisms/DisplayNavAndPage' import FriendList from '../components/organisms/FriendList' export default function UsersPage() { return ( - + - + ) } From 994624af9784e613876d880e89b67b327a5837a8 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:02:35 -0400 Subject: [PATCH 09/22] update deps --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index e08688c..216c830 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "react-icons": "^3.10.0", "react-router-dom": "^5.2.0", "react-scripts": "3.4.1", - "react-wavify": "^1.3.0" + "react-wavify": "^1.3.0", + "typescript": "~3.7.2" }, "scripts": { "start": "react-scripts start", From aa772755a0c1e4bc29f0778116d8b903cf985dea Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:06:40 -0400 Subject: [PATCH 10/22] add firebase --- package.json | 1 + yarn.lock | 445 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 426 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 216c830..20f9001 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@fortawesome/react-fontawesome": "^0.1.11", "@types/react-router-dom": "^5.1.5", "emotion-theming": "^10.0.27", + "firebase": "^7.17.1", "mobx": "^5.15.4", "mobx-react-lite": "^2.0.7", "node-sass": "^4.14.1", diff --git a/yarn.lock b/yarn.lock index 0c6f627..01e1ef4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1272,6 +1272,229 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== +"@firebase/analytics-types@0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.3.1.tgz#3c5f5d71129c88295e17e914e34b391ffda1723c" + integrity sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA== + +"@firebase/analytics@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.4.1.tgz#0f1e6f4e56af11c3956b1652520095a1fbd2c418" + integrity sha512-y5ZuhqX/PwLi0t7AKxNAi3NnlEwXe0rpknulUWUg3/1dALqtd2RrAOATQoV5FNnKK6YUH5UmK0Jb9KcSjsFeNw== + dependencies: + "@firebase/analytics-types" "0.3.1" + "@firebase/component" "0.1.17" + "@firebase/installations" "0.4.15" + "@firebase/logger" "0.2.6" + "@firebase/util" "0.3.0" + tslib "^1.11.1" + +"@firebase/app-types@0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.1.tgz#dcbd23030a71c0c74fc95d4a3f75ba81653850e9" + integrity sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg== + +"@firebase/app@0.6.9": + version "0.6.9" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.9.tgz#e60412d9b6012afb73caef2a1353e1b4c4182954" + integrity sha512-X2riRgK49IK8LCQ3j7BKLu3zqHDTJSaT6YgcLewtHuOVwtpHfGODiS1cL5VMvKm3ogxP84GA70tN3sdoL/vTog== + dependencies: + "@firebase/app-types" "0.6.1" + "@firebase/component" "0.1.17" + "@firebase/logger" "0.2.6" + "@firebase/util" "0.3.0" + dom-storage "2.1.0" + tslib "^1.11.1" + xmlhttprequest "1.8.0" + +"@firebase/auth-interop-types@0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz#9fc9bd7c879f16b8d1bb08373a0f48c3a8b74557" + integrity sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw== + +"@firebase/auth-types@0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.1.tgz#7815e71c9c6f072034415524b29ca8f1d1770660" + integrity sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw== + +"@firebase/auth@0.14.9": + version "0.14.9" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.14.9.tgz#481db24d5bd6eded8ac2e5aea6edb9307040229c" + integrity sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w== + dependencies: + "@firebase/auth-types" "0.10.1" + +"@firebase/component@0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.1.17.tgz#2ce3e1aa060eccf0f06d20368ef9a32cf07c07be" + integrity sha512-/tN5iLcFp9rdpTfCJPfQ/o2ziGHlDxOzNx6XD2FoHlu4pG/PPGu+59iRfQXIowBGhxcTGD/l7oJhZEY/PVg0KQ== + dependencies: + "@firebase/util" "0.3.0" + tslib "^1.11.1" + +"@firebase/database-types@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.5.1.tgz#fab2f3fb48eec374a9f435ed21e138635cb9b71c" + integrity sha512-onQxom1ZBYBJ648w/VNRzUewovEDAH7lvnrrpCd69ukkyrMk6rGEO/PQ9BcNEbhlNtukpsqRS0oNOFlHs0FaSA== + dependencies: + "@firebase/app-types" "0.6.1" + +"@firebase/database@0.6.9": + version "0.6.9" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.6.9.tgz#18a4bdc93b0b10c19a8ad4ff616bba196e5a16e0" + integrity sha512-+X2dNFDpcLEcDRdXp2Hgkf0RnNz3AOIC+Y7UFMQYadm9buB+snXomlnlkMzOj6o+Cp3V7GnpBrKKeeFqzF6wGQ== + dependencies: + "@firebase/auth-interop-types" "0.1.5" + "@firebase/component" "0.1.17" + "@firebase/database-types" "0.5.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "0.3.0" + faye-websocket "0.11.3" + tslib "^1.11.1" + +"@firebase/firestore-types@1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-1.12.0.tgz#511e572e946b07f5a603c90e078f0cd714923fac" + integrity sha512-OqNxVb63wPZdUc7YnpacAW1WNIMSKERSewCRi+unCQ0YI0KNfrDSypyGCyel+S3GdOtKMk9KnvDknaGbnaFX4g== + +"@firebase/firestore@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-1.16.2.tgz#66eedeefab569331efc1ad9ab49a8f1c867a9163" + integrity sha512-iIkAL860oD/QA1uYI9JBbWqBYFWd+DnuSj//BIbOGn3DNAruDFy07g8re1vn+0MMas9bMk6CZATJNCFPeH8AsQ== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/firestore-types" "1.12.0" + "@firebase/logger" "0.2.6" + "@firebase/util" "0.3.0" + "@firebase/webchannel-wrapper" "0.2.41" + "@grpc/grpc-js" "^1.0.0" + "@grpc/proto-loader" "^0.5.0" + tslib "^1.11.1" + +"@firebase/functions-types@0.3.17": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.3.17.tgz#348bf5528b238eeeeeae1d52e8ca547b21d33a94" + integrity sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ== + +"@firebase/functions@0.4.49": + version "0.4.49" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.4.49.tgz#cca60a2f8e188e020c7e5a5ecf075474885ffb03" + integrity sha512-ma3+z1wMKervmEJCLWxwIjbSV+n3/BTfFPSZdTjt18Wgiso5q4BzEObFkorxaXZiyT3KpZ0qOO97lgcoth2hIA== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/functions-types" "0.3.17" + "@firebase/messaging-types" "0.4.5" + isomorphic-fetch "2.2.1" + tslib "^1.11.1" + +"@firebase/installations-types@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.3.4.tgz#589a941d713f4f64bf9f4feb7f463505bab1afa2" + integrity sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q== + +"@firebase/installations@0.4.15": + version "0.4.15" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.15.tgz#ec5a098aea6b5e3e29e73270eeaaf9791587d20a" + integrity sha512-6uGgDocDGu5gI7FeDBDcLaH4npz0cm2f0kctOFK+5N1CyK8Tv2YGv5/uGqlrTtSwDW+8tgKNo/5XXJJOPr9Jsw== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/installations-types" "0.3.4" + "@firebase/util" "0.3.0" + idb "3.0.2" + tslib "^1.11.1" + +"@firebase/logger@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" + integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== + +"@firebase/messaging-types@0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.4.5.tgz#452572d3c5b7fa83659fdb1884450477229f5dc4" + integrity sha512-sux4fgqr/0KyIxqzHlatI04Ajs5rc3WM+WmtCpxrKP1E5Bke8xu/0M+2oy4lK/sQ7nov9z15n3iltAHCgTRU3Q== + +"@firebase/messaging@0.6.21": + version "0.6.21" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.6.21.tgz#d301de72ad055c3f302b917b8a11373cd78c7431" + integrity sha512-cunbFNCtUy25Zp4/jn5lenYUPqgHpjKNUwRjKc7vIzYb4IT2Vu/7kaEptO3K0KQBC6O0QV3ZtqQxKrI9aLiSHg== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/installations" "0.4.15" + "@firebase/messaging-types" "0.4.5" + "@firebase/util" "0.3.0" + idb "3.0.2" + tslib "^1.11.1" + +"@firebase/performance-types@0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.0.13.tgz#58ce5453f57e34b18186f74ef11550dfc558ede6" + integrity sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA== + +"@firebase/performance@0.3.10": + version "0.3.10" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.3.10.tgz#b68336e23f4b5422bd67f6ce35e28293a6b8945e" + integrity sha512-j/hsx2xfOO1hZulmz7KxemoTIVXxrv94rt79x8qO1HzysT7ziViNvQ9cQGjDZWwVSO29TpLH31GOWLVnwmnxWQ== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/installations" "0.4.15" + "@firebase/logger" "0.2.6" + "@firebase/performance-types" "0.0.13" + "@firebase/util" "0.3.0" + tslib "^1.11.1" + +"@firebase/polyfill@0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@firebase/polyfill/-/polyfill-0.3.36.tgz#c057cce6748170f36966b555749472b25efdb145" + integrity sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg== + dependencies: + core-js "3.6.5" + promise-polyfill "8.1.3" + whatwg-fetch "2.0.4" + +"@firebase/remote-config-types@0.1.9": + version "0.1.9" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz#fe6bbe4d08f3b6e92fce30e4b7a9f4d6a96d6965" + integrity sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA== + +"@firebase/remote-config@0.1.26": + version "0.1.26" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.26.tgz#62f448237bc46b986c27ac623b5cc5852007ea05" + integrity sha512-B6+nARVNcswysd6C16nK5tdGECgEpr1wdH6LyqylEQ8hUxYWN18qe49b9uPu+ktaHq0gFLg03gayZvQs7fxJOg== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/installations" "0.4.15" + "@firebase/logger" "0.2.6" + "@firebase/remote-config-types" "0.1.9" + "@firebase/util" "0.3.0" + tslib "^1.11.1" + +"@firebase/storage-types@0.3.13": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.3.13.tgz#cd43e939a2ab5742e109eb639a313673a48b5458" + integrity sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog== + +"@firebase/storage@0.3.41": + version "0.3.41" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.3.41.tgz#cba8946f980d70e68d52cfb110ad109592a645d0" + integrity sha512-2imzI78HcB7FjUqXMRHsGLlZnTYkaCHBjJflSbypwLrEty0hreR6vx3ThOO5y0MFH93WwifqUFJAa+Twkx6CIA== + dependencies: + "@firebase/component" "0.1.17" + "@firebase/storage-types" "0.3.13" + "@firebase/util" "0.3.0" + tslib "^1.11.1" + +"@firebase/util@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.3.0.tgz#c3e938192cde4e1c6260aecaaf22103add2352f5" + integrity sha512-GTwC+FSLeCPc44/TXCDReNQ5FPRIS5cb8Gr1XcD1TgiNBOvmyx61Om2YLwHp2GnN++6m6xmwmXARm06HOukATA== + dependencies: + tslib "^1.11.1" + +"@firebase/webchannel-wrapper@0.2.41": + version "0.2.41" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.41.tgz#4e470c25a99fa0b1f629f1c5ef180a318d399fd0" + integrity sha512-XcdMT5PSZHiuf7LJIhzKIe+RyYa25S3LHRRvLnZc6iFjwXkrSDJ8J/HWO6VT8d2ZTbawp3VcLEjRF/VN8glCrA== + "@fortawesome/fontawesome-common-types@^0.2.30": version "0.2.30" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz#2f1cc5b46bd76723be41d0013a8450c9ba92b777" @@ -1298,6 +1521,21 @@ dependencies: prop-types "^15.7.2" +"@grpc/grpc-js@^1.0.0": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.1.3.tgz#0b91b166d744b6a43b00430dceff0f0ff88c98d5" + integrity sha512-HtOsk2YUofBcm1GkPqGzb6pwHhv+74eC2CUO229USIDKRtg30ycbZmqC+HdNtY3nHqoc9IgcRlntFgopyQoYCA== + dependencies: + semver "^6.2.0" + +"@grpc/proto-loader@^0.5.0": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.5.tgz#6725e7a1827bdf8e92e29fbf4e9ef0203c0906a9" + integrity sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ== + dependencies: + lodash.camelcase "^4.3.0" + protobufjs "^6.8.6" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1501,6 +1739,59 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + "@reach/alert@^0.1.2": version "0.1.5" resolved "https://registry.yarnpkg.com/@reach/alert/-/alert-0.1.5.tgz#4da79add0055fa4295f51e5295ed3b80257e9153" @@ -2282,6 +2573,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -2297,6 +2593,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.53.tgz#be0d375933c3d15ef2380dafb3b0350ea7021129" integrity sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ== +"@types/node@^13.7.0": + version "13.13.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.15.tgz#fe1cc3aa465a3ea6858b793fd380b66c39919766" + integrity sha512-kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw== + "@types/npmlog@^4.1.2": version "4.1.2" resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.2.tgz#d070fe6a6b78755d1092a3dc492d34c3d8f871c4" @@ -4760,16 +5061,16 @@ core-js-pure@^3.0.0, core-js-pure@^3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== +core-js@3.6.5, core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + core-js@^2.4.0: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -5449,6 +5750,11 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-storage@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dom-storage/-/dom-storage-2.1.0.tgz#00fb868bc9201357ea243c7bcfd3304c1e34ea39" + integrity sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q== + dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" @@ -5635,6 +5941,13 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -6300,6 +6613,13 @@ fault@^1.0.2: dependencies: format "^0.2.0" +faye-websocket@0.11.3, faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -6307,13 +6627,6 @@ faye-websocket@^0.10.0: dependencies: websocket-driver ">=0.5.1" -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -6478,6 +6791,26 @@ find-versions@^3.2.0: dependencies: semver-regex "^2.0.0" +firebase@^7.17.1: + version "7.17.1" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-7.17.1.tgz#6b2566d91a820a7993e3d2c75435f8baaabb58bb" + integrity sha512-g2Wkk2fz8VoeSrxv2PIQizm2j74EtbpxQ+wd2AvH2iEF5LRaJOsk3zVBtIlyJIQ3vGTmlutIxtyyoDAQcPO9TA== + dependencies: + "@firebase/analytics" "0.4.1" + "@firebase/app" "0.6.9" + "@firebase/app-types" "0.6.1" + "@firebase/auth" "0.14.9" + "@firebase/database" "0.6.9" + "@firebase/firestore" "1.16.2" + "@firebase/functions" "0.4.49" + "@firebase/installations" "0.4.15" + "@firebase/messaging" "0.6.21" + "@firebase/performance" "0.3.10" + "@firebase/polyfill" "0.3.36" + "@firebase/remote-config" "0.1.26" + "@firebase/storage" "0.3.41" + "@firebase/util" "0.3.0" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -7316,6 +7649,13 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -7323,6 +7663,11 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" +idb@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/idb/-/idb-3.0.2.tgz#c8e9122d5ddd40f13b60ae665e4862f8b13fa384" + integrity sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw== + identity-obj-proxy@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" @@ -7894,7 +8239,7 @@ is-set@^2.0.1: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43" integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA== -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -7992,6 +8337,14 @@ isobject@^4.0.0: resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== +isomorphic-fetch@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -8895,6 +9248,11 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -8977,6 +9335,11 @@ loglevelnext@^1.0.1: es6-symbol "^3.1.1" object.assign "^4.1.0" +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -9510,6 +9873,14 @@ node-dir@^0.1.10: dependencies: minimatch "^3.0.2" +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-fetch@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" @@ -11160,6 +11531,11 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-polyfill@8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + promise.allsettled@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" @@ -11211,6 +11587,25 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +protobufjs@^6.8.6: + version "6.10.1" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.1.tgz#e6a484dd8f04b29629e9053344e3970cccf13cd2" + integrity sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" "^13.7.0" + long "^4.0.0" + proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -12279,7 +12674,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -13553,7 +13948,7 @@ ts-pnp@^1.1.2, ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.0.0, tslib@^1.10.0, tslib@^1.11.2, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.0.0, tslib@^1.10.0, tslib@^1.11.1, tslib@^1.11.2, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== @@ -13632,10 +14027,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.7.2: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@~3.7.2: + version "3.7.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" + integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== unfetch@^4.1.0: version "4.1.0" @@ -14138,7 +14533,12 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^3.0.0: +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz#8e134f701f0a4ab5fda82626f113e2b647fd16dc" integrity sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w== @@ -14429,6 +14829,11 @@ xmlchars@^2.1.1: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + xregexp@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" From ebb8bfa72ade273770ce7b1d593a0a92da79f515 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:20:57 -0400 Subject: [PATCH 11/22] add .env to gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5a3f511..8760995 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ build/ # misc .DS_Store +.env .env.local .env.development.local .env.test.local @@ -18,4 +19,4 @@ build/ npm-debug.log* yarn-debug.log* -yarn-error.log* +yarn-error.log* \ No newline at end of file From 39ab57e37f4de45634940df863fe9db6b80859f0 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:21:01 -0400 Subject: [PATCH 12/22] add firebaseconfig --- src/firebase/index.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/firebase/index.ts diff --git a/src/firebase/index.ts b/src/firebase/index.ts new file mode 100644 index 0000000..9d59da6 --- /dev/null +++ b/src/firebase/index.ts @@ -0,0 +1,14 @@ +import { initializeApp } from 'firebase' + +const firebaseConfig = { + apiKey: process.env.REACT_APP_FapiKey, + authDomain: process.env.REACT_APP_FauthDomain, + databaseURL: process.env.REACT_APP_FdatabaseURL, + projectId: process.env.REACT_APP_FprojectId, + storageBucket: process.env.REACT_APP_FstorageBucket, + messagingSenderId: process.env.REACT_APP_FmessagingSenderId, + appId: process.env.REACT_APP_FappId, + measurementId: process.env.REACT_APP_FmeasurementId, +} + +initializeApp(firebaseConfig) From 8be5fd873ec2516b78d7ab182a0a95b911f144e8 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:21:09 -0400 Subject: [PATCH 13/22] initialize store modules --- src/stores/Auth/index.ts | 0 src/stores/Channels/index.ts | 0 src/stores/Communities/index.ts | 0 src/stores/Messages/index.ts | 0 src/stores/Users/index.ts | 0 src/stores/index.ts | 0 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/stores/Auth/index.ts create mode 100644 src/stores/Channels/index.ts create mode 100644 src/stores/Communities/index.ts create mode 100644 src/stores/Messages/index.ts create mode 100644 src/stores/Users/index.ts create mode 100644 src/stores/index.ts diff --git a/src/stores/Auth/index.ts b/src/stores/Auth/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/stores/Channels/index.ts b/src/stores/Channels/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/stores/Communities/index.ts b/src/stores/Communities/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/stores/Messages/index.ts b/src/stores/Messages/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/stores/Users/index.ts b/src/stores/Users/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/stores/index.ts b/src/stores/index.ts new file mode 100644 index 0000000..e69de29 From b6b85ed41f0f7ecbbd32c780bab535d5cb84691b Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:35:56 -0400 Subject: [PATCH 14/22] add decorators --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index 02864f4..40617e4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "include": ["src"], "compilerOptions": { + "experimentalDecorators": true, /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, From 7c82721aba63f40a1976f63412bb4d04969e1b0f Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:35:59 -0400 Subject: [PATCH 15/22] auth --- src/stores/Auth/index.ts | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/stores/Auth/index.ts b/src/stores/Auth/index.ts index e69de29..7d6fe6b 100644 --- a/src/stores/Auth/index.ts +++ b/src/stores/Auth/index.ts @@ -0,0 +1,50 @@ +import { auth } from 'firebase' +import { observable } from 'mobx' + +const defaultSucc = (user: any) => { + console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) +} + +const defaultErr = (err: any) => { + console.error( + `Could not sign in through google. \n\n ${JSON.stringify(err, null, 2)}` + ) +} + +class AuthStore { + @observable user: any = null + @observable authPending = true + + listenToAuth: any + + constructor() { + this.listenToAuth = auth().onAuthStateChanged( + (user) => { + this.user = user + + this.authPending = false + }, + (err) => { + console.error(err) + } + ) + } + + public async doSignInWithGoogle() { + const provider = new auth.GoogleAuthProvider() + await auth().signInWithPopup(provider).then(defaultSucc, defaultErr) + } + + public async doSignInWithEmail(e: string, p: string) { + await auth().signInWithEmailAndPassword(e, p).then(defaultSucc, defaultErr) + } + + @action + public isAuthed() { + return !!this.user + } +} + +const authStore = new AuthStore() + +export default authStore From 42051ab9b50d2698b43504de170cb08d183039d6 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:36:34 -0400 Subject: [PATCH 16/22] update imports --- src/stores/Auth/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stores/Auth/index.ts b/src/stores/Auth/index.ts index 7d6fe6b..5b600d5 100644 --- a/src/stores/Auth/index.ts +++ b/src/stores/Auth/index.ts @@ -1,5 +1,5 @@ import { auth } from 'firebase' -import { observable } from 'mobx' +import { action, observable } from 'mobx' const defaultSucc = (user: any) => { console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) From 2a30664322ea6fe4f688082b2e6b27b4c0a64da8 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:37:25 -0400 Subject: [PATCH 17/22] update imports --- src/stores/Auth/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/stores/Auth/index.ts b/src/stores/Auth/index.ts index 5b600d5..602fbe2 100644 --- a/src/stores/Auth/index.ts +++ b/src/stores/Auth/index.ts @@ -1,5 +1,5 @@ import { auth } from 'firebase' -import { action, observable } from 'mobx' +import { computed, observable } from 'mobx' const defaultSucc = (user: any) => { console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) @@ -39,8 +39,8 @@ class AuthStore { await auth().signInWithEmailAndPassword(e, p).then(defaultSucc, defaultErr) } - @action - public isAuthed() { + @computed + public get isAuthed() { return !!this.user } } From d5ed5bc95467df2059dedae6060932cc4fd3f7d8 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:44:42 -0400 Subject: [PATCH 18/22] delete all stores --- src/stores/Auth/index.ts | 50 --------------------------------- src/stores/Channels/index.ts | 0 src/stores/Communities/index.ts | 0 src/stores/Messages/index.ts | 0 src/stores/Users/index.ts | 0 src/stores/index.ts | 0 6 files changed, 50 deletions(-) delete mode 100644 src/stores/Auth/index.ts delete mode 100644 src/stores/Channels/index.ts delete mode 100644 src/stores/Communities/index.ts delete mode 100644 src/stores/Messages/index.ts delete mode 100644 src/stores/Users/index.ts delete mode 100644 src/stores/index.ts diff --git a/src/stores/Auth/index.ts b/src/stores/Auth/index.ts deleted file mode 100644 index 602fbe2..0000000 --- a/src/stores/Auth/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { auth } from 'firebase' -import { computed, observable } from 'mobx' - -const defaultSucc = (user: any) => { - console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) -} - -const defaultErr = (err: any) => { - console.error( - `Could not sign in through google. \n\n ${JSON.stringify(err, null, 2)}` - ) -} - -class AuthStore { - @observable user: any = null - @observable authPending = true - - listenToAuth: any - - constructor() { - this.listenToAuth = auth().onAuthStateChanged( - (user) => { - this.user = user - - this.authPending = false - }, - (err) => { - console.error(err) - } - ) - } - - public async doSignInWithGoogle() { - const provider = new auth.GoogleAuthProvider() - await auth().signInWithPopup(provider).then(defaultSucc, defaultErr) - } - - public async doSignInWithEmail(e: string, p: string) { - await auth().signInWithEmailAndPassword(e, p).then(defaultSucc, defaultErr) - } - - @computed - public get isAuthed() { - return !!this.user - } -} - -const authStore = new AuthStore() - -export default authStore diff --git a/src/stores/Channels/index.ts b/src/stores/Channels/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/stores/Communities/index.ts b/src/stores/Communities/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/stores/Messages/index.ts b/src/stores/Messages/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/stores/Users/index.ts b/src/stores/Users/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/stores/index.ts b/src/stores/index.ts deleted file mode 100644 index e69de29..0000000 From 02675f1a8488ad352e8ab0cbd598628b99a1d029 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:44:49 -0400 Subject: [PATCH 19/22] move to data --- src/data/Auth/index.ts | 50 +++++++++++++++++++++++++++++++++++ src/data/Channels/index.ts | 0 src/data/Communities/index.ts | 0 src/data/Messages/index.ts | 0 src/data/Users/index.ts | 0 src/data/index.ts | 0 6 files changed, 50 insertions(+) create mode 100644 src/data/Auth/index.ts create mode 100644 src/data/Channels/index.ts create mode 100644 src/data/Communities/index.ts create mode 100644 src/data/Messages/index.ts create mode 100644 src/data/Users/index.ts create mode 100644 src/data/index.ts diff --git a/src/data/Auth/index.ts b/src/data/Auth/index.ts new file mode 100644 index 0000000..602fbe2 --- /dev/null +++ b/src/data/Auth/index.ts @@ -0,0 +1,50 @@ +import { auth } from 'firebase' +import { computed, observable } from 'mobx' + +const defaultSucc = (user: any) => { + console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) +} + +const defaultErr = (err: any) => { + console.error( + `Could not sign in through google. \n\n ${JSON.stringify(err, null, 2)}` + ) +} + +class AuthStore { + @observable user: any = null + @observable authPending = true + + listenToAuth: any + + constructor() { + this.listenToAuth = auth().onAuthStateChanged( + (user) => { + this.user = user + + this.authPending = false + }, + (err) => { + console.error(err) + } + ) + } + + public async doSignInWithGoogle() { + const provider = new auth.GoogleAuthProvider() + await auth().signInWithPopup(provider).then(defaultSucc, defaultErr) + } + + public async doSignInWithEmail(e: string, p: string) { + await auth().signInWithEmailAndPassword(e, p).then(defaultSucc, defaultErr) + } + + @computed + public get isAuthed() { + return !!this.user + } +} + +const authStore = new AuthStore() + +export default authStore diff --git a/src/data/Channels/index.ts b/src/data/Channels/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/data/Communities/index.ts b/src/data/Communities/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/data/Messages/index.ts b/src/data/Messages/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/data/Users/index.ts b/src/data/Users/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/data/index.ts b/src/data/index.ts new file mode 100644 index 0000000..e69de29 From 78ba2e27890dc0f57be5ff8cb8175a25b60ddfee Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Thu, 30 Jul 2020 10:47:39 -0400 Subject: [PATCH 20/22] update contexts --- src/data/Auth/{index.ts => index.tsx} | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) rename src/data/Auth/{index.ts => index.tsx} (73%) diff --git a/src/data/Auth/index.ts b/src/data/Auth/index.tsx similarity index 73% rename from src/data/Auth/index.ts rename to src/data/Auth/index.tsx index 602fbe2..c53f868 100644 --- a/src/data/Auth/index.ts +++ b/src/data/Auth/index.tsx @@ -1,5 +1,6 @@ import { auth } from 'firebase' import { computed, observable } from 'mobx' +import React from 'react' const defaultSucc = (user: any) => { console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) @@ -11,7 +12,7 @@ const defaultErr = (err: any) => { ) } -class AuthStore { +class IAuthStore { @observable user: any = null @observable authPending = true @@ -45,6 +46,16 @@ class AuthStore { } } -const authStore = new AuthStore() +export const AuthStore = new IAuthStore() -export default authStore +export const AuthContext = React.createContext(AuthStore) + +export const AuthProvider: React.FunctionComponent = ({ + children, +}) => { + return ( + {children} + ) +} + +export default AuthStore From 6b3ae4814cdede064a03c8af2ba52b436e6f272b Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Tue, 11 Aug 2020 16:12:28 -0400 Subject: [PATCH 21/22] authstore --- src/data/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/data/index.ts b/src/data/index.ts index e69de29..ee05d78 100644 --- a/src/data/index.ts +++ b/src/data/index.ts @@ -0,0 +1 @@ +export { default as AuthStore } from './Auth' From 166937b14864369735cb297cadb03191572606b8 Mon Sep 17 00:00:00 2001 From: Rishi Kothari Date: Tue, 11 Aug 2020 16:12:48 -0400 Subject: [PATCH 22/22] moving around channel stores --- src/data/Channels/index.ts | 0 src/data/Channels/index.tsx | 61 +++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) delete mode 100644 src/data/Channels/index.ts create mode 100644 src/data/Channels/index.tsx diff --git a/src/data/Channels/index.ts b/src/data/Channels/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/data/Channels/index.tsx b/src/data/Channels/index.tsx new file mode 100644 index 0000000..c53f868 --- /dev/null +++ b/src/data/Channels/index.tsx @@ -0,0 +1,61 @@ +import { auth } from 'firebase' +import { computed, observable } from 'mobx' +import React from 'react' + +const defaultSucc = (user: any) => { + console.log(`Successfully signed in! \n\n ${JSON.stringify(user, null, 2)}`) +} + +const defaultErr = (err: any) => { + console.error( + `Could not sign in through google. \n\n ${JSON.stringify(err, null, 2)}` + ) +} + +class IAuthStore { + @observable user: any = null + @observable authPending = true + + listenToAuth: any + + constructor() { + this.listenToAuth = auth().onAuthStateChanged( + (user) => { + this.user = user + + this.authPending = false + }, + (err) => { + console.error(err) + } + ) + } + + public async doSignInWithGoogle() { + const provider = new auth.GoogleAuthProvider() + await auth().signInWithPopup(provider).then(defaultSucc, defaultErr) + } + + public async doSignInWithEmail(e: string, p: string) { + await auth().signInWithEmailAndPassword(e, p).then(defaultSucc, defaultErr) + } + + @computed + public get isAuthed() { + return !!this.user + } +} + +export const AuthStore = new IAuthStore() + +export const AuthContext = React.createContext(AuthStore) + +export const AuthProvider: React.FunctionComponent = ({ + children, +}) => { + return ( + {children} + ) +} + +export default AuthStore