@dereekb/dbx-firebase 8.12.5 → 8.12.8

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,21 +1,23 @@
1
1
  import { AuthUserState } from '@dereekb/dbx-core';
2
+ import { ObservableOrValue } from '@dereekb/rxjs';
2
3
  import { IdTokenResult } from 'firebase/auth';
3
4
  import { Observable } from 'rxjs';
4
- import { DbxFirebaseAuthService } from './firebase.auth.service';
5
+ import { AuthUserStateObsFunction, DbxFirebaseAuthService } from './firebase.auth.service';
5
6
  /**
6
- * Derives a user state from the input firebase auth service.
7
+ * Creates a AuthUserStateObsFunction that derives a user state from the input firebase auth service, and the optional stateForLoggedInUser input
7
8
  *
8
- * @param dbxFirebaseAuthService
9
9
  * @param stateForLoggedInUser Optional function that returns an observable for the user's state if they are logged in and not an anonymous user.
10
10
  * @returns
11
11
  */
12
- export declare function authUserStateFromFirebaseAuthService(dbxFirebaseAuthService: DbxFirebaseAuthService, stateForLoggedInUser?: (dbxFirebaseAuthService: DbxFirebaseAuthService) => Observable<AuthUserState>): Observable<AuthUserState>;
12
+ export declare function authUserStateFromFirebaseAuthServiceFunction(stateForLoggedInUser?: AuthUserStateObsFunction): AuthUserStateObsFunction;
13
+ export declare type StateFromTokenFunction = (token: IdTokenResult) => ObservableOrValue<AuthUserState>;
14
+ export declare function stateFromTokenForLoggedInUserFunction(stateFromToken: StateFromTokenFunction, defaultState?: AuthUserState): AuthUserStateObsFunction;
13
15
  /**
14
16
  * Convenience function to read a value from an IdTokenResult off of the current user.
15
17
  *
16
18
  * @param dbxFirebaseAuthService
17
- * @param readBooleanFromIdToken
19
+ * @param readValueFromIdToken
18
20
  * @param defaultValue
19
21
  * @returns
20
22
  */
21
- export declare function readValueFromIdToken<T>(dbxFirebaseAuthService: DbxFirebaseAuthService, readBooleanFromIdToken: (idToken: IdTokenResult) => Observable<T>, defaultValue: T): Observable<T>;
23
+ export declare function readValueFromIdToken<T>(dbxFirebaseAuthService: DbxFirebaseAuthService, readValueFromIdToken: (idToken: IdTokenResult) => ObservableOrValue<T>, defaultValue: T): Observable<T>;
@@ -5,9 +5,13 @@ import { AuthClaims, AuthClaimsObject, AuthRoleClaimsService, AuthRoleSet, Maybe
5
5
  import { AuthUserInfo } from '../auth';
6
6
  import { FirebaseAuthContextInfo, FirebaseAuthToken } from '@dereekb/firebase';
7
7
  import * as i0 from "@angular/core";
8
+ /**
9
+ * Returns an observable that returns the state of the
10
+ */
11
+ export declare type AuthUserStateObsFunction = (dbxFirebaseAuthService: DbxFirebaseAuthService) => Observable<AuthUserState>;
8
12
  export declare abstract class DbxFirebaseAuthServiceDelegate {
9
13
  fullControlOfAuthUserState?: boolean;
10
- abstract authUserStateObs(dbxFirebaseAuthService: DbxFirebaseAuthService): Observable<AuthUserState>;
14
+ abstract authUserStateObs: AuthUserStateObsFunction;
11
15
  abstract authRolesObs(dbxFirebaseAuthService: DbxFirebaseAuthService): Observable<AuthRoleSet>;
12
16
  abstract isOnboarded(dbxFirebaseAuthService: DbxFirebaseAuthService): Observable<boolean>;
13
17
  /**
@@ -33,6 +37,8 @@ export declare class DbxFirebaseAuthService implements DbxAuthService {
33
37
  readonly onLogOut$: Observable<void>;
34
38
  readonly userIdentifier$: Observable<AuthUserIdentifier>;
35
39
  readonly uid$: Observable<AuthUserIdentifier>;
40
+ readonly currentIdTokenString$: Observable<Maybe<string>>;
41
+ readonly idTokenString$: Observable<string>;
36
42
  readonly idTokenResult$: Observable<IdTokenResult>;
37
43
  readonly claims$: Observable<ParsedToken>;
38
44
  readonly currentAuthContextInfo$: Observable<Maybe<DbxFirebaseAuthContextInfo>>;
@@ -1,7 +1,19 @@
1
1
  import { AuthClaimsObject, AuthRoleClaimsService, AuthRoleSet } from '@dereekb/util';
2
2
  import { Observable } from 'rxjs';
3
- import { DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate } from './firebase.auth.service';
4
- export interface AuthRolesObsWithClaimsServiceConfig<T extends AuthClaimsObject> extends Partial<Pick<DbxFirebaseAuthServiceDelegate, 'isAdminInAuthRoleSet'>> {
3
+ import { StateFromTokenFunction } from './firebase.auth.rxjs';
4
+ import { AuthUserStateObsFunction, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate } from './firebase.auth.service';
5
+ export interface AuthRolesObsWithClaimsServiceConfig<T extends AuthClaimsObject> extends Partial<Pick<DbxFirebaseAuthServiceDelegate, 'isAdminInAuthRoleSet' | 'authUserStateObs'>> {
6
+ /**
7
+ * (Optional) alternative to supplying authUserStateObs. Is passed to authUserStateFromFirebaseAuthService.
8
+ */
9
+ readonly stateForLoggedInUser?: AuthUserStateObsFunction;
10
+ /**
11
+ * (Optional) alternative to supplying authUserStateObs.
12
+ */
13
+ readonly stateForLoggedInUserToken?: StateFromTokenFunction;
14
+ /**
15
+ * Claims service to use for decoding.
16
+ */
5
17
  readonly claimsService: AuthRoleClaimsService<T>;
6
18
  /**
7
19
  * Whether or not to also add the current AuthUserState value to decoded roles.
@@ -1,7 +1,7 @@
1
- import { FirestoreModelKeyRef, ModelFirebaseCreateFunction, ModelFirebaseDeleteFunction, ModelFirebaseUpdateFunction, OnCallCreateModelResult } from '@dereekb/firebase';
1
+ import { ModelFirebaseCreateFunction, ModelFirebaseDeleteFunction, ModelFirebaseUpdateFunction, OnCallCreateModelResult, TargetModelParams, InferredTargetModelParams } from '@dereekb/firebase';
2
2
  import { LoadingState } from '@dereekb/rxjs';
3
+ import { PartialOnKeys } from '@dereekb/util';
3
4
  import { Observable } from 'rxjs';
4
- import { Writable } from 'ts-essentials';
5
5
  import { DbxFirebaseDocumentStore } from './store.document';
6
6
  export declare type DbxFirebaseDocumentStoreCreateFunction<I, O extends OnCallCreateModelResult = OnCallCreateModelResult> = (params: I) => Observable<LoadingState<O>>;
7
7
  /**
@@ -12,16 +12,32 @@ export declare type DbxFirebaseDocumentStoreCreateFunction<I, O extends OnCallCr
12
12
  * @returns
13
13
  */
14
14
  export declare function firebaseDocumentStoreCreateFunction<I, O extends OnCallCreateModelResult = OnCallCreateModelResult>(store: DbxFirebaseDocumentStore<any, any>, fn: ModelFirebaseCreateFunction<I, O>): DbxFirebaseDocumentStoreCreateFunction<I, O>;
15
- export declare type DbxFirebaseDocumentStoreUpdateParams = Partial<Writable<FirestoreModelKeyRef>>;
16
- export declare type DbxFirebaseDocumentStoreUpdateFunction<I extends DbxFirebaseDocumentStoreUpdateParams> = (params: I) => Observable<LoadingState<void>>;
17
- export declare function firebaseDocumentStoreUpdateFunction<I extends DbxFirebaseDocumentStoreUpdateParams>(store: DbxFirebaseDocumentStore<any, any>, fn: ModelFirebaseUpdateFunction<I>): DbxFirebaseDocumentStoreUpdateFunction<I>;
18
- export declare type DbxFirebaseDocumentStoreDeleteParams = Partial<Writable<FirestoreModelKeyRef>>;
19
- export declare type DbxFirebaseDocumentStoreDeleteFunction<I extends DbxFirebaseDocumentStoreDeleteParams> = (params: I) => Observable<LoadingState<void>>;
20
15
  /**
21
- * Deletes a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseDeleteFunction result and sets the key of the created value.
16
+ * A parameter that refers to a specific key.
17
+ */
18
+ export declare type DbxFirebaseDocumentStoreFunctionParams = TargetModelParams | InferredTargetModelParams;
19
+ /**
20
+ * Used for the input to related functions
21
+ */
22
+ export declare type DbxFirebaseDocumentStoreFunctionParamsInput<I extends DbxFirebaseDocumentStoreFunctionParams> = PartialOnKeys<I, 'key'>;
23
+ export declare type DbxFirebaseDocumentStoreFunction<I extends DbxFirebaseDocumentStoreFunctionParams, O = void> = (params: DbxFirebaseDocumentStoreFunctionParamsInput<I>) => Observable<LoadingState<O>>;
24
+ /**
25
+ * Creates a DbxFirebaseDocumentStoreFunction for update.
26
+ *
27
+ * The store's current key is always injected into the params of the request.
28
+ *
29
+ * @param store
30
+ * @param fn
31
+ * @returns
32
+ */
33
+ export declare function firebaseDocumentStoreUpdateFunction<I extends DbxFirebaseDocumentStoreFunctionParams, O = void>(store: DbxFirebaseDocumentStore<any, any>, fn: ModelFirebaseUpdateFunction<I, O>): DbxFirebaseDocumentStoreFunction<I, O>;
34
+ /**
35
+ * Creates a DbxFirebaseDocumentStoreFunction for delete.
36
+ *
37
+ * The store's current key is always injected into the params of the request.
22
38
  *
23
39
  * @param store
24
40
  * @param fn
25
41
  * @returns
26
42
  */
27
- export declare function firebaseDocumentStoreDeleteFunction<I>(store: DbxFirebaseDocumentStore<any, any>, fn: ModelFirebaseDeleteFunction<I>): DbxFirebaseDocumentStoreDeleteFunction<I>;
43
+ export declare function firebaseDocumentStoreDeleteFunction<I extends DbxFirebaseDocumentStoreFunctionParams, O = void>(store: DbxFirebaseDocumentStore<any, any>, fn: ModelFirebaseDeleteFunction<I, O>): DbxFirebaseDocumentStoreFunction<I, O>;
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-firebase",
3
- "version": "8.12.5",
3
+ "version": "8.12.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0",
7
- "@dereekb/util": "8.12.5",
7
+ "@dereekb/util": "8.12.8",
8
8
  "firebase": "^9.8.0",
9
9
  "rxjs": "^7.0.0",
10
10
  "@angular/fire": "^7.4.1",
11
- "@dereekb/firebase": "8.12.5",
12
- "@dereekb/dbx-core": "8.12.5",
11
+ "@dereekb/firebase": "8.12.8",
12
+ "@dereekb/dbx-core": "8.12.8",
13
13
  "@angular/material": "^13.0.0",
14
- "@dereekb/dbx-web": "8.12.5",
15
- "@dereekb/dbx-form": "8.12.5"
14
+ "@dereekb/dbx-web": "8.12.8",
15
+ "@dereekb/dbx-form": "8.12.8"
16
16
  },
17
17
  "dependencies": {
18
18
  "tslib": "^2.3.0"