@angular/fire 18.0.0-canary.bfc27e2 → 18.0.0-canary.cd18129

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 (96) hide show
  1. package/esm2022/analytics/analytics.module.mjs +5 -5
  2. package/esm2022/analytics/screen-tracking.service.mjs +4 -4
  3. package/esm2022/analytics/user-tracking.service.mjs +4 -4
  4. package/esm2022/app/app.module.mjs +5 -5
  5. package/esm2022/app-check/app-check.module.mjs +5 -5
  6. package/esm2022/auth/auth.module.mjs +5 -5
  7. package/esm2022/auth-guard/auth-guard.mjs +4 -4
  8. package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
  9. package/esm2022/compat/analytics/analytics.mjs +4 -4
  10. package/esm2022/compat/analytics/analytics.module.mjs +5 -5
  11. package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
  12. package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
  13. package/esm2022/compat/auth/auth.mjs +4 -4
  14. package/esm2022/compat/auth/auth.module.mjs +5 -5
  15. package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
  16. package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
  17. package/esm2022/compat/database/database.mjs +4 -4
  18. package/esm2022/compat/database/database.module.mjs +5 -5
  19. package/esm2022/compat/firebase.app.module.mjs +5 -5
  20. package/esm2022/compat/firestore/firestore.mjs +4 -4
  21. package/esm2022/compat/firestore/firestore.module.mjs +5 -5
  22. package/esm2022/compat/functions/functions.mjs +4 -4
  23. package/esm2022/compat/functions/functions.module.mjs +5 -5
  24. package/esm2022/compat/messaging/messaging.mjs +4 -4
  25. package/esm2022/compat/messaging/messaging.module.mjs +5 -5
  26. package/esm2022/compat/performance/performance.mjs +4 -4
  27. package/esm2022/compat/performance/performance.module.mjs +5 -5
  28. package/esm2022/compat/performance/performance.service.mjs +4 -4
  29. package/esm2022/compat/remote-config/remote-config.mjs +4 -4
  30. package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
  31. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +8 -8
  32. package/esm2022/compat/storage/storage.mjs +4 -4
  33. package/esm2022/compat/storage/storage.module.mjs +5 -5
  34. package/esm2022/database/database.module.mjs +5 -5
  35. package/esm2022/firestore/firestore.module.mjs +5 -5
  36. package/esm2022/firestore/lite/lite.module.mjs +5 -5
  37. package/esm2022/functions/functions.module.mjs +5 -5
  38. package/esm2022/messaging/messaging.module.mjs +5 -5
  39. package/esm2022/performance/performance.module.mjs +5 -5
  40. package/esm2022/remote-config/remote-config.module.mjs +5 -5
  41. package/esm2022/storage/storage.module.mjs +5 -5
  42. package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
  43. package/esm2022/zones.mjs +4 -4
  44. package/fesm2022/angular-fire-analytics.mjs +297 -410
  45. package/fesm2022/angular-fire-analytics.mjs.map +1 -7
  46. package/fesm2022/angular-fire-app-check.mjs +91 -162
  47. package/fesm2022/angular-fire-app-check.mjs.map +1 -7
  48. package/fesm2022/angular-fire-app.mjs +108 -181
  49. package/fesm2022/angular-fire-app.mjs.map +1 -7
  50. package/fesm2022/angular-fire-auth-guard.mjs +73 -83
  51. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -7
  52. package/fesm2022/angular-fire-auth.mjs +142 -421
  53. package/fesm2022/angular-fire-auth.mjs.map +1 -7
  54. package/fesm2022/angular-fire-compat-analytics.mjs +271 -262
  55. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -7
  56. package/fesm2022/angular-fire-compat-auth-guard.mjs +72 -83
  57. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -7
  58. package/fesm2022/angular-fire-compat-auth.mjs +214 -215
  59. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -7
  60. package/fesm2022/angular-fire-compat-database.mjs +378 -375
  61. package/fesm2022/angular-fire-compat-database.mjs.map +1 -7
  62. package/fesm2022/angular-fire-compat-firestore.mjs +677 -537
  63. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -7
  64. package/fesm2022/angular-fire-compat-functions.mjs +94 -98
  65. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -7
  66. package/fesm2022/angular-fire-compat-messaging.mjs +107 -107
  67. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -7
  68. package/fesm2022/angular-fire-compat-performance.mjs +152 -158
  69. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -7
  70. package/fesm2022/angular-fire-compat-remote-config.mjs +232 -216
  71. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -7
  72. package/fesm2022/angular-fire-compat-storage.mjs +231 -226
  73. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -7
  74. package/fesm2022/angular-fire-compat.mjs +153 -140
  75. package/fesm2022/angular-fire-compat.mjs.map +1 -7
  76. package/fesm2022/angular-fire-database.mjs +136 -376
  77. package/fesm2022/angular-fire-database.mjs.map +1 -7
  78. package/fesm2022/angular-fire-firestore-lite.mjs +139 -388
  79. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -7
  80. package/fesm2022/angular-fire-firestore.mjs +167 -526
  81. package/fesm2022/angular-fire-firestore.mjs.map +1 -7
  82. package/fesm2022/angular-fire-functions.mjs +93 -166
  83. package/fesm2022/angular-fire-functions.mjs.map +1 -7
  84. package/fesm2022/angular-fire-messaging.mjs +118 -196
  85. package/fesm2022/angular-fire-messaging.mjs.map +1 -7
  86. package/fesm2022/angular-fire-performance.mjs +104 -178
  87. package/fesm2022/angular-fire-performance.mjs.map +1 -7
  88. package/fesm2022/angular-fire-remote-config.mjs +132 -254
  89. package/fesm2022/angular-fire-remote-config.mjs.map +1 -7
  90. package/fesm2022/angular-fire-storage.mjs +105 -225
  91. package/fesm2022/angular-fire-storage.mjs.map +1 -7
  92. package/fesm2022/angular-fire-vertexai-preview.mjs +85 -146
  93. package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -7
  94. package/fesm2022/angular-fire.mjs +213 -183
  95. package/fesm2022/angular-fire.mjs.map +1 -7
  96. package/package.json +1 -1
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/analytics/angular-fire-analytics.ts", "../../../src/analytics/public_api.ts", "../../../src/analytics/analytics.ts", "../../../src/analytics/is-analytics-supported-factory.ts", "../../../src/analytics/firebase.ts", "../../../src/analytics/overrides.ts", "../../../src/analytics/user-tracking.service.ts", "../../../src/analytics/screen-tracking.service.ts", "../../../src/analytics/analytics.module.ts"],
4
- "sourcesContent": ["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n", "export { Analytics, AnalyticsInstances, analyticInstance$ } from './analytics';\nexport { provideAnalytics, AnalyticsModule } from './analytics.module';\nexport * from './firebase';\nexport * from './screen-tracking.service';\nexport * from './user-tracking.service';\n", "import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\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// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Analytics extends FirebaseAnalytics {}\n\nexport class Analytics {\n constructor(analytics: FirebaseAnalytics) {\n return analytics;\n }\n}\n\nexport const ANALYTICS_PROVIDER_NAME = 'analytics';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AnalyticsInstances extends Array<FirebaseAnalytics> {}\n\nexport class AnalyticsInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME);\n }\n}\n\nexport const analyticInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME))),\n distinct(),\n);\n", "import { ɵisSupportedError } from '@angular/fire';\nimport { isSupported } from 'firebase/analytics';\n\nconst isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';\nconst isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';\n\nglobalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported().then(it =>\n globalThis[isAnalyticsSupportedValueSymbol] = it\n).catch(() =>\n globalThis[isAnalyticsSupportedValueSymbol] = false\n);\nexport const isAnalyticsSupportedFactory = {\n async: () => globalThis[isAnalyticsSupportedPromiseSymbol],\n sync: () => {\n const ret = globalThis[isAnalyticsSupportedValueSymbol];\n if (ret === undefined) { throw new Error(ɵisSupportedError('Analytics')); }\n return ret;\n }\n};\n", "// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/analytics';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getAnalytics as _getAnalytics,\n getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId,\n initializeAnalytics as _initializeAnalytics,\n logEvent as _logEvent,\n setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled,\n setConsent as _setConsent,\n setCurrentScreen as _setCurrentScreen,\n setDefaultEventParameters as _setDefaultEventParameters,\n settings as _settings,\n setUserId as _setUserId,\n setUserProperties as _setUserProperties\n} from 'firebase/analytics';\n\nexport {\n isSupported\n} from './overrides';\n\nexport const getAnalytics = ɵzoneWrap(_getAnalytics, true);\nexport const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);\nexport const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);\nexport const logEvent = ɵzoneWrap(_logEvent, true);\nexport const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionEnabled, true);\nexport const setConsent = ɵzoneWrap(_setConsent, true);\nexport const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);\nexport const setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);\nexport const settings = ɵzoneWrap(_settings, true);\nexport const setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\n", "import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\n\nexport const isSupported = isAnalyticsSupportedFactory.async;\n\n", "import { Injectable, Injector, NgZone, OnDestroy } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Auth, authState } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Subscription } from 'rxjs';\nimport { Analytics } from './analytics';\nimport { isSupported, setUserId } from './firebase';\n\n@Injectable()\nexport class UserTrackingService implements OnDestroy {\n\n public readonly initialized: Promise<void>;\n private disposables: Subscription[] = [];\n\n constructor(\n auth: Auth,\n zone: NgZone,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'user-tracking');\n let resolveInitialized: () => void;\n this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (analytics) {\n this.disposables = [\n // TODO add credential tracking back in\n authState(auth).subscribe(user => {\n setUserId(analytics, user?.uid);\n resolveInitialized();\n }),\n ];\n } else {\n resolveInitialized();\n }\n });\n }\n\n ngOnDestroy() {\n this.disposables.forEach(it => it.unsubscribe());\n }\n}\n", "import { ComponentFactoryResolver, Injectable, Injector, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Title } from '@angular/platform-browser';\nimport { ActivationEnd, Router, ɵEmptyOutletComponent } from '@angular/router';\nimport { registerVersion } from 'firebase/app';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from 'rxjs/operators';\nimport { Analytics } from './analytics';\nimport { isSupported, logEvent } from './firebase';\nimport { UserTrackingService } from './user-tracking.service';\n\nconst FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';\nconst FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';\nconst FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';\nconst FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';\nconst FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';\nconst FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';\nconst FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';\nconst OUTLET_KEY = 'outlet';\nconst PAGE_PATH_KEY = 'page_path';\nconst PAGE_TITLE_KEY = 'page_title';\nconst SCREEN_CLASS_KEY = 'screen_class';\nconst SCREEN_NAME_KEY = 'screen_name';\nconst SCREEN_VIEW_EVENT = 'screen_view';\nconst EVENT_ORIGIN_AUTO = 'auto';\nconst SCREEN_INSTANCE_DELIMITER = '#';\n\n// this is an INT64 in iOS/Android but use INT32 cause javascript\nlet nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;\n\nconst knownScreenInstanceIDs: Record<string, number> = {};\n\nconst getScreenInstanceID = (params: Record<string, any>) => {\n // unique the screen class against the outlet name\n const screenInstanceKey = [\n params[SCREEN_CLASS_KEY],\n params[OUTLET_KEY]\n ].join(SCREEN_INSTANCE_DELIMITER);\n // eslint-disable-next-line no-prototype-builtins\n if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {\n return knownScreenInstanceIDs[screenInstanceKey];\n } else {\n const ret = nextScreenInstanceID++;\n knownScreenInstanceIDs[screenInstanceKey] = ret;\n return ret;\n }\n};\n\nexport const ɵscreenViewEvent = (\n router: Router,\n title: Title|null,\n componentFactoryResolver: ComponentFactoryResolver,\n): Observable<{\n [SCREEN_NAME_KEY]: string,\n [PAGE_PATH_KEY]: string,\n [FIREBASE_EVENT_ORIGIN_KEY]: 'auto',\n [FIREBASE_SCREEN_NAME_KEY]: string,\n [OUTLET_KEY]: string,\n [PAGE_TITLE_KEY]?: string,\n [SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: number,\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: number,\n}> => {\n const activationEndEvents = router.events.pipe(filter<ActivationEnd>(e => e instanceof ActivationEnd));\n return activationEndEvents.pipe(\n switchMap<ActivationEnd, Observable<Record<string, any>|null>>(activationEnd => {\n // router parseUrl is having trouble with outlets when they're empty\n // e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty\n const urlTree = router.parseUrl(router.url.replace(/(?:\\().+(?:\\))/g, a => a.replace('://', ':///')));\n const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';\n const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);\n\n if (!actualSnapshot) {\n return of(null);\n }\n\n let actualDeep = actualSnapshot;\n while (actualDeep.firstChild) {\n actualDeep = actualDeep.firstChild;\n }\n const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';\n\n const params = {\n [SCREEN_NAME_KEY]: screenName,\n [PAGE_PATH_KEY]: `/${pagePath}`,\n [FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,\n [FIREBASE_SCREEN_NAME_KEY]: screenName,\n [OUTLET_KEY]: activationEnd.snapshot.outlet\n };\n if (title) {\n params[PAGE_TITLE_KEY] = title.getTitle();\n }\n\n let component = actualSnapshot.component;\n if (component) {\n if (component === ɵEmptyOutletComponent) {\n let deepSnapshot = activationEnd.snapshot;\n // TODO when might there be mutple children, different outlets? explore\n while (deepSnapshot.firstChild) {\n deepSnapshot = deepSnapshot.firstChild;\n }\n component = deepSnapshot.component;\n }\n } else {\n component = activationEnd.snapshot.component;\n }\n\n if (typeof component === 'string') {\n return of({ ...params, [SCREEN_CLASS_KEY]: component });\n } else if (component) {\n const componentFactory = componentFactoryResolver.resolveComponentFactory(component);\n return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });\n }\n // lazy loads cause extra activations, ignore\n return of(null);\n }),\n filter(it => !!it),\n map(params => ({\n [FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),\n ...params\n })),\n groupBy(it => it[OUTLET_KEY]),\n mergeMap(it => it.pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n startWith<any, any>(undefined),\n pairwise(),\n map(([prior, current]) =>\n prior ? {\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],\n ...current\n } : current\n ),\n ))\n );\n};\n\n@Injectable()\nexport class ScreenTrackingService implements OnDestroy {\n\n private disposable: Subscription | undefined;\n\n constructor(\n @Optional() router: Router,\n @Optional() title: Title,\n componentFactoryResolver: ComponentFactoryResolver,\n zone: NgZone,\n @Optional() userTrackingService: UserTrackingService,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'screen-tracking');\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (!router || !analytics) { return; }\n zone.runOutsideAngular(() => {\n this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(\n switchMap(async params => {\n if (userTrackingService) { await userTrackingService.initialized; }\n return logEvent(analytics, SCREEN_VIEW_EVENT, params);\n })\n ).subscribe();\n });\n });\n }\n\n ngOnDestroy() {\n if (this.disposable) {\n this.disposable.unsubscribe();\n }\n }\n\n}\n", "import {\n APP_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { registerVersion } from 'firebase/app';\nimport { ANALYTICS_PROVIDER_NAME, Analytics, AnalyticsInstances } from './analytics';\nimport { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\nimport { ScreenTrackingService } from './screen-tracking.service';\nimport { UserTrackingService } from './user-tracking.service';\n\nexport const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken<Analytics[]>('angularfire2.analytics-instances');\n\nexport function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[]|undefined, defaultApp: FirebaseApp) {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const defaultAnalytics = ɵgetDefaultInstanceOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME, provided, defaultApp);\n return defaultAnalytics && new Analytics(defaultAnalytics);\n}\n\nexport function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics) {\n return (zone: NgZone, injector: Injector) => {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const analytics = zone.runOutsideAngular(() => fn(injector));\n return new Analytics(analytics);\n };\n}\n\nconst ANALYTICS_INSTANCES_PROVIDER = {\n provide: AnalyticsInstances,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n ]\n};\n\nconst DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {\n provide: Analytics,\n useFactory: defaultAnalyticsInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n }\n ]\n})\nexport class AnalyticsModule {\n constructor(\n @Optional() _screenTrackingService: ScreenTrackingService,\n @Optional() _userTrackingService: UserTrackingService,\n ) {\n registerVersion('angularfire', VERSION.full, 'analytics');\n }\n}\n\nexport function provideAnalytics(fn: (injector: Injector) => FirebaseAnalytics, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'analytics');\n\n return makeEnvironmentProviders([\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n },\n {\n provide: PROVIDED_ANALYTICS_INSTANCES,\n useFactory: analyticsInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n },\n ]);\n}\n"],
5
- "mappings": "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",
6
- "names": ["isSupported", "isSupported", "isSupported", "isSupported", "isSupported", "Injectable", "Injector", "NgZone", "VERSION", "registerVersion", "isSupported", "Injector", "NgZone", "Optional", "VERSION", "registerVersion"]
7
- }
1
+ {"version":3,"file":"angular-fire-analytics.mjs","sources":["../../../src/analytics/analytics.ts","../../../src/analytics/is-analytics-supported-factory.ts","../../../src/analytics/overrides.ts","../../../src/analytics/firebase.ts","../../../src/analytics/user-tracking.service.ts","../../../src/analytics/screen-tracking.service.ts","../../../src/analytics/analytics.module.ts","../../../src/analytics/angular-fire-analytics.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\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// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Analytics extends FirebaseAnalytics {}\n\nexport class Analytics {\n constructor(analytics: FirebaseAnalytics) {\n return analytics;\n }\n}\n\nexport const ANALYTICS_PROVIDER_NAME = 'analytics';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AnalyticsInstances extends Array<FirebaseAnalytics> {}\n\nexport class AnalyticsInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME);\n }\n}\n\nexport const analyticInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME))),\n distinct(),\n);\n","import { ɵisSupportedError } from '@angular/fire';\nimport { isSupported } from 'firebase/analytics';\n\nconst isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';\nconst isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';\n\nglobalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported().then(it =>\n globalThis[isAnalyticsSupportedValueSymbol] = it\n).catch(() =>\n globalThis[isAnalyticsSupportedValueSymbol] = false\n);\nexport const isAnalyticsSupportedFactory = {\n async: () => globalThis[isAnalyticsSupportedPromiseSymbol],\n sync: () => {\n const ret = globalThis[isAnalyticsSupportedValueSymbol];\n if (ret === undefined) { throw new Error(ɵisSupportedError('Analytics')); }\n return ret;\n }\n};\n","import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\n\nexport const isSupported = isAnalyticsSupportedFactory.async;\n\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/analytics';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getAnalytics as _getAnalytics,\n getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId,\n initializeAnalytics as _initializeAnalytics,\n logEvent as _logEvent,\n setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled,\n setConsent as _setConsent,\n setCurrentScreen as _setCurrentScreen,\n setDefaultEventParameters as _setDefaultEventParameters,\n settings as _settings,\n setUserId as _setUserId,\n setUserProperties as _setUserProperties\n} from 'firebase/analytics';\n\nexport {\n isSupported\n} from './overrides';\n\nexport const getAnalytics = ɵzoneWrap(_getAnalytics, true);\nexport const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);\nexport const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);\nexport const logEvent = ɵzoneWrap(_logEvent, true);\nexport const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionEnabled, true);\nexport const setConsent = ɵzoneWrap(_setConsent, true);\nexport const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);\nexport const setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);\nexport const settings = ɵzoneWrap(_settings, true);\nexport const setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\n","import { Injectable, Injector, NgZone, OnDestroy } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Auth, authState } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Subscription } from 'rxjs';\nimport { Analytics } from './analytics';\nimport { isSupported, setUserId } from './firebase';\n\n@Injectable()\nexport class UserTrackingService implements OnDestroy {\n\n public readonly initialized: Promise<void>;\n private disposables: Subscription[] = [];\n\n constructor(\n auth: Auth,\n zone: NgZone,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'user-tracking');\n let resolveInitialized: () => void;\n this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (analytics) {\n this.disposables = [\n // TODO add credential tracking back in\n authState(auth).subscribe(user => {\n setUserId(analytics, user?.uid);\n resolveInitialized();\n }),\n ];\n } else {\n resolveInitialized();\n }\n });\n }\n\n ngOnDestroy() {\n this.disposables.forEach(it => it.unsubscribe());\n }\n}\n","import { ComponentFactoryResolver, Injectable, Injector, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Title } from '@angular/platform-browser';\nimport { ActivationEnd, Router, ɵEmptyOutletComponent } from '@angular/router';\nimport { registerVersion } from 'firebase/app';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from 'rxjs/operators';\nimport { Analytics } from './analytics';\nimport { isSupported, logEvent } from './firebase';\nimport { UserTrackingService } from './user-tracking.service';\n\nconst FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';\nconst FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';\nconst FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';\nconst FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';\nconst FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';\nconst FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';\nconst FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';\nconst OUTLET_KEY = 'outlet';\nconst PAGE_PATH_KEY = 'page_path';\nconst PAGE_TITLE_KEY = 'page_title';\nconst SCREEN_CLASS_KEY = 'screen_class';\nconst SCREEN_NAME_KEY = 'screen_name';\nconst SCREEN_VIEW_EVENT = 'screen_view';\nconst EVENT_ORIGIN_AUTO = 'auto';\nconst SCREEN_INSTANCE_DELIMITER = '#';\n\n// this is an INT64 in iOS/Android but use INT32 cause javascript\nlet nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;\n\nconst knownScreenInstanceIDs: Record<string, number> = {};\n\nconst getScreenInstanceID = (params: Record<string, any>) => {\n // unique the screen class against the outlet name\n const screenInstanceKey = [\n params[SCREEN_CLASS_KEY],\n params[OUTLET_KEY]\n ].join(SCREEN_INSTANCE_DELIMITER);\n // eslint-disable-next-line no-prototype-builtins\n if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {\n return knownScreenInstanceIDs[screenInstanceKey];\n } else {\n const ret = nextScreenInstanceID++;\n knownScreenInstanceIDs[screenInstanceKey] = ret;\n return ret;\n }\n};\n\nexport const ɵscreenViewEvent = (\n router: Router,\n title: Title|null,\n componentFactoryResolver: ComponentFactoryResolver,\n): Observable<{\n [SCREEN_NAME_KEY]: string,\n [PAGE_PATH_KEY]: string,\n [FIREBASE_EVENT_ORIGIN_KEY]: 'auto',\n [FIREBASE_SCREEN_NAME_KEY]: string,\n [OUTLET_KEY]: string,\n [PAGE_TITLE_KEY]?: string,\n [SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: number,\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: number,\n}> => {\n const activationEndEvents = router.events.pipe(filter<ActivationEnd>(e => e instanceof ActivationEnd));\n return activationEndEvents.pipe(\n switchMap<ActivationEnd, Observable<Record<string, any>|null>>(activationEnd => {\n // router parseUrl is having trouble with outlets when they're empty\n // e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty\n const urlTree = router.parseUrl(router.url.replace(/(?:\\().+(?:\\))/g, a => a.replace('://', ':///')));\n const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';\n const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);\n\n if (!actualSnapshot) {\n return of(null);\n }\n\n let actualDeep = actualSnapshot;\n while (actualDeep.firstChild) {\n actualDeep = actualDeep.firstChild;\n }\n const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';\n\n const params = {\n [SCREEN_NAME_KEY]: screenName,\n [PAGE_PATH_KEY]: `/${pagePath}`,\n [FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,\n [FIREBASE_SCREEN_NAME_KEY]: screenName,\n [OUTLET_KEY]: activationEnd.snapshot.outlet\n };\n if (title) {\n params[PAGE_TITLE_KEY] = title.getTitle();\n }\n\n let component = actualSnapshot.component;\n if (component) {\n if (component === ɵEmptyOutletComponent) {\n let deepSnapshot = activationEnd.snapshot;\n // TODO when might there be mutple children, different outlets? explore\n while (deepSnapshot.firstChild) {\n deepSnapshot = deepSnapshot.firstChild;\n }\n component = deepSnapshot.component;\n }\n } else {\n component = activationEnd.snapshot.component;\n }\n\n if (typeof component === 'string') {\n return of({ ...params, [SCREEN_CLASS_KEY]: component });\n } else if (component) {\n const componentFactory = componentFactoryResolver.resolveComponentFactory(component);\n return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });\n }\n // lazy loads cause extra activations, ignore\n return of(null);\n }),\n filter(it => !!it),\n map(params => ({\n [FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),\n ...params\n })),\n groupBy(it => it[OUTLET_KEY]),\n mergeMap(it => it.pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n startWith<any, any>(undefined),\n pairwise(),\n map(([prior, current]) =>\n prior ? {\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],\n ...current\n } : current\n ),\n ))\n );\n};\n\n@Injectable()\nexport class ScreenTrackingService implements OnDestroy {\n\n private disposable: Subscription | undefined;\n\n constructor(\n @Optional() router: Router,\n @Optional() title: Title,\n componentFactoryResolver: ComponentFactoryResolver,\n zone: NgZone,\n @Optional() userTrackingService: UserTrackingService,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'screen-tracking');\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (!router || !analytics) { return; }\n zone.runOutsideAngular(() => {\n this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(\n switchMap(async params => {\n if (userTrackingService) { await userTrackingService.initialized; }\n return logEvent(analytics, SCREEN_VIEW_EVENT, params);\n })\n ).subscribe();\n });\n });\n }\n\n ngOnDestroy() {\n if (this.disposable) {\n this.disposable.unsubscribe();\n }\n }\n\n}\n","import {\n APP_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { registerVersion } from 'firebase/app';\nimport { ANALYTICS_PROVIDER_NAME, Analytics, AnalyticsInstances } from './analytics';\nimport { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\nimport { ScreenTrackingService } from './screen-tracking.service';\nimport { UserTrackingService } from './user-tracking.service';\n\nexport const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken<Analytics[]>('angularfire2.analytics-instances');\n\nexport function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[]|undefined, defaultApp: FirebaseApp) {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const defaultAnalytics = ɵgetDefaultInstanceOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME, provided, defaultApp);\n return defaultAnalytics && new Analytics(defaultAnalytics);\n}\n\nexport function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics) {\n return (zone: NgZone, injector: Injector) => {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const analytics = zone.runOutsideAngular(() => fn(injector));\n return new Analytics(analytics);\n };\n}\n\nconst ANALYTICS_INSTANCES_PROVIDER = {\n provide: AnalyticsInstances,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n ]\n};\n\nconst DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {\n provide: Analytics,\n useFactory: defaultAnalyticsInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n }\n ]\n})\nexport class AnalyticsModule {\n constructor(\n @Optional() _screenTrackingService: ScreenTrackingService,\n @Optional() _userTrackingService: UserTrackingService,\n ) {\n registerVersion('angularfire', VERSION.full, 'analytics');\n }\n}\n\nexport function provideAnalytics(fn: (injector: Injector) => FirebaseAnalytics, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'analytics');\n\n return makeEnvironmentProviders([\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n },\n {\n provide: PROVIDED_ANALYTICS_INSTANCES,\n useFactory: analyticsInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","isSupported","ɵisSupportedError","ɵzoneWrap","_getAnalytics","_getGoogleAnalyticsClientId","_initializeAnalytics","_logEvent","_setAnalyticsCollectionEnabled","_setConsent","_setCurrentScreen","_setDefaultEventParameters","_settings","_setUserId","_setUserProperties","ɵEmptyOutletComponent","i1","i3.UserTrackingService","ɵgetDefaultInstanceOf","i1.ScreenTrackingService","i2.UserTrackingService","ɵAngularFireSchedulers"],"mappings":"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"}
@@ -1,176 +1,105 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from2, except, desc) => {
10
- if (from2 && typeof from2 === "object" || typeof from2 === "function") {
11
- for (let key of __getOwnPropNames(from2))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
-
19
- // angular-fire-app-check.mjs
20
- var angular_fire_app_check_exports = {};
21
- __export(angular_fire_app_check_exports, {
22
- AppCheck: () => AppCheck,
23
- AppCheckInstances: () => ɵAppCheckInstances2,
24
- AppCheckModule: () => AppCheckModule,
25
- appCheckInstance$: () => appCheckInstance$,
26
- getLimitedUseToken: () => getLimitedUseToken,
27
- getToken: () => getToken,
28
- initializeAppCheck: () => initializeAppCheck,
29
- onTokenChanged: () => onTokenChanged,
30
- provideAppCheck: () => provideAppCheck,
31
- setTokenAutoRefreshEnabled: () => setTokenAutoRefreshEnabled
32
- });
1
+ import { ɵgetAllInstancesOf as _getAllInstancesOf, ɵAPP_CHECK_PROVIDER_NAME as _APP_CHECK_PROVIDER_NAME, ɵgetDefaultInstanceOf as _getDefaultInstanceOf, ɵAppCheckInstances as _AppCheckInstances, VERSION, ɵAngularFireSchedulers as _AngularFireSchedulers, ɵzoneWrap as _zoneWrap } from '@angular/fire';
2
+ export { ɵAppCheckInstances as AppCheckInstances } from '@angular/fire';
3
+ import { timer, from } from 'rxjs';
4
+ import { concatMap, distinct } from 'rxjs/operators';
5
+ import { isPlatformServer } from '@angular/common';
6
+ import * as i0 from '@angular/core';
7
+ import { InjectionToken, isDevMode, Optional, PLATFORM_ID, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
8
+ import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
9
+ import { registerVersion } from 'firebase/app';
10
+ import { getLimitedUseToken as getLimitedUseToken$1, getToken as getToken$1, initializeAppCheck as initializeAppCheck$1, onTokenChanged as onTokenChanged$1, setTokenAutoRefreshEnabled as setTokenAutoRefreshEnabled$1 } from 'firebase/app-check';
11
+ export * from 'firebase/app-check';
33
12
 
34
- // public_api.mjs
35
- var public_api_exports = {};
36
- __export(public_api_exports, {
37
- AppCheck: () => AppCheck,
38
- AppCheckInstances: () => ɵAppCheckInstances2,
39
- AppCheckModule: () => AppCheckModule,
40
- appCheckInstance$: () => appCheckInstance$,
41
- getLimitedUseToken: () => getLimitedUseToken,
42
- getToken: () => getToken,
43
- initializeAppCheck: () => initializeAppCheck,
44
- onTokenChanged: () => onTokenChanged,
45
- provideAppCheck: () => provideAppCheck,
46
- setTokenAutoRefreshEnabled: () => setTokenAutoRefreshEnabled
47
- });
48
-
49
- // app-check.mjs
50
- import { ɵAPP_CHECK_PROVIDER_NAME, ɵgetAllInstancesOf } from "@angular/fire";
51
- import { from, timer } from "rxjs";
52
- import { concatMap, distinct } from "rxjs/operators";
53
- var AppCheck = class {
54
- constructor(appCheck) {
55
- return appCheck;
56
- }
57
- };
58
- var appCheckInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstancesOf(ɵAPP_CHECK_PROVIDER_NAME))), distinct());
13
+ class AppCheck {
14
+ constructor(appCheck) {
15
+ return appCheck;
16
+ }
17
+ }
18
+ const appCheckInstance$ = timer(0, 300).pipe(concatMap(() => from(_getAllInstancesOf(_APP_CHECK_PROVIDER_NAME))), distinct());
59
19
 
60
- // app-check.module.mjs
61
- import { isPlatformServer } from "@angular/common";
62
- import { InjectionToken, Injector, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode, makeEnvironmentProviders } from "@angular/core";
63
- import { VERSION, ɵAPP_CHECK_PROVIDER_NAME as ɵAPP_CHECK_PROVIDER_NAME2, ɵAngularFireSchedulers, ɵAppCheckInstances, ɵgetDefaultInstanceOf } from "@angular/fire";
64
- import { FirebaseApp, FirebaseApps } from "@angular/fire/app";
65
- import { registerVersion } from "firebase/app";
66
- import * as i0 from "@angular/core";
67
- var PROVIDED_APP_CHECK_INSTANCES = new InjectionToken("angularfire2.app-check-instances");
20
+ const PROVIDED_APP_CHECK_INSTANCES = new InjectionToken('angularfire2.app-check-instances');
68
21
  function defaultAppCheckInstanceFactory(provided, defaultApp) {
69
- const defaultAppCheck = ɵgetDefaultInstanceOf(ɵAPP_CHECK_PROVIDER_NAME2, provided, defaultApp);
70
- return defaultAppCheck && new AppCheck(defaultAppCheck);
22
+ const defaultAppCheck = _getDefaultInstanceOf(_APP_CHECK_PROVIDER_NAME, provided, defaultApp);
23
+ return defaultAppCheck && new AppCheck(defaultAppCheck);
71
24
  }
72
- var LOCALHOSTS = ["localhost", "0.0.0.0", "127.0.0.1"];
73
- var isLocalhost = typeof window !== "undefined" && LOCALHOSTS.includes(window.location.hostname);
25
+ const LOCALHOSTS = ['localhost', '0.0.0.0', '127.0.0.1'];
26
+ const isLocalhost = typeof window !== 'undefined' && LOCALHOSTS.includes(window.location.hostname);
74
27
  function appCheckInstanceFactory(fn) {
75
- return (zone, injector, platformId) => {
76
- if (!isPlatformServer(platformId) && (isDevMode() || isLocalhost)) {
77
- globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN ??= true;
78
- }
79
- const appCheck = zone.runOutsideAngular(() => fn(injector));
80
- return new AppCheck(appCheck);
81
- };
28
+ return (zone, injector, platformId) => {
29
+ // Node should use admin token provider, browser devmode and localhost should use debug token
30
+ if (!isPlatformServer(platformId) && (isDevMode() || isLocalhost)) {
31
+ globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN ??= true;
32
+ }
33
+ const appCheck = zone.runOutsideAngular(() => fn(injector));
34
+ return new AppCheck(appCheck);
35
+ };
82
36
  }
83
- var APP_CHECK_INSTANCES_PROVIDER = {
84
- provide: ɵAppCheckInstances,
85
- deps: [
86
- [new Optional(), PROVIDED_APP_CHECK_INSTANCES]
87
- ]
88
- };
89
- var DEFAULT_APP_CHECK_INSTANCE_PROVIDER = {
90
- provide: AppCheck,
91
- useFactory: defaultAppCheckInstanceFactory,
92
- deps: [
93
- [new Optional(), PROVIDED_APP_CHECK_INSTANCES],
94
- FirebaseApp,
95
- PLATFORM_ID
96
- ]
97
- };
98
- var AppCheckModule = class _AppCheckModule {
99
- constructor() {
100
- registerVersion("angularfire", VERSION.full, "app-check");
101
- }
102
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AppCheckModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
103
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AppCheckModule });
104
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AppCheckModule, providers: [
105
- DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
106
- APP_CHECK_INSTANCES_PROVIDER
107
- ] });
108
- };
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: AppCheckModule, decorators: [{
110
- type: NgModule,
111
- args: [{
112
- providers: [
113
- DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
114
- APP_CHECK_INSTANCES_PROVIDER
37
+ const APP_CHECK_INSTANCES_PROVIDER = {
38
+ provide: _AppCheckInstances,
39
+ deps: [
40
+ [new Optional(), PROVIDED_APP_CHECK_INSTANCES],
115
41
  ]
116
- }]
117
- }], ctorParameters: () => [] });
118
- function provideAppCheck(fn, ...deps) {
119
- registerVersion("angularfire", VERSION.full, "app-check");
120
- return makeEnvironmentProviders([
121
- DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
122
- APP_CHECK_INSTANCES_PROVIDER,
123
- {
124
- provide: PROVIDED_APP_CHECK_INSTANCES,
125
- useFactory: appCheckInstanceFactory(fn),
126
- multi: true,
127
- deps: [
128
- NgZone,
129
- Injector,
42
+ };
43
+ const DEFAULT_APP_CHECK_INSTANCE_PROVIDER = {
44
+ provide: AppCheck,
45
+ useFactory: defaultAppCheckInstanceFactory,
46
+ deps: [
47
+ [new Optional(), PROVIDED_APP_CHECK_INSTANCES],
48
+ FirebaseApp,
130
49
  PLATFORM_ID,
131
- ɵAngularFireSchedulers,
132
- FirebaseApps,
133
- ...deps
134
- ]
50
+ ]
51
+ };
52
+ class AppCheckModule {
53
+ constructor() {
54
+ registerVersion('angularfire', VERSION.full, 'app-check');
135
55
  }
136
- ]);
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AppCheckModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AppCheckModule });
58
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AppCheckModule, providers: [
59
+ DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
60
+ APP_CHECK_INSTANCES_PROVIDER,
61
+ ] });
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AppCheckModule, decorators: [{
64
+ type: NgModule,
65
+ args: [{
66
+ providers: [
67
+ DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
68
+ APP_CHECK_INSTANCES_PROVIDER,
69
+ ]
70
+ }]
71
+ }], ctorParameters: () => [] });
72
+ function provideAppCheck(fn, ...deps) {
73
+ registerVersion('angularfire', VERSION.full, 'app-check');
74
+ return makeEnvironmentProviders([
75
+ DEFAULT_APP_CHECK_INSTANCE_PROVIDER,
76
+ APP_CHECK_INSTANCES_PROVIDER,
77
+ {
78
+ provide: PROVIDED_APP_CHECK_INSTANCES,
79
+ useFactory: appCheckInstanceFactory(fn),
80
+ multi: true,
81
+ deps: [
82
+ NgZone,
83
+ Injector,
84
+ PLATFORM_ID,
85
+ _AngularFireSchedulers,
86
+ FirebaseApps,
87
+ ...deps,
88
+ ]
89
+ }
90
+ ]);
137
91
  }
138
92
 
139
- // firebase.mjs
140
- var firebase_exports = {};
141
- __export(firebase_exports, {
142
- getLimitedUseToken: () => getLimitedUseToken,
143
- getToken: () => getToken,
144
- initializeAppCheck: () => initializeAppCheck,
145
- onTokenChanged: () => onTokenChanged,
146
- setTokenAutoRefreshEnabled: () => setTokenAutoRefreshEnabled
147
- });
148
- __reExport(firebase_exports, app_check_star);
149
- import * as app_check_star from "firebase/app-check";
150
- import { ɵzoneWrap } from "@angular/fire";
151
- import { getLimitedUseToken as _getLimitedUseToken, getToken as _getToken, initializeAppCheck as _initializeAppCheck, onTokenChanged as _onTokenChanged, setTokenAutoRefreshEnabled as _setTokenAutoRefreshEnabled } from "firebase/app-check";
152
- var getLimitedUseToken = ɵzoneWrap(_getLimitedUseToken, true);
153
- var getToken = ɵzoneWrap(_getToken, true);
154
- var initializeAppCheck = ɵzoneWrap(_initializeAppCheck, true);
155
- var onTokenChanged = ɵzoneWrap(_onTokenChanged, true);
156
- var setTokenAutoRefreshEnabled = ɵzoneWrap(_setTokenAutoRefreshEnabled, true);
93
+ // DO NOT MODIFY, this file is autogenerated by tools/build.ts
94
+ const getLimitedUseToken = _zoneWrap(getLimitedUseToken$1, true);
95
+ const getToken = _zoneWrap(getToken$1, true);
96
+ const initializeAppCheck = _zoneWrap(initializeAppCheck$1, true);
97
+ const onTokenChanged = _zoneWrap(onTokenChanged$1, true);
98
+ const setTokenAutoRefreshEnabled = _zoneWrap(setTokenAutoRefreshEnabled$1, true);
157
99
 
158
- // public_api.mjs
159
- __reExport(public_api_exports, firebase_exports);
160
- import { ɵAppCheckInstances as ɵAppCheckInstances2 } from "@angular/fire";
100
+ /**
101
+ * Generated bundle index. Do not edit.
102
+ */
161
103
 
162
- // angular-fire-app-check.mjs
163
- __reExport(angular_fire_app_check_exports, public_api_exports);
164
- export {
165
- AppCheck,
166
- ɵAppCheckInstances2 as AppCheckInstances,
167
- AppCheckModule,
168
- appCheckInstance$,
169
- getLimitedUseToken,
170
- getToken,
171
- initializeAppCheck,
172
- onTokenChanged,
173
- provideAppCheck,
174
- setTokenAutoRefreshEnabled
175
- };
104
+ export { AppCheck, AppCheckModule, appCheckInstance$, getLimitedUseToken, getToken, initializeAppCheck, onTokenChanged, provideAppCheck, setTokenAutoRefreshEnabled };
176
105
  //# sourceMappingURL=angular-fire-app-check.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/app-check/angular-fire-app-check.ts", "../../../src/app-check/public_api.ts", "../../../src/app-check/app-check.ts", "../../../src/app-check/app-check.module.ts", "../../../src/app-check/firebase.ts"],
4
- "sourcesContent": ["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n", "export { AppCheck, appCheckInstance$ } from './app-check';\nexport { ɵAppCheckInstances as AppCheckInstances } from '@angular/fire';\nexport { provideAppCheck, AppCheckModule } from './app-check.module';\nexport * from './firebase';\n", "import { ɵAPP_CHECK_PROVIDER_NAME, ɵgetAllInstancesOf } from '@angular/fire';\nimport { AppCheck as FirebaseAppCheck } from 'firebase/app-check';\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// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AppCheck extends FirebaseAppCheck {}\n\nexport class AppCheck {\n constructor(appCheck: FirebaseAppCheck) {\n return appCheck;\n }\n}\n\nexport const appCheckInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAppCheck>(ɵAPP_CHECK_PROVIDER_NAME))),\n distinct(),\n);\n", "import { isPlatformServer } from '@angular/common';\nimport {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n PLATFORM_ID,\n isDevMode,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAPP_CHECK_PROVIDER_NAME, ɵAngularFireSchedulers, ɵAppCheckInstances, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheck as FirebaseAppCheck } from 'firebase/app-check';\nimport { AppCheck } from './app-check';\n\nexport const PROVIDED_APP_CHECK_INSTANCES = new InjectionToken<AppCheck[]>('angularfire2.app-check-instances');\n\nexport function defaultAppCheckInstanceFactory(provided: FirebaseAppCheck[]|undefined, defaultApp: FirebaseApp) {\n const defaultAppCheck = ɵgetDefaultInstanceOf<FirebaseAppCheck>(ɵAPP_CHECK_PROVIDER_NAME, provided, defaultApp);\n return defaultAppCheck && new AppCheck(defaultAppCheck);\n}\n\nconst LOCALHOSTS = ['localhost', '0.0.0.0', '127.0.0.1'];\nconst isLocalhost = typeof window !== 'undefined' && LOCALHOSTS.includes(window.location.hostname);\n\nexport function appCheckInstanceFactory(fn: (injector: Injector) => FirebaseAppCheck) {\n return (zone: NgZone, injector: Injector, platformId: unknown) => {\n // Node should use admin token provider, browser devmode and localhost should use debug token\n if (!isPlatformServer(platformId) && (isDevMode() || isLocalhost)) {\n globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN ??= true;\n }\n const appCheck = zone.runOutsideAngular(() => fn(injector));\n return new AppCheck(appCheck);\n };\n}\n\nconst APP_CHECK_INSTANCES_PROVIDER = {\n provide: ɵAppCheckInstances,\n deps: [\n [new Optional(), PROVIDED_APP_CHECK_INSTANCES ],\n ]\n};\n\nconst DEFAULT_APP_CHECK_INSTANCE_PROVIDER = {\n provide: AppCheck,\n useFactory: defaultAppCheckInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_APP_CHECK_INSTANCES ],\n FirebaseApp,\n PLATFORM_ID,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_APP_CHECK_INSTANCE_PROVIDER,\n APP_CHECK_INSTANCES_PROVIDER,\n ]\n})\nexport class AppCheckModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'app-check');\n }\n}\n\nexport function provideAppCheck(fn: (injector: Injector) => FirebaseAppCheck, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'app-check');\n return makeEnvironmentProviders([\n DEFAULT_APP_CHECK_INSTANCE_PROVIDER,\n APP_CHECK_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_APP_CHECK_INSTANCES,\n useFactory: appCheckInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n PLATFORM_ID,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ]\n }\n ]);\n}\n", "// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/app-check';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getLimitedUseToken as _getLimitedUseToken,\n getToken as _getToken,\n initializeAppCheck as _initializeAppCheck,\n onTokenChanged as _onTokenChanged,\n setTokenAutoRefreshEnabled as _setTokenAutoRefreshEnabled\n} from 'firebase/app-check';\n\nexport const getLimitedUseToken = ɵzoneWrap(_getLimitedUseToken, true);\nexport const getToken = ɵzoneWrap(_getToken, true);\nexport const initializeAppCheck = ɵzoneWrap(_initializeAppCheck, true);\nexport const onTokenChanged = ɵzoneWrap(_onTokenChanged, true);\nexport const setTokenAutoRefreshEnabled = ɵzoneWrap(_setTokenAutoRefreshEnabled, true);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;2BAAAA;EAAA;;;;;;;;;;;ACAA;;;2BAAAC;EAAA;;;;;;;;;;;ACAA,SAAS,0BAA0B,0BAA0B;AAE7D,SAAS,MAAM,aAAa;AAC5B,SAAS,WAAW,gBAAgB;AAM9B,IAAO,WAAP,MAAe;EACnB,YAAY,UAA0B;AACpC,WAAO;EACT;;AAGK,IAAM,oBAAoB,MAAM,GAAG,GAAG,EAAE,KAC7C,UAAU,MAAM,KAAK,mBAAqC,wBAAwB,CAAC,CAAC,GACpF,SAAQ,CAAE;;;ACjBZ,SAAS,wBAAwB;AACjC,SAEE,gBACA,UACA,UACA,QACA,UACA,aACA,WACA,gCACK;AACP,SAAS,SAAS,4BAAAC,2BAA0B,wBAAwB,oBAAoB,6BAA6B;AACrH,SAAS,aAAa,oBAAoB;AAC1C,SAAS,uBAAuB;;AAIzB,IAAM,+BAA+B,IAAI,eAA2B,kCAAkC;AAEvG,SAAU,+BAA+B,UAAwC,YAAuB;AAC5G,QAAM,kBAAkB,sBAAwCA,2BAA0B,UAAU,UAAU;AAC9G,SAAO,mBAAmB,IAAI,SAAS,eAAe;AACxD;AAEA,IAAM,aAAa,CAAC,aAAa,WAAW,WAAW;AACvD,IAAM,cAAc,OAAO,WAAW,eAAe,WAAW,SAAS,OAAO,SAAS,QAAQ;AAE3F,SAAU,wBAAwB,IAA4C;AACjF,SAAO,CAAC,MAAc,UAAoB,eAAuB;AAEhE,QAAI,CAAC,iBAAiB,UAAU,MAAM,UAAS,KAAM,cAAc;AACjE,iBAAW,kCAAkC;IAC/C;AACA,UAAM,WAAW,KAAK,kBAAkB,MAAM,GAAG,QAAQ,CAAC;AAC1D,WAAO,IAAI,SAAS,QAAQ;EAC9B;AACF;AAEA,IAAM,+BAA+B;EACnC,SAAS;EACT,MAAM;IACJ,CAAC,IAAI,SAAQ,GAAI,4BAA4B;;;AAIjD,IAAM,sCAAsC;EAC1C,SAAS;EACT,YAAY;EACZ,MAAM;IACJ,CAAC,IAAI,SAAQ,GAAI,4BAA4B;IAC7C;IACA;;;AAUE,IAAO,iBAAP,MAAO,gBAAc;EACzB,cAAA;AACE,oBAAgB,eAAe,QAAQ,MAAM,WAAW;EAC1D;0GAHW,iBAAc,MAAA,CAAA,GAAA,QAAA,mBAAA,SAAA,CAAA;2GAAd,gBAAc,CAAA;2GAAd,iBAAc,WALd;IACT;IACA;IACD,CAAA;;gGAEU,gBAAc,YAAA,CAAA;QAN1B;SAAS;IACR,WAAW;MACT;MACA;;GAEH;;AAOK,SAAU,gBAAgB,OAAiD,MAAW;AAC1F,kBAAgB,eAAe,QAAQ,MAAM,WAAW;AACxD,SAAO,yBAAyB;IAC9B;IACA;IACA;MACE,SAAS;MACT,YAAY,wBAAwB,EAAE;MACtC,OAAO;MACP,MAAM;QACJ;QACA;QACA;QACA;QACA;QACA,GAAG;;;GAGR;AACH;;;ACvFA;;;;;;;;AACA;gCAAc;AACd,SAAS,iBAAiB;AAC1B,SACE,sBAAsB,qBACtB,YAAY,WACZ,sBAAsB,qBACtB,kBAAkB,iBAClB,8BAA8B,mCACzB;AAEA,IAAM,qBAAqB,UAAU,qBAAqB,IAAI;AAC9D,IAAM,WAAW,UAAU,WAAW,IAAI;AAC1C,IAAM,qBAAqB,UAAU,qBAAqB,IAAI;AAC9D,IAAM,iBAAiB,UAAU,iBAAiB,IAAI;AACtD,IAAM,6BAA6B,UAAU,6BAA6B,IAAI;;;AHZrF,+BAAc;AAFd,SAA+B,sBAAtBC,2BAA+C;;;ADGxD,2CAAc;",
6
- "names": ["ɵAppCheckInstances", "ɵAppCheckInstances", "ɵAPP_CHECK_PROVIDER_NAME", "ɵAppCheckInstances"]
7
- }
1
+ {"version":3,"file":"angular-fire-app-check.mjs","sources":["../../../src/app-check/app-check.ts","../../../src/app-check/app-check.module.ts","../../../src/app-check/firebase.ts","../../../src/app-check/angular-fire-app-check.ts"],"sourcesContent":["import { ɵAPP_CHECK_PROVIDER_NAME, ɵgetAllInstancesOf } from '@angular/fire';\nimport { AppCheck as FirebaseAppCheck } from 'firebase/app-check';\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// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AppCheck extends FirebaseAppCheck {}\n\nexport class AppCheck {\n constructor(appCheck: FirebaseAppCheck) {\n return appCheck;\n }\n}\n\nexport const appCheckInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAppCheck>(ɵAPP_CHECK_PROVIDER_NAME))),\n distinct(),\n);\n","import { isPlatformServer } from '@angular/common';\nimport {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n PLATFORM_ID,\n isDevMode,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAPP_CHECK_PROVIDER_NAME, ɵAngularFireSchedulers, ɵAppCheckInstances, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheck as FirebaseAppCheck } from 'firebase/app-check';\nimport { AppCheck } from './app-check';\n\nexport const PROVIDED_APP_CHECK_INSTANCES = new InjectionToken<AppCheck[]>('angularfire2.app-check-instances');\n\nexport function defaultAppCheckInstanceFactory(provided: FirebaseAppCheck[]|undefined, defaultApp: FirebaseApp) {\n const defaultAppCheck = ɵgetDefaultInstanceOf<FirebaseAppCheck>(ɵAPP_CHECK_PROVIDER_NAME, provided, defaultApp);\n return defaultAppCheck && new AppCheck(defaultAppCheck);\n}\n\nconst LOCALHOSTS = ['localhost', '0.0.0.0', '127.0.0.1'];\nconst isLocalhost = typeof window !== 'undefined' && LOCALHOSTS.includes(window.location.hostname);\n\nexport function appCheckInstanceFactory(fn: (injector: Injector) => FirebaseAppCheck) {\n return (zone: NgZone, injector: Injector, platformId: unknown) => {\n // Node should use admin token provider, browser devmode and localhost should use debug token\n if (!isPlatformServer(platformId) && (isDevMode() || isLocalhost)) {\n globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN ??= true;\n }\n const appCheck = zone.runOutsideAngular(() => fn(injector));\n return new AppCheck(appCheck);\n };\n}\n\nconst APP_CHECK_INSTANCES_PROVIDER = {\n provide: ɵAppCheckInstances,\n deps: [\n [new Optional(), PROVIDED_APP_CHECK_INSTANCES ],\n ]\n};\n\nconst DEFAULT_APP_CHECK_INSTANCE_PROVIDER = {\n provide: AppCheck,\n useFactory: defaultAppCheckInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_APP_CHECK_INSTANCES ],\n FirebaseApp,\n PLATFORM_ID,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_APP_CHECK_INSTANCE_PROVIDER,\n APP_CHECK_INSTANCES_PROVIDER,\n ]\n})\nexport class AppCheckModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'app-check');\n }\n}\n\nexport function provideAppCheck(fn: (injector: Injector) => FirebaseAppCheck, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'app-check');\n return makeEnvironmentProviders([\n DEFAULT_APP_CHECK_INSTANCE_PROVIDER,\n APP_CHECK_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_APP_CHECK_INSTANCES,\n useFactory: appCheckInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n PLATFORM_ID,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/app-check';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getLimitedUseToken as _getLimitedUseToken,\n getToken as _getToken,\n initializeAppCheck as _initializeAppCheck,\n onTokenChanged as _onTokenChanged,\n setTokenAutoRefreshEnabled as _setTokenAutoRefreshEnabled\n} from 'firebase/app-check';\n\nexport const getLimitedUseToken = ɵzoneWrap(_getLimitedUseToken, true);\nexport const getToken = ɵzoneWrap(_getToken, true);\nexport const initializeAppCheck = ɵzoneWrap(_initializeAppCheck, true);\nexport const onTokenChanged = ɵzoneWrap(_onTokenChanged, true);\nexport const setTokenAutoRefreshEnabled = ɵzoneWrap(_setTokenAutoRefreshEnabled, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵAPP_CHECK_PROVIDER_NAME","ɵgetDefaultInstanceOf","ɵAppCheckInstances","ɵAngularFireSchedulers","ɵzoneWrap","_getLimitedUseToken","_getToken","_initializeAppCheck","_onTokenChanged","_setTokenAutoRefreshEnabled"],"mappings":"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"}