diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9934c76a7..24fe07e5e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,9 +29,9 @@ jobs: id: node_modules_cache with: path: ./node_modules - key: ${{ runner.os }}-14-8-node_modules-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-14-beta-node_modules-${{ hashFiles('yarn.lock') }} restore-keys: | - ${{ runner.os }}-14-8-node_modules- + ${{ runner.os }}-14-beta-node_modules- ${{ runner.os }}-14-node_modules- - name: Yarn offline cache if: steps.node_modules_cache.outputs.cache-hit != 'true' @@ -61,10 +61,10 @@ jobs: needs: build strategy: matrix: - node: ["10", "12", "14"] - firebase: ["7", "8"] + node: ["12", "14"] + firebase: ["beta"] fail-fast: false - name: Test Firebase v${{ matrix.firebase }} on Node.js ${{ matrix.node }} + name: Test Firebase @${{ matrix.firebase }} on Node.js ${{ matrix.node }} steps: - name: Checkout uses: actions/checkout@v2 @@ -94,7 +94,7 @@ jobs: run: | yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache yarn install --frozen-lockfile --prefer-offline - yarn add firebase@^${{ matrix.firebase }}.0 --prefer-offline + yarn add firebase@${{ matrix.firebase }} --prefer-offline - name: Firebase emulator cache uses: actions/cache@v2 with: @@ -110,10 +110,10 @@ jobs: headless: runs-on: ubuntu-latest needs: build - name: Test Firebase v${{ matrix.firebase }} on Headless Chrome + name: Test Firebase @${{ matrix.firebase }} on Headless Chrome strategy: matrix: - firebase: ["7", "8"] + firebase: ["beta"] fail-fast: false steps: - name: Checkout @@ -144,7 +144,7 @@ jobs: run: | yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache yarn install --frozen-lockfile --prefer-offline - yarn add firebase@^${{ matrix.firebase }}.0 --prefer-offline + yarn add firebase@${{ matrix.firebase }} --prefer-offline - name: Firebase emulator cache uses: actions/cache@v2 with: diff --git a/.npmignore b/.npmignore index 4010b01ac..1af916562 100644 --- a/.npmignore +++ b/.npmignore @@ -1,3 +1,5 @@ *.spec.* test-config.* -publish.sh \ No newline at end of file +publish.sh +*.min.js +*.min.js.map \ No newline at end of file diff --git a/package.json b/package.json index 10b7b91d6..3d043e49e 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,19 @@ { "name": "@angular/fire", - "version": "6.1.4", + "version": "7.0.0", "description": "The official Angular library for Firebase.", "private": true, "scripts": { - "test": "npm run build:jasmine && npm run test:node", + "test": "npm run build:jasmine && npm run test:node && npm run test:chrome-headless", "test:watch": "firebase emulators:exec --project=angularfire2-test \"ng test --watch=true --browsers=Chrome\"", "test:chrome": "firebase emulators:exec --project=angularfire2-test \"ng test --watch=false --browsers=Chrome\"", "test:chrome-headless": "firebase emulators:exec --project=angularfire2-test \"ng test --watch=false --browsers=ChromeHeadless\"", "lint": "ng lint", - "test:node": "firebase emulators:exec --project=angularfire2-test \"node -r tsconfig-paths/register ./tools/jasmine.js\"", + "test:node": "node -r tsconfig-paths/register ./tools/jasmine.js", "test:typings": "node ./tools/run-typings-test.js", "test:build": "bash ./test/ng-build/build.sh", "test:all": "npm run test:node && npm run test:chrome-headless && npm run test:typings && npm run test:build", - "build": "ttsc -p tsconfig.build.json; node ./tools/build.js", + "build": "ttsc -p tsconfig.build.json; node --trace-warnings ./tools/build.js", "build:jasmine": "tsc -p tsconfig.jasmine.json; cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1" }, @@ -49,7 +49,7 @@ "@angular/platform-browser": "^9.0.0 || ^10.0.0 || ^11.0.0", "@angular/platform-browser-dynamic": "^9.0.0 || ^10.0.0 || ^11.0.0", "@angular/router": "^9.0.0 || ^10.0.0 || ^11.0.0", - "firebase": "^7.0 || ^8.0", + "firebase": "^9.0.0-beta.1", "firebase-admin": "^8.10.0", "firebase-functions": "^3.6.0", "firebase-tools": "^8.0.0", diff --git a/sample/package.json b/sample/package.json index bc0b2860f..bd1e80f66 100644 --- a/sample/package.json +++ b/sample/package.json @@ -30,7 +30,7 @@ "@angular/service-worker": "^11.0.0", "@nguniversal/express-engine": "~10.1.0", "core-js": "^3.6.5", - "firebase": "^8.0.0", + "firebase": "^9.0.0-beta.1", "first-input-delay": "^0.1.3", "proxy-polyfill": "^0.3.2", "rxjs": "~6.6.3", diff --git a/sample/server.ts b/sample/server.ts index a82723a8c..8742672ce 100644 --- a/sample/server.ts +++ b/sample/server.ts @@ -15,7 +15,7 @@ global['WebSocket'] = require('ws'); /* tslint:enable:no-string-literal */ // include the protos required to bundle firestore -import 'dir-loader!./firestore-protos'; +// import 'dir-loader!./firestore-protos'; // The Express app is exported so that it can be used by serverless Functions. export function app() { @@ -36,7 +36,7 @@ export function app() { // Serve static files from /browser server.get('*.*', express.static(distFolder, { maxAge: '1y' - })); + }) as any); // TODO fix express types // All regular routes use the Universal engine server.get('*', (req, res) => { diff --git a/sample/src/app/app.component.ts b/sample/src/app/app.component.ts index 90409f892..90bf73b35 100644 --- a/sample/src/app/app.component.ts +++ b/sample/src/app/app.component.ts @@ -1,5 +1,5 @@ import { ApplicationRef, Component } from '@angular/core'; -import { FirebaseApp } from '@angular/fire'; +import { FirebaseApp } from '@angular/fire/compat'; import { debounceTime } from 'rxjs/operators'; @Component({ diff --git a/sample/src/app/app.module.ts b/sample/src/app/app.module.ts index cd31d6864..e820ee457 100644 --- a/sample/src/app/app.module.ts +++ b/sample/src/app/app.module.ts @@ -6,7 +6,7 @@ import { AppComponent } from './app.component'; import { ServiceWorkerModule } from '@angular/service-worker'; import { environment } from '../environments/environment'; -import { AngularFireModule } from '@angular/fire'; +import { AngularFireModule } from '@angular/fire/compat'; import { AngularFireAnalyticsModule, @@ -16,17 +16,17 @@ import { ScreenTrackingService, UserTrackingService, COLLECTION_ENABLED -} from '@angular/fire/analytics'; +} from '@angular/fire/compat/analytics'; import { FirestoreComponent } from './firestore/firestore.component'; -import { AngularFireDatabaseModule, USE_EMULATOR as USE_DATABASE_EMULATOR } from '@angular/fire/database'; -import { AngularFirestoreModule, USE_EMULATOR as USE_FIRESTORE_EMULATOR, SETTINGS as FIRESTORE_SETTINGS } from '@angular/fire/firestore'; -import { AngularFireStorageModule } from '@angular/fire/storage'; -import { AngularFireAuthModule, USE_DEVICE_LANGUAGE, USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/auth'; -import { AngularFireMessagingModule, SERVICE_WORKER, VAPID_KEY } from '@angular/fire/messaging'; -import { AngularFireFunctionsModule, USE_EMULATOR as USE_FUNCTIONS_EMULATOR, ORIGIN as FUNCTIONS_ORIGIN, NEW_ORIGIN_BEHAVIOR } from '@angular/fire/functions'; -import { AngularFireRemoteConfigModule, SETTINGS as REMOTE_CONFIG_SETTINGS, DEFAULTS as REMOTE_CONFIG_DEFAULTS } from '@angular/fire/remote-config'; -import { AngularFirePerformanceModule, PerformanceMonitoringService } from '@angular/fire/performance'; +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 { 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'; +import { AngularFireRemoteConfigModule, SETTINGS as REMOTE_CONFIG_SETTINGS, DEFAULTS as REMOTE_CONFIG_DEFAULTS } from '@angular/fire/compat/remote-config'; +import { AngularFirePerformanceModule, PerformanceMonitoringService } from '@angular/fire/compat/performance'; import { AngularFireAuthGuardModule } from '@angular/fire/auth-guard'; import { DatabaseComponent } from './database/database.component'; import { StorageComponent } from './storage/storage.component'; @@ -82,7 +82,6 @@ import { UpboatsComponent } from './upboats/upboats.component'; { 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: NEW_ORIGIN_BEHAVIOR, useValue: true }, { 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' } }, diff --git a/sample/src/app/auth/auth.component.ts b/sample/src/app/auth/auth.component.ts index 8aa16d343..1531605bd 100644 --- a/sample/src/app/auth/auth.component.ts +++ b/sample/src/app/auth/auth.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit, OnDestroy, PLATFORM_ID } from '@angular/core'; -import { AngularFireAuth } from '@angular/fire/auth'; -import firebase from 'firebase/app'; +import { AngularFireAuth } from '@angular/fire/compat/auth'; +import firebase from 'firebase/compat/app'; import { Subscription } from 'rxjs'; import { map } from 'rxjs/operators'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; import { Inject } from '@angular/core'; import { isPlatformServer } from '@angular/common'; diff --git a/sample/src/app/database/database.component.ts b/sample/src/app/database/database.component.ts index 9438d4f52..ea4264aea 100644 --- a/sample/src/app/database/database.component.ts +++ b/sample/src/app/database/database.component.ts @@ -1,9 +1,9 @@ import { Component, Inject, OnInit, PLATFORM_ID } from '@angular/core'; -import { AngularFireDatabase } from '@angular/fire/database'; +import { AngularFireDatabase } from '@angular/fire/compat/database'; import { EMPTY, Observable } from 'rxjs'; import { makeStateKey, TransferState } from '@angular/platform-browser'; import { startWith, tap } from 'rxjs/operators'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; import { isPlatformServer } from '@angular/common'; @Component({ diff --git a/sample/src/app/firestore-offline/firestore-offline.component.ts b/sample/src/app/firestore-offline/firestore-offline.component.ts index cb21df1fd..d88fc7ae0 100644 --- a/sample/src/app/firestore-offline/firestore-offline.component.ts +++ b/sample/src/app/firestore-offline/firestore-offline.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFirestore } from '@angular/fire/firestore'; +import { AngularFirestore } from '@angular/fire/compat/firestore'; import { Observable } from 'rxjs'; import { startWith, tap } from 'rxjs/operators'; import { makeStateKey, TransferState } from '@angular/platform-browser'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; import { AngularFirestoreOffline } from './firestore-offline.module'; @Component({ diff --git a/sample/src/app/firestore-offline/firestore-offline.module.ts b/sample/src/app/firestore-offline/firestore-offline.module.ts index 7bd3bc678..e3e3c2610 100644 --- a/sample/src/app/firestore-offline/firestore-offline.module.ts +++ b/sample/src/app/firestore-offline/firestore-offline.module.ts @@ -1,8 +1,9 @@ import { Inject, Injectable, InjectionToken, NgModule, NgZone, Optional, PLATFORM_ID } from '@angular/core'; -import { FirebaseOptions, FIREBASE_OPTIONS } from '@angular/fire'; -import { USE_EMULATOR } from '@angular/fire/firestore'; -import { AngularFirestore, SETTINGS, Settings } from '@angular/fire/firestore'; -import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/auth'; +import { FIREBASE_OPTIONS } from '@angular/fire'; +import { FirebaseOptions } from 'firebase/app'; +import { USE_EMULATOR } from '@angular/fire/compat/firestore'; +import { AngularFirestore, SETTINGS, Settings } from '@angular/fire/compat/firestore'; +import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/compat/auth'; export const FIRESTORE_OFFLINE = new InjectionToken('my.firestore'); diff --git a/sample/src/app/firestore/firestore.component.ts b/sample/src/app/firestore/firestore.component.ts index d01e0cf1c..a4bc95668 100644 --- a/sample/src/app/firestore/firestore.component.ts +++ b/sample/src/app/firestore/firestore.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFirestore } from '@angular/fire/firestore'; +import { AngularFirestore } from '@angular/fire/compat/firestore'; import { Observable } from 'rxjs'; import { startWith, tap } from 'rxjs/operators'; import { makeStateKey, TransferState } from '@angular/platform-browser'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; @Component({ selector: 'app-firestore', diff --git a/sample/src/app/functions/functions.component.ts b/sample/src/app/functions/functions.component.ts index b580c538b..640965eb0 100644 --- a/sample/src/app/functions/functions.component.ts +++ b/sample/src/app/functions/functions.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFireFunctions } from '@angular/fire/functions'; +import { AngularFireFunctions } from '@angular/fire/compat/functions'; import { EMPTY, Observable } from 'rxjs'; @Component({ diff --git a/sample/src/app/home/home.component.ts b/sample/src/app/home/home.component.ts index 3f580e958..2aa59973f 100644 --- a/sample/src/app/home/home.component.ts +++ b/sample/src/app/home/home.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { FirebaseApp } from '@angular/fire'; +import { FirebaseApp } from '@angular/fire/compat'; @Component({ selector: 'app-home', diff --git a/sample/src/app/messaging/messaging.component.ts b/sample/src/app/messaging/messaging.component.ts index 27d8fb416..16f2495ca 100644 --- a/sample/src/app/messaging/messaging.component.ts +++ b/sample/src/app/messaging/messaging.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFireMessaging } from '@angular/fire/messaging'; -import { trace } from '@angular/fire/performance'; +import { AngularFireMessaging } from '@angular/fire/compat/messaging'; +import { trace } from '@angular/fire/compat/performance'; import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; diff --git a/sample/src/app/protected-lazy/protected-lazy.component.ts b/sample/src/app/protected-lazy/protected-lazy.component.ts index f84ce2d59..b535a2b1a 100644 --- a/sample/src/app/protected-lazy/protected-lazy.component.ts +++ b/sample/src/app/protected-lazy/protected-lazy.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { DocumentChangeAction } from '@angular/fire/firestore'; +import { DocumentChangeAction } from '@angular/fire/compat/firestore'; import { Observable } from 'rxjs'; import { AngularFirestoreOffline } from '../firestore-offline/firestore-offline.module'; diff --git a/sample/src/app/remote-config/remote-config.component.ts b/sample/src/app/remote-config/remote-config.component.ts index a2d3311c5..820f53dd5 100644 --- a/sample/src/app/remote-config/remote-config.component.ts +++ b/sample/src/app/remote-config/remote-config.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFireRemoteConfig, mapToObject } from '@angular/fire/remote-config'; -import { trace } from '@angular/fire/performance'; +import { AngularFireRemoteConfig, mapToObject } from '@angular/fire/compat/remote-config'; +import { trace } from '@angular/fire/compat/performance'; import { Observable } from 'rxjs'; @Component({ diff --git a/sample/src/app/storage/storage.component.ts b/sample/src/app/storage/storage.component.ts index 2dc184ef1..aa5edeaf1 100644 --- a/sample/src/app/storage/storage.component.ts +++ b/sample/src/app/storage/storage.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import { AngularFireStorage } from '@angular/fire/storage'; +import { AngularFireStorage } from '@angular/fire/compat/storage'; import { Observable, of } from 'rxjs'; import { startWith, tap } from 'rxjs/operators'; import { makeStateKey, TransferState } from '@angular/platform-browser'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; const TRANSPARENT_PNG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='; diff --git a/sample/src/app/upboats/upboats.component.ts b/sample/src/app/upboats/upboats.component.ts index 4fa023171..6e9e3b93d 100644 --- a/sample/src/app/upboats/upboats.component.ts +++ b/sample/src/app/upboats/upboats.component.ts @@ -2,9 +2,9 @@ import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { map, startWith, tap } from 'rxjs/operators'; import { AngularFirestoreOffline } from '../firestore-offline/firestore-offline.module'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { makeStateKey, TransferState } from '@angular/platform-browser'; -import { trace } from '@angular/fire/performance'; +import { trace } from '@angular/fire/compat/performance'; type Animal = { name: string, upboats: number, id: string, hasPendingWrites: boolean }; diff --git a/sample/tsconfig.json b/sample/tsconfig.json index 8c4ef3bba..cec839c80 100644 --- a/sample/tsconfig.json +++ b/sample/tsconfig.json @@ -11,6 +11,7 @@ "moduleResolution": "node", "importHelpers": true, "target": "es2015", + "skipLibCheck": true, "lib": [ "es2018", "dom" diff --git a/sample/yarn.lock b/sample/yarn.lock index 628f4959b..020c102b6 100644 --- a/sample/yarn.lock +++ b/sample/yarn.lock @@ -241,7 +241,7 @@ tslib "^2.0.0" "@angular/fire@../dist/packages-dist": - version "6.1.1" + version "6.1.4" dependencies: tslib "^2.0.0" @@ -1182,57 +1182,100 @@ enabled "2.0.x" kuler "^2.0.0" +"@firebase/analytics-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.0.900-exp.894b5da5a.tgz#f5266516794e9a3d2deb80bf8118f1f7400b6ca7" + integrity sha512-WceCqszQxu0rBoGR9GqJQSI3Bhz6wLGBlJ+wPB0hswpYoOinZR7u/Oi9aS+mXAn5wKh5FvV6LHZpJQCPTQ70wg== + dependencies: + "@firebase/analytics" "0.0.900-exp.894b5da5a" + "@firebase/analytics-types" "0.4.0" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + "@firebase/analytics-types@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.4.0.tgz#d6716f9fa36a6e340bc0ecfe68af325aa6f60508" integrity sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA== -"@firebase/analytics@0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.6.2.tgz#7f45675a1b524fff4d9e9fe318fd6e2ed067a325" - integrity sha512-4Ceov+rPfOEPIdbjlpTim/wbcUUneIesHag4UOzvmFsRRXqbxLwQpyZQWEbTSriUeU8uTKj9yOW32hsskV9Klg== +"@firebase/analytics@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.0.900-exp.894b5da5a.tgz#d425f48b0a74424685c1c9bd5accb1d493ff3726" + integrity sha512-eECrPHZnn17n5SOv41zbvY5gETg6QYcFcAINgOekm0+uMRp1JciDOoGRtLFca6rR0dVII06zJh8mWyk6u+RCtQ== dependencies: - "@firebase/analytics-types" "0.4.0" - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/app-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.0.900-exp.894b5da5a.tgz#8da8cfb6dff08ff0ccc4e775fd0ba3e8fb3bb853" + integrity sha512-DVo9xK2bC2RJccoWlzbH0wJZgapVJ/zS/F69e5d1PtXjxzdtLAJMtaeA2kTY7UV8aZf6sE7Ahd68RCPZD2fI+w== + dependencies: + "@firebase/app" "0.0.900-exp.894b5da5a" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + dom-storage "2.1.0" + tslib "^2.1.0" + xmlhttprequest "1.8.0" "@firebase/app-types@0.6.1", "@firebase/app-types@^0.6.1": version "0.6.1" resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.1.tgz#dcbd23030a71c0c74fc95d4a3f75ba81653850e9" integrity sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg== -"@firebase/app@0.6.13": - version "0.6.13" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.13.tgz#f2e9fa9e75815e54161dc34659a60f1fffd9a450" - integrity sha512-xGrJETzvCb89VYbGSHFHCW7O/y067HRxT7MGehUE1xMxdPVBDNayHnxEuKwzfGvXAjVmajXBKFlKxaCWpgSjCQ== +"@firebase/app-types@0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.2.tgz#8578cb1061a83ced4570188be9e225d54e0f27fb" + integrity sha512-2VXvq/K+n8XMdM4L2xy5bYp2ZXMawJXluUIDzUBvMthVR+lhxK4pfFiqr1mmDbv9ydXvEAuFsD+6DpcZuJcSSw== + +"@firebase/app@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.0.900-exp.894b5da5a.tgz#8ef29af8ab98180e2b6a2df27b1d47773f211a19" + integrity sha512-/xzLbH6349mBb+RCmXP8BkBA+wL+U3Rurb9dDGRrc3umMA3BJKTST/KSW5JJaixZ51Gil9vSF4g1ZQV0yYg9Yg== dependencies: - "@firebase/app-types" "0.6.1" - "@firebase/component" "0.1.21" + "@firebase/component" "0.4.1" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - dom-storage "2.1.0" - tslib "^1.11.1" - xmlhttprequest "1.8.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/auth-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.0.900-exp.894b5da5a.tgz#b95de9c800374addb4474acfe05fa6f7548be64e" + integrity sha512-g56ZU8pn7pY0IYHSvET8My9Q7wp//2bgTLdU9IuHxvmUy7v8pdpAKnpPkBu/tlAMK5MoV5vsxB21JuQBXuRp8A== + dependencies: + "@firebase/auth" "0.0.900-exp.894b5da5a" + "@firebase/auth-types" "0.10.2" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" + node-fetch "2.6.1" + selenium-webdriver "^4.0.0-beta.2" + tslib "^2.1.0" "@firebase/auth-interop-types@0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz#9fc9bd7c879f16b8d1bb08373a0f48c3a8b74557" integrity sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw== -"@firebase/auth-types@0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.1.tgz#7815e71c9c6f072034415524b29ca8f1d1770660" - integrity sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw== +"@firebase/auth-types@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.2.tgz#3fad953380c447b7545122430a4c7a9bc8355001" + integrity sha512-0GMWVWh5TBCYIQfVerxzDsuvhoFpK0++O9LtP3FWkwYo7EAxp6w0cftAg/8ntU1E5Wg56Ry0b6ti/YGP6g0jlg== -"@firebase/auth@0.15.2": - version "0.15.2" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.15.2.tgz#9ada3f37620d131a1c56994138a599b5c9f9ca2e" - integrity sha512-2n32PBi6x9jVhc0E/ewKLUCYYTzFEXL4PNkvrrlGKbzeTBEkkyzfgUX7OV9UF5wUOG+gurtUthuur1zspZ/9hg== +"@firebase/auth@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.0.900-exp.894b5da5a.tgz#895362bc2911a33ffe22c2e2eeb6257d7e882109" + integrity sha512-1z6+8GDqABujKRXeRBC4HdaTS/kn2A2k4wFxGn0YgaUJAnm3Znz4KSTqvg2mT82/GNnwBXhWgbjlmLt0vaVrvA== dependencies: - "@firebase/auth-types" "0.10.1" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + node-fetch "2.6.1" + selenium-webdriver "4.0.0-beta.1" + tslib "^2.1.0" "@firebase/component@0.1.19": version "0.1.19" @@ -1242,13 +1285,27 @@ "@firebase/util" "0.3.2" tslib "^1.11.1" -"@firebase/component@0.1.21": - version "0.1.21" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.1.21.tgz#56062eb0d449dc1e7bbef3c084a9b5fa48c7c14d" - integrity sha512-kd5sVmCLB95EK81Pj+yDTea8pzN2qo/1yr0ua9yVi6UgMzm6zAeih73iVUkaat96MAHy26yosMufkvd3zC4IKg== +"@firebase/component@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.4.1.tgz#c8269f21149a4c81e385531428ad4c086a8f47db" + integrity sha512-f0IbIsoe33QzOj554rmDL04PyeZX/nNZYOAwlTzKmHq/JoFN6YoySi+0ZLyCtFrnRgw6zNnR/POXKOdfljWqZA== dependencies: - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/database-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.0.900-exp.894b5da5a.tgz#5f2f360904dbec30013e0c8b45d08733112dfa8e" + integrity sha512-j/RYAsQISl2/m3QiSiWD8aa+8ryhjhu1km/Ts/dVf36owUix0XQ6gvL4PD23JO/WuRqEXpjeULK4S175aJBn/A== + dependencies: + "@firebase/auth-interop-types" "0.1.5" + "@firebase/component" "0.4.1" + "@firebase/database" "0.0.900-exp.894b5da5a" + "@firebase/database-types" "0.7.2" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + faye-websocket "0.11.3" + tslib "^2.1.0" "@firebase/database-types@0.5.2": version "0.5.2" @@ -1257,25 +1314,25 @@ dependencies: "@firebase/app-types" "0.6.1" -"@firebase/database-types@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.6.1.tgz#cf1cfc03e617ed4c2561703781f85ba4c707ff65" - integrity sha512-JtL3FUbWG+bM59iYuphfx9WOu2Mzf0OZNaqWiQ7lJR8wBe7bS9rIm9jlBFtksB7xcya1lZSQPA/GAy2jIlMIkA== +"@firebase/database-types@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.7.2.tgz#449c4b36ec59a1ad9089797b540e2ba1c0d4fcbf" + integrity sha512-cdAd/dgwvC0r3oLEDUR+ULs1vBsEvy0b27nlzKhU6LQgm9fCDzgaH9nFGv8x+S9dly4B0egAXkONkVoWcOAisg== dependencies: - "@firebase/app-types" "0.6.1" + "@firebase/app-types" "0.6.2" -"@firebase/database@0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.8.1.tgz#a7bc1c01052d35817a242c21bfe09ab29ee485a3" - integrity sha512-/1HhR4ejpqUaM9Cn3KSeNdQvdlehWIhdfTVWFxS73ZlLYf7ayk9jITwH10H3ZOIm5yNzxF67p/U7Z/0IPhgWaQ== +"@firebase/database@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.0.900-exp.894b5da5a.tgz#72345726addb4b5d68be11f38bab19a85acd96d2" + integrity sha512-TAH6fn/9PwfeZS8ju0h14QzK8GbXGxrcup8qSeymTyS3Tklzo7hEWvlricnsx0f0oYwtXbW3WZEnfc2BaQLgOg== dependencies: "@firebase/auth-interop-types" "0.1.5" - "@firebase/component" "0.1.21" - "@firebase/database-types" "0.6.1" + "@firebase/component" "0.4.1" + "@firebase/database-types" "0.7.2" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" + "@firebase/util" "1.0.0" faye-websocket "0.11.3" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/database@^0.6.0": version "0.6.13" @@ -1290,137 +1347,193 @@ faye-websocket "0.11.3" tslib "^1.11.1" -"@firebase/firestore-types@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.0.0.tgz#1f6212553b240f1a8905bb8dcf1f87769138c5c0" - integrity sha512-ZGb7p1SSQJP0Z+kc9GAUi+Fx5rJatFddBrS1ikkayW+QHfSIz0omU23OgSHcBGTxe8dJCeKiKA2Yf+tkDKO/LA== +"@firebase/firestore-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.0.900-exp.894b5da5a.tgz#2c3f2e1aa0644a42fcf9e1bab60a848846438703" + integrity sha512-CjT+5wp3jyJwUWI8hKhlg7WxpbLToHbBm9BF9BpihDY1j0IyJmBICC0LJEtXsib/IOPIsf04rxUiFHKX4ciOHg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/firestore" "0.0.900-exp.894b5da5a" + "@firebase/firestore-types" "2.2.0" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + "@firebase/webchannel-wrapper" "0.4.1" + "@grpc/grpc-js" "^1.0.0" + "@grpc/proto-loader" "^0.5.0" + node-fetch "2.6.1" + tslib "^2.1.0" -"@firebase/firestore@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-2.0.4.tgz#c4be6f3540f607fd8e200cfba83c4997c29447fe" - integrity sha512-fzJKj/4h4jOwPSfHB42XBJIC0zsPsepU6FcBO+8nSx7G2IPfTw8cMgSNin2gPqX6tR1w1NQtHiSlXiRKsbMZdA== +"@firebase/firestore-types@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.2.0.tgz#9a3f3f2906232c3b4a726d988a6ef077f35f9093" + integrity sha512-5kZZtQ32FIRJP1029dw+ZVNRCclKOErHv1+Xn0pw/5Fq3dxroA/ZyFHqDu+uV52AyWHhNLjCqX43ibm4YqOzRw== + +"@firebase/firestore@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.0.900-exp.894b5da5a.tgz#8e27ab619175969c24d33a45c07b6e3b13c4338c" + integrity sha512-aMCoGe1rN5ChmGgBU3GCqDWTG8GtbGrHq8wRmQGUrh90TDG4DX1ImF5xyJrymwST1juMk8kVtV1okvQ1zmPf8A== dependencies: - "@firebase/component" "0.1.21" - "@firebase/firestore-types" "2.0.0" + "@firebase/component" "0.4.1" + "@firebase/firestore-types" "2.2.0" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" + "@firebase/util" "1.0.0" "@firebase/webchannel-wrapper" "0.4.1" "@grpc/grpc-js" "^1.0.0" "@grpc/proto-loader" "^0.5.0" node-fetch "2.6.1" - tslib "^1.11.1" + tslib "^2.1.0" + +"@firebase/functions-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.0.900-exp.894b5da5a.tgz#3ff0564b4446d1f25a99f2ca8da1349b5166f1a7" + integrity sha512-M57QEQ8TN12lYEMJZ3anaRGILJ59nOU4Xp6cCHsAbB5DkYLuxoHccvfZCzwmv95hEhF1mSvFPrZRJG9F3PVmZg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/functions" "0.0.900-exp.894b5da5a" + "@firebase/functions-types" "0.4.0" + "@firebase/messaging-types" "0.5.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/functions-types@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.4.0.tgz#0b789f4fe9a9c0b987606c4da10139345b40f6b9" integrity sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ== -"@firebase/functions@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.6.1.tgz#32640b8f877637057dfaaeb122be8c8e99ad1af7" - integrity sha512-xNCAY3cLlVWE8Azf+/84OjnaXMoyUstJ3vwVRG0ie22QhsdQuPa1tXTiPX4Tmm+Hbbd/Aw0A/7dkEnuW+zYzaQ== +"@firebase/functions@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.0.900-exp.894b5da5a.tgz#dd5e84ab637ddba364cb252d69153d33556f2b5e" + integrity sha512-7094mgWbVsMLaeKalQkEVvaydS+l1f/gytFXYyz+qtazYvghsrQd+n5pJQBzbBVNHw2NAQrJxHrePCftw8u2jg== dependencies: - "@firebase/component" "0.1.21" - "@firebase/functions-types" "0.4.0" + "@firebase/component" "0.4.1" "@firebase/messaging-types" "0.5.0" + "@firebase/util" "1.0.0" node-fetch "2.6.1" - tslib "^1.11.1" + tslib "^2.1.0" -"@firebase/installations-types@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.3.4.tgz#589a941d713f4f64bf9f4feb7f463505bab1afa2" - integrity sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q== - -"@firebase/installations@0.4.19": - version "0.4.19" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.19.tgz#53f50aeb022996963f89f59560d7b4cf801869da" - integrity sha512-QqAQzosKVVqIx7oMt5ujF4NsIXgtlTnej4JXGJ8sQQuJoMnt3T+PFQRHbr7uOfVaBiHYhEaXCcmmhfKUHwKftw== +"@firebase/installations@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.0.900-exp.894b5da5a.tgz#c8e5d708bc70c11df2a23645f5193bb516060d4a" + integrity sha512-mKjQq3etoZdZVCfUap+2tJgqS6AFHptg5HUBmUVGn+5Nz74i4n8M/M4W/qhXIjlnEcdLGop+5XaE9Tm03tbC7Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations-types" "0.3.4" - "@firebase/util" "0.3.4" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" idb "3.0.2" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/logger@0.2.6": version "0.2.6" resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== +"@firebase/messaging-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.0.900-exp.894b5da5a.tgz#0068cfcbc728dbcfc39ee2036378006f135b7968" + integrity sha512-LkkaK7KFj4xQhJS/ihFlHZfofgSYPWtHuCKv+vC8ANhl0BB4GMPU5huQ9sHLlQQxnmRViemXdphKNDceEnOzhQ== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" + "@firebase/messaging" "0.0.900-exp.894b5da5a" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + "@firebase/messaging-types@0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.5.0.tgz#c5d0ef309ced1758fda93ef3ac70a786de2e73c4" integrity sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg== -"@firebase/messaging@0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.7.3.tgz#31dded892455e4d0680e1452ff2fbfdfb9e4ce9b" - integrity sha512-63nOP2SmQJrj9jrhV3K96L5MRKS6AqmFVLX1XbGk6K6lz38ZC4LIoCcHxzUBXY7fCAuZvNmh/YB3pE8B2mTs8A== +"@firebase/messaging@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.0.900-exp.894b5da5a.tgz#f9604cd4d5a91016fee310351dd47939edc5352e" + integrity sha512-Bvg5Fr0i9tkwYT+mANggr8IzGH+IoPR7u11ZWOp4Iwo3gVgH2Q2kaDHBxxaV07k33Vqs4xCGq+f5sc56yI9GUQ== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" - "@firebase/messaging-types" "0.5.0" - "@firebase/util" "0.3.4" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" + "@firebase/util" "1.0.0" idb "3.0.2" - tslib "^1.11.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.0.900-exp.894b5da5a.tgz#96bd95109bea7f7cec4a47a5738f4fc17aba9c2c" + integrity sha512-x4MiVQNYin4h90IoGOYkgWFSwH40u3M0YOx+YlBp0l+cKO74s9Rm0DVVNjVz3DZPC3WI1QCT2ImYiszJhQgwTg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/performance" "0.0.900-exp.894b5da5a" + "@firebase/performance-types" "0.0.13" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/performance-types@0.0.13": version "0.0.13" resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.0.13.tgz#58ce5453f57e34b18186f74ef11550dfc558ede6" integrity sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA== -"@firebase/performance@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.4.4.tgz#5f13ea3b9a72a0ae9c36520c419be31448a0955a" - integrity sha512-CY/fzz7qGQ9hUkvOow22MeJhayHSjXmI4+0AqcxaUC4CWk4oQubyIC4pk62aH+yCwZNNeC7JJUEDbtqI/0rGkQ== +"@firebase/performance@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.0.900-exp.894b5da5a.tgz#248eeb8176ce636ae18ce45e8929be9a41e441ae" + integrity sha512-AObB2165d+DDuCN1p0wzJisA6CPqnDeZKnFOcOuMsVnQjRCC1smIDomXoDcNCh+9nEkz6MrGPZnhGgN5OGzT1Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/performance-types" "0.0.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" -"@firebase/polyfill@0.3.36": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@firebase/polyfill/-/polyfill-0.3.36.tgz#c057cce6748170f36966b555749472b25efdb145" - integrity sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg== +"@firebase/remote-config-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.0.900-exp.894b5da5a.tgz#be4527be8b8a2dbc0d946a064db400398772bb12" + integrity sha512-o78QgpipoRG/XiuzIGGgVX1PZS6xF4FPaQXbANtE+qdNJUpVfBVk6WpzeDlRE4c1h/EAJJi3fL4RZRmyy/b/WQ== dependencies: - core-js "3.6.5" - promise-polyfill "8.1.3" - whatwg-fetch "2.0.4" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/remote-config" "0.0.900-exp.894b5da5a" + "@firebase/remote-config-types" "0.1.9" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/remote-config-types@0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz#fe6bbe4d08f3b6e92fce30e4b7a9f4d6a96d6965" integrity sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA== -"@firebase/remote-config@0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.30.tgz#2cd6bbbed526a98b154e13a2cc73e748a77d7c3d" - integrity sha512-LAfLDcp1AN0V/7AkxBuTKy+Qnq9fKYKxbA5clrXRNVzJbTVnF5eFGsaUOlkes0ESG6lbqKy5ZcDgdl73zBIhAA== +"@firebase/remote-config@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.0.900-exp.894b5da5a.tgz#feef14ec3d521c43b19460756ace429799e28b2f" + integrity sha512-+5rO3r8zLDufpt1VO6Urm4/YluAYkvITpwzGPA+vv7a+Bs5P+Et4Z1bleUjSdlqJAZMpGnx748+AZYXiVxBtgQ== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/remote-config-types" "0.1.9" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/storage-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.0.900-exp.894b5da5a.tgz#c438d9ac345e74d1a9176b1c5ef4a39576a2b817" + integrity sha512-cmMZzwxv0eTEjanXjt6tjGTAQ+MaZpmNtC0c5vG9ZZI53kCnyCtljfnAtIaCYdJvc4BMsXEsdm0shYQ7R8JTQw== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/storage" "0.0.900-exp.894b5da5a" + "@firebase/storage-types" "0.4.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" -"@firebase/storage-types@0.3.13": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.3.13.tgz#cd43e939a2ab5742e109eb639a313673a48b5458" - integrity sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog== +"@firebase/storage-types@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.4.0.tgz#94414fce425b9a137cf18e4b6d04399b1dcabf23" + integrity sha512-2xgiLGfDv6Fz5qRrsO47/7PfbV9P+5tEuvEktJYTNxrgTxGPj3sMb7ZkycIb4JE98fAbmGEeMQaRSorqR5bEIQ== -"@firebase/storage@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.4.2.tgz#bc5924b87bd2fdd4ab0de49851c0125ebc236b89" - integrity sha512-87CrvKrf8kijVekRBmUs8htsNz7N5X/pDhv3BvJBqw8K65GsUolpyjx0f4QJRkCRUYmh3MSkpa5P08lpVbC6nQ== +"@firebase/storage@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.0.900-exp.894b5da5a.tgz#3154b7ec303b1ab99378c9d36c7e1f3f2bd37270" + integrity sha512-ECz2F9m3rUMutsnlx5Uv3mTQgXva5Q4PFNjkrE8c5d8VHfyl6dPxjBIbqK0Qi+QiFUfnWj7zyVyn5f9ADpIa8Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/storage-types" "0.3.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/component" "0.4.1" + "@firebase/storage-types" "0.4.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/util@0.3.2": version "0.3.2" @@ -1429,12 +1542,12 @@ dependencies: tslib "^1.11.1" -"@firebase/util@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.3.4.tgz#e389d0e0e2aac88a5235b06ba9431db999d4892b" - integrity sha512-VwjJUE2Vgr2UMfH63ZtIX9Hd7x+6gayi6RUXaTqEYxSbf/JmehLmAEYSuxS/NckfzAXWeGnKclvnXVibDgpjQQ== +"@firebase/util@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.0.0.tgz#cbe8ec610a84a7d2fc804af31010305941f4a34b" + integrity sha512-KIEyuyrYKKtit+lAl66c2GVvooM1Pb+Yw/9yuSga1HKYMxNZwSsIMXU8X97sLZf7WJaanV1XNJEMkZTw3xKEoA== dependencies: - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/webchannel-wrapper@0.4.1": version "0.4.1" @@ -5552,25 +5665,31 @@ firebase-tools@^8.16.1: winston "^3.0.0" ws "^7.2.3" -firebase@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-8.1.1.tgz#379094b724053931fda1086e9020a17b578e50d5" - integrity sha512-w1plr2jYvzBkx/rHE6A0EJf9318ufA5omShLuGocPlQtrvphel+KJcd+R02outE5E2lSDhyM0l3EoiA0YCD4hA== - dependencies: - "@firebase/analytics" "0.6.2" - "@firebase/app" "0.6.13" - "@firebase/app-types" "0.6.1" - "@firebase/auth" "0.15.2" - "@firebase/database" "0.8.1" - "@firebase/firestore" "2.0.4" - "@firebase/functions" "0.6.1" - "@firebase/installations" "0.4.19" - "@firebase/messaging" "0.7.3" - "@firebase/performance" "0.4.4" - "@firebase/polyfill" "0.3.36" - "@firebase/remote-config" "0.1.30" - "@firebase/storage" "0.4.2" - "@firebase/util" "0.3.4" +firebase@^9.0.0-beta.1: + version "9.0.0-beta.1" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0-beta.1.tgz#97a9a848dfd2737b3787995c8a94388d3e83d185" + integrity sha512-dYPrlGUi+JYqQIydE4LGZ7A2X5uFazwUNbAX0s7N1S34swvgp5Xz2ww63DB+hwjglF6eH+PiMGBDSZSG7hikUw== + dependencies: + "@firebase/analytics" "0.0.900-exp.894b5da5a" + "@firebase/analytics-compat" "0.0.900-exp.894b5da5a" + "@firebase/app" "0.0.900-exp.894b5da5a" + "@firebase/app-compat" "0.0.900-exp.894b5da5a" + "@firebase/auth" "0.0.900-exp.894b5da5a" + "@firebase/auth-compat" "0.0.900-exp.894b5da5a" + "@firebase/database" "0.0.900-exp.894b5da5a" + "@firebase/database-compat" "0.0.900-exp.894b5da5a" + "@firebase/firestore" "0.0.900-exp.894b5da5a" + "@firebase/firestore-compat" "0.0.900-exp.894b5da5a" + "@firebase/functions" "0.0.900-exp.894b5da5a" + "@firebase/functions-compat" "0.0.900-exp.894b5da5a" + "@firebase/messaging" "0.0.900-exp.894b5da5a" + "@firebase/messaging-compat" "0.0.900-exp.894b5da5a" + "@firebase/performance" "0.0.900-exp.894b5da5a" + "@firebase/performance-compat" "0.0.900-exp.894b5da5a" + "@firebase/remote-config" "0.0.900-exp.894b5da5a" + "@firebase/remote-config-compat" "0.0.900-exp.894b5da5a" + "@firebase/storage" "0.0.900-exp.894b5da5a" + "@firebase/storage-compat" "0.0.900-exp.894b5da5a" first-input-delay@^0.1.3: version "0.1.3" @@ -6510,6 +6629,11 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + immutable@^3: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" @@ -7450,6 +7574,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jszip@^3.5.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" + integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -7663,6 +7797,13 @@ license-webpack-plugin@2.3.1: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + limiter@^1.0.5: version "1.1.5" resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" @@ -9065,7 +9206,7 @@ pacote@9.5.12: unique-filename "^1.1.1" which "^1.3.1" -pako@~1.0.5: +pako@~1.0.2, pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -9733,11 +9874,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise-polyfill@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - promise-retry@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" @@ -10353,7 +10489,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.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.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== @@ -10527,6 +10663,26 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= +selenium-webdriver@4.0.0-beta.1: + version "4.0.0-beta.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz#db645b0d775f26e4e12235db05796a1bc1e7efda" + integrity sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ== + dependencies: + jszip "^3.5.0" + rimraf "^2.7.1" + tmp "^0.2.1" + ws "^7.3.1" + +selenium-webdriver@^4.0.0-beta.2: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.3.tgz#8c29512a27ca9c1f95a96a9a8f488304c894390e" + integrity sha512-R0mGHpQkSKgIWiPgcKDcckh4A6aaK0KTyWxs5ieuiI7zsXQ+Kb6neph+dNoeqq3jSBGyv3ONo2w3oohoL4D/Rg== + dependencies: + jszip "^3.5.0" + rimraf "^2.7.1" + tmp "^0.2.1" + ws "^7.3.1" + selfsigned@^1.10.7: version "1.10.8" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" @@ -10670,6 +10826,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -11695,7 +11856,7 @@ tmp@0.0.33, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.2.1: +tmp@0.2.1, tmp@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -11836,6 +11997,11 @@ tslib@^1.10.0, tslib@^1.11.1, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tslint@~6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" @@ -12445,11 +12611,6 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-fetch@^3.4.1: version "3.5.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" @@ -12636,6 +12797,11 @@ ws@^7.1.2, ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== +ws@^7.3.1: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" diff --git a/site/src/auth/getting-started.md b/site/src/auth/getting-started.md index cf3edae22..dfd6323c5 100644 --- a/site/src/auth/getting-started.md +++ b/site/src/auth/getting-started.md @@ -18,7 +18,7 @@ the Firebase docs for more information on what methods are available.](https://f ```ts import { Component } from '@angular/core'; import { AngularFireAuth } from '@angular/fire/auth'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; @Component({ selector: 'app-root', diff --git a/site/src/ionic/authentication.md b/site/src/ionic/authentication.md index a42a946e4..da9393c94 100644 --- a/site/src/ionic/authentication.md +++ b/site/src/ionic/authentication.md @@ -56,7 +56,7 @@ In `login.service.ts` add this function: ```ts import { AngularFireAuth } from '@angular/fire/auth'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import AuthProvider = firebase.auth.AuthProvider; export class AuthService { diff --git a/src/analytics/package.json b/src/analytics/package.json index 9ff024aae..aad6cb7e4 100644 --- a/src/analytics/package.json +++ b/src/analytics/package.json @@ -1,5 +1,5 @@ { - "$schema": "../node_modules/ng-packagr/package.schema.json", + "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { "umdModuleIds": { diff --git a/src/analytics/public_api.ts b/src/analytics/public_api.ts index 4601131aa..cc798ff50 100644 --- a/src/analytics/public_api.ts +++ b/src/analytics/public_api.ts @@ -1,4 +1 @@ -export * from './analytics'; -export * from './analytics.module'; -export * from './screen-tracking.service'; -export * from './user-tracking.service'; +export const a = 1; diff --git a/src/auth-guard/auth-guard.spec.ts b/src/auth-guard/auth-guard.spec.ts index 283f3c48b..2a31ab309 100644 --- a/src/auth-guard/auth-guard.spec.ts +++ b/src/auth-guard/auth-guard.spec.ts @@ -1,10 +1,10 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; import { COMMON_CONFIG } from '../test-config'; import { AngularFireAuthGuard, AngularFireAuthGuardModule } from '@angular/fire/auth-guard'; import { Router, RouterModule } from '@angular/router'; import { APP_BASE_HREF } from '@angular/common'; -import { rando } from '../firestore/utils.spec'; +import { rando } from '../compat/firestore/utils.spec'; describe('AngularFireAuthGuard', () => { let app: FirebaseApp; diff --git a/src/auth-guard/auth-guard.ts b/src/auth-guard/auth-guard.ts index 6ac12afb1..21d9b4df2 100644 --- a/src/auth-guard/auth-guard.ts +++ b/src/auth-guard/auth-guard.ts @@ -2,8 +2,8 @@ import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router'; import { Observable, of, pipe, UnaryFunction } from 'rxjs'; import { map, switchMap, take } from 'rxjs/operators'; -import firebase from 'firebase/app'; -import { AngularFireAuth } from '@angular/fire/auth'; +import firebase from 'firebase/compat/app'; +import { AngularFireAuth } from '@angular/fire/compat/auth'; export type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe; export type AuthPipe = UnaryFunction, Observable>; diff --git a/src/auth-guard/package.json b/src/auth-guard/package.json index a559c462f..0c8756ac4 100644 --- a/src/auth-guard/package.json +++ b/src/auth-guard/package.json @@ -4,7 +4,7 @@ "lib": { "entryFile": "public_api.ts", "umdModuleIds": { - "firebase/app": "firebase" + "firebase/compat/app": "firebase" } } } diff --git a/src/auth/package.json b/src/auth/package.json index a559c462f..aad6cb7e4 100644 --- a/src/auth/package.json +++ b/src/auth/package.json @@ -2,10 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { "firebase/app": "firebase" - } + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/auth/public_api.ts b/src/auth/public_api.ts index bc441937a..cc798ff50 100644 --- a/src/auth/public_api.ts +++ b/src/auth/public_api.ts @@ -1,5 +1 @@ - -import 'firebase/auth'; // removed in build process when not UMD - -export * from './auth'; -export * from './auth.module'; +export const a = 1; diff --git a/src/analytics/analytics.module.ts b/src/compat/analytics/analytics.module.ts similarity index 100% rename from src/analytics/analytics.module.ts rename to src/compat/analytics/analytics.module.ts diff --git a/src/analytics/analytics.spec.ts b/src/compat/analytics/analytics.spec.ts similarity index 83% rename from src/analytics/analytics.spec.ts rename to src/compat/analytics/analytics.spec.ts index a3f2b2973..e8e61732a 100644 --- a/src/analytics/analytics.spec.ts +++ b/src/compat/analytics/analytics.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFireAnalytics, AngularFireAnalyticsModule } from '@angular/fire/analytics'; -import { COMMON_CONFIG } from '../test-config'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireAnalytics, AngularFireAnalyticsModule } from '@angular/fire/compat/analytics'; +import { COMMON_CONFIG } from '../../test-config'; import { rando } from '../firestore/utils.spec'; diff --git a/src/analytics/analytics.ts b/src/compat/analytics/analytics.ts similarity index 97% rename from src/analytics/analytics.ts rename to src/compat/analytics/analytics.ts index bcf3cc5d1..b621605cf 100644 --- a/src/analytics/analytics.ts +++ b/src/compat/analytics/analytics.ts @@ -7,9 +7,9 @@ import { ɵlazySDKProxy, ɵPromiseProxy, ɵapplyMixins, - FirebaseApp } from '@angular/fire'; -import firebase from 'firebase/app'; +import { FirebaseApp } from '@angular/fire/compat'; +import firebase from 'firebase/compat/app'; import { proxyPolyfillCompat } from './base'; import { ɵfetchInstance } from '@angular/fire'; @@ -144,7 +144,7 @@ export class AngularFireAnalytics { const analytics = of(undefined).pipe( observeOn(new ɵAngularFireSchedulers(zone).outsideAngular), - switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/analytics')) : EMPTY), + switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/analytics')) : EMPTY), // SEMVER can switch to isSupported() when we only target v8 // switchMap(() => firebase.analytics.isSupported().then(it => it, () => false)), // TODO server-side investigate use of the Universal Analytics API diff --git a/src/analytics/index.ts b/src/compat/analytics/index.ts similarity index 100% rename from src/analytics/index.ts rename to src/compat/analytics/index.ts diff --git a/src/compat/analytics/package.json b/src/compat/analytics/package.json new file mode 100644 index 000000000..540d64e0b --- /dev/null +++ b/src/compat/analytics/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "umdModuleIds": { + "firebase/compat/app": "firebase" + }, + "entryFile": "public_api.ts" + } + } +} \ No newline at end of file diff --git a/src/compat/analytics/public_api.ts b/src/compat/analytics/public_api.ts new file mode 100644 index 000000000..4601131aa --- /dev/null +++ b/src/compat/analytics/public_api.ts @@ -0,0 +1,4 @@ +export * from './analytics'; +export * from './analytics.module'; +export * from './screen-tracking.service'; +export * from './user-tracking.service'; diff --git a/src/analytics/screen-tracking.service.ts b/src/compat/analytics/screen-tracking.service.ts similarity index 100% rename from src/analytics/screen-tracking.service.ts rename to src/compat/analytics/screen-tracking.service.ts diff --git a/src/analytics/user-tracking.service.ts b/src/compat/analytics/user-tracking.service.ts similarity index 96% rename from src/analytics/user-tracking.service.ts rename to src/compat/analytics/user-tracking.service.ts index d2000ee03..c2645213d 100644 --- a/src/analytics/user-tracking.service.ts +++ b/src/compat/analytics/user-tracking.service.ts @@ -1,7 +1,7 @@ import { isPlatformServer } from '@angular/common'; import { Inject, Injectable, NgZone, OnDestroy, PLATFORM_ID } from '@angular/core'; import { AngularFireAnalytics } from './analytics'; -import { AngularFireAuth } from '@angular/fire/auth'; +import { AngularFireAuth } from '@angular/fire/compat/auth'; import { Subscription } from 'rxjs'; @Injectable() diff --git a/src/auth/auth.module.ts b/src/compat/auth/auth.module.ts similarity index 100% rename from src/auth/auth.module.ts rename to src/compat/auth/auth.module.ts diff --git a/src/auth/auth.spec.ts b/src/compat/auth/auth.spec.ts similarity index 95% rename from src/auth/auth.spec.ts rename to src/compat/auth/auth.spec.ts index 3d7be7849..772bad9cd 100644 --- a/src/auth/auth.spec.ts +++ b/src/compat/auth/auth.spec.ts @@ -1,10 +1,10 @@ -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { Observable, Subject } from 'rxjs'; import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireAuth, AngularFireAuthModule } from '@angular/fire/auth'; -import { COMMON_CONFIG } from '../test-config'; -import 'firebase/auth'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireAuth, AngularFireAuthModule } from '@angular/fire/compat/auth'; +import { COMMON_CONFIG } from '../../test-config'; +import 'firebase/compat/auth'; import { rando } from '../firestore/utils.spec'; const firebaseUser = { diff --git a/src/auth/auth.ts b/src/compat/auth/auth.ts similarity index 86% rename from src/auth/auth.ts rename to src/compat/auth/auth.ts index e8f5d524b..f34d17500 100644 --- a/src/auth/auth.ts +++ b/src/compat/auth/auth.ts @@ -2,18 +2,15 @@ import { Injectable, Inject, Optional, NgZone, PLATFORM_ID, InjectionToken } fro import { Observable, of, from, merge, Subject, Subscriber } from 'rxjs'; import { switchMap, map, observeOn, shareReplay, first, filter, switchMapTo, subscribeOn } from 'rxjs/operators'; import { - FIREBASE_OPTIONS, - FIREBASE_APP_NAME, - FirebaseOptions, - FirebaseAppConfig, ɵPromiseProxy, ɵlazySDKProxy, - ɵfirebaseAppFactory, ɵAngularFireSchedulers, ɵkeepUnstableUntilFirstFactory, ɵapplyMixins } from '@angular/fire'; -import firebase from 'firebase/app'; +import { ɵfirebaseAppFactory, FIREBASE_OPTIONS, FIREBASE_APP_NAME } from '@angular/fire/compat'; +import { FirebaseOptions } from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { isPlatformServer } from '@angular/common'; import { proxyPolyfillCompat } from './base'; import { ɵfetchInstance } from '@angular/fire'; @@ -63,7 +60,7 @@ export class AngularFireAuth { constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string|FirebaseAppConfig|null|undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string|null|undefined, // tslint:disable-next-line:ban-types @Inject(PLATFORM_ID) platformId: Object, zone: NgZone, @@ -80,8 +77,8 @@ export class AngularFireAuth { const auth = of(undefined).pipe( observeOn(schedulers.outsideAngular), - switchMap(() => zone.runOutsideAngular(() => import('firebase/auth'))), - map(() => ɵfirebaseAppFactory(options, zone, nameOrConfig)), + 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; @@ -94,7 +91,8 @@ export class AngularFireAuth { if (tenantId) { auth.tenantId = tenantId; } - auth.languageCode = languageCode; + // Feedback filed against beta. + // auth.languageCode = languageCode; if (useDeviceLanguage) { auth.useDeviceLanguage(); } @@ -117,7 +115,7 @@ export class AngularFireAuth { } else { // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth - // (e.g, `import { auth } from 'firebase/app'`) are getting an undefined auth object unexpectedly + // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly // as we're completely lazy. Let's eagerly load the Auth SDK here. // There could potentially be race conditions still... but this greatly decreases the odds while // we reevaluate the API. @@ -129,16 +127,24 @@ export class AngularFireAuth { shareReplay({ bufferSize: 1, refCount: false }), ); - const fromCallback = (cb: (sub: Subscriber) => () => void) => new Observable(subscriber => - ({ unsubscribe: zone.runOutsideAngular(() => cb(subscriber)) }) - ); - const authStateChanged = auth.pipe( - switchMap(auth => fromCallback(auth.onAuthStateChanged.bind(auth))), + switchMap(auth => new Observable(sub => + ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged( + next => sub.next(next), + err => sub.error(err), + () => sub.complete() + ))}) + )), ); const idTokenChanged = auth.pipe( - switchMap(auth => fromCallback(auth.onIdTokenChanged.bind(auth))) + switchMap(auth => new Observable(sub => + ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged( + next => sub.next(next), + err => sub.error(err), + () => sub.complete() + ))}) + )) ); this.authState = redirectResult.pipe( diff --git a/src/compat/auth/package.json b/src/compat/auth/package.json new file mode 100644 index 000000000..050af58bf --- /dev/null +++ b/src/compat/auth/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/compat/app": "firebase" + } + } + } +} diff --git a/src/compat/auth/public_api.ts b/src/compat/auth/public_api.ts new file mode 100644 index 000000000..9948840d5 --- /dev/null +++ b/src/compat/auth/public_api.ts @@ -0,0 +1,5 @@ + +import 'firebase/compat/auth'; // removed in build process when not UMD + +export * from './auth'; +export * from './auth.module'; diff --git a/src/database/database.module.ts b/src/compat/database/database.module.ts similarity index 100% rename from src/database/database.module.ts rename to src/compat/database/database.module.ts diff --git a/src/database/database.spec.ts b/src/compat/database/database.spec.ts similarity index 90% rename from src/database/database.spec.ts rename to src/compat/database/database.spec.ts index 6ffaa23f6..62e21316a 100644 --- a/src/database/database.spec.ts +++ b/src/compat/database/database.spec.ts @@ -1,9 +1,9 @@ -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, URL } from '@angular/fire/database'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, URL } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../test-config'; +import { COMMON_CONFIG } from '../../test-config'; import { NgZone } from '@angular/core'; -import 'firebase/database'; +import 'firebase/compat/database'; import { rando } from '../firestore/utils.spec'; describe('AngularFireDatabase', () => { @@ -30,7 +30,7 @@ describe('AngularFireDatabase', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); describe('', () => { @@ -46,7 +46,8 @@ describe('AngularFireDatabase', () => { it('should accept a Firebase App in the constructor', (done) => { const database = new AngularFireDatabase(app.options, rando(), undefined, {}, zone, undefined, undefined); expect(database instanceof AngularFireDatabase).toEqual(true); - database.database.app.delete().then(done, done); + // try { database.database.app.delete().then(done, done); } catch(e) { done(); } + done(); }); it('should have an initialized Firebase app instance member', () => { @@ -85,7 +86,7 @@ describe('AngularFireDatabase w/options', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); describe('', () => { diff --git a/src/database/database.ts b/src/compat/database/database.ts similarity index 89% rename from src/database/database.ts rename to src/compat/database/database.ts index 54e87ff8c..bf3d35d00 100644 --- a/src/database/database.ts +++ b/src/compat/database/database.ts @@ -4,18 +4,15 @@ import { getRef } from './utils'; import { createListReference } from './list/create-reference'; import { createObjectReference } from './object/create-reference'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, - ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory, } from '@angular/fire'; +import { FirebaseOptions } from 'firebase/app'; +import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; import { Observable } from 'rxjs'; -import 'firebase/database'; -import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/auth'; -import firebase from 'firebase/app'; +import 'firebase/compat/database'; +import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/compat/auth'; +import firebase from 'firebase/compat/app'; import { ɵfetchInstance, ɵlogAuthEmulatorError } from '@angular/fire'; export const URL = new InjectionToken('angularfire2.realtimeDatabaseURL'); @@ -37,7 +34,7 @@ export class AngularFireDatabase { constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, @Optional() @Inject(URL) databaseURL: string | null, // tslint:disable-next-line:ban-types @Inject(PLATFORM_ID) platformId: Object, @@ -49,7 +46,7 @@ export class AngularFireDatabase { this.keepUnstableUntilFirst = ɵkeepUnstableUntilFirstFactory(this.schedulers); const useEmulator: UseEmulatorArguments | null = _useEmulator; - const app = ɵfirebaseAppFactory(options, zone, nameOrConfig); + const app = ɵfirebaseAppFactory(options, zone, name); if (!firebase.auth && useAuthEmulator) { ɵlogAuthEmulatorError(); diff --git a/src/database/interfaces.ts b/src/compat/database/interfaces.ts similarity index 98% rename from src/database/interfaces.ts rename to src/compat/database/interfaces.ts index 8caa5e59f..5f2559ca8 100644 --- a/src/database/interfaces.ts +++ b/src/compat/database/interfaces.ts @@ -1,5 +1,5 @@ import { Observable } from 'rxjs'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; export type FirebaseOperation = string | firebase.database.Reference | firebase.database.DataSnapshot; diff --git a/src/database/list/audit-trail.spec.ts b/src/compat/database/list/audit-trail.spec.ts similarity index 84% rename from src/database/list/audit-trail.spec.ts rename to src/compat/database/list/audit-trail.spec.ts index 0e488da0e..0dd1765f0 100644 --- a/src/database/list/audit-trail.spec.ts +++ b/src/compat/database/list/audit-trail.spec.ts @@ -1,10 +1,10 @@ -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, auditTrail, ChildEvent, URL } from '@angular/fire/database'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, auditTrail, ChildEvent, URL } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { skip } from 'rxjs/operators'; -import 'firebase/database'; -import firebase from 'firebase/app'; +import 'firebase/compat/database'; +import firebase from 'firebase/compat/app'; import { rando } from '../../firestore/utils.spec'; describe('auditTrail', () => { @@ -36,7 +36,7 @@ describe('auditTrail', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); function prepareAuditTrail(opts: { events?: ChildEvent[], skipnumber: number } = { skipnumber: 0 }) { diff --git a/src/database/list/audit-trail.ts b/src/compat/database/list/audit-trail.ts similarity index 100% rename from src/database/list/audit-trail.ts rename to src/compat/database/list/audit-trail.ts diff --git a/src/database/list/changes.spec.ts b/src/compat/database/list/changes.spec.ts similarity index 94% rename from src/database/list/changes.spec.ts rename to src/compat/database/list/changes.spec.ts index b5e5209c5..24f0a6ca2 100644 --- a/src/database/list/changes.spec.ts +++ b/src/compat/database/list/changes.spec.ts @@ -1,10 +1,10 @@ -import firebase from 'firebase/app'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, listChanges, URL } from '@angular/fire/database'; +import firebase from 'firebase/compat/app'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, listChanges, URL } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { skip, take } from 'rxjs/operators'; -import 'firebase/database'; +import 'firebase/compat/database'; import { rando } from '../../firestore/utils.spec'; describe('listChanges', () => { @@ -36,7 +36,7 @@ describe('listChanges', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); describe('events', () => { diff --git a/src/database/list/changes.ts b/src/compat/database/list/changes.ts similarity index 100% rename from src/database/list/changes.ts rename to src/compat/database/list/changes.ts diff --git a/src/database/list/create-reference.ts b/src/compat/database/list/create-reference.ts similarity index 100% rename from src/database/list/create-reference.ts rename to src/compat/database/list/create-reference.ts diff --git a/src/database/list/data-operation.ts b/src/compat/database/list/data-operation.ts similarity index 100% rename from src/database/list/data-operation.ts rename to src/compat/database/list/data-operation.ts diff --git a/src/database/list/remove.ts b/src/compat/database/list/remove.ts similarity index 100% rename from src/database/list/remove.ts rename to src/compat/database/list/remove.ts diff --git a/src/database/list/snapshot-changes.spec.ts b/src/compat/database/list/snapshot-changes.spec.ts similarity index 93% rename from src/database/list/snapshot-changes.spec.ts rename to src/compat/database/list/snapshot-changes.spec.ts index 0d06e3354..1c807d17c 100644 --- a/src/database/list/snapshot-changes.spec.ts +++ b/src/compat/database/list/snapshot-changes.spec.ts @@ -1,11 +1,11 @@ -import firebase from 'firebase/app'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, ChildEvent, snapshotChanges, URL } from '@angular/fire/database'; +import firebase from 'firebase/compat/app'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, ChildEvent, snapshotChanges, URL } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { BehaviorSubject } from 'rxjs'; import { skip, switchMap, take } from 'rxjs/operators'; -import 'firebase/database'; +import 'firebase/compat/database'; import { rando } from '../../firestore/utils.spec'; describe('snapshotChanges', () => { @@ -37,7 +37,7 @@ describe('snapshotChanges', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); function prepareSnapshotChanges(opts: { events?: ChildEvent[], skipnumber: number } = { skipnumber: 0 }) { diff --git a/src/database/list/snapshot-changes.ts b/src/compat/database/list/snapshot-changes.ts similarity index 100% rename from src/database/list/snapshot-changes.ts rename to src/compat/database/list/snapshot-changes.ts diff --git a/src/database/list/state-changes.spec.ts b/src/compat/database/list/state-changes.spec.ts similarity index 84% rename from src/database/list/state-changes.spec.ts rename to src/compat/database/list/state-changes.spec.ts index 34c2be17e..f4336dd62 100644 --- a/src/database/list/state-changes.spec.ts +++ b/src/compat/database/list/state-changes.spec.ts @@ -1,10 +1,10 @@ -import firebase from 'firebase/app'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, ChildEvent, stateChanges, URL } from '@angular/fire/database'; +import firebase from 'firebase/compat/app'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, ChildEvent, stateChanges, URL } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { skip } from 'rxjs/operators'; -import 'firebase/database'; +import 'firebase/compat/database'; import { rando } from '../../firestore/utils.spec'; describe('stateChanges', () => { @@ -36,7 +36,7 @@ describe('stateChanges', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); function prepareStateChanges(opts: { events?: ChildEvent[], skipnumber: number } = { skipnumber: 0 }) { diff --git a/src/database/list/state-changes.ts b/src/compat/database/list/state-changes.ts similarity index 100% rename from src/database/list/state-changes.ts rename to src/compat/database/list/state-changes.ts diff --git a/src/database/list/utils.ts b/src/compat/database/list/utils.ts similarity index 100% rename from src/database/list/utils.ts rename to src/compat/database/list/utils.ts diff --git a/src/database/object/create-reference.ts b/src/compat/database/object/create-reference.ts similarity index 100% rename from src/database/object/create-reference.ts rename to src/compat/database/object/create-reference.ts diff --git a/src/database/object/snapshot-changes.ts b/src/compat/database/object/snapshot-changes.ts similarity index 100% rename from src/database/object/snapshot-changes.ts rename to src/compat/database/object/snapshot-changes.ts diff --git a/src/database/observable/fromRef.spec.ts b/src/compat/database/observable/fromRef.spec.ts similarity index 96% rename from src/database/observable/fromRef.spec.ts rename to src/compat/database/observable/fromRef.spec.ts index 7bb5086f2..cd4c17259 100644 --- a/src/database/observable/fromRef.spec.ts +++ b/src/compat/database/observable/fromRef.spec.ts @@ -1,11 +1,12 @@ -import { AngularFireModule, FirebaseApp, ɵZoneScheduler } from '@angular/fire'; -import { AngularFireDatabase, AngularFireDatabaseModule, fromRef } from '@angular/fire/database'; +import { ɵZoneScheduler } from '@angular/fire'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireDatabase, AngularFireDatabaseModule, fromRef } from '@angular/fire/compat/database'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { rando } from '../../firestore/utils.spec'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; describe('fromRef', () => { let app: FirebaseApp; @@ -37,7 +38,7 @@ describe('fromRef', () => { }); afterEach(() => { - app.delete(); + // try { app.delete() } catch(e) { }; }); it('it should be async by default', (done) => { diff --git a/src/database/observable/fromRef.ts b/src/compat/database/observable/fromRef.ts similarity index 100% rename from src/database/observable/fromRef.ts rename to src/compat/database/observable/fromRef.ts diff --git a/src/compat/database/package.json b/src/compat/database/package.json new file mode 100644 index 000000000..9920a9cef --- /dev/null +++ b/src/compat/database/package.json @@ -0,0 +1,12 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "umdModuleIds": { + "firebase/compat/app": "firebase", + "@firebase/database": "firebase-database" + }, + "entryFile": "public_api.ts" + } + } +} diff --git a/src/compat/database/public_api.ts b/src/compat/database/public_api.ts new file mode 100644 index 000000000..b1f0ab756 --- /dev/null +++ b/src/compat/database/public_api.ts @@ -0,0 +1,8 @@ +export * from './database'; +export * from './list/changes'; +export * from './list/create-reference'; +export * from './list/snapshot-changes'; +export * from './list/state-changes'; +export * from './list/audit-trail'; +export * from './observable/fromRef'; +export * from './database.module'; diff --git a/src/database/utils.spec.ts b/src/compat/database/utils.spec.ts similarity index 100% rename from src/database/utils.spec.ts rename to src/compat/database/utils.spec.ts diff --git a/src/database/utils.ts b/src/compat/database/utils.ts similarity index 96% rename from src/database/utils.ts rename to src/compat/database/utils.ts index 56c7d9043..d5d635df7 100644 --- a/src/database/utils.ts +++ b/src/compat/database/utils.ts @@ -1,5 +1,5 @@ import { DatabaseReference, FirebaseOperation, FirebaseOperationCases, PathReference } from './interfaces'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; export function isString(value: any): boolean { return typeof value === 'string'; diff --git a/src/compat/firebase.app.module.ts b/src/compat/firebase.app.module.ts new file mode 100644 index 000000000..6f3ee2464 --- /dev/null +++ b/src/compat/firebase.app.module.ts @@ -0,0 +1,72 @@ +import { + InjectionToken, Inject, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version +} from '@angular/core'; +import firebase from 'firebase/compat/app'; +import { FirebaseOptions, FirebaseAppConfig } from 'firebase/app'; + +export const FIREBASE_OPTIONS = new InjectionToken('angularfire2.app.options'); +export const FIREBASE_APP_NAME = new InjectionToken('angularfire2.app.name'); + +export const VERSION = new Version('ANGULARFIRE2_VERSION'); + +export interface FirebaseApp extends firebase.app.App {} +export class FirebaseApp { + constructor(app: firebase.app.App) { + return app; + } +} + +export function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppConfig | null) { + const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]'; + const config = typeof nameOrConfig === 'object' && nameOrConfig || {}; + config.name = config.name || name; + // Added any due to some inconsistency between @firebase/app and firebase types + const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0]; + // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any + // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206 + const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any))); + try { + if (JSON.stringify(options) !== JSON.stringify(app.options)) { + const hmr = !!(module as any).hot; + log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`); + } + } catch (e) { } + return new FirebaseApp(app); +} + +const log = (level: 'log'|'error'|'info'|'warn', ...args: any) => { + if (isDevMode() && typeof console !== 'undefined') { + console[level](...args); + } +}; + +const FIREBASE_APP_PROVIDER = { + provide: FirebaseApp, + useFactory: ɵfirebaseAppFactory, + deps: [ + FIREBASE_OPTIONS, + NgZone, + [new Optional(), FIREBASE_APP_NAME] + ] +}; + +@NgModule({ + providers: [FIREBASE_APP_PROVIDER] +}) +export class AngularFireModule { + static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders { + return { + ngModule: AngularFireModule, + providers: [ + {provide: FIREBASE_OPTIONS, useValue: options}, + {provide: FIREBASE_APP_NAME, useValue: nameOrConfig} + ] + }; + } + + // tslint:disable-next-line:ban-types + constructor(@Inject(PLATFORM_ID) platformId: Object) { + firebase.registerVersion('angularfire', VERSION.full, `compat-${platformId.toString()}`); + firebase.registerVersion('angular', NG_VERSION.full); + } +} diff --git a/src/firestore/collection-group/collection-group.spec.ts b/src/compat/firestore/collection-group/collection-group.spec.ts similarity index 98% rename from src/firestore/collection-group/collection-group.spec.ts rename to src/compat/firestore/collection-group/collection-group.spec.ts index 74ede55ca..592d8482c 100644 --- a/src/firestore/collection-group/collection-group.spec.ts +++ b/src/compat/firestore/collection-group/collection-group.spec.ts @@ -1,10 +1,10 @@ -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { QueryGroupFn, Query , AngularFirestore, AngularFirestoreCollectionGroup, AngularFirestoreModule, SETTINGS } from '@angular/fire/firestore'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { QueryGroupFn, Query , AngularFirestore, AngularFirestoreCollectionGroup, AngularFirestoreModule, SETTINGS } from '@angular/fire/compat/firestore'; import { BehaviorSubject } from 'rxjs'; import { skip, switchMap, take } from 'rxjs/operators'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; -import 'firebase/firestore'; +import { COMMON_CONFIG } from '../../../test-config'; +import 'firebase/compat/firestore'; import { createRandomStocks, diff --git a/src/firestore/collection-group/collection-group.ts b/src/compat/firestore/collection-group/collection-group.ts similarity index 98% rename from src/firestore/collection-group/collection-group.ts rename to src/compat/firestore/collection-group/collection-group.ts index 5e8ed5437..a463fec3a 100644 --- a/src/firestore/collection-group/collection-group.ts +++ b/src/compat/firestore/collection-group/collection-group.ts @@ -1,7 +1,7 @@ import { from, Observable } from 'rxjs'; import { fromCollectionRef } from '../observable/fromRef'; import { filter, map, observeOn, scan } from 'rxjs/operators'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { DocumentChangeAction, DocumentChangeType, DocumentData, Query } from '../interfaces'; import { validateEventsArray } from '../collection/collection'; diff --git a/src/firestore/collection/changes.ts b/src/compat/firestore/collection/changes.ts similarity index 100% rename from src/firestore/collection/changes.ts rename to src/compat/firestore/collection/changes.ts diff --git a/src/firestore/collection/collection.spec.ts b/src/compat/firestore/collection/collection.spec.ts similarity index 98% rename from src/firestore/collection/collection.spec.ts rename to src/compat/firestore/collection/collection.spec.ts index 21071ae38..42da47d03 100644 --- a/src/firestore/collection/collection.spec.ts +++ b/src/compat/firestore/collection/collection.spec.ts @@ -1,11 +1,11 @@ -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreCollection, QueryFn, CollectionReference } from '@angular/fire/firestore'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreCollection, QueryFn, CollectionReference } from '@angular/fire/compat/firestore'; import { BehaviorSubject } from 'rxjs'; import { skip, switchMap, take } from 'rxjs/operators'; -import 'firebase/firestore'; +import 'firebase/compat/firestore'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { createRandomStocks, diff --git a/src/firestore/collection/collection.ts b/src/compat/firestore/collection/collection.ts similarity index 99% rename from src/firestore/collection/collection.ts rename to src/compat/firestore/collection/collection.ts index 2f458d4a1..3765fadea 100644 --- a/src/firestore/collection/collection.ts +++ b/src/compat/firestore/collection/collection.ts @@ -1,7 +1,7 @@ import { from, Observable } from 'rxjs'; import { fromCollectionRef } from '../observable/fromRef'; import { filter, map, observeOn, pairwise, scan, startWith } from 'rxjs/operators'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { CollectionReference, DocumentChangeAction, DocumentChangeType, DocumentData, DocumentReference, Query } from '../interfaces'; import { docChanges, sortedChanges } from './changes'; diff --git a/src/firestore/document/document.spec.ts b/src/compat/firestore/document/document.spec.ts similarity index 92% rename from src/firestore/document/document.spec.ts rename to src/compat/firestore/document/document.spec.ts index 9b5d93dcc..705a206af 100644 --- a/src/firestore/document/document.spec.ts +++ b/src/compat/firestore/document/document.spec.ts @@ -1,13 +1,13 @@ -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreDocument, DocumentReference } from '@angular/fire/firestore'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreDocument, DocumentReference } from '@angular/fire/compat/firestore'; import { take } from 'rxjs/operators'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../../test-config'; +import { COMMON_CONFIG } from '../../../test-config'; import { FAKE_STOCK_DATA, rando, randomName, Stock } from '../utils.spec'; -import firebase from 'firebase/app'; -import 'firebase/firestore'; +import firebase from 'firebase/compat/app'; +import 'firebase/compat/firestore'; describe('AngularFirestoreDocument', () => { let app: FirebaseApp; diff --git a/src/firestore/document/document.ts b/src/compat/firestore/document/document.ts similarity index 98% rename from src/firestore/document/document.ts rename to src/compat/firestore/document/document.ts index f0a7ab992..da3ad5915 100644 --- a/src/firestore/document/document.ts +++ b/src/compat/firestore/document/document.ts @@ -4,7 +4,7 @@ import { fromDocRef } from '../observable/fromRef'; import { map, observeOn } from 'rxjs/operators'; import { AngularFirestore, associateQuery } from '../firestore'; import { AngularFirestoreCollection } from '../collection/collection'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; /** * AngularFirestoreDocument service diff --git a/src/firestore/firestore.module.ts b/src/compat/firestore/firestore.module.ts similarity index 100% rename from src/firestore/firestore.module.ts rename to src/compat/firestore/firestore.module.ts diff --git a/src/firestore/firestore.spec.ts b/src/compat/firestore/firestore.spec.ts similarity index 96% rename from src/firestore/firestore.spec.ts rename to src/compat/firestore/firestore.spec.ts index 68eb9f3a2..20eff00cc 100644 --- a/src/firestore/firestore.spec.ts +++ b/src/compat/firestore/firestore.spec.ts @@ -1,9 +1,9 @@ -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/firestore'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFirestore, SETTINGS, AngularFirestoreModule, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/compat/firestore'; import { TestBed } from '@angular/core/testing'; -import { COMMON_CONFIG } from '../test-config'; -import 'firebase/firestore'; +import { COMMON_CONFIG } from '../../test-config'; +import 'firebase/compat/firestore'; import { rando } from './utils.spec'; describe('AngularFirestore', () => { diff --git a/src/firestore/firestore.ts b/src/compat/firestore/firestore.ts similarity index 95% rename from src/firestore/firestore.ts rename to src/compat/firestore/firestore.ts index cbf68b8cb..a91b986aa 100644 --- a/src/firestore/firestore.ts +++ b/src/compat/firestore/firestore.ts @@ -14,19 +14,15 @@ import { AngularFirestoreDocument } from './document/document'; import { AngularFirestoreCollection } from './collection/collection'; import { AngularFirestoreCollectionGroup } from './collection-group/collection-group'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, - ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory, - FirebaseApp } from '@angular/fire'; +import { FirebaseApp, ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; +import { FirebaseAppConfig, FirebaseOptions } from 'firebase/app'; import { isPlatformServer } from '@angular/common'; -import firebase from 'firebase/app'; -import 'firebase/firestore'; -import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/auth'; +import firebase from 'firebase/compat/app'; +import 'firebase/compat/firestore'; +import { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/compat/auth'; import { ɵfetchInstance, ɵlogAuthEmulatorError } from '@angular/fire'; /** @@ -137,7 +133,7 @@ export class AngularFirestore { */ constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, @Optional() @Inject(ENABLE_PERSISTENCE) shouldEnablePersistence: boolean | null, @Optional() @Inject(SETTINGS) settings: Settings | null, // tslint:disable-next-line:ban-types @@ -150,7 +146,7 @@ export class AngularFirestore { this.schedulers = new ɵAngularFireSchedulers(zone); this.keepUnstableUntilFirst = ɵkeepUnstableUntilFirstFactory(this.schedulers); - const app = ɵfirebaseAppFactory(options, zone, nameOrConfig); + const app = ɵfirebaseAppFactory(options, zone, name); if (!firebase.auth && useAuthEmulator) { ɵlogAuthEmulatorError(); } diff --git a/src/firestore/interfaces.ts b/src/compat/firestore/interfaces.ts similarity index 98% rename from src/firestore/interfaces.ts rename to src/compat/firestore/interfaces.ts index e512d7f1c..e865b16fd 100644 --- a/src/firestore/interfaces.ts +++ b/src/compat/firestore/interfaces.ts @@ -1,5 +1,5 @@ import { Subscriber } from 'rxjs'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; export type Settings = firebase.firestore.Settings; export type CollectionReference = firebase.firestore.CollectionReference; diff --git a/src/firestore/observable/fromRef.ts b/src/compat/firestore/observable/fromRef.ts similarity index 100% rename from src/firestore/observable/fromRef.ts rename to src/compat/firestore/observable/fromRef.ts diff --git a/src/compat/firestore/package.json b/src/compat/firestore/package.json new file mode 100644 index 000000000..75b34a51b --- /dev/null +++ b/src/compat/firestore/package.json @@ -0,0 +1,12 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/app": "firebase", + "@firebase/firestore": "firebase-firestore" + } + } + } +} diff --git a/src/compat/firestore/public_api.ts b/src/compat/firestore/public_api.ts new file mode 100644 index 000000000..1670f1451 --- /dev/null +++ b/src/compat/firestore/public_api.ts @@ -0,0 +1,8 @@ +export * from './firestore'; +export * from './firestore.module'; +export * from './collection/collection'; +export * from './collection-group/collection-group'; +export * from './document/document'; +export * from './collection/changes'; +export * from './observable/fromRef'; +export * from './interfaces'; diff --git a/src/firestore/utils.spec.ts b/src/compat/firestore/utils.spec.ts similarity index 93% rename from src/firestore/utils.spec.ts rename to src/compat/firestore/utils.spec.ts index 28b23f694..385b64290 100644 --- a/src/firestore/utils.spec.ts +++ b/src/compat/firestore/utils.spec.ts @@ -1,5 +1,5 @@ -import firebase from 'firebase/app'; -import { AngularFirestoreCollection } from '@angular/fire/firestore'; +import firebase from 'firebase/compat/app'; +import { AngularFirestoreCollection } from '@angular/fire/compat/firestore'; export interface Stock { name: string; diff --git a/src/functions/functions.module.ts b/src/compat/functions/functions.module.ts similarity index 100% rename from src/functions/functions.module.ts rename to src/compat/functions/functions.module.ts diff --git a/src/functions/functions.spec.ts b/src/compat/functions/functions.spec.ts similarity index 91% rename from src/functions/functions.spec.ts rename to src/compat/functions/functions.spec.ts index 56920ef67..4496047a9 100644 --- a/src/functions/functions.spec.ts +++ b/src/compat/functions/functions.spec.ts @@ -1,8 +1,8 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireFunctions, AngularFireFunctionsModule, ORIGIN, REGION } from '@angular/fire/functions'; -import { COMMON_CONFIG } from '../test-config'; -import 'firebase/functions'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireFunctions, AngularFireFunctionsModule, ORIGIN, REGION } from '@angular/fire/compat/functions'; +import { COMMON_CONFIG } from '../../test-config'; +import 'firebase/compat/functions'; import { rando } from '../firestore/utils.spec'; describe('AngularFireFunctions', () => { diff --git a/src/functions/functions.ts b/src/compat/functions/functions.ts similarity index 73% rename from src/functions/functions.ts rename to src/compat/functions/functions.ts index a6083f4b4..6887f4220 100644 --- a/src/functions/functions.ts +++ b/src/compat/functions/functions.ts @@ -2,24 +2,20 @@ import { Inject, Injectable, InjectionToken, NgZone, Optional } from '@angular/c import { from, Observable, of } from 'rxjs'; import { map, observeOn, shareReplay, switchMap } from 'rxjs/operators'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, - ɵfirebaseAppFactory, ɵlazySDKProxy, ɵPromiseProxy, ɵapplyMixins } from '@angular/fire'; -import firebase from 'firebase/app'; +import { FirebaseOptions } from 'firebase/app'; +import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; +import firebase from 'firebase/compat/app'; import { proxyPolyfillCompat } from './base'; import { HttpsCallableOptions } from '@firebase/functions-types'; import { ɵfetchInstance } from '@angular/fire'; export const ORIGIN = new InjectionToken('angularfire2.functions.origin'); export const REGION = new InjectionToken('angularfire2.functions.region'); -export const NEW_ORIGIN_BEHAVIOR = new InjectionToken('angularfire2.functions.new-origin-behavior'); // SEMVER(7): use Parameters to detirmine the useEmulator arguments // type UseEmulatorArguments = Parameters; @@ -39,11 +35,10 @@ export class AngularFireFunctions { constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, zone: NgZone, @Optional() @Inject(REGION) region: string | null, @Optional() @Inject(ORIGIN) origin: string | null, - @Optional() @Inject(NEW_ORIGIN_BEHAVIOR) newOriginBehavior: boolean | null, @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // can't use the tuple here ) { const schedulers = new ɵAngularFireSchedulers(zone); @@ -51,21 +46,14 @@ export class AngularFireFunctions { const functions = of(undefined).pipe( observeOn(schedulers.outsideAngular), - switchMap(() => import('firebase/functions')), - map(() => ɵfirebaseAppFactory(options, zone, nameOrConfig)), + switchMap(() => import('firebase/compat/functions')), + map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵfetchInstance(`${app.name}.functions.${region || origin}`, 'AngularFireFunctions', app, () => { let functions: firebase.functions.Functions; - if (newOriginBehavior) { - if (region && origin) { - throw new Error('REGION and ORIGIN can\'t be used at the same time.'); - } - functions = app.functions(region || origin || undefined); - } else { - functions = app.functions(region || undefined); - } - if (!newOriginBehavior && !useEmulator && origin) { - functions.useFunctionsEmulator(origin); + if (region && origin) { + throw new Error('REGION and ORIGIN can\'t be used at the same time.'); } + functions = app.functions(region || origin || undefined); if (useEmulator) { functions.useEmulator(...useEmulator); } diff --git a/src/compat/functions/package.json b/src/compat/functions/package.json new file mode 100644 index 000000000..a559c462f --- /dev/null +++ b/src/compat/functions/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/app": "firebase" + } + } + } +} diff --git a/src/compat/functions/public_api.ts b/src/compat/functions/public_api.ts new file mode 100644 index 000000000..2ce2fab44 --- /dev/null +++ b/src/compat/functions/public_api.ts @@ -0,0 +1,5 @@ + +import 'firebase/compat/functions'; // removed in build process when not UMD + +export * from './functions'; +export * from './functions.module'; diff --git a/src/messaging/messaging.module.ts b/src/compat/messaging/messaging.module.ts similarity index 100% rename from src/messaging/messaging.module.ts rename to src/compat/messaging/messaging.module.ts diff --git a/src/messaging/messaging.spec.ts b/src/compat/messaging/messaging.spec.ts similarity index 93% rename from src/messaging/messaging.spec.ts rename to src/compat/messaging/messaging.spec.ts index e72404e93..d5816d20a 100644 --- a/src/messaging/messaging.spec.ts +++ b/src/compat/messaging/messaging.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireMessaging, AngularFireMessagingModule } from '@angular/fire/messaging'; -import { COMMON_CONFIG } from '../test-config'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireMessaging, AngularFireMessagingModule } from '@angular/fire/compat/messaging'; +import { COMMON_CONFIG } from '../../test-config'; import { rando } from '../firestore/utils.spec'; describe('AngularFireMessaging', () => { diff --git a/src/messaging/messaging.ts b/src/compat/messaging/messaging.ts similarity index 66% rename from src/messaging/messaging.ts rename to src/compat/messaging/messaging.ts index b8006314f..de2971432 100644 --- a/src/messaging/messaging.ts +++ b/src/compat/messaging/messaging.ts @@ -1,28 +1,22 @@ import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { concat, EMPTY, Observable, of, throwError, fromEvent } from 'rxjs'; import { catchError, defaultIfEmpty, map, mergeMap, observeOn, switchMap, switchMapTo, shareReplay, filter, subscribeOn } from 'rxjs/operators'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, - ɵfirebaseAppFactory, ɵlazySDKProxy, ɵPromiseProxy, + ɵfetchInstance, ɵapplyMixins } from '@angular/fire'; +import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; +import { FirebaseOptions } from 'firebase/app'; import { isPlatformServer } from '@angular/common'; import { proxyPolyfillCompat } from './base'; -import { ɵfetchInstance } from '@angular/fire'; export const VAPID_KEY = new InjectionToken('angularfire2.messaging.vapid-key'); export const SERVICE_WORKER = new InjectionToken>('angularfire2.messaging.service-worker-registeration'); -// SEMVER(7): drop -const firebaseLTv8 = parseInt(firebase.SDK_VERSION, 10) < 8; - export interface AngularFireMessaging extends Omit<ɵPromiseProxy, 'deleteToken' | 'getToken' | 'requestPermission'> { } @@ -31,16 +25,16 @@ export interface AngularFireMessaging extends Omit<ɵPromiseProxy; + public readonly requestPermission: Observable; public readonly getToken: Observable; public readonly tokenChanges: Observable; - public readonly messages: Observable<{}>; + public readonly messages: Observable; public readonly requestToken: Observable; public readonly deleteToken: (token: string) => Observable; constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, // tslint:disable-next-line:ban-types @Inject(PLATFORM_ID) platformId: Object, zone: NgZone, @@ -53,41 +47,30 @@ export class AngularFireMessaging { const messaging = of(undefined).pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), - switchMap(() => isPlatformServer(platformId) ? EMPTY : import('firebase/messaging')), - map(() => ɵfirebaseAppFactory(options, zone, nameOrConfig)), + switchMap(() => isPlatformServer(platformId) ? EMPTY : import('firebase/compat/messaging')), + map(() => ɵfirebaseAppFactory(options, zone, name)), switchMap(app => ɵfetchInstance(`${app.name}.messaging`, 'AngularFireMessaging', app, async () => { - const messaging = app.messaging(); - if (firebaseLTv8) { - if (vapidKey) { - messaging.usePublicVapidKey(vapidKey); - } - if (serviceWorker) { - messaging.useServiceWorker(await serviceWorker); - } - } - return messaging; - }, [vapidKey, serviceWorker])), + return app.messaging(); + }, [])), shareReplay({ bufferSize: 1, refCount: false }) ); + const isSupported = () => !isPlatformServer(platformId); // firebase.messaging.isSupported(); feedback filed + this.requestPermission = messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), // tslint:disable-next-line - switchMap(messaging => firebase.messaging.isSupported() ? messaging.requestPermission() : throwError('Not supported.')) + switchMap(() => isSupported() ? Notification.requestPermission() : throwError('Not supported.')) ); this.getToken = messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), switchMap(async messaging => { - if (firebase.messaging.isSupported() && Notification.permission === 'granted') { - if (firebaseLTv8) { - return await messaging.getToken(); - } else { - const serviceWorkerRegistration = serviceWorker ? await serviceWorker : null; - return await messaging.getToken({ vapidKey, serviceWorkerRegistration }); - } + if (isSupported() && Notification.permission === 'granted') { + const serviceWorkerRegistration = serviceWorker ? await serviceWorker : null; + return await messaging.getToken({ vapidKey, serviceWorkerRegistration }); } else { return null; } @@ -100,6 +83,7 @@ export class AngularFireMessaging { }); }); + const tokenChange$ = messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), @@ -110,15 +94,15 @@ export class AngularFireMessaging { this.tokenChanges = messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), - switchMap(() => firebase.messaging.isSupported() ? concat(this.getToken, tokenChange$) : EMPTY) + switchMap(() => isSupported() ? concat(this.getToken, tokenChange$) : EMPTY) ); this.messages = messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), - switchMap(messaging => firebase.messaging.isSupported() ? new Observable(emitter => - messaging.onMessage(next => emitter.next(next), err => emitter.error(err), () => emitter.complete()) + switchMap(messaging => isSupported() ? new Observable(emitter => + messaging.onMessage(emitter) ) : EMPTY), ); @@ -130,11 +114,10 @@ export class AngularFireMessaging { mergeMap(() => this.tokenChanges) ); - // SEMVER(7): drop token - this.deleteToken = (token?: string) => messaging.pipe( + this.deleteToken = () => messaging.pipe( subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), - switchMap(messaging => messaging.deleteToken(token || undefined)), + switchMap(messaging => messaging.deleteToken()), defaultIfEmpty(false) ); diff --git a/src/compat/messaging/package.json b/src/compat/messaging/package.json new file mode 100644 index 000000000..a559c462f --- /dev/null +++ b/src/compat/messaging/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/app": "firebase" + } + } + } +} diff --git a/src/compat/messaging/public_api.ts b/src/compat/messaging/public_api.ts new file mode 100644 index 000000000..90df6c649 --- /dev/null +++ b/src/compat/messaging/public_api.ts @@ -0,0 +1,2 @@ +export * from './messaging'; +export * from './messaging.module'; diff --git a/src/compat/package.json b/src/compat/package.json new file mode 100644 index 000000000..0c8756ac4 --- /dev/null +++ b/src/compat/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/compat/app": "firebase" + } + } + } +} diff --git a/src/compat/performance/package.json b/src/compat/performance/package.json new file mode 100644 index 000000000..a559c462f --- /dev/null +++ b/src/compat/performance/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/app": "firebase" + } + } + } +} diff --git a/src/performance/performance.module.ts b/src/compat/performance/performance.module.ts similarity index 100% rename from src/performance/performance.module.ts rename to src/compat/performance/performance.module.ts diff --git a/src/performance/performance.service.ts b/src/compat/performance/performance.service.ts similarity index 100% rename from src/performance/performance.service.ts rename to src/compat/performance/performance.service.ts diff --git a/src/performance/performance.spec.ts b/src/compat/performance/performance.spec.ts similarity index 83% rename from src/performance/performance.spec.ts rename to src/compat/performance/performance.spec.ts index 14bde92dd..fa62a8f51 100644 --- a/src/performance/performance.spec.ts +++ b/src/compat/performance/performance.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FirebaseApp } from '@angular/fire'; -import { AngularFirePerformance, AngularFirePerformanceModule } from '@angular/fire/performance'; -import { COMMON_CONFIG } from '../test-config'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { AngularFirePerformance, AngularFirePerformanceModule } from '@angular/fire/compat/performance'; +import { COMMON_CONFIG } from '../../test-config'; import { rando } from '../firestore/utils.spec'; describe('AngularFirePerformance', () => { diff --git a/src/performance/performance.ts b/src/compat/performance/performance.ts similarity index 95% rename from src/performance/performance.ts rename to src/compat/performance/performance.ts index 6bc4dd958..e6ffa5766 100644 --- a/src/performance/performance.ts +++ b/src/compat/performance/performance.ts @@ -1,11 +1,12 @@ import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core'; import { EMPTY, Observable, of, Subscription } from 'rxjs'; import { map, shareReplay, switchMap, tap } from 'rxjs/operators'; -import firebase from 'firebase/app'; -import { FirebaseApp, ɵapplyMixins, ɵlazySDKProxy, ɵPromiseProxy } from '@angular/fire'; +import firebase from 'firebase/compat/app'; +import { ɵapplyMixins, ɵlazySDKProxy, ɵPromiseProxy } from '@angular/fire'; +import { ɵfetchInstance } from '@angular/fire'; +import { FirebaseApp } from '@angular/fire/compat'; import { isPlatformBrowser } from '@angular/common'; import { proxyPolyfillCompat } from './base'; -import { ɵfetchInstance } from '@angular/fire'; // SEMVER @ v6, drop and move core ng metrics to a service export const AUTOMATICALLY_TRACE_CORE_NG_METRICS = new InjectionToken('angularfire2.performance.auto_trace'); @@ -32,7 +33,7 @@ export class AngularFirePerformance { ) { this.performance = of(undefined).pipe( - switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/performance')) : EMPTY), + switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/performance')) : EMPTY), map(() => ɵfetchInstance(`performance`, 'AngularFirePerformance', app, () => { const performance = zone.runOutsideAngular(() => app.performance()); if (instrumentationEnabled === false) { diff --git a/src/compat/performance/public_api.ts b/src/compat/performance/public_api.ts new file mode 100644 index 000000000..b6dc28449 --- /dev/null +++ b/src/compat/performance/public_api.ts @@ -0,0 +1,3 @@ +export * from './performance'; +export * from './performance.module'; +export * from './performance.service'; diff --git a/src/compat/public_api.ts b/src/compat/public_api.ts new file mode 100644 index 000000000..9d6d7c0ee --- /dev/null +++ b/src/compat/public_api.ts @@ -0,0 +1 @@ +export * from './firebase.app.module'; diff --git a/src/remote-config/index.ts b/src/compat/remote-config/index.ts similarity index 100% rename from src/remote-config/index.ts rename to src/compat/remote-config/index.ts diff --git a/src/remote-config/interfaces.ts b/src/compat/remote-config/interfaces.ts similarity index 56% rename from src/remote-config/interfaces.ts rename to src/compat/remote-config/interfaces.ts index de0675e65..28927ef5e 100644 --- a/src/remote-config/interfaces.ts +++ b/src/compat/remote-config/interfaces.ts @@ -1,3 +1,3 @@ -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; export type Settings = firebase.remoteConfig.Settings; diff --git a/src/compat/remote-config/package.json b/src/compat/remote-config/package.json new file mode 100644 index 000000000..aad6cb7e4 --- /dev/null +++ b/src/compat/remote-config/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "umdModuleIds": { + "firebase/app": "firebase" + }, + "entryFile": "public_api.ts" + } + } +} \ No newline at end of file diff --git a/src/compat/remote-config/public_api.ts b/src/compat/remote-config/public_api.ts new file mode 100644 index 000000000..f3239f665 --- /dev/null +++ b/src/compat/remote-config/public_api.ts @@ -0,0 +1,2 @@ +export * from './remote-config'; +export * from './remote-config.module'; diff --git a/src/remote-config/remote-config.module.ts b/src/compat/remote-config/remote-config.module.ts similarity index 100% rename from src/remote-config/remote-config.module.ts rename to src/compat/remote-config/remote-config.module.ts diff --git a/src/remote-config/remote-config.spec.ts b/src/compat/remote-config/remote-config.spec.ts similarity index 92% rename from src/remote-config/remote-config.spec.ts rename to src/compat/remote-config/remote-config.spec.ts index f83c84eb6..c194680ee 100644 --- a/src/remote-config/remote-config.spec.ts +++ b/src/compat/remote-config/remote-config.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireRemoteConfig, AngularFireRemoteConfigModule, DEFAULTS, SETTINGS } from '@angular/fire/remote-config'; -import { COMMON_CONFIG } from '../test-config'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireRemoteConfig, AngularFireRemoteConfigModule, DEFAULTS, SETTINGS } from '@angular/fire/compat/remote-config'; +import { COMMON_CONFIG } from '../../test-config'; import { rando } from '../firestore/utils.spec'; describe('AngularFireRemoteConfig', () => { diff --git a/src/remote-config/remote-config.ts b/src/compat/remote-config/remote-config.ts similarity index 96% rename from src/remote-config/remote-config.ts rename to src/compat/remote-config/remote-config.ts index 2ee7c5c69..8c91c8905 100644 --- a/src/remote-config/remote-config.ts +++ b/src/compat/remote-config/remote-config.ts @@ -12,23 +12,19 @@ import { shareReplay, startWith, switchMap, - tap, withLatestFrom } from 'rxjs/operators'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, - ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory, ɵlazySDKProxy, ɵPromiseProxy, ɵapplyMixins } from '@angular/fire'; +import { FirebaseOptions } from 'firebase/app'; +import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; import { isPlatformBrowser } from '@angular/common'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { Settings } from './interfaces'; import { proxyPolyfillCompat } from './base'; import { ɵfetchInstance } from '@angular/fire'; @@ -134,7 +130,7 @@ export class AngularFireRemoteConfig { constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, @Optional() @Inject(SETTINGS) settings: Settings | null, @Optional() @Inject(DEFAULTS) defaultConfig: ConfigTemplate | null, private zone: NgZone, @@ -146,10 +142,9 @@ export class AngularFireRemoteConfig { const remoteConfig$ = of(undefined).pipe( observeOn(schedulers.outsideAngular), - switchMap(() => isPlatformBrowser(platformId) ? import('firebase/remote-config') : EMPTY), + switchMap(() => isPlatformBrowser(platformId) ? import('firebase/compat/remote-config') : EMPTY), switchMap(() => import('@firebase/remote-config')), - tap(rc => rc.registerRemoteConfig && rc.registerRemoteConfig(firebase as any)), - map(() => ɵfirebaseAppFactory(options, zone, nameOrConfig)), + map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵfetchInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app, () => { const rc = app.remoteConfig(); if (settings) { diff --git a/src/storage/interfaces.ts b/src/compat/storage/interfaces.ts similarity index 90% rename from src/storage/interfaces.ts rename to src/compat/storage/interfaces.ts index 1f1265065..bf33bae61 100644 --- a/src/storage/interfaces.ts +++ b/src/compat/storage/interfaces.ts @@ -1,4 +1,4 @@ -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; export type UploadTask = firebase.storage.UploadTask; export type UploadTaskSnapshot = firebase.storage.UploadTaskSnapshot; diff --git a/src/storage/observable/fromTask.ts b/src/compat/storage/observable/fromTask.ts similarity index 92% rename from src/storage/observable/fromTask.ts rename to src/compat/storage/observable/fromTask.ts index ab23aeada..806b23491 100644 --- a/src/storage/observable/fromTask.ts +++ b/src/compat/storage/observable/fromTask.ts @@ -2,9 +2,9 @@ import { Observable } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; import { UploadTask, UploadTaskSnapshot } from '../interfaces'; -// need to import, else the types become import('firebase/app').default.storage.UploadTask +// need to import, else the types become import('firebase/compat/app').default.storage.UploadTask // and it no longer works w/Firebase v7 -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; // Things aren't working great, I'm having to put in a lot of work-arounds for what // appear to be Firebase JS SDK bugs https://github.com/firebase/firebase-js-sdk/issues/4158 diff --git a/src/compat/storage/package.json b/src/compat/storage/package.json new file mode 100644 index 000000000..252f86ad2 --- /dev/null +++ b/src/compat/storage/package.json @@ -0,0 +1,12 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "ngPackage": { + "lib": { + "entryFile": "public_api.ts", + "umdModuleIds": { + "firebase/app": "firebase", + "@firebase/storage": "firebase-storage" + } + } + } +} diff --git a/src/storage/pipes/storageUrl.pipe.ts b/src/compat/storage/pipes/storageUrl.pipe.ts similarity index 100% rename from src/storage/pipes/storageUrl.pipe.ts rename to src/compat/storage/pipes/storageUrl.pipe.ts diff --git a/src/compat/storage/public_api.ts b/src/compat/storage/public_api.ts new file mode 100644 index 000000000..460348fa1 --- /dev/null +++ b/src/compat/storage/public_api.ts @@ -0,0 +1,6 @@ +export * from './ref'; +export * from './storage'; +export * from './task'; +export * from './observable/fromTask'; +export * from './storage.module'; +export * from './pipes/storageUrl.pipe'; diff --git a/src/storage/ref.ts b/src/compat/storage/ref.ts similarity index 100% rename from src/storage/ref.ts rename to src/compat/storage/ref.ts diff --git a/src/storage/storage.module.ts b/src/compat/storage/storage.module.ts similarity index 100% rename from src/storage/storage.module.ts rename to src/compat/storage/storage.module.ts diff --git a/src/storage/storage.spec.ts b/src/compat/storage/storage.spec.ts similarity index 97% rename from src/storage/storage.spec.ts rename to src/compat/storage/storage.spec.ts index 007a849ff..3a94575e5 100644 --- a/src/storage/storage.spec.ts +++ b/src/compat/storage/storage.spec.ts @@ -1,13 +1,13 @@ import { forkJoin } from 'rxjs'; import { mergeMap, tap } from 'rxjs/operators'; import { TestBed } from '@angular/core/testing'; -import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire'; -import { AngularFireStorage, AngularFireStorageModule, AngularFireUploadTask, BUCKET, fromTask } from '@angular/fire/storage'; -import { COMMON_CONFIG } from '../test-config'; +import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp } from '@angular/fire/compat'; +import { AngularFireStorage, AngularFireStorageModule, AngularFireUploadTask, BUCKET, fromTask } from '@angular/fire/compat/storage'; +import { COMMON_CONFIG } from '../../test-config'; import { rando } from '../firestore/utils.spec'; import { ChangeDetectorRef } from '@angular/core'; -import 'firebase/storage'; -import firebase from 'firebase/app'; +import 'firebase/compat/storage'; +import firebase from 'firebase/compat/app'; if (typeof XMLHttpRequest === 'undefined') { globalThis.XMLHttpRequest = require('xhr2'); diff --git a/src/storage/storage.ts b/src/compat/storage/storage.ts similarity index 88% rename from src/storage/storage.ts rename to src/compat/storage/storage.ts index e5e906acf..5868796c7 100644 --- a/src/storage/storage.ts +++ b/src/compat/storage/storage.ts @@ -2,18 +2,15 @@ import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } fro import { createStorageRef } from './ref'; import { Observable } from 'rxjs'; import { - FIREBASE_APP_NAME, - FIREBASE_OPTIONS, - FirebaseAppConfig, - FirebaseOptions, ɵAngularFireSchedulers, ɵfetchInstance, - ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory } from '@angular/fire'; +import { FirebaseOptions } from 'firebase/app'; +import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat'; import { UploadMetadata } from './interfaces'; -import 'firebase/storage'; -import firebase from 'firebase/app'; +import 'firebase/compat/storage'; +import firebase from 'firebase/compat/app'; export const BUCKET = new InjectionToken('angularfire2.storageBucket'); export const MAX_UPLOAD_RETRY_TIME = new InjectionToken('angularfire2.storage.maxUploadRetryTime'); @@ -37,7 +34,7 @@ export class AngularFireStorage { constructor( @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, - @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined, + @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, @Optional() @Inject(BUCKET) storageBucket: string | null, // tslint:disable-next-line:ban-types @Inject(PLATFORM_ID) platformId: Object, @@ -47,7 +44,7 @@ export class AngularFireStorage { ) { this.schedulers = new ɵAngularFireSchedulers(zone); this.keepUnstableUntilFirst = ɵkeepUnstableUntilFirstFactory(this.schedulers); - const app = ɵfirebaseAppFactory(options, zone, nameOrConfig); + const app = ɵfirebaseAppFactory(options, zone, name); this.storage = ɵfetchInstance(`${app.name}.storage.${storageBucket}`, 'AngularFireStorage', app, () => { const storage = zone.runOutsideAngular(() => app.storage(storageBucket || undefined)); diff --git a/src/storage/task.ts b/src/compat/storage/task.ts similarity index 100% rename from src/storage/task.ts rename to src/compat/storage/task.ts diff --git a/src/core/angularfire2.spec.ts b/src/core/angularfire2.spec.ts index 5062a411e..2f1b73106 100644 --- a/src/core/angularfire2.spec.ts +++ b/src/core/angularfire2.spec.ts @@ -1,13 +1,14 @@ import { TestBed } from '@angular/core/testing'; import { CompilerFactory, NgModule, NgZone, PlatformRef } from '@angular/core'; -import { AngularFireModule, FirebaseApp, ɵAngularFireSchedulers, ɵkeepUnstableUntilFirstFactory, ɵZoneScheduler } from '@angular/fire'; +import { AngularFireModule, FirebaseApp } from '@angular/fire/compat'; +import { ɵAngularFireSchedulers, ɵkeepUnstableUntilFirstFactory, ɵZoneScheduler } from '@angular/fire'; import { Observable, of, Subject } from 'rxjs'; import { COMMON_CONFIG } from '../test-config'; import { BrowserModule } from '@angular/platform-browser'; -import firebase from 'firebase/app'; +import firebase from 'firebase/compat/app'; import { tap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; -import { rando } from '../firestore/utils.spec'; +import { rando } from '../compat/firestore/utils.spec'; describe('angularfire', () => { let app: FirebaseApp; @@ -34,7 +35,7 @@ describe('angularfire', () => { afterEach(() => { rootRef.remove(); - app.delete(); + // app.delete(); }); describe('ZoneScheduler', () => { diff --git a/src/core/firebase.app.module.ts b/src/core/firebase.app.module.ts index c1e28633c..b18cb123a 100644 --- a/src/core/firebase.app.module.ts +++ b/src/core/firebase.app.module.ts @@ -1,56 +1,5 @@ -import { - Inject, InjectionToken, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version -} from '@angular/core'; -import firebase from 'firebase/app'; - -// INVESTIGATE Public types don't expose FirebaseOptions or FirebaseAppConfig, is this the case anylonger? -export interface FirebaseOptions { - [key: string]: any; -} - -export interface FirebaseAppConfig { - [key: string]: any; -} - -export const FIREBASE_OPTIONS = new InjectionToken('angularfire2.app.options'); -export const FIREBASE_APP_NAME = new InjectionToken('angularfire2.app.nameOrConfig'); - -// Have to implement as we need to return a class from the provider, we should consider exporting -// this in the firebase/app types as this is our highest risk of breaks -export class FirebaseApp implements Partial { - name: string; - options: {}; - analytics: () => firebase.analytics.Analytics; - auth: () => firebase.auth.Auth; - database: (databaseURL?: string) => firebase.database.Database; - messaging: () => firebase.messaging.Messaging; - performance: () => firebase.performance.Performance; - storage: (storageBucket?: string) => firebase.storage.Storage; - delete: () => Promise; - firestore: () => firebase.firestore.Firestore; - functions: (region?: string) => firebase.functions.Functions; - remoteConfig: () => firebase.remoteConfig.RemoteConfig; -} - -export const VERSION = new Version('ANGULARFIRE2_VERSION'); - -export function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppConfig | null) { - const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]'; - const config = typeof nameOrConfig === 'object' && nameOrConfig || {}; - config.name = config.name || name; - // Added any due to some inconsistency between @firebase/app and firebase types - const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0] as any; - // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any - // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206 - const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any))) as FirebaseApp; - try { - if (JSON.stringify(options) !== JSON.stringify(app.options)) { - const hmr = !!(module as any).hot; - log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`); - } - } catch (e) { } - return app; -} +import { isDevMode } from '@angular/core'; +import { FirebaseApp as FirebaseCompatApp } from '@angular/fire/compat'; export const ɵlogAuthEmulatorError = () => { // TODO sort this out, https://github.com/angular/angularfire/issues/2656 @@ -65,7 +14,7 @@ const log = (level: 'log'|'error'|'info'|'warn', ...args: any) => { globalThis.ɵAngularfireInstanceCache ||= new Map(); -export function ɵfetchInstance(cacheKey: any, moduleName: string, app: FirebaseApp, fn: () => T, args: any[]): T { +export function ɵfetchInstance(cacheKey: any, moduleName: string, app: FirebaseCompatApp, fn: () => T, args: any[]): T { const [instance, ...cachedArgs] = globalThis.ɵAngularfireInstanceCache.get(cacheKey) || []; if (instance) { try { @@ -88,34 +37,3 @@ export function ɵfetchInstance(cacheKey: any, moduleName: string, app: Fireb return newInstance; } } - -const FIREBASE_APP_PROVIDER = { - provide: FirebaseApp, - useFactory: ɵfirebaseAppFactory, - deps: [ - FIREBASE_OPTIONS, - NgZone, - [new Optional(), FIREBASE_APP_NAME] - ] -}; - -@NgModule({ - providers: [FIREBASE_APP_PROVIDER] -}) -export class AngularFireModule { - static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders { - return { - ngModule: AngularFireModule, - providers: [ - {provide: FIREBASE_OPTIONS, useValue: options}, - {provide: FIREBASE_APP_NAME, useValue: nameOrConfig} - ] - }; - } - - // tslint:disable-next-line:ban-types - constructor(@Inject(PLATFORM_ID) platformId: Object) { - firebase.registerVersion('angularfire', VERSION.full, platformId.toString()); - firebase.registerVersion('angular', NG_VERSION.full); - } -} diff --git a/src/database/package.json b/src/database/package.json index 10e70bb74..aad6cb7e4 100644 --- a/src/database/package.json +++ b/src/database/package.json @@ -3,10 +3,9 @@ "ngPackage": { "lib": { "umdModuleIds": { - "firebase/app": "firebase", - "@firebase/database": "firebase-database" + "firebase/app": "firebase" }, "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/database/public_api.ts b/src/database/public_api.ts index b1f0ab756..cc798ff50 100644 --- a/src/database/public_api.ts +++ b/src/database/public_api.ts @@ -1,8 +1 @@ -export * from './database'; -export * from './list/changes'; -export * from './list/create-reference'; -export * from './list/snapshot-changes'; -export * from './list/state-changes'; -export * from './list/audit-trail'; -export * from './observable/fromRef'; -export * from './database.module'; +export const a = 1; diff --git a/src/firestore/package.json b/src/firestore/package.json index 75b34a51b..aad6cb7e4 100644 --- a/src/firestore/package.json +++ b/src/firestore/package.json @@ -2,11 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { - "firebase/app": "firebase", - "@firebase/firestore": "firebase-firestore" - } + "firebase/app": "firebase" + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/firestore/public_api.ts b/src/firestore/public_api.ts index 1670f1451..cc798ff50 100644 --- a/src/firestore/public_api.ts +++ b/src/firestore/public_api.ts @@ -1,8 +1 @@ -export * from './firestore'; -export * from './firestore.module'; -export * from './collection/collection'; -export * from './collection-group/collection-group'; -export * from './document/document'; -export * from './collection/changes'; -export * from './observable/fromRef'; -export * from './interfaces'; +export const a = 1; diff --git a/src/functions/package.json b/src/functions/package.json index a559c462f..aad6cb7e4 100644 --- a/src/functions/package.json +++ b/src/functions/package.json @@ -2,10 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { "firebase/app": "firebase" - } + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/functions/public_api.ts b/src/functions/public_api.ts index 1c3bb1655..cc798ff50 100644 --- a/src/functions/public_api.ts +++ b/src/functions/public_api.ts @@ -1,5 +1 @@ - -import 'firebase/functions'; // removed in build process when not UMD - -export * from './functions'; -export * from './functions.module'; +export const a = 1; diff --git a/src/messaging/package.json b/src/messaging/package.json index a559c462f..aad6cb7e4 100644 --- a/src/messaging/package.json +++ b/src/messaging/package.json @@ -2,10 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { "firebase/app": "firebase" - } + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/messaging/public_api.ts b/src/messaging/public_api.ts index 90df6c649..cc798ff50 100644 --- a/src/messaging/public_api.ts +++ b/src/messaging/public_api.ts @@ -1,2 +1 @@ -export * from './messaging'; -export * from './messaging.module'; +export const a = 1; diff --git a/src/performance/package.json b/src/performance/package.json index a559c462f..aad6cb7e4 100644 --- a/src/performance/package.json +++ b/src/performance/package.json @@ -2,10 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { "firebase/app": "firebase" - } + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/performance/public_api.ts b/src/performance/public_api.ts index b6dc28449..cc798ff50 100644 --- a/src/performance/public_api.ts +++ b/src/performance/public_api.ts @@ -1,3 +1 @@ -export * from './performance'; -export * from './performance.module'; -export * from './performance.service'; +export const a = 1; diff --git a/src/remote-config/public_api.ts b/src/remote-config/public_api.ts index f3239f665..cc798ff50 100644 --- a/src/remote-config/public_api.ts +++ b/src/remote-config/public_api.ts @@ -1,2 +1 @@ -export * from './remote-config'; -export * from './remote-config.module'; +export const a = 1; diff --git a/src/root.spec.ts b/src/root.spec.ts deleted file mode 100644 index 36a35b732..000000000 --- a/src/root.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -// These paths are written to use the dist build -export * from './core/angularfire2.spec'; -export * from './analytics/analytics.spec'; -export * from './auth/auth.spec'; -export * from './auth-guard/auth-guard.spec'; -export * from './firestore/firestore.spec'; -export * from './firestore/document/document.spec'; -export * from './firestore/collection/collection.spec'; -export * from './firestore/collection-group/collection-group.spec'; -export * from './functions/functions.spec'; -export * from './database/database.spec'; -export * from './database/utils.spec'; -export * from './database/observable/fromRef.spec'; -export * from './database/list/changes.spec'; -export * from './database/list/snapshot-changes.spec'; -export * from './database/list/state-changes.spec'; -export * from './database/list/audit-trail.spec'; -export * from './messaging/messaging.spec'; -export * from './remote-config/remote-config.spec'; -export * from './storage/storage.spec'; -export * from './performance/performance.spec'; diff --git a/src/storage/package.json b/src/storage/package.json index 252f86ad2..aad6cb7e4 100644 --- a/src/storage/package.json +++ b/src/storage/package.json @@ -2,11 +2,10 @@ "$schema": "../../node_modules/ng-packagr/package.schema.json", "ngPackage": { "lib": { - "entryFile": "public_api.ts", "umdModuleIds": { - "firebase/app": "firebase", - "@firebase/storage": "firebase-storage" - } + "firebase/app": "firebase" + }, + "entryFile": "public_api.ts" } } -} +} \ No newline at end of file diff --git a/src/storage/public_api.ts b/src/storage/public_api.ts index 460348fa1..cc798ff50 100644 --- a/src/storage/public_api.ts +++ b/src/storage/public_api.ts @@ -1,6 +1 @@ -export * from './ref'; -export * from './storage'; -export * from './task'; -export * from './observable/fromTask'; -export * from './storage.module'; -export * from './pipes/storageUrl.pipe'; +export const a = 1; diff --git a/test/ng-build/ng9/src/app/app.component.ts b/test/ng-build/ng9/src/app/app.component.ts index 719421471..c0f6b9600 100644 --- a/test/ng-build/ng9/src/app/app.component.ts +++ b/test/ng-build/ng9/src/app/app.component.ts @@ -1,19 +1,19 @@ import { Component, ApplicationRef } from '@angular/core'; -import { AngularFireAnalytics } from '@angular/fire/analytics'; +import { AngularFireAnalytics } from '@angular/fire/compat/analytics'; import { FirebaseApp } from '@angular/fire'; -import { AngularFireDatabase } from '@angular/fire/database'; -import { AngularFireAuth } from '@angular/fire/auth'; -import { AngularFirestore } from '@angular/fire/firestore'; -import { AngularFireStorage } from '@angular/fire/storage'; -import { AngularFireMessaging } from '@angular/fire/messaging'; -import { AngularFireFunctions } from '@angular/fire/functions'; -import { AngularFirePerformance } from '@angular/fire/performance'; +import { AngularFireDatabase } from '@angular/fire/compat/database'; +import { AngularFireAuth } from '@angular/fire/compat/auth'; +import { AngularFirestore } from '@angular/fire/compat/firestore'; +import { AngularFireStorage } from '@angular/fire/compat/storage'; +import { AngularFireMessaging } from '@angular/fire/compat/messaging'; +import { AngularFireFunctions } from '@angular/fire/compat/functions'; +import { AngularFirePerformance } from '@angular/fire/compat/performance'; import { canActivate, loggedIn } from '@angular/fire/auth-guard'; -import { AngularFireRemoteConfig } from '@angular/fire/remote-config'; +import { AngularFireRemoteConfig } from '@angular/fire/compat/remote-config'; -import 'firebase/database'; -import 'firebase/firestore'; -import 'firebase/storage'; +import 'firebase/compat/database'; +import 'firebase/compat/firestore'; +import 'firebase/compat/storage'; @Component({ selector: 'app-root', diff --git a/test/ng-build/ng9/src/app/app.module.ts b/test/ng-build/ng9/src/app/app.module.ts index 3f03371cc..2c4ba2d2c 100644 --- a/test/ng-build/ng9/src/app/app.module.ts +++ b/test/ng-build/ng9/src/app/app.module.ts @@ -3,16 +3,16 @@ import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; -import { FirebaseApp, AngularFireModule } from '@angular/fire'; -import { AngularFireAnalyticsModule } from '@angular/fire/analytics'; -import { AngularFireDatabaseModule } from '@angular/fire/database'; -import { AngularFireAuthModule } from '@angular/fire/auth'; -import { AngularFirestoreModule } from '@angular/fire/firestore'; -import { AngularFireStorageModule } from '@angular/fire/storage'; -import { AngularFireMessagingModule } from '@angular/fire/messaging'; -import { AngularFireFunctionsModule } from '@angular/fire/functions'; -import { AngularFireRemoteConfigModule } from '@angular/fire/remote-config'; -import { AngularFirePerformanceModule, AUTOMATICALLY_TRACE_CORE_NG_METRICS } from '@angular/fire/performance'; +import { FirebaseApp, AngularFireModule } from '@angular/fire/compat'; +import { AngularFireAnalyticsModule } from '@angular/fire/compat/analytics'; +import { AngularFireDatabaseModule } from '@angular/fire/compat/database'; +import { AngularFireAuthModule } from '@angular/fire/compat/auth'; +import { AngularFirestoreModule } from '@angular/fire/compat/firestore'; +import { AngularFireStorageModule } from '@angular/fire/compat/storage'; +import { AngularFireMessagingModule } from '@angular/fire/compat/messaging'; +import { AngularFireFunctionsModule } from '@angular/fire/compat/functions'; +import { AngularFireRemoteConfigModule } from '@angular/fire/compat/remote-config'; +import { AngularFirePerformanceModule, AUTOMATICALLY_TRACE_CORE_NG_METRICS } from '@angular/fire/compat/performance'; import { AngularFireAuthGuardModule } from '@angular/fire/auth-guard'; diff --git a/tools/build.ts b/tools/build.ts index 72b6f105e..75ad01431 100644 --- a/tools/build.ts +++ b/tools/build.ts @@ -4,26 +4,27 @@ import { prettySize } from 'pretty-size'; import { sync as gzipSync } from 'gzip-size'; import { dirname, join } from 'path'; import { keys as tsKeys } from 'ts-transformer-keys'; -import firebase from 'firebase/app'; - +import firebase from 'firebase/compat/app'; // TODO infer these from the package.json const MODULES = [ - 'core', 'analytics', 'auth', 'auth-guard', 'database', - 'firestore', 'functions', 'remote-config', - 'storage', 'messaging', 'performance' + 'core', 'compat', 'analytics', 'auth', 'database', 'firestore', + 'functions', 'remote-config', 'storage', 'messaging', 'performance', + 'compat/analytics', 'compat/auth', 'auth-guard', 'compat/database', + 'compat/firestore', 'compat/functions', 'compat/remote-config', + 'compat/storage', 'compat/messaging', 'compat/performance' ]; -const LAZY_MODULES = ['analytics', 'auth', 'functions', 'messaging', 'remote-config']; -const UMD_NAMES = MODULES.map(m => m === 'core' ? 'angular-fire' : `angular-fire-${m}`); +const LAZY_MODULES = ['compat/analytics', 'compat/auth', 'compat/functions', 'compat/messaging', 'compat/remote-config']; +const UMD_NAMES = MODULES.map(m => m === 'core' ? 'angular-fire' : `angular-fire-${m.replace('/', '-')}`); const ENTRY_NAMES = MODULES.map(m => m === 'core' ? '@angular/fire' : `@angular/fire/${m}`); function proxyPolyfillCompat() { const defaultObject = { - analytics: tsKeys(), - auth: tsKeys(), - functions: tsKeys(), - messaging: tsKeys(), - performance: tsKeys(), - 'remote-config': tsKeys(), + 'compat/analytics': tsKeys(), + 'compat/auth': tsKeys(), + 'compat/functions': tsKeys(), + 'compat/messaging': tsKeys(), + 'compat/performance': tsKeys(), + 'compat/remote-config': tsKeys(), }; return Promise.all(Object.keys(defaultObject).map(module => @@ -100,7 +101,8 @@ async function fixImportForLazyModules() { const entries = Array.from(new Set(Object.values(packageJson).filter(v => typeof v === 'string' && v.endsWith('.js')))) as string[]; // TODO don't hardcode esm2015 here, perhaps we should scan all the entry directories // e.g, if ng-packagr starts building other non-flattened entries we'll lose the dynamic import - entries.push(`../esm2015/${module}/public_api.js`); // the import isn't pulled into the ESM public_api + // the import isn't pulled into the ESM public_api + entries.push(`../${module.includes('/') ? '../' : ''}esm2015/${module}/public_api.js`); await Promise.all(entries.map(async path => { const source = (await readFile(dest(module, path))).toString(); let newSource: string; @@ -187,8 +189,8 @@ Promise.all([ buildLibrary() ]).then(measureLibrary).then(stats => console.log(` -Package Size Gzipped +Package Size Gzipped ------------------------------------ -${stats.map((s, i) => [MODULES[i].padEnd(16), s.size.padEnd(8), s.gzip].join('')).join('\n')}` +${stats.map((s, i) => [MODULES[i].padEnd(21), s.size.padEnd(8), s.gzip].join('')).join('\n')}` ) ); diff --git a/tsconfig.base.json b/tsconfig.base.json index ff4b7cac2..1699a521a 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -13,6 +13,7 @@ "moduleResolution": "node", "importHelpers": true, "target": "es2015", + "skipLibCheck": true, "typeRoots": [ "node_modules/@types" ], @@ -22,18 +23,25 @@ ], "paths": { "@angular/fire": ["dist/packages-dist"], - "@angular/fire/analytics": ["dist/packages-dist/analytics"], "@angular/fire/auth": ["dist/packages-dist/auth"], "@angular/fire/auth-guard": ["dist/packages-dist/auth-guard"], "@angular/fire/database": ["dist/packages-dist/database"], - "@angular/fire/database-deprecated": ["dist/packages-dist/database-deprecated"], - "@angular/fire/firebase-node": ["dist/packages-dist/firebase-node"], "@angular/fire/firestore": ["dist/packages-dist/firestore"], "@angular/fire/functions": ["dist/packages-dist/functions"], "@angular/fire/messaging": ["dist/packages-dist/messaging"], "@angular/fire/performance": ["dist/packages-dist/performance"], "@angular/fire/remote-config": ["dist/packages-dist/remote-config"], "@angular/fire/storage": ["dist/packages-dist/storage"], + "@angular/fire/compat": ["dist/packages-dist/compat"], + "@angular/fire/compat/analytics": ["dist/packages-dist/compat/analytics"], + "@angular/fire/compat/auth": ["dist/packages-dist/compat/auth"], + "@angular/fire/compat/database": ["dist/packages-dist/compat/database"], + "@angular/fire/compat/firestore": ["dist/packages-dist/compat/firestore"], + "@angular/fire/compat/functions": ["dist/packages-dist/compat/functions"], + "@angular/fire/compat/messaging": ["dist/packages-dist/compat/messaging"], + "@angular/fire/compat/performance": ["dist/packages-dist/compat/performance"], + "@angular/fire/compat/remote-config": ["dist/packages-dist/compat/remote-config"], + "@angular/fire/compat/storage": ["dist/packages-dist/compat/storage"] } } } diff --git a/tsconfig.jasmine.json b/tsconfig.jasmine.json index 531e06287..c6e8ea7e6 100644 --- a/tsconfig.jasmine.json +++ b/tsconfig.jasmine.json @@ -13,7 +13,6 @@ }, "include": [ "src/**/*.jasmine.ts", - "src/**/*.spec.ts", "src/**/*.d.ts", "node_modules/zone.js/dist/zone.js.d.ts" ] diff --git a/tsconfig.json b/tsconfig.json index aa1210871..149d0cf50 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,6 +25,7 @@ }, "exclude": [ "src/test.ts", + "src/**/*.jasmine.ts", "src/**/*.spec.ts" ] } diff --git a/tsconfig.spec.json b/tsconfig.spec.json index e7a72f174..97c3c98e1 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -11,7 +11,7 @@ "src/test.ts" ], "include": [ - "src/root.spec.ts", + "src/**/*.spec.ts", "src/**/*.d.ts", "node_modules/zone.js/dist/zone.js.d.ts" ] diff --git a/tslint.json b/tslint.json index 240060977..82dcd436f 100644 --- a/tslint.json +++ b/tslint.json @@ -69,6 +69,7 @@ "trace" ], "no-empty": false, + "no-empty-interface": false, "no-inferrable-types": [ true, "ignore-params" diff --git a/yarn.lock b/yarn.lock index 86f6d94fa..a0072d4ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1152,57 +1152,100 @@ enabled "2.0.x" kuler "^2.0.0" +"@firebase/analytics-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.0.900-exp.894b5da5a.tgz#f5266516794e9a3d2deb80bf8118f1f7400b6ca7" + integrity sha512-WceCqszQxu0rBoGR9GqJQSI3Bhz6wLGBlJ+wPB0hswpYoOinZR7u/Oi9aS+mXAn5wKh5FvV6LHZpJQCPTQ70wg== + dependencies: + "@firebase/analytics" "0.0.900-exp.894b5da5a" + "@firebase/analytics-types" "0.4.0" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + "@firebase/analytics-types@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.4.0.tgz#d6716f9fa36a6e340bc0ecfe68af325aa6f60508" integrity sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA== -"@firebase/analytics@0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.6.2.tgz#7f45675a1b524fff4d9e9fe318fd6e2ed067a325" - integrity sha512-4Ceov+rPfOEPIdbjlpTim/wbcUUneIesHag4UOzvmFsRRXqbxLwQpyZQWEbTSriUeU8uTKj9yOW32hsskV9Klg== +"@firebase/analytics@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.0.900-exp.894b5da5a.tgz#d425f48b0a74424685c1c9bd5accb1d493ff3726" + integrity sha512-eECrPHZnn17n5SOv41zbvY5gETg6QYcFcAINgOekm0+uMRp1JciDOoGRtLFca6rR0dVII06zJh8mWyk6u+RCtQ== dependencies: - "@firebase/analytics-types" "0.4.0" - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/app-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.0.900-exp.894b5da5a.tgz#8da8cfb6dff08ff0ccc4e775fd0ba3e8fb3bb853" + integrity sha512-DVo9xK2bC2RJccoWlzbH0wJZgapVJ/zS/F69e5d1PtXjxzdtLAJMtaeA2kTY7UV8aZf6sE7Ahd68RCPZD2fI+w== + dependencies: + "@firebase/app" "0.0.900-exp.894b5da5a" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + dom-storage "2.1.0" + tslib "^2.1.0" + xmlhttprequest "1.8.0" "@firebase/app-types@0.6.1": version "0.6.1" resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.1.tgz#dcbd23030a71c0c74fc95d4a3f75ba81653850e9" integrity sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg== -"@firebase/app@0.6.13": - version "0.6.13" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.6.13.tgz#f2e9fa9e75815e54161dc34659a60f1fffd9a450" - integrity sha512-xGrJETzvCb89VYbGSHFHCW7O/y067HRxT7MGehUE1xMxdPVBDNayHnxEuKwzfGvXAjVmajXBKFlKxaCWpgSjCQ== +"@firebase/app-types@0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.6.2.tgz#8578cb1061a83ced4570188be9e225d54e0f27fb" + integrity sha512-2VXvq/K+n8XMdM4L2xy5bYp2ZXMawJXluUIDzUBvMthVR+lhxK4pfFiqr1mmDbv9ydXvEAuFsD+6DpcZuJcSSw== + +"@firebase/app@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.0.900-exp.894b5da5a.tgz#8ef29af8ab98180e2b6a2df27b1d47773f211a19" + integrity sha512-/xzLbH6349mBb+RCmXP8BkBA+wL+U3Rurb9dDGRrc3umMA3BJKTST/KSW5JJaixZ51Gil9vSF4g1ZQV0yYg9Yg== dependencies: - "@firebase/app-types" "0.6.1" - "@firebase/component" "0.1.21" + "@firebase/component" "0.4.1" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" - dom-storage "2.1.0" - tslib "^1.11.1" - xmlhttprequest "1.8.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/auth-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.0.900-exp.894b5da5a.tgz#b95de9c800374addb4474acfe05fa6f7548be64e" + integrity sha512-g56ZU8pn7pY0IYHSvET8My9Q7wp//2bgTLdU9IuHxvmUy7v8pdpAKnpPkBu/tlAMK5MoV5vsxB21JuQBXuRp8A== + dependencies: + "@firebase/auth" "0.0.900-exp.894b5da5a" + "@firebase/auth-types" "0.10.2" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" + node-fetch "2.6.1" + selenium-webdriver "^4.0.0-beta.2" + tslib "^2.1.0" "@firebase/auth-interop-types@0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz#9fc9bd7c879f16b8d1bb08373a0f48c3a8b74557" integrity sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw== -"@firebase/auth-types@0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.1.tgz#7815e71c9c6f072034415524b29ca8f1d1770660" - integrity sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw== +"@firebase/auth-types@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.10.2.tgz#3fad953380c447b7545122430a4c7a9bc8355001" + integrity sha512-0GMWVWh5TBCYIQfVerxzDsuvhoFpK0++O9LtP3FWkwYo7EAxp6w0cftAg/8ntU1E5Wg56Ry0b6ti/YGP6g0jlg== -"@firebase/auth@0.15.2": - version "0.15.2" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.15.2.tgz#9ada3f37620d131a1c56994138a599b5c9f9ca2e" - integrity sha512-2n32PBi6x9jVhc0E/ewKLUCYYTzFEXL4PNkvrrlGKbzeTBEkkyzfgUX7OV9UF5wUOG+gurtUthuur1zspZ/9hg== +"@firebase/auth@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.0.900-exp.894b5da5a.tgz#895362bc2911a33ffe22c2e2eeb6257d7e882109" + integrity sha512-1z6+8GDqABujKRXeRBC4HdaTS/kn2A2k4wFxGn0YgaUJAnm3Znz4KSTqvg2mT82/GNnwBXhWgbjlmLt0vaVrvA== dependencies: - "@firebase/auth-types" "0.10.1" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + node-fetch "2.6.1" + selenium-webdriver "4.0.0-beta.1" + tslib "^2.1.0" "@firebase/component@0.1.19": version "0.1.19" @@ -1212,13 +1255,27 @@ "@firebase/util" "0.3.2" tslib "^1.11.1" -"@firebase/component@0.1.21": - version "0.1.21" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.1.21.tgz#56062eb0d449dc1e7bbef3c084a9b5fa48c7c14d" - integrity sha512-kd5sVmCLB95EK81Pj+yDTea8pzN2qo/1yr0ua9yVi6UgMzm6zAeih73iVUkaat96MAHy26yosMufkvd3zC4IKg== +"@firebase/component@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.4.1.tgz#c8269f21149a4c81e385531428ad4c086a8f47db" + integrity sha512-f0IbIsoe33QzOj554rmDL04PyeZX/nNZYOAwlTzKmHq/JoFN6YoySi+0ZLyCtFrnRgw6zNnR/POXKOdfljWqZA== dependencies: - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + +"@firebase/database-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.0.900-exp.894b5da5a.tgz#5f2f360904dbec30013e0c8b45d08733112dfa8e" + integrity sha512-j/RYAsQISl2/m3QiSiWD8aa+8ryhjhu1km/Ts/dVf36owUix0XQ6gvL4PD23JO/WuRqEXpjeULK4S175aJBn/A== + dependencies: + "@firebase/auth-interop-types" "0.1.5" + "@firebase/component" "0.4.1" + "@firebase/database" "0.0.900-exp.894b5da5a" + "@firebase/database-types" "0.7.2" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + faye-websocket "0.11.3" + tslib "^2.1.0" "@firebase/database-types@0.5.2": version "0.5.2" @@ -1227,25 +1284,25 @@ dependencies: "@firebase/app-types" "0.6.1" -"@firebase/database-types@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.6.1.tgz#cf1cfc03e617ed4c2561703781f85ba4c707ff65" - integrity sha512-JtL3FUbWG+bM59iYuphfx9WOu2Mzf0OZNaqWiQ7lJR8wBe7bS9rIm9jlBFtksB7xcya1lZSQPA/GAy2jIlMIkA== +"@firebase/database-types@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.7.2.tgz#449c4b36ec59a1ad9089797b540e2ba1c0d4fcbf" + integrity sha512-cdAd/dgwvC0r3oLEDUR+ULs1vBsEvy0b27nlzKhU6LQgm9fCDzgaH9nFGv8x+S9dly4B0egAXkONkVoWcOAisg== dependencies: - "@firebase/app-types" "0.6.1" + "@firebase/app-types" "0.6.2" -"@firebase/database@0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.8.1.tgz#a7bc1c01052d35817a242c21bfe09ab29ee485a3" - integrity sha512-/1HhR4ejpqUaM9Cn3KSeNdQvdlehWIhdfTVWFxS73ZlLYf7ayk9jITwH10H3ZOIm5yNzxF67p/U7Z/0IPhgWaQ== +"@firebase/database@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.0.900-exp.894b5da5a.tgz#72345726addb4b5d68be11f38bab19a85acd96d2" + integrity sha512-TAH6fn/9PwfeZS8ju0h14QzK8GbXGxrcup8qSeymTyS3Tklzo7hEWvlricnsx0f0oYwtXbW3WZEnfc2BaQLgOg== dependencies: "@firebase/auth-interop-types" "0.1.5" - "@firebase/component" "0.1.21" - "@firebase/database-types" "0.6.1" + "@firebase/component" "0.4.1" + "@firebase/database-types" "0.7.2" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" + "@firebase/util" "1.0.0" faye-websocket "0.11.3" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/database@^0.6.0": version "0.6.13" @@ -1260,137 +1317,193 @@ faye-websocket "0.11.3" tslib "^1.11.1" -"@firebase/firestore-types@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.0.0.tgz#1f6212553b240f1a8905bb8dcf1f87769138c5c0" - integrity sha512-ZGb7p1SSQJP0Z+kc9GAUi+Fx5rJatFddBrS1ikkayW+QHfSIz0omU23OgSHcBGTxe8dJCeKiKA2Yf+tkDKO/LA== +"@firebase/firestore-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.0.900-exp.894b5da5a.tgz#2c3f2e1aa0644a42fcf9e1bab60a848846438703" + integrity sha512-CjT+5wp3jyJwUWI8hKhlg7WxpbLToHbBm9BF9BpihDY1j0IyJmBICC0LJEtXsib/IOPIsf04rxUiFHKX4ciOHg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/firestore" "0.0.900-exp.894b5da5a" + "@firebase/firestore-types" "2.2.0" + "@firebase/logger" "0.2.6" + "@firebase/util" "1.0.0" + "@firebase/webchannel-wrapper" "0.4.1" + "@grpc/grpc-js" "^1.0.0" + "@grpc/proto-loader" "^0.5.0" + node-fetch "2.6.1" + tslib "^2.1.0" -"@firebase/firestore@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-2.0.4.tgz#c4be6f3540f607fd8e200cfba83c4997c29447fe" - integrity sha512-fzJKj/4h4jOwPSfHB42XBJIC0zsPsepU6FcBO+8nSx7G2IPfTw8cMgSNin2gPqX6tR1w1NQtHiSlXiRKsbMZdA== +"@firebase/firestore-types@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.2.0.tgz#9a3f3f2906232c3b4a726d988a6ef077f35f9093" + integrity sha512-5kZZtQ32FIRJP1029dw+ZVNRCclKOErHv1+Xn0pw/5Fq3dxroA/ZyFHqDu+uV52AyWHhNLjCqX43ibm4YqOzRw== + +"@firebase/firestore@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.0.900-exp.894b5da5a.tgz#8e27ab619175969c24d33a45c07b6e3b13c4338c" + integrity sha512-aMCoGe1rN5ChmGgBU3GCqDWTG8GtbGrHq8wRmQGUrh90TDG4DX1ImF5xyJrymwST1juMk8kVtV1okvQ1zmPf8A== dependencies: - "@firebase/component" "0.1.21" - "@firebase/firestore-types" "2.0.0" + "@firebase/component" "0.4.1" + "@firebase/firestore-types" "2.2.0" "@firebase/logger" "0.2.6" - "@firebase/util" "0.3.4" + "@firebase/util" "1.0.0" "@firebase/webchannel-wrapper" "0.4.1" "@grpc/grpc-js" "^1.0.0" "@grpc/proto-loader" "^0.5.0" node-fetch "2.6.1" - tslib "^1.11.1" + tslib "^2.1.0" + +"@firebase/functions-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.0.900-exp.894b5da5a.tgz#3ff0564b4446d1f25a99f2ca8da1349b5166f1a7" + integrity sha512-M57QEQ8TN12lYEMJZ3anaRGILJ59nOU4Xp6cCHsAbB5DkYLuxoHccvfZCzwmv95hEhF1mSvFPrZRJG9F3PVmZg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/functions" "0.0.900-exp.894b5da5a" + "@firebase/functions-types" "0.4.0" + "@firebase/messaging-types" "0.5.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/functions-types@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.4.0.tgz#0b789f4fe9a9c0b987606c4da10139345b40f6b9" integrity sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ== -"@firebase/functions@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.6.1.tgz#32640b8f877637057dfaaeb122be8c8e99ad1af7" - integrity sha512-xNCAY3cLlVWE8Azf+/84OjnaXMoyUstJ3vwVRG0ie22QhsdQuPa1tXTiPX4Tmm+Hbbd/Aw0A/7dkEnuW+zYzaQ== +"@firebase/functions@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.0.900-exp.894b5da5a.tgz#dd5e84ab637ddba364cb252d69153d33556f2b5e" + integrity sha512-7094mgWbVsMLaeKalQkEVvaydS+l1f/gytFXYyz+qtazYvghsrQd+n5pJQBzbBVNHw2NAQrJxHrePCftw8u2jg== dependencies: - "@firebase/component" "0.1.21" - "@firebase/functions-types" "0.4.0" + "@firebase/component" "0.4.1" "@firebase/messaging-types" "0.5.0" + "@firebase/util" "1.0.0" node-fetch "2.6.1" - tslib "^1.11.1" + tslib "^2.1.0" -"@firebase/installations-types@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.3.4.tgz#589a941d713f4f64bf9f4feb7f463505bab1afa2" - integrity sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q== - -"@firebase/installations@0.4.19": - version "0.4.19" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.4.19.tgz#53f50aeb022996963f89f59560d7b4cf801869da" - integrity sha512-QqAQzosKVVqIx7oMt5ujF4NsIXgtlTnej4JXGJ8sQQuJoMnt3T+PFQRHbr7uOfVaBiHYhEaXCcmmhfKUHwKftw== +"@firebase/installations@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.0.900-exp.894b5da5a.tgz#c8e5d708bc70c11df2a23645f5193bb516060d4a" + integrity sha512-mKjQq3etoZdZVCfUap+2tJgqS6AFHptg5HUBmUVGn+5Nz74i4n8M/M4W/qhXIjlnEcdLGop+5XaE9Tm03tbC7Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations-types" "0.3.4" - "@firebase/util" "0.3.4" + "@firebase/component" "0.4.1" + "@firebase/util" "1.0.0" idb "3.0.2" - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/logger@0.2.6": version "0.2.6" resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.2.6.tgz#3aa2ca4fe10327cabf7808bd3994e88db26d7989" integrity sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw== +"@firebase/messaging-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.0.900-exp.894b5da5a.tgz#0068cfcbc728dbcfc39ee2036378006f135b7968" + integrity sha512-LkkaK7KFj4xQhJS/ihFlHZfofgSYPWtHuCKv+vC8ANhl0BB4GMPU5huQ9sHLlQQxnmRViemXdphKNDceEnOzhQ== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" + "@firebase/messaging" "0.0.900-exp.894b5da5a" + "@firebase/util" "1.0.0" + tslib "^2.1.0" + "@firebase/messaging-types@0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.5.0.tgz#c5d0ef309ced1758fda93ef3ac70a786de2e73c4" integrity sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg== -"@firebase/messaging@0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.7.3.tgz#31dded892455e4d0680e1452ff2fbfdfb9e4ce9b" - integrity sha512-63nOP2SmQJrj9jrhV3K96L5MRKS6AqmFVLX1XbGk6K6lz38ZC4LIoCcHxzUBXY7fCAuZvNmh/YB3pE8B2mTs8A== +"@firebase/messaging@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.0.900-exp.894b5da5a.tgz#f9604cd4d5a91016fee310351dd47939edc5352e" + integrity sha512-Bvg5Fr0i9tkwYT+mANggr8IzGH+IoPR7u11ZWOp4Iwo3gVgH2Q2kaDHBxxaV07k33Vqs4xCGq+f5sc56yI9GUQ== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" - "@firebase/messaging-types" "0.5.0" - "@firebase/util" "0.3.4" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" + "@firebase/util" "1.0.0" idb "3.0.2" - tslib "^1.11.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.0.900-exp.894b5da5a.tgz#96bd95109bea7f7cec4a47a5738f4fc17aba9c2c" + integrity sha512-x4MiVQNYin4h90IoGOYkgWFSwH40u3M0YOx+YlBp0l+cKO74s9Rm0DVVNjVz3DZPC3WI1QCT2ImYiszJhQgwTg== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/performance" "0.0.900-exp.894b5da5a" + "@firebase/performance-types" "0.0.13" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/performance-types@0.0.13": version "0.0.13" resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.0.13.tgz#58ce5453f57e34b18186f74ef11550dfc558ede6" integrity sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA== -"@firebase/performance@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.4.4.tgz#5f13ea3b9a72a0ae9c36520c419be31448a0955a" - integrity sha512-CY/fzz7qGQ9hUkvOow22MeJhayHSjXmI4+0AqcxaUC4CWk4oQubyIC4pk62aH+yCwZNNeC7JJUEDbtqI/0rGkQ== +"@firebase/performance@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.0.900-exp.894b5da5a.tgz#248eeb8176ce636ae18ce45e8929be9a41e441ae" + integrity sha512-AObB2165d+DDuCN1p0wzJisA6CPqnDeZKnFOcOuMsVnQjRCC1smIDomXoDcNCh+9nEkz6MrGPZnhGgN5OGzT1Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/performance-types" "0.0.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" -"@firebase/polyfill@0.3.36": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@firebase/polyfill/-/polyfill-0.3.36.tgz#c057cce6748170f36966b555749472b25efdb145" - integrity sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg== +"@firebase/remote-config-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.0.900-exp.894b5da5a.tgz#be4527be8b8a2dbc0d946a064db400398772bb12" + integrity sha512-o78QgpipoRG/XiuzIGGgVX1PZS6xF4FPaQXbANtE+qdNJUpVfBVk6WpzeDlRE4c1h/EAJJi3fL4RZRmyy/b/WQ== dependencies: - core-js "3.6.5" - promise-polyfill "8.1.3" - whatwg-fetch "2.0.4" + "@firebase/component" "0.4.1" + "@firebase/logger" "0.2.6" + "@firebase/remote-config" "0.0.900-exp.894b5da5a" + "@firebase/remote-config-types" "0.1.9" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/remote-config-types@0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz#fe6bbe4d08f3b6e92fce30e4b7a9f4d6a96d6965" integrity sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA== -"@firebase/remote-config@0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.1.30.tgz#2cd6bbbed526a98b154e13a2cc73e748a77d7c3d" - integrity sha512-LAfLDcp1AN0V/7AkxBuTKy+Qnq9fKYKxbA5clrXRNVzJbTVnF5eFGsaUOlkes0ESG6lbqKy5ZcDgdl73zBIhAA== +"@firebase/remote-config@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.0.900-exp.894b5da5a.tgz#feef14ec3d521c43b19460756ace429799e28b2f" + integrity sha512-+5rO3r8zLDufpt1VO6Urm4/YluAYkvITpwzGPA+vv7a+Bs5P+Et4Z1bleUjSdlqJAZMpGnx748+AZYXiVxBtgQ== dependencies: - "@firebase/component" "0.1.21" - "@firebase/installations" "0.4.19" + "@firebase/component" "0.4.1" + "@firebase/installations" "0.0.900-exp.894b5da5a" "@firebase/logger" "0.2.6" - "@firebase/remote-config-types" "0.1.9" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/util" "1.0.0" + tslib "^2.1.0" -"@firebase/storage-types@0.3.13": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.3.13.tgz#cd43e939a2ab5742e109eb639a313673a48b5458" - integrity sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog== +"@firebase/storage-compat@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.0.900-exp.894b5da5a.tgz#c438d9ac345e74d1a9176b1c5ef4a39576a2b817" + integrity sha512-cmMZzwxv0eTEjanXjt6tjGTAQ+MaZpmNtC0c5vG9ZZI53kCnyCtljfnAtIaCYdJvc4BMsXEsdm0shYQ7R8JTQw== + dependencies: + "@firebase/component" "0.4.1" + "@firebase/storage" "0.0.900-exp.894b5da5a" + "@firebase/storage-types" "0.4.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" -"@firebase/storage@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.4.2.tgz#bc5924b87bd2fdd4ab0de49851c0125ebc236b89" - integrity sha512-87CrvKrf8kijVekRBmUs8htsNz7N5X/pDhv3BvJBqw8K65GsUolpyjx0f4QJRkCRUYmh3MSkpa5P08lpVbC6nQ== +"@firebase/storage-types@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.4.0.tgz#94414fce425b9a137cf18e4b6d04399b1dcabf23" + integrity sha512-2xgiLGfDv6Fz5qRrsO47/7PfbV9P+5tEuvEktJYTNxrgTxGPj3sMb7ZkycIb4JE98fAbmGEeMQaRSorqR5bEIQ== + +"@firebase/storage@0.0.900-exp.894b5da5a": + version "0.0.900-exp.894b5da5a" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.0.900-exp.894b5da5a.tgz#3154b7ec303b1ab99378c9d36c7e1f3f2bd37270" + integrity sha512-ECz2F9m3rUMutsnlx5Uv3mTQgXva5Q4PFNjkrE8c5d8VHfyl6dPxjBIbqK0Qi+QiFUfnWj7zyVyn5f9ADpIa8Q== dependencies: - "@firebase/component" "0.1.21" - "@firebase/storage-types" "0.3.13" - "@firebase/util" "0.3.4" - tslib "^1.11.1" + "@firebase/component" "0.4.1" + "@firebase/storage-types" "0.4.0" + "@firebase/util" "1.0.0" + tslib "^2.1.0" "@firebase/util@0.3.2": version "0.3.2" @@ -1399,12 +1512,12 @@ dependencies: tslib "^1.11.1" -"@firebase/util@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.3.4.tgz#e389d0e0e2aac88a5235b06ba9431db999d4892b" - integrity sha512-VwjJUE2Vgr2UMfH63ZtIX9Hd7x+6gayi6RUXaTqEYxSbf/JmehLmAEYSuxS/NckfzAXWeGnKclvnXVibDgpjQQ== +"@firebase/util@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.0.0.tgz#cbe8ec610a84a7d2fc804af31010305941f4a34b" + integrity sha512-KIEyuyrYKKtit+lAl66c2GVvooM1Pb+Yw/9yuSga1HKYMxNZwSsIMXU8X97sLZf7WJaanV1XNJEMkZTw3xKEoA== dependencies: - tslib "^1.11.1" + tslib "^2.1.0" "@firebase/webchannel-wrapper@0.4.1": version "0.4.1" @@ -5877,25 +5990,31 @@ firebase-tools@^8.0.0: winston "^3.0.0" ws "^7.2.3" -"firebase@^7.0 || ^8.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-8.1.1.tgz#379094b724053931fda1086e9020a17b578e50d5" - integrity sha512-w1plr2jYvzBkx/rHE6A0EJf9318ufA5omShLuGocPlQtrvphel+KJcd+R02outE5E2lSDhyM0l3EoiA0YCD4hA== - dependencies: - "@firebase/analytics" "0.6.2" - "@firebase/app" "0.6.13" - "@firebase/app-types" "0.6.1" - "@firebase/auth" "0.15.2" - "@firebase/database" "0.8.1" - "@firebase/firestore" "2.0.4" - "@firebase/functions" "0.6.1" - "@firebase/installations" "0.4.19" - "@firebase/messaging" "0.7.3" - "@firebase/performance" "0.4.4" - "@firebase/polyfill" "0.3.36" - "@firebase/remote-config" "0.1.30" - "@firebase/storage" "0.4.2" - "@firebase/util" "0.3.4" +firebase@^9.0.0-beta.1: + version "9.0.0-beta.1" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.0.0-beta.1.tgz#97a9a848dfd2737b3787995c8a94388d3e83d185" + integrity sha512-dYPrlGUi+JYqQIydE4LGZ7A2X5uFazwUNbAX0s7N1S34swvgp5Xz2ww63DB+hwjglF6eH+PiMGBDSZSG7hikUw== + dependencies: + "@firebase/analytics" "0.0.900-exp.894b5da5a" + "@firebase/analytics-compat" "0.0.900-exp.894b5da5a" + "@firebase/app" "0.0.900-exp.894b5da5a" + "@firebase/app-compat" "0.0.900-exp.894b5da5a" + "@firebase/auth" "0.0.900-exp.894b5da5a" + "@firebase/auth-compat" "0.0.900-exp.894b5da5a" + "@firebase/database" "0.0.900-exp.894b5da5a" + "@firebase/database-compat" "0.0.900-exp.894b5da5a" + "@firebase/firestore" "0.0.900-exp.894b5da5a" + "@firebase/firestore-compat" "0.0.900-exp.894b5da5a" + "@firebase/functions" "0.0.900-exp.894b5da5a" + "@firebase/functions-compat" "0.0.900-exp.894b5da5a" + "@firebase/messaging" "0.0.900-exp.894b5da5a" + "@firebase/messaging-compat" "0.0.900-exp.894b5da5a" + "@firebase/performance" "0.0.900-exp.894b5da5a" + "@firebase/performance-compat" "0.0.900-exp.894b5da5a" + "@firebase/remote-config" "0.0.900-exp.894b5da5a" + "@firebase/remote-config-compat" "0.0.900-exp.894b5da5a" + "@firebase/storage" "0.0.900-exp.894b5da5a" + "@firebase/storage-compat" "0.0.900-exp.894b5da5a" flat-arguments@^1.0.0: version "1.0.2" @@ -7954,6 +8073,16 @@ jszip@^3.1.3: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" +jszip@^3.5.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" + integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -10401,11 +10530,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise-polyfill@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - promise-retry@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" @@ -11092,7 +11216,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.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== @@ -11318,6 +11442,26 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: tmp "0.0.30" xml2js "^0.4.17" +selenium-webdriver@4.0.0-beta.1: + version "4.0.0-beta.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz#db645b0d775f26e4e12235db05796a1bc1e7efda" + integrity sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ== + dependencies: + jszip "^3.5.0" + rimraf "^2.7.1" + tmp "^0.2.1" + ws "^7.3.1" + +selenium-webdriver@^4.0.0-beta.2: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.3.tgz#8c29512a27ca9c1f95a96a9a8f488304c894390e" + integrity sha512-R0mGHpQkSKgIWiPgcKDcckh4A6aaK0KTyWxs5ieuiI7zsXQ+Kb6neph+dNoeqq3jSBGyv3ONo2w3oohoL4D/Rg== + dependencies: + jszip "^3.5.0" + rimraf "^2.7.1" + tmp "^0.2.1" + ws "^7.3.1" + selfsigned@^1.10.7: version "1.10.8" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" @@ -12465,7 +12609,7 @@ tmp@0.0.33, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.2.1: +tmp@0.2.1, tmp@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -12641,6 +12785,11 @@ tslib@^1.10.0, tslib@^1.11.1, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tslint@~6.1.0: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" @@ -13298,11 +13447,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" @@ -13479,6 +13623,11 @@ ws@^7.1.2, ws@^7.2.1, ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== +ws@^7.3.1: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + ws@~6.1.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"