@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.
- 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 +9 -9
- package/esm2020/lib/model/store/store.document.crud.mjs +15 -2
- package/fesm2015/dereekb-dbx-firebase.mjs +52 -29
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +51 -28
- 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 +7 -1
- package/lib/auth/service/firebase.auth.service.delegate.d.ts +14 -2
- package/lib/model/store/store.document.crud.d.ts +25 -9
- package/package.json +6 -6
|
@@ -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
|
-
*
|
|
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
|
|
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
|
|
19
|
+
* @param readValueFromIdToken
|
|
18
20
|
* @param defaultValue
|
|
19
21
|
* @returns
|
|
20
22
|
*/
|
|
21
|
-
export declare function readValueFromIdToken<T>(dbxFirebaseAuthService: DbxFirebaseAuthService,
|
|
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
|
|
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 {
|
|
4
|
-
|
|
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 {
|
|
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
|
-
*
|
|
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>):
|
|
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.
|
|
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.
|
|
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.
|
|
12
|
-
"@dereekb/dbx-core": "8.12.
|
|
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.
|
|
15
|
-
"@dereekb/dbx-form": "8.12.
|
|
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"
|