From 2e654c143f1cfa98ad48ef09187caac261f3d191 Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Sun, 29 Aug 2021 10:49:10 +0530 Subject: [PATCH 1/3] refactor: bump firebase to v9 --- .eslintrc.js | 1 + helpers/fb/analytics.ts | 43 +- helpers/fb/auth.ts | 90 +-- helpers/fb/collections.ts | 44 +- helpers/fb/environments.ts | 61 ++- helpers/fb/history.ts | 91 ++- helpers/fb/index.ts | 4 +- helpers/fb/request.ts | 26 +- helpers/fb/settings.ts | 32 +- package-lock.json | 1062 +++++++++++++++++++++++++----------- package.json | 4 +- 11 files changed, 958 insertions(+), 500 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 3269a9c94..d51ccaed3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -22,6 +22,7 @@ module.exports = { // add your custom rules here rules: { semi: [2, "never"], + "import/named": "off", // because, named import issue with typescript see: https://github.com/typescript-eslint/typescript-eslint/issues/154 "no-console": process.env.NODE_ENV === "production" ? "error" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", "vue/max-attributes-per-line": "off", diff --git a/helpers/fb/analytics.ts b/helpers/fb/analytics.ts index 1a303e2f2..9ca51631a 100644 --- a/helpers/fb/analytics.ts +++ b/helpers/fb/analytics.ts @@ -1,5 +1,11 @@ -import firebase from "firebase/app" -import "firebase/analytics" +import { + Analytics, + getAnalytics, + logEvent, + setAnalyticsCollectionEnabled, + setUserId, + setUserProperties, +} from "firebase/analytics" import { authEvents$ } from "./auth" import { HoppAccentColor, @@ -8,7 +14,7 @@ import { settingsStore, } from "~/newstore/settings" -let analytics: firebase.analytics.Analytics | null +let analytics: Analytics | null = null type SettingsCustomDimensions = { usesProxy: boolean @@ -29,7 +35,7 @@ type HoppRequestEvent = | { platform: "wss" | "sse" | "socketio" | "mqtt" } export function initAnalytics() { - analytics = firebase.app().analytics() + analytics = getAnalytics() initLoginListeners() initSettingsListeners() @@ -38,16 +44,16 @@ export function initAnalytics() { function initLoginListeners() { authEvents$.subscribe((ev) => { if (ev.event === "login") { - if (settingsStore.value.TELEMETRY_ENABLED) { - analytics?.setUserId(ev.user.uid) + if (settingsStore.value.TELEMETRY_ENABLED && analytics) { + setUserId(analytics, ev.user.uid) - analytics?.logEvent("login", { + logEvent(analytics, "login", { method: ev.user.providerData[0]?.providerId, // Assume the first provider is the login provider }) } } else if (ev.event === "logout") { - if (settingsStore.value.TELEMETRY_ENABLED) { - analytics?.logEvent("logout") + if (settingsStore.value.TELEMETRY_ENABLED && analytics) { + logEvent(analytics, "logout") } } }) @@ -71,29 +77,30 @@ function initSettingsListeners() { // User toggled telemetry mode to off or to on if ( - (telemetryStatus && !settings.TELEMETRY_ENABLED) || - settings.TELEMETRY_ENABLED + ((telemetryStatus && !settings.TELEMETRY_ENABLED) || + settings.TELEMETRY_ENABLED) && + analytics ) { - analytics?.setUserProperties(conf) + setUserProperties(analytics, conf) } telemetryStatus = settings.TELEMETRY_ENABLED - analytics?.setAnalyticsCollectionEnabled(telemetryStatus) + if (analytics) setAnalyticsCollectionEnabled(analytics, telemetryStatus) }) - analytics?.setAnalyticsCollectionEnabled(telemetryStatus) + if (analytics) setAnalyticsCollectionEnabled(analytics, telemetryStatus) } export function logHoppRequestRunToAnalytics(ev: HoppRequestEvent) { - if (settingsStore.value.TELEMETRY_ENABLED) { - analytics?.logEvent("hopp-request", ev) + if (settingsStore.value.TELEMETRY_ENABLED && analytics) { + logEvent(analytics, "hopp-request", ev) } } export function logPageView(pagePath: string) { - if (settingsStore.value.TELEMETRY_ENABLED) { - analytics?.logEvent("page_view", { + if (settingsStore.value.TELEMETRY_ENABLED && analytics) { + logEvent(analytics, "page_view", { page_path: pagePath, }) } diff --git a/helpers/fb/auth.ts b/helpers/fb/auth.ts index de51c5f36..b2e6a5d39 100644 --- a/helpers/fb/auth.ts +++ b/helpers/fb/auth.ts @@ -1,6 +1,26 @@ -import firebase from "firebase/app" -import "firebase/firestore" -import "firebase/auth" +import { + User, + getAuth, + onAuthStateChanged, + onIdTokenChanged, + signInWithPopup, + GoogleAuthProvider, + GithubAuthProvider, + signInWithEmailAndPassword as signInWithEmailAndPass, + isSignInWithEmailLink as isSignInWithEmailLinkFB, + fetchSignInMethodsForEmail, + sendSignInLinkToEmail, + signInWithEmailLink as signInWithEmailLinkFB, + ActionCodeSettings, + signOut, +} from "firebase/auth" +import { + onSnapshot, + getFirestore, + setDoc, + doc, + updateDoc, +} from "firebase/firestore" import { BehaviorSubject, distinctUntilChanged, @@ -11,7 +31,7 @@ import { } from "rxjs" import { onBeforeUnmount, onMounted } from "@nuxtjs/composition-api" -export type HoppUser = firebase.User & { +export type HoppUser = User & { provider?: string accessToken?: string } @@ -39,9 +59,12 @@ export const authEvents$ = new Subject() * Initializes the firebase authentication related subjects */ export function initAuth() { + const auth = getAuth() + const firestore = getFirestore() + let extraSnapshotStop: (() => void) | null = null - firebase.auth().onAuthStateChanged((user) => { + onAuthStateChanged(auth, (user) => { /** Whether the user was logged in before */ const wasLoggedIn = currentUser$.value !== null @@ -62,19 +85,14 @@ export function initAuth() { uid: profile.uid, } - firebase - .firestore() - .collection("users") - .doc(user.uid) - .set(us, { merge: true }) - .catch((e) => console.error("error updating", us, e)) + setDoc(doc(firestore, "users", user.uid), us, { merge: true }).catch( + (e) => console.error("error updating", us, e) + ) }) - extraSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .onSnapshot((doc) => { + extraSnapshotStop = onSnapshot( + doc(firestore, "users", user.uid), + (doc) => { const data = doc.data() const userUpdate: HoppUser = user @@ -86,7 +104,8 @@ export function initAuth() { } currentUser$.next(userUpdate) - }) + } + ) } currentUser$.next(user) @@ -104,7 +123,7 @@ export function initAuth() { } }) - firebase.auth().onIdTokenChanged(async (user) => { + onIdTokenChanged(auth, async (user) => { if (user) { authIdToken$.next(await user.getIdToken()) @@ -123,18 +142,17 @@ export function initAuth() { * Sign user in with a popup using Google */ export async function signInUserWithGoogle() { - return await firebase - .auth() - .signInWithPopup(new firebase.auth.GoogleAuthProvider()) + return await signInWithPopup(getAuth(), new GoogleAuthProvider()) } /** * Sign user in with a popup using Github */ export async function signInUserWithGithub() { - return await firebase - .auth() - .signInWithPopup(new firebase.auth.GithubAuthProvider().addScope("gist")) + return await signInWithPopup( + getAuth(), + new GithubAuthProvider().addScope("gist") + ) } /** @@ -144,7 +162,7 @@ export async function signInWithEmailAndPassword( email: string, password: string ) { - return await firebase.auth().signInWithEmailAndPassword(email, password) + return await signInWithEmailAndPass(getAuth(), email, password) } /** @@ -155,7 +173,7 @@ export async function signInWithEmailAndPassword( * @returns Promise for string array of the auth provider methods accessible */ export async function getSignInMethodsForEmail(email: string) { - return await firebase.auth().fetchSignInMethodsForEmail(email) + return await fetchSignInMethodsForEmail(getAuth(), email) } /** @@ -166,9 +184,9 @@ export async function getSignInMethodsForEmail(email: string) { */ export async function signInWithEmail( email: string, - actionCodeSettings: firebase.auth.ActionCodeSettings + actionCodeSettings: ActionCodeSettings ) { - return await firebase.auth().sendSignInLinkToEmail(email, actionCodeSettings) + return await sendSignInLinkToEmail(getAuth(), email, actionCodeSettings) } /** @@ -177,7 +195,7 @@ export async function signInWithEmail( * @param url - The URL to look in */ export function isSignInWithEmailLink(url: string) { - return firebase.auth().isSignInWithEmailLink(url) + return isSignInWithEmailLinkFB(getAuth(), url) } /** @@ -187,7 +205,7 @@ export function isSignInWithEmailLink(url: string) { * @param url - The action URL which is used to validate login */ export async function signInWithEmailLink(email: string, url: string) { - return await firebase.auth().signInWithEmailLink(email, url) + return await signInWithEmailLinkFB(getAuth(), email, url) } /** @@ -196,7 +214,7 @@ export async function signInWithEmailLink(email: string, url: string) { export async function signOutUser() { if (!currentUser$.value) throw new Error("No user has logged in") - await firebase.auth().signOut() + await signOut(getAuth()) } /** @@ -216,12 +234,10 @@ export async function setProviderInfo(id: string, token: string) { } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .update(us) - .catch((e) => console.error("error updating", us, e)) + await updateDoc( + doc(getFirestore(), "users", currentUser$.value.uid), + us + ).catch((e) => console.error("error updating", us, e)) } catch (e) { console.error("error updating", e) throw e diff --git a/helpers/fb/collections.ts b/helpers/fb/collections.ts index 0c1b41e75..5c4d45f00 100644 --- a/helpers/fb/collections.ts +++ b/helpers/fb/collections.ts @@ -1,5 +1,10 @@ -import firebase from "firebase/app" -import "firebase/firestore" +import { + collection, + doc, + getFirestore, + onSnapshot, + setDoc, +} from "firebase/firestore" import { currentUser$ } from "./auth" import { restCollections$, @@ -49,13 +54,10 @@ export async function writeCollections( } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection(flag) - .doc("sync") - .set(cl) + await setDoc( + doc(getFirestore(), "users", currentUser$.value.uid, flag, "sync"), + cl + ) } catch (e) { console.error("error updating", cl, e) throw e @@ -98,12 +100,9 @@ export function initCollections() { graphqlSnapshotStop = null } } else { - restSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("collections") - .onSnapshot((collectionsRef) => { + restSnapshotStop = onSnapshot( + collection(getFirestore(), "users", user.uid, "collections"), + (collectionsRef) => { const collections: any[] = [] collectionsRef.forEach((doc) => { const collection = doc.data() @@ -124,14 +123,12 @@ export function initCollections() { } loadedRESTCollections = true - }) + } + ) - graphqlSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("collectionsGraphql") - .onSnapshot((collectionsRef) => { + graphqlSnapshotStop = onSnapshot( + collection(getFirestore(), "users", user.uid, "collectionsGraphql"), + (collectionsRef) => { const collections: any[] = [] collectionsRef.forEach((doc) => { const collection = doc.data() @@ -150,7 +147,8 @@ export function initCollections() { } loadedGraphqlCollections = true - }) + } + ) } }) } diff --git a/helpers/fb/environments.ts b/helpers/fb/environments.ts index 19f82f064..3633a27de 100644 --- a/helpers/fb/environments.ts +++ b/helpers/fb/environments.ts @@ -1,5 +1,10 @@ -import firebase from "firebase/app" -import "firebase/firestore" +import { + collection, + doc, + getFirestore, + onSnapshot, + setDoc, +} from "firebase/firestore" import { currentUser$ } from "./auth" import { Environment, @@ -39,13 +44,16 @@ async function writeEnvironments(environment: Environment[]) { } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection("environments") - .doc("sync") - .set(ev) + await setDoc( + doc( + getFirestore(), + "users", + currentUser$.value.uid, + "envrionments", + "sync" + ), + ev + ) } catch (e) { console.error("error updating", ev, e) throw e @@ -65,13 +73,10 @@ async function writeGlobalEnvironment(variables: Environment["variables"]) { } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection("globalEnv") - .doc("sync") - .set(ev) + await setDoc( + doc(getFirestore(), "users", currentUser$.value.uid, "globalEnv", "sync"), + ev + ) } catch (e) { console.error("error updating", ev, e) throw e @@ -115,12 +120,9 @@ export function initEnvironments() { globalsSnapshotStop = null } } else if (user) { - envSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("environments") - .onSnapshot((environmentsRef) => { + envSnapshotStop = onSnapshot( + collection(getFirestore(), "users", user.uid, "environments"), + (environmentsRef) => { const environments: any[] = [] environmentsRef.forEach((doc) => { @@ -134,13 +136,11 @@ export function initEnvironments() { replaceEnvironments(environments[0].environment) } loadedEnvironments = true - }) - globalsSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("globalEnv") - .onSnapshot((globalsRef) => { + } + ) + globalsSnapshotStop = onSnapshot( + collection(getFirestore(), "users", user.uid, "globalEnv"), + (globalsRef) => { if (globalsRef.docs.length === 0) { loadedGlobals = true return @@ -150,7 +150,8 @@ export function initEnvironments() { loadedGlobals = false setGlobalEnvVariables(doc.variables) loadedGlobals = true - }) + } + ) } }) } diff --git a/helpers/fb/history.ts b/helpers/fb/history.ts index af5a526cd..52e93e69f 100644 --- a/helpers/fb/history.ts +++ b/helpers/fb/history.ts @@ -1,5 +1,16 @@ -import firebase from "firebase/app" -import "firebase/firestore" +import { + addDoc, + collection, + deleteDoc, + doc, + getDocs, + getFirestore, + limit, + onSnapshot, + orderBy, + query, + updateDoc, +} from "firebase/firestore" import { currentUser$ } from "./auth" import { settingsStore } from "~/newstore/settings" import { @@ -46,12 +57,10 @@ async function writeHistory(entry: any, col: HistoryFBCollections) { } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection(col) - .add(hs) + await addDoc( + collection(getFirestore(), "users", currentUser$.value.uid, col), + hs + ) } catch (e) { console.error("error writing to history", hs, e) throw e @@ -63,13 +72,9 @@ async function deleteHistory(entry: any, col: HistoryFBCollections) { throw new Error("User not logged in to delete history") try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection(col) - .doc(entry.id) - .delete() + await deleteDoc( + doc(getFirestore(), "users", currentUser$.value.uid, col, entry.id) + ) } catch (e) { console.error("error deleting history", entry, e) throw e @@ -80,12 +85,9 @@ async function clearHistory(col: HistoryFBCollections) { if (currentUser$.value == null) throw new Error("User not logged in to clear history") - const { docs } = await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection(col) - .get() + const { docs } = await getDocs( + collection(getFirestore(), "users", currentUser$.value.uid) + ) await Promise.all(docs.map((e) => deleteHistory(e, col))) } @@ -95,13 +97,10 @@ async function toggleStar(entry: any, col: HistoryFBCollections) { throw new Error("User not logged in to toggle star") try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection(col) - .doc(entry.id) - .update({ star: !entry.star }) + await updateDoc( + doc(getFirestore(), "users", currentUser$.value.uid, col, entry.id), + { star: !entry.star } + ) } catch (e) { console.error("error toggling star", entry, e) throw e @@ -161,14 +160,13 @@ export function initHistory() { graphqlSnapshotStop = null } } else { - restSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("history") - .orderBy("updatedOn", "desc") - .limit(HISTORY_LIMIT) - .onSnapshot((historyRef) => { + restSnapshotStop = onSnapshot( + query( + collection(getFirestore(), "users", user.uid, "history"), + orderBy("updatedOn", "desc"), + limit(HISTORY_LIMIT) + ), + (historyRef) => { const history: RESTHistoryEntry[] = [] historyRef.forEach((doc) => { @@ -180,16 +178,16 @@ export function initHistory() { loadedRESTHistory = false setRESTHistoryEntries(history) loadedRESTHistory = true - }) + } + ) - graphqlSnapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("graphqlHistory") - .orderBy("updatedOn", "desc") - .limit(HISTORY_LIMIT) - .onSnapshot((historyRef) => { + graphqlSnapshotStop = onSnapshot( + query( + collection(getFirestore(), "users", user.uid, "graphqlHistory"), + orderBy("updatedOn", "desc"), + limit(HISTORY_LIMIT) + ), + (historyRef) => { const history: GQLHistoryEntry[] = [] historyRef.forEach((doc) => { @@ -201,7 +199,8 @@ export function initHistory() { loadedGraphqlHistory = false setGraphqlHistoryEntries(history) loadedGraphqlHistory = true - }) + } + ) } }) } diff --git a/helpers/fb/index.ts b/helpers/fb/index.ts index 603510c6d..13d34d5a2 100644 --- a/helpers/fb/index.ts +++ b/helpers/fb/index.ts @@ -1,4 +1,4 @@ -import firebase from "firebase/app" +import { initializeApp } from "firebase/app" import { initAnalytics } from "./analytics" import { initAuth } from "./auth" import { initCollections } from "./collections" @@ -22,7 +22,7 @@ let initialized = false export function initializeFirebase() { if (!initialized) { try { - firebase.initializeApp(firebaseConfig) + initializeApp(firebaseConfig) initAuth() initSettings() diff --git a/helpers/fb/request.ts b/helpers/fb/request.ts index 821653471..bb783e5d1 100644 --- a/helpers/fb/request.ts +++ b/helpers/fb/request.ts @@ -1,5 +1,3 @@ -import firebase from "firebase/app" -import "firebase/firestore" import { audit, combineLatest, @@ -9,6 +7,7 @@ import { map, Subscription, } from "rxjs" +import { doc, getDoc, getFirestore, setDoc } from "firebase/firestore" import { HoppRESTRequest, translateToNewRequest, @@ -23,13 +22,10 @@ import { restRequest$ } from "~/newstore/RESTSession" * @param request The request to write to the request sync */ function writeCurrentRequest(user: HoppUser, request: HoppRESTRequest) { - return firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("requests") - .doc("rest") - .set(request) + return setDoc( + doc(getFirestore(), "users", user.uid, "requests", "rest"), + request + ) } /** @@ -43,15 +39,11 @@ export async function loadRequestFromSync(): Promise { if (!currentUser) throw new Error("Cannot load request from sync without login") - const doc = await firebase - .firestore() - .collection("users") - .doc(currentUser.uid) - .collection("requests") - .doc("rest") - .get() + const fbDoc = await getDoc( + doc(getFirestore(), "users", currentUser.uid, "requests", "rest") + ) - const data = doc.data() + const data = fbDoc.data() if (!data) return null else return translateToNewRequest(data) diff --git a/helpers/fb/settings.ts b/helpers/fb/settings.ts index 77493cf8f..4b6a4fefa 100644 --- a/helpers/fb/settings.ts +++ b/helpers/fb/settings.ts @@ -1,5 +1,10 @@ -import firebase from "firebase/app" -import "firebase/firestore" +import { + collection, + doc, + getFirestore, + onSnapshot, + setDoc, +} from "@firebase/firestore" import { currentUser$ } from "./auth" import { applySetting, settingsStore, SettingsType } from "~/newstore/settings" @@ -28,13 +33,10 @@ async function writeSettings(setting: string, value: any) { } try { - await firebase - .firestore() - .collection("users") - .doc(currentUser$.value.uid) - .collection("settings") - .doc(setting) - .set(st) + await setDoc( + doc(getFirestore(), "users", currentUser$.value.uid, "settings", setting), + st + ) } catch (e) { console.error("error updating", st, e) throw e @@ -66,12 +68,9 @@ export function initSettings() { snapshotStop() snapshotStop = null } else if (user) { - snapshotStop = firebase - .firestore() - .collection("users") - .doc(user.uid) - .collection("settings") - .onSnapshot((settingsRef) => { + snapshotStop = onSnapshot( + collection(getFirestore(), "users", user.uid, "settings"), + (settingsRef) => { const settings: any[] = [] settingsRef.forEach((doc) => { @@ -87,7 +86,8 @@ export function initSettings() { } }) loadedSettings = true - }) + } + ) } }) } diff --git a/package-lock.json b/package-lock.json index 2e84b2b3c..db1d2ac8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { "name": "hoppscotch", - "version": "1.12.0", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.12.0", + "version": "2.0.0", "dependencies": { - "@apollo/client": "^3.4.8", + "@apollo/client": "^3.4.10", "@nuxtjs/axios": "^5.13.6", "@nuxtjs/composition-api": "^0.27.0", "@nuxtjs/gtm": "^2.4.0", @@ -20,7 +20,7 @@ "acorn-walk": "^8.1.1", "core-js": "^3.16.2", "esprima": "^4.0.1", - "firebase": "^8.10.0", + "firebase": "^9.0.0", "graphql": "^15.5.0", "graphql-language-service-interface": "^2.8.4", "json-loader": "^0.5.7", @@ -103,9 +103,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.4.8.tgz", - "integrity": "sha512-/cNqTSwc2Dw8q6FDDjdd30+yvhP7rI0Fvl3Hbro0lTtFuhzkevfNyQaI2jAiOrjU6Jc0RbanxULaNrX7UmvjSQ==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.4.10.tgz", + "integrity": "sha512-b+8TT3jBM2BtEJi+V2FuLpvoYDZCY3baNYrgAgEyw4fjnuBCSRPY7qVjqriZAwMaGiTLtyVifGhmdeICQs4Eow==", "dependencies": { "@graphql-typed-document-node/core": "^3.0.0", "@wry/context": "^0.6.0", @@ -2374,56 +2374,78 @@ } }, "node_modules/@firebase/analytics": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.18.tgz", - "integrity": "sha512-FXNtYDxbs9ynPbzUVuG94BjFPOPpgJ7156660uvCBuKgoBCIVcNqKkJQQ7TH8384fqvGjbjdcgARY9jgAHbtog==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.7.0.tgz", + "integrity": "sha512-YEPyeW6CV8xbIvWaJMvfRdWUPKe/xchJ1bjV6GpLfkYRX+ZE1/YSNU14pX292M4bZ6Qg+bbu2DuWp8fEpa/YQg==", "dependencies": { - "@firebase/analytics-types": "0.6.0", "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", + "@firebase/installations": "0.5.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.1.0.tgz", + "integrity": "sha512-oaf1FEF7cKci5tO7f52dH63/ZwkBqbdSLLpgo6kyoYoYDuY+on4yAc1CIHh3sNj/L8T4Ni81IQvVs9lE/9oOpg==", + "dependencies": { + "@firebase/analytics": "0.7.0", + "@firebase/analytics-types": "0.7.0", + "@firebase/component": "0.5.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/analytics-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.6.0.tgz", - "integrity": "sha512-kbMawY0WRPyL/lbknBkme4CNLl+Gw+E9G4OpNeXAauqoQiNkBgpIvZYy7BRT4sNGhZbxdxXxXbruqUwDzLmvTw==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.7.0.tgz", + "integrity": "sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ==" }, "node_modules/@firebase/app": { - "version": "0.6.30", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.30.tgz", - "integrity": "sha512-uAYEDXyK0mmpZ8hWQj5TNd7WVvfsU8PgsqKpGljbFBG/HhsH8KbcykWAAA+c1PqL7dt/dbt0Reh1y9zEdYzMhg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.7.0.tgz", + "integrity": "sha512-l4Pd69re6JyjumQrl719dnY5JSKROSYda/0N2wzOhSzqg8DsZOIErr8+xj6QAE6BtNsoIEk7ma9WMS/2r02MhA==", "dependencies": { - "@firebase/app-types": "0.6.3", "@firebase/component": "0.5.6", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", - "dom-storage": "2.1.0", - "tslib": "^2.1.0", - "xmlhttprequest": "1.8.0" + "tslib": "^2.1.0" } }, "node_modules/@firebase/app-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.3.2.tgz", - "integrity": "sha512-YjpsnV1xVTO1B836IKijRcDeceLgHQNJ/DWa+Vky9UHkm1Mi4qosddX8LZzldaWRTWKX7BN1MbZOLY8r7M/MZQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.4.0.tgz", + "integrity": "sha512-KQ/k8cukzZbH/LC9Iu5/Dbhr7w6byu8bYjfCA38B6v8aISgASYfP/nirxRD+hSuDoxXtAnPGEuv+v0YU3D1R2w==", "dependencies": { - "@firebase/app-check-interop-types": "0.1.0", - "@firebase/app-check-types": "0.3.1", "@firebase/component": "0.5.6", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.1.0.tgz", + "integrity": "sha512-T1M2d1oroaHUa448fgx3BdfWg4WXP64yybIWxvmVBuh7YnyMuegJK1sS9zipKBKLkstcQK8vivXYh3+/AnbGFw==", + "dependencies": { + "@firebase/app-check": "0.4.0", + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/app-check-interop-types": { @@ -2431,27 +2453,81 @@ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz", "integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA==" }, - "node_modules/@firebase/app-check-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.3.1.tgz", - "integrity": "sha512-KJ+BqJbdNsx4QT/JIT1yDj5p6D+QN97iJs3GuHnORrqL+DU3RWc9nSYQsrY6Tv9jVWcOkMENXAgDT484vzsm2w==" + "node_modules/@firebase/app-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.0.tgz", + "integrity": "sha512-jnAeFM1ihY5klqg2dvdA4EOk7co8ffSHUj/efqaSwTrMkKTcG/WZKF9WAuXdl+5jEu1BhsGGHveWzGliTFH5Hg==", + "dependencies": { + "@firebase/app": "0.7.0", + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } }, "node_modules/@firebase/app-types": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz", - "integrity": "sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz", + "integrity": "sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==" }, "node_modules/@firebase/auth": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.8.tgz", - "integrity": "sha512-mR0UXG4LirWIfOiCWxVmvz1o23BuKGxeItQ2cCUgXLTjNtWJXdcky/356iTUsd7ZV5A78s2NHeN5tIDDG6H4rg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.17.0.tgz", + "integrity": "sha512-4zOGTLGzMjBX96KEyBNYpjOD87c2efCZvUjaJ53QslleW9Xp8kSsSHLRhr8hOkcRXO17CmBKSRx/LnG2vTZWQQ==", "dependencies": { - "@firebase/auth-types": "0.10.3" + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "node-fetch": "2.6.1", + "selenium-webdriver": "4.0.0-beta.1", + "tslib": "^2.1.0" }, "peerDependencies": { "@firebase/app": "0.x" } }, + "node_modules/@firebase/auth-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.1.0.tgz", + "integrity": "sha512-OfAt3c5ham07xvmYyJp02v8mUa+HaSEwilvgD2M1JaWqLAtqH66bdBhLBE9N0pq8xtRdXZIF1vSd20a0ulQfQg==", + "dependencies": { + "@firebase/auth": "0.17.0", + "@firebase/auth-types": "0.11.0", + "@firebase/component": "0.5.6", + "@firebase/util": "1.3.0", + "node-fetch": "2.6.1", + "selenium-webdriver": "^4.0.0-beta.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-compat/node_modules/selenium-webdriver": { + "version": "4.0.0-beta.4", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.4.tgz", + "integrity": "sha512-+s/CIYkWzmnC9WASBxxVj7Lm0dcyl6OaFxwIJaFCT5WCuACiimEEr4lUnOOFP/QlKfkDQ56m+aRczaq2EvJEJg==", + "dependencies": { + "jszip": "^3.6.0", + "rimraf": "^3.0.2", + "tmp": "^0.2.1", + "ws": ">=7.4.6" + }, + "engines": { + "node": ">= 10.15.0" + } + }, + "node_modules/@firebase/auth-compat/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, "node_modules/@firebase/auth-interop-types": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz", @@ -2462,9 +2538,9 @@ } }, "node_modules/@firebase/auth-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.3.tgz", - "integrity": "sha512-zExrThRqyqGUbXOFrH/sowuh2rRtfKHp9SBVY2vOqKWdCX1Ztn682n9WLtlUDsiYVIbBcwautYWk2HyCGFv0OA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz", + "integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==", "peerDependencies": { "@firebase/app-types": "0.x", "@firebase/util": "1.x" @@ -2480,35 +2556,49 @@ } }, "node_modules/@firebase/database": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.11.0.tgz", - "integrity": "sha512-b/kwvCubr6G9coPlo48PbieBDln7ViFBHOGeVt/bt82yuv5jYZBEYAac/mtOVSxpf14aMo/tAN+Edl6SWqXApw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.12.0.tgz", + "integrity": "sha512-/gl6z6fAxAAFAdDllzidzweGpuXJu0b9AusSLrdW4LpP6KCuxJbhonMJuSGpHLzAHzx6Q9uitbvqHqBb17sttQ==", "dependencies": { "@firebase/auth-interop-types": "0.1.6", "@firebase/component": "0.5.6", - "@firebase/database-types": "0.8.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "faye-websocket": "0.11.3", "tslib": "^2.1.0" } }, - "node_modules/@firebase/database-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.8.0.tgz", - "integrity": "sha512-7IdjAFRfPWyG3b4wcXyghb3Y1CLCSJFZIg1xl5GbTVMttSQFT4B5NYdhsfA34JwAsv5pMzPpjOaS3/K9XJ2KiA==", + "node_modules/@firebase/database-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.1.0.tgz", + "integrity": "sha512-jLN0JMYnYijg8f3QFtSuPGNuKAt3yYVRsHHlR8sADgx8MptByRRwVmMOk7QPc/DY7qscZIJow3hXFwvbeApFLA==", "dependencies": { - "@firebase/app-types": "0.6.3", + "@firebase/component": "0.5.6", + "@firebase/database": "0.12.0", + "@firebase/database-types": "0.9.0", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/database-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.0.tgz", + "integrity": "sha512-x2TeTVnMZGPvT3y4Nayio4WprQA/zGwqMrPMQwSdF+PFnaFJAhA/eLgUB6cmWFzFYO9VvmuRkFzDzo6ezTo1Zw==", + "dependencies": { + "@firebase/app-types": "0.7.0", "@firebase/util": "1.3.0" } }, "node_modules/@firebase/firestore": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.4.0.tgz", - "integrity": "sha512-PQ6+lWNrvh74GvFTHT4gCutFipDmtu8D1tNNawKe+/SyL6XFgeuMYgZIpKQgkTSezVDogC7EGQTJBFnewF9pOg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.0.0.tgz", + "integrity": "sha512-rbs5EbU/01f7NKHDtedBowpBlqnkVnQlpIuSX5wwGMiPgH8f9pMhh59JMk0cTaSqsJXsq3KvafWAD9SqWIqe2w==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/firestore-types": "2.4.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "@firebase/webchannel-wrapper": "0.5.1", @@ -2521,62 +2611,82 @@ "node": "^8.13.0 || >=10.10.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.1.0.tgz", + "integrity": "sha512-25r1jGpnnx7vXSPVLmHNkuz+EGpZDU5Luro5/MFCMmoV4a+Rmg2n9FRlxRyPn4XOCkc5nrBpT6ESAKAPSNHcpw==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/firestore": "3.0.0", + "@firebase/firestore-types": "2.5.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/firestore-types": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.4.0.tgz", - "integrity": "sha512-0dgwfuNP7EN6/OlK2HSNSQiQNGLGaRBH0gvgr1ngtKKJuJFuq0Z48RBMeJX9CGjV4TP9h2KaB+KrUKJ5kh1hMg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz", + "integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==", "peerDependencies": { "@firebase/app-types": "0.x", "@firebase/util": "1.x" } }, "node_modules/@firebase/functions": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.15.tgz", - "integrity": "sha512-b7RpLwFXi0N+HgkfK8cmkarSOoBeSrc1jNdadkCacQt+vIePkKM3E9EJXF4roWSa8GwTruodpBsvH+lK9iCAKQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.7.0.tgz", + "integrity": "sha512-H0krTllYh5eK7utKoUoNoVvoSdZqaPdqGSdIK7ltr1yWX9UhbRWYZv5B/tWTjQFfDfRQwpn9Q6svoJzYZQiusA==", "dependencies": { + "@firebase/app-check-interop-types": "0.1.0", + "@firebase/auth-interop-types": "0.1.6", "@firebase/component": "0.5.6", - "@firebase/functions-types": "0.4.0", - "@firebase/messaging-types": "0.5.0", + "@firebase/messaging-interop-types": "0.1.0", + "@firebase/util": "1.3.0", "node-fetch": "2.6.1", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.1.0.tgz", + "integrity": "sha512-uNwHdGYqgIXzF7aTZBeUe00K/sadRg5EeSDuJ6VNo3Gh3ZceX4eRnL5p7l2bEJBh8hBl0brb82+TRYjGHtjtFQ==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/functions": "0.7.0", + "@firebase/functions-types": "0.5.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/functions-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz", - "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.5.0.tgz", + "integrity": "sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA==" }, "node_modules/@firebase/installations": { - "version": "0.4.32", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.32.tgz", - "integrity": "sha512-K4UlED1Vrhd2rFQQJih+OgEj8OTtrtH4+Izkx7ip2bhXSc+unk8ZhnF69D0kmh7zjXAqEDJrmHs9O5fI3rV6Tw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.5.0.tgz", + "integrity": "sha512-wF1CKIx+SoiEbtNdutulxW4z80B5lGXW+8JdAtcKQwgKxF0VtlCaDFsd9AEB3aTtzIve5UkGak8hQOMvvOpydg==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/installations-types": "0.3.4", "@firebase/util": "1.3.0", "idb": "3.0.2", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "peerDependencies": { - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" } }, "node_modules/@firebase/logger": { @@ -2585,51 +2695,75 @@ "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" }, "node_modules/@firebase/messaging": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.8.0.tgz", - "integrity": "sha512-hkFHDyVe1kMcY9KEG+prjCbvS6MtLUgVFUbbQqq7JQfiv58E07YCzRUcMrJolbNi/1QHH6Jv16DxNWjJB9+/qA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.9.0.tgz", + "integrity": "sha512-NTUB+gVJsgL/f6wqwUlgadaNuLZvyk1IlTcRvR3391t8jDSWOT2efwzNqcI7Xv4nhzaiPhzAQ4ncH/m8kfUUXQ==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", - "@firebase/messaging-types": "0.5.0", + "@firebase/installations": "0.5.0", + "@firebase/messaging-interop-types": "0.1.0", "@firebase/util": "1.3.0", "idb": "3.0.2", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" } }, - "node_modules/@firebase/messaging-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz", - "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/performance": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.18.tgz", - "integrity": "sha512-lvZW/TVDne2TyOpWbv++zjRn277HZpbjxbIPfwtnmKjVY1gJ+H77Qi1c2avVIc9hg80uGX/5tNf4pOApNDJLVg==", + "node_modules/@firebase/messaging-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.1.0.tgz", + "integrity": "sha512-58qQmKwOiXhxZwrRwwjQDbjlRx1uMVVuV/DNbDzqilDJDdoYXMdK6RBTF9Bs51qy/Z1BI2Q9B1JX01QYlgZpxQ==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", + "@firebase/messaging": "0.9.0", "@firebase/util": "1.3.0", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz", + "integrity": "sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ==" + }, + "node_modules/@firebase/performance": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.5.0.tgz", + "integrity": "sha512-E+L18eJKshr/ijnWZMexEEddwkp2T4Ye2dJSK4TcOKRYfrmfZJ95RRZ+MPNp1ES7RH2JYiyym1NIQKPcNNvhug==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/installations": "0.5.0", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.1.0.tgz", + "integrity": "sha512-H+/A5+y/15hFn5FHRP8lcogDzO6qm9YoACNEXn71UN4PiGQ+/BbHkQafDEXxD6wLfqfqR8u8oclHPFIYxMBF7Q==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/performance": "0.5.0", + "@firebase/performance-types": "0.1.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.1.0.tgz", + "integrity": "sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w==" }, "node_modules/@firebase/polyfill": { "version": "0.3.36", @@ -2652,47 +2786,74 @@ } }, "node_modules/@firebase/remote-config": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.43.tgz", - "integrity": "sha512-laNM4MN0CfeSp7XCVNjYOC4DdV6mj0l2rzUh42x4v2wLTweCoJ/kc1i4oWMX9TI7Jw8Am5Wl71Awn1J2pVe5xA==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.2.0.tgz", + "integrity": "sha512-hNZ+BqsTmfe8ogpeow95NSwQmKIeetKdPxKpyC6RZBeFUae782+2HrUx4/Quep6OZjOHQF6xZ5d3VOxu2ZKEfg==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", + "@firebase/installations": "0.5.0", "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", "@firebase/util": "1.3.0", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.1.0.tgz", + "integrity": "sha512-PpCh5f5hUUaDCmiJsuu/u9a0g0G5WH3YSbfH1jPejVOaJ1lS82615E7WOzco4zMllLYfX62VaUYD2vvcLyXE/w==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/remote-config": "0.2.0", + "@firebase/remote-config-types": "0.2.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz", + "integrity": "sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw==" }, "node_modules/@firebase/storage": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.7.0.tgz", - "integrity": "sha512-ebDFKJbM5HOxVtZV+RhVEBVtlWHK+Z5L3kA5uDBA2jMYcn+8NV/crozJnEE+iRsGEco6dLK5JS+Er4qtKLpH5A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.8.0.tgz", + "integrity": "sha512-D0HH+y3DLH0+8eOt6h19RffFMpdzPNr7Yv7XpeeM3+VLE4TbQnDie/OAQWOuWLrYoW7MsPQnLkx+zDb3DxOXxw==", "dependencies": { "@firebase/component": "0.5.6", - "@firebase/storage-types": "0.5.0", "@firebase/util": "1.3.0", "node-fetch": "2.6.1", "tslib": "^2.1.0" }, "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.1.0.tgz", + "integrity": "sha512-DJstR2vidnyNSRp14LQhd9QO0PxhMm/xsXrPQ2IEmQ7EWDT4rxGd+pkqXTG6IO+k9ZKMc0BnWIYwlMqkGEJoDg==", + "dependencies": { + "@firebase/component": "0.5.6", + "@firebase/storage": "0.8.0", + "@firebase/storage-types": "0.6.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" } }, "node_modules/@firebase/storage-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.5.0.tgz", - "integrity": "sha512-6Wv3Lu7s18hsgW7HG4BFwycTquZ3m/C8bjBoOsmPu0TD6M1GKwCzOC7qBdN7L6tRYPh8ipTj5+rPFrmhGfUVKA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz", + "integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==", "peerDependencies": { "@firebase/app-types": "0.x", "@firebase/util": "1.x" @@ -14275,14 +14436,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "engines": { - "node": "*" - } - }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -16733,28 +16886,36 @@ } }, "node_modules/firebase": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.10.0.tgz", - "integrity": "sha512-GCABTbJdo88QgzX5OH/vsfKBWvTRbLUylGlYXtO7uYo1VErfGd2BWW9ATlJP5Gxx+ClDfyvVTvcs2rcNWn3uUA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.0.0.tgz", + "integrity": "sha512-atgnuvELhU9D5w9moChnyCb6GRbOCqk54/kHN0J4kdLJBncpcb2culIJ7nlSHILMcW9MNMiNKDJ07RwXVyqFFA==", "dependencies": { - "@firebase/analytics": "0.6.18", - "@firebase/app": "0.6.30", - "@firebase/app-check": "0.3.2", - "@firebase/app-types": "0.6.3", - "@firebase/auth": "0.16.8", - "@firebase/database": "0.11.0", - "@firebase/firestore": "2.4.0", - "@firebase/functions": "0.6.15", - "@firebase/installations": "0.4.32", - "@firebase/messaging": "0.8.0", - "@firebase/performance": "0.4.18", + "@firebase/analytics": "0.7.0", + "@firebase/analytics-compat": "0.1.0", + "@firebase/app": "0.7.0", + "@firebase/app-check": "0.4.0", + "@firebase/app-check-compat": "0.1.0", + "@firebase/app-compat": "0.1.0", + "@firebase/app-types": "0.7.0", + "@firebase/auth": "0.17.0", + "@firebase/auth-compat": "0.1.0", + "@firebase/database": "0.12.0", + "@firebase/database-compat": "0.1.0", + "@firebase/firestore": "3.0.0", + "@firebase/firestore-compat": "0.1.0", + "@firebase/functions": "0.7.0", + "@firebase/functions-compat": "0.1.0", + "@firebase/installations": "0.5.0", + "@firebase/messaging": "0.9.0", + "@firebase/messaging-compat": "0.1.0", + "@firebase/performance": "0.5.0", + "@firebase/performance-compat": "0.1.0", "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.43", - "@firebase/storage": "0.7.0", + "@firebase/remote-config": "0.2.0", + "@firebase/remote-config-compat": "0.1.0", + "@firebase/storage": "0.8.0", + "@firebase/storage-compat": "0.1.0", "@firebase/util": "1.3.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" } }, "node_modules/flat": { @@ -18697,6 +18858,11 @@ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, "node_modules/immutable": { "version": "3.7.6", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", @@ -21878,6 +22044,17 @@ "verror": "1.10.0" } }, + "node_modules/jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, "node_modules/keyv": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", @@ -21977,6 +22154,14 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -27196,9 +27381,9 @@ } }, "node_modules/protobufjs/node_modules/@types/node": { - "version": "16.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", - "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" + "version": "16.7.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.4.tgz", + "integrity": "sha512-25QXpDsTiDnl2rZGUenagVMwO46way8dOUdvoC3R3p+6TrbpxeJBo/v87BEG1IHI31Jhaa8lPeSHcqwxsVBeYQ==" }, "node_modules/protocols": { "version": "1.4.8", @@ -28774,6 +28959,56 @@ "resolved": "https://registry.npmjs.org/scule/-/scule-0.2.1.tgz", "integrity": "sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==" }, + "node_modules/selenium-webdriver": { + "version": "4.0.0-beta.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz", + "integrity": "sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==", + "dependencies": { + "jszip": "^3.5.0", + "rimraf": "^2.7.1", + "tmp": "^0.2.1", + "ws": "^7.3.1" + }, + "engines": { + "node": ">= 10.15.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -28942,6 +29177,14 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -34974,14 +35217,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/xss": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", @@ -35139,9 +35374,9 @@ } }, "@apollo/client": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.4.8.tgz", - "integrity": "sha512-/cNqTSwc2Dw8q6FDDjdd30+yvhP7rI0Fvl3Hbro0lTtFuhzkevfNyQaI2jAiOrjU6Jc0RbanxULaNrX7UmvjSQ==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.4.10.tgz", + "integrity": "sha512-b+8TT3jBM2BtEJi+V2FuLpvoYDZCY3baNYrgAgEyw4fjnuBCSRPY7qVjqriZAwMaGiTLtyVifGhmdeICQs4Eow==", "requires": { "@graphql-typed-document-node/core": "^3.0.0", "@wry/context": "^0.6.0", @@ -36710,44 +36945,62 @@ } }, "@firebase/analytics": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.18.tgz", - "integrity": "sha512-FXNtYDxbs9ynPbzUVuG94BjFPOPpgJ7156660uvCBuKgoBCIVcNqKkJQQ7TH8384fqvGjbjdcgARY9jgAHbtog==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.7.0.tgz", + "integrity": "sha512-YEPyeW6CV8xbIvWaJMvfRdWUPKe/xchJ1bjV6GpLfkYRX+ZE1/YSNU14pX292M4bZ6Qg+bbu2DuWp8fEpa/YQg==", "requires": { - "@firebase/analytics-types": "0.6.0", "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", + "@firebase/installations": "0.5.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "tslib": "^2.1.0" } }, + "@firebase/analytics-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.1.0.tgz", + "integrity": "sha512-oaf1FEF7cKci5tO7f52dH63/ZwkBqbdSLLpgo6kyoYoYDuY+on4yAc1CIHh3sNj/L8T4Ni81IQvVs9lE/9oOpg==", + "requires": { + "@firebase/analytics": "0.7.0", + "@firebase/analytics-types": "0.7.0", + "@firebase/component": "0.5.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, "@firebase/analytics-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.6.0.tgz", - "integrity": "sha512-kbMawY0WRPyL/lbknBkme4CNLl+Gw+E9G4OpNeXAauqoQiNkBgpIvZYy7BRT4sNGhZbxdxXxXbruqUwDzLmvTw==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.7.0.tgz", + "integrity": "sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ==" }, "@firebase/app": { - "version": "0.6.30", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.30.tgz", - "integrity": "sha512-uAYEDXyK0mmpZ8hWQj5TNd7WVvfsU8PgsqKpGljbFBG/HhsH8KbcykWAAA+c1PqL7dt/dbt0Reh1y9zEdYzMhg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.7.0.tgz", + "integrity": "sha512-l4Pd69re6JyjumQrl719dnY5JSKROSYda/0N2wzOhSzqg8DsZOIErr8+xj6QAE6BtNsoIEk7ma9WMS/2r02MhA==", "requires": { - "@firebase/app-types": "0.6.3", "@firebase/component": "0.5.6", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", - "dom-storage": "2.1.0", - "tslib": "^2.1.0", - "xmlhttprequest": "1.8.0" + "tslib": "^2.1.0" } }, "@firebase/app-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.3.2.tgz", - "integrity": "sha512-YjpsnV1xVTO1B836IKijRcDeceLgHQNJ/DWa+Vky9UHkm1Mi4qosddX8LZzldaWRTWKX7BN1MbZOLY8r7M/MZQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.4.0.tgz", + "integrity": "sha512-KQ/k8cukzZbH/LC9Iu5/Dbhr7w6byu8bYjfCA38B6v8aISgASYfP/nirxRD+hSuDoxXtAnPGEuv+v0YU3D1R2w==", "requires": { - "@firebase/app-check-interop-types": "0.1.0", - "@firebase/app-check-types": "0.3.1", + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/app-check-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.1.0.tgz", + "integrity": "sha512-T1M2d1oroaHUa448fgx3BdfWg4WXP64yybIWxvmVBuh7YnyMuegJK1sS9zipKBKLkstcQK8vivXYh3+/AnbGFw==", + "requires": { + "@firebase/app-check": "0.4.0", "@firebase/component": "0.5.6", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", @@ -36759,22 +37012,69 @@ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz", "integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA==" }, - "@firebase/app-check-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.3.1.tgz", - "integrity": "sha512-KJ+BqJbdNsx4QT/JIT1yDj5p6D+QN97iJs3GuHnORrqL+DU3RWc9nSYQsrY6Tv9jVWcOkMENXAgDT484vzsm2w==" + "@firebase/app-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.0.tgz", + "integrity": "sha512-jnAeFM1ihY5klqg2dvdA4EOk7co8ffSHUj/efqaSwTrMkKTcG/WZKF9WAuXdl+5jEu1BhsGGHveWzGliTFH5Hg==", + "requires": { + "@firebase/app": "0.7.0", + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } }, "@firebase/app-types": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz", - "integrity": "sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz", + "integrity": "sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==" }, "@firebase/auth": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.8.tgz", - "integrity": "sha512-mR0UXG4LirWIfOiCWxVmvz1o23BuKGxeItQ2cCUgXLTjNtWJXdcky/356iTUsd7ZV5A78s2NHeN5tIDDG6H4rg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.17.0.tgz", + "integrity": "sha512-4zOGTLGzMjBX96KEyBNYpjOD87c2efCZvUjaJ53QslleW9Xp8kSsSHLRhr8hOkcRXO17CmBKSRx/LnG2vTZWQQ==", "requires": { - "@firebase/auth-types": "0.10.3" + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "node-fetch": "2.6.1", + "selenium-webdriver": "4.0.0-beta.1", + "tslib": "^2.1.0" + } + }, + "@firebase/auth-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.1.0.tgz", + "integrity": "sha512-OfAt3c5ham07xvmYyJp02v8mUa+HaSEwilvgD2M1JaWqLAtqH66bdBhLBE9N0pq8xtRdXZIF1vSd20a0ulQfQg==", + "requires": { + "@firebase/auth": "0.17.0", + "@firebase/auth-types": "0.11.0", + "@firebase/component": "0.5.6", + "@firebase/util": "1.3.0", + "node-fetch": "2.6.1", + "selenium-webdriver": "^4.0.0-beta.2", + "tslib": "^2.1.0" + }, + "dependencies": { + "selenium-webdriver": { + "version": "4.0.0-beta.4", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.4.tgz", + "integrity": "sha512-+s/CIYkWzmnC9WASBxxVj7Lm0dcyl6OaFxwIJaFCT5WCuACiimEEr4lUnOOFP/QlKfkDQ56m+aRczaq2EvJEJg==", + "requires": { + "jszip": "^3.6.0", + "rimraf": "^3.0.2", + "tmp": "^0.2.1", + "ws": ">=7.4.6" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + } } }, "@firebase/auth-interop-types": { @@ -36784,9 +37084,9 @@ "requires": {} }, "@firebase/auth-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.3.tgz", - "integrity": "sha512-zExrThRqyqGUbXOFrH/sowuh2rRtfKHp9SBVY2vOqKWdCX1Ztn682n9WLtlUDsiYVIbBcwautYWk2HyCGFv0OA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz", + "integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==", "requires": {} }, "@firebase/component": { @@ -36799,35 +37099,46 @@ } }, "@firebase/database": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.11.0.tgz", - "integrity": "sha512-b/kwvCubr6G9coPlo48PbieBDln7ViFBHOGeVt/bt82yuv5jYZBEYAac/mtOVSxpf14aMo/tAN+Edl6SWqXApw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.12.0.tgz", + "integrity": "sha512-/gl6z6fAxAAFAdDllzidzweGpuXJu0b9AusSLrdW4LpP6KCuxJbhonMJuSGpHLzAHzx6Q9uitbvqHqBb17sttQ==", "requires": { "@firebase/auth-interop-types": "0.1.6", "@firebase/component": "0.5.6", - "@firebase/database-types": "0.8.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "faye-websocket": "0.11.3", "tslib": "^2.1.0" } }, - "@firebase/database-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.8.0.tgz", - "integrity": "sha512-7IdjAFRfPWyG3b4wcXyghb3Y1CLCSJFZIg1xl5GbTVMttSQFT4B5NYdhsfA34JwAsv5pMzPpjOaS3/K9XJ2KiA==", + "@firebase/database-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.1.0.tgz", + "integrity": "sha512-jLN0JMYnYijg8f3QFtSuPGNuKAt3yYVRsHHlR8sADgx8MptByRRwVmMOk7QPc/DY7qscZIJow3hXFwvbeApFLA==", "requires": { - "@firebase/app-types": "0.6.3", + "@firebase/component": "0.5.6", + "@firebase/database": "0.12.0", + "@firebase/database-types": "0.9.0", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/database-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.0.tgz", + "integrity": "sha512-x2TeTVnMZGPvT3y4Nayio4WprQA/zGwqMrPMQwSdF+PFnaFJAhA/eLgUB6cmWFzFYO9VvmuRkFzDzo6ezTo1Zw==", + "requires": { + "@firebase/app-types": "0.7.0", "@firebase/util": "1.3.0" } }, "@firebase/firestore": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.4.0.tgz", - "integrity": "sha512-PQ6+lWNrvh74GvFTHT4gCutFipDmtu8D1tNNawKe+/SyL6XFgeuMYgZIpKQgkTSezVDogC7EGQTJBFnewF9pOg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.0.0.tgz", + "integrity": "sha512-rbs5EbU/01f7NKHDtedBowpBlqnkVnQlpIuSX5wwGMiPgH8f9pMhh59JMk0cTaSqsJXsq3KvafWAD9SqWIqe2w==", "requires": { "@firebase/component": "0.5.6", - "@firebase/firestore-types": "2.4.0", "@firebase/logger": "0.2.6", "@firebase/util": "1.3.0", "@firebase/webchannel-wrapper": "0.5.1", @@ -36837,88 +37148,129 @@ "tslib": "^2.1.0" } }, + "@firebase/firestore-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.1.0.tgz", + "integrity": "sha512-25r1jGpnnx7vXSPVLmHNkuz+EGpZDU5Luro5/MFCMmoV4a+Rmg2n9FRlxRyPn4XOCkc5nrBpT6ESAKAPSNHcpw==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/firestore": "3.0.0", + "@firebase/firestore-types": "2.5.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, "@firebase/firestore-types": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.4.0.tgz", - "integrity": "sha512-0dgwfuNP7EN6/OlK2HSNSQiQNGLGaRBH0gvgr1ngtKKJuJFuq0Z48RBMeJX9CGjV4TP9h2KaB+KrUKJ5kh1hMg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz", + "integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==", "requires": {} }, "@firebase/functions": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.15.tgz", - "integrity": "sha512-b7RpLwFXi0N+HgkfK8cmkarSOoBeSrc1jNdadkCacQt+vIePkKM3E9EJXF4roWSa8GwTruodpBsvH+lK9iCAKQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.7.0.tgz", + "integrity": "sha512-H0krTllYh5eK7utKoUoNoVvoSdZqaPdqGSdIK7ltr1yWX9UhbRWYZv5B/tWTjQFfDfRQwpn9Q6svoJzYZQiusA==", "requires": { + "@firebase/app-check-interop-types": "0.1.0", + "@firebase/auth-interop-types": "0.1.6", "@firebase/component": "0.5.6", - "@firebase/functions-types": "0.4.0", - "@firebase/messaging-types": "0.5.0", + "@firebase/messaging-interop-types": "0.1.0", + "@firebase/util": "1.3.0", "node-fetch": "2.6.1", "tslib": "^2.1.0" } }, - "@firebase/functions-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz", - "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==" - }, - "@firebase/installations": { - "version": "0.4.32", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.32.tgz", - "integrity": "sha512-K4UlED1Vrhd2rFQQJih+OgEj8OTtrtH4+Izkx7ip2bhXSc+unk8ZhnF69D0kmh7zjXAqEDJrmHs9O5fI3rV6Tw==", + "@firebase/functions-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.1.0.tgz", + "integrity": "sha512-uNwHdGYqgIXzF7aTZBeUe00K/sadRg5EeSDuJ6VNo3Gh3ZceX4eRnL5p7l2bEJBh8hBl0brb82+TRYjGHtjtFQ==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/functions": "0.7.0", + "@firebase/functions-types": "0.5.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/functions-types": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.5.0.tgz", + "integrity": "sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA==" + }, + "@firebase/installations": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.5.0.tgz", + "integrity": "sha512-wF1CKIx+SoiEbtNdutulxW4z80B5lGXW+8JdAtcKQwgKxF0VtlCaDFsd9AEB3aTtzIve5UkGak8hQOMvvOpydg==", "requires": { "@firebase/component": "0.5.6", - "@firebase/installations-types": "0.3.4", "@firebase/util": "1.3.0", "idb": "3.0.2", "tslib": "^2.1.0" } }, - "@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "requires": {} - }, "@firebase/logger": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" }, "@firebase/messaging": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.8.0.tgz", - "integrity": "sha512-hkFHDyVe1kMcY9KEG+prjCbvS6MtLUgVFUbbQqq7JQfiv58E07YCzRUcMrJolbNi/1QHH6Jv16DxNWjJB9+/qA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.9.0.tgz", + "integrity": "sha512-NTUB+gVJsgL/f6wqwUlgadaNuLZvyk1IlTcRvR3391t8jDSWOT2efwzNqcI7Xv4nhzaiPhzAQ4ncH/m8kfUUXQ==", "requires": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", - "@firebase/messaging-types": "0.5.0", + "@firebase/installations": "0.5.0", + "@firebase/messaging-interop-types": "0.1.0", "@firebase/util": "1.3.0", "idb": "3.0.2", "tslib": "^2.1.0" } }, - "@firebase/messaging-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz", - "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==", - "requires": {} - }, - "@firebase/performance": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.18.tgz", - "integrity": "sha512-lvZW/TVDne2TyOpWbv++zjRn277HZpbjxbIPfwtnmKjVY1gJ+H77Qi1c2avVIc9hg80uGX/5tNf4pOApNDJLVg==", + "@firebase/messaging-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.1.0.tgz", + "integrity": "sha512-58qQmKwOiXhxZwrRwwjQDbjlRx1uMVVuV/DNbDzqilDJDdoYXMdK6RBTF9Bs51qy/Z1BI2Q9B1JX01QYlgZpxQ==", "requires": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", + "@firebase/messaging": "0.9.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/messaging-interop-types": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz", + "integrity": "sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ==" + }, + "@firebase/performance": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.5.0.tgz", + "integrity": "sha512-E+L18eJKshr/ijnWZMexEEddwkp2T4Ye2dJSK4TcOKRYfrmfZJ95RRZ+MPNp1ES7RH2JYiyym1NIQKPcNNvhug==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/installations": "0.5.0", "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/performance-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.1.0.tgz", + "integrity": "sha512-H+/A5+y/15hFn5FHRP8lcogDzO6qm9YoACNEXn71UN4PiGQ+/BbHkQafDEXxD6wLfqfqR8u8oclHPFIYxMBF7Q==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/performance": "0.5.0", + "@firebase/performance-types": "0.1.0", "@firebase/util": "1.3.0", "tslib": "^2.1.0" } }, "@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.1.0.tgz", + "integrity": "sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w==" }, "@firebase/polyfill": { "version": "0.3.36", @@ -36938,39 +37290,62 @@ } }, "@firebase/remote-config": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.43.tgz", - "integrity": "sha512-laNM4MN0CfeSp7XCVNjYOC4DdV6mj0l2rzUh42x4v2wLTweCoJ/kc1i4oWMX9TI7Jw8Am5Wl71Awn1J2pVe5xA==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.2.0.tgz", + "integrity": "sha512-hNZ+BqsTmfe8ogpeow95NSwQmKIeetKdPxKpyC6RZBeFUae782+2HrUx4/Quep6OZjOHQF6xZ5d3VOxu2ZKEfg==", "requires": { "@firebase/component": "0.5.6", - "@firebase/installations": "0.4.32", + "@firebase/installations": "0.5.0", "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, + "@firebase/remote-config-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.1.0.tgz", + "integrity": "sha512-PpCh5f5hUUaDCmiJsuu/u9a0g0G5WH3YSbfH1jPejVOaJ1lS82615E7WOzco4zMllLYfX62VaUYD2vvcLyXE/w==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/logger": "0.2.6", + "@firebase/remote-config": "0.2.0", + "@firebase/remote-config-types": "0.2.0", "@firebase/util": "1.3.0", "tslib": "^2.1.0" } }, "@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz", + "integrity": "sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw==" }, "@firebase/storage": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.7.0.tgz", - "integrity": "sha512-ebDFKJbM5HOxVtZV+RhVEBVtlWHK+Z5L3kA5uDBA2jMYcn+8NV/crozJnEE+iRsGEco6dLK5JS+Er4qtKLpH5A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.8.0.tgz", + "integrity": "sha512-D0HH+y3DLH0+8eOt6h19RffFMpdzPNr7Yv7XpeeM3+VLE4TbQnDie/OAQWOuWLrYoW7MsPQnLkx+zDb3DxOXxw==", "requires": { "@firebase/component": "0.5.6", - "@firebase/storage-types": "0.5.0", "@firebase/util": "1.3.0", "node-fetch": "2.6.1", "tslib": "^2.1.0" } }, + "@firebase/storage-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.1.0.tgz", + "integrity": "sha512-DJstR2vidnyNSRp14LQhd9QO0PxhMm/xsXrPQ2IEmQ7EWDT4rxGd+pkqXTG6IO+k9ZKMc0BnWIYwlMqkGEJoDg==", + "requires": { + "@firebase/component": "0.5.6", + "@firebase/storage": "0.8.0", + "@firebase/storage-types": "0.6.0", + "@firebase/util": "1.3.0", + "tslib": "^2.1.0" + } + }, "@firebase/storage-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.5.0.tgz", - "integrity": "sha512-6Wv3Lu7s18hsgW7HG4BFwycTquZ3m/C8bjBoOsmPu0TD6M1GKwCzOC7qBdN7L6tRYPh8ipTj5+rPFrmhGfUVKA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz", + "integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==", "requires": {} }, "@firebase/util": { @@ -46394,11 +46769,6 @@ "entities": "^2.0.0" } }, - "dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" - }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -48240,24 +48610,35 @@ } }, "firebase": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.10.0.tgz", - "integrity": "sha512-GCABTbJdo88QgzX5OH/vsfKBWvTRbLUylGlYXtO7uYo1VErfGd2BWW9ATlJP5Gxx+ClDfyvVTvcs2rcNWn3uUA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.0.0.tgz", + "integrity": "sha512-atgnuvELhU9D5w9moChnyCb6GRbOCqk54/kHN0J4kdLJBncpcb2culIJ7nlSHILMcW9MNMiNKDJ07RwXVyqFFA==", "requires": { - "@firebase/analytics": "0.6.18", - "@firebase/app": "0.6.30", - "@firebase/app-check": "0.3.2", - "@firebase/app-types": "0.6.3", - "@firebase/auth": "0.16.8", - "@firebase/database": "0.11.0", - "@firebase/firestore": "2.4.0", - "@firebase/functions": "0.6.15", - "@firebase/installations": "0.4.32", - "@firebase/messaging": "0.8.0", - "@firebase/performance": "0.4.18", + "@firebase/analytics": "0.7.0", + "@firebase/analytics-compat": "0.1.0", + "@firebase/app": "0.7.0", + "@firebase/app-check": "0.4.0", + "@firebase/app-check-compat": "0.1.0", + "@firebase/app-compat": "0.1.0", + "@firebase/app-types": "0.7.0", + "@firebase/auth": "0.17.0", + "@firebase/auth-compat": "0.1.0", + "@firebase/database": "0.12.0", + "@firebase/database-compat": "0.1.0", + "@firebase/firestore": "3.0.0", + "@firebase/firestore-compat": "0.1.0", + "@firebase/functions": "0.7.0", + "@firebase/functions-compat": "0.1.0", + "@firebase/installations": "0.5.0", + "@firebase/messaging": "0.9.0", + "@firebase/messaging-compat": "0.1.0", + "@firebase/performance": "0.5.0", + "@firebase/performance-compat": "0.1.0", "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.43", - "@firebase/storage": "0.7.0", + "@firebase/remote-config": "0.2.0", + "@firebase/remote-config-compat": "0.1.0", + "@firebase/storage": "0.8.0", + "@firebase/storage-compat": "0.1.0", "@firebase/util": "1.3.0" } }, @@ -49737,6 +50118,11 @@ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, "immutable": { "version": "3.7.6", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", @@ -52091,6 +52477,17 @@ "verror": "1.10.0" } }, + "jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, "keyv": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", @@ -52172,6 +52569,14 @@ "type-check": "~0.4.0" } }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -56269,9 +56674,9 @@ }, "dependencies": { "@types/node": { - "version": "16.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", - "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" + "version": "16.7.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.4.tgz", + "integrity": "sha512-25QXpDsTiDnl2rZGUenagVMwO46way8dOUdvoC3R3p+6TrbpxeJBo/v87BEG1IHI31Jhaa8lPeSHcqwxsVBeYQ==" } } }, @@ -57494,6 +57899,45 @@ "resolved": "https://registry.npmjs.org/scule/-/scule-0.2.1.tgz", "integrity": "sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==" }, + "selenium-webdriver": { + "version": "4.0.0-beta.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz", + "integrity": "sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==", + "requires": { + "jszip": "^3.5.0", + "rimraf": "^2.7.1", + "tmp": "^0.2.1", + "ws": "^7.3.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + } + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -57640,6 +58084,11 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -62342,11 +62791,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - }, "xss": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", diff --git a/package.json b/package.json index d800242b5..4ea53245f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "*.{css,scss,vue}": "stylelint" }, "dependencies": { - "@apollo/client": "^3.4.8", + "@apollo/client": "^3.4.10", "@nuxtjs/axios": "^5.13.6", "@nuxtjs/composition-api": "^0.27.0", "@nuxtjs/gtm": "^2.4.0", @@ -36,7 +36,7 @@ "acorn-walk": "^8.1.1", "core-js": "^3.16.2", "esprima": "^4.0.1", - "firebase": "^8.10.0", + "firebase": "^9.0.0", "graphql": "^15.5.0", "graphql-language-service-interface": "^2.8.4", "json-loader": "^0.5.7", From 91352ade20c9fe4ef7b303652b9a0f0900bdd2f6 Mon Sep 17 00:00:00 2001 From: liyasthomas Date: Sun, 29 Aug 2021 19:31:23 +0530 Subject: [PATCH 2/3] feat: typescript support in auth components Co-authored-by: Andrew Bastin --- components/firebase/Login.vue | 120 ++++++---------------------------- helpers/fb/auth.ts | 14 ++++ 2 files changed, 34 insertions(+), 100 deletions(-) diff --git a/components/firebase/Login.vue b/components/firebase/Login.vue index 4b6ba1682..8c3b4a9bd 100644 --- a/components/firebase/Login.vue +++ b/components/firebase/Login.vue @@ -116,17 +116,16 @@ -