@angular/fire 17.1.0 → 18.0.0-canary.c866d08

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 (128) hide show
  1. package/README.md +10 -0
  2. package/compat/proxy.d.ts +2 -2
  3. package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -2
  4. package/docs/analytics.md +14 -20
  5. package/docs/app-check.md +12 -9
  6. package/docs/auth.md +44 -9
  7. package/docs/database.md +12 -12
  8. package/docs/firestore.md +15 -23
  9. package/docs/functions.md +11 -9
  10. package/docs/messaging.md +30 -8
  11. package/docs/performance.md +11 -9
  12. package/docs/remote-config.md +11 -9
  13. package/docs/storage.md +11 -10
  14. package/docs/vertexai.md +53 -0
  15. package/esm2022/analytics/analytics.module.mjs +5 -5
  16. package/esm2022/analytics/is-analytics-supported-factory.mjs +1 -1
  17. package/esm2022/analytics/screen-tracking.service.mjs +4 -4
  18. package/esm2022/analytics/user-tracking.service.mjs +4 -4
  19. package/esm2022/app/app.module.mjs +5 -5
  20. package/esm2022/app-check/app-check.module.mjs +5 -5
  21. package/esm2022/auth/auth.module.mjs +5 -5
  22. package/esm2022/auth-guard/auth-guard.mjs +4 -4
  23. package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
  24. package/esm2022/compat/analytics/analytics.mjs +4 -4
  25. package/esm2022/compat/analytics/analytics.module.mjs +5 -5
  26. package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
  27. package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
  28. package/esm2022/compat/auth/auth.mjs +4 -4
  29. package/esm2022/compat/auth/auth.module.mjs +5 -5
  30. package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
  31. package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
  32. package/esm2022/compat/cache.mjs +1 -1
  33. package/esm2022/compat/database/database.mjs +4 -4
  34. package/esm2022/compat/database/database.module.mjs +5 -5
  35. package/esm2022/compat/database/list/changes.mjs +1 -1
  36. package/esm2022/compat/database/list/create-reference.mjs +1 -1
  37. package/esm2022/compat/database/list/remove.mjs +1 -1
  38. package/esm2022/compat/database/list/utils.mjs +1 -1
  39. package/esm2022/compat/database/observable/fromRef.mjs +1 -1
  40. package/esm2022/compat/database/utils.mjs +1 -1
  41. package/esm2022/compat/firebase.app.module.mjs +5 -5
  42. package/esm2022/compat/firestore/collection/changes.mjs +1 -1
  43. package/esm2022/compat/firestore/collection/collection.mjs +1 -1
  44. package/esm2022/compat/firestore/collection-group/collection-group.mjs +1 -1
  45. package/esm2022/compat/firestore/firestore.mjs +4 -4
  46. package/esm2022/compat/firestore/firestore.module.mjs +5 -5
  47. package/esm2022/compat/firestore/observable/fromRef.mjs +1 -1
  48. package/esm2022/compat/functions/functions.mjs +4 -4
  49. package/esm2022/compat/functions/functions.module.mjs +5 -5
  50. package/esm2022/compat/messaging/messaging.mjs +4 -4
  51. package/esm2022/compat/messaging/messaging.module.mjs +5 -5
  52. package/esm2022/compat/performance/performance.mjs +4 -4
  53. package/esm2022/compat/performance/performance.module.mjs +5 -5
  54. package/esm2022/compat/performance/performance.service.mjs +4 -4
  55. package/esm2022/compat/proxy.mjs +1 -1
  56. package/esm2022/compat/remote-config/remote-config.mjs +4 -4
  57. package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
  58. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +10 -12
  59. package/esm2022/compat/storage/storage.mjs +4 -4
  60. package/esm2022/compat/storage/storage.module.mjs +5 -5
  61. package/esm2022/core.mjs +1 -1
  62. package/esm2022/database/database.module.mjs +5 -5
  63. package/esm2022/firestore/firestore.module.mjs +5 -5
  64. package/esm2022/firestore/lite/lite.module.mjs +5 -5
  65. package/esm2022/functions/functions.module.mjs +5 -5
  66. package/esm2022/messaging/is-messaging-supported-factory.mjs +1 -1
  67. package/esm2022/messaging/messaging.module.mjs +5 -5
  68. package/esm2022/performance/performance.module.mjs +5 -5
  69. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +1 -1
  70. package/esm2022/remote-config/remote-config.module.mjs +5 -5
  71. package/esm2022/storage/storage.module.mjs +5 -5
  72. package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
  73. package/esm2022/zones.mjs +4 -4
  74. package/fesm2022/angular-fire-analytics.mjs +410 -297
  75. package/fesm2022/angular-fire-analytics.mjs.map +7 -1
  76. package/fesm2022/angular-fire-app-check.mjs +162 -91
  77. package/fesm2022/angular-fire-app-check.mjs.map +7 -1
  78. package/fesm2022/angular-fire-app.mjs +181 -108
  79. package/fesm2022/angular-fire-app.mjs.map +7 -1
  80. package/fesm2022/angular-fire-auth-guard.mjs +83 -73
  81. package/fesm2022/angular-fire-auth-guard.mjs.map +7 -1
  82. package/fesm2022/angular-fire-auth.mjs +421 -142
  83. package/fesm2022/angular-fire-auth.mjs.map +7 -1
  84. package/fesm2022/angular-fire-compat-analytics.mjs +261 -270
  85. package/fesm2022/angular-fire-compat-analytics.mjs.map +7 -1
  86. package/fesm2022/angular-fire-compat-auth-guard.mjs +83 -72
  87. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +7 -1
  88. package/fesm2022/angular-fire-compat-auth.mjs +214 -213
  89. package/fesm2022/angular-fire-compat-auth.mjs.map +7 -1
  90. package/fesm2022/angular-fire-compat-database.mjs +375 -378
  91. package/fesm2022/angular-fire-compat-database.mjs.map +7 -1
  92. package/fesm2022/angular-fire-compat-firestore.mjs +537 -677
  93. package/fesm2022/angular-fire-compat-firestore.mjs.map +7 -1
  94. package/fesm2022/angular-fire-compat-functions.mjs +97 -93
  95. package/fesm2022/angular-fire-compat-functions.mjs.map +7 -1
  96. package/fesm2022/angular-fire-compat-messaging.mjs +106 -106
  97. package/fesm2022/angular-fire-compat-messaging.mjs.map +7 -1
  98. package/fesm2022/angular-fire-compat-performance.mjs +157 -151
  99. package/fesm2022/angular-fire-compat-performance.mjs.map +7 -1
  100. package/fesm2022/angular-fire-compat-remote-config.mjs +215 -231
  101. package/fesm2022/angular-fire-compat-remote-config.mjs.map +7 -1
  102. package/fesm2022/angular-fire-compat-storage.mjs +226 -233
  103. package/fesm2022/angular-fire-compat-storage.mjs.map +7 -1
  104. package/fesm2022/angular-fire-compat.mjs +140 -153
  105. package/fesm2022/angular-fire-compat.mjs.map +7 -1
  106. package/fesm2022/angular-fire-database.mjs +376 -136
  107. package/fesm2022/angular-fire-database.mjs.map +7 -1
  108. package/fesm2022/angular-fire-firestore-lite.mjs +388 -139
  109. package/fesm2022/angular-fire-firestore-lite.mjs.map +7 -1
  110. package/fesm2022/angular-fire-firestore.mjs +526 -167
  111. package/fesm2022/angular-fire-firestore.mjs.map +7 -1
  112. package/fesm2022/angular-fire-functions.mjs +166 -93
  113. package/fesm2022/angular-fire-functions.mjs.map +7 -1
  114. package/fesm2022/angular-fire-messaging.mjs +196 -118
  115. package/fesm2022/angular-fire-messaging.mjs.map +7 -1
  116. package/fesm2022/angular-fire-performance.mjs +178 -104
  117. package/fesm2022/angular-fire-performance.mjs.map +7 -1
  118. package/fesm2022/angular-fire-remote-config.mjs +254 -132
  119. package/fesm2022/angular-fire-remote-config.mjs.map +7 -1
  120. package/fesm2022/angular-fire-storage.mjs +225 -105
  121. package/fesm2022/angular-fire-storage.mjs.map +7 -1
  122. package/fesm2022/angular-fire-vertexai-preview.mjs +146 -85
  123. package/fesm2022/angular-fire-vertexai-preview.mjs.map +7 -1
  124. package/fesm2022/angular-fire.mjs +183 -213
  125. package/fesm2022/angular-fire.mjs.map +7 -1
  126. package/package.json +7 -7
  127. package/schematics/deploy/actions.js +2 -2
  128. package/schematics/setup/prompts.js +1 -1
@@ -1 +1,7 @@
1
- {"version":3,"file":"angular-fire-compat-storage.mjs","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\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 { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\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 { keepUnstableUntilFirst, observeOutsideAngular } from '@angular/fire';\nimport { Observable, from, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ListOptions, ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\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 { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { UploadMetadata } from './interfaces';\nimport { createStorageRef } from './ref';\nimport 'firebase/compat/storage';\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 // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: 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 { TransferState, makeStateKey } 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 { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\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":["i1.AngularFireStorage","i2"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "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"],
4
+ "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\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 { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\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 { keepUnstableUntilFirst, observeOutsideAngular } from '@angular/fire';\nimport { Observable, from, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ListOptions, ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\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 { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { UploadMetadata } from './interfaces';\nimport { createStorageRef } from './ref';\nimport 'firebase/compat/storage';\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 // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: 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, TransferState, makeStateKey } from '@angular/core';\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 { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\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"],
5
+ "mappings": "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",
6
+ "names": ["Optional", "of", "NgModule"]
7
+ }
@@ -1,173 +1,160 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, isDevMode, NgZone, Optional, VERSION as VERSION$1, PLATFORM_ID, NgModule, Inject } from '@angular/core';
3
- import { VERSION } from '@angular/fire';
4
- import firebase from 'firebase/compat/app';
5
-
6
- // DEBUG quick debugger function for inline logging that typescript doesn't complain about
7
- // wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a
8
- // verbose mode for AngularFire in a future release that uses something like this in multiple places
9
- // usage: () => log('something') || returnValue
10
- // const log = (...args: any[]): false => { console.log(...args); return false }
11
- // The problem here are things like ngOnDestroy are missing, then triggering the service
12
- // rather than dig too far; I'm capturing these as I go.
13
- const noopFunctions = ['ngOnDestroy'];
14
- // INVESTIGATE should we make the Proxy revokable and do some cleanup?
15
- // right now it's fairly simple but I'm sure this will grow in complexity
16
- const ɵlazySDKProxy = (klass, observable, zone, options = {}) => {
17
- return new Proxy(klass, {
18
- get: (_, name) => zone.runOutsideAngular(() => {
19
- if (klass[name]) {
20
- if (options?.spy?.get) {
21
- options.spy.get(name, klass[name]);
22
- }
23
- return klass[name];
24
- }
25
- if (noopFunctions.indexOf(name) > -1) {
26
- return () => undefined;
27
- }
28
- const promise = observable.toPromise().then(mod => {
29
- const ret = mod?.[name];
30
- // TODO move to proper type guards
31
- if (typeof ret === 'function') {
32
- return ret.bind(mod);
33
- }
34
- else if (ret?.then) {
35
- return ret.then((res) => zone.run(() => res));
36
- }
37
- else {
38
- return zone.run(() => ret);
39
- }
40
- });
41
- // recurse the proxy
42
- return new Proxy(() => undefined, {
43
- get: (_, name) => promise[name],
44
- // TODO handle callbacks as transparently as I can
45
- apply: (self, _, args) => promise.then(it => {
46
- const res = it?.(...args);
47
- if (options?.spy?.apply) {
48
- options.spy.apply(name, args, res);
49
- }
50
- return res;
51
- })
52
- });
1
+ // proxy.mjs
2
+ var noopFunctions = ["ngOnDestroy"];
3
+ var ɵlazySDKProxy = (klass, observable, zone, options = {}) => {
4
+ return new Proxy(klass, {
5
+ get: (_, name) => zone.runOutsideAngular(() => {
6
+ if (klass[name]) {
7
+ if (options?.spy?.get) {
8
+ options.spy.get(name, klass[name]);
9
+ }
10
+ return klass[name];
11
+ }
12
+ if (noopFunctions.indexOf(name) > -1) {
13
+ return () => void 0;
14
+ }
15
+ const promise = observable.toPromise().then((mod) => {
16
+ const ret = mod?.[name];
17
+ if (typeof ret === "function") {
18
+ return ret.bind(mod);
19
+ } else if (ret?.then) {
20
+ return ret.then((res) => zone.run(() => res));
21
+ } else {
22
+ return zone.run(() => ret);
23
+ }
24
+ });
25
+ return new Proxy(() => void 0, {
26
+ get: (_2, name2) => promise[name2],
27
+ // TODO handle callbacks as transparently as I can
28
+ apply: (self, _2, args) => promise.then((it) => {
29
+ const res = it?.(...args);
30
+ if (options?.spy?.apply) {
31
+ options.spy.apply(name, args, res);
32
+ }
33
+ return res;
53
34
  })
54
- });
35
+ });
36
+ })
37
+ });
55
38
  };
56
- const ɵapplyMixins = (derivedCtor, constructors) => {
57
- constructors.forEach((baseCtor) => {
58
- Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {
59
- Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name));
60
- });
39
+ var ɵapplyMixins = (derivedCtor, constructors) => {
40
+ constructors.forEach((baseCtor) => {
41
+ Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {
42
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name));
61
43
  });
44
+ });
62
45
  };
63
46
 
64
- class FirebaseApp {
65
- constructor(app) {
66
- return app;
67
- }
68
- }
47
+ // firebase.app.mjs
48
+ var FirebaseApp = class {
49
+ constructor(app) {
50
+ return app;
51
+ }
52
+ };
69
53
 
70
- const FIREBASE_OPTIONS = new InjectionToken('angularfire2.app.options');
71
- const FIREBASE_APP_NAME = new InjectionToken('angularfire2.app.name');
54
+ // firebase.app.module.mjs
55
+ import { Inject, InjectionToken, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode } from "@angular/core";
56
+ import { VERSION } from "@angular/fire";
57
+ import firebase from "firebase/compat/app";
58
+ import * as i0 from "@angular/core";
59
+ var FIREBASE_OPTIONS = new InjectionToken("angularfire2.app.options");
60
+ var FIREBASE_APP_NAME = new InjectionToken("angularfire2.app.name");
72
61
  function ɵfirebaseAppFactory(options, zone, nameOrConfig) {
73
- const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';
74
- const config = typeof nameOrConfig === 'object' && nameOrConfig || {};
75
- config.name = config.name || name;
76
- // Added any due to some inconsistency between @firebase/app and firebase types
77
- const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];
78
- // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any
79
- // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206
80
- const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config)));
81
- try {
82
- if (JSON.stringify(options) !== JSON.stringify(app.options)) {
83
- const hmr = !!module.hot;
84
- log$1('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);
85
- }
62
+ const name = typeof nameOrConfig === "string" && nameOrConfig || "[DEFAULT]";
63
+ const config = typeof nameOrConfig === "object" && nameOrConfig || {};
64
+ config.name = config.name || name;
65
+ const existingApp = firebase.apps.filter((app2) => app2 && app2.name === config.name)[0];
66
+ const app = existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config));
67
+ try {
68
+ if (JSON.stringify(options) !== JSON.stringify(app.options)) {
69
+ const hmr = !!module.hot;
70
+ log("error", `${app.name} Firebase App already initialized with different options${hmr ? ", you may need to reload as Firebase is not HMR aware." : "."}`);
86
71
  }
87
- catch (e) { /* empty */ }
88
- return new FirebaseApp(app);
72
+ } catch (e) {
73
+ }
74
+ return new FirebaseApp(app);
89
75
  }
90
- const log$1 = (level, ...args) => {
91
- if (isDevMode() && typeof console !== 'undefined') {
92
- // eslint-disable-next-line no-console
93
- console[level](...args);
94
- }
76
+ var log = (level, ...args) => {
77
+ if (isDevMode() && typeof console !== "undefined") {
78
+ console[level](...args);
79
+ }
95
80
  };
96
- const FIREBASE_APP_PROVIDER = {
97
- provide: FirebaseApp,
98
- useFactory: ɵfirebaseAppFactory,
99
- deps: [
100
- FIREBASE_OPTIONS,
101
- NgZone,
102
- [new Optional(), FIREBASE_APP_NAME]
103
- ]
81
+ var FIREBASE_APP_PROVIDER = {
82
+ provide: FirebaseApp,
83
+ useFactory: ɵfirebaseAppFactory,
84
+ deps: [
85
+ FIREBASE_OPTIONS,
86
+ NgZone,
87
+ [new Optional(), FIREBASE_APP_NAME]
88
+ ]
104
89
  };
105
- class AngularFireModule {
106
- static initializeApp(options, nameOrConfig) {
107
- return {
108
- ngModule: AngularFireModule,
109
- providers: [
110
- { provide: FIREBASE_OPTIONS, useValue: options },
111
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig }
112
- ]
113
- };
114
- }
115
- // eslint-disable-next-line @typescript-eslint/ban-types
116
- constructor(platformId) {
117
- firebase.registerVersion('angularfire', VERSION.full, 'core');
118
- firebase.registerVersion('angularfire', VERSION.full, 'app-compat');
119
- // eslint-disable-next-line @typescript-eslint/no-base-to-string
120
- firebase.registerVersion('angular', VERSION$1.full, platformId.toString());
121
- }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
123
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AngularFireModule });
124
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireModule, decorators: [{
127
- type: NgModule,
128
- args: [{
129
- providers: [FIREBASE_APP_PROVIDER]
130
- }]
131
- }], ctorParameters: () => [{ type: Object, decorators: [{
132
- type: Inject,
133
- args: [PLATFORM_ID]
134
- }] }] });
90
+ var AngularFireModule = class _AngularFireModule {
91
+ static initializeApp(options, nameOrConfig) {
92
+ return {
93
+ ngModule: _AngularFireModule,
94
+ providers: [
95
+ { provide: FIREBASE_OPTIONS, useValue: options },
96
+ { provide: FIREBASE_APP_NAME, useValue: nameOrConfig }
97
+ ]
98
+ };
99
+ }
100
+ // eslint-disable-next-line @typescript-eslint/ban-types
101
+ constructor(platformId) {
102
+ firebase.registerVersion("angularfire", VERSION.full, "core");
103
+ firebase.registerVersion("angularfire", VERSION.full, "app-compat");
104
+ firebase.registerVersion("angular", NG_VERSION.full, platformId.toString());
105
+ }
106
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
107
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AngularFireModule });
108
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
109
+ };
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: AngularFireModule, decorators: [{
111
+ type: NgModule,
112
+ args: [{
113
+ providers: [FIREBASE_APP_PROVIDER]
114
+ }]
115
+ }], ctorParameters: () => [{ type: Object, decorators: [{
116
+ type: Inject,
117
+ args: [PLATFORM_ID]
118
+ }] }] });
135
119
 
120
+ // cache.mjs
121
+ import { isDevMode as isDevMode2 } from "@angular/core";
136
122
  function ɵcacheInstance(cacheKey, moduleName, appName, fn, deps) {
137
- const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it) => it[0] === cacheKey) || [];
138
- if (instance) {
139
- if (!matchDep(deps, cachedDeps)) {
140
- 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.' : ''}`);
141
- log('warn', { is: deps, was: cachedDeps });
142
- }
143
- return instance;
144
- }
145
- else {
146
- const newInstance = fn();
147
- globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);
148
- return newInstance;
123
+ const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it) => it[0] === cacheKey) || [];
124
+ if (instance) {
125
+ if (!matchDep(deps, cachedDeps)) {
126
+ log2("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." : ""}`);
127
+ log2("warn", { is: deps, was: cachedDeps });
149
128
  }
129
+ return instance;
130
+ } else {
131
+ const newInstance = fn();
132
+ globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);
133
+ return newInstance;
134
+ }
150
135
  }
151
136
  function matchDep(a, b) {
152
- try {
153
- return a.toString() === b.toString();
154
- }
155
- catch (_) {
156
- return a === b;
157
- }
137
+ try {
138
+ return a.toString() === b.toString();
139
+ } catch (_) {
140
+ return a === b;
141
+ }
158
142
  }
159
- const IS_HMR = typeof module !== 'undefined' && !!module.hot;
160
- const log = (level, ...args) => {
161
- if (isDevMode() && typeof console !== 'undefined') {
162
- // eslint-disable-next-line no-console
163
- console[level](...args);
164
- }
143
+ var IS_HMR = typeof module !== "undefined" && !!module.hot;
144
+ var log2 = (level, ...args) => {
145
+ if (isDevMode2() && typeof console !== "undefined") {
146
+ console[level](...args);
147
+ }
165
148
  };
166
149
  globalThis.ɵAngularfireInstanceCache ||= [];
167
-
168
- /**
169
- * Generated bundle index. Do not edit.
170
- */
171
-
172
- export { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵapplyMixins, ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy };
150
+ export {
151
+ AngularFireModule,
152
+ FIREBASE_APP_NAME,
153
+ FIREBASE_OPTIONS,
154
+ FirebaseApp,
155
+ ɵapplyMixins,
156
+ ɵcacheInstance,
157
+ ɵfirebaseAppFactory,
158
+ ɵlazySDKProxy
159
+ };
173
160
  //# sourceMappingURL=angular-fire-compat.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"angular-fire-compat.mjs","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\ntype MyFunction = (...args: any[]) => any;\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? K : never }[keyof T];\ntype ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;\ntype ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? never : K }[keyof T];\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: T[K] };\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 () => undefined;\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod?.[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (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(() => undefined, {\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?.(...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// eslint-disable-next-line @typescript-eslint/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 Inject, InjectionToken, ModuleWithProviders, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode\n} from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseAppSettings, FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\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) { /* empty */ }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line @typescript-eslint/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 // eslint-disable-next-line @typescript-eslint/no-base-to-string\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 = typeof module !== 'undefined' && !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\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
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compat/proxy.ts", "../../../src/compat/firebase.app.ts", "../../../src/compat/firebase.app.module.ts", "../../../src/compat/cache.ts"],
4
+ "sourcesContent": ["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\ntype MyFunction = (...args: any[]) => any;\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? K : never }[keyof T];\ntype ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;\ntype ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? never : K }[keyof T];\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: T[K] };\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 () => undefined;\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod?.[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (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(() => undefined, {\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?.(...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// eslint-disable-next-line @typescript-eslint/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 Inject, InjectionToken, ModuleWithProviders, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode\n} from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseAppSettings, FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\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) { /* empty */ }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line @typescript-eslint/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 // eslint-disable-next-line @typescript-eslint/no-base-to-string\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 = typeof module !== 'undefined' && !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n"],
5
+ "mappings": "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",
6
+ "names": ["_", "name", "app", "isDevMode", "log"]
7
+ }