@dereekb/dbx-firebase 5.2.1 → 7.0.0

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.
@@ -1,8 +1,8 @@
1
- import { urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, forEachKeyValue, readableError, isMaybeSo } from '@dereekb/util';
1
+ import { urlWithoutParameters, cachedGetter, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, forEachKeyValue, readableError, isMaybeSo, firstValue } from '@dereekb/util';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, Injectable, Inject, Optional, Component, Input, Directive, EventEmitter, Output, NgModule, Injector, forwardRef, Host } from '@angular/core';
4
4
  import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
5
- import { switchMap, from, first, map, of, shareReplay, timeout, startWith, distinctUntilChanged, BehaviorSubject, combineLatest, tap, firstValueFrom, Subject, throttleTime, NEVER, filter, take, exhaustMap } from 'rxjs';
5
+ import { switchMap, from, first, map, of, shareReplay, timeout, startWith, distinctUntilChanged, firstValueFrom, BehaviorSubject, combineLatest, tap, Subject, throttleTime, NEVER, filter, take, exhaustMap } from 'rxjs';
6
6
  import * as i1 from '@angular/fire/app-check';
7
7
  import { provideAppCheck } from '@angular/fire/app-check';
8
8
  import * as i4 from '@angular/material/button';
@@ -11,7 +11,7 @@ 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 { filterMaybe, isNot, SubscriptionObject, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, successResult, beginLoading, loadingStateFromObs, errorResult, cleanup } from '@dereekb/rxjs';
14
+ import { filterMaybe, isNot, SubscriptionObject, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, 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, AbstractSubscriptionDirective, AbstractIfDirective, LockSetComponentStore } from '@dereekb/dbx-core';
17
17
  import * as i1$1 from '@angular/fire/auth';
@@ -118,6 +118,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
118
118
  args: [DBX_FIREBASE_OPTIONS_TOKEN]
119
119
  }] }, { type: i1.AppCheck }]; } });
120
120
 
121
+ function authUserInfoFromAuthUser(user) {
122
+ return {
123
+ displayName: user?.displayName,
124
+ email: user.email,
125
+ phoneNumber: user.phoneNumber,
126
+ photoURL: user.photoURL,
127
+ uid: user.uid
128
+ };
129
+ }
130
+ function firebaseAuthTokenFromUser(user) {
131
+ return {
132
+ email: user.email,
133
+ emailVerified: user.emailVerified,
134
+ phoneNumber: user.phoneNumber
135
+ };
136
+ }
137
+
121
138
  /**
122
139
  * Derives a user state from the input firebase auth service.
123
140
  *
@@ -156,16 +173,7 @@ function readValueFromIdToken(dbxFirebaseAuthService, readBooleanFromIdToken, de
156
173
  }));
157
174
  }
158
175
 
159
- function authUserInfoFromAuthUser(user) {
160
- return {
161
- displayName: user?.displayName,
162
- email: user.email,
163
- phoneNumber: user.phoneNumber,
164
- photoURL: user.photoURL,
165
- uid: user.uid
166
- };
167
- }
168
-
176
+ // MARK: Delegate
169
177
  class DbxFirebaseAuthServiceDelegate {
170
178
  }
171
179
  const DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE = {
@@ -179,6 +187,7 @@ const DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE = {
179
187
  return dbxFirebaseAuthService.authUserState$.pipe(map((x) => x === 'user'));
180
188
  }
181
189
  };
190
+ // MARK: Service
182
191
  class DbxFirebaseAuthService {
183
192
  constructor(firebaseAuth, delegate) {
184
193
  this.firebaseAuth = firebaseAuth;
@@ -204,6 +213,21 @@ class DbxFirebaseAuthService {
204
213
  this.authUserState$ = delegate.authUserStateObs(this).pipe(distinctUntilChanged(), shareReplay(1));
205
214
  this.authRoles$ = delegate.authRolesObs(this);
206
215
  this.isOnboarded$ = delegate.isOnboarded(this);
216
+ this._authRoleClaimsService = delegate.authRoleClaimsService;
217
+ }
218
+ rolesForClaims(claims) {
219
+ let result;
220
+ if (this._authRoleClaimsService) {
221
+ return this._authRoleClaimsService.toRoles(claims);
222
+ }
223
+ else {
224
+ console.warn('DbxFirebaseAuthService: rolesForClaims called with no authRoleClaimsService provided. An empty set is returned.');
225
+ result = new Set();
226
+ }
227
+ return result;
228
+ }
229
+ getAuthContextInfo() {
230
+ return firstValueFrom(this.authUser$).then((user) => (user ? new DbxFirebaseAuthContextInfo(this, user) : undefined));
207
231
  }
208
232
  logInWithGoogle() {
209
233
  return this.logInWithPopup(new GoogleAuthProvider());
@@ -254,6 +278,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
254
278
  }], ctorParameters: function () { return [{ type: i1$1.Auth }, { type: DbxFirebaseAuthServiceDelegate, decorators: [{
255
279
  type: Optional
256
280
  }] }]; } });
281
+ /**
282
+ * FirebaseAuthContextInfo implementation from DbxFirebaseAuthService.
283
+ */
284
+ class DbxFirebaseAuthContextInfo {
285
+ constructor(service, user) {
286
+ this.service = service;
287
+ this.user = user;
288
+ this._token = cachedGetter(() => firebaseAuthTokenFromUser(this.user));
289
+ }
290
+ get uid() {
291
+ return this.user.uid;
292
+ }
293
+ loadClaims() {
294
+ return this.user.getIdTokenResult().then((x) => x.claims);
295
+ }
296
+ loadAuthRoles() {
297
+ return this.loadClaims().then((x) => this.service.rolesForClaims(x));
298
+ }
299
+ get token() {
300
+ return this._token();
301
+ }
302
+ }
257
303
 
258
304
  class DbxFirebaseLoginTermsConfig {
259
305
  }
@@ -1340,6 +1386,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
1340
1386
  }]
1341
1387
  }], ctorParameters: function () { return [{ type: DbxFirebaseLoginModuleRootConfig }, { type: DbxFirebaseAuthLoginService }]; } });
1342
1388
 
1389
+ function authRolesObsWithClaimsService(config) {
1390
+ const { addAuthUserStateToRoles: addAuthUserState, claimsService } = config;
1391
+ return (dbxFirebaseAuthService) => {
1392
+ let obs = dbxFirebaseAuthService.idTokenResult$.pipe(map((x) => claimsService.toRoles(x.claims)));
1393
+ if (addAuthUserState) {
1394
+ obs = obs.pipe(switchMap((authRoleSet) => dbxFirebaseAuthService.authUserState$.pipe(map((userState) => addToSetCopy(authRoleSet, [userState])))));
1395
+ }
1396
+ return obs;
1397
+ };
1398
+ }
1399
+ function defaultDbxFirebaseAuthServiceDelegateWithClaimsService(config) {
1400
+ return {
1401
+ authUserStateObs: DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE.authUserStateObs,
1402
+ authRolesObs: authRolesObsWithClaimsService(config),
1403
+ isOnboarded: DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE.isOnboarded,
1404
+ authRoleClaimsService: config.claimsService
1405
+ };
1406
+ }
1407
+
1343
1408
  class DbxFirebaseAuthModule {
1344
1409
  static forRoot(config) {
1345
1410
  const providers = [
@@ -1442,7 +1507,7 @@ DbxFirebaseDefaultAppCheckProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minV
1442
1507
  provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
1443
1508
  isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
1444
1509
  });
1445
- console.debug('Enabled AppCheck.');
1510
+ console.log('Enabled AppCheck.');
1446
1511
  }
1447
1512
  else {
1448
1513
  appCheck = undefined;
@@ -1473,7 +1538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
1473
1538
  provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
1474
1539
  isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
1475
1540
  });
1476
- console.debug('Enabled AppCheck.');
1541
+ console.log('Enabled AppCheck.');
1477
1542
  }
1478
1543
  else {
1479
1544
  appCheck = undefined;
@@ -2237,27 +2302,36 @@ class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
2237
2302
  super(...arguments);
2238
2303
  // MARK: Effects
2239
2304
  // MARK: Accessors
2305
+ this.currentFirestoreCollectionLike$ = this.state$.pipe(map((x) => x.firestoreCollection ?? x.firestoreCollectionLike), distinctUntilChanged(), shareReplay(1));
2240
2306
  this.currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
2307
+ this.firestoreCollectionLike$ = this.currentFirestoreCollectionLike$.pipe(filterMaybe());
2241
2308
  this.firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
2242
2309
  this.currentInputId$ = this.state$.pipe(map((x) => x.id), distinctUntilChanged(), shareReplay(1));
2243
2310
  this.inputId$ = this.currentInputId$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
2311
+ this.currentInputKey$ = this.state$.pipe(map((x) => x.key), distinctUntilChanged(), shareReplay(1));
2312
+ this.inputKey$ = this.currentInputKey$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
2244
2313
  this.currentInputRef$ = this.state$.pipe(map((x) => x.ref), distinctUntilChanged(), shareReplay(1));
2245
2314
  this.inputRef$ = this.currentInputRef$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
2246
- this.currentDocument$ = combineLatest([this.currentFirestoreCollection$, this.currentInputId$, this.currentInputRef$]).pipe(map(([collection, id, ref]) => {
2315
+ this.currentDocument$ = combineLatest([this.currentInputId$, this.currentInputKey$, this.currentInputRef$]).pipe(switchMap(([id, key, ref]) => {
2247
2316
  let document;
2248
- if (collection) {
2249
- if (ref) {
2250
- document = collection.documentAccessor().loadDocument(ref);
2251
- }
2252
- else if (id) {
2253
- document = collection.documentAccessor().loadDocumentForPath(id);
2254
- }
2317
+ if (ref) {
2318
+ document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocument(ref)));
2319
+ }
2320
+ else if (key) {
2321
+ document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocumentForKey(key)));
2322
+ }
2323
+ else if (id) {
2324
+ document = this.firestoreCollection$.pipe(map((x) => x.documentAccessor().loadDocumentForPath(id)));
2325
+ }
2326
+ else {
2327
+ document = of(undefined);
2255
2328
  }
2256
2329
  return document;
2257
2330
  }), distinctUntilChanged(), shareReplay(1));
2258
2331
  this.document$ = this.currentDocument$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
2259
2332
  this.documentLoadingState$ = this.currentDocument$.pipe(map((x) => (x ? successResult(x) : beginLoading())), shareReplay(1));
2260
2333
  this.id$ = this.document$.pipe(map((x) => x.id), shareReplay());
2334
+ this.key$ = this.document$.pipe(map((x) => x.key), shareReplay());
2261
2335
  this.ref$ = this.document$.pipe(map((x) => x.documentRef), shareReplay());
2262
2336
  this.snapshot$ = this.document$.pipe(switchMap((x) => x.accessor.stream()), shareReplay(1));
2263
2337
  this.snapshotLoadingState$ = this.currentDocument$.pipe(switchMap(() => loadingStateFromObs(this.snapshot$)), shareReplay(1));
@@ -2284,16 +2358,23 @@ class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
2284
2358
  }), shareReplay(1));
2285
2359
  this.exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), shareReplay(1));
2286
2360
  this.doesNotExist$ = this.exists$.pipe(map((x) => !x), shareReplay(1));
2361
+ this.modelIdentity$ = this.document$.pipe(map((x) => x.modelIdentity), shareReplay(1));
2287
2362
  // MARK: State Changes
2288
2363
  /**
2289
2364
  * Sets the id of the document to load.
2290
2365
  */
2291
2366
  this.setId = this.updater((state, id) => (id ? { ...state, id, ref: undefined } : { ...state, id }));
2367
+ /**
2368
+ * Sets the key of the document to load.
2369
+ */
2370
+ this.setKey = this.updater((state, key) => (key ? { ...state, key, ref: undefined } : { ...state, key }));
2292
2371
  /**
2293
2372
  * Sets the ref of the document to load.
2294
2373
  */
2295
2374
  this.setRef = this.updater((state, ref) => (ref ? { ...state, id: undefined, ref } : { ...state, ref }));
2375
+ this.clearRefs = this.updater((state) => ({ ...state, id: undefined, key: undefined, ref: undefined }));
2296
2376
  this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
2377
+ this.setFirestoreCollectionLike = this.updater((state, firestoreCollectionLike) => ({ ...state, firestoreCollectionLike }));
2297
2378
  }
2298
2379
  }
2299
2380
  AbstractDbxFirebaseDocumentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
@@ -2302,6 +2383,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
2302
2383
  type: Injectable
2303
2384
  }] });
2304
2385
 
2386
+ /**
2387
+ * Creates a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseCreateFunction result and sets the key of the created value.
2388
+ *
2389
+ * @param store
2390
+ * @param fn
2391
+ * @returns
2392
+ */
2393
+ function firebaseDocumentStoreCreateFunction(store, fn) {
2394
+ return (params) => loadingStateFromObs(lazyFrom(() => fn(params).then((result) => {
2395
+ const modelKeys = result.modelKeys;
2396
+ const firstKey = firstValue(modelKeys);
2397
+ if (firstKey) {
2398
+ store.setKey(firstKey);
2399
+ }
2400
+ return result;
2401
+ })));
2402
+ }
2403
+ function firebaseDocumentStoreUpdateFunction(store, fn) {
2404
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn({
2405
+ ...params,
2406
+ key // inject key into the parameters.
2407
+ }))));
2408
+ }
2409
+ /**
2410
+ * Deletes a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseDeleteFunction result and sets the key of the created value.
2411
+ *
2412
+ * @param store
2413
+ * @param fn
2414
+ * @returns
2415
+ */
2416
+ function firebaseDocumentStoreDeleteFunction(store, fn) {
2417
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn({
2418
+ ...params,
2419
+ key // inject key into the parameters.
2420
+ }).then((result) => {
2421
+ store.clearRefs();
2422
+ return result;
2423
+ }))));
2424
+ }
2425
+
2305
2426
  function setParentStoreEffect(store) {
2306
2427
  return store.effect((input) => {
2307
2428
  return input.pipe(map((parentStore) => {
@@ -2499,5 +2620,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
2499
2620
  * Generated bundle index. Do not edit.
2500
2621
  */
2501
2622
 
2502
- export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY, 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_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, 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, DbxFirestoreContextService, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthService, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, defaultFirebaseAuthLoginProvidersFactory, enableAppCheckDebugTokenGeneration, firebaseAuthErrorToReadableError, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, readValueFromIdToken, setParentStoreEffect };
2623
+ export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY, 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_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, 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, DbxFirestoreContextService, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthService, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, enableAppCheckDebugTokenGeneration, firebaseAuthErrorToReadableError, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, readValueFromIdToken, setParentStoreEffect };
2503
2624
  //# sourceMappingURL=dereekb-dbx-firebase.mjs.map