@angular/fire 18.0.0 → 18.0.1-canary.3639e41
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.
- package/esm2022/analytics/analytics.module.mjs +5 -5
- package/esm2022/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/app/app.module.mjs +5 -5
- package/esm2022/app-check/app-check.module.mjs +5 -5
- package/esm2022/auth/auth.module.mjs +5 -5
- package/esm2022/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/analytics/analytics.mjs +4 -4
- package/esm2022/compat/analytics/analytics.module.mjs +5 -5
- package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/compat/auth/auth.mjs +4 -4
- package/esm2022/compat/auth/auth.module.mjs +5 -5
- package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/database/database.mjs +4 -4
- package/esm2022/compat/database/database.module.mjs +5 -5
- package/esm2022/compat/firebase.app.module.mjs +5 -5
- package/esm2022/compat/firestore/firestore.mjs +4 -4
- package/esm2022/compat/firestore/firestore.module.mjs +5 -5
- package/esm2022/compat/functions/functions.mjs +4 -4
- package/esm2022/compat/functions/functions.module.mjs +5 -5
- package/esm2022/compat/messaging/messaging.mjs +4 -4
- package/esm2022/compat/messaging/messaging.module.mjs +5 -5
- package/esm2022/compat/performance/performance.mjs +4 -4
- package/esm2022/compat/performance/performance.module.mjs +5 -5
- package/esm2022/compat/performance/performance.service.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +8 -8
- package/esm2022/compat/storage/storage.mjs +4 -4
- package/esm2022/compat/storage/storage.module.mjs +5 -5
- package/esm2022/database/database.module.mjs +5 -5
- package/esm2022/firestore/firestore.module.mjs +5 -5
- package/esm2022/firestore/lite/lite.module.mjs +5 -5
- package/esm2022/functions/functions.module.mjs +5 -5
- package/esm2022/messaging/messaging.module.mjs +5 -5
- package/esm2022/performance/performance.module.mjs +5 -5
- package/esm2022/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/storage/storage.module.mjs +5 -5
- package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
- package/esm2022/zones.mjs +4 -4
- package/fesm2022/angular-fire-analytics.mjs +297 -410
- package/fesm2022/angular-fire-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-app-check.mjs +91 -162
- package/fesm2022/angular-fire-app-check.mjs.map +1 -7
- package/fesm2022/angular-fire-app.mjs +108 -181
- package/fesm2022/angular-fire-app.mjs.map +1 -7
- package/fesm2022/angular-fire-auth-guard.mjs +73 -83
- package/fesm2022/angular-fire-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-auth.mjs +142 -421
- package/fesm2022/angular-fire-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-analytics.mjs +271 -262
- package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth-guard.mjs +72 -83
- package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth.mjs +214 -215
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-database.mjs +378 -375
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-firestore.mjs +677 -537
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-functions.mjs +94 -98
- package/fesm2022/angular-fire-compat-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-messaging.mjs +107 -107
- package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-performance.mjs +152 -158
- package/fesm2022/angular-fire-compat-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-remote-config.mjs +232 -216
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-storage.mjs +231 -226
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-compat.mjs +153 -140
- package/fesm2022/angular-fire-compat.mjs.map +1 -7
- package/fesm2022/angular-fire-database.mjs +136 -376
- package/fesm2022/angular-fire-database.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore-lite.mjs +139 -388
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore.mjs +167 -526
- package/fesm2022/angular-fire-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-functions.mjs +93 -166
- package/fesm2022/angular-fire-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-messaging.mjs +118 -196
- package/fesm2022/angular-fire-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-performance.mjs +104 -178
- package/fesm2022/angular-fire-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-remote-config.mjs +132 -254
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-storage.mjs +105 -225
- package/fesm2022/angular-fire-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-vertexai-preview.mjs +85 -146
- package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -7
- package/fesm2022/angular-fire.mjs +213 -183
- package/fesm2022/angular-fire.mjs.map +1 -7
- package/package.json +1 -1
|
@@ -1,222 +1,221 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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 as _cacheInstance, ɵfirebaseAppFactory as _firebaseAppFactory, ɵlazySDKProxy as _lazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵapplyMixins as _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,
|
|
37
50
|
};
|
|
38
51
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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;
|
|
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);
|
|
72
62
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
auth.setPersistence(persistence);
|
|
76
|
-
}
|
|
77
|
-
return auth;
|
|
78
|
-
}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);
|
|
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
|
-
);
|
|
63
|
+
if (tenantId) {
|
|
64
|
+
auth.tenantId = tenantId;
|
|
129
65
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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;
|
|
134
73
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
74
|
+
}
|
|
75
|
+
if (persistence) {
|
|
76
|
+
auth.setPersistence(persistence);
|
|
77
|
+
}
|
|
78
|
+
return auth;
|
|
79
|
+
}, [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
|
+
} });
|
|
146
|
+
}
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", 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: "18.0.0", ngImport: i0, type: AngularFireAuth, providedIn: 'any' });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", 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
|
+
}] }] });
|
|
199
|
+
_applyMixins(AngularFireAuth, [proxyPolyfillCompat]);
|
|
191
200
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
-
};
|
|
201
|
+
class AngularFireAuthModule {
|
|
202
|
+
constructor() {
|
|
203
|
+
firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');
|
|
204
|
+
}
|
|
205
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
206
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AngularFireAuthModule });
|
|
207
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireAuthModule, providers: [AngularFireAuth] });
|
|
208
|
+
}
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", 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 };
|
|
222
221
|
//# sourceMappingURL=angular-fire-compat-auth.mjs.map
|
|
@@ -1,7 +1 @@
|
|
|
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
|
-
}
|
|
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":["ɵcacheInstance","ɵfirebaseAppFactory","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|