@angular/fire 7.1.0-rc.3 → 7.1.1-canary.5ecf875

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/analytics/analytics.module.d.ts +9 -6
  2. package/analytics/firebase.d.ts +2 -2
  3. package/analytics/overrides.d.ts +1 -0
  4. package/analytics/public_api.d.ts +2 -0
  5. package/analytics/screen-tracking.service.d.ts +40 -0
  6. package/analytics/user-tracking.service.d.ts +11 -0
  7. package/app/app.module.d.ts +3 -3
  8. package/app-check/app-check.module.d.ts +3 -3
  9. package/auth/auth.module.d.ts +3 -3
  10. package/auth-guard/angular-fire-auth-guard.d.ts +5 -0
  11. package/auth-guard/auth-guard.d.ts +29 -0
  12. package/auth-guard/auth-guard.module.d.ts +7 -0
  13. package/auth-guard/package.json +11 -0
  14. package/auth-guard/public_api.d.ts +2 -0
  15. package/bundles/angular-fire-analytics.umd.js +548 -41
  16. package/bundles/angular-fire-analytics.umd.js.map +1 -1
  17. package/bundles/angular-fire-app-check.umd.js +336 -18
  18. package/bundles/angular-fire-app-check.umd.js.map +1 -1
  19. package/bundles/angular-fire-app.umd.js +323 -3
  20. package/bundles/angular-fire-app.umd.js.map +1 -1
  21. package/bundles/angular-fire-auth-guard.umd.js +109 -0
  22. package/bundles/angular-fire-auth-guard.umd.js.map +1 -0
  23. package/bundles/angular-fire-auth.umd.js +324 -9
  24. package/bundles/angular-fire-auth.umd.js.map +1 -1
  25. package/bundles/angular-fire-compat-analytics.umd.js +16 -112
  26. package/bundles/angular-fire-compat-analytics.umd.js.map +1 -1
  27. package/bundles/angular-fire-compat-auth.umd.js +1 -1
  28. package/bundles/angular-fire-compat-auth.umd.js.map +1 -1
  29. package/bundles/angular-fire-compat-database.umd.js +1 -1
  30. package/bundles/angular-fire-compat-database.umd.js.map +1 -1
  31. package/bundles/angular-fire-compat-firestore.umd.js +1 -1
  32. package/bundles/angular-fire-compat-firestore.umd.js.map +1 -1
  33. package/bundles/angular-fire-compat-functions.umd.js +1 -1
  34. package/bundles/angular-fire-compat-functions.umd.js.map +1 -1
  35. package/bundles/angular-fire-compat-messaging.umd.js +5 -5
  36. package/bundles/angular-fire-compat-messaging.umd.js.map +1 -1
  37. package/bundles/angular-fire-compat-performance.umd.js +5 -5
  38. package/bundles/angular-fire-compat-performance.umd.js.map +1 -1
  39. package/bundles/angular-fire-compat-remote-config.umd.js +5 -5
  40. package/bundles/angular-fire-compat-remote-config.umd.js.map +1 -1
  41. package/bundles/angular-fire-compat-storage.umd.js +2 -1
  42. package/bundles/angular-fire-compat-storage.umd.js.map +1 -1
  43. package/bundles/angular-fire-compat.umd.js +38 -2
  44. package/bundles/angular-fire-compat.umd.js.map +1 -1
  45. package/bundles/angular-fire-database.umd.js +323 -6
  46. package/bundles/angular-fire-database.umd.js.map +1 -1
  47. package/bundles/angular-fire-firestore-lite.umd.js +327 -9
  48. package/bundles/angular-fire-firestore-lite.umd.js.map +1 -1
  49. package/bundles/angular-fire-firestore.umd.js +323 -8
  50. package/bundles/angular-fire-firestore.umd.js.map +1 -1
  51. package/bundles/angular-fire-functions.umd.js +323 -6
  52. package/bundles/angular-fire-functions.umd.js.map +1 -1
  53. package/bundles/angular-fire-messaging.umd.js +339 -24
  54. package/bundles/angular-fire-messaging.umd.js.map +1 -1
  55. package/bundles/angular-fire-performance.umd.js +339 -11
  56. package/bundles/angular-fire-performance.umd.js.map +1 -1
  57. package/bundles/angular-fire-remote-config.umd.js +342 -6
  58. package/bundles/angular-fire-remote-config.umd.js.map +1 -1
  59. package/bundles/angular-fire-storage.umd.js +324 -7
  60. package/bundles/angular-fire-storage.umd.js.map +1 -1
  61. package/bundles/angular-fire.umd.js +43 -371
  62. package/bundles/angular-fire.umd.js.map +1 -1
  63. package/compat/analytics/screen-tracking.service.d.ts +2 -2
  64. package/compat/cache.d.ts +1 -0
  65. package/compat/public_api.d.ts +1 -0
  66. package/compat/storage/interfaces.d.ts +1 -0
  67. package/compat/storage/ref.d.ts +2 -1
  68. package/core.d.ts +13 -3
  69. package/database/database.module.d.ts +3 -3
  70. package/docs/deploy/getting-started.md +62 -1
  71. package/docs/version-7-upgrade.md +1 -1
  72. package/esm2015/analytics/analytics.module.js +33 -27
  73. package/esm2015/analytics/firebase.js +3 -3
  74. package/esm2015/analytics/overrides.js +3 -0
  75. package/esm2015/analytics/public_api.js +3 -1
  76. package/esm2015/analytics/screen-tracking.service.js +139 -0
  77. package/esm2015/analytics/user-tracking.service.js +43 -0
  78. package/esm2015/app/app.module.js +12 -7
  79. package/esm2015/app-check/app-check.js +1 -2
  80. package/esm2015/app-check/app-check.module.js +19 -14
  81. package/esm2015/auth/auth.js +1 -2
  82. package/esm2015/auth/auth.module.js +10 -9
  83. package/esm2015/auth-guard/angular-fire-auth-guard.js +5 -0
  84. package/esm2015/auth-guard/auth-guard.js +49 -0
  85. package/esm2015/auth-guard/auth-guard.module.js +20 -0
  86. package/esm2015/auth-guard/public_api.js +3 -0
  87. package/esm2015/compat/analytics/analytics.js +2 -3
  88. package/esm2015/compat/analytics/screen-tracking.service.js +11 -100
  89. package/esm2015/compat/auth/auth.js +2 -3
  90. package/esm2015/compat/cache.js +32 -0
  91. package/esm2015/compat/database/database.js +2 -3
  92. package/esm2015/compat/firestore/firestore.js +2 -3
  93. package/esm2015/compat/functions/functions.js +2 -3
  94. package/esm2015/compat/messaging/messaging.js +3 -3
  95. package/esm2015/compat/performance/performance.js +2 -3
  96. package/esm2015/compat/public_api.js +2 -1
  97. package/esm2015/compat/remote-config/remote-config.js +4 -5
  98. package/esm2015/compat/storage/interfaces.js +1 -1
  99. package/esm2015/compat/storage/ref.js +2 -1
  100. package/esm2015/compat/storage/storage.js +3 -3
  101. package/esm2015/core.js +44 -52
  102. package/esm2015/database/database.module.js +9 -7
  103. package/esm2015/firestore/firestore.module.js +9 -9
  104. package/esm2015/firestore/lite/lite.module.js +11 -7
  105. package/esm2015/functions/functions.module.js +9 -7
  106. package/esm2015/messaging/firebase.js +3 -3
  107. package/esm2015/messaging/messaging.module.js +19 -21
  108. package/esm2015/messaging/overrides.js +3 -0
  109. package/esm2015/performance/performance.module.js +22 -8
  110. package/esm2015/remote-config/firebase.js +2 -1
  111. package/esm2015/remote-config/overrides.js +3 -0
  112. package/esm2015/remote-config/remote-config.module.js +25 -7
  113. package/esm2015/storage/storage.module.js +10 -8
  114. package/esm2015/zones.js +3 -2
  115. package/fesm2015/angular-fire-analytics.js +209 -40
  116. package/fesm2015/angular-fire-analytics.js.map +1 -1
  117. package/fesm2015/angular-fire-app-check.js +18 -14
  118. package/fesm2015/angular-fire-app-check.js.map +1 -1
  119. package/fesm2015/angular-fire-app.js +11 -6
  120. package/fesm2015/angular-fire-app.js.map +1 -1
  121. package/fesm2015/angular-fire-auth-guard.js +72 -0
  122. package/fesm2015/angular-fire-auth-guard.js.map +1 -0
  123. package/fesm2015/angular-fire-auth.js +9 -9
  124. package/fesm2015/angular-fire-auth.js.map +1 -1
  125. package/fesm2015/angular-fire-compat-analytics.js +10 -98
  126. package/fesm2015/angular-fire-compat-analytics.js.map +1 -1
  127. package/fesm2015/angular-fire-compat-auth.js +2 -2
  128. package/fesm2015/angular-fire-compat-auth.js.map +1 -1
  129. package/fesm2015/angular-fire-compat-database.js +2 -2
  130. package/fesm2015/angular-fire-compat-database.js.map +1 -1
  131. package/fesm2015/angular-fire-compat-firestore.js +2 -2
  132. package/fesm2015/angular-fire-compat-firestore.js.map +1 -1
  133. package/fesm2015/angular-fire-compat-functions.js +2 -2
  134. package/fesm2015/angular-fire-compat-functions.js.map +1 -1
  135. package/fesm2015/angular-fire-compat-messaging.js +2 -2
  136. package/fesm2015/angular-fire-compat-messaging.js.map +1 -1
  137. package/fesm2015/angular-fire-compat-performance.js +2 -2
  138. package/fesm2015/angular-fire-compat-performance.js.map +1 -1
  139. package/fesm2015/angular-fire-compat-remote-config.js +4 -4
  140. package/fesm2015/angular-fire-compat-remote-config.js.map +1 -1
  141. package/fesm2015/angular-fire-compat-storage.js +3 -2
  142. package/fesm2015/angular-fire-compat-storage.js.map +1 -1
  143. package/fesm2015/angular-fire-compat.js +34 -3
  144. package/fesm2015/angular-fire-compat.js.map +1 -1
  145. package/fesm2015/angular-fire-database.js +8 -6
  146. package/fesm2015/angular-fire-database.js.map +1 -1
  147. package/fesm2015/angular-fire-firestore-lite.js +10 -6
  148. package/fesm2015/angular-fire-firestore-lite.js.map +1 -1
  149. package/fesm2015/angular-fire-firestore.js +8 -8
  150. package/fesm2015/angular-fire-firestore.js.map +1 -1
  151. package/fesm2015/angular-fire-functions.js +8 -6
  152. package/fesm2015/angular-fire-functions.js.map +1 -1
  153. package/fesm2015/angular-fire-messaging.js +22 -22
  154. package/fesm2015/angular-fire-messaging.js.map +1 -1
  155. package/fesm2015/angular-fire-performance.js +21 -7
  156. package/fesm2015/angular-fire-performance.js.map +1 -1
  157. package/fesm2015/angular-fire-remote-config.js +27 -7
  158. package/fesm2015/angular-fire-remote-config.js.map +1 -1
  159. package/fesm2015/angular-fire-storage.js +9 -7
  160. package/fesm2015/angular-fire-storage.js.map +1 -1
  161. package/fesm2015/angular-fire.js +46 -53
  162. package/fesm2015/angular-fire.js.map +1 -1
  163. package/firestore/firestore.module.d.ts +3 -3
  164. package/firestore/lite/lite.module.d.ts +3 -3
  165. package/functions/functions.module.d.ts +3 -3
  166. package/messaging/firebase.d.ts +2 -2
  167. package/messaging/messaging.module.d.ts +4 -4
  168. package/messaging/overrides.d.ts +1 -0
  169. package/package.json +9 -3
  170. package/performance/performance.module.d.ts +4 -4
  171. package/remote-config/firebase.d.ts +1 -0
  172. package/remote-config/overrides.d.ts +1 -0
  173. package/remote-config/remote-config.module.d.ts +3 -3
  174. package/schematics/deploy/actions.js +40 -26
  175. package/schematics/deploy/schema.json +4 -0
  176. package/schematics/firebaseTools.js +22 -2
  177. package/schematics/setup/index.js +9 -2
  178. package/schematics/setup/prompts.js +1 -1
  179. package/schematics/setup/ssr.js +7 -1
  180. package/schematics/setup/static.js +9 -3
  181. package/schematics/utils.js +1 -1
  182. package/schematics/versions.json +1 -1
  183. package/storage/storage.module.d.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat-storage.js","sources":["../../../src/compat/storage/observable/fromTask.ts","../../../src/compat/storage/task.ts","../../../src/compat/storage/ref.ts","../../../src/compat/storage/storage.ts","../../../src/compat/storage/pipes/storageUrl.pipe.ts","../../../src/compat/storage/storage.module.ts","../../../src/compat/storage/angular-fire-compat-storage.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from '../interfaces';\n\n// need to import, else the types become import('firebase/compat/app').default.storage.UploadTask\n// and it no longer works w/Firebase v7\nimport firebase from 'firebase/compat/app';\n\n// Things aren't working great, I'm having to put in a lot of work-arounds for what\n// appear to be Firebase JS SDK bugs https://github.com/firebase/firebase-js-sdk/issues/4158\nexport function fromTask(task: UploadTask) {\n return new Observable<UploadTaskSnapshot>(subscriber => {\n const progress = (snap: UploadTaskSnapshot) => subscriber.next(snap);\n const error = e => subscriber.error(e);\n const complete = () => subscriber.complete();\n // emit the current snapshot, so they don't have to wait for state_changes\n // to fire next... this is stale if the task is no longer running :(\n progress(task.snapshot);\n const unsub = task.on('state_changed', progress);\n // it turns out that neither task snapshot nor 'state_changed' fire the last\n // snapshot before completion, the one with status 'success\" and 100% progress\n // so let's use the promise form of the task for that\n task.then(snapshot => {\n progress(snapshot);\n complete();\n }, e => {\n // TODO investigate, again this is stale, we never fire a canceled or error it seems\n progress(task.snapshot);\n error(e);\n });\n // on's type if Function, rather than () => void, need to wrap\n return function unsubscribe() {\n unsub();\n };\n }).pipe(\n // deal with sync emissions from first emitting `task.snapshot`, this makes sure\n // that if the task is already finished we don't emit the old running state\n debounceTime(0)\n );\n}\n","import { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface AngularFireUploadTask {\n task: UploadTask;\n snapshotChanges(): Observable<UploadTaskSnapshot | undefined>;\n percentageChanges(): Observable<number | undefined>;\n pause(): boolean;\n cancel(): boolean;\n resume(): boolean;\n then(\n onFulfilled?: ((a: UploadTaskSnapshot) => any) | null,\n onRejected?: ((a: Error) => any) | null\n ): Promise<any>;\n catch(onRejected: (a: Error) => any): Promise<any>;\n}\n\n/**\n * Create an AngularFireUploadTask from a regular UploadTask from the Storage SDK.\n * This method creates an observable of the upload and returns on object that provides\n * multiple methods for controlling and monitoring the file upload.\n */\nexport function createUploadTask(task: UploadTask): AngularFireUploadTask {\n const inner$ = fromTask(task);\n return {\n task,\n then: task.then.bind(task),\n catch: task.catch.bind(task),\n pause: task.pause.bind(task),\n cancel: task.cancel.bind(task),\n resume: task.resume.bind(task),\n snapshotChanges: () => inner$,\n percentageChanges: () => inner$.pipe(\n map(s => s.bytesTransferred / s.totalBytes * 100)\n )\n };\n}\n","import { ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\nimport { from, Observable, of } from 'rxjs';\nimport { observeOutsideAngular, keepUnstableUntilFirst } from '@angular/fire';\nimport { switchMap } from 'rxjs/operators';\n\nexport interface AngularFireStorageReference {\n getDownloadURL(): Observable<any>;\n getMetadata(): Observable<any>;\n delete(): Observable<any>;\n child(path: string): AngularFireStorageReference;\n updateMetadata(meta: SettableMetadata): Observable<any>;\n put(data: any, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n putString(data: string, format?: string | undefined, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n listAll(): Observable<ListResult>;\n}\n\n/**\n * Create an AngularFire wrapped Storage Reference. This object\n * creates observable methods from promise based methods.\n */\nexport function createStorageRef(\n ref: Reference\n): AngularFireStorageReference {\n return {\n getDownloadURL: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getDownloadURL()),\n keepUnstableUntilFirst\n ),\n getMetadata: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getMetadata()),\n keepUnstableUntilFirst\n ),\n delete: () => from(ref.delete()),\n child: (path: string) => createStorageRef(ref.child(path)),\n updateMetadata: (meta: SettableMetadata) => from(ref.updateMetadata(meta)),\n put: (data: any, metadata?: UploadMetadata) => {\n const task = ref.put(data, metadata);\n return createUploadTask(task);\n },\n putString: (data: string, format?: StringFormat, metadata?: UploadMetadata) => {\n const task = ref.putString(data, format, metadata);\n return createUploadTask(task);\n },\n listAll: () => from(ref.listAll())\n };\n}\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { createStorageRef } from './ref';\nimport { ɵAngularFireSchedulers, ɵcacheInstance } from '@angular/fire';\nimport { FirebaseOptions } from 'firebase/app';\nimport { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat';\nimport { UploadMetadata } from './interfaces';\nimport 'firebase/compat/storage';\nimport firebase from 'firebase/compat/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');\nexport const MAX_UPLOAD_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxUploadRetryTime');\nexport const MAX_OPERATION_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxOperationRetryTime');\n\ntype UseEmulatorArguments = Parameters<firebase.storage.Storage['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.storage.use-emulator');\n\n/**\n * AngularFireStorage Service\n *\n * This service is the main entry point for this feature module. It provides\n * an API for uploading and downloading binary files from Cloud Storage for\n * Firebase.\n */\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireStorage {\n public readonly storage: firebase.storage.Storage;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(BUCKET) storageBucket: string | null,\n // tslint:disable-next-line:ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: number | any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: number | any,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const app = ɵfirebaseAppFactory(options, zone, name);\n this.storage = ɵcacheInstance(`${app.name}.storage.${storageBucket}`, 'AngularFireStorage', app.name, () => {\n const storage = zone.runOutsideAngular(() => app.storage(storageBucket || undefined));\n const useEmulator = _useEmulator as UseEmulatorArguments|null;\n if (useEmulator) {\n storage.useEmulator(...useEmulator);\n }\n if (maxUploadRetryTime) {\n storage.setMaxUploadRetryTime(maxUploadRetryTime);\n }\n if (maxOperationRetryTime) {\n storage.setMaxOperationRetryTime(maxOperationRetryTime);\n }\n return storage;\n }, [maxUploadRetryTime, maxOperationRetryTime]);\n }\n\n ref(path: string) {\n return createStorageRef(this.storage.ref(path));\n }\n\n refFromURL(path: string) {\n return createStorageRef(this.storage.refFromURL(path));\n }\n\n upload(path: string, data: any, metadata?: UploadMetadata) {\n const storageRef = this.storage.ref(path);\n const ref = createStorageRef(storageRef);\n return ref.put(data, metadata);\n }\n\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, NgModule, OnDestroy, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { makeStateKey, TransferState } from '@angular/platform-browser';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AngularFireStorage } from '../storage';\n\n/** to be used with in combination with | async */\n@Pipe({\n name: 'getDownloadURL',\n pure: false,\n})\nexport class GetDownloadURLPipe implements PipeTransform, OnDestroy {\n\n private asyncPipe: AsyncPipe;\n private path: string;\n private downloadUrl$: Observable<any>;\n\n constructor(\n private storage: AngularFireStorage,\n cdr: ChangeDetectorRef,\n @Optional() private state: TransferState\n ) {\n this.asyncPipe = new AsyncPipe(cdr);\n }\n\n transform(path: string) {\n if (path !== this.path) {\n this.path = path;\n const key = makeStateKey<string>(`|getDownloadURL|${path}`);\n const existing = this.state?.get(key, undefined);\n this.downloadUrl$ = existing ? of(existing) : this.storage.ref(path).getDownloadURL().pipe(\n tap(it => this.state?.set(key, it))\n );\n }\n return this.asyncPipe.transform(this.downloadUrl$);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n}\n\n@NgModule({\n declarations: [ GetDownloadURLPipe ],\n exports: [ GetDownloadURLPipe ],\n})\nexport class GetDownloadURLPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\nimport firebase from 'firebase/compat/app';\nimport { VERSION } from '@angular/fire';\n\n@NgModule({\n exports: [ GetDownloadURLPipeModule ],\n providers: [ AngularFireStorage ]\n})\nexport class AngularFireStorageModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'gcs-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat-storage.js","sources":["../../../src/compat/storage/observable/fromTask.ts","../../../src/compat/storage/task.ts","../../../src/compat/storage/ref.ts","../../../src/compat/storage/storage.ts","../../../src/compat/storage/pipes/storageUrl.pipe.ts","../../../src/compat/storage/storage.module.ts","../../../src/compat/storage/angular-fire-compat-storage.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from '../interfaces';\n\n// need to import, else the types become import('firebase/compat/app').default.storage.UploadTask\n// and it no longer works w/Firebase v7\nimport firebase from 'firebase/compat/app';\n\n// Things aren't working great, I'm having to put in a lot of work-arounds for what\n// appear to be Firebase JS SDK bugs https://github.com/firebase/firebase-js-sdk/issues/4158\nexport function fromTask(task: UploadTask) {\n return new Observable<UploadTaskSnapshot>(subscriber => {\n const progress = (snap: UploadTaskSnapshot) => subscriber.next(snap);\n const error = e => subscriber.error(e);\n const complete = () => subscriber.complete();\n // emit the current snapshot, so they don't have to wait for state_changes\n // to fire next... this is stale if the task is no longer running :(\n progress(task.snapshot);\n const unsub = task.on('state_changed', progress);\n // it turns out that neither task snapshot nor 'state_changed' fire the last\n // snapshot before completion, the one with status 'success\" and 100% progress\n // so let's use the promise form of the task for that\n task.then(snapshot => {\n progress(snapshot);\n complete();\n }, e => {\n // TODO investigate, again this is stale, we never fire a canceled or error it seems\n progress(task.snapshot);\n error(e);\n });\n // on's type if Function, rather than () => void, need to wrap\n return function unsubscribe() {\n unsub();\n };\n }).pipe(\n // deal with sync emissions from first emitting `task.snapshot`, this makes sure\n // that if the task is already finished we don't emit the old running state\n debounceTime(0)\n );\n}\n","import { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface AngularFireUploadTask {\n task: UploadTask;\n snapshotChanges(): Observable<UploadTaskSnapshot | undefined>;\n percentageChanges(): Observable<number | undefined>;\n pause(): boolean;\n cancel(): boolean;\n resume(): boolean;\n then(\n onFulfilled?: ((a: UploadTaskSnapshot) => any) | null,\n onRejected?: ((a: Error) => any) | null\n ): Promise<any>;\n catch(onRejected: (a: Error) => any): Promise<any>;\n}\n\n/**\n * Create an AngularFireUploadTask from a regular UploadTask from the Storage SDK.\n * This method creates an observable of the upload and returns on object that provides\n * multiple methods for controlling and monitoring the file upload.\n */\nexport function createUploadTask(task: UploadTask): AngularFireUploadTask {\n const inner$ = fromTask(task);\n return {\n task,\n then: task.then.bind(task),\n catch: task.catch.bind(task),\n pause: task.pause.bind(task),\n cancel: task.cancel.bind(task),\n resume: task.resume.bind(task),\n snapshotChanges: () => inner$,\n percentageChanges: () => inner$.pipe(\n map(s => s.bytesTransferred / s.totalBytes * 100)\n )\n };\n}\n","import { ListOptions, ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\nimport { from, Observable, of } from 'rxjs';\nimport { observeOutsideAngular, keepUnstableUntilFirst } from '@angular/fire';\nimport { switchMap } from 'rxjs/operators';\n\nexport interface AngularFireStorageReference {\n getDownloadURL(): Observable<any>;\n getMetadata(): Observable<any>;\n delete(): Observable<any>;\n child(path: string): AngularFireStorageReference;\n updateMetadata(meta: SettableMetadata): Observable<any>;\n put(data: any, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n putString(data: string, format?: string | undefined, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n list(options?: ListOptions): Observable<ListResult>;\n listAll(): Observable<ListResult>;\n}\n\n/**\n * Create an AngularFire wrapped Storage Reference. This object\n * creates observable methods from promise based methods.\n */\nexport function createStorageRef(\n ref: Reference\n): AngularFireStorageReference {\n return {\n getDownloadURL: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getDownloadURL()),\n keepUnstableUntilFirst\n ),\n getMetadata: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getMetadata()),\n keepUnstableUntilFirst\n ),\n delete: () => from(ref.delete()),\n child: (path: string) => createStorageRef(ref.child(path)),\n updateMetadata: (meta: SettableMetadata) => from(ref.updateMetadata(meta)),\n put: (data: any, metadata?: UploadMetadata) => {\n const task = ref.put(data, metadata);\n return createUploadTask(task);\n },\n putString: (data: string, format?: StringFormat, metadata?: UploadMetadata) => {\n const task = ref.putString(data, format, metadata);\n return createUploadTask(task);\n },\n list: (options?: ListOptions) => from(ref.list(options)),\n listAll: () => from(ref.listAll())\n };\n}\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { createStorageRef } from './ref';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { FirebaseOptions } from 'firebase/app';\nimport { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance } from '@angular/fire/compat';\nimport { UploadMetadata } from './interfaces';\nimport 'firebase/compat/storage';\nimport firebase from 'firebase/compat/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');\nexport const MAX_UPLOAD_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxUploadRetryTime');\nexport const MAX_OPERATION_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxOperationRetryTime');\n\ntype UseEmulatorArguments = Parameters<firebase.storage.Storage['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.storage.use-emulator');\n\n/**\n * AngularFireStorage Service\n *\n * This service is the main entry point for this feature module. It provides\n * an API for uploading and downloading binary files from Cloud Storage for\n * Firebase.\n */\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireStorage {\n public readonly storage: firebase.storage.Storage;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(BUCKET) storageBucket: string | null,\n // tslint:disable-next-line:ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: number | any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: number | any,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const app = ɵfirebaseAppFactory(options, zone, name);\n this.storage = ɵcacheInstance(`${app.name}.storage.${storageBucket}`, 'AngularFireStorage', app.name, () => {\n const storage = zone.runOutsideAngular(() => app.storage(storageBucket || undefined));\n const useEmulator = _useEmulator as UseEmulatorArguments|null;\n if (useEmulator) {\n storage.useEmulator(...useEmulator);\n }\n if (maxUploadRetryTime) {\n storage.setMaxUploadRetryTime(maxUploadRetryTime);\n }\n if (maxOperationRetryTime) {\n storage.setMaxOperationRetryTime(maxOperationRetryTime);\n }\n return storage;\n }, [maxUploadRetryTime, maxOperationRetryTime]);\n }\n\n ref(path: string) {\n return createStorageRef(this.storage.ref(path));\n }\n\n refFromURL(path: string) {\n return createStorageRef(this.storage.refFromURL(path));\n }\n\n upload(path: string, data: any, metadata?: UploadMetadata) {\n const storageRef = this.storage.ref(path);\n const ref = createStorageRef(storageRef);\n return ref.put(data, metadata);\n }\n\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, NgModule, OnDestroy, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { makeStateKey, TransferState } from '@angular/platform-browser';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AngularFireStorage } from '../storage';\n\n/** to be used with in combination with | async */\n@Pipe({\n name: 'getDownloadURL',\n pure: false,\n})\nexport class GetDownloadURLPipe implements PipeTransform, OnDestroy {\n\n private asyncPipe: AsyncPipe;\n private path: string;\n private downloadUrl$: Observable<any>;\n\n constructor(\n private storage: AngularFireStorage,\n cdr: ChangeDetectorRef,\n @Optional() private state: TransferState\n ) {\n this.asyncPipe = new AsyncPipe(cdr);\n }\n\n transform(path: string) {\n if (path !== this.path) {\n this.path = path;\n const key = makeStateKey<string>(`|getDownloadURL|${path}`);\n const existing = this.state?.get(key, undefined);\n this.downloadUrl$ = existing ? of(existing) : this.storage.ref(path).getDownloadURL().pipe(\n tap(it => this.state?.set(key, it))\n );\n }\n return this.asyncPipe.transform(this.downloadUrl$);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n}\n\n@NgModule({\n declarations: [ GetDownloadURLPipe ],\n exports: [ GetDownloadURLPipe ],\n})\nexport class GetDownloadURLPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\nimport firebase from 'firebase/compat/app';\nimport { VERSION } from '@angular/fire';\n\n@NgModule({\n exports: [ GetDownloadURLPipeModule ],\n providers: [ AngularFireStorage ]\n})\nexport class AngularFireStorageModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'gcs-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -84,13 +84,13 @@ function ɵfirebaseAppFactory(options, zone, nameOrConfig) {
84
84
  try {
85
85
  if (JSON.stringify(options) !== JSON.stringify(app.options)) {
86
86
  const hmr = !!module.hot;
87
- log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);
87
+ log$1('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);
88
88
  }
89
89
  }
90
90
  catch (e) { }
91
91
  return new FirebaseApp(app);
92
92
  }
93
- const log = (level, ...args) => {
93
+ const log$1 = (level, ...args) => {
94
94
  if (isDevMode() && typeof console !== 'undefined') {
95
95
  console[level](...args);
96
96
  }
@@ -134,9 +134,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
134
134
  args: [PLATFORM_ID]
135
135
  }] }]; } });
136
136
 
137
+ function ɵcacheInstance(cacheKey, moduleName, appName, fn, deps) {
138
+ const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it) => it[0] === cacheKey) || [];
139
+ if (instance) {
140
+ if (!matchDep(deps, cachedDeps)) {
141
+ log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);
142
+ log('warn', { is: deps, was: cachedDeps });
143
+ }
144
+ return instance;
145
+ }
146
+ else {
147
+ const newInstance = fn();
148
+ globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);
149
+ return newInstance;
150
+ }
151
+ }
152
+ function matchDep(a, b) {
153
+ try {
154
+ return a.toString() === b.toString();
155
+ }
156
+ catch (_) {
157
+ return a === b;
158
+ }
159
+ }
160
+ const IS_HMR = !!module.hot;
161
+ const log = (level, ...args) => {
162
+ if (isDevMode() && typeof console !== 'undefined') {
163
+ console[level](...args);
164
+ }
165
+ };
166
+ globalThis.ɵAngularfireInstanceCache || (globalThis.ɵAngularfireInstanceCache = []);
167
+
137
168
  /**
138
169
  * Generated bundle index. Do not edit.
139
170
  */
140
171
 
141
- export { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵapplyMixins, ɵfirebaseAppFactory, ɵlazySDKProxy };
172
+ export { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵapplyMixins, ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy };
142
173
  //# sourceMappingURL=angular-fire-compat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat.js","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// tslint:disable:ban-types\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T];\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];\n// tslint:enable:ban-types\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => ReturnType<T[K]> };\n\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => {\n };\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod && mod[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret && ret.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => {}, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it && it(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n InjectionToken, Inject, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version\n} from '@angular/core';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // tslint:disable-next-line:ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NG_VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat.js","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/cache.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// tslint:disable:ban-types\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T];\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];\n// tslint:enable:ban-types\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => ReturnType<T[K]> };\n\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => {\n };\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod && mod[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret && ret.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => {}, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it && it(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n InjectionToken, Inject, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version\n} from '@angular/core';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // tslint:disable-next-line:ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","import { isDevMode } from '@angular/core';\n\nexport function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T {\n const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it: any) => it[0] === cacheKey) || [];\n if (instance) {\n if (!matchDep(deps, cachedDeps)) {\n log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);\n log('warn', {is: deps, was: cachedDeps});\n }\n return instance;\n } else {\n const newInstance = fn();\n globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);\n return newInstance;\n }\n}\n\nfunction matchDep(a: any, b: any) {\n try {\n return a.toString() === b.toString();\n } catch (_) {\n return a === b;\n }\n}\n\nconst IS_HMR = !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["log","NG_VERSION"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵmemoizeInstance, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
1
+ import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
2
2
  import { timer, from } from 'rxjs';
3
3
  import { concatMap, distinct } from 'rxjs/operators';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Optional, NgModule, NgZone } from '@angular/core';
5
+ import { InjectionToken, Optional, NgModule, NgZone, Injector } from '@angular/core';
6
6
  import { AuthInstances } from '@angular/fire/auth';
7
7
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
8
8
  import { registerVersion } from 'firebase/app';
@@ -28,11 +28,11 @@ const databaseInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstan
28
28
  const PROVIDED_DATABASE_INSTANCES = new InjectionToken('angularfire2.database-instances');
29
29
  function defaultDatabaseInstanceFactory(provided, defaultApp) {
30
30
  const defaultDatabase = ɵgetDefaultInstanceOf(DATABASE_PROVIDER_NAME, provided, defaultApp);
31
- return new Database(defaultDatabase);
31
+ return defaultDatabase && new Database(defaultDatabase);
32
32
  }
33
33
  function databaseInstanceFactory(fn) {
34
- return (zone) => {
35
- const database = ɵmemoizeInstance(fn, zone);
34
+ return (zone, injector) => {
35
+ const database = zone.runOutsideAngular(() => fn(injector));
36
36
  return new Database(database);
37
37
  };
38
38
  }
@@ -70,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
70
70
  ]
71
71
  }]
72
72
  }], ctorParameters: function () { return []; } });
73
- function provideDatabase(fn) {
73
+ function provideDatabase(fn, ...deps) {
74
74
  return {
75
75
  ngModule: DatabaseModule,
76
76
  providers: [{
@@ -79,11 +79,13 @@ function provideDatabase(fn) {
79
79
  multi: true,
80
80
  deps: [
81
81
  NgZone,
82
+ Injector,
82
83
  ɵAngularFireSchedulers,
83
84
  FirebaseApps,
84
85
  // Database+Auth work better if Auth is loaded first
85
86
  [new Optional(), AuthInstances],
86
87
  [new Optional(), AppCheckInstances],
88
+ ...deps,
87
89
  ]
88
90
  }]
89
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-database.js","sources":["../../../src/database/database.ts","../../../src/database/database.module.ts","../../../src/database/rxfire.ts","../../../src/database/firebase.ts","../../../src/database/angular-fire-database.ts"],"sourcesContent":["import { Database as FirebaseDatabase } from 'firebase/database';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Database extends FirebaseDatabase {}\n\nexport class Database {\n constructor(database: FirebaseDatabase) {\n return database;\n }\n}\n\nexport const DATABASE_PROVIDER_NAME = 'database';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface DatabaseInstances extends Array<FirebaseDatabase> {}\n\nexport class DatabaseInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME);\n }\n}\n\nexport const databaseInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from '@angular/core';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Database, DatabaseInstances, DATABASE_PROVIDER_NAME } from './database';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_DATABASE_INSTANCES = new InjectionToken<Database[]>('angularfire2.database-instances');\n\nexport function defaultDatabaseInstanceFactory(provided: FirebaseDatabase[]|undefined, defaultApp: FirebaseApp) {\n const defaultDatabase = ɵgetDefaultInstanceOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME, provided, defaultApp);\n return new Database(defaultDatabase);\n}\n\nexport function databaseInstanceFactory(fn: () => FirebaseDatabase) {\n return (zone: NgZone) => {\n const database = ɵmemoizeInstance<FirebaseDatabase>(fn, zone);\n return new Database(database);\n };\n}\n\nconst DATABASE_INSTANCES_PROVIDER = {\n provide: DatabaseInstances,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATABASE_INSTANCE_PROVIDER = {\n provide: Database,\n useFactory: defaultDatabaseInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n ]\n})\nexport class DatabaseModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n }\n}\n\nexport function provideDatabase(fn: () => FirebaseDatabase): ModuleWithProviders<DatabaseModule> {\n return {\n ngModule: DatabaseModule,\n providers: [{\n provide: PROVIDED_DATABASE_INSTANCES,\n useFactory: databaseInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Database+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n fromRef as _fromRef,\n stateChanges as _stateChanges,\n list as _list,\n listVal as _listVal,\n auditTrail as _auditTrail,\n object as _object,\n objectVal as _objectVal,\n changeToData as _changeToData\n} from 'rxfire/database';\n\nexport {\n ListenEvent,\n ListenerMethods\n} from 'rxfire/database';\n\nexport const fromRef = ɵzoneWrap(_fromRef, true);\nexport const stateChanges = ɵzoneWrap(_stateChanges, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listVal = ɵzoneWrap(_listVal, true);\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const object = ɵzoneWrap(_object, true);\nexport const objectVal = ɵzoneWrap(_objectVal, true);\nexport const changeToData = ɵzoneWrap(_changeToData, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/database';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n child as _child,\n connectDatabaseEmulator as _connectDatabaseEmulator,\n enableLogging as _enableLogging,\n endAt as _endAt,\n endBefore as _endBefore,\n equalTo as _equalTo,\n get as _get,\n getDatabase as _getDatabase,\n goOffline as _goOffline,\n goOnline as _goOnline,\n increment as _increment,\n limitToFirst as _limitToFirst,\n limitToLast as _limitToLast,\n off as _off,\n onChildAdded as _onChildAdded,\n onChildChanged as _onChildChanged,\n onChildMoved as _onChildMoved,\n onChildRemoved as _onChildRemoved,\n onDisconnect as _onDisconnect,\n onValue as _onValue,\n orderByChild as _orderByChild,\n orderByKey as _orderByKey,\n orderByPriority as _orderByPriority,\n orderByValue as _orderByValue,\n push as _push,\n query as _query,\n ref as _ref,\n refFromURL as _refFromURL,\n remove as _remove,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n set as _set,\n setPriority as _setPriority,\n setWithPriority as _setWithPriority,\n startAfter as _startAfter,\n startAt as _startAt,\n update as _update\n} from 'firebase/database';\n\nexport const child = ɵzoneWrap(_child, true);\nexport const connectDatabaseEmulator = ɵzoneWrap(_connectDatabaseEmulator, true);\nexport const enableLogging = ɵzoneWrap(_enableLogging, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const equalTo = ɵzoneWrap(_equalTo, true);\nexport const get = ɵzoneWrap(_get, true);\nexport const getDatabase = ɵzoneWrap(_getDatabase, true);\nexport const goOffline = ɵzoneWrap(_goOffline, true);\nexport const goOnline = ɵzoneWrap(_goOnline, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const limitToFirst = ɵzoneWrap(_limitToFirst, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const off = ɵzoneWrap(_off, true);\nexport const onChildAdded = ɵzoneWrap(_onChildAdded, true);\nexport const onChildChanged = ɵzoneWrap(_onChildChanged, true);\nexport const onChildMoved = ɵzoneWrap(_onChildMoved, true);\nexport const onChildRemoved = ɵzoneWrap(_onChildRemoved, true);\nexport const onDisconnect = ɵzoneWrap(_onDisconnect, true);\nexport const onValue = ɵzoneWrap(_onValue, true);\nexport const orderByChild = ɵzoneWrap(_orderByChild, true);\nexport const orderByKey = ɵzoneWrap(_orderByKey, true);\nexport const orderByPriority = ɵzoneWrap(_orderByPriority, true);\nexport const orderByValue = ɵzoneWrap(_orderByValue, true);\nexport const push = ɵzoneWrap(_push, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const refFromURL = ɵzoneWrap(_refFromURL, true);\nexport const remove = ɵzoneWrap(_remove, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const set = ɵzoneWrap(_set, true);\nexport const setPriority = ɵzoneWrap(_setPriority, true);\nexport const setWithPriority = ɵzoneWrap(_setWithPriority, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const update = ɵzoneWrap(_update, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_fromRef","_stateChanges","_list","_listVal","_auditTrail","_object","_objectVal","_changeToData","_child","_connectDatabaseEmulator","_enableLogging","_endAt","_endBefore","_equalTo","_get","_getDatabase","_goOffline","_goOnline","_increment","_limitToFirst","_limitToLast","_off","_onChildAdded","_onChildChanged","_onChildMoved","_onChildRemoved","_onDisconnect","_onValue","_orderByChild","_orderByKey","_orderByPriority","_orderByValue","_push","_query","_ref","_refFromURL","_remove","_runTransaction","_serverTimestamp","_set","_setPriority","_setWithPriority","_startAfter","_startAt","_update"],"mappings":";;;;;;;;;;;;;;MASa,QAAQ;IACnB,YAAY,QAA0B;QACpC,OAAO,QAAQ,CAAC;KACjB;CACF;AAEM,MAAM,sBAAsB,GAAG,UAAU,CAAC;MAKpC,iBAAiB;IAC5B;QACE,OAAO,kBAAkB,CAAmB,sBAAsB,CAAC,CAAC;KACrE;CACF;MAEY,iBAAiB,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CACjD,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAmB,sBAAsB,CAAC,CAAC,CAAC,EACnF,QAAQ,EAAE;;ACnBL,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAAa,iCAAiC,CAAC,CAAC;SAE7F,8BAA8B,CAAC,QAAsC,EAAE,UAAuB;IAC5G,MAAM,eAAe,GAAG,qBAAqB,CAAmB,sBAAsB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9G,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;SAEe,uBAAuB,CAAC,EAA0B;IAChE,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,gBAAgB,CAAmB,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAG;IAClC,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE;QACJ,CAAC,IAAI,QAAQ,EAAE,EAAE,2BAA2B,CAAE;KAC/C;CACF,CAAC;AAEF,MAAM,kCAAkC,GAAG;IACzC,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,8BAA8B;IAC1C,IAAI,EAAE;QACJ,CAAC,IAAI,QAAQ,EAAE,EAAE,2BAA2B,CAAE;QAC9C,WAAW;KACZ;CACF,CAAC;MAQW,cAAc;IACzB;QACE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACtD;;2GAHU,cAAc;4GAAd,cAAc;4GAAd,cAAc,aALd;QACT,kCAAkC;QAClC,2BAA2B;KAC5B;2FAEU,cAAc;kBAN1B,QAAQ;mBAAC;oBACR,SAAS,EAAE;wBACT,kCAAkC;wBAClC,2BAA2B;qBAC5B;iBACF;;SAOe,eAAe,CAAC,EAA0B;IACxD,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,2BAA2B;gBACpC,UAAU,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBACvC,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE;oBACJ,MAAM;oBACN,sBAAsB;oBACtB,YAAY;;oBAEZ,CAAC,IAAI,QAAQ,EAAE,EAAE,aAAa,CAAE;oBAChC,CAAC,IAAI,QAAQ,EAAE,EAAE,iBAAiB,CAAE;iBACrC;aACF,CAAC;KACH,CAAC;AACJ;;ACpEA;MAkBa,OAAO,GAAG,SAAS,CAACA,SAAQ,EAAE,IAAI,EAAE;MACpC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,IAAI,GAAG,SAAS,CAACC,MAAK,EAAE,IAAI,EAAE;MAC9B,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI,EAAE;MAClC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI;;ACzBzD;MA2Ca,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,uBAAuB,GAAG,SAAS,CAACC,yBAAwB,EAAE,IAAI,EAAE;MACpE,aAAa,GAAG,SAAS,CAACC,eAAc,EAAE,IAAI,EAAE;MAChD,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,QAAQ,GAAG,SAAS,CAACC,UAAS,EAAE,IAAI,EAAE;MACtC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,IAAI,GAAG,SAAS,CAACC,MAAK,EAAE,IAAI,EAAE;MAC9B,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI,EAAE;MAClC,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI;;AC/E7C;;;;;;"}
1
+ {"version":3,"file":"angular-fire-database.js","sources":["../../../src/database/database.ts","../../../src/database/database.module.ts","../../../src/database/rxfire.ts","../../../src/database/firebase.ts","../../../src/database/angular-fire-database.ts"],"sourcesContent":["import { Database as FirebaseDatabase } from 'firebase/database';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Database extends FirebaseDatabase {}\n\nexport class Database {\n constructor(database: FirebaseDatabase) {\n return database;\n }\n}\n\nexport const DATABASE_PROVIDER_NAME = 'database';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface DatabaseInstances extends Array<FirebaseDatabase> {}\n\nexport class DatabaseInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME);\n }\n}\n\nexport const databaseInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, Injector } from '@angular/core';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Database, DatabaseInstances, DATABASE_PROVIDER_NAME } from './database';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_DATABASE_INSTANCES = new InjectionToken<Database[]>('angularfire2.database-instances');\n\nexport function defaultDatabaseInstanceFactory(provided: FirebaseDatabase[]|undefined, defaultApp: FirebaseApp) {\n const defaultDatabase = ɵgetDefaultInstanceOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME, provided, defaultApp);\n return defaultDatabase && new Database(defaultDatabase);\n}\n\nexport function databaseInstanceFactory(fn: (injector: Injector) => FirebaseDatabase) {\n return (zone: NgZone, injector: Injector) => {\n const database = zone.runOutsideAngular(() => fn(injector));\n return new Database(database);\n };\n}\n\nconst DATABASE_INSTANCES_PROVIDER = {\n provide: DatabaseInstances,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATABASE_INSTANCE_PROVIDER = {\n provide: Database,\n useFactory: defaultDatabaseInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n ]\n})\nexport class DatabaseModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n }\n}\n\nexport function provideDatabase(fn: () => FirebaseDatabase, ...deps: any[]): ModuleWithProviders<DatabaseModule> {\n return {\n ngModule: DatabaseModule,\n providers: [{\n provide: PROVIDED_DATABASE_INSTANCES,\n useFactory: databaseInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Database+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ...deps,\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n fromRef as _fromRef,\n stateChanges as _stateChanges,\n list as _list,\n listVal as _listVal,\n auditTrail as _auditTrail,\n object as _object,\n objectVal as _objectVal,\n changeToData as _changeToData\n} from 'rxfire/database';\n\nexport {\n ListenEvent,\n ListenerMethods\n} from 'rxfire/database';\n\nexport const fromRef = ɵzoneWrap(_fromRef, true);\nexport const stateChanges = ɵzoneWrap(_stateChanges, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listVal = ɵzoneWrap(_listVal, true);\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const object = ɵzoneWrap(_object, true);\nexport const objectVal = ɵzoneWrap(_objectVal, true);\nexport const changeToData = ɵzoneWrap(_changeToData, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/database';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n child as _child,\n connectDatabaseEmulator as _connectDatabaseEmulator,\n enableLogging as _enableLogging,\n endAt as _endAt,\n endBefore as _endBefore,\n equalTo as _equalTo,\n get as _get,\n getDatabase as _getDatabase,\n goOffline as _goOffline,\n goOnline as _goOnline,\n increment as _increment,\n limitToFirst as _limitToFirst,\n limitToLast as _limitToLast,\n off as _off,\n onChildAdded as _onChildAdded,\n onChildChanged as _onChildChanged,\n onChildMoved as _onChildMoved,\n onChildRemoved as _onChildRemoved,\n onDisconnect as _onDisconnect,\n onValue as _onValue,\n orderByChild as _orderByChild,\n orderByKey as _orderByKey,\n orderByPriority as _orderByPriority,\n orderByValue as _orderByValue,\n push as _push,\n query as _query,\n ref as _ref,\n refFromURL as _refFromURL,\n remove as _remove,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n set as _set,\n setPriority as _setPriority,\n setWithPriority as _setWithPriority,\n startAfter as _startAfter,\n startAt as _startAt,\n update as _update\n} from 'firebase/database';\n\nexport const child = ɵzoneWrap(_child, true);\nexport const connectDatabaseEmulator = ɵzoneWrap(_connectDatabaseEmulator, true);\nexport const enableLogging = ɵzoneWrap(_enableLogging, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const equalTo = ɵzoneWrap(_equalTo, true);\nexport const get = ɵzoneWrap(_get, true);\nexport const getDatabase = ɵzoneWrap(_getDatabase, true);\nexport const goOffline = ɵzoneWrap(_goOffline, true);\nexport const goOnline = ɵzoneWrap(_goOnline, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const limitToFirst = ɵzoneWrap(_limitToFirst, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const off = ɵzoneWrap(_off, true);\nexport const onChildAdded = ɵzoneWrap(_onChildAdded, true);\nexport const onChildChanged = ɵzoneWrap(_onChildChanged, true);\nexport const onChildMoved = ɵzoneWrap(_onChildMoved, true);\nexport const onChildRemoved = ɵzoneWrap(_onChildRemoved, true);\nexport const onDisconnect = ɵzoneWrap(_onDisconnect, true);\nexport const onValue = ɵzoneWrap(_onValue, true);\nexport const orderByChild = ɵzoneWrap(_orderByChild, true);\nexport const orderByKey = ɵzoneWrap(_orderByKey, true);\nexport const orderByPriority = ɵzoneWrap(_orderByPriority, true);\nexport const orderByValue = ɵzoneWrap(_orderByValue, true);\nexport const push = ɵzoneWrap(_push, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const refFromURL = ɵzoneWrap(_refFromURL, true);\nexport const remove = ɵzoneWrap(_remove, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const set = ɵzoneWrap(_set, true);\nexport const setPriority = ɵzoneWrap(_setPriority, true);\nexport const setWithPriority = ɵzoneWrap(_setWithPriority, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const update = ɵzoneWrap(_update, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_fromRef","_stateChanges","_list","_listVal","_auditTrail","_object","_objectVal","_changeToData","_child","_connectDatabaseEmulator","_enableLogging","_endAt","_endBefore","_equalTo","_get","_getDatabase","_goOffline","_goOnline","_increment","_limitToFirst","_limitToLast","_off","_onChildAdded","_onChildChanged","_onChildMoved","_onChildRemoved","_onDisconnect","_onValue","_orderByChild","_orderByKey","_orderByPriority","_orderByValue","_push","_query","_ref","_refFromURL","_remove","_runTransaction","_serverTimestamp","_set","_setPriority","_setWithPriority","_startAfter","_startAt","_update"],"mappings":";;;;;;;;;;;;;;MASa,QAAQ;IACnB,YAAY,QAA0B;QACpC,OAAO,QAAQ,CAAC;KACjB;CACF;AAEM,MAAM,sBAAsB,GAAG,UAAU,CAAC;MAKpC,iBAAiB;IAC5B;QACE,OAAO,kBAAkB,CAAmB,sBAAsB,CAAC,CAAC;KACrE;CACF;MAEY,iBAAiB,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CACjD,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAmB,sBAAsB,CAAC,CAAC,CAAC,EACnF,QAAQ,EAAE;;ACnBL,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAAa,iCAAiC,CAAC,CAAC;SAE7F,8BAA8B,CAAC,QAAsC,EAAE,UAAuB;IAC5G,MAAM,eAAe,GAAG,qBAAqB,CAAmB,sBAAsB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9G,OAAO,eAAe,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC1D,CAAC;SAEe,uBAAuB,CAAC,EAA4C;IAClF,OAAO,CAAC,IAAY,EAAE,QAAkB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAG;IAClC,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE;QACJ,CAAC,IAAI,QAAQ,EAAE,EAAE,2BAA2B,CAAE;KAC/C;CACF,CAAC;AAEF,MAAM,kCAAkC,GAAG;IACzC,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,8BAA8B;IAC1C,IAAI,EAAE;QACJ,CAAC,IAAI,QAAQ,EAAE,EAAE,2BAA2B,CAAE;QAC9C,WAAW;KACZ;CACF,CAAC;MAQW,cAAc;IACzB;QACE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACtD;;2GAHU,cAAc;4GAAd,cAAc;4GAAd,cAAc,aALd;QACT,kCAAkC;QAClC,2BAA2B;KAC5B;2FAEU,cAAc;kBAN1B,QAAQ;mBAAC;oBACR,SAAS,EAAE;wBACT,kCAAkC;wBAClC,2BAA2B;qBAC5B;iBACF;;SAOe,eAAe,CAAC,EAA0B,EAAE,GAAG,IAAW;IACxE,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,2BAA2B;gBACpC,UAAU,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBACvC,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE;oBACJ,MAAM;oBACN,QAAQ;oBACR,sBAAsB;oBACtB,YAAY;;oBAEZ,CAAC,IAAI,QAAQ,EAAE,EAAE,aAAa,CAAE;oBAChC,CAAC,IAAI,QAAQ,EAAE,EAAE,iBAAiB,CAAE;oBACpC,GAAG,IAAI;iBACR;aACF,CAAC;KACH,CAAC;AACJ;;ACtEA;MAkBa,OAAO,GAAG,SAAS,CAACA,SAAQ,EAAE,IAAI,EAAE;MACpC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,IAAI,GAAG,SAAS,CAACC,MAAK,EAAE,IAAI,EAAE;MAC9B,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI,EAAE;MAClC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI;;ACzBzD;MA2Ca,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,uBAAuB,GAAG,SAAS,CAACC,yBAAwB,EAAE,IAAI,EAAE;MACpE,aAAa,GAAG,SAAS,CAACC,eAAc,EAAE,IAAI,EAAE;MAChD,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,QAAQ,GAAG,SAAS,CAACC,UAAS,EAAE,IAAI,EAAE;MACtC,SAAS,GAAG,SAAS,CAACC,WAAU,EAAE,IAAI,EAAE;MACxC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,YAAY,GAAG,SAAS,CAACC,cAAa,EAAE,IAAI,EAAE;MAC9C,IAAI,GAAG,SAAS,CAACC,MAAK,EAAE,IAAI,EAAE;MAC9B,KAAK,GAAG,SAAS,CAACC,OAAM,EAAE,IAAI,EAAE;MAChC,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI,EAAE;MAClC,cAAc,GAAG,SAAS,CAACC,gBAAe,EAAE,IAAI,EAAE;MAClD,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,GAAG,GAAG,SAAS,CAACC,KAAI,EAAE,IAAI,EAAE;MAC5B,WAAW,GAAG,SAAS,CAACC,aAAY,EAAE,IAAI,EAAE;MAC5C,eAAe,GAAG,SAAS,CAACC,iBAAgB,EAAE,IAAI,EAAE;MACpD,UAAU,GAAG,SAAS,CAACC,YAAW,EAAE,IAAI,EAAE;MAC1C,OAAO,GAAG,SAAS,CAACC,SAAQ,EAAE,IAAI,EAAE;MACpC,MAAM,GAAG,SAAS,CAACC,QAAO,EAAE,IAAI;;AC/E7C;;;;;;"}
@@ -1,11 +1,12 @@
1
- import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵmemoizeInstance, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
1
+ import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
2
2
  import { timer, from } from 'rxjs';
3
3
  import { concatMap, distinct } from 'rxjs/operators';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Optional, NgModule, NgZone } from '@angular/core';
5
+ import { InjectionToken, Optional, NgModule, NgZone, Injector } from '@angular/core';
6
6
  import { AuthInstances } from '@angular/fire/auth';
7
7
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
8
8
  import { registerVersion } from 'firebase/app';
9
+ import { AppCheckInstances } from '@angular/fire/app-check';
9
10
  import { collection as collection$1, collectionData as collectionData$1, doc as doc$1, docData as docData$1, snapToData as snapToData$1, fromRef as fromRef$1 } from 'rxfire/firestore/lite';
10
11
  import { addDoc as addDoc$1, arrayRemove as arrayRemove$1, arrayUnion as arrayUnion$1, collection as collection$2, collectionGroup as collectionGroup$1, connectFirestoreEmulator as connectFirestoreEmulator$1, deleteDoc as deleteDoc$1, deleteField as deleteField$1, doc as doc$2, documentId as documentId$1, endAt as endAt$1, endBefore as endBefore$1, getDoc as getDoc$1, getDocs as getDocs$1, getFirestore as getFirestore$1, increment as increment$1, initializeFirestore as initializeFirestore$1, limit as limit$1, limitToLast as limitToLast$1, orderBy as orderBy$1, query as query$1, queryEqual as queryEqual$1, refEqual as refEqual$1, runTransaction as runTransaction$1, serverTimestamp as serverTimestamp$1, setDoc as setDoc$1, setLogLevel as setLogLevel$1, snapshotEqual as snapshotEqual$1, startAfter as startAfter$1, startAt as startAt$1, terminate as terminate$1, updateDoc as updateDoc$1, where as where$1, writeBatch as writeBatch$1 } from 'firebase/firestore/lite';
11
12
  export * from 'firebase/firestore/lite';
@@ -26,11 +27,11 @@ const firestoreInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInsta
26
27
  const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken('angularfire2.firestore-lite-instances');
27
28
  function defaultFirestoreInstanceFactory(provided, defaultApp) {
28
29
  const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME, provided, defaultApp);
29
- return new Firestore(defaultFirestore);
30
+ return defaultFirestore && new Firestore(defaultFirestore);
30
31
  }
31
32
  function firestoreInstanceFactory(fn) {
32
- return (zone) => {
33
- const firestore = ɵmemoizeInstance(fn, zone);
33
+ return (zone, injector) => {
34
+ const firestore = zone.runOutsideAngular(() => fn(injector));
34
35
  return new Firestore(firestore);
35
36
  };
36
37
  }
@@ -68,7 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
68
69
  ]
69
70
  }]
70
71
  }], ctorParameters: function () { return []; } });
71
- function provideFirestore(fn) {
72
+ function provideFirestore(fn, ...deps) {
72
73
  return {
73
74
  ngModule: FirestoreModule,
74
75
  providers: [{
@@ -77,10 +78,13 @@ function provideFirestore(fn) {
77
78
  multi: true,
78
79
  deps: [
79
80
  NgZone,
81
+ Injector,
80
82
  ɵAngularFireSchedulers,
81
83
  FirebaseApps,
82
84
  // Firestore+Auth work better if Auth is loaded first
83
85
  [new Optional(), AuthInstances],
86
+ [new Optional(), AppCheckInstances],
87
+ ...deps,
84
88
  ]
85
89
  }]
86
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-firestore-lite.js","sources":["../../../src/firestore/lite/lite.ts","../../../src/firestore/lite/lite.module.ts","../../../src/firestore/lite/rxfire.ts","../../../src/firestore/lite/firebase.ts","../../../src/firestore/lite/angular-fire-firestore-lite.ts"],"sourcesContent":["import { Firestore as FirebaseFirestore } from 'firebase/firestore/lite';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Firestore extends FirebaseFirestore {}\n\nexport class Firestore {\n constructor(firestore: FirebaseFirestore) {\n return firestore;\n }\n}\n\nexport const FIRESTORE_PROVIDER_NAME = 'firestore/lite';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirestoreInstances extends Array<FirebaseFirestore> {}\n\nexport class FirestoreInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME);\n }\n}\n\nexport const firestoreInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from '@angular/core';\nimport { Firestore as FirebaseFirestore } from 'firebase/firestore/lite';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './lite';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\n\nexport const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken<Firestore[]>('angularfire2.firestore-lite-instances');\n\nexport function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) {\n const defaultFirestore = ɵgetDefaultInstanceOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME, provided, defaultApp);\n return new Firestore(defaultFirestore);\n}\n\nexport function firestoreInstanceFactory(fn: () => FirebaseFirestore) {\n return (zone: NgZone) => {\n const firestore = ɵmemoizeInstance<FirebaseFirestore>(fn, zone);\n return new Firestore(firestore);\n };\n}\n\nconst FIRESTORE_INSTANCES_PROVIDER = {\n provide: FirestoreInstances,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_FIRESTORE_INSTANCE_PROVIDER = {\n provide: Firestore,\n useFactory: defaultFirestoreInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_FIRESTORE_INSTANCE_PROVIDER,\n FIRESTORE_INSTANCES_PROVIDER,\n ]\n})\nexport class FirestoreModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'lite');\n }\n}\n\nexport function provideFirestore(fn: () => FirebaseFirestore): ModuleWithProviders<FirestoreModule> {\n return {\n ngModule: FirestoreModule,\n providers: [{\n provide: PROVIDED_FIRESTORE_INSTANCES,\n useFactory: firestoreInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Firestore+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n collection as _collection,\n collectionData as _collectionData,\n doc as _doc,\n docData as _docData,\n snapToData as _snapToData,\n fromRef as _fromRef\n} from 'rxfire/firestore/lite';\n\nexport const collectionSnapshots = ɵzoneWrap(_collection, true);\nexport const collectionData = ɵzoneWrap(_collectionData, true);\nexport const docSnapshots = ɵzoneWrap(_doc, true);\nexport const docData = ɵzoneWrap(_docData, true);\nexport const snapToData = ɵzoneWrap(_snapToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/firestore/lite';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n addDoc as _addDoc,\n arrayRemove as _arrayRemove,\n arrayUnion as _arrayUnion,\n collection as _collection,\n collectionGroup as _collectionGroup,\n connectFirestoreEmulator as _connectFirestoreEmulator,\n deleteDoc as _deleteDoc,\n deleteField as _deleteField,\n doc as _doc,\n documentId as _documentId,\n endAt as _endAt,\n endBefore as _endBefore,\n getDoc as _getDoc,\n getDocs as _getDocs,\n getFirestore as _getFirestore,\n increment as _increment,\n initializeFirestore as _initializeFirestore,\n limit as _limit,\n limitToLast as _limitToLast,\n orderBy as _orderBy,\n query as _query,\n queryEqual as _queryEqual,\n refEqual as _refEqual,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n setDoc as _setDoc,\n setLogLevel as _setLogLevel,\n snapshotEqual as _snapshotEqual,\n startAfter as _startAfter,\n startAt as _startAt,\n terminate as _terminate,\n updateDoc as _updateDoc,\n where as _where,\n writeBatch as _writeBatch\n} from 'firebase/firestore/lite';\n\nexport const addDoc = ɵzoneWrap(_addDoc, true);\nexport const arrayRemove = ɵzoneWrap(_arrayRemove, true);\nexport const arrayUnion = ɵzoneWrap(_arrayUnion, true);\nexport const collection = ɵzoneWrap(_collection, true);\nexport const collectionGroup = ɵzoneWrap(_collectionGroup, true);\nexport const connectFirestoreEmulator = ɵzoneWrap(_connectFirestoreEmulator, true);\nexport const deleteDoc = ɵzoneWrap(_deleteDoc, true);\nexport const deleteField = ɵzoneWrap(_deleteField, true);\nexport const doc = ɵzoneWrap(_doc, true);\nexport const documentId = ɵzoneWrap(_documentId, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const getDoc = ɵzoneWrap(_getDoc, true);\nexport const getDocs = ɵzoneWrap(_getDocs, true);\nexport const getFirestore = ɵzoneWrap(_getFirestore, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const initializeFirestore = ɵzoneWrap(_initializeFirestore, true);\nexport const limit = ɵzoneWrap(_limit, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const orderBy = ɵzoneWrap(_orderBy, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const queryEqual = ɵzoneWrap(_queryEqual, true);\nexport const refEqual = ɵzoneWrap(_refEqual, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const setDoc = ɵzoneWrap(_setDoc, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const snapshotEqual = ɵzoneWrap(_snapshotEqual, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const updateDoc = ɵzoneWrap(_updateDoc, true);\nexport const where = ɵzoneWrap(_where, true);\nexport const writeBatch = ɵzoneWrap(_writeBatch, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_collection","_collectionData","_doc","_docData","_snapToData","_fromRef","_addDoc","_arrayRemove","_arrayUnion","_collectionGroup","_connectFirestoreEmulator","_deleteDoc","_deleteField","_documentId","_endAt","_endBefore","_getDoc","_getDocs","_getFirestore","_increment","_initializeFirestore","_limit","_limitToLast","_orderBy","_query","_queryEqual","_refEqual","_runTransaction","_serverTimestamp","_setDoc","_setLogLevel","_snapshotEqual","_startAfter","_startAt","_terminate","_updateDoc","_where","_writeBatch"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-firestore-lite.js","sources":["../../../src/firestore/lite/lite.ts","../../../src/firestore/lite/lite.module.ts","../../../src/firestore/lite/rxfire.ts","../../../src/firestore/lite/firebase.ts","../../../src/firestore/lite/angular-fire-firestore-lite.ts"],"sourcesContent":["import { Firestore as FirebaseFirestore } from 'firebase/firestore/lite';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Firestore extends FirebaseFirestore {}\n\nexport class Firestore {\n constructor(firestore: FirebaseFirestore) {\n return firestore;\n }\n}\n\nexport const FIRESTORE_PROVIDER_NAME = 'firestore/lite';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirestoreInstances extends Array<FirebaseFirestore> {}\n\nexport class FirestoreInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME);\n }\n}\n\nexport const firestoreInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, Injector } from '@angular/core';\nimport { Firestore as FirebaseFirestore } from 'firebase/firestore/lite';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './lite';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken<Firestore[]>('angularfire2.firestore-lite-instances');\n\nexport function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) {\n const defaultFirestore = ɵgetDefaultInstanceOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME, provided, defaultApp);\n return defaultFirestore && new Firestore(defaultFirestore);\n}\n\nexport function firestoreInstanceFactory(fn: (injector: Injector) => FirebaseFirestore) {\n return (zone: NgZone, injector: Injector) => {\n const firestore = zone.runOutsideAngular(() => fn(injector));\n return new Firestore(firestore);\n };\n}\n\nconst FIRESTORE_INSTANCES_PROVIDER = {\n provide: FirestoreInstances,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_FIRESTORE_INSTANCE_PROVIDER = {\n provide: Firestore,\n useFactory: defaultFirestoreInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_FIRESTORE_INSTANCE_PROVIDER,\n FIRESTORE_INSTANCES_PROVIDER,\n ]\n})\nexport class FirestoreModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'lite');\n }\n}\n\nexport function provideFirestore(fn: (injector: Injector) => FirebaseFirestore, ...deps: any[]): ModuleWithProviders<FirestoreModule> {\n return {\n ngModule: FirestoreModule,\n providers: [{\n provide: PROVIDED_FIRESTORE_INSTANCES,\n useFactory: firestoreInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Firestore+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ...deps,\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n collection as _collection,\n collectionData as _collectionData,\n doc as _doc,\n docData as _docData,\n snapToData as _snapToData,\n fromRef as _fromRef\n} from 'rxfire/firestore/lite';\n\nexport const collectionSnapshots = ɵzoneWrap(_collection, true);\nexport const collectionData = ɵzoneWrap(_collectionData, true);\nexport const docSnapshots = ɵzoneWrap(_doc, true);\nexport const docData = ɵzoneWrap(_docData, true);\nexport const snapToData = ɵzoneWrap(_snapToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/firestore/lite';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n addDoc as _addDoc,\n arrayRemove as _arrayRemove,\n arrayUnion as _arrayUnion,\n collection as _collection,\n collectionGroup as _collectionGroup,\n connectFirestoreEmulator as _connectFirestoreEmulator,\n deleteDoc as _deleteDoc,\n deleteField as _deleteField,\n doc as _doc,\n documentId as _documentId,\n endAt as _endAt,\n endBefore as _endBefore,\n getDoc as _getDoc,\n getDocs as _getDocs,\n getFirestore as _getFirestore,\n increment as _increment,\n initializeFirestore as _initializeFirestore,\n limit as _limit,\n limitToLast as _limitToLast,\n orderBy as _orderBy,\n query as _query,\n queryEqual as _queryEqual,\n refEqual as _refEqual,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n setDoc as _setDoc,\n setLogLevel as _setLogLevel,\n snapshotEqual as _snapshotEqual,\n startAfter as _startAfter,\n startAt as _startAt,\n terminate as _terminate,\n updateDoc as _updateDoc,\n where as _where,\n writeBatch as _writeBatch\n} from 'firebase/firestore/lite';\n\nexport const addDoc = ɵzoneWrap(_addDoc, true);\nexport const arrayRemove = ɵzoneWrap(_arrayRemove, true);\nexport const arrayUnion = ɵzoneWrap(_arrayUnion, true);\nexport const collection = ɵzoneWrap(_collection, true);\nexport const collectionGroup = ɵzoneWrap(_collectionGroup, true);\nexport const connectFirestoreEmulator = ɵzoneWrap(_connectFirestoreEmulator, true);\nexport const deleteDoc = ɵzoneWrap(_deleteDoc, true);\nexport const deleteField = ɵzoneWrap(_deleteField, true);\nexport const doc = ɵzoneWrap(_doc, true);\nexport const documentId = ɵzoneWrap(_documentId, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const getDoc = ɵzoneWrap(_getDoc, true);\nexport const getDocs = ɵzoneWrap(_getDocs, true);\nexport const getFirestore = ɵzoneWrap(_getFirestore, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const initializeFirestore = ɵzoneWrap(_initializeFirestore, true);\nexport const limit = ɵzoneWrap(_limit, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const orderBy = ɵzoneWrap(_orderBy, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const queryEqual = ɵzoneWrap(_queryEqual, true);\nexport const refEqual = ɵzoneWrap(_refEqual, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const setDoc = ɵzoneWrap(_setDoc, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const snapshotEqual = ɵzoneWrap(_snapshotEqual, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const updateDoc = ɵzoneWrap(_updateDoc, true);\nexport const where = ɵzoneWrap(_where, true);\nexport const writeBatch = ɵzoneWrap(_writeBatch, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_collection","_collectionData","_doc","_docData","_snapToData","_fromRef","_addDoc","_arrayRemove","_arrayUnion","_collectionGroup","_connectFirestoreEmulator","_deleteDoc","_deleteField","_documentId","_endAt","_endBefore","_getDoc","_getDocs","_getFirestore","_increment","_initializeFirestore","_limit","_limitToLast","_orderBy","_query","_queryEqual","_refEqual","_runTransaction","_serverTimestamp","_setDoc","_setLogLevel","_snapshotEqual","_startAfter","_startAt","_terminate","_updateDoc","_where","_writeBatch"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵmemoizeInstance, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
1
+ import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
2
2
  import { timer, from } from 'rxjs';
3
3
  import { concatMap, distinct } from 'rxjs/operators';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Optional, NgModule, NgZone } from '@angular/core';
5
+ import { InjectionToken, Optional, NgModule, NgZone, Injector } from '@angular/core';
6
6
  import { AuthInstances } from '@angular/fire/auth';
7
7
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
8
8
  import { registerVersion } from 'firebase/app';
@@ -27,13 +27,11 @@ const firestoreInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInsta
27
27
  const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken('angularfire2.firestore-instances');
28
28
  function defaultFirestoreInstanceFactory(provided, defaultApp) {
29
29
  const defaultFirestore = ɵgetDefaultInstanceOf(FIRESTORE_PROVIDER_NAME, provided, defaultApp);
30
- // TODO how do I throw if it's undefined, unless @Optional(), is there an Angular NULL_INJECTOR token
31
- // or something, can I use an @NgModule providers or something?
32
- return new Firestore(defaultFirestore);
30
+ return defaultFirestore && new Firestore(defaultFirestore);
33
31
  }
34
32
  function firestoreInstanceFactory(fn) {
35
- return (zone) => {
36
- const firestore = ɵmemoizeInstance(fn, zone);
33
+ return (zone, injector) => {
34
+ const firestore = zone.runOutsideAngular(() => fn(injector));
37
35
  return new Firestore(firestore);
38
36
  };
39
37
  }
@@ -71,7 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
71
69
  ]
72
70
  }]
73
71
  }], ctorParameters: function () { return []; } });
74
- function provideFirestore(fn) {
72
+ function provideFirestore(fn, ...deps) {
75
73
  return {
76
74
  ngModule: FirestoreModule,
77
75
  providers: [{
@@ -80,11 +78,13 @@ function provideFirestore(fn) {
80
78
  multi: true,
81
79
  deps: [
82
80
  NgZone,
81
+ Injector,
83
82
  ɵAngularFireSchedulers,
84
83
  FirebaseApps,
85
84
  // Firestore+Auth work better if Auth is loaded first
86
85
  [new Optional(), AuthInstances],
87
86
  [new Optional(), AppCheckInstances],
87
+ ...deps,
88
88
  ]
89
89
  }]
90
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-firestore.js","sources":["../../../src/firestore/firestore.ts","../../../src/firestore/firestore.module.ts","../../../src/firestore/rxfire.ts","../../../src/firestore/firebase.ts","../../../src/firestore/angular-fire-firestore.ts"],"sourcesContent":["import { Firestore as FirebaseFirestore } from 'firebase/firestore';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Firestore extends FirebaseFirestore {}\n\nexport class Firestore {\n constructor(firestore: FirebaseFirestore) {\n return firestore;\n }\n}\n\nexport const FIRESTORE_PROVIDER_NAME = 'firestore';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirestoreInstances extends Array<FirebaseFirestore> {}\n\nexport class FirestoreInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME);\n }\n}\n\nexport const firestoreInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders } from '@angular/core';\nimport { Firestore as FirebaseFirestore } from 'firebase/firestore';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './firestore';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken<Firestore[]>('angularfire2.firestore-instances');\n\nexport function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) {\n const defaultFirestore = ɵgetDefaultInstanceOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME, provided, defaultApp);\n // TODO how do I throw if it's undefined, unless @Optional(), is there an Angular NULL_INJECTOR token\n // or something, can I use an @NgModule providers or something?\n return new Firestore(defaultFirestore);\n}\n\nexport function firestoreInstanceFactory(fn: () => FirebaseFirestore) {\n return (zone: NgZone) => {\n const firestore = ɵmemoizeInstance<FirebaseFirestore>(fn, zone);\n return new Firestore(firestore);\n };\n}\n\nconst FIRESTORE_INSTANCES_PROVIDER = {\n provide: FirestoreInstances,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_FIRESTORE_INSTANCE_PROVIDER = {\n provide: Firestore,\n useFactory: defaultFirestoreInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_FIRESTORE_INSTANCE_PROVIDER,\n FIRESTORE_INSTANCES_PROVIDER,\n ]\n})\nexport class FirestoreModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'fst');\n }\n}\n\nexport function provideFirestore(fn: () => FirebaseFirestore): ModuleWithProviders<FirestoreModule> {\n return {\n ngModule: FirestoreModule,\n providers: [{\n provide: PROVIDED_FIRESTORE_INSTANCES,\n useFactory: firestoreInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Firestore+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n collectionChanges as _collectionChanges,\n collection as _collection,\n sortedChanges as _sortedChanges,\n auditTrail as _auditTrail,\n collectionData as _collectionData,\n doc as _doc,\n docData as _docData,\n snapToData as _snapToData,\n fromRef as _fromRef\n} from 'rxfire/firestore';\n\nexport const collectionChanges = ɵzoneWrap(_collectionChanges, true);\nexport const collectionSnapshots = ɵzoneWrap(_collection, true);\nexport const sortedChanges = ɵzoneWrap(_sortedChanges, true);\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const collectionData = ɵzoneWrap(_collectionData, true);\nexport const docSnapshots = ɵzoneWrap(_doc, true);\nexport const docData = ɵzoneWrap(_docData, true);\nexport const snapToData = ɵzoneWrap(_snapToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/firestore';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n addDoc as _addDoc,\n arrayRemove as _arrayRemove,\n arrayUnion as _arrayUnion,\n clearIndexedDbPersistence as _clearIndexedDbPersistence,\n collection as _collection,\n collectionGroup as _collectionGroup,\n connectFirestoreEmulator as _connectFirestoreEmulator,\n deleteDoc as _deleteDoc,\n deleteField as _deleteField,\n disableNetwork as _disableNetwork,\n doc as _doc,\n documentId as _documentId,\n enableIndexedDbPersistence as _enableIndexedDbPersistence,\n enableMultiTabIndexedDbPersistence as _enableMultiTabIndexedDbPersistence,\n enableNetwork as _enableNetwork,\n endAt as _endAt,\n endBefore as _endBefore,\n getDoc as _getDoc,\n getDocFromCache as _getDocFromCache,\n getDocFromServer as _getDocFromServer,\n getDocs as _getDocs,\n getDocsFromCache as _getDocsFromCache,\n getDocsFromServer as _getDocsFromServer,\n getFirestore as _getFirestore,\n increment as _increment,\n initializeFirestore as _initializeFirestore,\n limit as _limit,\n limitToLast as _limitToLast,\n loadBundle as _loadBundle,\n namedQuery as _namedQuery,\n onSnapshot as _onSnapshot,\n onSnapshotsInSync as _onSnapshotsInSync,\n orderBy as _orderBy,\n query as _query,\n queryEqual as _queryEqual,\n refEqual as _refEqual,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n setDoc as _setDoc,\n setLogLevel as _setLogLevel,\n snapshotEqual as _snapshotEqual,\n startAfter as _startAfter,\n startAt as _startAt,\n terminate as _terminate,\n updateDoc as _updateDoc,\n waitForPendingWrites as _waitForPendingWrites,\n where as _where,\n writeBatch as _writeBatch\n} from 'firebase/firestore';\n\nexport const addDoc = ɵzoneWrap(_addDoc, true);\nexport const arrayRemove = ɵzoneWrap(_arrayRemove, true);\nexport const arrayUnion = ɵzoneWrap(_arrayUnion, true);\nexport const clearIndexedDbPersistence = ɵzoneWrap(_clearIndexedDbPersistence, true);\nexport const collection = ɵzoneWrap(_collection, true);\nexport const collectionGroup = ɵzoneWrap(_collectionGroup, true);\nexport const connectFirestoreEmulator = ɵzoneWrap(_connectFirestoreEmulator, true);\nexport const deleteDoc = ɵzoneWrap(_deleteDoc, true);\nexport const deleteField = ɵzoneWrap(_deleteField, true);\nexport const disableNetwork = ɵzoneWrap(_disableNetwork, true);\nexport const doc = ɵzoneWrap(_doc, true);\nexport const documentId = ɵzoneWrap(_documentId, true);\nexport const enableIndexedDbPersistence = ɵzoneWrap(_enableIndexedDbPersistence, true);\nexport const enableMultiTabIndexedDbPersistence = ɵzoneWrap(_enableMultiTabIndexedDbPersistence, true);\nexport const enableNetwork = ɵzoneWrap(_enableNetwork, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const getDoc = ɵzoneWrap(_getDoc, true);\nexport const getDocFromCache = ɵzoneWrap(_getDocFromCache, true);\nexport const getDocFromServer = ɵzoneWrap(_getDocFromServer, true);\nexport const getDocs = ɵzoneWrap(_getDocs, true);\nexport const getDocsFromCache = ɵzoneWrap(_getDocsFromCache, true);\nexport const getDocsFromServer = ɵzoneWrap(_getDocsFromServer, true);\nexport const getFirestore = ɵzoneWrap(_getFirestore, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const initializeFirestore = ɵzoneWrap(_initializeFirestore, true);\nexport const limit = ɵzoneWrap(_limit, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const loadBundle = ɵzoneWrap(_loadBundle, true);\nexport const namedQuery = ɵzoneWrap(_namedQuery, true);\nexport const onSnapshot = ɵzoneWrap(_onSnapshot, true);\nexport const onSnapshotsInSync = ɵzoneWrap(_onSnapshotsInSync, true);\nexport const orderBy = ɵzoneWrap(_orderBy, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const queryEqual = ɵzoneWrap(_queryEqual, true);\nexport const refEqual = ɵzoneWrap(_refEqual, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const setDoc = ɵzoneWrap(_setDoc, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const snapshotEqual = ɵzoneWrap(_snapshotEqual, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const updateDoc = ɵzoneWrap(_updateDoc, true);\nexport const waitForPendingWrites = ɵzoneWrap(_waitForPendingWrites, true);\nexport const where = ɵzoneWrap(_where, true);\nexport const writeBatch = ɵzoneWrap(_writeBatch, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_collectionChanges","_collection","_sortedChanges","_auditTrail","_collectionData","_doc","_docData","_snapToData","_fromRef","_addDoc","_arrayRemove","_arrayUnion","_clearIndexedDbPersistence","_collectionGroup","_connectFirestoreEmulator","_deleteDoc","_deleteField","_disableNetwork","_documentId","_enableIndexedDbPersistence","_enableMultiTabIndexedDbPersistence","_enableNetwork","_endAt","_endBefore","_getDoc","_getDocFromCache","_getDocFromServer","_getDocs","_getDocsFromCache","_getDocsFromServer","_getFirestore","_increment","_initializeFirestore","_limit","_limitToLast","_loadBundle","_namedQuery","_onSnapshot","_onSnapshotsInSync","_orderBy","_query","_queryEqual","_refEqual","_runTransaction","_serverTimestamp","_setDoc","_setLogLevel","_snapshotEqual","_startAfter","_startAt","_terminate","_updateDoc","_waitForPendingWrites","_where","_writeBatch"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-firestore.js","sources":["../../../src/firestore/firestore.ts","../../../src/firestore/firestore.module.ts","../../../src/firestore/rxfire.ts","../../../src/firestore/firebase.ts","../../../src/firestore/angular-fire-firestore.ts"],"sourcesContent":["import { Firestore as FirebaseFirestore } from 'firebase/firestore';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Firestore extends FirebaseFirestore {}\n\nexport class Firestore {\n constructor(firestore: FirebaseFirestore) {\n return firestore;\n }\n}\n\nexport const FIRESTORE_PROVIDER_NAME = 'firestore';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirestoreInstances extends Array<FirebaseFirestore> {}\n\nexport class FirestoreInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME);\n }\n}\n\nexport const firestoreInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, Injector } from '@angular/core';\nimport { Firestore as FirebaseFirestore } from 'firebase/firestore';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Firestore, FirestoreInstances, FIRESTORE_PROVIDER_NAME } from './firestore';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_FIRESTORE_INSTANCES = new InjectionToken<Firestore[]>('angularfire2.firestore-instances');\n\nexport function defaultFirestoreInstanceFactory(provided: FirebaseFirestore[]|undefined, defaultApp: FirebaseApp) {\n const defaultFirestore = ɵgetDefaultInstanceOf<FirebaseFirestore>(FIRESTORE_PROVIDER_NAME, provided, defaultApp);\n return defaultFirestore && new Firestore(defaultFirestore);\n}\n\nexport function firestoreInstanceFactory(fn: (injector: Injector) => FirebaseFirestore) {\n return (zone: NgZone, injector: Injector) => {\n const firestore = zone.runOutsideAngular(() => fn(injector));\n return new Firestore(firestore);\n };\n}\n\nconst FIRESTORE_INSTANCES_PROVIDER = {\n provide: FirestoreInstances,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_FIRESTORE_INSTANCE_PROVIDER = {\n provide: Firestore,\n useFactory: defaultFirestoreInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_FIRESTORE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_FIRESTORE_INSTANCE_PROVIDER,\n FIRESTORE_INSTANCES_PROVIDER,\n ]\n})\nexport class FirestoreModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'fst');\n }\n}\n\nexport function provideFirestore(fn: (injector: Injector) => FirebaseFirestore, ...deps: any[]): ModuleWithProviders<FirestoreModule> {\n return {\n ngModule: FirestoreModule,\n providers: [{\n provide: PROVIDED_FIRESTORE_INSTANCES,\n useFactory: firestoreInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Firestore+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ...deps,\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n collectionChanges as _collectionChanges,\n collection as _collection,\n sortedChanges as _sortedChanges,\n auditTrail as _auditTrail,\n collectionData as _collectionData,\n doc as _doc,\n docData as _docData,\n snapToData as _snapToData,\n fromRef as _fromRef\n} from 'rxfire/firestore';\n\nexport const collectionChanges = ɵzoneWrap(_collectionChanges, true);\nexport const collectionSnapshots = ɵzoneWrap(_collection, true);\nexport const sortedChanges = ɵzoneWrap(_sortedChanges, true);\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const collectionData = ɵzoneWrap(_collectionData, true);\nexport const docSnapshots = ɵzoneWrap(_doc, true);\nexport const docData = ɵzoneWrap(_docData, true);\nexport const snapToData = ɵzoneWrap(_snapToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/firestore';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n addDoc as _addDoc,\n arrayRemove as _arrayRemove,\n arrayUnion as _arrayUnion,\n clearIndexedDbPersistence as _clearIndexedDbPersistence,\n collection as _collection,\n collectionGroup as _collectionGroup,\n connectFirestoreEmulator as _connectFirestoreEmulator,\n deleteDoc as _deleteDoc,\n deleteField as _deleteField,\n disableNetwork as _disableNetwork,\n doc as _doc,\n documentId as _documentId,\n enableIndexedDbPersistence as _enableIndexedDbPersistence,\n enableMultiTabIndexedDbPersistence as _enableMultiTabIndexedDbPersistence,\n enableNetwork as _enableNetwork,\n endAt as _endAt,\n endBefore as _endBefore,\n getDoc as _getDoc,\n getDocFromCache as _getDocFromCache,\n getDocFromServer as _getDocFromServer,\n getDocs as _getDocs,\n getDocsFromCache as _getDocsFromCache,\n getDocsFromServer as _getDocsFromServer,\n getFirestore as _getFirestore,\n increment as _increment,\n initializeFirestore as _initializeFirestore,\n limit as _limit,\n limitToLast as _limitToLast,\n loadBundle as _loadBundle,\n namedQuery as _namedQuery,\n onSnapshot as _onSnapshot,\n onSnapshotsInSync as _onSnapshotsInSync,\n orderBy as _orderBy,\n query as _query,\n queryEqual as _queryEqual,\n refEqual as _refEqual,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n setDoc as _setDoc,\n setLogLevel as _setLogLevel,\n snapshotEqual as _snapshotEqual,\n startAfter as _startAfter,\n startAt as _startAt,\n terminate as _terminate,\n updateDoc as _updateDoc,\n waitForPendingWrites as _waitForPendingWrites,\n where as _where,\n writeBatch as _writeBatch\n} from 'firebase/firestore';\n\nexport const addDoc = ɵzoneWrap(_addDoc, true);\nexport const arrayRemove = ɵzoneWrap(_arrayRemove, true);\nexport const arrayUnion = ɵzoneWrap(_arrayUnion, true);\nexport const clearIndexedDbPersistence = ɵzoneWrap(_clearIndexedDbPersistence, true);\nexport const collection = ɵzoneWrap(_collection, true);\nexport const collectionGroup = ɵzoneWrap(_collectionGroup, true);\nexport const connectFirestoreEmulator = ɵzoneWrap(_connectFirestoreEmulator, true);\nexport const deleteDoc = ɵzoneWrap(_deleteDoc, true);\nexport const deleteField = ɵzoneWrap(_deleteField, true);\nexport const disableNetwork = ɵzoneWrap(_disableNetwork, true);\nexport const doc = ɵzoneWrap(_doc, true);\nexport const documentId = ɵzoneWrap(_documentId, true);\nexport const enableIndexedDbPersistence = ɵzoneWrap(_enableIndexedDbPersistence, true);\nexport const enableMultiTabIndexedDbPersistence = ɵzoneWrap(_enableMultiTabIndexedDbPersistence, true);\nexport const enableNetwork = ɵzoneWrap(_enableNetwork, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const getDoc = ɵzoneWrap(_getDoc, true);\nexport const getDocFromCache = ɵzoneWrap(_getDocFromCache, true);\nexport const getDocFromServer = ɵzoneWrap(_getDocFromServer, true);\nexport const getDocs = ɵzoneWrap(_getDocs, true);\nexport const getDocsFromCache = ɵzoneWrap(_getDocsFromCache, true);\nexport const getDocsFromServer = ɵzoneWrap(_getDocsFromServer, true);\nexport const getFirestore = ɵzoneWrap(_getFirestore, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const initializeFirestore = ɵzoneWrap(_initializeFirestore, true);\nexport const limit = ɵzoneWrap(_limit, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const loadBundle = ɵzoneWrap(_loadBundle, true);\nexport const namedQuery = ɵzoneWrap(_namedQuery, true);\nexport const onSnapshot = ɵzoneWrap(_onSnapshot, true);\nexport const onSnapshotsInSync = ɵzoneWrap(_onSnapshotsInSync, true);\nexport const orderBy = ɵzoneWrap(_orderBy, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const queryEqual = ɵzoneWrap(_queryEqual, true);\nexport const refEqual = ɵzoneWrap(_refEqual, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const setDoc = ɵzoneWrap(_setDoc, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const snapshotEqual = ɵzoneWrap(_snapshotEqual, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const updateDoc = ɵzoneWrap(_updateDoc, true);\nexport const waitForPendingWrites = ɵzoneWrap(_waitForPendingWrites, true);\nexport const where = ɵzoneWrap(_where, true);\nexport const writeBatch = ɵzoneWrap(_writeBatch, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_collectionChanges","_collection","_sortedChanges","_auditTrail","_collectionData","_doc","_docData","_snapToData","_fromRef","_addDoc","_arrayRemove","_arrayUnion","_clearIndexedDbPersistence","_collectionGroup","_connectFirestoreEmulator","_deleteDoc","_deleteField","_disableNetwork","_documentId","_enableIndexedDbPersistence","_enableMultiTabIndexedDbPersistence","_enableNetwork","_endAt","_endBefore","_getDoc","_getDocFromCache","_getDocFromServer","_getDocs","_getDocsFromCache","_getDocsFromServer","_getFirestore","_increment","_initializeFirestore","_limit","_limitToLast","_loadBundle","_namedQuery","_onSnapshot","_onSnapshotsInSync","_orderBy","_query","_queryEqual","_refEqual","_runTransaction","_serverTimestamp","_setDoc","_setLogLevel","_snapshotEqual","_startAfter","_startAt","_terminate","_updateDoc","_waitForPendingWrites","_where","_writeBatch"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Optional, NgModule, NgZone } from '@angular/core';
3
- import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵmemoizeInstance, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
2
+ import { InjectionToken, Optional, NgModule, NgZone, Injector } from '@angular/core';
3
+ import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
4
4
  import { timer, from } from 'rxjs';
5
5
  import { concatMap, distinct } from 'rxjs/operators';
6
6
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
@@ -27,11 +27,11 @@ const functionInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstan
27
27
  const PROVIDED_FUNCTIONS_INSTANCES = new InjectionToken('angularfire2.functions-instances');
28
28
  function defaultFunctionsInstanceFactory(provided, defaultApp) {
29
29
  const defaultAuth = ɵgetDefaultInstanceOf(FUNCTIONS_PROVIDER_NAME, provided, defaultApp);
30
- return new Functions(defaultAuth);
30
+ return defaultAuth && new Functions(defaultAuth);
31
31
  }
32
32
  function functionsInstanceFactory(fn) {
33
- return (zone) => {
34
- const functions = ɵmemoizeInstance(fn, zone);
33
+ return (zone, injector) => {
34
+ const functions = zone.runOutsideAngular(() => fn(injector));
35
35
  return new Functions(functions);
36
36
  };
37
37
  }
@@ -69,7 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
69
69
  ]
70
70
  }]
71
71
  }], ctorParameters: function () { return []; } });
72
- function provideFunctions(fn) {
72
+ function provideFunctions(fn, ...deps) {
73
73
  return {
74
74
  ngModule: FunctionsModule,
75
75
  providers: [{
@@ -78,11 +78,13 @@ function provideFunctions(fn) {
78
78
  multi: true,
79
79
  deps: [
80
80
  NgZone,
81
+ Injector,
81
82
  ɵAngularFireSchedulers,
82
83
  FirebaseApps,
83
84
  // Defensively load Auth first, if provided
84
85
  [new Optional(), AuthInstances],
85
86
  [new Optional(), AppCheckInstances],
87
+ ...deps,
86
88
  ]
87
89
  }]
88
90
  };