@angular/fire 17.1.0 → 18.0.0-canary.bfc27e2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +10 -0
  2. package/compat/proxy.d.ts +2 -2
  3. package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -2
  4. package/docs/analytics.md +14 -20
  5. package/docs/app-check.md +12 -9
  6. package/docs/auth.md +44 -9
  7. package/docs/database.md +12 -12
  8. package/docs/firestore.md +15 -23
  9. package/docs/functions.md +11 -9
  10. package/docs/messaging.md +30 -8
  11. package/docs/performance.md +11 -9
  12. package/docs/remote-config.md +11 -9
  13. package/docs/storage.md +11 -10
  14. package/docs/vertexai.md +53 -0
  15. package/esm2022/analytics/analytics.module.mjs +5 -5
  16. package/esm2022/analytics/is-analytics-supported-factory.mjs +1 -1
  17. package/esm2022/analytics/screen-tracking.service.mjs +4 -4
  18. package/esm2022/analytics/user-tracking.service.mjs +4 -4
  19. package/esm2022/app/app.module.mjs +5 -5
  20. package/esm2022/app-check/app-check.module.mjs +5 -5
  21. package/esm2022/auth/auth.module.mjs +5 -5
  22. package/esm2022/auth-guard/auth-guard.mjs +4 -4
  23. package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
  24. package/esm2022/compat/analytics/analytics.mjs +4 -4
  25. package/esm2022/compat/analytics/analytics.module.mjs +5 -5
  26. package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
  27. package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
  28. package/esm2022/compat/auth/auth.mjs +4 -4
  29. package/esm2022/compat/auth/auth.module.mjs +5 -5
  30. package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
  31. package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
  32. package/esm2022/compat/cache.mjs +1 -1
  33. package/esm2022/compat/database/database.mjs +4 -4
  34. package/esm2022/compat/database/database.module.mjs +5 -5
  35. package/esm2022/compat/database/list/changes.mjs +1 -1
  36. package/esm2022/compat/database/list/create-reference.mjs +1 -1
  37. package/esm2022/compat/database/list/remove.mjs +1 -1
  38. package/esm2022/compat/database/list/utils.mjs +1 -1
  39. package/esm2022/compat/database/observable/fromRef.mjs +1 -1
  40. package/esm2022/compat/database/utils.mjs +1 -1
  41. package/esm2022/compat/firebase.app.module.mjs +5 -5
  42. package/esm2022/compat/firestore/collection/changes.mjs +1 -1
  43. package/esm2022/compat/firestore/collection/collection.mjs +1 -1
  44. package/esm2022/compat/firestore/collection-group/collection-group.mjs +1 -1
  45. package/esm2022/compat/firestore/firestore.mjs +4 -4
  46. package/esm2022/compat/firestore/firestore.module.mjs +5 -5
  47. package/esm2022/compat/firestore/observable/fromRef.mjs +1 -1
  48. package/esm2022/compat/functions/functions.mjs +4 -4
  49. package/esm2022/compat/functions/functions.module.mjs +5 -5
  50. package/esm2022/compat/messaging/messaging.mjs +4 -4
  51. package/esm2022/compat/messaging/messaging.module.mjs +5 -5
  52. package/esm2022/compat/performance/performance.mjs +4 -4
  53. package/esm2022/compat/performance/performance.module.mjs +5 -5
  54. package/esm2022/compat/performance/performance.service.mjs +4 -4
  55. package/esm2022/compat/proxy.mjs +1 -1
  56. package/esm2022/compat/remote-config/remote-config.mjs +4 -4
  57. package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
  58. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +10 -12
  59. package/esm2022/compat/storage/storage.mjs +4 -4
  60. package/esm2022/compat/storage/storage.module.mjs +5 -5
  61. package/esm2022/core.mjs +1 -1
  62. package/esm2022/database/database.module.mjs +5 -5
  63. package/esm2022/firestore/firestore.module.mjs +5 -5
  64. package/esm2022/firestore/lite/lite.module.mjs +5 -5
  65. package/esm2022/functions/functions.module.mjs +5 -5
  66. package/esm2022/messaging/is-messaging-supported-factory.mjs +1 -1
  67. package/esm2022/messaging/messaging.module.mjs +5 -5
  68. package/esm2022/performance/performance.module.mjs +5 -5
  69. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +1 -1
  70. package/esm2022/remote-config/remote-config.module.mjs +5 -5
  71. package/esm2022/storage/storage.module.mjs +5 -5
  72. package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
  73. package/esm2022/zones.mjs +4 -4
  74. package/fesm2022/angular-fire-analytics.mjs +410 -297
  75. package/fesm2022/angular-fire-analytics.mjs.map +7 -1
  76. package/fesm2022/angular-fire-app-check.mjs +162 -91
  77. package/fesm2022/angular-fire-app-check.mjs.map +7 -1
  78. package/fesm2022/angular-fire-app.mjs +181 -108
  79. package/fesm2022/angular-fire-app.mjs.map +7 -1
  80. package/fesm2022/angular-fire-auth-guard.mjs +83 -73
  81. package/fesm2022/angular-fire-auth-guard.mjs.map +7 -1
  82. package/fesm2022/angular-fire-auth.mjs +421 -142
  83. package/fesm2022/angular-fire-auth.mjs.map +7 -1
  84. package/fesm2022/angular-fire-compat-analytics.mjs +261 -270
  85. package/fesm2022/angular-fire-compat-analytics.mjs.map +7 -1
  86. package/fesm2022/angular-fire-compat-auth-guard.mjs +83 -72
  87. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +7 -1
  88. package/fesm2022/angular-fire-compat-auth.mjs +214 -213
  89. package/fesm2022/angular-fire-compat-auth.mjs.map +7 -1
  90. package/fesm2022/angular-fire-compat-database.mjs +375 -378
  91. package/fesm2022/angular-fire-compat-database.mjs.map +7 -1
  92. package/fesm2022/angular-fire-compat-firestore.mjs +537 -677
  93. package/fesm2022/angular-fire-compat-firestore.mjs.map +7 -1
  94. package/fesm2022/angular-fire-compat-functions.mjs +97 -93
  95. package/fesm2022/angular-fire-compat-functions.mjs.map +7 -1
  96. package/fesm2022/angular-fire-compat-messaging.mjs +106 -106
  97. package/fesm2022/angular-fire-compat-messaging.mjs.map +7 -1
  98. package/fesm2022/angular-fire-compat-performance.mjs +157 -151
  99. package/fesm2022/angular-fire-compat-performance.mjs.map +7 -1
  100. package/fesm2022/angular-fire-compat-remote-config.mjs +215 -231
  101. package/fesm2022/angular-fire-compat-remote-config.mjs.map +7 -1
  102. package/fesm2022/angular-fire-compat-storage.mjs +226 -233
  103. package/fesm2022/angular-fire-compat-storage.mjs.map +7 -1
  104. package/fesm2022/angular-fire-compat.mjs +140 -153
  105. package/fesm2022/angular-fire-compat.mjs.map +7 -1
  106. package/fesm2022/angular-fire-database.mjs +376 -136
  107. package/fesm2022/angular-fire-database.mjs.map +7 -1
  108. package/fesm2022/angular-fire-firestore-lite.mjs +388 -139
  109. package/fesm2022/angular-fire-firestore-lite.mjs.map +7 -1
  110. package/fesm2022/angular-fire-firestore.mjs +526 -167
  111. package/fesm2022/angular-fire-firestore.mjs.map +7 -1
  112. package/fesm2022/angular-fire-functions.mjs +166 -93
  113. package/fesm2022/angular-fire-functions.mjs.map +7 -1
  114. package/fesm2022/angular-fire-messaging.mjs +196 -118
  115. package/fesm2022/angular-fire-messaging.mjs.map +7 -1
  116. package/fesm2022/angular-fire-performance.mjs +178 -104
  117. package/fesm2022/angular-fire-performance.mjs.map +7 -1
  118. package/fesm2022/angular-fire-remote-config.mjs +254 -132
  119. package/fesm2022/angular-fire-remote-config.mjs.map +7 -1
  120. package/fesm2022/angular-fire-storage.mjs +225 -105
  121. package/fesm2022/angular-fire-storage.mjs.map +7 -1
  122. package/fesm2022/angular-fire-vertexai-preview.mjs +146 -85
  123. package/fesm2022/angular-fire-vertexai-preview.mjs.map +7 -1
  124. package/fesm2022/angular-fire.mjs +183 -213
  125. package/fesm2022/angular-fire.mjs.map +7 -1
  126. package/package.json +7 -7
  127. package/schematics/deploy/actions.js +2 -2
  128. package/schematics/setup/prompts.js +1 -1
@@ -1,221 +1,222 @@
1
- import 'firebase/compat/auth';
2
- import { isPlatformServer } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
5
- import * as i1 from '@angular/fire';
6
- import { keepUnstableUntilFirst, VERSION } from '@angular/fire';
7
- import * as i2 from '@angular/fire/app-check';
8
- import { ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵapplyMixins } from '@angular/fire/compat';
9
- import { Subject, of, Observable, from, merge } from 'rxjs';
10
- import { observeOn, switchMap, map, shareReplay, first, switchMapTo, subscribeOn, filter } from 'rxjs/operators';
11
- import firebase from 'firebase/compat/app';
12
-
13
- // DO NOT MODIFY, this file is autogenerated by tools/build.ts
14
- // Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer
15
- const proxyPolyfillCompat = {
16
- name: null,
17
- config: null,
18
- emulatorConfig: null,
19
- app: null,
20
- applyActionCode: null,
21
- checkActionCode: null,
22
- confirmPasswordReset: null,
23
- createUserWithEmailAndPassword: null,
24
- currentUser: null,
25
- fetchSignInMethodsForEmail: null,
26
- isSignInWithEmailLink: null,
27
- getRedirectResult: null,
28
- languageCode: null,
29
- settings: null,
30
- onAuthStateChanged: null,
31
- onIdTokenChanged: null,
32
- sendSignInLinkToEmail: null,
33
- sendPasswordResetEmail: null,
34
- setPersistence: null,
35
- signInAndRetrieveDataWithCredential: null,
36
- signInAnonymously: null,
37
- signInWithCredential: null,
38
- signInWithCustomToken: null,
39
- signInWithEmailAndPassword: null,
40
- signInWithPhoneNumber: null,
41
- signInWithEmailLink: null,
42
- signInWithPopup: null,
43
- signInWithRedirect: null,
44
- signOut: null,
45
- tenantId: null,
46
- updateCurrentUser: null,
47
- useDeviceLanguage: null,
48
- useEmulator: null,
49
- verifyPasswordResetCode: null,
1
+ // base.mjs
2
+ var proxyPolyfillCompat = {
3
+ name: null,
4
+ config: null,
5
+ emulatorConfig: null,
6
+ app: null,
7
+ applyActionCode: null,
8
+ checkActionCode: null,
9
+ confirmPasswordReset: null,
10
+ createUserWithEmailAndPassword: null,
11
+ currentUser: null,
12
+ fetchSignInMethodsForEmail: null,
13
+ isSignInWithEmailLink: null,
14
+ getRedirectResult: null,
15
+ languageCode: null,
16
+ settings: null,
17
+ onAuthStateChanged: null,
18
+ onIdTokenChanged: null,
19
+ sendSignInLinkToEmail: null,
20
+ sendPasswordResetEmail: null,
21
+ setPersistence: null,
22
+ signInAndRetrieveDataWithCredential: null,
23
+ signInAnonymously: null,
24
+ signInWithCredential: null,
25
+ signInWithCustomToken: null,
26
+ signInWithEmailAndPassword: null,
27
+ signInWithPhoneNumber: null,
28
+ signInWithEmailLink: null,
29
+ signInWithPopup: null,
30
+ signInWithRedirect: null,
31
+ signOut: null,
32
+ tenantId: null,
33
+ updateCurrentUser: null,
34
+ useDeviceLanguage: null,
35
+ useEmulator: null,
36
+ verifyPasswordResetCode: null
50
37
  };
51
38
 
52
- const USE_EMULATOR = new InjectionToken('angularfire2.auth.use-emulator');
53
- const SETTINGS = new InjectionToken('angularfire2.auth.settings');
54
- const TENANT_ID = new InjectionToken('angularfire2.auth.tenant-id');
55
- const LANGUAGE_CODE = new InjectionToken('angularfire2.auth.langugage-code');
56
- const USE_DEVICE_LANGUAGE = new InjectionToken('angularfire2.auth.use-device-language');
57
- const PERSISTENCE = new InjectionToken('angularfire.auth.persistence');
58
- const ɵauthFactory = (app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {
59
- const auth = zone.runOutsideAngular(() => app.auth());
60
- if (useEmulator) {
61
- auth.useEmulator(...useEmulator);
62
- }
63
- if (tenantId) {
64
- auth.tenantId = tenantId;
65
- }
66
- auth.languageCode = languageCode;
67
- if (useDeviceLanguage) {
68
- auth.useDeviceLanguage();
69
- }
70
- if (settings) {
71
- for (const [k, v] of Object.entries(settings)) {
72
- auth.settings[k] = v;
73
- }
74
- }
75
- if (persistence) {
76
- auth.setPersistence(persistence);
39
+ // auth.mjs
40
+ import { isPlatformServer } from "@angular/common";
41
+ import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from "@angular/core";
42
+ import { keepUnstableUntilFirst, ɵAngularFireSchedulers } from "@angular/fire";
43
+ import { AppCheckInstances } from "@angular/fire/app-check";
44
+ import { ɵapplyMixins, ɵlazySDKProxy } from "@angular/fire/compat";
45
+ import { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from "@angular/fire/compat";
46
+ import { Observable, Subject, from, merge, of } from "rxjs";
47
+ import { filter, first, map, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from "rxjs/operators";
48
+ import * as i0 from "@angular/core";
49
+ import * as i1 from "@angular/fire";
50
+ import * as i2 from "@angular/fire/app-check";
51
+ var USE_EMULATOR = new InjectionToken("angularfire2.auth.use-emulator");
52
+ var SETTINGS = new InjectionToken("angularfire2.auth.settings");
53
+ var TENANT_ID = new InjectionToken("angularfire2.auth.tenant-id");
54
+ var LANGUAGE_CODE = new InjectionToken("angularfire2.auth.langugage-code");
55
+ var USE_DEVICE_LANGUAGE = new InjectionToken("angularfire2.auth.use-device-language");
56
+ var PERSISTENCE = new InjectionToken("angularfire.auth.persistence");
57
+ var ɵauthFactory = (app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence) => ɵcacheInstance(`${app.name}.auth`, "AngularFireAuth", app.name, () => {
58
+ const auth = zone.runOutsideAngular(() => app.auth());
59
+ if (useEmulator) {
60
+ auth.useEmulator(...useEmulator);
61
+ }
62
+ if (tenantId) {
63
+ auth.tenantId = tenantId;
64
+ }
65
+ auth.languageCode = languageCode;
66
+ if (useDeviceLanguage) {
67
+ auth.useDeviceLanguage();
68
+ }
69
+ if (settings) {
70
+ for (const [k, v] of Object.entries(settings)) {
71
+ auth.settings[k] = v;
77
72
  }
78
- return auth;
73
+ }
74
+ if (persistence) {
75
+ auth.setPersistence(persistence);
76
+ }
77
+ return auth;
79
78
  }, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);
80
- class AngularFireAuth {
81
- /**
82
- * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out
83
- */
84
- authState;
85
- /**
86
- * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).
87
- */
88
- idToken;
89
- /**
90
- * Observable of the currently signed-in user (or null).
91
- */
92
- user;
93
- /**
94
- * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other
95
- * helper properties for getting different data associated with the token as well as all the decoded payload claims
96
- * (or null).
97
- */
98
- idTokenResult;
99
- /**
100
- * Observable of the currently signed-in user's credential, or null
101
- */
102
- credential;
103
- constructor(options, name,
104
- // eslint-disable-next-line @typescript-eslint/ban-types
105
- platformId, zone, schedulers, useEmulator, // can't use the tuple here
106
- settings, // can't use firebase.auth.AuthSettings here
107
- tenantId, languageCode, useDeviceLanguage, persistence, _appCheckInstances) {
108
- const logins = new Subject();
109
- const auth = of(undefined).pipe(observeOn(schedulers.outsideAngular), switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))), map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)), shareReplay({ bufferSize: 1, refCount: false }));
110
- if (isPlatformServer(platformId)) {
111
- this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);
112
- }
113
- else {
114
- // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth
115
- // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly
116
- // as we're completely lazy. Let's eagerly load the Auth SDK here.
117
- // There could potentially be race conditions still... but this greatly decreases the odds while
118
- // we reevaluate the API.
119
- auth.pipe(first()).subscribe();
120
- const redirectResult = auth.pipe(switchMap(auth => auth.getRedirectResult().then(it => it, () => null)), keepUnstableUntilFirst, shareReplay({ bufferSize: 1, refCount: false }));
121
- const authStateChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
122
- const idTokenChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
123
- this.authState = redirectResult.pipe(switchMapTo(authStateChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
124
- this.user = redirectResult.pipe(switchMapTo(idTokenChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
125
- this.idToken = this.user.pipe(switchMap(user => user ? from(user.getIdToken()) : of(null)));
126
- this.idTokenResult = this.user.pipe(switchMap(user => user ? from(user.getIdTokenResult()) : of(null)));
127
- this.credential = merge(redirectResult, logins,
128
- // pipe in null authState to make credential zipable, just a weird devexp if
129
- // authState and user go null to still have a credential
130
- this.authState.pipe(filter(it => !it))).pipe(
131
- // handle the { user: { } } when a user is already logged in, rather have null
132
- // TODO handle the type corcersion better
133
- map(credential => credential?.user ? credential : null), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
134
- }
135
- return ɵlazySDKProxy(this, auth, zone, { spy: {
136
- apply: (name, _, val) => {
137
- // If they call a signIn or createUser function listen into the promise
138
- // this will give us the user credential, push onto the logins Subject
139
- // to be consumed in .credential
140
- if (name.startsWith('signIn') || name.startsWith('createUser')) {
141
- // TODO fix the types, the trouble is UserCredential has everything optional
142
- val.then((user) => logins.next(user));
143
- }
144
- }
145
- } });
79
+ var AngularFireAuth = class _AngularFireAuth {
80
+ /**
81
+ * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out
82
+ */
83
+ authState;
84
+ /**
85
+ * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).
86
+ */
87
+ idToken;
88
+ /**
89
+ * Observable of the currently signed-in user (or null).
90
+ */
91
+ user;
92
+ /**
93
+ * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other
94
+ * helper properties for getting different data associated with the token as well as all the decoded payload claims
95
+ * (or null).
96
+ */
97
+ idTokenResult;
98
+ /**
99
+ * Observable of the currently signed-in user's credential, or null
100
+ */
101
+ credential;
102
+ constructor(options, name, platformId, zone, schedulers, useEmulator, settings, tenantId, languageCode, useDeviceLanguage, persistence, _appCheckInstances) {
103
+ const logins = new Subject();
104
+ const auth = of(void 0).pipe(observeOn(schedulers.outsideAngular), switchMap(() => zone.runOutsideAngular(() => import("firebase/compat/auth"))), map(() => ɵfirebaseAppFactory(options, zone, name)), map((app) => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)), shareReplay({ bufferSize: 1, refCount: false }));
105
+ if (isPlatformServer(platformId)) {
106
+ this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);
107
+ } else {
108
+ auth.pipe(first()).subscribe();
109
+ const redirectResult = auth.pipe(switchMap((auth2) => auth2.getRedirectResult().then((it) => it, () => null)), keepUnstableUntilFirst, shareReplay({ bufferSize: 1, refCount: false }));
110
+ const authStateChanged = auth.pipe(switchMap((auth2) => new Observable((sub) => ({ unsubscribe: zone.runOutsideAngular(() => auth2.onAuthStateChanged((next) => sub.next(next), (err) => sub.error(err), () => sub.complete())) }))));
111
+ const idTokenChanged = auth.pipe(switchMap((auth2) => new Observable((sub) => ({ unsubscribe: zone.runOutsideAngular(() => auth2.onIdTokenChanged((next) => sub.next(next), (err) => sub.error(err), () => sub.complete())) }))));
112
+ this.authState = redirectResult.pipe(switchMapTo(authStateChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
113
+ this.user = redirectResult.pipe(switchMapTo(idTokenChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
114
+ this.idToken = this.user.pipe(switchMap((user) => user ? from(user.getIdToken()) : of(null)));
115
+ this.idTokenResult = this.user.pipe(switchMap((user) => user ? from(user.getIdTokenResult()) : of(null)));
116
+ this.credential = merge(
117
+ redirectResult,
118
+ logins,
119
+ // pipe in null authState to make credential zipable, just a weird devexp if
120
+ // authState and user go null to still have a credential
121
+ this.authState.pipe(filter((it) => !it))
122
+ ).pipe(
123
+ // handle the { user: { } } when a user is already logged in, rather have null
124
+ // TODO handle the type corcersion better
125
+ map((credential) => credential?.user ? credential : null),
126
+ subscribeOn(schedulers.outsideAngular),
127
+ observeOn(schedulers.insideAngular)
128
+ );
146
129
  }
147
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuth, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: USE_EMULATOR, optional: true }, { token: SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
148
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuth, providedIn: 'any' });
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuth, decorators: [{
151
- type: Injectable,
152
- args: [{
153
- providedIn: 'any'
154
- }]
155
- }], ctorParameters: () => [{ type: undefined, decorators: [{
156
- type: Inject,
157
- args: [FIREBASE_OPTIONS]
158
- }] }, { type: undefined, decorators: [{
159
- type: Optional
160
- }, {
161
- type: Inject,
162
- args: [FIREBASE_APP_NAME]
163
- }] }, { type: Object, decorators: [{
164
- type: Inject,
165
- args: [PLATFORM_ID]
166
- }] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }, { type: undefined, decorators: [{
167
- type: Optional
168
- }, {
169
- type: Inject,
170
- args: [USE_EMULATOR]
171
- }] }, { type: undefined, decorators: [{
172
- type: Optional
173
- }, {
174
- type: Inject,
175
- args: [SETTINGS]
176
- }] }, { type: undefined, decorators: [{
177
- type: Optional
178
- }, {
179
- type: Inject,
180
- args: [TENANT_ID]
181
- }] }, { type: undefined, decorators: [{
182
- type: Optional
183
- }, {
184
- type: Inject,
185
- args: [LANGUAGE_CODE]
186
- }] }, { type: undefined, decorators: [{
187
- type: Optional
188
- }, {
189
- type: Inject,
190
- args: [USE_DEVICE_LANGUAGE]
191
- }] }, { type: undefined, decorators: [{
192
- type: Optional
193
- }, {
194
- type: Inject,
195
- args: [PERSISTENCE]
196
- }] }, { type: i2.AppCheckInstances, decorators: [{
197
- type: Optional
198
- }] }] });
130
+ return ɵlazySDKProxy(this, auth, zone, { spy: {
131
+ apply: (name2, _, val) => {
132
+ if (name2.startsWith("signIn") || name2.startsWith("createUser")) {
133
+ val.then((user) => logins.next(user));
134
+ }
135
+ }
136
+ } });
137
+ }
138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AngularFireAuth, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: USE_EMULATOR, optional: true }, { token: SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
139
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _AngularFireAuth, providedIn: "any" });
140
+ };
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: AngularFireAuth, decorators: [{
142
+ type: Injectable,
143
+ args: [{
144
+ providedIn: "any"
145
+ }]
146
+ }], ctorParameters: () => [{ type: void 0, decorators: [{
147
+ type: Inject,
148
+ args: [FIREBASE_OPTIONS]
149
+ }] }, { type: void 0, decorators: [{
150
+ type: Optional
151
+ }, {
152
+ type: Inject,
153
+ args: [FIREBASE_APP_NAME]
154
+ }] }, { type: Object, decorators: [{
155
+ type: Inject,
156
+ args: [PLATFORM_ID]
157
+ }] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }, { type: void 0, decorators: [{
158
+ type: Optional
159
+ }, {
160
+ type: Inject,
161
+ args: [USE_EMULATOR]
162
+ }] }, { type: void 0, decorators: [{
163
+ type: Optional
164
+ }, {
165
+ type: Inject,
166
+ args: [SETTINGS]
167
+ }] }, { type: void 0, decorators: [{
168
+ type: Optional
169
+ }, {
170
+ type: Inject,
171
+ args: [TENANT_ID]
172
+ }] }, { type: void 0, decorators: [{
173
+ type: Optional
174
+ }, {
175
+ type: Inject,
176
+ args: [LANGUAGE_CODE]
177
+ }] }, { type: void 0, decorators: [{
178
+ type: Optional
179
+ }, {
180
+ type: Inject,
181
+ args: [USE_DEVICE_LANGUAGE]
182
+ }] }, { type: void 0, decorators: [{
183
+ type: Optional
184
+ }, {
185
+ type: Inject,
186
+ args: [PERSISTENCE]
187
+ }] }, { type: i2.AppCheckInstances, decorators: [{
188
+ type: Optional
189
+ }] }] });
199
190
  ɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);
200
191
 
201
- class AngularFireAuthModule {
202
- constructor() {
203
- firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');
204
- }
205
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
206
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuthModule });
207
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuthModule, providers: [AngularFireAuth] });
208
- }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AngularFireAuthModule, decorators: [{
210
- type: NgModule,
211
- args: [{
212
- providers: [AngularFireAuth]
213
- }]
214
- }], ctorParameters: () => [] });
215
-
216
- /**
217
- * Generated bundle index. Do not edit.
218
- */
219
-
220
- export { AngularFireAuth, AngularFireAuthModule, LANGUAGE_CODE, PERSISTENCE, SETTINGS, TENANT_ID, USE_DEVICE_LANGUAGE, USE_EMULATOR, ɵauthFactory };
192
+ // auth.module.mjs
193
+ import { NgModule } from "@angular/core";
194
+ import { VERSION } from "@angular/fire";
195
+ import firebase from "firebase/compat/app";
196
+ import * as i02 from "@angular/core";
197
+ var AngularFireAuthModule = class _AngularFireAuthModule {
198
+ constructor() {
199
+ firebase.registerVersion("angularfire", VERSION.full, "auth-compat");
200
+ }
201
+ static ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AngularFireAuthModule, deps: [], target: i02.ɵɵFactoryTarget.NgModule });
202
+ static ɵmod = i02.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AngularFireAuthModule });
203
+ static ɵinj = i02.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AngularFireAuthModule, providers: [AngularFireAuth] });
204
+ };
205
+ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: AngularFireAuthModule, decorators: [{
206
+ type: NgModule,
207
+ args: [{
208
+ providers: [AngularFireAuth]
209
+ }]
210
+ }], ctorParameters: () => [] });
211
+ export {
212
+ AngularFireAuth,
213
+ AngularFireAuthModule,
214
+ LANGUAGE_CODE,
215
+ PERSISTENCE,
216
+ SETTINGS,
217
+ TENANT_ID,
218
+ USE_DEVICE_LANGUAGE,
219
+ USE_EMULATOR,
220
+ ɵauthFactory
221
+ };
221
222
  //# sourceMappingURL=angular-fire-compat-auth.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"angular-fire-compat-auth.mjs","sources":["../../../src/compat/auth/base.ts","../../../src/compat/auth/auth.ts","../../../src/compat/auth/auth.module.ts","../../../src/compat/auth/angular-fire-compat-auth.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n name: null,\n config: null,\n emulatorConfig: null,\n app: null,\n applyActionCode: null,\n checkActionCode: null,\n confirmPasswordReset: null,\n createUserWithEmailAndPassword: null,\n currentUser: null,\n fetchSignInMethodsForEmail: null,\n isSignInWithEmailLink: null,\n getRedirectResult: null,\n languageCode: null,\n settings: null,\n onAuthStateChanged: null,\n onIdTokenChanged: null,\n sendSignInLinkToEmail: null,\n sendPasswordResetEmail: null,\n setPersistence: null,\n signInAndRetrieveDataWithCredential: null,\n signInAnonymously: null,\n signInWithCredential: null,\n signInWithCustomToken: null,\n signInWithEmailAndPassword: null,\n signInWithPhoneNumber: null,\n signInWithEmailLink: null,\n signInWithPopup: null,\n signInWithRedirect: null,\n signOut: null,\n tenantId: null,\n updateCurrentUser: null,\n useDeviceLanguage: null,\n useEmulator: null,\n verifyPasswordResetCode: null,\n};\n","import { isPlatformServer } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { keepUnstableUntilFirst, ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, Subject, from, merge, of } from 'rxjs';\nimport { filter, first, map, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireAuth extends ɵPromiseProxy<firebase.auth.Auth> {}\n\ntype UseEmulatorArguments = Parameters<firebase.auth.Auth['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.auth.use-emulator');\n\nexport const SETTINGS = new InjectionToken<firebase.auth.AuthSettings>('angularfire2.auth.settings');\nexport const TENANT_ID = new InjectionToken<string>('angularfire2.auth.tenant-id');\nexport const LANGUAGE_CODE = new InjectionToken<string>('angularfire2.auth.langugage-code');\nexport const USE_DEVICE_LANGUAGE = new InjectionToken<boolean>('angularfire2.auth.use-device-language');\nexport const PERSISTENCE = new InjectionToken<string>('angularfire.auth.persistence');\n\nexport const ɵauthFactory = (\n app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments|null,\n tenantId: string, languageCode: string|null, useDeviceLanguage: boolean|null,\n settings: firebase.auth.AuthSettings|null, persistence: string|null,\n) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {\n const auth = zone.runOutsideAngular(() => app.auth());\n if (useEmulator) {\n auth.useEmulator(...useEmulator);\n }\n if (tenantId) {\n auth.tenantId = tenantId;\n }\n auth.languageCode = languageCode;\n if (useDeviceLanguage) {\n auth.useDeviceLanguage();\n }\n if (settings) {\n for (const [k, v] of Object.entries(settings)) {\n auth.settings[k] = v;\n }\n }\n if (persistence) {\n auth.setPersistence(persistence);\n }\n return auth;\n}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireAuth {\n\n /**\n * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out\n */\n public readonly authState: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).\n */\n public readonly idToken: Observable<string|null>;\n\n /**\n * Observable of the currently signed-in user (or null).\n */\n public readonly user: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other\n * helper properties for getting different data associated with the token as well as all the decoded payload claims\n * (or null).\n */\n public readonly idTokenResult: Observable<firebase.auth.IdTokenResult|null>;\n\n /**\n * Observable of the currently signed-in user's credential, or null\n */\n public readonly credential: Observable<Required<firebase.auth.UserCredential>|null>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string|null|undefined,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(USE_EMULATOR) useEmulator: any, // can't use the tuple here\n @Optional() @Inject(SETTINGS) settings: any, // can't use firebase.auth.AuthSettings here\n @Optional() @Inject(TENANT_ID) tenantId: string | null,\n @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,\n @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,\n @Optional() @Inject(PERSISTENCE) persistence: string | null,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const logins = new Subject<Required<firebase.auth.UserCredential>>();\n\n const auth = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n if (isPlatformServer(platformId)) {\n\n this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);\n\n } else {\n\n // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth\n // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly\n // as we're completely lazy. Let's eagerly load the Auth SDK here.\n // There could potentially be race conditions still... but this greatly decreases the odds while\n // we reevaluate the API.\n auth.pipe(first()).subscribe();\n\n const redirectResult = auth.pipe(\n switchMap(auth => auth.getRedirectResult().then(it => it, () => null)),\n keepUnstableUntilFirst,\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n const authStateChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n )),\n );\n\n const idTokenChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n ))\n );\n\n this.authState = redirectResult.pipe(\n switchMapTo(authStateChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.user = redirectResult.pipe(\n switchMapTo(idTokenChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.idToken = this.user.pipe(\n switchMap(user => user ? from(user.getIdToken()) : of(null))\n );\n\n this.idTokenResult = this.user.pipe(\n switchMap(user => user ? from(user.getIdTokenResult()) : of(null))\n );\n\n this.credential = merge(\n redirectResult,\n logins,\n // pipe in null authState to make credential zipable, just a weird devexp if\n // authState and user go null to still have a credential\n this.authState.pipe(filter(it => !it))\n ).pipe(\n // handle the { user: { } } when a user is already logged in, rather have null\n // TODO handle the type corcersion better\n map(credential => credential?.user ? credential as Required<firebase.auth.UserCredential> : null),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n }\n\n return ɵlazySDKProxy(this, auth, zone, { spy: {\n apply: (name, _, val) => {\n // If they call a signIn or createUser function listen into the promise\n // this will give us the user credential, push onto the logins Subject\n // to be consumed in .credential\n if (name.startsWith('signIn') || name.startsWith('createUser')) {\n // TODO fix the types, the trouble is UserCredential has everything optional\n val.then((user: firebase.auth.UserCredential) => logins.next(user as any));\n }\n }\n }});\n\n }\n\n}\n\nɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireAuth } from './auth';\n\n@NgModule({\n providers: [ AngularFireAuth ]\n})\nexport class AngularFireAuthModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/compat/auth/base.ts", "../../../src/compat/auth/auth.ts", "../../../src/compat/auth/auth.module.ts"],
4
+ "sourcesContent": ["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n name: null,\n config: null,\n emulatorConfig: null,\n app: null,\n applyActionCode: null,\n checkActionCode: null,\n confirmPasswordReset: null,\n createUserWithEmailAndPassword: null,\n currentUser: null,\n fetchSignInMethodsForEmail: null,\n isSignInWithEmailLink: null,\n getRedirectResult: null,\n languageCode: null,\n settings: null,\n onAuthStateChanged: null,\n onIdTokenChanged: null,\n sendSignInLinkToEmail: null,\n sendPasswordResetEmail: null,\n setPersistence: null,\n signInAndRetrieveDataWithCredential: null,\n signInAnonymously: null,\n signInWithCredential: null,\n signInWithCustomToken: null,\n signInWithEmailAndPassword: null,\n signInWithPhoneNumber: null,\n signInWithEmailLink: null,\n signInWithPopup: null,\n signInWithRedirect: null,\n signOut: null,\n tenantId: null,\n updateCurrentUser: null,\n useDeviceLanguage: null,\n useEmulator: null,\n verifyPasswordResetCode: null,\n};\n", "import { isPlatformServer } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { keepUnstableUntilFirst, ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, Subject, from, merge, of } from 'rxjs';\nimport { filter, first, map, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireAuth extends ɵPromiseProxy<firebase.auth.Auth> {}\n\ntype UseEmulatorArguments = Parameters<firebase.auth.Auth['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.auth.use-emulator');\n\nexport const SETTINGS = new InjectionToken<firebase.auth.AuthSettings>('angularfire2.auth.settings');\nexport const TENANT_ID = new InjectionToken<string>('angularfire2.auth.tenant-id');\nexport const LANGUAGE_CODE = new InjectionToken<string>('angularfire2.auth.langugage-code');\nexport const USE_DEVICE_LANGUAGE = new InjectionToken<boolean>('angularfire2.auth.use-device-language');\nexport const PERSISTENCE = new InjectionToken<string>('angularfire.auth.persistence');\n\nexport const ɵauthFactory = (\n app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments|null,\n tenantId: string, languageCode: string|null, useDeviceLanguage: boolean|null,\n settings: firebase.auth.AuthSettings|null, persistence: string|null,\n) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {\n const auth = zone.runOutsideAngular(() => app.auth());\n if (useEmulator) {\n auth.useEmulator(...useEmulator);\n }\n if (tenantId) {\n auth.tenantId = tenantId;\n }\n auth.languageCode = languageCode;\n if (useDeviceLanguage) {\n auth.useDeviceLanguage();\n }\n if (settings) {\n for (const [k, v] of Object.entries(settings)) {\n auth.settings[k] = v;\n }\n }\n if (persistence) {\n auth.setPersistence(persistence);\n }\n return auth;\n}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireAuth {\n\n /**\n * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out\n */\n public readonly authState: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).\n */\n public readonly idToken: Observable<string|null>;\n\n /**\n * Observable of the currently signed-in user (or null).\n */\n public readonly user: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other\n * helper properties for getting different data associated with the token as well as all the decoded payload claims\n * (or null).\n */\n public readonly idTokenResult: Observable<firebase.auth.IdTokenResult|null>;\n\n /**\n * Observable of the currently signed-in user's credential, or null\n */\n public readonly credential: Observable<Required<firebase.auth.UserCredential>|null>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string|null|undefined,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(USE_EMULATOR) useEmulator: any, // can't use the tuple here\n @Optional() @Inject(SETTINGS) settings: any, // can't use firebase.auth.AuthSettings here\n @Optional() @Inject(TENANT_ID) tenantId: string | null,\n @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,\n @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,\n @Optional() @Inject(PERSISTENCE) persistence: string | null,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const logins = new Subject<Required<firebase.auth.UserCredential>>();\n\n const auth = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n if (isPlatformServer(platformId)) {\n\n this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);\n\n } else {\n\n // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth\n // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly\n // as we're completely lazy. Let's eagerly load the Auth SDK here.\n // There could potentially be race conditions still... but this greatly decreases the odds while\n // we reevaluate the API.\n auth.pipe(first()).subscribe();\n\n const redirectResult = auth.pipe(\n switchMap(auth => auth.getRedirectResult().then(it => it, () => null)),\n keepUnstableUntilFirst,\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n const authStateChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n )),\n );\n\n const idTokenChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n ))\n );\n\n this.authState = redirectResult.pipe(\n switchMapTo(authStateChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.user = redirectResult.pipe(\n switchMapTo(idTokenChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.idToken = this.user.pipe(\n switchMap(user => user ? from(user.getIdToken()) : of(null))\n );\n\n this.idTokenResult = this.user.pipe(\n switchMap(user => user ? from(user.getIdTokenResult()) : of(null))\n );\n\n this.credential = merge(\n redirectResult,\n logins,\n // pipe in null authState to make credential zipable, just a weird devexp if\n // authState and user go null to still have a credential\n this.authState.pipe(filter(it => !it))\n ).pipe(\n // handle the { user: { } } when a user is already logged in, rather have null\n // TODO handle the type corcersion better\n map(credential => credential?.user ? credential as Required<firebase.auth.UserCredential> : null),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n }\n\n return ɵlazySDKProxy(this, auth, zone, { spy: {\n apply: (name, _, val) => {\n // If they call a signIn or createUser function listen into the promise\n // this will give us the user credential, push onto the logins Subject\n // to be consumed in .credential\n if (name.startsWith('signIn') || name.startsWith('createUser')) {\n // TODO fix the types, the trouble is UserCredential has everything optional\n val.then((user: firebase.auth.UserCredential) => logins.next(user as any));\n }\n }\n }});\n\n }\n\n}\n\nɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);\n", "import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireAuth } from './auth';\n\n@NgModule({\n providers: [ AngularFireAuth ]\n})\nexport class AngularFireAuthModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["auth", "name"]
7
+ }