diff --git a/CHANGELOG.md b/CHANGELOG.md index 1575fb3d..b5b879c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,29 @@ See below for details. ### Changed +- **BREAKING**: Use `lazyfire` for ESM-enabled web environments to make Firebase modules load on demand. It ensures maximum performance, but requires installation of additional dependency and change of application initialization. + + So, if you're using webpack or another ESM-enabled bundler, install `lazyfire`: + + ```bash + npm install lazyfire --save + # Or using Yarn: + yarn add lazyfire + ``` + + And then change `firebase.initializeApp` to `configureApp`: + + ```diff + -import * as firebase from 'firebase/app' + -import 'firebase/firestore' + +import { configureApp } from 'lazyfire' + + -firebase.initializeApp({ + +configureApp({ + // Firebase app configuration + }) + ``` + - **BREAKING**: Make TypeScript 3.8 the minimal supported version. - **BREAKING**: `AnyUpdateValue` type was removed. diff --git a/README.md b/README.md index 3d4d7bf8..0beafaf3 100644 --- a/README.md +++ b/README.md @@ -34,27 +34,53 @@ yarn add typesaurus _Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so that they won't install automatically along with the Typesaurus package._ +Additionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment: + +```sh +npm install lazyfire --save +# Or using Yarn: +yarn add lazyfire +``` + +[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire). + ## Configuration -Typesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code +Typesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code. ## Get started ### Initialization -To start working with Typesaurus, initialize Firebase normally. +To start working with Typesaurus, you'll need to initialize Firebase. -In the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)): +#### Web environment + +In the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application: + +```ts +import { configureApp } from 'lazyfire' + +configureApp({ + // Firebase app configuration +}) +``` + +#### Legacy web environment + +In the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)): ```ts import * as firebase from 'firebase/app' import 'firebase/firestore' firebase.initializeApp({ - // Project configuration + // Firebase app configuration }) ``` +#### Node.js environment + In Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)): ```ts diff --git a/package.json b/package.json index a6a820f4..d58e6741 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typesaurus", - "version": "8.0.0-alpha.22", + "version": "8.0.0-alpha.23", "description": "Type-safe ODM for Firestore", "keywords": [ "Firebase", @@ -26,7 +26,7 @@ "babel-jest": "^26.6.3", "babel-loader": "^8.2.2", "babel-preset-power-assert": "^3.0.0", - "firebase": "8.2.5", + "firebase": "8", "firebase-admin": "9.4.2", "firebase-tools": "^9.3.0", "jest": "^26.6.3", @@ -37,6 +37,7 @@ "karma-mocha": "^1.3.0", "karma-sourcemap-loader": "^0.3.8", "karma-webpack": "4", + "lazyfire": "^0.2.0", "mocha": "^6.2.0", "nanoid": "^3.1.20", "power-assert": "^1.6.1", diff --git a/src/adaptor/browser/lazy.ts b/src/adaptor/browser/lazy.ts index ea2c818b..7a4a6b02 100644 --- a/src/adaptor/browser/lazy.ts +++ b/src/adaptor/browser/lazy.ts @@ -5,12 +5,13 @@ import type { DocOptions, ServerTimestampsStrategy } from '../../types' import { getAll } from '../utils' import type firebase from 'firebase' +import { ensureApp } from 'lazyfire' export default async function adaptor() { - const { default: firebase } = await import('firebase/app') + const { app, firebase } = await ensureApp() await import('firebase/firestore') - const firestore = firebase.firestore() + const firestore = app.firestore() // At the moment, the browser's Firestore adaptor doesn't support getAll. // Get rid of the fallback when the issue is closed: // https://github.com/firebase/firebase-js-sdk/issues/1176 diff --git a/yarn.lock b/yarn.lock index 6df5b258..08184e3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,17 +1061,17 @@ resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.4.0.tgz#d6716f9fa36a6e340bc0ecfe68af325aa6f60508" integrity sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA== -"@firebase/analytics@0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.6.2.tgz#7f45675a1b524fff4d9e9fe318fd6e2ed067a325" - integrity sha512-4Ceov+rPfOEPIdbjlpTim/wbcUUneIesHag4UOzvmFsRRXqbxLwQpyZQWEbTSriUeU8uTKj9yOW32hsskV9Klg== +"@firebase/analytics@0.6.11": + version "0.6.11" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.6.11.tgz#0560b6e9e62bb8a135b9c038e3a397706b8a1fb0" + integrity sha512-I4rHkJ2jVFIXfcXCRjVrJLwOoM0Kk3asRrvaqRoL3a14CjAdCncHvhQ6wSrfzFAeFMrH1t6UJP1sxRqHOZ5TGA== dependencies: "@firebase/analytics-types" "0.4.0" - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.5.1" + "@firebase/installations" "0.4.27" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.1.0" + tslib "^2.1.0" "@firebase/analytics@0.6.9": version "0.6.9" @@ -1085,6 +1085,28 @@ "@firebase/util" "1.0.0" tslib "^2.1.0" +"@firebase/app-check-interop-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz#83afd9d41f99166c2bdb2d824e5032e9edd8fe53" + integrity sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA== + +"@firebase/app-check-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.1.0.tgz#75602650c5f118891834280b72addcac513c4b7d" + integrity sha512-jf92QzVkj9ulyp/K01h/GpVYNSjuk6DP9nHkq4AUyM+35e96cl9gL3+qOTD0//5CVfrWjRo7+lbVlW2OpG/JDQ== + +"@firebase/app-check@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.1.2.tgz#36af1a35c73526141a421d9eaf369b2815cf632b" + integrity sha512-7DPXys2aWyuBHFBNkO6JKip9FjKRi1j3xPIi6saKsKjnVKM7UcCCSTMPJjD/b1XpikU0pS5lqWumdOk7h0tD3Q== + dependencies: + "@firebase/app-check-interop-types" "0.1.0" + "@firebase/app-check-types" "0.1.0" + "@firebase/component" "0.5.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.1.0" + tslib "^2.1.0" + "@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" @@ -1095,19 +1117,6 @@ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.2.tgz#8578cb1061a83ced4570188be9e225d54e0f27fb" integrity sha512-2VXvq/K+n8XMdM4L2xy5bYp2ZXMawJXluUIDzUBvMthVR+lhxK4pfFiqr1mmDbv9ydXvEAuFsD+6DpcZuJcSSw== -"@firebase/app@0.6.14": - version "0.6.14" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.14.tgz#a93e0cd74f1d8232e74fde4daa8d95dd934753c8" - integrity sha512-ZQKuiJ+fzr4tULgWoXbW+AZVTGsejOkSrlQ+zx78WiGKIubpFJLklnP3S0oYr/1nHzr4vaKuM4G8IL1Wv/+MpQ== - dependencies: - "@firebase/app-types" "0.6.1" - "@firebase/component" "0.1.21" - "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - dom-storage "2.1.0" - tslib "^1.11.1" - xmlhttprequest "1.8.0" - "@firebase/app@0.6.20": version "0.6.20" resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.20.tgz#07d3bdda6fbe34bac34bcba7f2f92ce394a29753" @@ -1121,6 +1130,19 @@ tslib "^2.1.0" xmlhttprequest "1.8.0" +"@firebase/app@0.6.24": + version "0.6.24" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.24.tgz#f868bba35ec89f420589b7a2af732302b8157e5b" + integrity sha512-PgSV4u8G8/e3B0btOd4AuMUOCSyDpPCbn9nxv5vtpQsud7rEiFCseBngbSZbf8FXCvYeTS2TJn79Vj3ifj15OQ== + dependencies: + "@firebase/app-types" "0.6.2" + "@firebase/component" "0.5.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.1.0" + dom-storage "2.1.0" + tslib "^2.1.0" + 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" @@ -1131,23 +1153,11 @@ resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz#5ce13fc1c527ad36f1bb1322c4492680a6cf4964" integrity sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g== -"@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-types@0.10.3": version "0.10.3" resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.3.tgz#2be7dd93959c8f5304c63e09e98718e103464d8c" integrity sha512-zExrThRqyqGUbXOFrH/sowuh2rRtfKHp9SBVY2vOqKWdCX1Ztn682n9WLtlUDsiYVIbBcwautYWk2HyCGFv0OA== -"@firebase/auth@0.16.2": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.16.2.tgz#e8fdd65c7987276bc06676e9ed990346ebe2dc51" - integrity sha512-68TlDL0yh3kF8PiCzI8m8RWd/bf/xCLUsdz1NZ2Dwea0sp6e2WAhu0sem1GfhwuEwL+Ns4jCdX7qbe/OQlkVEA== - dependencies: - "@firebase/auth-types" "0.10.1" - "@firebase/auth@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.16.5.tgz#703a9f1208e14fa0801798bd926c4a8f59fc97c4" @@ -1155,6 +1165,13 @@ dependencies: "@firebase/auth-types" "0.10.3" +"@firebase/auth@0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.16.6.tgz#0fc7a11561b939865fd486cd1909a3e81742fd82" + integrity sha512-1Lj3AY40Z2weCK6FuJqUEkeVJpRaaCo1LT6P5s3VIR99PDYLHeMm2m02rBaskE7ralJA975Vkv7sHrpykRfDrA== + dependencies: + "@firebase/auth-types" "0.10.3" + "@firebase/component@0.1.21": version "0.1.21" resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.1.21.tgz#56062eb0d449dc1e7bbef3c084a9b5fa48c7c14d" @@ -1171,6 +1188,14 @@ "@firebase/util" "1.0.0" tslib "^2.1.0" +"@firebase/component@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.1.tgz#b61314f1065552bfc4bf15ebbc66f74be018ed46" + integrity sha512-l1yYAH7OSdmaLXmVBR1vjop2WNELDty3G4NxLFLysWxkcTPhqG+PjKzHEEkAgJ2slF5H3O9BFOGP9OUtrHhvMA== + dependencies: + "@firebase/util" "1.1.0" + tslib "^2.1.0" + "@firebase/database-types@0.6.1", "@firebase/database-types@^0.6.1": version "0.6.1" resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.6.1.tgz#cf1cfc03e617ed4c2561703781f85ba4c707ff65" @@ -1185,18 +1210,18 @@ dependencies: "@firebase/app-types" "0.6.2" -"@firebase/database@0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.9.1.tgz#a0f6a91bb21b746812b5848c1a9504dec524eab3" - integrity sha512-JdxgNvniSZiAx+lrdAQxkCZOTv+UfdmhRm9JA4RTs4XOpvwzmRtJTAIGBn+9CWXUAkWkjt5CYHLmYysD7NGj6g== +"@firebase/database@0.10.3": + version "0.10.3" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.10.3.tgz#e7e3f65eb9b1851cd014c46705bdef714066bdab" + integrity sha512-PaQ2EEvx0LsWIqN7qsoqN4RiAJYs6FL5BFDFEPTjJZW410ECnMcNfXCASYuQSU903sY4MA0ki9H1nH0J7gb7bQ== dependencies: - "@firebase/auth-interop-types" "0.1.5" - "@firebase/component" "0.1.21" - "@firebase/database-types" "0.6.1" + "@firebase/auth-interop-types" "0.1.6" + "@firebase/component" "0.5.1" + "@firebase/database-types" "0.7.2" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" + "@firebase/util" "1.1.0" faye-websocket "0.11.3" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/database@0.9.11": version "0.9.11" @@ -1224,30 +1249,15 @@ faye-websocket "0.11.3" tslib "^1.11.1" -"@firebase/firestore-types@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.1.0.tgz#ad406c6fd7f0eae7ea52979f712daa0166aef665" - integrity sha512-jietErBWihMvJkqqEquQy5GgoEwzHnMXXC/TsVoe9FPysXm1/AeJS12taS7ZYvenAtyvL/AEJyKrRKRh4adcJQ== - "@firebase/firestore-types@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.2.0.tgz#9a3f3f2906232c3b4a726d988a6ef077f35f9093" integrity sha512-5kZZtQ32FIRJP1029dw+ZVNRCclKOErHv1+Xn0pw/5Fq3dxroA/ZyFHqDu+uV52AyWHhNLjCqX43ibm4YqOzRw== -"@firebase/firestore@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-2.1.4.tgz#27b6efc8e3d2709fc080844a15a8e8cb92a0cc20" - integrity sha512-chSOvJyVoS7HmH7YOyqQP66wMwmsYNo2nPbFkrmQM/fRGXntNxXD1Greu1uts2hNyNeDLNrFHW5y7PlE3LAbwQ== - dependencies: - "@firebase/component" "0.1.21" - "@firebase/firestore-types" "2.1.0" - "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - "@firebase/webchannel-wrapper" "0.4.1" - "@grpc/grpc-js" "^1.0.0" - "@grpc/proto-loader" "^0.5.0" - node-fetch "2.6.1" - tslib "^1.11.1" +"@firebase/firestore-types@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.3.0.tgz#baf5c9470ba8be96bf0d76b83b413f03104cf565" + integrity sha512-QTW7NP7nDL0pgT/X53lyj+mIMh4nRQBBTBlRNQBt7eSyeqBf3ag3bxdQhCg358+5KbjYTC2/O6QtX9DlJZmh1A== "@firebase/firestore@2.2.5": version "2.2.5" @@ -1264,21 +1274,36 @@ node-fetch "2.6.1" tslib "^2.1.0" +"@firebase/firestore@2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-2.3.4.tgz#d57e4b6f50da4c949491ca694bdb68ca2d6eae75" + integrity sha512-FXWbyIulQUsu7a//ov19Jk4ts8E+FRJvLpvWUuf/mzFjK90+vbF/PytnZiTQEb0wTqd5cbI3iZxBYKdJkM6P5g== + dependencies: + "@firebase/component" "0.5.1" + "@firebase/firestore-types" "2.3.0" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.1.0" + "@firebase/webchannel-wrapper" "0.5.0" + "@grpc/grpc-js" "^1.3.2" + "@grpc/proto-loader" "^0.5.0" + node-fetch "2.6.1" + tslib "^2.1.0" + "@firebase/functions-types@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.4.0.tgz#0b789f4fe9a9c0b987606c4da10139345b40f6b9" integrity sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ== -"@firebase/functions@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.6.1.tgz#32640b8f877637057dfaaeb122be8c8e99ad1af7" - integrity sha512-xNCAY3cLlVWE8Azf+/84OjnaXMoyUstJ3vwVRG0ie22QhsdQuPa1tXTiPX4Tmm+Hbbd/Aw0A/7dkEnuW+zYzaQ== +"@firebase/functions@0.6.10": + version "0.6.10" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.6.10.tgz#52f2408a3298f5bc561a9e940e6b281178897c31" + integrity sha512-rB6u1Yvo/z6uBV14Cr+5mc7xjbBWRmc3hUET5kfkq5q9BkDe8NW9wbqADBnhw8BUiP3TMLiBabRTZKEcdY+KJQ== dependencies: - "@firebase/component" "0.1.21" + "@firebase/component" "0.5.1" "@firebase/functions-types" "0.4.0" "@firebase/messaging-types" "0.5.0" node-fetch "2.6.1" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/functions@0.6.7": version "0.6.7" @@ -1296,17 +1321,6 @@ resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.3.4.tgz#589a941d713f4f64bf9f4feb7f463505bab1afa2" integrity sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q== -"@firebase/installations@0.4.19": - version "0.4.19" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.19.tgz#53f50aeb022996963f89f59560d7b4cf801869da" - integrity sha512-QqAQzosKVVqIx7oMt5ujF4NsIXgtlTnej4JXGJ8sQQuJoMnt3T+PFQRHbr7uOfVaBiHYhEaXCcmmhfKUHwKftw== - dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations-types" "0.3.4" - "@firebase/util" "0.3.4" - idb "3.0.2" - tslib "^1.11.1" - "@firebase/installations@0.4.25": version "0.4.25" resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.25.tgz#532a50418afc01b3cbc8fdab55e3b168cec66193" @@ -1318,6 +1332,17 @@ idb "3.0.2" tslib "^2.1.0" +"@firebase/installations@0.4.27": + version "0.4.27" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.27.tgz#79a4ec352dce2519dcda3499bf4d8f6817fe30f7" + integrity sha512-sHG1kYnax/UPw3IPAaPgELP1LaeRyedlz7EPTNLVEPvfOoEqj20V+psbQGdQRVPdF1ODOVwuKeptvH5iyAEtBg== + dependencies: + "@firebase/component" "0.5.1" + "@firebase/installations-types" "0.3.4" + "@firebase/util" "1.1.0" + idb "3.0.2" + tslib "^2.1.0" + "@firebase/logger@0.2.6": version "0.2.6" resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" @@ -1328,17 +1353,17 @@ resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.5.0.tgz#c5d0ef309ced1758fda93ef3ac70a786de2e73c4" integrity sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg== -"@firebase/messaging@0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.7.3.tgz#31dded892455e4d0680e1452ff2fbfdfb9e4ce9b" - integrity sha512-63nOP2SmQJrj9jrhV3K96L5MRKS6AqmFVLX1XbGk6K6lz38ZC4LIoCcHxzUBXY7fCAuZvNmh/YB3pE8B2mTs8A== +"@firebase/messaging@0.7.11": + version "0.7.11" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.7.11.tgz#13120bb11c989e3b2b5e5888ec044ee9d751d827" + integrity sha512-ASa2zaHrzY3+ozWSyfiIexdtrNgCVVdHkj+6Vxt/kxihw+hH5FuJDeOYby6PY09wq/xFnFgXFyPTFZ7y+CQW0w== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.5.1" + "@firebase/installations" "0.4.27" "@firebase/messaging-types" "0.5.0" - "@firebase/util" "0.3.4" + "@firebase/util" "1.1.0" idb "3.0.2" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/messaging@0.7.9": version "0.7.9" @@ -1369,17 +1394,17 @@ "@firebase/util" "1.0.0" tslib "^2.1.0" -"@firebase/performance@0.4.5": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.4.5.tgz#3ab89208ed6fb80165e5594058e46dc85113cd78" - integrity sha512-oenEOaV/UzvV8XPi8afYQ71RzyrHoBesqOyXqb1TOg7dpU+i+UJ5PS8K64DytKUHTxQl+UJFcuxNpsoy9BpWzw== +"@firebase/performance@0.4.13": + version "0.4.13" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.4.13.tgz#5bb07a36efbad3a5f3ee158d4a8403bce4f0101f" + integrity sha512-DY9UN15cqPm7mS5U+mnM9FEeyRaPiloPkmKCmyiVTcpLGgQTCz+FJSsLg1xblWAF7vQFDr2l/D8PyjdzSAAy7g== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.5.1" + "@firebase/installations" "0.4.27" "@firebase/logger" "0.2.6" "@firebase/performance-types" "0.0.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.1.0" + tslib "^2.1.0" "@firebase/polyfill@0.3.36": version "0.3.36" @@ -1395,18 +1420,6 @@ 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.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.30.tgz#2cd6bbbed526a98b154e13a2cc73e748a77d7c3d" - integrity sha512-LAfLDcp1AN0V/7AkxBuTKy+Qnq9fKYKxbA5clrXRNVzJbTVnF5eFGsaUOlkes0ESG6lbqKy5ZcDgdl73zBIhAA== - dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" - "@firebase/logger" "0.2.6" - "@firebase/remote-config-types" "0.1.9" - "@firebase/util" "0.3.4" - tslib "^1.11.1" - "@firebase/remote-config@0.1.36": version "0.1.36" resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.36.tgz#02a2f5799d22728ac30a28273cbd299c82fda33a" @@ -1419,6 +1432,18 @@ "@firebase/util" "1.0.0" tslib "^2.1.0" +"@firebase/remote-config@0.1.38": + version "0.1.38" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.38.tgz#71f3eb6bd0054165fe5a6055b8d9a5307bd4b234" + integrity sha512-fIwSbkq0J3F8t32x98WfIduKJGu7x+suslRFHxvl3Kx8Y7WBCOE3081yHtiTe7lGyM+WMqI0vFevILrKXp0l3g== + dependencies: + "@firebase/component" "0.5.1" + "@firebase/installations" "0.4.27" + "@firebase/logger" "0.2.6" + "@firebase/remote-config-types" "0.1.9" + "@firebase/util" "1.1.0" + tslib "^2.1.0" + "@firebase/rules-unit-testing@^1.2.10": version "1.2.10" resolved "https://registry.yarnpkg.com/@firebase/rules-unit-testing/-/rules-unit-testing-1.2.10.tgz#cee4f35ce55b6427655fef6cff629c6df4966222" @@ -1430,26 +1455,11 @@ firebase "8.4.2" request "2.88.2" -"@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-types@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.4.1.tgz#da6582ae217e3db485c90075dc71100ca5064cc6" integrity sha512-IM4cRzAnQ6QZoaxVZ5MatBzqXVcp47hOlE28jd9xXw1M9V7gfjhmW0PALGFQx58tPVmuUwIKyoEbHZjV4qRJwQ== -"@firebase/storage@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.4.2.tgz#bc5924b87bd2fdd4ab0de49851c0125ebc236b89" - integrity sha512-87CrvKrf8kijVekRBmUs8htsNz7N5X/pDhv3BvJBqw8K65GsUolpyjx0f4QJRkCRUYmh3MSkpa5P08lpVbC6nQ== - dependencies: - "@firebase/component" "0.1.21" - "@firebase/storage-types" "0.3.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" - "@firebase/storage@0.5.1": version "0.5.1" resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.5.1.tgz#a05be43e8ad9be2304bf5cd6d1a13e938db9f157" @@ -1460,6 +1470,16 @@ "@firebase/util" "1.0.0" tslib "^2.1.0" +"@firebase/storage@0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.5.3.tgz#414162dedf8f33013aaa7dbaa947a61fd19fb3e7" + integrity sha512-/mYa1RBfPX94rpT7KpQp2ITEyu3VE54QiJA5+yJRGtz+xHHisBbx9B5Cxee8p/bMWhUfXQJzpQMRis500mevHA== + dependencies: + "@firebase/component" "0.5.1" + "@firebase/storage-types" "0.4.1" + "@firebase/util" "1.1.0" + tslib "^2.1.0" + "@firebase/util@0.3.4": version "0.3.4" resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.3.4.tgz#e389d0e0e2aac88a5235b06ba9431db999d4892b" @@ -1474,11 +1494,23 @@ dependencies: tslib "^2.1.0" +"@firebase/util@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.1.0.tgz#add2d57d0b2307a932520abdee303b66be0ac8b0" + integrity sha512-lfuSASuPKNdfebuFR8rjFamMQUPH9iiZHcKS755Rkm/5gRT0qC7BMhCh3ZkHf7NVbplzIc/GhmX2jM+igDRCag== + dependencies: + tslib "^2.1.0" + "@firebase/webchannel-wrapper@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.4.1.tgz#600f2275ff54739ad5ac0102f1467b8963cd5f71" integrity sha512-0yPjzuzGMkW1GkrC8yWsiN7vt1OzkMIi9HgxRmKREZl2wnNPOKo/yScTjXf/O57HM8dltqxPF6jlNLFVtc2qdw== +"@firebase/webchannel-wrapper@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.5.0.tgz#7c9a250cd272ccb94b3069bb237b5c30c3ce70f6" + integrity sha512-5808ztHwCy0bE154pmYSR86+uKToDcoxvM7F+nMDJ2NktxujYZLsz10e7iMXrKtyePKNP5VCVgp7s0vsViSKDA== + "@google-cloud/common@^3.5.0": version "3.5.0" resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-3.5.0.tgz#0959e769e8075a06eb0823cc567eef00fd0c2d02" @@ -1583,6 +1615,13 @@ google-auth-library "^6.1.1" semver "^6.2.0" +"@grpc/grpc-js@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.2.tgz#eae97e6daf5abd49a7818aadeca0744dfb1ebca1" + integrity sha512-UXepkOKCATJrhHGsxt+CGfpZy9zUn1q9mop5kfcXq1fBkTePxVNPOdnISlCbJFlCtld+pSLGyZCzr9/zVprFKA== + dependencies: + "@types/node" ">=12.12.47" + "@grpc/grpc-js@~1.2.0": version "1.2.5" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.5.tgz#d1ef9ae8b99c3b46bb6cc8c82be1aa80080b7300" @@ -2062,9 +2101,9 @@ integrity sha512-4jUncNe2tj1nmrO/34PsRpZqYVnRV1svbU78cKhuQKkMntKB/AmdLyGgswcZKjFHEHGpiY8pVD8CuVI55nP54w== "@types/node@>=12.12.47": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.0.tgz#557dd0da4a6dca1407481df3bbacae0cd6f68042" - integrity sha512-YN1d+ae2MCb4U0mMa+Zlb5lWTdpFShbAj5nmte6lel27waMMBfivrm0prC16p/Di3DyTrmerrYUT8/145HXxVw== + version "15.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" + integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== "@types/node@^10.1.0": version "10.14.19" @@ -5075,25 +5114,26 @@ firebase-tools@^9.3.0: winston "^3.0.0" ws "^7.2.3" -firebase@8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-8.2.5.tgz#6d8ee2e243a0c20c53145fa80ae758af9c75b7dc" - integrity sha512-x9KUJR8PvqLUNzNKWHjAnO7rJVgK546G0F+vjlJTNl+J/8oFTdWh8X4PvYda0z0XM68A2Y9xPGf3blz5qHCn0A== +firebase@8: + version "8.6.5" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-8.6.5.tgz#bae2a852d917e166642cc8eb0c6aa132ae091d80" + integrity sha512-87oWWtpH6Mq927y9ZcUf9J/g59f/IU4R0x1TrQAQ2Qr8Voy4TqAoC09DqOa0rm8dVFbk6e+4cnw6KCEW83Y0EQ== dependencies: - "@firebase/analytics" "0.6.2" - "@firebase/app" "0.6.14" - "@firebase/app-types" "0.6.1" - "@firebase/auth" "0.16.2" - "@firebase/database" "0.9.1" - "@firebase/firestore" "2.1.4" - "@firebase/functions" "0.6.1" - "@firebase/installations" "0.4.19" - "@firebase/messaging" "0.7.3" - "@firebase/performance" "0.4.5" + "@firebase/analytics" "0.6.11" + "@firebase/app" "0.6.24" + "@firebase/app-check" "0.1.2" + "@firebase/app-types" "0.6.2" + "@firebase/auth" "0.16.6" + "@firebase/database" "0.10.3" + "@firebase/firestore" "2.3.4" + "@firebase/functions" "0.6.10" + "@firebase/installations" "0.4.27" + "@firebase/messaging" "0.7.11" + "@firebase/performance" "0.4.13" "@firebase/polyfill" "0.3.36" - "@firebase/remote-config" "0.1.30" - "@firebase/storage" "0.4.2" - "@firebase/util" "0.3.4" + "@firebase/remote-config" "0.1.38" + "@firebase/storage" "0.5.3" + "@firebase/util" "1.1.0" firebase@8.4.2: version "8.4.2" @@ -7074,6 +7114,13 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" +lazyfire@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/lazyfire/-/lazyfire-0.2.0.tgz#65bc8dae66c8c9d68f350ffbe79c00443ad975de" + integrity sha512-Y+Tlqj2xNBrkDIZp/n64csfb1kn16eC3tdyGuq0wphkeTnNO5zsBjz7j/mXN0xjnD2ohYbt0ssqGMleTGdpltg== + dependencies: + firebase "8" + lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"