@dereekb/dbx-firebase 8.12.3 → 8.12.6
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/esm2020/lib/auth/service/firebase.auth.rxjs.mjs +24 -17
- package/esm2020/lib/auth/service/firebase.auth.service.delegate.mjs +9 -4
- package/esm2020/lib/auth/service/firebase.auth.service.mjs +25 -9
- package/fesm2015/dereekb-dbx-firebase.mjs +53 -27
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +52 -26
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/service/firebase.auth.rxjs.d.ts +8 -6
- package/lib/auth/service/firebase.auth.service.d.ts +9 -2
- package/lib/auth/service/firebase.auth.service.delegate.d.ts +14 -2
- package/package.json +6 -6
|
@@ -11,11 +11,11 @@ import * as i2 from '@angular/material/icon';
|
|
|
11
11
|
import { MatIconModule } from '@angular/material/icon';
|
|
12
12
|
import * as i6 from '@angular/common';
|
|
13
13
|
import { CommonModule } from '@angular/common';
|
|
14
|
-
import { timeoutStartWith, filterMaybe, isNot, SubscriptionObject,
|
|
14
|
+
import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs, useAsObservable, successResult, beginLoading, loadingStateFromObs, errorResult, lazyFrom, cleanup } from '@dereekb/rxjs';
|
|
15
15
|
import * as i3$1 from '@dereekb/dbx-core';
|
|
16
16
|
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractIfDirective, AbstractSubscriptionDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
|
|
17
17
|
import * as i1$1 from '@angular/fire/auth';
|
|
18
|
-
import { authState, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
18
|
+
import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
19
19
|
import { sendPasswordResetEmail } from 'firebase/auth';
|
|
20
20
|
import * as i3 from '@dereekb/dbx-web';
|
|
21
21
|
import { DbxRouterAnchorModule, DbxReadableErrorModule, DbxActionModule, DbxButtonModule } from '@dereekb/dbx-web';
|
|
@@ -136,36 +136,42 @@ function firebaseAuthTokenFromUser(user) {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
|
-
*
|
|
139
|
+
* Creates a AuthUserStateObsFunction that derives a user state from the input firebase auth service, and the optional stateForLoggedInUser input
|
|
140
140
|
*
|
|
141
|
-
* @param dbxFirebaseAuthService
|
|
142
141
|
* @param stateForLoggedInUser Optional function that returns an observable for the user's state if they are logged in and not an anonymous user.
|
|
143
142
|
* @returns
|
|
144
143
|
*/
|
|
145
|
-
function
|
|
146
|
-
return dbxFirebaseAuthService
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
144
|
+
function authUserStateFromFirebaseAuthServiceFunction(stateForLoggedInUser = () => of('user')) {
|
|
145
|
+
return (dbxFirebaseAuthService) => {
|
|
146
|
+
return dbxFirebaseAuthService.hasAuthUser$.pipe(switchMap((hasUser) => {
|
|
147
|
+
let obs;
|
|
148
|
+
if (hasUser) {
|
|
149
|
+
obs = dbxFirebaseAuthService.isAnonymousUser$.pipe(switchMap((isAnon) => (isAnon ? of('anon') : stateForLoggedInUser(dbxFirebaseAuthService))));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
obs = of('none');
|
|
153
|
+
}
|
|
154
|
+
return obs;
|
|
155
|
+
}), shareReplay(1));
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function stateFromTokenForLoggedInUserFunction(stateFromToken, defaultState = 'user') {
|
|
159
|
+
return (dbxFirebaseAuthService) => {
|
|
160
|
+
return readValueFromIdToken(dbxFirebaseAuthService, stateFromToken, defaultState);
|
|
161
|
+
};
|
|
156
162
|
}
|
|
157
163
|
/**
|
|
158
164
|
* Convenience function to read a value from an IdTokenResult off of the current user.
|
|
159
165
|
*
|
|
160
166
|
* @param dbxFirebaseAuthService
|
|
161
|
-
* @param
|
|
167
|
+
* @param readValueFromIdToken
|
|
162
168
|
* @param defaultValue
|
|
163
169
|
* @returns
|
|
164
170
|
*/
|
|
165
|
-
function readValueFromIdToken(dbxFirebaseAuthService,
|
|
171
|
+
function readValueFromIdToken(dbxFirebaseAuthService, readValueFromIdToken, defaultValue) {
|
|
166
172
|
return dbxFirebaseAuthService.currentAuthUserInfo$.pipe(switchMap((x) => {
|
|
167
173
|
if (x) {
|
|
168
|
-
return dbxFirebaseAuthService.idTokenResult$.pipe(switchMap((x) =>
|
|
174
|
+
return dbxFirebaseAuthService.idTokenResult$.pipe(switchMap((x) => asObservable(readValueFromIdToken(x))));
|
|
169
175
|
}
|
|
170
176
|
else {
|
|
171
177
|
return of(defaultValue);
|
|
@@ -175,11 +181,12 @@ function readValueFromIdToken(dbxFirebaseAuthService, readBooleanFromIdToken, de
|
|
|
175
181
|
|
|
176
182
|
// MARK: Delegate
|
|
177
183
|
class DbxFirebaseAuthServiceDelegate {
|
|
184
|
+
constructor() {
|
|
185
|
+
this.fullControlOfAuthUserState = false;
|
|
186
|
+
}
|
|
178
187
|
}
|
|
179
188
|
const DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE = {
|
|
180
|
-
authUserStateObs(
|
|
181
|
-
return authUserStateFromFirebaseAuthService(dbxFirebaseAuthService);
|
|
182
|
-
},
|
|
189
|
+
authUserStateObs: authUserStateFromFirebaseAuthServiceFunction(),
|
|
183
190
|
authRolesObs(dbxFirebaseAuthService) {
|
|
184
191
|
return dbxFirebaseAuthService.authUserState$.pipe(map((x) => (x === 'user' ? new Set(['user']) : new Set())));
|
|
185
192
|
},
|
|
@@ -208,12 +215,27 @@ class DbxFirebaseAuthService {
|
|
|
208
215
|
this.onLogOut$ = loggedOutObsFromIsLoggedIn(this.isLoggedIn$);
|
|
209
216
|
this.userIdentifier$ = this.currentAuthUser$.pipe(map((x) => authUserIdentifier(x?.uid)));
|
|
210
217
|
this.uid$ = this.userIdentifier$;
|
|
211
|
-
this.
|
|
218
|
+
this.currentIdTokenString$ = idToken(this.firebaseAuth).pipe(distinctUntilChanged());
|
|
219
|
+
this.idTokenString$ = this.currentIdTokenString$.pipe(filterMaybe());
|
|
220
|
+
this.idTokenResult$ = this.authUser$.pipe(switchMap((x) => this.idTokenString$.pipe(switchMap((y) => x.getIdTokenResult()))));
|
|
212
221
|
this.claims$ = this.idTokenResult$.pipe(map((x) => x.claims));
|
|
213
222
|
this.currentAuthContextInfo$ = this.currentAuthUser$.pipe(switchMap((x) => this.loadAuthContextInfoForUser(x)), shareReplay(1));
|
|
214
223
|
this.authContextInfo$ = this.currentAuthContextInfo$.pipe(filterMaybe());
|
|
215
224
|
delegate = delegate ?? DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE;
|
|
216
|
-
|
|
225
|
+
const delegateAuthUserStateObs = delegate.authUserStateObs(this).pipe(distinctUntilChanged(), shareReplay(1));
|
|
226
|
+
if (delegate.fullControlOfAuthUserState) {
|
|
227
|
+
this.authUserState$ = delegateAuthUserStateObs;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
this.authUserState$ = this._authState$.pipe(distinctUntilChanged(), switchMap((x) => {
|
|
231
|
+
if (x != null) {
|
|
232
|
+
return delegateAuthUserStateObs;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
return of('none');
|
|
236
|
+
}
|
|
237
|
+
}));
|
|
238
|
+
}
|
|
217
239
|
this.authRoles$ = delegate.authRolesObs(this);
|
|
218
240
|
this.isOnboarded$ = delegate.isOnboarded(this);
|
|
219
241
|
this._authRoleClaimsService = delegate.authRoleClaimsService;
|
|
@@ -1422,11 +1444,15 @@ function authRolesObsWithClaimsService(config) {
|
|
|
1422
1444
|
};
|
|
1423
1445
|
}
|
|
1424
1446
|
function defaultDbxFirebaseAuthServiceDelegateWithClaimsService(config) {
|
|
1447
|
+
if (filterMaybeValues([config.stateForLoggedInUser, config.stateForLoggedInUserToken, config.authUserStateObs]).length > 1) {
|
|
1448
|
+
throw new Error('Cannot specify a combination of "stateForLoggedInUserToken", "stateForLoggedInUser" and "authUserStateObs". Must specify one at max.');
|
|
1449
|
+
}
|
|
1450
|
+
const authUserStateObs = config.authUserStateObs ?? authUserStateFromFirebaseAuthServiceFunction(config.stateForLoggedInUserToken ? stateFromTokenForLoggedInUserFunction(config.stateForLoggedInUserToken) : config.stateForLoggedInUser);
|
|
1425
1451
|
return {
|
|
1426
|
-
authUserStateObs
|
|
1452
|
+
authUserStateObs,
|
|
1453
|
+
isAdminInAuthRoleSet: config.isAdminInAuthRoleSet ?? DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE.isAdminInAuthRoleSet,
|
|
1427
1454
|
authRolesObs: authRolesObsWithClaimsService(config),
|
|
1428
1455
|
isOnboarded: DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE.isOnboarded,
|
|
1429
|
-
isAdminInAuthRoleSet: config.isAdminInAuthRoleSet ?? DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE.isAdminInAuthRoleSet,
|
|
1430
1456
|
authRoleClaimsService: config.claimsService
|
|
1431
1457
|
};
|
|
1432
1458
|
}
|
|
@@ -3012,5 +3038,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
3012
3038
|
* Generated bundle index. Do not edit.
|
|
3013
3039
|
*/
|
|
3014
3040
|
|
|
3015
|
-
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractSingleItemDbxFirebaseDocument, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authRolesObsWithClaimsService, authUserInfoFromAuthUser,
|
|
3041
|
+
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractSingleItemDbxFirebaseDocument, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeTriggerInstance, dbxFirebaseCollectionChangeTriggerInstanceForStore, dbxFirebaseCollectionChangeTriggerInstanceForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, enableAppCheckDebugTokenGeneration, firebaseAuthErrorToReadableError, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
|
|
3016
3042
|
//# sourceMappingURL=dereekb-dbx-firebase.mjs.map
|