@angular/fire 19.0.0-canary.e18d8da → 19.0.0-canary.e567618

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 (47) hide show
  1. package/README.md +9 -28
  2. package/analytics/analytics.module.d.ts +2 -2
  3. package/analytics/firebase.d.ts +2 -2
  4. package/compat/auth/auth.d.ts +1 -0
  5. package/compat/database/database.d.ts +1 -0
  6. package/compat/database/list/create-reference.d.ts +2 -1
  7. package/compat/database/object/create-reference.d.ts +2 -1
  8. package/compat/firestore/collection/collection.d.ts +1 -0
  9. package/compat/firestore/collection-group/collection-group.d.ts +1 -0
  10. package/compat/firestore/document/document.d.ts +1 -0
  11. package/compat/firestore/firestore.d.ts +1 -0
  12. package/compat/remote-config/remote-config.d.ts +1 -0
  13. package/compat/storage/ref.d.ts +2 -1
  14. package/compat/storage/storage.d.ts +1 -0
  15. package/fesm2022/angular-fire-analytics.mjs +14 -41
  16. package/fesm2022/angular-fire-analytics.mjs.map +1 -1
  17. package/fesm2022/angular-fire-auth.mjs +1 -1
  18. package/fesm2022/angular-fire-auth.mjs.map +1 -1
  19. package/fesm2022/angular-fire-compat-analytics.mjs +2 -2
  20. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -1
  21. package/fesm2022/angular-fire-compat-auth.mjs +3 -2
  22. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
  23. package/fesm2022/angular-fire-compat-database.mjs +12 -11
  24. package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
  25. package/fesm2022/angular-fire-compat-firestore.mjs +18 -14
  26. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
  27. package/fesm2022/angular-fire-compat-remote-config.mjs +3 -2
  28. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
  29. package/fesm2022/angular-fire-compat-storage.mjs +9 -8
  30. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
  31. package/fesm2022/angular-fire-messaging.mjs +11 -38
  32. package/fesm2022/angular-fire-messaging.mjs.map +1 -1
  33. package/fesm2022/angular-fire-remote-config.mjs +12 -39
  34. package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
  35. package/fesm2022/angular-fire.mjs +75 -15
  36. package/fesm2022/angular-fire.mjs.map +1 -1
  37. package/messaging/firebase.d.ts +2 -2
  38. package/messaging/messaging.module.d.ts +2 -2
  39. package/package.json +6 -6
  40. package/remote-config/firebase.d.ts +2 -2
  41. package/remote-config/remote-config.module.d.ts +2 -2
  42. package/analytics/is-analytics-supported-factory.d.ts +0 -4
  43. package/analytics/overrides.d.ts +0 -1
  44. package/messaging/is-messaging-supported-factory.d.ts +0 -4
  45. package/messaging/overrides.d.ts +0 -1
  46. package/remote-config/is-remote-config-supported-factory.d.ts +0 -4
  47. package/remote-config/overrides.d.ts +0 -1
package/README.md CHANGED
@@ -33,9 +33,9 @@ export const appConfig: ApplicationConfig = {
33
33
  ```
34
34
 
35
35
  ```ts
36
+ import { AsyncPipe } from '@angular/common';
36
37
  import { inject } from '@angular/core';
37
38
  import { Firestore, collectionData, collection } from '@angular/fire/firestore';
38
- import { Observable } from 'rxjs';
39
39
 
40
40
  interface Item {
41
41
  name: string,
@@ -44,7 +44,6 @@ interface Item {
44
44
 
45
45
  @Component({
46
46
  selector: 'app-root',
47
- standalone: true,
48
47
  template: `
49
48
  <ul>
50
49
  @for (item of (item$ | async); track item) {
@@ -53,30 +52,16 @@ interface Item {
53
52
  </li>
54
53
  }
55
54
  </ul>
56
- `
55
+ `,
56
+ imports: [AsyncPipe]
57
57
  })
58
58
  export class AppComponent {
59
- item$: Observable<Item[]>;
60
- firestore: Firestore = inject(Firestore);
61
-
62
- constructor() {
63
- const itemCollection = collection(this.firestore, 'items');
64
- this.item$ = collectionData<Item>(itemCollection);
65
- }
59
+ firestore = inject(Firestore);
60
+ itemCollection = collection(this.firestore, 'items');
61
+ item$ = collectionData<Item>(itemCollection);
66
62
  }
67
63
  ```
68
64
 
69
- ### Polyfills
70
-
71
- Neither AngularFire nor Firebase ship with polyfills. To have compatibility across a wide-range of environments, we suggest the following polyfills be added to your application:
72
-
73
- | API | Environments | Suggested Polyfill | License |
74
- |-----|--------------|--------------------|---------|
75
- | Various ES5+ features | Safari &lt; 10 | [`core-js/stable`](https://github.com/zloirock/core-js#readme) | MIT |
76
- | `globalThis` | [Chrome &lt; 71<br>Safari &lt; 12.1<br>iOS &lt; 12.2<br>Node &lt; 12](https://caniuse.com/mdn-javascript_builtins_globalthis) | [`globalThis`](https://github.com/es-shims/globalThis#readme) | MIT |
77
- | `Proxy` | [Safari &lt; 10](https://caniuse.com/proxy) | [`proxy-polyfill`](https://github.com/GoogleChrome/proxy-polyfill#readme) | Apache 2.0 |
78
- | `fetch` | [Safari &lt; 10.1<br>iOS &lt; 10.3](https://caniuse.com/fetch) | [`cross-fetch`](https://github.com/lquixada/cross-fetch#readme) | MIT |
79
-
80
65
  ## Resources
81
66
 
82
67
  [Quickstart](docs/install-and-setup.md) - Get your first application up and running by following our quickstart guide.
@@ -85,15 +70,11 @@ Neither AngularFire nor Firebase ship with polyfills. To have compatibility acro
85
70
 
86
71
  [Stackblitz Template](https://stackblitz.com/edit/angular-fire-start) - Remember to set your Firebase configuration in `app/app.module.ts`.
87
72
 
88
- [Upgrading to v7.0? Check out our guide.](docs/version-7-upgrade.md)
89
-
90
- ### Sample apps
73
+ [Upgrading from v6.0? Check out our guide.](docs/version-7-upgrade.md)
91
74
 
92
- We have three sample apps in this repository:
75
+ ### Sample app
93
76
 
94
- 1. [`samples/compat`](samples/compat) a kitchen sink application that demonstrates use of the "compatibility" API
95
- 1. [`samples/modular`](samples/modular) a kitchen sink application that demonstrates the new tree-shakable API
96
- 1. [`samples/advanced`](samples/advanced) the same app as `samples/modular` but demonstrates more advanced concepts such as Angular Universal state-transfer, dynamically importing Firebase feature modules, and Firestore data bundling.
77
+ The [`sample`](sample) folder contains a kitchen sink application that demonstrates use of the "modular" API, in a zoneless server-rendered application, with all the bells and whistles.
97
78
 
98
79
  ### Having troubles?
99
80
 
@@ -6,8 +6,8 @@ import { ScreenTrackingService } from './screen-tracking.service';
6
6
  import { UserTrackingService } from './user-tracking.service';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const PROVIDED_ANALYTICS_INSTANCES: InjectionToken<Analytics[]>;
9
- export declare function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[] | undefined, defaultApp: FirebaseApp): Analytics;
10
- export declare function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics): (zone: NgZone, injector: Injector) => Analytics;
9
+ export declare function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[] | undefined, defaultApp: FirebaseApp, platformId: object): Analytics;
10
+ export declare function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics): (zone: NgZone, injector: Injector, platformId: object) => Analytics;
11
11
  export declare class AnalyticsModule {
12
12
  constructor(_screenTrackingService: ScreenTrackingService, _userTrackingService: UserTrackingService);
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsModule, [{ optional: true; }, { optional: true; }]>;
@@ -1,9 +1,9 @@
1
1
  export * from 'firebase/analytics';
2
- import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters, setUserId as _setUserId, setUserProperties as _setUserProperties, settings as _settings } from 'firebase/analytics';
3
- export { isSupported } from './overrides';
2
+ import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, isSupported as _isSupported, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters, setUserId as _setUserId, setUserProperties as _setUserProperties, settings as _settings } from 'firebase/analytics';
4
3
  export declare const getAnalytics: typeof _getAnalytics;
5
4
  export declare const getGoogleAnalyticsClientId: typeof _getGoogleAnalyticsClientId;
6
5
  export declare const initializeAnalytics: typeof _initializeAnalytics;
6
+ export declare const isSupported: typeof _isSupported;
7
7
  export declare const logEvent: typeof _logEvent;
8
8
  export declare const setAnalyticsCollectionEnabled: typeof _setAnalyticsCollectionEnabled;
9
9
  export declare const setConsent: typeof _setConsent;
@@ -18,6 +18,7 @@ export declare const USE_DEVICE_LANGUAGE: InjectionToken<boolean>;
18
18
  export declare const PERSISTENCE: InjectionToken<string>;
19
19
  export declare const ɵauthFactory: (app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments | null, tenantId: string, languageCode: string | null, useDeviceLanguage: boolean | null, settings: firebase.auth.AuthSettings | null, persistence: string | null) => firebase.auth.Auth;
20
20
  export declare class AngularFireAuth {
21
+ private readonly injector;
21
22
  /**
22
23
  * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out
23
24
  */
@@ -15,6 +15,7 @@ export declare const USE_EMULATOR: InjectionToken<[host: string, port: number, o
15
15
  export declare class AngularFireDatabase {
16
16
  schedulers: ɵAngularFireSchedulers;
17
17
  readonly database: firebase.database.Database;
18
+ private readonly injector;
18
19
  constructor(options: FirebaseOptions, name: string | null | undefined, databaseURL: string | null, platformId: Object, zone: NgZone, schedulers: ɵAngularFireSchedulers, _useEmulator: any, // tuple isn't working here
19
20
  auth: AngularFireAuth, useAuthEmulator: any, authSettings: any, // can't use firebase.auth.AuthSettings here
20
21
  tenantId: string | null, languageCode: string | null, useDeviceLanguage: boolean | null, persistence: string | null, _appCheckInstances: AppCheckInstances);
@@ -1,3 +1,4 @@
1
+ import { Injector } from '@angular/core';
1
2
  import { AngularFireDatabase } from '../database';
2
3
  import { AngularFireList, DatabaseQuery } from '../interfaces';
3
- export declare function createListReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireList<T>;
4
+ export declare function createListReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase, injector?: Injector): AngularFireList<T>;
@@ -1,3 +1,4 @@
1
+ import { Injector } from '@angular/core';
1
2
  import { AngularFireDatabase } from '../database';
2
3
  import { AngularFireObject, DatabaseQuery } from '../interfaces';
3
- export declare function createObjectReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireObject<T>;
4
+ export declare function createObjectReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase, injector?: Injector): AngularFireObject<T>;
@@ -31,6 +31,7 @@ export declare class AngularFirestoreCollection<T = DocumentData> {
31
31
  readonly ref: CollectionReference<T>;
32
32
  private readonly query;
33
33
  private readonly afs;
34
+ private readonly injector;
34
35
  /**
35
36
  * The constructor takes in a CollectionReference and Query to provide wrapper methods
36
37
  * for data operations and data streaming.
@@ -23,6 +23,7 @@ import { DocumentChangeAction, DocumentChangeType, DocumentData, Query } from '.
23
23
  export declare class AngularFirestoreCollectionGroup<T = DocumentData> {
24
24
  private readonly query;
25
25
  private readonly afs;
26
+ private readonly injector;
26
27
  /**
27
28
  * The constructor takes in a CollectionGroupQuery to provide wrapper methods
28
29
  * for data operations and data streaming.
@@ -28,6 +28,7 @@ import { Action, DocumentData, DocumentReference, DocumentSnapshot, QueryFn, Set
28
28
  export declare class AngularFirestoreDocument<T = DocumentData> {
29
29
  ref: DocumentReference<T>;
30
30
  private afs;
31
+ private readonly injector;
31
32
  /**
32
33
  * The constructor takes in a DocumentReference to provide wrapper methods
33
34
  * for data operations, data streaming, and Symbol.observable.
@@ -93,6 +93,7 @@ export declare class AngularFirestore {
93
93
  schedulers: ɵAngularFireSchedulers;
94
94
  readonly firestore: firebase.firestore.Firestore;
95
95
  readonly persistenceEnabled$: Observable<boolean>;
96
+ private readonly ngZone;
96
97
  /**
97
98
  * Each Feature of AngularFire has a FirebaseApp injected. This way we
98
99
  * don't rely on the main Firebase App instance and we can create named
@@ -34,6 +34,7 @@ export declare class AngularFireRemoteConfig {
34
34
  readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;
35
35
  readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;
36
36
  readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;
37
+ private readonly injector;
37
38
  constructor(options: FirebaseOptions, name: string | null | undefined, settings: Settings | null, defaultConfig: ConfigTemplate | null, zone: NgZone, schedulers: ɵAngularFireSchedulers, platformId: Object);
38
39
  static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireRemoteConfig, [null, { optional: true; }, { optional: true; }, { optional: true; }, null, null, null]>;
39
40
  static ɵprov: i0.ɵɵInjectableDeclaration<AngularFireRemoteConfig>;
@@ -1,3 +1,4 @@
1
+ import { Injector } from '@angular/core';
1
2
  import { Observable } from 'rxjs';
2
3
  import { ListOptions, ListResult, Reference, SettableMetadata, UploadMetadata } from './interfaces';
3
4
  import { AngularFireUploadTask } from './task';
@@ -16,4 +17,4 @@ export interface AngularFireStorageReference {
16
17
  * Create an AngularFire wrapped Storage Reference. This object
17
18
  * creates observable methods from promise based methods.
18
19
  */
19
- export declare function createStorageRef(ref: Reference): AngularFireStorageReference;
20
+ export declare function createStorageRef(ref: Reference, injector?: Injector): AngularFireStorageReference;
@@ -21,6 +21,7 @@ export declare const USE_EMULATOR: InjectionToken<[host: string, port: number, o
21
21
  */
22
22
  export declare class AngularFireStorage {
23
23
  readonly storage: firebase.storage.Storage;
24
+ private readonly injector;
24
25
  constructor(options: FirebaseOptions, name: string | null | undefined, storageBucket: string | null, platformId: Object, zone: NgZone, schedulers: ɵAngularFireSchedulers, maxUploadRetryTime: any, maxOperationRetryTime: any, _useEmulator: any, _appCheckInstances: AppCheckInstances);
25
26
  ref(path: string): import("./ref").AngularFireStorageReference;
26
27
  refFromURL(path: string): import("./ref").AngularFireStorageReference;
@@ -1,15 +1,16 @@
1
- import { ɵgetAllInstancesOf as _getAllInstancesOf, ɵisSupportedError as _isSupportedError, ɵzoneWrap as _zoneWrap, VERSION, ɵgetDefaultInstanceOf as _getDefaultInstanceOf, ɵAngularFireSchedulers as _AngularFireSchedulers } from '@angular/fire';
1
+ import { ɵgetAllInstancesOf as _getAllInstancesOf, ɵzoneWrap as _zoneWrap, VERSION, ɵgetDefaultInstanceOf as _getDefaultInstanceOf, ɵAngularFireSchedulers as _AngularFireSchedulers } from '@angular/fire';
2
2
  import { timer, from, of } from 'rxjs';
3
3
  import { concatMap, distinct, filter, switchMap, map, groupBy, mergeMap, distinctUntilChanged, startWith, pairwise } from 'rxjs/operators';
4
+ import { isPlatformBrowser } from '@angular/common';
4
5
  import * as i0 from '@angular/core';
5
- import { Injectable, Optional, InjectionToken, APP_INITIALIZER, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
6
+ import { Injectable, Optional, InjectionToken, PLATFORM_ID, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
6
7
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
7
8
  import { registerVersion } from 'firebase/app';
8
- import { isSupported as isSupported$1, getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1, settings as settings$1 } from 'firebase/analytics';
9
- export * from 'firebase/analytics';
10
9
  import * as i2 from '@angular/platform-browser';
11
10
  import * as i1$1 from '@angular/router';
12
11
  import { ActivationEnd, ɵEmptyOutletComponent as _EmptyOutletComponent } from '@angular/router';
12
+ import { getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, isSupported as isSupported$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1, settings as settings$1 } from 'firebase/analytics';
13
+ export * from 'firebase/analytics';
13
14
  import * as i1 from '@angular/fire/auth';
14
15
  import { authState } from '@angular/fire/auth';
15
16
 
@@ -26,26 +27,11 @@ class AnalyticsInstances {
26
27
  }
27
28
  const analyticInstance$ = timer(0, 300).pipe(concatMap(() => from(_getAllInstancesOf(ANALYTICS_PROVIDER_NAME))), distinct());
28
29
 
29
- const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
30
- const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
31
- globalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported$1().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it).catch(() => globalThis[isAnalyticsSupportedValueSymbol] = false);
32
- const isAnalyticsSupportedFactory = {
33
- async: () => globalThis[isAnalyticsSupportedPromiseSymbol],
34
- sync: () => {
35
- const ret = globalThis[isAnalyticsSupportedValueSymbol];
36
- if (ret === undefined) {
37
- throw new Error(_isSupportedError('Analytics'));
38
- }
39
- return ret;
40
- }
41
- };
42
-
43
- const isSupported = isAnalyticsSupportedFactory.async;
44
-
45
30
  // DO NOT MODIFY, this file is autogenerated by tools/build.ts
46
31
  const getAnalytics = _zoneWrap(getAnalytics$1, true);
47
32
  const getGoogleAnalyticsClientId = _zoneWrap(getGoogleAnalyticsClientId$1, true);
48
33
  const initializeAnalytics = _zoneWrap(initializeAnalytics$1, true);
34
+ const isSupported = _zoneWrap(isSupported$1, true);
49
35
  const logEvent = _zoneWrap(logEvent$1, true);
50
36
  const setAnalyticsCollectionEnabled = _zoneWrap(setAnalyticsCollectionEnabled$1, true);
51
37
  const setConsent = _zoneWrap(setConsent$1, true);
@@ -226,16 +212,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
226
212
  }] }, { type: i0.Injector }] });
227
213
 
228
214
  const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken('angularfire2.analytics-instances');
229
- function defaultAnalyticsInstanceFactory(provided, defaultApp) {
230
- if (!isAnalyticsSupportedFactory.sync()) {
215
+ function defaultAnalyticsInstanceFactory(provided, defaultApp, platformId) {
216
+ if (!isPlatformBrowser(platformId)) {
231
217
  return null;
232
218
  }
233
219
  const defaultAnalytics = _getDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp);
234
220
  return defaultAnalytics && new Analytics(defaultAnalytics);
235
221
  }
236
222
  function analyticsInstanceFactory(fn) {
237
- return (zone, injector) => {
238
- if (!isAnalyticsSupportedFactory.sync()) {
223
+ return (zone, injector, platformId) => {
224
+ if (!isPlatformBrowser(platformId)) {
239
225
  return null;
240
226
  }
241
227
  const analytics = zone.runOutsideAngular(() => fn(injector));
@@ -254,6 +240,7 @@ const DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {
254
240
  deps: [
255
241
  [new Optional(), PROVIDED_ANALYTICS_INSTANCES],
256
242
  FirebaseApp,
243
+ PLATFORM_ID,
257
244
  ]
258
245
  };
259
246
  class AnalyticsModule {
@@ -264,12 +251,7 @@ class AnalyticsModule {
264
251
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: AnalyticsModule });
265
252
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AnalyticsModule, providers: [
266
253
  DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
267
- ANALYTICS_INSTANCES_PROVIDER,
268
- {
269
- provide: APP_INITIALIZER,
270
- useValue: isAnalyticsSupportedFactory.async,
271
- multi: true,
272
- }
254
+ ANALYTICS_INSTANCES_PROVIDER
273
255
  ] });
274
256
  }
275
257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AnalyticsModule, decorators: [{
@@ -277,12 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
277
259
  args: [{
278
260
  providers: [
279
261
  DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
280
- ANALYTICS_INSTANCES_PROVIDER,
281
- {
282
- provide: APP_INITIALIZER,
283
- useValue: isAnalyticsSupportedFactory.async,
284
- multi: true,
285
- }
262
+ ANALYTICS_INSTANCES_PROVIDER
286
263
  ]
287
264
  }]
288
265
  }], ctorParameters: () => [{ type: ScreenTrackingService, decorators: [{
@@ -295,11 +272,6 @@ function provideAnalytics(fn, ...deps) {
295
272
  return makeEnvironmentProviders([
296
273
  DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
297
274
  ANALYTICS_INSTANCES_PROVIDER,
298
- {
299
- provide: APP_INITIALIZER,
300
- useValue: isAnalyticsSupportedFactory.async,
301
- multi: true,
302
- },
303
275
  {
304
276
  provide: PROVIDED_ANALYTICS_INSTANCES,
305
277
  useFactory: analyticsInstanceFactory(fn),
@@ -307,6 +279,7 @@ function provideAnalytics(fn, ...deps) {
307
279
  deps: [
308
280
  NgZone,
309
281
  Injector,
282
+ PLATFORM_ID,
310
283
  _AngularFireSchedulers,
311
284
  FirebaseApps,
312
285
  ...deps,
@@ -1 +1 @@
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 setUserId as _setUserId,\n setUserProperties as _setUserProperties,\n settings as _settings\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 setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\nexport const settings = ɵzoneWrap(_settings, 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","_setUserId","_setUserProperties","_settings","ɵEmptyOutletComponent","i1","i3.UserTrackingService","ɵgetDefaultInstanceOf","i1.ScreenTrackingService","i2.UserTrackingService","ɵAngularFireSchedulers"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-analytics.mjs","sources":["../../../src/analytics/analytics.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","// 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 isSupported as _isSupported,\n logEvent as _logEvent,\n setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled,\n setConsent as _setConsent,\n setCurrentScreen as _setCurrentScreen,\n setDefaultEventParameters as _setDefaultEventParameters,\n setUserId as _setUserId,\n setUserProperties as _setUserProperties,\n settings as _settings\n} from 'firebase/analytics';\n\nexport const getAnalytics = ɵzoneWrap(_getAnalytics, true);\nexport const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);\nexport const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);\nexport const isSupported = ɵzoneWrap(_isSupported, 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 setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\nexport const settings = ɵzoneWrap(_settings, 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 { isPlatformBrowser } from '@angular/common';\nimport {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n PLATFORM_ID,\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 { 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, platformId: object) {\n if (!isPlatformBrowser(platformId)) { 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, platformId: object) => {\n if (!isPlatformBrowser(platformId)) { 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 PLATFORM_ID,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER\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: PROVIDED_ANALYTICS_INSTANCES,\n useFactory: analyticsInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n PLATFORM_ID,\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","ɵzoneWrap","_getAnalytics","_getGoogleAnalyticsClientId","_initializeAnalytics","_isSupported","_logEvent","_setAnalyticsCollectionEnabled","_setConsent","_setCurrentScreen","_setDefaultEventParameters","_setUserId","_setUserProperties","_settings","ɵEmptyOutletComponent","i1","i3.UserTrackingService","ɵgetDefaultInstanceOf","i1.ScreenTrackingService","i2.UserTrackingService","ɵAngularFireSchedulers"],"mappings":"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"}
@@ -95,7 +95,7 @@ const user = _zoneWrap(user$1, true);
95
95
 
96
96
  // DO NOT MODIFY, this file is autogenerated by tools/build.ts
97
97
  const applyActionCode = _zoneWrap(applyActionCode$1, true);
98
- const beforeAuthStateChanged = _zoneWrap(beforeAuthStateChanged$1, true);
98
+ const beforeAuthStateChanged = _zoneWrap(beforeAuthStateChanged$1, false);
99
99
  const checkActionCode = _zoneWrap(checkActionCode$1, true);
100
100
  const confirmPasswordReset = _zoneWrap(confirmPasswordReset$1, true);
101
101
  const connectAuthEmulator = _zoneWrap(connectAuthEmulator$1, true);
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\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 Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\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 { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n idToken as _idToken,\n user as _user\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\nexport const user = ɵzoneWrap(_user, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, true);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_idToken","_user","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\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 Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\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 { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n idToken as _idToken,\n user as _user\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\nexport const user = ɵzoneWrap(_user, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, false);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_idToken","_user","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isPlatformBrowser, isPlatformServer } from '@angular/common';
1
+ import { isPlatformBrowser } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, PLATFORM_ID, Injectable, Optional, Inject, NgModule } from '@angular/core';
4
4
  import * as i2 from '@angular/fire';
@@ -181,7 +181,7 @@ class UserTrackingService {
181
181
  // eslint-disable-next-line @typescript-eslint/ban-types
182
182
  platformId, auth, zone) {
183
183
  firebase.registerVersion('angularfire', VERSION.full, 'compat-user-tracking');
184
- if (!isPlatformServer(platformId)) {
184
+ if (isPlatformBrowser(platformId)) {
185
185
  let resolveInitialized;
186
186
  this.initialized = zone.runOutsideAngular(() => new Promise(resolve => resolveInitialized = resolve));
187
187
  this.disposables = [