diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd10acdc..28f0fdb00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ + +# [7.0.1](https://github.com/angular/angularfire2/compare/7.0.0...7.0.1) (2021-08-30) + +### Bug fixes + +* **messaging:** `onMessage` will no longer destablize the Angular Zone +* **core:** Injected Classes now have a better fallback pattern for finding defaults, [#2909](https://github.com/angular/angularfire/issues/2909) allowing use of emulators and other config options as expected +* **schematic:** upgrade schematic will no longer rewrite `.ts` files outside of your project root, [#2907](https://github.com/angular/angularfire/issues/2907) + # [7.0.0](https://github.com/angular/angularfire2/compare/6.1.5...7.0.0) (2021-08-25) @@ -7,8 +16,12 @@ * AngularFire now only works in Ivy applications * Firebase JS SDK v9 is required * The existing AngularFire v6 API surface has moved from `@angular/fire/*` to `@angular/fire/compat/*` (see compatibility mode) +* **compat/auth:** `USE_EMULATOR` DI token is now in the form of `['http://localhost:9099']` + +### Features + * New modular API surface available at `@angular/fire/*` -* Various cleanup +* **compat/storage:** `USE_EMULATOR` DI token [See the v7 upgrade guide for more information.](https://github.com/angular/angularfire/blob/master/docs/version-7-upgrade.md) diff --git a/docs/version-7-upgrade.md b/docs/version-7-upgrade.md index 560d3a6c8..779cd5d40 100644 --- a/docs/version-7-upgrade.md +++ b/docs/version-7-upgrade.md @@ -10,6 +10,7 @@ Intended to be run with Angular 12, AngularFire 7.0 allows you to take full advt * AngularFire now only works in Ivy applications * Firebase JS SDK v9 is required * The existing AngularFire v6 API surface has moved from `@angular/fire/*` to `@angular/fire/compat/*` (see compatibility mode) +* **compat/auth:** `USE_EMULATOR` DI token is now in the form of `['http://localhost:9099']` ## Compatibility mode @@ -216,7 +217,7 @@ collection(docRef, 'bar') // CollectionReference ```ts import { docSnapshots } from '@angular/fire/firestore'; -docSnapshot(docRef) // Observable> +docSnapshots(docRef) // Observable> ``` diff --git a/package.json b/package.json index 421fee6c7..9a9d74b30 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/fire", - "version": "7.0.0", + "version": "7.0.1", "description": "The official Angular library for Firebase.", "private": true, "scripts": { diff --git a/sample-compat/firebase.json b/sample-compat/firebase.json index 65ed0707c..52a0bbf49 100644 --- a/sample-compat/firebase.json +++ b/sample-compat/firebase.json @@ -52,6 +52,9 @@ "auth": { "port": 9099 }, + "storage": { + "port": 9199 + }, "ui": { "enabled": true } diff --git a/sample-compat/package.json b/sample-compat/package.json index 9ac3be1e4..8fb0cf757 100644 --- a/sample-compat/package.json +++ b/sample-compat/package.json @@ -33,10 +33,10 @@ "@nguniversal/express-engine": "12.1.0", "core-js": "^3.6.5", "cross-fetch": "^3.1.4", - "firebase": "9.0.0-202172505352", + "firebase": "^9.0.0", "first-input-delay": "^0.1.3", "proxy-polyfill": "^0.3.2", - "rxfire": "6.0.0-rc.1", + "rxfire": "^6.0.0", "rxjs": "~6.6.0", "tslib": "^2.1.0", "whatwg-fetch": "^3.4.1", diff --git a/sample-compat/src/app/app.module.ts b/sample-compat/src/app/app.module.ts index b283f466c..c3de9f881 100644 --- a/sample-compat/src/app/app.module.ts +++ b/sample-compat/src/app/app.module.ts @@ -21,7 +21,7 @@ import { import { FirestoreComponent } from './firestore/firestore.component'; import { AngularFireDatabaseModule, USE_EMULATOR as USE_DATABASE_EMULATOR } from '@angular/fire/compat/database'; import { AngularFirestoreModule, USE_EMULATOR as USE_FIRESTORE_EMULATOR, SETTINGS as FIRESTORE_SETTINGS } from '@angular/fire/compat/firestore'; -import { AngularFireStorageModule } from '@angular/fire/compat/storage'; +import { AngularFireStorageModule, USE_EMULATOR as USE_STORAGE_EMULATOR } from '@angular/fire/compat/storage'; import { AngularFireAuthModule, USE_DEVICE_LANGUAGE, USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/compat/auth'; import { AngularFireMessagingModule, SERVICE_WORKER, VAPID_KEY } from '@angular/fire/compat/messaging'; import { AngularFireFunctionsModule, USE_EMULATOR as USE_FUNCTIONS_EMULATOR, ORIGIN as FUNCTIONS_ORIGIN } from '@angular/fire/compat/functions'; @@ -78,19 +78,19 @@ import { UpboatsComponent } from './upboats/upboats.component'; { provide: FIRESTORE_SETTINGS, useValue: { ignoreUndefinedProperties: true } }, { provide: ANALYTICS_DEBUG_MODE, useValue: true }, { provide: COLLECTION_ENABLED, useValue: true }, - { provide: USE_AUTH_EMULATOR, useValue: environment.useEmulators ? ['localhost', 9099] : undefined }, + { provide: USE_AUTH_EMULATOR, useValue: environment.useEmulators ? ['http://localhost:9099'] : undefined }, { provide: USE_DATABASE_EMULATOR, useValue: environment.useEmulators ? ['localhost', 9000] : undefined }, { provide: USE_FIRESTORE_EMULATOR, useValue: environment.useEmulators ? ['localhost', 8080] : undefined }, { provide: USE_FUNCTIONS_EMULATOR, useValue: environment.useEmulators ? ['localhost', 5001] : undefined }, + { provide: USE_STORAGE_EMULATOR, useValue: environment.useEmulators ? ['localhost', 9199] : undefined }, { provide: FUNCTIONS_ORIGIN, useFactory: () => isDevMode() || typeof location === 'undefined' ? undefined : location.origin }, { provide: REMOTE_CONFIG_SETTINGS, useFactory: () => isDevMode() ? { minimumFetchIntervalMillis: 10_000 } : {} }, { provide: REMOTE_CONFIG_DEFAULTS, useValue: { background_color: 'red' } }, { provide: USE_DEVICE_LANGUAGE, useValue: true }, { provide: VAPID_KEY, useValue: environment.vapidKey }, - { provide: SERVICE_WORKER, useFactory: () => typeof navigator !== 'undefined' && navigator.serviceWorker?.getRegistration('firebase-messaging-sw.js') || undefined }, + { provide: SERVICE_WORKER, useFactory: () => typeof navigator !== 'undefined' && navigator.serviceWorker?.register('firebase-messaging-sw.js') || undefined }, { provide: APP_VERSION, useValue: '0.0.0' }, { provide: APP_NAME, useValue: 'Angular' }, - { provide: APP_INITIALIZER, useValue: () => typeof navigator !== 'undefined' && navigator.serviceWorker?.register('firebase-messaging-sw.js').catch(() => undefined) || Promise.resolve(), multi: true }, ], bootstrap: [AppComponent] }) diff --git a/sample-compat/yarn.lock b/sample-compat/yarn.lock index 79d961c52..b83a89406 100644 --- a/sample-compat/yarn.lock +++ b/sample-compat/yarn.lock @@ -1556,39 +1556,39 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@firebase/analytics-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.0-202172505352.tgz#9abfe93a32e8fa0d3f3e81a69bce0d34d1793fa6" - integrity sha512-pg1qdse5wuCfjqLpULikkuqt1m+bASXri75/v/hUlqmKwV7pmo/VXVT9hwUD+JJJrK2XUqIHcVWfOxAJTLXhdg== +"@firebase/analytics-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.0.tgz#48f0c3b5557541dd0f1a463ffd1d807454ae1b8e" + integrity sha512-oaf1FEF7cKci5tO7f52dH63/ZwkBqbdSLLpgo6kyoYoYDuY+on4yAc1CIHh3sNj/L8T4Ni81IQvVs9lE/9oOpg== dependencies: - "@firebase/analytics" "0.7.0-202172505352" - "@firebase/analytics-types" "0.7.0-202172505352" + "@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@0.7.0-202172505352": - version "0.7.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.7.0-202172505352.tgz#44a820ca7fd4e31e0cd3a0b28618eaa6b202ab82" - integrity sha512-oErOzc+4OjuZitnkNjLy1oadoW8BVdy0GmlRFv6/qvxUBfI4+mkGIbjzZPPv+NlxAdG9hXx1Jw2Ro4WZtjzqiQ== +"@firebase/analytics-types@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.7.0.tgz#91960e7c87ce8bf18cf8dd9e55ccbf5dc3989b5d" + integrity sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ== -"@firebase/analytics@0.7.0-202172505352": - version "0.7.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.0-202172505352.tgz#3cd74f1818ae75185de4bad356f2d0547d744270" - integrity sha512-ZMQ1c4O9VxTRxD+z+foun6fCgg615viaVg1DgtOsPHm0+MaJj6cz/bQxcDztFWwTmWDo7pDlvposHTp2ETOGIg== +"@firebase/analytics@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.0.tgz#7f4450936a2cac3227cc6439130c09b9a0a7d83e" + integrity sha512-YEPyeW6CV8xbIvWaJMvfRdWUPKe/xchJ1bjV6GpLfkYRX+ZE1/YSNU14pX292M4bZ6Qg+bbu2DuWp8fEpa/YQg== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-202172505352" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/app-check-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.1.0-202172505352.tgz#56812d509df9c0f079811fae5374d38dc57379e2" - integrity sha512-f4iZRwQ+jgap1cAcKciiVLxY1JAMrNg5KDNDHZExUsHjkFgRIXxBavT6LPEsaPBzaTfdQHFdFJ0hHGs/L0hyig== +"@firebase/app-check-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.1.0.tgz#5bf12e5cd82f76cac2eabe51345d1fed9664ed48" + integrity sha512-T1M2d1oroaHUa448fgx3BdfWg4WXP64yybIWxvmVBuh7YnyMuegJK1sS9zipKBKLkstcQK8vivXYh3+/AnbGFw== dependencies: - "@firebase/app-check" "0.4.0-202172505352" + "@firebase/app-check" "0.4.0" "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" @@ -1599,22 +1599,22 @@ 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@0.4.0-202172505352": - version "0.4.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.4.0-202172505352.tgz#833af2ed9941e320cffe1af4f8e3b15bd2665a0e" - integrity sha512-OfsLBErj+Qs+8CbLPRVwnulp1MT/dHGH962eNIhjRHqLJZUgKUG80/Hw+uFdAJSHjrXB/7lE4h5M5B6TM0imWA== +"@firebase/app-check@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.4.0.tgz#a048fc396b2a97ef8eba77fe909efbff07a5c75c" + integrity sha512-KQ/k8cukzZbH/LC9Iu5/Dbhr7w6byu8bYjfCA38B6v8aISgASYfP/nirxRD+hSuDoxXtAnPGEuv+v0YU3D1R2w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/app-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.0-202172505352.tgz#cee4d6165451ee0a63a42f23668cc255af7560fb" - integrity sha512-FxC2wIE00cZ9d7DCwL83wgsAUQdB7z44gXouw2iKttNF/af+qusHxlPgVTfquU2OYnYWuAykuSA+h7IzBg0Qlg== +"@firebase/app-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.0.tgz#101070141198304a50ec546b7626870c7759166b" + integrity sha512-jnAeFM1ihY5klqg2dvdA4EOk7co8ffSHUj/efqaSwTrMkKTcG/WZKF9WAuXdl+5jEu1BhsGGHveWzGliTFH5Hg== dependencies: - "@firebase/app" "0.7.0-202172505352" + "@firebase/app" "0.7.0" "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" @@ -1625,28 +1625,28 @@ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.1.tgz#dcbd23030a71c0c74fc95d4a3f75ba81653850e9" integrity sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg== -"@firebase/app-types@0.7.0-202172505352": - version "0.7.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0-202172505352.tgz#89a38976ff40adbcbe1592dc4dce847a5b4783fe" - integrity sha512-LS3fmSEVzlF5JojLKJj+4ggr/ZO7JfhhQ0d/OtX1i6BQpVxis50tAHj5PLGVCe/+WD2gL4GtdZHegmQVzXO3Eg== +"@firebase/app-types@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f" + integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== -"@firebase/app@0.7.0-202172505352": - version "0.7.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.0-202172505352.tgz#d55bc40326c27d54477c099325403225d2ac0751" - integrity sha512-usjNG+rdSINRr0WFq1O2PQ1trYw5cH4CMN7k+Fg9Wh7oMlgkYRTL23lZF7yxliQtrNZDYmn20Y1jCU4Uf6EjGA== +"@firebase/app@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.0.tgz#989e9f354951de2a8ac806f6e3fa0afd9f80b470" + integrity sha512-l4Pd69re6JyjumQrl719dnY5JSKROSYda/0N2wzOhSzqg8DsZOIErr8+xj6QAE6BtNsoIEk7ma9WMS/2r02MhA== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/auth-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.1.0-202172505352.tgz#4c345f776c2188b951a2c38d23f6441849a89b71" - integrity sha512-L9ROg16WwXNVI5MCUjqlgMY0AemzxnnxtxDSu3BLTQeobaaLaega8uz6A+in4TIcwHgkhiRgDrYgZLrj68EqnQ== +"@firebase/auth-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.1.0.tgz#e5dc6bb6ac89ea21f85c4153eb1cf8a7d69deaa8" + integrity sha512-OfAt3c5ham07xvmYyJp02v8mUa+HaSEwilvgD2M1JaWqLAtqH66bdBhLBE9N0pq8xtRdXZIF1vSd20a0ulQfQg== dependencies: - "@firebase/auth" "0.17.0-202172505352" - "@firebase/auth-types" "0.11.0-202172505352" + "@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" @@ -1663,15 +1663,15 @@ 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.11.0-202172505352": - version "0.11.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0-202172505352.tgz#ecaf3cbb7d3bc6f83302d7b38841f55eb583288b" - integrity sha512-RXzuA5sCT9V8AfbLMtqRIYE+55T2sNk6HzAmGoCirwp2U5NrEmVhOqUv/GFs//RWtPogUb6nHxQ6w7OgC9AJUQ== +"@firebase/auth-types@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0.tgz#b9c73c60ca07945b3bbd7a097633e5f78fa9e886" + integrity sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw== -"@firebase/auth@0.17.0-202172505352": - version "0.17.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.17.0-202172505352.tgz#d81104663445011b45f1ccb6cc3d1fd40630a760" - integrity sha512-Z2NFOX/BElBVAOTEkPsVMQ2UqJRCvavjEQBC/qh8ZSEKpI1oH6mfd5MwmtZQ5Vf/UMsViSodhUHpRdkNRVIttw== +"@firebase/auth@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.17.0.tgz#e1395779293e1869fabefd07e078242c773b5fcb" + integrity sha512-4zOGTLGzMjBX96KEyBNYpjOD87c2efCZvUjaJ53QslleW9Xp8kSsSHLRhr8hOkcRXO17CmBKSRx/LnG2vTZWQQ== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" @@ -1696,14 +1696,14 @@ "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/database-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.0-202172505352.tgz#55be6f6247539f2242102329e47e0a97317e2530" - integrity sha512-AE7oHwDQvz25MT559rJcFcZv+phohmip6VEma4mUWiQW/HrMN/KHKKcZgXulnc5qjtAjCzMFojcSQbTO4mfyDA== +"@firebase/database-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.0.tgz#f02abaa9f493fd14aaae6e2b34262bafc5d033c7" + integrity sha512-jLN0JMYnYijg8f3QFtSuPGNuKAt3yYVRsHHlR8sADgx8MptByRRwVmMOk7QPc/DY7qscZIJow3hXFwvbeApFLA== dependencies: "@firebase/component" "0.5.6" - "@firebase/database" "0.12.0-202172505352" - "@firebase/database-types" "0.9.0-202172505352" + "@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" @@ -1715,18 +1715,18 @@ dependencies: "@firebase/app-types" "0.6.1" -"@firebase/database-types@0.9.0-202172505352": - version "0.9.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.0-202172505352.tgz#fd1d25db9958772e054630a989cfb80b27605223" - integrity sha512-eqKd313kGs8JFRQMQcMAQd1Qu1LFRC0ZpaPi7xna190OLhcl26scMYYC4H4A2hjakc76GUprtbtGNAz8UaN0zA== +"@firebase/database-types@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.0.tgz#dad3db745531f40b60f7726a76b2bf6bbf6c6471" + integrity sha512-x2TeTVnMZGPvT3y4Nayio4WprQA/zGwqMrPMQwSdF+PFnaFJAhA/eLgUB6cmWFzFYO9VvmuRkFzDzo6ezTo1Zw== dependencies: - "@firebase/app-types" "0.7.0-202172505352" + "@firebase/app-types" "0.7.0" "@firebase/util" "1.3.0" -"@firebase/database@0.12.0-202172505352": - version "0.12.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.0-202172505352.tgz#f5ae703db394cd943f382640399e553fef5b4705" - integrity sha512-1xKS/4WAAG+s0/V68pBnZhR/0Yq6pwayMYJqQZDZ5HmVQH9q9Di2ptOTMzmIv0F6PUzogK9KRpMWDfAPBEebwA== +"@firebase/database@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.0.tgz#2aa33138128cfcaf74388efe13e0eda10825d564" + integrity sha512-/gl6z6fAxAAFAdDllzidzweGpuXJu0b9AusSLrdW4LpP6KCuxJbhonMJuSGpHLzAHzx6Q9uitbvqHqBb17sttQ== dependencies: "@firebase/auth-interop-types" "0.1.6" "@firebase/component" "0.5.6" @@ -1748,26 +1748,26 @@ faye-websocket "0.11.3" tslib "^1.11.1" -"@firebase/firestore-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.0-202172505352.tgz#7b01b9f5c1884fbc67efa41dcb45b2e983bdf4ac" - integrity sha512-AE2fF512jyfYD+dl+zhK89YKbWjZBfAJIZWITZide+qTaXidUi6DKKnG41S4EFEM9SrV9hyKqxCxQ24y8tJ/zg== +"@firebase/firestore-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.0.tgz#9faa1c10a76d67f812dd48469693e8f6bafca3ab" + integrity sha512-25r1jGpnnx7vXSPVLmHNkuz+EGpZDU5Luro5/MFCMmoV4a+Rmg2n9FRlxRyPn4XOCkc5nrBpT6ESAKAPSNHcpw== dependencies: "@firebase/component" "0.5.6" - "@firebase/firestore" "3.0.0-202172505352" - "@firebase/firestore-types" "2.5.0-202172505352" + "@firebase/firestore" "3.0.0" + "@firebase/firestore-types" "2.5.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/firestore-types@2.5.0-202172505352": - version "2.5.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.0-202172505352.tgz#8613037a7f3bbc38ba25aa1e74152f5210f08907" - integrity sha512-RTEKuVB5xf2UCd9R7znlwSWZx+ekF3DhKhI3zRDz8vA69zSU50C8Lx3IvjMFrlCB0L8i28PzSb63dqmu9YWwzg== +"@firebase/firestore-types@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.0.tgz#16fca40b6980fdb000de86042d7a96635f2bcdd7" + integrity sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA== -"@firebase/firestore@3.0.0-202172505352": - version "3.0.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.0.0-202172505352.tgz#8c7d6a10c31025886d840a3fc6359d4eb12df717" - integrity sha512-6vnGSZhPvCZYCY07eijotNkXzH9VwsDG0sAW7LLKSZVZKafwtC14nsFNIA1HHkn5Kk3+yBSbZrUx2SiOat9rWQ== +"@firebase/firestore@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.0.0.tgz#f7b8cc3d8d28b85a901fd66df13f4d61dcc33190" + integrity sha512-rbs5EbU/01f7NKHDtedBowpBlqnkVnQlpIuSX5wwGMiPgH8f9pMhh59JMk0cTaSqsJXsq3KvafWAD9SqWIqe2w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" @@ -1778,39 +1778,39 @@ node-fetch "2.6.1" tslib "^2.1.0" -"@firebase/functions-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.0-202172505352.tgz#1971999fb6de2a6599b27c0922b4329dfdd39fbe" - integrity sha512-xqp9aL6+W+a20oapVDZkAAPOMLua6Nd+zpDdVo+xV+K+mukuwWM+q3nVACymtCIlm5m5RrQ/dFmjScbf/EeUCA== +"@firebase/functions-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.0.tgz#53e2b3b9590b04628e9537806196d91deb3e6f3f" + integrity sha512-uNwHdGYqgIXzF7aTZBeUe00K/sadRg5EeSDuJ6VNo3Gh3ZceX4eRnL5p7l2bEJBh8hBl0brb82+TRYjGHtjtFQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/functions" "0.7.0-202172505352" - "@firebase/functions-types" "0.5.0-202172505352" + "@firebase/functions" "0.7.0" + "@firebase/functions-types" "0.5.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/functions-types@0.5.0-202172505352": - version "0.5.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.5.0-202172505352.tgz#6f4fb79163461f03946c9f1a4add6e377a6f47b5" - integrity sha512-J9u8T0mTYVfzUd9C/hXmBHGVIqGko4gs0P8izc/Kuw91hFCNOI4DCKENaWfuPupgCLazWYdCMcQBHYh+hqmQLQ== +"@firebase/functions-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.5.0.tgz#b50ba95ccce9e96f7cda453228ffe1684645625b" + integrity sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA== -"@firebase/functions@0.7.0-202172505352": - version "0.7.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.0-202172505352.tgz#626d369fd8cdb8aaf7b66d8d94d1ab0222c831b4" - integrity sha512-ETmotF/NX3dwKwOU3srwnsBgre/4yJ5SKMcwSeHhO//CoxzhwPu3p0x4XmCAKEjrx53zWfvM4i61yH5IAUulsA== +"@firebase/functions@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.0.tgz#d052d01aa6871f5cd518748963792bae94b2081d" + 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/messaging-interop-types" "0.1.0-202172505352" + "@firebase/messaging-interop-types" "0.1.0" "@firebase/util" "1.3.0" node-fetch "2.6.1" tslib "^2.1.0" -"@firebase/installations@0.5.0-202172505352": - version "0.5.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.0-202172505352.tgz#bcc9dd3ecf77d58dd2b4b2d5505d54f5acae1eee" - integrity sha512-JeFnanHoKbxdOCs0SA7TVaClbmaDcTH6G7jS8AjDuA7KxxtUPY8QF0dEowLrhVrmMggMFp2SZv/4bD7HygzAgw== +"@firebase/installations@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.0.tgz#4a21e1c7467795802b031af413df2555b17cf1b1" + integrity sha512-wF1CKIx+SoiEbtNdutulxW4z80B5lGXW+8JdAtcKQwgKxF0VtlCaDFsd9AEB3aTtzIve5UkGak8hQOMvvOpydg== dependencies: "@firebase/component" "0.5.6" "@firebase/util" "1.3.0" @@ -1822,57 +1822,57 @@ resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== -"@firebase/messaging-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.0-202172505352.tgz#204f4610e935a999763d76a7356477fb2d8af881" - integrity sha512-aKWX8NyGoPih+wOHUcC5rxhtrOobpS6CYiWDwz8MDcn/DJYaTUFT39S++8nykOGANU+Ky/brl+pHqJxRw0WK9g== +"@firebase/messaging-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.0.tgz#ab164540f6ba954c8d150b2e96dc6bf8c1536eb4" + integrity sha512-58qQmKwOiXhxZwrRwwjQDbjlRx1uMVVuV/DNbDzqilDJDdoYXMdK6RBTF9Bs51qy/Z1BI2Q9B1JX01QYlgZpxQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/messaging" "0.9.0-202172505352" + "@firebase/messaging" "0.9.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/messaging-interop-types@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0-202172505352.tgz#fcb2df6e23cf6c36ffaf9ed8e6b4fddec7b9a855" - integrity sha512-yU7IPWkuJVwfMq4Oa5Jaazp/uXjKJT2h/REn56dU9QDtPZ6lKpKejl+Vp3YiBHXbiq1L8Ldb3l7T/5JsPokWGg== +"@firebase/messaging-interop-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz#bdac02dd31edd5cb9eec37b1db698ea5e2c1a631" + integrity sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ== -"@firebase/messaging@0.9.0-202172505352": - version "0.9.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.0-202172505352.tgz#91cbbe5065f9d09f35408270d69b7f6ad6a3be23" - integrity sha512-AtSLkfNA8HBBBmLYo8G6+hA06kRrm9cdfG4FOklfxV4i0urH1B8YpWCvVEV8YC6oiNGd0RimzoK3Ih5zMLxvMQ== +"@firebase/messaging@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.0.tgz#a868bea75d0c26210903178cf22d31c47bc84584" + integrity sha512-NTUB+gVJsgL/f6wqwUlgadaNuLZvyk1IlTcRvR3391t8jDSWOT2efwzNqcI7Xv4nhzaiPhzAQ4ncH/m8kfUUXQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-202172505352" - "@firebase/messaging-interop-types" "0.1.0-202172505352" + "@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/performance-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.0-202172505352.tgz#326c84309aa71cb163739dea3b74be9e027cd8f1" - integrity sha512-WwnLCnBOknsuJ+cM7H4KfKOdTwqZ16R0tb4zmLIbfCbcu7tP5qKD4wUurDd4VW0o4QnT1J/OkkX7e75YeY4jJQ== +"@firebase/performance-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.0.tgz#c1edeccd9b60d83de26d8e645e0d2ddd64e9a2d7" + integrity sha512-H+/A5+y/15hFn5FHRP8lcogDzO6qm9YoACNEXn71UN4PiGQ+/BbHkQafDEXxD6wLfqfqR8u8oclHPFIYxMBF7Q== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" - "@firebase/performance" "0.5.0-202172505352" - "@firebase/performance-types" "0.1.0-202172505352" + "@firebase/performance" "0.5.0" + "@firebase/performance-types" "0.1.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/performance-types@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.1.0-202172505352.tgz#bcf3e2fb22701eda7585bb61033b134c8d04a02b" - integrity sha512-36E4ZFZj9D5KHLQlXzkImm+KYqNykEt0MXGMC11qmAzqIilv/6oJL+SzkQnRREjpqMMSzZav3nO62uozK/3/4w== +"@firebase/performance-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.1.0.tgz#5e6efa9dc81860aee2cb7121b39ae8fa137e69fc" + integrity sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w== -"@firebase/performance@0.5.0-202172505352": - version "0.5.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.0-202172505352.tgz#81c6062c49e9ad15938aa20017ac962acf7d3737" - integrity sha512-AoL2tz/BE++sbjP8eACHQ9EXrh0us9cpiFRir7R/CsouS37DJM64Cwt62iIQs3Y+ugBa8iXE2KiuBn4bcSi3Tw== +"@firebase/performance@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.0.tgz#cc237e65791c75dba856ace8971b94d7adcbc60b" + integrity sha512-E+L18eJKshr/ijnWZMexEEddwkp2T4Ye2dJSK4TcOKRYfrmfZJ95RRZ+MPNp1ES7RH2JYiyym1NIQKPcNNvhug== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-202172505352" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" @@ -1886,54 +1886,54 @@ promise-polyfill "8.1.3" whatwg-fetch "2.0.4" -"@firebase/remote-config-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.0-202172505352.tgz#0e2a889ef4f8a9cf871247e2a7986872d6fb9d87" - integrity sha512-cZD49mTh7SauCdFzp3FJZNGAQc3O35FN7e98H/16u2Fn9H3+fN5Qqv+dS+Mym7gJRhlEmTgjhEEctx8+Mz091Q== +"@firebase/remote-config-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.0.tgz#8eb2582d1909dd4d5023383e43d73ad605d56daa" + integrity sha512-PpCh5f5hUUaDCmiJsuu/u9a0g0G5WH3YSbfH1jPejVOaJ1lS82615E7WOzco4zMllLYfX62VaUYD2vvcLyXE/w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" - "@firebase/remote-config" "0.2.0-202172505352" - "@firebase/remote-config-types" "0.2.0-202172505352" + "@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@0.2.0-202172505352": - version "0.2.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.2.0-202172505352.tgz#8727bb35af32b1e0932bb31f585a02166d1845ed" - integrity sha512-0LLWCdJpLqe5b/A4H38dhAXhHIMqG9vQTpu1Wn0KNQRgtwnoR1bph+oHUhFSz3cKvDfnfF/KjIzKecQ/UYEqtg== +"@firebase/remote-config-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz#1e2759fc01f20b58c564db42196f075844c3d1fd" + integrity sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw== -"@firebase/remote-config@0.2.0-202172505352": - version "0.2.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.2.0-202172505352.tgz#42584f01b83b69c458472e3e038eba2234806c3a" - integrity sha512-66cYXxhdEFVAxZEajxdiYm+anoqQm7bYSxeo87Nrm9qig+8H9EvXxg+u+eSw/bWM7M9qUSicBEtybqVn8389RQ== +"@firebase/remote-config@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.2.0.tgz#aa2bd7b34e0e40a259c3f0409a5084864f234f0f" + integrity sha512-hNZ+BqsTmfe8ogpeow95NSwQmKIeetKdPxKpyC6RZBeFUae782+2HrUx4/Quep6OZjOHQF6xZ5d3VOxu2ZKEfg== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-202172505352" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/storage-compat@0.1.0-202172505352": - version "0.1.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.0-202172505352.tgz#77cd78037ac161d6435cb7a6826ed5b6ac327351" - integrity sha512-zFHK8ATYrvNGDG39X8h6EC6blStA2pjT0MlcmwyEhrabGCiv7xKjKiLFzWLOGNlyAd8K3PIKtTdFrBg8UddBdw== +"@firebase/storage-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.0.tgz#b8080e3250b19ad6d98a5ade65f1a03aab73f2b8" + integrity sha512-DJstR2vidnyNSRp14LQhd9QO0PxhMm/xsXrPQ2IEmQ7EWDT4rxGd+pkqXTG6IO+k9ZKMc0BnWIYwlMqkGEJoDg== dependencies: "@firebase/component" "0.5.6" - "@firebase/storage" "0.8.0-202172505352" - "@firebase/storage-types" "0.6.0-202172505352" + "@firebase/storage" "0.8.0" + "@firebase/storage-types" "0.6.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/storage-types@0.6.0-202172505352": - version "0.6.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.6.0-202172505352.tgz#a33b0a424994a6d602adc9a795d81b0f3be7cb17" - integrity sha512-w+VWusiMDKrHr/pi2RdkfOlub45rEgqsIQEjaIJtdASW3uQA/cbvGqWSPBu3+qX9JPTq/HLwzsXegeHRTtYrkw== +"@firebase/storage-types@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.6.0.tgz#0b1af64a2965af46fca138e5b70700e9b7e6312a" + integrity sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA== -"@firebase/storage@0.8.0-202172505352": - version "0.8.0-202172505352" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.8.0-202172505352.tgz#f0471f0e888dbc540fe50672a12e30e338cc534f" - integrity sha512-KckhtUzW+tbosdXxhA6hnzvKL9WE7sq6RXtH2JuUw/YkHi6j+4TQgMLaOMhMlDt+K2FcxmCewsKko7DChwLjlA== +"@firebase/storage@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.8.0.tgz#2766a18a8a9684082d745ab1a93a3c88061169b1" + integrity sha512-D0HH+y3DLH0+8eOt6h19RffFMpdzPNr7Yv7XpeeM3+VLE4TbQnDie/OAQWOuWLrYoW7MsPQnLkx+zDb3DxOXxw== dependencies: "@firebase/component" "0.5.6" "@firebase/util" "1.3.0" @@ -6002,36 +6002,36 @@ firebase-tools@^8.16.1: winston "^3.0.0" ws "^7.2.3" -firebase@9.0.0-202172505352: - version "9.0.0-202172505352" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0-202172505352.tgz#fab27e53b58e5d0f43f381c4c903ca84aa2287ff" - integrity sha512-0U1A4FeqSJhtPXLnXZXpWeSqSGa3XbVYpoufTu5xH7mTDvv4kOVoSXx+Dk7ezVuShsZ/2nH32G8DrFZhDlcHZw== - dependencies: - "@firebase/analytics" "0.7.0-202172505352" - "@firebase/analytics-compat" "0.1.0-202172505352" - "@firebase/app" "0.7.0-202172505352" - "@firebase/app-check" "0.4.0-202172505352" - "@firebase/app-check-compat" "0.1.0-202172505352" - "@firebase/app-compat" "0.1.0-202172505352" - "@firebase/app-types" "0.7.0-202172505352" - "@firebase/auth" "0.17.0-202172505352" - "@firebase/auth-compat" "0.1.0-202172505352" - "@firebase/database" "0.12.0-202172505352" - "@firebase/database-compat" "0.1.0-202172505352" - "@firebase/firestore" "3.0.0-202172505352" - "@firebase/firestore-compat" "0.1.0-202172505352" - "@firebase/functions" "0.7.0-202172505352" - "@firebase/functions-compat" "0.1.0-202172505352" - "@firebase/installations" "0.5.0-202172505352" - "@firebase/messaging" "0.9.0-202172505352" - "@firebase/messaging-compat" "0.1.0-202172505352" - "@firebase/performance" "0.5.0-202172505352" - "@firebase/performance-compat" "0.1.0-202172505352" +firebase@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0.tgz#00bfa03a3eb99bde43a472a8861aa808068153bb" + integrity sha512-atgnuvELhU9D5w9moChnyCb6GRbOCqk54/kHN0J4kdLJBncpcb2culIJ7nlSHILMcW9MNMiNKDJ07RwXVyqFFA== + dependencies: + "@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.2.0-202172505352" - "@firebase/remote-config-compat" "0.1.0-202172505352" - "@firebase/storage" "0.8.0-202172505352" - "@firebase/storage-compat" "0.1.0-202172505352" + "@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" first-input-delay@^0.1.3: @@ -10945,10 +10945,10 @@ rx@4.1.0: resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -rxfire@6.0.0-rc.1: - version "6.0.0-rc.1" - resolved "https://registry.yarnpkg.com/rxfire/-/rxfire-6.0.0-rc.1.tgz#a3c95cdcecf5bd26823377d9836ecb5005156ea1" - integrity sha512-2wGzy/iMkYcBnTCwk1JNnX0tL0h/MXh9dki1bR+/rsxzr4S6T6uhLYAknp7lsPvbxSpvpis4io3k1yWXnUMjsQ== +rxfire@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rxfire/-/rxfire-6.0.0.tgz#298d6bba7963d2338a51bac6930c88192e345a42" + integrity sha512-COpH7vtMrxc+iKqUS1A6CEZMJwIpMM/3H1jnKjYAhzhHQG1YaJYH4Q8EcMMNd0ZX7l8ag6hW1ppoB7j9ctJyfA== dependencies: tslib "^1.9.0 || ~2.1.0" diff --git a/sample/package.json b/sample/package.json index 6c034d9a4..56f9bb318 100644 --- a/sample/package.json +++ b/sample/package.json @@ -28,12 +28,12 @@ "@angular/platform-server": "^12.0.0", "@angular/router": "^12.0.0", "@angular/service-worker": "^12.0.0", - "@nguniversal/express-engine": "12.1.0", + "@nguniversal/express-engine": "^12.1.0", "cross-fetch": "^3.1.4", "express": "^4.15.2", - "firebase": "9.0.0-2021724205917", + "firebase": "^9.0.0", "lodash.isequal": "^4.5.0", - "rxfire": "6.0.0-rc.1", + "rxfire": "^6.0.0", "rxjs": "~6.6.0", "tslib": "^2.1.0", "ws": "^8.2.0", @@ -49,12 +49,13 @@ "@types/express": "^4.17.0", "@types/jasmine": "~3.6.0", "@types/node": "^12.11.1", - "firebase-tools": "^8.0.0", + "firebase-tools": "^9.0.0", "fuzzy": "^0.1.3", "inquirer": "^6.2.2", "inquirer-autocomplete-prompt": "^1.0.1", "jasmine-core": "~3.7.0", "jasmine-spec-reporter": "~7.0.0", + "jsonc-parser": "^3.0.0", "karma": "~6.3.0", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", @@ -70,4 +71,4 @@ "resolutions": { "webpack": "^5.35.0" } -} +} \ No newline at end of file diff --git a/sample/src/app/app.browser.module.ts b/sample/src/app/app.browser.module.ts index d1029e9bc..85b54b1fe 100644 --- a/sample/src/app/app.browser.module.ts +++ b/sample/src/app/app.browser.module.ts @@ -3,7 +3,6 @@ import { getRemoteConfig, provideRemoteConfig } from '@angular/fire/remote-confi import { getAnalytics, provideAnalytics } from '@angular/fire/analytics'; import { getMessaging, provideMessaging } from '@angular/fire/messaging'; import { getPerformance, providePerformance } from '@angular/fire/performance'; -import { getFunctions, provideFunctions } from '@angular/fire/functions'; import { AppModule } from './app.module'; import { AppComponent } from './app.component'; @@ -17,7 +16,6 @@ import { environment } from '../environments/environment'; provideAnalytics(() => getAnalytics()), provideMessaging(() => getMessaging()), providePerformance(() => getPerformance()), - provideFunctions(() => getFunctions()), ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production, registrationStrategy: 'registerWhenStable:30000' diff --git a/sample/src/app/app.component.ts b/sample/src/app/app.component.ts index 0e475c974..40402c8ce 100644 --- a/sample/src/app/app.component.ts +++ b/sample/src/app/app.component.ts @@ -1,18 +1,10 @@ import { ApplicationRef, Component, Optional } from '@angular/core'; -import { FirebaseApp, FirebaseApps } from '@angular/fire/app'; -import { Auth, AuthInstances, authState } from '@angular/fire/auth'; -import { Firestore as FirestoreLite, FirestoreInstances as FirestoreLiteInstances } from '@angular/fire/firestore/lite'; -import { Firestore, FirestoreInstances, getDoc, doc, DocumentSnapshot } from '@angular/fire/firestore'; +import { Auth, authState } from '@angular/fire/auth'; +import { Firestore, getDoc, doc, DocumentSnapshot } from '@angular/fire/firestore'; import { DocumentData } from 'rxfire/firestore/lite/interfaces'; import { distinctUntilChanged } from 'rxjs/operators'; -import { Storage, StorageInstances } from '@angular/fire/storage'; -import { Messaging, MessagingInstances, onMessage } from '@angular/fire/messaging'; -import { RemoteConfig, RemoteConfigInstances } from '@angular/fire/remote-config'; -import { Functions, FunctionsInstances } from '@angular/fire/functions'; -import { Database, DatabaseInstances } from '@angular/fire/database'; -import { Analytics, AnalyticsInstances } from '@angular/fire/analytics'; -import { Performance, PerformanceInstances } from '@angular/fire/performance'; -import { getToken } from 'firebase/messaging'; +import { Messaging, onMessage } from '@angular/fire/messaging'; +import { getToken } from '@angular/fire/messaging'; import { environment } from '../environments/environment'; @@ -28,46 +20,22 @@ export class AppComponent { myDocData: Promise>; title = 'sample'; constructor( - app: FirebaseApp, // default Firebase App - auth: Auth, // default Firbase Auth - apps: FirebaseApps, // all initialized App instances - authInstances: AuthInstances, // all initialized Auth instances - @Optional() firestoreLite: FirestoreLite, - @Optional() firestoreLiteInstances: FirestoreLiteInstances, - @Optional() firestore: Firestore, - @Optional() firestoreInstances: FirestoreInstances, - storage: Storage, - storageInstances: StorageInstances, - @Optional() messaging: Messaging, - @Optional() messagingInstances: MessagingInstances, - @Optional() remoteConfig: RemoteConfig, - @Optional() remoteConfigInstances: RemoteConfigInstances, - @Optional() functions: Functions, - @Optional() functionsInstances: FunctionsInstances, - database: Database, - databaseInstances: DatabaseInstances, - @Optional() analytics: Analytics, - @Optional() analyticsInstances: AnalyticsInstances, - @Optional() performance: Performance, - @Optional() performanceInstances: PerformanceInstances, appRef: ApplicationRef, + auth: Auth, + firestore: Firestore, + @Optional() messaging: Messaging, ) { - console.log({ - app, auth, apps, authInstances, firestore, firestoreInstances, - firestoreLite, firestoreLiteInstances, storage, storageInstances, - messaging, messagingInstances, performance, performanceInstances, - analytics, analyticsInstances, functions, functionsInstances, database, - databaseInstances, remoteConfig, remoteConfigInstances - }); authState(auth).subscribe(it => console.log('authState', it)); appRef.isStable.pipe(distinctUntilChanged()).subscribe(it => console.log('isStable', it)); this.myDocData = getDoc(doc(firestore, 'animals/NJdGQCv1P92SWsp4nSE7')); - navigator.serviceWorker.register('firebase-messaging-sw.js', { type: 'module' }).then(serviceWorkerRegistration => { - getToken(messaging, { - serviceWorkerRegistration, - vapidKey: environment.vapidKey, - }).then(it => console.log(it)); - }); - onMessage(messaging, it => console.log('onMessage', it)); + if (messaging) { + navigator.serviceWorker.register('firebase-messaging-sw.js', { type: 'module' }).then(serviceWorkerRegistration => { + getToken(messaging, { + serviceWorkerRegistration, + vapidKey: environment.vapidKey, + }).then(it => console.log(it)); + }); + onMessage(messaging, it => console.log('onMessage', it)); + } } } diff --git a/sample/src/app/app.module.ts b/sample/src/app/app.module.ts index 6ae9461e9..138710653 100644 --- a/sample/src/app/app.module.ts +++ b/sample/src/app/app.module.ts @@ -1,15 +1,18 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app'; -import { provideAuth, initializeAuth } from '@angular/fire/auth'; -import { getStorage, provideStorage } from '@angular/fire/storage'; -import { getDatabase, provideDatabase } from '@angular/fire/database'; -import { getFirestore, provideFirestore } from '@angular/fire/firestore'; +import { provideFirebaseApp, initializeApp, getApp } from '@angular/fire/app'; +import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth'; +import { getStorage, provideStorage, connectStorageEmulator } from '@angular/fire/storage'; +import { getDatabase, provideDatabase, connectDatabaseEmulator } from '@angular/fire/database'; +import { getFirestore, provideFirestore, connectFirestoreEmulator } from '@angular/fire/firestore'; +import { getFunctions, provideFunctions, connectFunctionsEmulator } from '@angular/fire/functions'; +import { FunctionsModule } from '@angular/fire/functions'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { environment } from '../environments/environment'; + @NgModule({ declarations: [ AppComponent, @@ -17,6 +20,7 @@ import { environment } from '../environments/environment'; imports: [ BrowserModule.withServerTransition({ appId: 'serverApp' }), AppRoutingModule, + FunctionsModule, provideFirebaseApp(() => { const app = initializeApp(environment.firebase); return app; @@ -26,10 +30,50 @@ import { environment } from '../environments/environment'; app.automaticDataCollectionEnabled = false; return app; }), - provideAuth(() => initializeAuth(getApp())), - provideDatabase(() => getDatabase()), - provideStorage(() => getStorage()), - provideFirestore(() => getFirestore()), + provideAuth(() => { + const auth = getAuth(); + if (environment.useEmulators) { + connectAuthEmulator(auth, 'http://localhost:9099', { disableWarnings: true }); + } + return auth; + }), + provideDatabase(() => { + const database = getDatabase(); + if (environment.useEmulators) { + connectDatabaseEmulator(database, 'localhost', 9000); + } + return database; + }), + provideStorage(() => { + // While I've provided two instances this should be the default, since it + // uses the default app + const storage = getStorage(getApp(), 'another-bucket'); + if (environment.useEmulators) { + connectStorageEmulator(storage, 'localhost', 9199); + } + return storage; + }), + provideStorage(() => { + const storage = getStorage(getApp('second')); + if (environment.useEmulators) { + connectStorageEmulator(storage, 'localhost', 9199); + } + return storage; + }), + provideFirestore(() => { + const firestore = getFirestore(); + if (environment.useEmulators) { + connectFirestoreEmulator(firestore, 'localhost', 8080); + } + return firestore; + }), + provideFunctions(() => { + const functions = getFunctions(); + if (environment.useEmulators) { + connectFunctionsEmulator(functions, 'localhost', 5001); + } + return functions; + }), ], providers: [ ], bootstrap: [ ], diff --git a/sample/yarn.lock b/sample/yarn.lock index d22f02bd8..db17923f6 100644 --- a/sample/yarn.lock +++ b/sample/yarn.lock @@ -1396,39 +1396,39 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@firebase/analytics-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.0-2021724205917.tgz#aa4e2a60aa9972eefceb1743c5d92549961d09fd" - integrity sha512-5p3jWcGMqWq3ascN/JKOmgbdZqaq3Wz2q0Ra6woXPGnLEVDhLIwvlNkzumOvHYnCIy/0yrubzilzJRQqPqSrhg== +"@firebase/analytics-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.0.tgz#48f0c3b5557541dd0f1a463ffd1d807454ae1b8e" + integrity sha512-oaf1FEF7cKci5tO7f52dH63/ZwkBqbdSLLpgo6kyoYoYDuY+on4yAc1CIHh3sNj/L8T4Ni81IQvVs9lE/9oOpg== dependencies: - "@firebase/analytics" "0.7.0-2021724205917" - "@firebase/analytics-types" "0.7.0-2021724205917" + "@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@0.7.0-2021724205917": - version "0.7.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.7.0-2021724205917.tgz#9a058692c8c0935d2f9cd73d93324d7bfa3bb069" - integrity sha512-DM8OxcWLU/6gd5obxisbXfNS7b8smDFC4vqCXS8cH8tr8KvE8zsKtUqaq5gkMwf7sNC2RSbm+M5XIUqKtNdXhg== +"@firebase/analytics-types@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.7.0.tgz#91960e7c87ce8bf18cf8dd9e55ccbf5dc3989b5d" + integrity sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ== -"@firebase/analytics@0.7.0-2021724205917": - version "0.7.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.0-2021724205917.tgz#03d665a34e406104de665ba06cb4a5757f09f9ba" - integrity sha512-I1a6Z7P7kYeiXnG0yHtqhHxPNrQj+sjlz3N+5JfKXgD9xXH/58+Lj4k6H4Mjk0bEi4ZXzXiRifIr+7J/y1zvzA== +"@firebase/analytics@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.0.tgz#7f4450936a2cac3227cc6439130c09b9a0a7d83e" + integrity sha512-YEPyeW6CV8xbIvWaJMvfRdWUPKe/xchJ1bjV6GpLfkYRX+ZE1/YSNU14pX292M4bZ6Qg+bbu2DuWp8fEpa/YQg== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-2021724205917" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/app-check-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.1.0-2021724205917.tgz#5eb3d7ce2c500dfaf5add91f45d4902dcbcade58" - integrity sha512-5ia5BpAhK1zQo//W3pbjX/Oqr1tZNq/Mei7cXry/LVH2WqDXFztX9bkuGetr8Qrn9Gp5SnWSAIv5IhQvQHoWXA== +"@firebase/app-check-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.1.0.tgz#5bf12e5cd82f76cac2eabe51345d1fed9664ed48" + integrity sha512-T1M2d1oroaHUa448fgx3BdfWg4WXP64yybIWxvmVBuh7YnyMuegJK1sS9zipKBKLkstcQK8vivXYh3+/AnbGFw== dependencies: - "@firebase/app-check" "0.4.0-2021724205917" + "@firebase/app-check" "0.4.0" "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" @@ -1439,49 +1439,49 @@ 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@0.4.0-2021724205917": - version "0.4.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.4.0-2021724205917.tgz#bb1cb3f4daaf587424db94332dba4ac2b3e1ca3a" - integrity sha512-rsDwxgv9m+0TTYFLstlFTEnE5dLUto2lAu+cUsf5v3vjHAHaasv7EpwT4T8D3NxvWd+EV3iyLBpqJBXhp7YQAA== +"@firebase/app-check@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.4.0.tgz#a048fc396b2a97ef8eba77fe909efbff07a5c75c" + integrity sha512-KQ/k8cukzZbH/LC9Iu5/Dbhr7w6byu8bYjfCA38B6v8aISgASYfP/nirxRD+hSuDoxXtAnPGEuv+v0YU3D1R2w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/app-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.0-2021724205917.tgz#2b8e18eb2556ad30a22584423759b767acc239dc" - integrity sha512-FTMKKs9J1qVxy1QoqW5lwQUmDkeYmh2a7hGhpXPWxOZEaZTjoUmkd+cPvGB28wY+kX6RAqX2lTdSwP6Jm1MY8w== +"@firebase/app-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.0.tgz#101070141198304a50ec546b7626870c7759166b" + integrity sha512-jnAeFM1ihY5klqg2dvdA4EOk7co8ffSHUj/efqaSwTrMkKTcG/WZKF9WAuXdl+5jEu1BhsGGHveWzGliTFH5Hg== dependencies: - "@firebase/app" "0.7.0-2021724205917" + "@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@0.7.0-2021724205917": - version "0.7.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0-2021724205917.tgz#a347306ee5ad3c75aed1fe07b3cdf9583f9f9fd0" - integrity sha512-mSWTQxsbtVyv82eIMFbugudS8kbcswx8pXm/RgY9OPjNFXt569gEi2GQs+6xfVvMaIFfaZRF03uzKaVTTmZ0rQ== +"@firebase/app-types@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f" + integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== -"@firebase/app@0.7.0-2021724205917": - version "0.7.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.0-2021724205917.tgz#8a674799771a5d80417ca55db853d3474370a190" - integrity sha512-45u8cnEtQIE+PQZuA0woiaPlzxYYPoqO7mH+U2DlkAy4FHW5k4muifA9dIb6V1QjXrWuQJuSySI3Pk6K+uYYBg== +"@firebase/app@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.0.tgz#989e9f354951de2a8ac806f6e3fa0afd9f80b470" + integrity sha512-l4Pd69re6JyjumQrl719dnY5JSKROSYda/0N2wzOhSzqg8DsZOIErr8+xj6QAE6BtNsoIEk7ma9WMS/2r02MhA== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/auth-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.1.0-2021724205917.tgz#3c3f8805d4b07a251ec26622436e239a3d88f584" - integrity sha512-1qeTi/hZl2qp3OykiGxFZ9gkGyjNGI8n3Odgp8LQshPJtUlMEDaobnY2bCnyIrYd7uyvsrCwNOJEw/fNgn9SfA== +"@firebase/auth-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.1.0.tgz#e5dc6bb6ac89ea21f85c4153eb1cf8a7d69deaa8" + integrity sha512-OfAt3c5ham07xvmYyJp02v8mUa+HaSEwilvgD2M1JaWqLAtqH66bdBhLBE9N0pq8xtRdXZIF1vSd20a0ulQfQg== dependencies: - "@firebase/auth" "0.17.0-2021724205917" - "@firebase/auth-types" "0.11.0-2021724205917" + "@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" @@ -1493,15 +1493,15 @@ 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.11.0-2021724205917": - version "0.11.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0-2021724205917.tgz#e69c509d920c1b5201a808ee4be153a8670e8721" - integrity sha512-DyMWGIWDRX7wD8unmfG0ts6eYNuBeoOb1tEgycqYsJsWoj8mZiRE9FA8WQz9UwfwVxT2GVkcnDqg1iBTrwffjQ== +"@firebase/auth-types@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0.tgz#b9c73c60ca07945b3bbd7a097633e5f78fa9e886" + integrity sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw== -"@firebase/auth@0.17.0-2021724205917": - version "0.17.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.17.0-2021724205917.tgz#5263a4322699614e862bfa0e148b53500818f21c" - integrity sha512-dFDo7IiYGUlyZ3mAhjPND7lfxL/xVWYv/C/qFk2PrCLaA0sqk3+hnYPE/mSzyHQCd2NXllBct+xVBtAKvJ8c3g== +"@firebase/auth@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.17.0.tgz#e1395779293e1869fabefd07e078242c773b5fcb" + integrity sha512-4zOGTLGzMjBX96KEyBNYpjOD87c2efCZvUjaJ53QslleW9Xp8kSsSHLRhr8hOkcRXO17CmBKSRx/LnG2vTZWQQ== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" @@ -1518,30 +1518,30 @@ "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/database-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.0-2021724205917.tgz#362558f6a9a34ad5685b7223a6466ae41cea4831" - integrity sha512-+sZWp//RMMsrJE04Ml8iTyFLW/8ionD3HEEOpHJM77TexeLI21j5sL96v5AT0oeEL5E/7G5r+mlJR2qmH5sO0Q== +"@firebase/database-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.0.tgz#f02abaa9f493fd14aaae6e2b34262bafc5d033c7" + integrity sha512-jLN0JMYnYijg8f3QFtSuPGNuKAt3yYVRsHHlR8sADgx8MptByRRwVmMOk7QPc/DY7qscZIJow3hXFwvbeApFLA== dependencies: "@firebase/component" "0.5.6" - "@firebase/database" "0.12.0-2021724205917" - "@firebase/database-types" "0.9.0-2021724205917" + "@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@0.9.0-2021724205917": - version "0.9.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.0-2021724205917.tgz#e16020fcd837a826afe8160f8194f090a6b6eb1d" - integrity sha512-QozJbbMMGup8U02jvx1OoNb4v8/d2s+CCzqBaVTPe1FA+PYNBuN1tSJbSzsFGyyRpYsxEB3LQwlvShjgHXQ61A== +"@firebase/database-types@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.0.tgz#dad3db745531f40b60f7726a76b2bf6bbf6c6471" + integrity sha512-x2TeTVnMZGPvT3y4Nayio4WprQA/zGwqMrPMQwSdF+PFnaFJAhA/eLgUB6cmWFzFYO9VvmuRkFzDzo6ezTo1Zw== dependencies: - "@firebase/app-types" "0.7.0-2021724205917" + "@firebase/app-types" "0.7.0" "@firebase/util" "1.3.0" -"@firebase/database@0.12.0-2021724205917": - version "0.12.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.0-2021724205917.tgz#72019a677c43b3ea727427c2f7c00f5171cd3ac8" - integrity sha512-Iy7YgM2fwJ9A/I0eihyqCVv9EyqkrIJxWWuQYw2LAEVjh2ZWTr/Qg4WdBixWiJPypHCnA4cUVmYRJy4JpCiUvw== +"@firebase/database@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.0.tgz#2aa33138128cfcaf74388efe13e0eda10825d564" + integrity sha512-/gl6z6fAxAAFAdDllzidzweGpuXJu0b9AusSLrdW4LpP6KCuxJbhonMJuSGpHLzAHzx6Q9uitbvqHqBb17sttQ== dependencies: "@firebase/auth-interop-types" "0.1.6" "@firebase/component" "0.5.6" @@ -1550,26 +1550,26 @@ faye-websocket "0.11.3" tslib "^2.1.0" -"@firebase/firestore-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.0-2021724205917.tgz#5fbb1be7c74b6be088d9cfed4cb15dd9654d74a9" - integrity sha512-P7aGYzx+ee/j/NHmS60v3vjkn+fb0gz0oZG0TZ3vfNpeDtff1muyL0+eW76VN0ZMwQh/BmCCm/MWAQye8L315w== +"@firebase/firestore-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.0.tgz#9faa1c10a76d67f812dd48469693e8f6bafca3ab" + integrity sha512-25r1jGpnnx7vXSPVLmHNkuz+EGpZDU5Luro5/MFCMmoV4a+Rmg2n9FRlxRyPn4XOCkc5nrBpT6ESAKAPSNHcpw== dependencies: "@firebase/component" "0.5.6" - "@firebase/firestore" "3.0.0-2021724205917" - "@firebase/firestore-types" "2.5.0-2021724205917" + "@firebase/firestore" "3.0.0" + "@firebase/firestore-types" "2.5.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/firestore-types@2.5.0-2021724205917": - version "2.5.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.0-2021724205917.tgz#cd3c4703459fdb73ae1faf3d8e589ef4e0469f38" - integrity sha512-/SdxE7ZrL23+imVkA3OR2PySaxOV5HFzZJlfx+aNM+LLOVYTO9HjJf+wqmUpzNDid44NSWWf0GwzSd9tiFdd9A== +"@firebase/firestore-types@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.0.tgz#16fca40b6980fdb000de86042d7a96635f2bcdd7" + integrity sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA== -"@firebase/firestore@3.0.0-2021724205917": - version "3.0.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.0.0-2021724205917.tgz#6d05d5ce2191989508d85492e45171b6b9c3b665" - integrity sha512-/t/t5I6aEHtCIuG3G41o7b9XmwMk98fVCjeEtMh1VV/Qz0Mbxr+DmIVFe3h/GcPWnsGIL0vHgbDU7VuLxLCK7w== +"@firebase/firestore@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.0.0.tgz#f7b8cc3d8d28b85a901fd66df13f4d61dcc33190" + integrity sha512-rbs5EbU/01f7NKHDtedBowpBlqnkVnQlpIuSX5wwGMiPgH8f9pMhh59JMk0cTaSqsJXsq3KvafWAD9SqWIqe2w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" @@ -1580,39 +1580,39 @@ node-fetch "2.6.1" tslib "^2.1.0" -"@firebase/functions-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.0-2021724205917.tgz#501f3ded603e45ad144455dae466574f0136d0d0" - integrity sha512-/UqvUVSASYhAX9q89uVS8Vam6leyBVTnCyjRnOB8IbFSmPSIYb2IDxg9jSYT58clJr3XMVhJnHDjoRu2T+qLKA== +"@firebase/functions-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.0.tgz#53e2b3b9590b04628e9537806196d91deb3e6f3f" + integrity sha512-uNwHdGYqgIXzF7aTZBeUe00K/sadRg5EeSDuJ6VNo3Gh3ZceX4eRnL5p7l2bEJBh8hBl0brb82+TRYjGHtjtFQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/functions" "0.7.0-2021724205917" - "@firebase/functions-types" "0.5.0-2021724205917" + "@firebase/functions" "0.7.0" + "@firebase/functions-types" "0.5.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/functions-types@0.5.0-2021724205917": - version "0.5.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.5.0-2021724205917.tgz#3e4c2fa8e1b915f303ae7d90677e0fd9b5498b35" - integrity sha512-7HwLXV3nlq0+7JFpgIqSm/lFKbBLzdAEvgefB2bFI7Mr7r7qBwn3gnmb6BcKRsomTdDmHdLJ8H7oj2s4pu+9AA== +"@firebase/functions-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.5.0.tgz#b50ba95ccce9e96f7cda453228ffe1684645625b" + integrity sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA== -"@firebase/functions@0.7.0-2021724205917": - version "0.7.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.0-2021724205917.tgz#e1a03a256186ebbce97d31f8f8e5389b2dd2216c" - integrity sha512-ltrB53nDvAlbzPgUa3PSvExedTCde7CLvw/vHepk0HRmRfZIyNQDVWYL+2Hyk3uEYc0jRGUDdupYZWNjtrzeZQ== +"@firebase/functions@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.0.tgz#d052d01aa6871f5cd518748963792bae94b2081d" + 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/messaging-interop-types" "0.1.0-2021724205917" + "@firebase/messaging-interop-types" "0.1.0" "@firebase/util" "1.3.0" node-fetch "2.6.1" tslib "^2.1.0" -"@firebase/installations@0.5.0-2021724205917": - version "0.5.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.0-2021724205917.tgz#608dc49568851ead9526464f6c5f6c6df745e34a" - integrity sha512-XngDNPeNA+sx+00bgSlGO8HAdbYmDXa9tr6HC6QA0R/SYsSvns1VectGYXfCfiJcofPvaOGDAsHhI0FGiwl5EA== +"@firebase/installations@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.0.tgz#4a21e1c7467795802b031af413df2555b17cf1b1" + integrity sha512-wF1CKIx+SoiEbtNdutulxW4z80B5lGXW+8JdAtcKQwgKxF0VtlCaDFsd9AEB3aTtzIve5UkGak8hQOMvvOpydg== dependencies: "@firebase/component" "0.5.6" "@firebase/util" "1.3.0" @@ -1624,57 +1624,57 @@ resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== -"@firebase/messaging-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.0-2021724205917.tgz#2457113d531ff4484ed73acb9598a43fe569a61a" - integrity sha512-ydR67ke1KUoi8Q30wTlHdXY9cGd3Y4wPNJj0Lml0y1i1KfUEm7Hg9iU8SpY2DWhiUqD9/7MqFAHBTUioUBsBBQ== +"@firebase/messaging-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.0.tgz#ab164540f6ba954c8d150b2e96dc6bf8c1536eb4" + integrity sha512-58qQmKwOiXhxZwrRwwjQDbjlRx1uMVVuV/DNbDzqilDJDdoYXMdK6RBTF9Bs51qy/Z1BI2Q9B1JX01QYlgZpxQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/messaging" "0.9.0-2021724205917" + "@firebase/messaging" "0.9.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/messaging-interop-types@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0-2021724205917.tgz#3c499e2cf3f4f6675f8f76b4c6303956c47e0eb2" - integrity sha512-zSv17qEDa6EFK3b4jePMsXicT/IExubE7j0KNl8XHnMPhA1ph1X637YtOXpmhQ4zTfkGmAkocUoFRzpOvqSfUA== +"@firebase/messaging-interop-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz#bdac02dd31edd5cb9eec37b1db698ea5e2c1a631" + integrity sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ== -"@firebase/messaging@0.9.0-2021724205917": - version "0.9.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.0-2021724205917.tgz#7de9689494770a557bcadcc50454b1cd37469fda" - integrity sha512-0ZaTNsUqpCVSvE2ZcwkJXGaLpCfbfS1t6V/ZjjJh1AcxV9A+M2H9edH5qFBZ+qt++G1D92QPAouLCwdfu5etbQ== +"@firebase/messaging@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.0.tgz#a868bea75d0c26210903178cf22d31c47bc84584" + integrity sha512-NTUB+gVJsgL/f6wqwUlgadaNuLZvyk1IlTcRvR3391t8jDSWOT2efwzNqcI7Xv4nhzaiPhzAQ4ncH/m8kfUUXQ== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-2021724205917" - "@firebase/messaging-interop-types" "0.1.0-2021724205917" + "@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/performance-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.0-2021724205917.tgz#5b25d86c9a287417d6ef496babc444ab5626ecd9" - integrity sha512-8suJ1gGQyMiJYO+Ap1zRIUD2rr03ICjUZBJKDsEnxYDuefvARMP0a105DpGXP/KlWfHCIbPGy7pWhWRXZtQZCQ== +"@firebase/performance-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.0.tgz#c1edeccd9b60d83de26d8e645e0d2ddd64e9a2d7" + integrity sha512-H+/A5+y/15hFn5FHRP8lcogDzO6qm9YoACNEXn71UN4PiGQ+/BbHkQafDEXxD6wLfqfqR8u8oclHPFIYxMBF7Q== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" - "@firebase/performance" "0.5.0-2021724205917" - "@firebase/performance-types" "0.1.0-2021724205917" + "@firebase/performance" "0.5.0" + "@firebase/performance-types" "0.1.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/performance-types@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.1.0-2021724205917.tgz#581b0115090cfb4497ad2544204e99b97e59db32" - integrity sha512-bbNmoqgihR/tG7hlDGUIQDBu8d2N6thnje2SitRdGVuVtd03wmqyYAK0mXNeone5/GK7om7VunsfHvLKxsqgPA== +"@firebase/performance-types@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.1.0.tgz#5e6efa9dc81860aee2cb7121b39ae8fa137e69fc" + integrity sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w== -"@firebase/performance@0.5.0-2021724205917": - version "0.5.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.0-2021724205917.tgz#faffb7492353b58a64b1383f0adf428e4442a8ea" - integrity sha512-VrXg1f7GQPEOxfRyt8FVqNRAgtVK0yh43RQlMebAXwvZyEi4a5fBBUeWolSta2/rQ2SUk4Vb+DDGhphp24whvA== +"@firebase/performance@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.0.tgz#cc237e65791c75dba856ace8971b94d7adcbc60b" + integrity sha512-E+L18eJKshr/ijnWZMexEEddwkp2T4Ye2dJSK4TcOKRYfrmfZJ95RRZ+MPNp1ES7RH2JYiyym1NIQKPcNNvhug== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-2021724205917" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" @@ -1688,54 +1688,54 @@ promise-polyfill "8.1.3" whatwg-fetch "2.0.4" -"@firebase/remote-config-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.0-2021724205917.tgz#4a3d5fd85aaf3307483dc488247addd980ec27be" - integrity sha512-nD8gW7WpJ16kg1mJITvJfoETz/jc4GACKRbiZ08XXODrchK1tT1tvrrytWUyss5/tY7ZKxQSwq8+sYT9OxycPA== +"@firebase/remote-config-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.0.tgz#8eb2582d1909dd4d5023383e43d73ad605d56daa" + integrity sha512-PpCh5f5hUUaDCmiJsuu/u9a0g0G5WH3YSbfH1jPejVOaJ1lS82615E7WOzco4zMllLYfX62VaUYD2vvcLyXE/w== dependencies: "@firebase/component" "0.5.6" "@firebase/logger" "0.2.6" - "@firebase/remote-config" "0.2.0-2021724205917" - "@firebase/remote-config-types" "0.2.0-2021724205917" + "@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@0.2.0-2021724205917": - version "0.2.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.2.0-2021724205917.tgz#e8d207e4e42997b06f40f3c94dd791f35e85bfbc" - integrity sha512-44bxRXgMOIT+47zaFFUqrserTL69sZ5+smaPB2i2XCYFBkjNaZmJO1bU8kYvBS6UGycOu/YaipNCCzzKi494XA== +"@firebase/remote-config-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz#1e2759fc01f20b58c564db42196f075844c3d1fd" + integrity sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw== -"@firebase/remote-config@0.2.0-2021724205917": - version "0.2.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.2.0-2021724205917.tgz#e250696fe35e5c842644071300d491b8a9e18a56" - integrity sha512-hqWmJhOdNI63Wx9Z8f4ORu87jeaT8yS2sCji4O1naZ6w42s/dr06TugUhkao1Q9tATRGmgD/wi3LG3qx7HIGnA== +"@firebase/remote-config@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.2.0.tgz#aa2bd7b34e0e40a259c3f0409a5084864f234f0f" + integrity sha512-hNZ+BqsTmfe8ogpeow95NSwQmKIeetKdPxKpyC6RZBeFUae782+2HrUx4/Quep6OZjOHQF6xZ5d3VOxu2ZKEfg== dependencies: "@firebase/component" "0.5.6" - "@firebase/installations" "0.5.0-2021724205917" + "@firebase/installations" "0.5.0" "@firebase/logger" "0.2.6" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/storage-compat@0.1.0-2021724205917": - version "0.1.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.0-2021724205917.tgz#9d0f33c11eb7fefd1fd8ceaa7e36cdfb83e90bf0" - integrity sha512-C40enB/+J6fJoqT2UCGVx9nSEAF3prgROK4n//POK3W4WyCXh5mmxtnQpL06EHLlVVcEdfx3hIVeJP9b3jm8AQ== +"@firebase/storage-compat@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.0.tgz#b8080e3250b19ad6d98a5ade65f1a03aab73f2b8" + integrity sha512-DJstR2vidnyNSRp14LQhd9QO0PxhMm/xsXrPQ2IEmQ7EWDT4rxGd+pkqXTG6IO+k9ZKMc0BnWIYwlMqkGEJoDg== dependencies: "@firebase/component" "0.5.6" - "@firebase/storage" "0.8.0-2021724205917" - "@firebase/storage-types" "0.6.0-2021724205917" + "@firebase/storage" "0.8.0" + "@firebase/storage-types" "0.6.0" "@firebase/util" "1.3.0" tslib "^2.1.0" -"@firebase/storage-types@0.6.0-2021724205917": - version "0.6.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.6.0-2021724205917.tgz#0ea76923dfde7645befae794b353a438f08ce3ca" - integrity sha512-O4BMwzk3mbQPSCV04N12zibcwTNWIjWIp5fpc2GxqWDeovjZ1bQ2I69FYk6xU5T4hx/kzO2ipHPzvQpKxZfuwA== +"@firebase/storage-types@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.6.0.tgz#0b1af64a2965af46fca138e5b70700e9b7e6312a" + integrity sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA== -"@firebase/storage@0.8.0-2021724205917": - version "0.8.0-2021724205917" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.8.0-2021724205917.tgz#901b50171f1e0b782c6b2caa7d265e23693e11bb" - integrity sha512-PywXfjCZRAsyhDPR5xUgG4npiUaK1FLMONMa600OWDx8k+SBaEBOb/ml0zYMxYMYWogglZ29ge65XCbkJHvADQ== +"@firebase/storage@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.8.0.tgz#2766a18a8a9684082d745ab1a93a3c88061169b1" + integrity sha512-D0HH+y3DLH0+8eOt6h19RffFMpdzPNr7Yv7XpeeM3+VLE4TbQnDie/OAQWOuWLrYoW7MsPQnLkx+zDb3DxOXxw== dependencies: "@firebase/component" "0.5.6" "@firebase/util" "1.3.0" @@ -1754,73 +1754,65 @@ resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.5.1.tgz#a64d1af3c62e3bb89576ec58af880980a562bf4e" integrity sha512-dZMzN0uAjwJXWYYAcnxIwXqRTZw3o14hGe7O6uhwjD1ZQWPVYA5lASgnNskEBra0knVBsOXB4KXg+HnlKewN/A== -"@google-cloud/paginator@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-2.0.3.tgz#c7987ad05d1c3ebcef554381be80e9e8da4e4882" - integrity sha512-kp/pkb2p/p0d8/SKUu4mOq8+HGwF8NPzHWkj+VKrIPQPyMRw8deZtrO/OcSiy9C/7bpfU5Txah5ltUNfPkgEXg== +"@google-cloud/paginator@^3.0.0": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.5.tgz#9d6b96c421a89bd560c1bc2c197c7611ef21db6c" + integrity sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw== dependencies: arrify "^2.0.0" extend "^3.0.2" -"@google-cloud/precise-date@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-1.0.3.tgz#39c600ed52213f4158692a72c90d13b2162a93d2" - integrity sha512-wWnDGh9y3cJHLuVEY8t6un78vizzMWsS7oIWKeFtPj+Ndy+dXvHW0HTx29ZUhen+tswSlQYlwFubvuRP5kKdzQ== - -"@google-cloud/projectify@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-1.0.4.tgz#28daabebba6579ed998edcadf1a8f3be17f3b5f0" - integrity sha512-ZdzQUN02eRsmTKfBj9FDL0KNDIFNjBn/d6tHQmA/+FImH5DO6ZV8E7FzxMgAUiVAUq41RFAkb25p1oHOZ8psfg== +"@google-cloud/precise-date@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-2.0.3.tgz#14f6f28ce35dabf3882e7aeab1c9d51bd473faed" + integrity sha512-+SDJ3ZvGkF7hzo6BGa8ZqeK3F6Z4+S+KviC9oOK+XCs3tfMyJCh/4j93XIWINgMMDIh9BgEvlw4306VxlXIlYA== -"@google-cloud/promisify@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-1.0.4.tgz#ce86ffa94f9cfafa2e68f7b3e4a7fad194189723" - integrity sha512-VccZDcOql77obTnFh0TbNED/6ZbbmHDf8UMNnzO1d5g9V0Htfm4k5cllY8P1tJsRKC3zWYGRLaViiupcgVjBoQ== +"@google-cloud/projectify@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-2.1.0.tgz#3df145c932e244cdeb87a30d93adce615bc69e6d" + integrity sha512-qbpidP/fOvQNz3nyabaVnZqcED1NNzf7qfeOlgtAZd9knTwY+KtsGRkYpiQzcATABy4gnGP2lousM3S0nuWVzA== -"@google-cloud/pubsub@^1.7.0": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-1.7.3.tgz#0fa51d67eb4db979a66b05738d81c3cef992b5bf" - integrity sha512-v+KdeaOS17WtHnsDf2bPGxKDT9HIRPYo3n+WsAEmvAzDHnh8q65mFcuYoQxuy2iRhmN/1ql2a0UU2tAAL7XZ8Q== - dependencies: - "@google-cloud/paginator" "^2.0.0" - "@google-cloud/precise-date" "^1.0.0" - "@google-cloud/projectify" "^1.0.0" - "@google-cloud/promisify" "^1.0.0" +"@google-cloud/promisify@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.3.tgz#f934b5cdc939e3c7039ff62b9caaf59a9d89e3a8" + integrity sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw== + +"@google-cloud/pubsub@^2.7.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-2.17.0.tgz#6da80a69b0b077e36575255576c533ea092b38f5" + integrity sha512-9Xya69A5VAYVEGf651jy071RuBIjv+jpyozSc3j8V21LIiKRr9x+KyplHcLTYWdj+uXbP9cry8Ck8JEFc7GiqQ== + dependencies: + "@google-cloud/paginator" "^3.0.0" + "@google-cloud/precise-date" "^2.0.0" + "@google-cloud/projectify" "^2.0.0" + "@google-cloud/promisify" "^2.0.0" + "@opentelemetry/api" "^1.0.0" + "@opentelemetry/semantic-conventions" "^0.24.0" "@types/duplexify" "^3.6.0" "@types/long" "^4.0.0" arrify "^2.0.0" - async-each "^1.0.1" extend "^3.0.2" - google-auth-library "^5.5.0" - google-gax "^1.14.2" + google-auth-library "^7.0.0" + google-gax "^2.24.1" is-stream-ended "^0.1.4" lodash.snakecase "^4.1.1" p-defer "^3.0.0" - protobufjs "^6.8.1" - -"@grpc/grpc-js@^0.6.12": - version "0.6.18" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-0.6.18.tgz#ba3b3dfef869533161d192a385412a4abd0db127" - integrity sha512-uAzv/tM8qpbf1vpx1xPMfcUMzbfdqJtdCYAqY/LsLeQQlnTb4vApylojr+wlCyr7bZeg3AFfHvtihnNOQQt/nA== - dependencies: - semver "^6.2.0" -"@grpc/grpc-js@^1.3.2", "@grpc/grpc-js@~1.3.6": +"@grpc/grpc-js@^1.3.2": version "1.3.6" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.6.tgz#6e2d17610c2c8df0f6ceab0e1968f563df74b173" integrity sha512-v7+LQFbqZKmd/Tvf5/j1Xlbq6jXL/4d+gUtm2TNX4QiEC3ELWADmGr2dGlUyLl6aKTuYfsN72vAsO5zmavYkEg== dependencies: "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.5.1": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" - integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ== +"@grpc/grpc-js@~1.3.0": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.7.tgz#58b687aff93b743aafde237fd2ee9a3259d7f2d8" + integrity sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA== dependencies: - lodash.camelcase "^4.3.0" - protobufjs "^6.8.6" + "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.6.0": +"@grpc/proto-loader@^0.6.0", "@grpc/proto-loader@^0.6.1": version "0.6.4" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.4.tgz#5438c0d771e92274e77e631babdc14456441cbdc" integrity sha512-7xvDvW/vJEcmLUltCUGOgWRPM8Oofv0eCFSVMuKqaqWJaXSzmB+m9hiyqe34QofAl4WAzIKUZZlinIF9FOHyTQ== @@ -1885,7 +1877,7 @@ jsdom "16.6.0" tslib "^2.3.0" -"@nguniversal/express-engine@12.1.0": +"@nguniversal/express-engine@^12.1.0": version "12.1.0" resolved "https://registry.yarnpkg.com/@nguniversal/express-engine/-/express-engine-12.1.0.tgz#b3457e57b23232541b018cc073454a0c5b944733" integrity sha512-rgJ+ZlToX2wC7u8H5kIlT0lL3HNE7Awdazoc0HbeVV9xlCKBye29ndTAON6JZEn+8tIVAN0sZioziBZED/Yrvg== @@ -1966,6 +1958,16 @@ node-gyp "^7.1.0" read-package-json-fast "^2.0.1" +"@opentelemetry/api@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.0.2.tgz#921e1f2b2484b762d77225a8a25074482d93fccf" + integrity sha512-DCF9oC89ao8/EJUqrp/beBlDR8Bp2R43jqtzayqCoomIvkwTuPfLcHdVhIGRR69GFlkykFjcDW+V92t0AS7Tww== + +"@opentelemetry/semantic-conventions@^0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.0.tgz#1028ef0e0923b24916158d80d2ddfd67ea8b6740" + integrity sha512-a/szuMQV0Quy0/M7kKdglcbRSoorleyyOwbTNNJ32O+RBN766wbQlMTvdimImTmwYWGr+NJOni1EcC242WlRcA== + "@polka/url@^1.0.0-next.15": version "1.0.0-next.15" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" @@ -2096,6 +2098,13 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@types/archiver@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.1.1.tgz#d6d7610de4386b293abd5c1cb1875e0a4f4e1c30" + integrity sha512-heuaCk0YH5m274NOLSi66H1zX6GtZoMsdE6TYFcpFFjBjg0FoU4i4/M/a/kNlgNg26Xk3g364mNOYe1JaiEPOQ== + dependencies: + "@types/glob" "*" + "@types/body-parser@*": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" @@ -2178,14 +2187,7 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-extra@^8.0.1": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" - integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.1": +"@types/glob@*", "@types/glob@^7.1.1": version "7.1.4" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== @@ -2514,7 +2516,7 @@ after@0.8.2: resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@6: +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -2592,7 +2594,7 @@ ajv@8.6.2: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.1.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2732,18 +2734,18 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" -archiver@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" - integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg== +archiver@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba" + integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== dependencies: archiver-utils "^2.1.0" - async "^2.6.3" + async "^3.2.0" buffer-crc32 "^0.2.1" - glob "^7.1.4" - readable-stream "^3.4.0" - tar-stream "^2.1.0" - zip-stream "^2.1.2" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" are-we-there-yet@~1.1.2: version "1.1.5" @@ -2863,6 +2865,13 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + async-each-series@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" @@ -2883,7 +2892,7 @@ async@1.5.2, async@^1.3.0: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.6.2, async@^2.6.3: +async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -2895,6 +2904,11 @@ async@^3.1.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== +async@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2991,7 +3005,7 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3149,6 +3163,20 @@ boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3300,7 +3328,7 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer@^5.1.0, buffer@^5.5.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -3435,6 +3463,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -3637,7 +3670,7 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-boxes@^2.2.0: +cli-boxes@^2.2.0, cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== @@ -3888,15 +3921,15 @@ component-inherit@0.0.3: resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= -compress-commons@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" - integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q== +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== dependencies: buffer-crc32 "^0.2.13" - crc32-stream "^3.0.1" + crc32-stream "^4.0.2" normalize-path "^3.0.0" - readable-stream "^2.3.6" + readable-stream "^3.6.0" compressible@~2.0.16: version "2.0.18" @@ -4047,7 +4080,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@~2.8.5: +cors@^2.8.5, cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -4066,20 +4099,21 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -crc32-stream@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" - integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w== +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== dependencies: - crc "^3.4.4" - readable-stream "^3.4.0" + exit-on-epipe "~1.0.1" + printj "~1.1.0" -crc@^3.4.4: - version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== dependencies: - buffer "^5.1.0" + crc-32 "^1.2.0" + readable-stream "^3.4.0" create-require@^1.1.0: version "1.1.1" @@ -4375,6 +4409,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -4537,6 +4576,15 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +degenerator@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-2.2.0.tgz#49e98c11fa0293c5b26edfbb52f15729afcdb254" + integrity sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -4718,14 +4766,14 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== +duplexify@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" stream-shift "^1.0.0" easy-extender@^2.3.4: @@ -4804,7 +4852,7 @@ encoding@^0.1.12: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -4974,6 +5022,18 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -5006,7 +5066,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -5118,6 +5178,11 @@ exit-code@^1.0.2: resolved "https://registry.yarnpkg.com/exit-code/-/exit-code-1.0.2.tgz#ce165811c9f117af6a5f882940b96ae7f9aecc34" integrity sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ= +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -5271,7 +5336,7 @@ fast-safe-stringify@^2.0.4: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== -fast-text-encoding@^1.0.0: +fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== @@ -5321,10 +5386,15 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filesize@^3.1.3: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== + +filesize@^6.1.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.4.0.tgz#914f50471dd66fdca3cefe628bd0cde4ef769bcd" + integrity sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== fill-range@^4.0.0: version "4.0.0" @@ -5398,15 +5468,17 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-tools@^8.0.0: - version "8.20.0" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-8.20.0.tgz#0c7b69a611f584c44ca4cbf9e3003b18ebfd17be" - integrity sha512-FovOHkPEvdT31EqxDzjJkaJIYLrc+0GZwQ3ixT1WI3yF3o4TG8MCVo+QidmcNqyX0XZnI3/5sF3dpxXQ/HzaVw== +firebase-tools@^9.0.0: + version "9.16.6" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-9.16.6.tgz#9b46c62cba7499fd17d4f44003f9bb05529b1dad" + integrity sha512-bW4rT+pTE6n8892rXd5ier9H1snXUZIXrL3WKzuVWXSUqDjUbx6SIgXhjp1++GIdkiMGnfDY5EJR4nV/YrTO5A== dependencies: - "@google-cloud/pubsub" "^1.7.0" + "@google-cloud/pubsub" "^2.7.0" + "@types/archiver" "^5.1.0" JSONStream "^1.2.1" abort-controller "^3.0.0" - archiver "^3.0.0" + ajv "^6.12.6" + archiver "^5.0.0" body-parser "^1.19.0" chokidar "^3.0.2" cjson "^0.3.1" @@ -5414,34 +5486,35 @@ firebase-tools@^8.0.0: cli-table "^0.3.1" commander "^4.0.1" configstore "^5.0.1" + cors "^2.8.5" cross-env "^5.1.3" cross-spawn "^7.0.1" csv-streamify "^3.0.4" dotenv "^6.1.0" + exegesis "^2.5.7" exegesis-express "^2.0.0" exit-code "^1.0.2" express "^4.16.4" - filesize "^3.1.3" - fs-extra "^0.23.1" + filesize "^6.1.0" + fs-extra "^5.0.0" glob "^7.1.2" - google-auth-library "^5.5.0" - google-gax "~1.12.0" + google-auth-library "^6.1.3" inquirer "~6.3.1" js-yaml "^3.13.1" - jsonschema "^1.0.2" - jsonwebtoken "^8.2.1" + jsonwebtoken "^8.5.1" leven "^3.1.0" - lodash "^4.17.19" + lodash "^4.17.21" marked "^0.7.0" marked-terminal "^3.3.0" + mime "^2.5.2" minimatch "^3.0.4" morgan "^1.10.0" node-fetch "^2.6.1" open "^6.3.0" ora "^3.4.0" - plist "^3.0.1" portfinder "^1.0.23" progress "^2.0.3" + proxy-agent "^4.0.0" request "^2.87.0" rimraf "^3.0.0" semver "^5.7.1" @@ -5453,41 +5526,42 @@ firebase-tools@^8.0.0: tweetsodium "0.0.5" universal-analytics "^0.4.16" unzipper "^0.10.10" - update-notifier "^4.1.0" + update-notifier "^5.1.0" uuid "^3.0.0" winston "^3.0.0" + winston-transport "^4.4.0" ws "^7.2.3" -firebase@9.0.0-2021724205917: - version "9.0.0-2021724205917" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0-2021724205917.tgz#d3b46a59ca6292743d383836731d1179e9f6e233" - integrity sha512-lUvMWwo11i5OwlzKjTPJhT+G+ishbGNrC/9S8ofrMietb8nPdAuvkUIBa76YyTUgx1rvm8W/6NJOe62cNrHgYA== - dependencies: - "@firebase/analytics" "0.7.0-2021724205917" - "@firebase/analytics-compat" "0.1.0-2021724205917" - "@firebase/app" "0.7.0-2021724205917" - "@firebase/app-check" "0.4.0-2021724205917" - "@firebase/app-check-compat" "0.1.0-2021724205917" - "@firebase/app-compat" "0.1.0-2021724205917" - "@firebase/app-types" "0.7.0-2021724205917" - "@firebase/auth" "0.17.0-2021724205917" - "@firebase/auth-compat" "0.1.0-2021724205917" - "@firebase/database" "0.12.0-2021724205917" - "@firebase/database-compat" "0.1.0-2021724205917" - "@firebase/firestore" "3.0.0-2021724205917" - "@firebase/firestore-compat" "0.1.0-2021724205917" - "@firebase/functions" "0.7.0-2021724205917" - "@firebase/functions-compat" "0.1.0-2021724205917" - "@firebase/installations" "0.5.0-2021724205917" - "@firebase/messaging" "0.9.0-2021724205917" - "@firebase/messaging-compat" "0.1.0-2021724205917" - "@firebase/performance" "0.5.0-2021724205917" - "@firebase/performance-compat" "0.1.0-2021724205917" +firebase@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0.tgz#00bfa03a3eb99bde43a472a8861aa808068153bb" + integrity sha512-atgnuvELhU9D5w9moChnyCb6GRbOCqk54/kHN0J4kdLJBncpcb2culIJ7nlSHILMcW9MNMiNKDJ07RwXVyqFFA== + dependencies: + "@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.2.0-2021724205917" - "@firebase/remote-config-compat" "0.1.0-2021724205917" - "@firebase/storage" "0.8.0-2021724205917" - "@firebase/storage-compat" "0.1.0-2021724205917" + "@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" flat-arguments@^1.0.0: @@ -5584,15 +5658,14 @@ fs-extra@3.0.1: jsonfile "^3.0.0" universalify "^0.1.0" -fs-extra@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" - integrity sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0= +fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== dependencies: graceful-fs "^4.1.2" - jsonfile "^2.1.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" + jsonfile "^4.0.0" + universalify "^0.1.0" fs-extra@^8.1.0: version "8.1.0" @@ -5655,6 +5728,14 @@ fstream@^1.0.12: mkdirp ">=0.5 0" rimraf "2" +ftp@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -5679,10 +5760,10 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaxios@^2.1.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-2.3.4.tgz#eea99353f341c270c5f3c29fc46b8ead56f0a173" - integrity sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA== +gaxios@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.0.tgz#ad4814d89061f85b97ef52aed888c5dbec32f774" + integrity sha512-pHplNbslpwCLMyII/lHPWFQbJWOX0B3R1hwBEOvzYi1GmdKZruuEHK4N9V6f7tf1EaPYyF80mui1+344p6SmLg== dependencies: abort-controller "^3.0.0" extend "^3.0.2" @@ -5690,13 +5771,13 @@ gaxios@^2.1.0: is-stream "^2.0.0" node-fetch "^2.3.0" -gcp-metadata@^3.4.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-3.5.0.tgz#6d28343f65a6bbf8449886a0c0e4a71c77577055" - integrity sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA== +gcp-metadata@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.0.tgz#0423d06becdbfb9cbb8762eaacf14d5324997900" + integrity sha512-L9XQUpvKJCM76YRSmcxrR4mFPzPGsgZUH+GgHMxAET8qc6+BhRJq63RLhWakgEO2KKVgeSDVfyiNjkGSADwNTA== dependencies: - gaxios "^2.1.0" - json-bigint "^0.3.0" + gaxios "^4.0.0" + json-bigint "^1.0.0" gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -5731,6 +5812,18 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-uri@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + dependencies: + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -5815,6 +5908,13 @@ global-dirs@^2.0.1: dependencies: ini "1.3.7" +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -5843,66 +5943,59 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -google-auth-library@^5.0.0, google-auth-library@^5.5.0: - version "5.10.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-5.10.1.tgz#504ec75487ad140e68dd577c21affa363c87ddff" - integrity sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg== +google-auth-library@^6.1.3: + version "6.1.6" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" + integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== dependencies: arrify "^2.0.0" base64-js "^1.3.0" ecdsa-sig-formatter "^1.0.11" fast-text-encoding "^1.0.0" - gaxios "^2.1.0" - gcp-metadata "^3.4.0" - gtoken "^4.1.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" jws "^4.0.0" - lru-cache "^5.0.0" + lru-cache "^6.0.0" -google-gax@^1.14.2: - version "1.15.4" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-1.15.4.tgz#dc37dea2a8c58717cd50db40f01b21cbf9da7739" - integrity sha512-Wzl43ueWEKNsLcMJ33sPps179nD7wn6Jcl/P+ZQNS+HxdCJcoQEgJe3AmulsJnatwjBE3pVPIE4HFJNhpRGvUw== +google-auth-library@^7.0.0, google-auth-library@^7.6.1: + version "7.6.2" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.6.2.tgz#8654985dbd06d8519f09c9c2318c4092f289a501" + integrity sha512-yvEnwVsvgH8RXTtpf6e84e7dqIdUEKJhmQvTJwzYP+RDdHjLrDp9sk2u2ZNDJPLKZ7DJicx/+AStcQspJiq+Qw== dependencies: - "@grpc/grpc-js" "~1.3.6" - "@grpc/proto-loader" "^0.5.1" - "@types/fs-extra" "^8.0.1" - "@types/long" "^4.0.0" - abort-controller "^3.0.0" - duplexify "^3.6.0" - google-auth-library "^5.0.0" - is-stream-ended "^0.1.4" - lodash.at "^4.6.0" - lodash.has "^4.5.2" - node-fetch "^2.6.0" - protobufjs "^6.8.9" - retry-request "^4.0.0" - semver "^6.0.0" - walkdir "^0.4.0" + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" + jws "^4.0.0" + lru-cache "^6.0.0" -google-gax@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-1.12.0.tgz#f926f7e6abda245db38ecbebbbf58daaf3a8f687" - integrity sha512-BeeoxVO6y9K20gUsexUwptutd0PfrTItrA02JWwwstlBIOAcvgFp86MHWufQsnrkPVhxBjHXq65aIkSejtJjDg== +google-gax@^2.24.1: + version "2.24.2" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.24.2.tgz#b2f1b5a0edb4673c00ddb79514a6643152456c98" + integrity sha512-4OtyEIt/KAXRX5o2W/6DGf8MnMs1lMXwcGoPHR4PwXfTUVKjK7ywRe2/yRIMkYEDzAwu/kppPgfpX+kCG2rWfw== dependencies: - "@grpc/grpc-js" "^0.6.12" - "@grpc/proto-loader" "^0.5.1" + "@grpc/grpc-js" "~1.3.0" + "@grpc/proto-loader" "^0.6.1" "@types/long" "^4.0.0" abort-controller "^3.0.0" - duplexify "^3.6.0" - google-auth-library "^5.0.0" + duplexify "^4.0.0" + fast-text-encoding "^1.0.3" + google-auth-library "^7.6.1" is-stream-ended "^0.1.4" - lodash.at "^4.6.0" - lodash.has "^4.5.2" - node-fetch "^2.6.0" - protobufjs "^6.8.8" + node-fetch "^2.6.1" + object-hash "^2.1.1" + proto3-json-serializer "^0.1.1" + protobufjs "6.11.2" retry-request "^4.0.0" - semver "^6.0.0" - walkdir "^0.4.0" -google-p12-pem@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-2.0.5.tgz#b1c44164d567ae894f7a19b4ff362a06be5b793b" - integrity sha512-7RLkxwSsMsYh9wQ5Vb2zRtkAHvqPvfoMGag+nugl1noYO7gf0844Yr9TIFA5NEBMAeVt2Z+Imu7CQMp3oNatzQ== +google-p12-pem@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.2.tgz#c3d61c2da8e10843ff830fdb0d2059046238c1d4" + integrity sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A== dependencies: node-forge "^0.10.0" @@ -5933,15 +6026,14 @@ graceful-fs@^4.2.6: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -gtoken@^4.1.0: - version "4.1.4" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-4.1.4.tgz#925ff1e7df3aaada06611d30ea2d2abf60fcd6a7" - integrity sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA== +gtoken@^5.0.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.1.tgz#c1c2598a826f2b5df7c6bb53d7be6cf6d50c3c78" + integrity sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ== dependencies: - gaxios "^2.1.0" - google-p12-pem "^2.0.0" + gaxios "^4.0.0" + google-p12-pem "^3.0.3" jws "^4.0.0" - mime "^2.2.0" guess-parser@^0.4.12: version "0.4.22" @@ -6170,7 +6262,7 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== -http-proxy-agent@^4.0.1: +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== @@ -6218,7 +6310,7 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: +https-proxy-agent@5, https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== @@ -6668,6 +6760,14 @@ is-installed-globally@^0.3.1: global-dirs "^2.0.1" is-path-inside "^3.0.1" +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -6688,6 +6788,11 @@ is-npm@^4.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + is-number-like@^1.0.3: version "1.0.8" resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" @@ -6731,7 +6836,7 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-path-inside@^3.0.1: +is-path-inside@^3.0.1, is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -7077,10 +7182,10 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-bigint@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-0.3.1.tgz#0c1729d679f580d550899d6a2226c228564afe60" - integrity sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ== +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" @@ -7157,13 +7262,6 @@ jsonc-parser@3.0.0, jsonc-parser@^3.0.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" @@ -7183,12 +7281,7 @@ jsonparse@^1.2.0, jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= -jsonschema@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" - integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== - -jsonwebtoken@^8.2.1: +jsonwebtoken@^8.5.1: version "8.5.1" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== @@ -7371,7 +7464,7 @@ kuler@^2.0.0: resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== -latest-version@^5.0.0: +latest-version@^5.0.0, latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== @@ -7522,11 +7615,6 @@ lodash._shimkeys@~2.4.1: dependencies: lodash._objecttypes "~2.4.1" -lodash.at@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.at/-/lodash.at-4.6.0.tgz#93cdce664f0a1994ea33dd7cd40e23afd11b0ff8" - integrity sha1-k83OZk8KGZTqM9181A4jr9EbD/g= - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -7552,11 +7640,6 @@ lodash.flatten@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= -lodash.has@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= - lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -7727,7 +7810,7 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^5.0.0: +lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== @@ -7994,7 +8077,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.2.0, mime@^2.3.1, mime@^2.4.4, mime@^2.5.2, mime@~2.5.2: +mime@^2.3.1, mime@^2.4.4, mime@^2.5.2, mime@~2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -8257,6 +8340,11 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +netmask@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + next-tick@1, next-tick@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" @@ -8311,7 +8399,7 @@ node-emoji@^1.4.1: dependencies: lodash.toarray "^4.4.0" -node-fetch@2.6.1, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1: +node-fetch@2.6.1, node-fetch@^2.3.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -8540,6 +8628,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-hash@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" @@ -8810,6 +8903,30 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz#66883eeabadc915fc5e95457324cb0f0ac78defb" + integrity sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^4.1.0" + raw-body "^2.2.0" + socks-proxy-agent "5" + +pac-resolver@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-4.2.0.tgz#b82bcb9992d48166920bc83c7542abb454bd9bdd" + integrity sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ== + dependencies: + degenerator "^2.2.0" + ip "^1.1.5" + netmask "^2.0.1" + package-json@^6.3.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -9022,15 +9139,6 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -plist@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc" - integrity sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^9.0.7" - xmldom "^0.5.0" - portfinder@^1.0.23, portfinder@^1.0.26: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" @@ -9666,6 +9774,11 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" @@ -9704,7 +9817,12 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -protobufjs@^6.10.0, protobufjs@^6.8.1, protobufjs@^6.8.6, protobufjs@^6.8.8, protobufjs@^6.8.9: +proto3-json-serializer@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.3.tgz#3b4d5f481dbb923dd88e259ed03b0629abc9a8e7" + integrity sha512-X0DAtxCBsy1NDn84huVFGOFgBslT2gBmM+85nY6/5SOAaCon1jzVNdvi74foIyFvs5CjtSbQsepsM5TsyNhqQw== + +protobufjs@6.11.2, protobufjs@^6.10.0: version "6.11.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== @@ -9731,6 +9849,25 @@ proxy-addr@~2.0.5: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-4.0.1.tgz#326c3250776c7044cd19655ccbfadf2e065a045c" + integrity sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA== + dependencies: + agent-base "^6.0.0" + debug "4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + lru-cache "^5.1.1" + pac-proxy-agent "^4.1.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^5.0.0" + +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -9764,7 +9901,7 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.0.1: +pupa@^2.0.1, pupa@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== @@ -9830,7 +9967,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@^2.3.2, raw-body@^2.3.3: +raw-body@^2.2.0, raw-body@^2.3.2, raw-body@^2.3.3: version "2.4.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== @@ -9882,7 +10019,17 @@ read-package-json-fast@^2.0.1: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.7, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -9895,7 +10042,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9916,6 +10063,13 @@ readable-stream@~2.0.0: string_decoder "~0.10.x" util-deprecate "~1.0.1" +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -10218,7 +10372,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.2.8, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10280,10 +10434,10 @@ rx@4.1.0: resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -rxfire@6.0.0-rc.1: - version "6.0.0-rc.1" - resolved "https://registry.yarnpkg.com/rxfire/-/rxfire-6.0.0-rc.1.tgz#a3c95cdcecf5bd26823377d9836ecb5005156ea1" - integrity sha512-2wGzy/iMkYcBnTCwk1JNnX0tL0h/MXh9dki1bR+/rsxzr4S6T6uhLYAknp7lsPvbxSpvpis4io3k1yWXnUMjsQ== +rxfire@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rxfire/-/rxfire-6.0.0.tgz#298d6bba7963d2338a51bac6930c88192e345a42" + integrity sha512-COpH7vtMrxc+iKqUS1A6CEZMJwIpMM/3H1jnKjYAhzhHQG1YaJYH4Q8EcMMNd0ZX7l8ag6hW1ppoB7j9ctJyfA== dependencies: tslib "^1.9.0 || ~2.1.0" @@ -10790,6 +10944,15 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" +socks-proxy-agent@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + socks-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" @@ -11241,7 +11404,7 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -tar-stream@^2.1.0: +tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -11533,7 +11696,7 @@ tslib@^2.0.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== -tslib@^2.0.3, tslib@^2.3.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -11601,6 +11764,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -11763,7 +11931,7 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^4.1.0, update-notifier@^4.1.1: +update-notifier@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== @@ -11782,6 +11950,26 @@ update-notifier@^4.1.0, update-notifier@^4.1.1: semver-diff "^3.1.1" xdg-basedir "^4.0.0" +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -11905,11 +12093,6 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walkdir@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" - integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ== - watchpack@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" @@ -12275,26 +12458,21 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmldom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" - integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== - xmlhttprequest-ssl@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= + xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -12427,14 +12605,14 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zip-stream@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b" - integrity sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q== +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== dependencies: archiver-utils "^2.1.0" - compress-commons "^2.1.1" - readable-stream "^3.4.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" zone.js@~0.11.4: version "0.11.4" diff --git a/src/analytics/analytics.module.ts b/src/analytics/analytics.module.ts index 07cb150ba..c33dbcaf4 100644 --- a/src/analytics/analytics.module.ts +++ b/src/analytics/analytics.module.ts @@ -2,15 +2,17 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, APP_IN import { Analytics as FirebaseAnalytics, isSupported } from 'firebase/analytics'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Analytics, ANALYTICS_PROVIDER_NAME, AnalyticsInstances } from './analytics'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken('angularfire2.analytics-instances'); const IS_SUPPORTED = new InjectionToken('angularfire2.analytics.isSupported'); const isSupportedSymbol = Symbol('angularfire2.analytics.isSupported'); -export function defaultAnalyticsInstanceFactory(isSupported: boolean) { - const defaultAnalytics = isSupported ? ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME) : undefined; +export function defaultAnalyticsInstanceFactory(isSupported: boolean, provided: FirebaseAnalytics[]|undefined, defaultApp: FirebaseApp) { + const defaultAnalytics = isSupported ? + ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp) : + undefined; return new Analytics(defaultAnalytics); } @@ -33,8 +35,8 @@ const DEFAULT_ANALYTICS_INSTANCE_PROVIDER = { useFactory: defaultAnalyticsInstanceFactory, deps: [ IS_SUPPORTED, - NgZone, [new Optional(), PROVIDED_ANALYTICS_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9e755285e..a0757b724 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -11,7 +11,9 @@ import { FirebaseApp as IFirebaseApp, getApp, registerVersion } from 'firebase/a import { FirebaseApp, FirebaseApps } from './app'; import { VERSION, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; -export function defaultFirebaseAppFactory(_: FirebaseApp[]) { +export function defaultFirebaseAppFactory(provided: FirebaseApp[]|undefined) { + // Use the provided app, if there is only one, otherwise fetch the default app + if (provided && provided.length === 1) { return provided[0]; } return new FirebaseApp(getApp()); } diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts index b6c7f5fe8..5653e0127 100644 --- a/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -2,12 +2,12 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from import { Auth as FirebaseAuth } from 'firebase/auth'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Auth, AuthInstances, AUTH_PROVIDER_NAME } from './auth'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_AUTH_INSTANCES = new InjectionToken('angularfire2.auth-instances'); -export function defaultAuthInstanceFactory() { - const defaultAuth = ɵgetDefaultInstanceOf(AUTH_PROVIDER_NAME); +export function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) { + const defaultAuth = ɵgetDefaultInstanceOf(AUTH_PROVIDER_NAME, provided, defaultApp); return new Auth(defaultAuth); } @@ -29,8 +29,8 @@ const DEFAULT_AUTH_INSTANCE_PROVIDER = { provide: Auth, useFactory: defaultAuthInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_AUTH_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/compat/auth/auth.ts b/src/compat/auth/auth.ts index 21e2c2098..9362c7422 100644 --- a/src/compat/auth/auth.ts +++ b/src/compat/auth/auth.ts @@ -3,7 +3,7 @@ import { Observable, of, from, merge, Subject } from 'rxjs'; import { switchMap, map, observeOn, shareReplay, first, filter, switchMapTo, subscribeOn } from 'rxjs/operators'; import { ɵAngularFireSchedulers, keepUnstableUntilFirst } from '@angular/fire'; import { ɵlazySDKProxy, ɵPromiseProxy, ɵapplyMixins } from '@angular/fire/compat'; -import { ɵfirebaseAppFactory, FIREBASE_OPTIONS, FIREBASE_APP_NAME } from '@angular/fire/compat'; +import { ɵfirebaseAppFactory, FIREBASE_OPTIONS, FIREBASE_APP_NAME, FirebaseApp } from '@angular/fire/compat'; import { FirebaseOptions } from 'firebase/app'; import firebase from 'firebase/compat/app'; import { isPlatformServer } from '@angular/common'; @@ -21,6 +21,33 @@ export const LANGUAGE_CODE = new InjectionToken('angularfire2.auth.langu export const USE_DEVICE_LANGUAGE = new InjectionToken('angularfire2.auth.use-device-language'); export const PERSISTENCE = new InjectionToken('angularfire.auth.persistence'); +export const ɵauthFactory = ( + app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments|null, + tenantId: string, languageCode: string|null, useDeviceLanguage: boolean|null, + settings: firebase.auth.AuthSettings|null, persistence: string|null, +) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => { + const auth = zone.runOutsideAngular(() => app.auth()); + if (useEmulator) { + auth.useEmulator(...useEmulator); + } + if (tenantId) { + auth.tenantId = tenantId; + } + auth.languageCode = languageCode; + if (useDeviceLanguage) { + auth.useDeviceLanguage(); + } + if (settings) { + for (const [k, v] of Object.entries(settings)) { + auth.settings[k] = v; + } + } + if (persistence) { + auth.setPersistence(persistence); + } + return auth; +}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]); + @Injectable({ providedIn: 'any' }) @@ -60,8 +87,8 @@ export class AngularFireAuth { @Inject(PLATFORM_ID) platformId: Object, zone: NgZone, schedulers: ɵAngularFireSchedulers, - @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // can't use the tuple here - @Optional() @Inject(SETTINGS) _settings: any, // can't use firebase.auth.AuthSettings here + @Optional() @Inject(USE_EMULATOR) useEmulator: any, // can't use the tuple here + @Optional() @Inject(SETTINGS) settings: any, // can't use firebase.auth.AuthSettings here @Optional() @Inject(TENANT_ID) tenantId: string | null, @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null, @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null, @@ -73,32 +100,7 @@ export class AngularFireAuth { observeOn(schedulers.outsideAngular), switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))), map(() => ɵfirebaseAppFactory(options, zone, name)), - map(app => zone.runOutsideAngular(() => { - const useEmulator: UseEmulatorArguments | null = _useEmulator; - const settings: firebase.auth.AuthSettings | null = _settings; - return ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => { - const auth = zone.runOutsideAngular(() => app.auth()); - if (useEmulator) { - auth.useEmulator(...useEmulator); - } - if (tenantId) { - auth.tenantId = tenantId; - } - auth.languageCode = languageCode; - if (useDeviceLanguage) { - auth.useDeviceLanguage(); - } - if (settings) { - for (const [k, v] of Object.entries(settings)) { - auth.settings[k] = v; - } - } - if (persistence) { - auth.setPersistence(persistence); - } - return auth; - }, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]); - })), + map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)), shareReplay({ bufferSize: 1, refCount: false }), ); diff --git a/src/compat/database/database.ts b/src/compat/database/database.ts index ad9bb10fb..20a06fd99 100644 --- a/src/compat/database/database.ts +++ b/src/compat/database/database.ts @@ -16,6 +16,7 @@ import { LANGUAGE_CODE, USE_DEVICE_LANGUAGE, PERSISTENCE, + ɵauthFactory, } from '@angular/fire/compat/auth'; import firebase from 'firebase/compat/app'; import { ɵcacheInstance } from '@angular/fire'; @@ -42,7 +43,7 @@ export class AngularFireDatabase { @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // tuple isn't working here @Optional() auth: AngularFireAuth, @Optional() @Inject(USE_AUTH_EMULATOR) useAuthEmulator: any, - @Optional() @Inject(AUTH_SETTINGS) _settings: any, // can't use firebase.auth.AuthSettings here + @Optional() @Inject(AUTH_SETTINGS) authSettings: any, // can't use firebase.auth.AuthSettings here @Optional() @Inject(TENANT_ID) tenantId: string | null, @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null, @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null, @@ -53,30 +54,7 @@ export class AngularFireDatabase { const app = ɵfirebaseAppFactory(options, zone, name); if (auth) { - const authSettings: firebase.auth.AuthSettings | null = _settings; - ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => { - const auth = zone.runOutsideAngular(() => app.auth()); - if (useAuthEmulator) { - // @ts-ignore - auth.useEmulator(...useAuthEmulator); - } - if (tenantId) { - auth.tenantId = tenantId; - } - auth.languageCode = languageCode; - if (useDeviceLanguage) { - auth.useDeviceLanguage(); - } - if (authSettings) { - for (const [k, v] of Object.entries(authSettings)) { - auth.settings[k] = v; - } - } - if (persistence) { - auth.setPersistence(persistence); - } - return auth; - }, [useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence]); + ɵauthFactory(app, zone, useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence); } this.database = ɵcacheInstance(`${app.name}.database.${databaseURL}`, 'AngularFireDatabase', app.name, () => { diff --git a/src/compat/firestore/firestore.ts b/src/compat/firestore/firestore.ts index 0afff0fa9..382334bd8 100644 --- a/src/compat/firestore/firestore.ts +++ b/src/compat/firestore/firestore.ts @@ -28,6 +28,7 @@ import { LANGUAGE_CODE, USE_DEVICE_LANGUAGE, PERSISTENCE, + ɵauthFactory, } from '@angular/fire/compat/auth'; import { ɵcacheInstance } from '@angular/fire'; @@ -146,7 +147,7 @@ export class AngularFirestore { @Optional() @Inject(USE_EMULATOR) _useEmulator: any, @Optional() auth: AngularFireAuth, @Optional() @Inject(USE_AUTH_EMULATOR) useAuthEmulator: any, - @Optional() @Inject(AUTH_SETTINGS) _settings: any, // can't use firebase.auth.AuthSettings here + @Optional() @Inject(AUTH_SETTINGS) authSettings: any, // can't use firebase.auth.AuthSettings here @Optional() @Inject(TENANT_ID) tenantId: string | null, @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null, @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null, @@ -154,33 +155,9 @@ export class AngularFirestore { ) { const app = ɵfirebaseAppFactory(options, zone, name); const useEmulator: UseEmulatorArguments | null = _useEmulator; - - + if (auth) { - const authSettings: firebase.auth.AuthSettings | null = _settings; - ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => { - const auth = zone.runOutsideAngular(() => app.auth()); - if (useAuthEmulator) { - // @ts-ignore - auth.useEmulator(...useAuthEmulator); - } - if (tenantId) { - auth.tenantId = tenantId; - } - auth.languageCode = languageCode; - if (useDeviceLanguage) { - auth.useDeviceLanguage(); - } - if (authSettings) { - for (const [k, v] of Object.entries(authSettings)) { - auth.settings[k] = v; - } - } - if (persistence) { - auth.setPersistence(persistence); - } - return auth; - }, [useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence]); + ɵauthFactory(app, zone, useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence); } [this.firestore, this.persistenceEnabled$] = ɵcacheInstance(`${app.name}.firestore`, 'AngularFirestore', app.name, () => { diff --git a/src/core.ts b/src/core.ts index 594876487..976155f6e 100644 --- a/src/core.ts +++ b/src/core.ts @@ -54,9 +54,17 @@ function matchDep(a: any, b: any) { } } -export function ɵgetDefaultInstanceOf(identifier: string): T|undefined { - const defaultApp: FirebaseAppWithContainer = getApp() as any; - const provider = defaultApp.container.getProvider(identifier as never); +export function ɵgetDefaultInstanceOf(identifier: string, provided: T[]|undefined, defaultApp: FirebaseApp): T|undefined { + if (provided) { + // Was provide* only called once? If so grab that + if (provided.length === 1) { return provided[0]; } + const providedUsingDefaultApp = provided.filter((it: any) => it.app === defaultApp); + // Was provide* only called once, using the default app? If so use that + if (providedUsingDefaultApp.length === 1) { return providedUsingDefaultApp[0]; } + } + // Grab the default instance from the defaultApp + const defaultAppWithContainer: FirebaseAppWithContainer = defaultApp as any; + const provider = defaultAppWithContainer.container.getProvider(identifier as never); return provider.getImmediate(); } diff --git a/src/database/database.module.ts b/src/database/database.module.ts index 2933005a9..f1ea523f9 100644 --- a/src/database/database.module.ts +++ b/src/database/database.module.ts @@ -4,12 +4,12 @@ import { Database as FirebaseDatabase } from 'firebase/database'; import { AuthInstances } from '@angular/fire/auth'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Database, DatabaseInstances, DATABASE_PROVIDER_NAME } from './database'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_DATABASE_INSTANCES = new InjectionToken('angularfire2.database-instances'); -export function defaultDatabaseInstanceFactory(_: Database[]) { - const defaultDatabase = ɵgetDefaultInstanceOf(DATABASE_PROVIDER_NAME); +export function defaultDatabaseInstanceFactory(provided: FirebaseDatabase[]|undefined, defaultApp: FirebaseApp) { + const defaultDatabase = ɵgetDefaultInstanceOf(DATABASE_PROVIDER_NAME, provided, defaultApp); return new Database(defaultDatabase); } @@ -31,8 +31,8 @@ const DEFAULT_DATABASE_INSTANCE_PROVIDER = { provide: Database, useFactory: defaultDatabaseInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_DATABASE_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/firestore/firestore.module.ts b/src/firestore/firestore.module.ts index 53a913bf8..a9de58a15 100644 --- a/src/firestore/firestore.module.ts +++ b/src/firestore/firestore.module.ts @@ -3,12 +3,12 @@ import { Firestore as FirebaseFirestore } from 'firebase/firestore'; import { AuthInstances } from '@angular/fire/auth'; import { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers } from '@angular/fire'; import { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './firestore'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken('angularfire2.firestore-instances'); -export function defaultFirestoreInstanceFactory(_: Firestore[]) { - const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME); +export function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) { + const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME, provided, defaultApp); // TODO how do I throw if it's undefined, unless @Optional(), is there an Angular NULL_INJECTOR token // or something, can I use an @NgModule providers or something? return new Firestore(defaultFirestore); @@ -32,8 +32,8 @@ const DEFAULT_FIRESTORE_INSTANCE_PROVIDER = { provide: Firestore, useFactory: defaultFirestoreInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_FIRESTORE_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/firestore/lite/lite.module.ts b/src/firestore/lite/lite.module.ts index 3cf6f3ad6..714122851 100644 --- a/src/firestore/lite/lite.module.ts +++ b/src/firestore/lite/lite.module.ts @@ -3,12 +3,12 @@ import { Firestore as FirebaseFirestore } from 'firebase/firestore/lite'; import { AuthInstances } from '@angular/fire/auth'; import { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers } from '@angular/fire'; import { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './lite'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken('angularfire2.firestore-lite-instances'); -export function defaultFirestoreInstanceFactory(_: Firestore[]) { - const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME); +export function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) { + const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME, provided, defaultApp); return new Firestore(defaultFirestore); } @@ -30,8 +30,8 @@ const DEFAULT_FIRESTORE_INSTANCE_PROVIDER = { provide: Firestore, useFactory: defaultFirestoreInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_FIRESTORE_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/functions/functions.module.ts b/src/functions/functions.module.ts index af4751f60..9cc6a5ae5 100644 --- a/src/functions/functions.module.ts +++ b/src/functions/functions.module.ts @@ -2,12 +2,13 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from import { Functions as FirebaseFunctions } from 'firebase/functions'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Functions, FunctionsInstances, FUNCTIONS_PROVIDER_NAME } from './functions'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; +import { AuthInstances } from '@angular/fire/auth'; export const PROVIDED_FUNCTIONS_INSTANCES = new InjectionToken('angularfire2.functions-instances'); -export function defaultFunctionsInstanceFactory(_: Functions[]) { - const defaultAuth = ɵgetDefaultInstanceOf(FUNCTIONS_PROVIDER_NAME); +export function defaultFunctionsInstanceFactory(provided: FirebaseFunctions[]|undefined, defaultApp: FirebaseApp) { + const defaultAuth = ɵgetDefaultInstanceOf(FUNCTIONS_PROVIDER_NAME, provided, defaultApp); return new Functions(defaultAuth); } @@ -29,8 +30,8 @@ const DEFAULT_FUNCTIONS_INSTANCE_PROVIDER = { provide: Functions, useFactory: defaultFunctionsInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_FUNCTIONS_INSTANCES ], + FirebaseApp, ] }; @@ -54,6 +55,8 @@ export function provideFunctions(fn: () => FirebaseFunctions): ModuleWithProvide NgZone, ɵAngularFireSchedulers, FirebaseApps, + // Defensively load Auth first, if provided + [new Optional(), AuthInstances ], ] }] }; diff --git a/src/messaging/messaging.module.ts b/src/messaging/messaging.module.ts index 115535251..7f946b49a 100644 --- a/src/messaging/messaging.module.ts +++ b/src/messaging/messaging.module.ts @@ -2,15 +2,17 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, APP_IN import { isSupported, Messaging as FirebaseMessaging } from 'firebase/messaging'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Messaging, MessagingInstances, MESSAGING_PROVIDER_NAME } from './messaging'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; const PROVIDED_MESSAGING_INSTANCES = new InjectionToken('angularfire2.messaging-instances'); const IS_SUPPORTED = new InjectionToken('angularfire2.messaging.isSupported'); const isSupportedSymbol = Symbol('angularfire2.messaging.isSupported'); -export function defaultMessagingInstanceFactory(isSupported: boolean) { - const defaultAuth = isSupported ? ɵgetDefaultInstanceOf(MESSAGING_PROVIDER_NAME) : undefined; +export function defaultMessagingInstanceFactory(isSupported: boolean, provided: FirebaseMessaging[]|undefined, defaultApp: FirebaseApp) { + const defaultAuth = isSupported ? + ɵgetDefaultInstanceOf(MESSAGING_PROVIDER_NAME, provided, defaultApp) : + undefined; return new Messaging(defaultAuth); } @@ -33,8 +35,8 @@ const DEFAULT_MESSAGING_INSTANCE_PROVIDER = { useFactory: defaultMessagingInstanceFactory, deps: [ IS_SUPPORTED, - NgZone, [new Optional(), PROVIDED_MESSAGING_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/performance/performance.module.ts b/src/performance/performance.module.ts index d17937e24..c950e323f 100644 --- a/src/performance/performance.module.ts +++ b/src/performance/performance.module.ts @@ -2,12 +2,12 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from import { FirebasePerformance } from 'firebase/performance'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Performance, PerformanceInstances, PERFORMANCE_PROVIDER_NAME } from './performance'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_PERFORMANCE_INSTANCES = new InjectionToken('angularfire2.performance-instances'); -export function defaultPerformanceInstanceFactory(_: Performance[]) { - const defaultPerformance = ɵgetDefaultInstanceOf(PERFORMANCE_PROVIDER_NAME); +export function defaultPerformanceInstanceFactory(provided: FirebasePerformance[]|undefined, defaultApp: FirebaseApp) { + const defaultPerformance = ɵgetDefaultInstanceOf(PERFORMANCE_PROVIDER_NAME, provided, defaultApp); return new Performance(defaultPerformance); } @@ -29,8 +29,8 @@ const DEFAULT_PERFORMANCE_INSTANCE_PROVIDER = { provide: Performance, useFactory: defaultPerformanceInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_PERFORMANCE_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/remote-config/remote-config.module.ts b/src/remote-config/remote-config.module.ts index ba5de0e74..cd8d55a97 100644 --- a/src/remote-config/remote-config.module.ts +++ b/src/remote-config/remote-config.module.ts @@ -2,12 +2,12 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from import { RemoteConfig as FirebaseRemoteConfig } from 'firebase/remote-config'; import { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers } from '@angular/fire'; import { RemoteConfig, RemoteConfigInstances, REMOTE_CONFIG_PROVIDER_NAME } from './remote-config'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; export const PROVIDED_REMOTE_CONFIG_INSTANCES = new InjectionToken('angularfire2.remote-config-instances'); -export function defaultRemoteConfigInstanceFactory(_: RemoteConfig[]) { - const defaultRemoteConfig = ɵgetDefaultInstanceOf(REMOTE_CONFIG_PROVIDER_NAME); +export function defaultRemoteConfigInstanceFactory(provided: FirebaseRemoteConfig[]|undefined, defaultApp: FirebaseApp) { + const defaultRemoteConfig = ɵgetDefaultInstanceOf(REMOTE_CONFIG_PROVIDER_NAME, provided, defaultApp); return new RemoteConfig(defaultRemoteConfig); } @@ -29,8 +29,8 @@ const DEFAULT_REMOTE_CONFIG_INSTANCE_PROVIDER = { provide: RemoteConfig, useFactory: defaultRemoteConfigInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_REMOTE_CONFIG_INSTANCES ], + FirebaseApp, ] }; diff --git a/src/schematics/update/v7/index.ts b/src/schematics/update/v7/index.ts index c3fa6497a..d1a039309 100644 --- a/src/schematics/update/v7/index.ts +++ b/src/schematics/update/v7/index.ts @@ -2,6 +2,7 @@ import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devk import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks'; import { overwriteIfExists, safeReadJSON, stringifyFormatted } from '../../ng-add-common'; import { default as defaultDependencies, firebaseFunctions } from '../../versions.json'; +import { join } from 'path'; const IMPORT_REGEX = /(?import|export)\s+(?:(?[\w,{}\s\*]+)\s+from)?\s*(?:(?["'])?(?[@\w\s\\\/.-]+)\3?)\s*(?[;\n])/g; interface ImportRegexMatch { @@ -44,11 +45,18 @@ export const ngUpdate = (): Rule => ( overwriteIfExists(host, 'package.json', stringifyFormatted(packageJson)); context.addTask(new NodePackageInstallTask()); + const angularJson = host.exists('angular.json') && safeReadJSON('angular.json', host); + if (packageJson === undefined) { + throw new SchematicsException('Could not locate angular.json'); + } + + const srcRoots: string[] = Object.values(angularJson.projects).map((it: any) => join('/', it.sourceRoot)); + host.visit(filePath => { if ( !filePath.endsWith('.ts') || filePath.endsWith('.d.ts') || - filePath.startsWith('/node_modules') + !srcRoots.find(root => filePath.startsWith(root)) ) { return; } diff --git a/src/storage/storage.module.ts b/src/storage/storage.module.ts index bbef7bd90..dbd18a637 100644 --- a/src/storage/storage.module.ts +++ b/src/storage/storage.module.ts @@ -2,12 +2,13 @@ import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from import { FirebaseStorage } from 'firebase/storage'; import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers } from '@angular/fire'; import { Storage, StorageInstances, STORAGE_PROVIDER_NAME } from './storage'; -import { FirebaseApps } from '@angular/fire/app'; +import { FirebaseApps, FirebaseApp } from '@angular/fire/app'; +import { AuthInstances } from '@angular/fire/auth'; export const PROVIDED_STORAGE_INSTANCES = new InjectionToken('angularfire2.storage-instances'); -export function defaultStorageInstanceFactory(_: Storage[]) { - const defaultAuth = ɵgetDefaultInstanceOf(STORAGE_PROVIDER_NAME); +export function defaultStorageInstanceFactory(provided: FirebaseStorage[]|undefined, defaultApp: FirebaseApp) { + const defaultAuth = ɵgetDefaultInstanceOf(STORAGE_PROVIDER_NAME, provided, defaultApp); return new Storage(defaultAuth); } @@ -29,8 +30,8 @@ const DEFAULT_STORAGE_INSTANCE_PROVIDER = { provide: Storage, useFactory: defaultStorageInstanceFactory, deps: [ - NgZone, [new Optional(), PROVIDED_STORAGE_INSTANCES ], + FirebaseApp, ] }; @@ -54,6 +55,8 @@ export function provideStorage(fn: () => FirebaseStorage): ModuleWithProviders any, macrotask: MacroTask) => { }; }; -export const ɵzoneWrap = (it: T): T => { +export const ɵzoneWrap = (it: T, blockUntilFirst: boolean): T => { // function() is needed for the arguments object // tslint:disable-next-line:only-arrow-functions return function() { let macrotask: MacroTask | undefined; - // if this is a callback function, e.g, onSnapshot, we should create a microtask and invoke it - // only once one of the callback functions is tripped. - for (let i = 0; i < arguments.length; i++) { - if (typeof arguments[i] === 'function') { - macrotask ||= run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop)); - // TODO create a microtask to track callback functions - arguments[i] = zoneWrapFn(arguments[i], macrotask); + if (blockUntilFirst) { + // if this is a callback function, e.g, onSnapshot, we should create a microtask and invoke it + // only once one of the callback functions is tripped. + for (let i = 0; i < arguments.length; i++) { + if (typeof arguments[i] === 'function') { + macrotask ||= run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop)); + // TODO create a microtask to track callback functions + arguments[i] = zoneWrapFn(arguments[i], macrotask); + } } } const ret = runOutsideAngular(() => (it as any).apply(this, arguments)); + if (!blockUntilFirst) { + if (ret instanceof Observable) { + const schedulers = getSchedulers(); + return ret.pipe( + subscribeOn(schedulers.outsideAngular), + observeOn(schedulers.insideAngular), + ); + } else { + return run(() => ret); + } + } if (ret instanceof Observable) { return ret.pipe(keepUnstableUntilFirst) as any; } else if (ret instanceof Promise) { @@ -175,7 +188,7 @@ export const ɵzoneWrap = (it: T): T => { // tslint:disable-next-line:only-arrow-functions return function() { setTimeout(() => { - if (macrotask.state === 'scheduled') { + if (macrotask && macrotask.state === 'scheduled') { macrotask.invoke(); } }, 10); diff --git a/tools/build.ts b/tools/build.ts index 62f942867..4f85864d2 100644 --- a/tools/build.ts +++ b/tools/build.ts @@ -21,6 +21,7 @@ const ENTRY_NAMES = MODULES.map(m => m === 'core' ? '@angular/fire' : `@angular/ interface OverrideOptions { exportName?: string; zoneWrap?: boolean; + blockUntilFirst?: boolean; } function zoneWrapExports() { @@ -31,12 +32,13 @@ function zoneWrapExports() { exports: string[], overrides: Record = {} ) => { - const imported = await import(path); - const toBeExported = exports.filter(it => !it.startsWith('_') && overrides[it] !== null).map(importName => { - const zoneWrap = overrides[importName]?.zoneWrap ?? importName[0] !== importName[0].toUpperCase(); - const exportName = overrides[importName]?.exportName ?? importName; - return [importName, exportName, zoneWrap]; - }); + const toBeExported: Array<[string, string, boolean]> = exports. + filter(it => !it.startsWith('_') && overrides[it] !== null). + map(importName => { + const zoneWrap = overrides[importName]?.zoneWrap ?? importName[0] !== importName[0].toUpperCase(); + const exportName = overrides[importName]?.exportName ?? importName; + return [importName, exportName, zoneWrap]; + }); const zoneWrapped = toBeExported.filter(([, , zoneWrap]) => zoneWrap); const rawExport = toBeExported.filter(([, , zoneWrap]) => !zoneWrap); await writeFile(`./src/${module}/${name}.ts`, `// DO NOT MODIFY, this file is autogenerated by tools/build.ts${zoneWrapped.length > 0 ? ` @@ -49,7 +51,7 @@ export { ${rawExport.map(([importName, exportName]) => `${importName}${exportName === importName ? '' : `as ${exportName}`}`).join(',\n ')} } from '${path}'; ` : ''} -${zoneWrapped.map(([importName, exportName]) => `export const ${exportName} = ɵzoneWrap(_${importName});`).join('\n')} +${zoneWrapped.map(([importName, exportName]) => `export const ${exportName} = ɵzoneWrap(_${importName}, ${overrides[importName]?.blockUntilFirst ?? true});`).join('\n')} `); }; return Promise.all([ reexport('analytics', 'firebase', 'firebase/analytics', tsKeys()), @@ -70,7 +72,9 @@ ${zoneWrapped.map(([importName, exportName]) => `export const ${exportName} = ɵ httpsCallable: { exportName: 'httpsCallableData' }, }), reexport('functions', 'firebase', 'firebase/functions', tsKeys()), - reexport('messaging', 'firebase', 'firebase/messaging', tsKeys()), + reexport('messaging', 'firebase', 'firebase/messaging', tsKeys(), { + onMessage: { blockUntilFirst: false }, + }), reexport('remote-config', 'rxfire', 'rxfire/remote-config', tsKeys(), { getValue: { exportName: 'getValueChanges' }, getString: { exportName: 'getStringChanges' },