@dereekb/dbx-firebase 13.11.3 → 13.11.5
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/fesm2022/dereekb-dbx-firebase-oidc.mjs +685 -222
- package/fesm2022/dereekb-dbx-firebase-oidc.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-firebase.mjs +36 -1
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/package.json +11 -11
- package/types/dereekb-dbx-firebase-oidc.d.ts +425 -171
- package/types/dereekb-dbx-firebase.d.ts +36 -1
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal, OnDestroy, Type, OnInit, EnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as _dereekb_util from '@dereekb/util';
|
|
4
4
|
import { Maybe, ErrorInput } from '@dereekb/util';
|
|
5
5
|
import * as _dereekb_dbx_core from '@dereekb/dbx-core';
|
|
6
6
|
import { DbxInjectionComponentConfig, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';
|
|
7
|
+
import { WorkUsingContext } from '@dereekb/rxjs';
|
|
7
8
|
import * as _dereekb_firebase from '@dereekb/firebase';
|
|
8
|
-
import { OAuthInteractionLoginDetails,
|
|
9
|
+
import { OidcScope, OAuthInteractionLoginDetails, OAuthInteractionConsentResponse, OidcInteractionUid, OidcTokenEndpointAuthMethod, OidcRedirectUri, OidcScopeDetails, CreateOidcClientParams, UpdateOidcClientFieldParams, OidcEntry, OidcEntryDocument, OidcModelFunctions, CreateOidcClientResult, RotateOidcClientSecretResult, FirestoreQueryConstraint, OidcModelFirestoreCollections, OAuthInteractionLoginResponse, OAuthInteractionConsentRequest } from '@dereekb/firebase';
|
|
10
|
+
import { FormConfig, ContainerField, RegisteredFieldTypes } from '@ng-forge/dynamic-forms';
|
|
11
|
+
import { AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListViewItemComponent, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewConfig, DbxActionConfirmConfig, DbxValueAsListItem } from '@dereekb/dbx-web';
|
|
9
12
|
import * as _dereekb_dbx_form from '@dereekb/dbx-form';
|
|
10
13
|
import { AbstractConfigAsyncForgeFormDirective } from '@dereekb/dbx-form';
|
|
11
|
-
import * as _ng_forge_dynamic_forms_material from '@ng-forge/dynamic-forms-material';
|
|
12
|
-
import { ContainerField, FormConfig, RegisteredFieldTypes } from '@ng-forge/dynamic-forms';
|
|
13
14
|
import * as rxjs from 'rxjs';
|
|
14
15
|
import { Observable } from 'rxjs';
|
|
15
|
-
import
|
|
16
|
-
import { WorkUsingContext } from '@dereekb/rxjs';
|
|
16
|
+
import * as _ng_forge_dynamic_forms_material from '@ng-forge/dynamic-forms-material';
|
|
17
17
|
import * as _dereekb_dbx_firebase from '@dereekb/dbx-firebase';
|
|
18
|
-
import { AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseCollectionStore, DbxFirebaseCollectionStoreDirective, DbxFirebaseDocumentStoreDirective } from '@dereekb/dbx-firebase';
|
|
18
|
+
import { AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseCollectionStore, DbxFirebaseCollectionStoreDirective, DbxFirebaseAuthService, DbxFirebaseDocumentStoreDirective } from '@dereekb/dbx-firebase';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* State cases for the OIDC login interaction flow.
|
|
22
|
+
*
|
|
23
|
+
* - `'unknown'` — Firebase auth state has not yet resolved. Render nothing/spinner to avoid flashing.
|
|
24
|
+
* - `'no_user'` — Auth resolved and there is no signed-in user. Project the login UI via ng-content.
|
|
25
|
+
* - `'user'` — Auth resolved and a user is signed in.
|
|
26
|
+
* - `'submitting'` — Submitting the ID token to the OIDC interaction endpoint.
|
|
27
|
+
* - `'error'` — Submission failed; allow retry.
|
|
22
28
|
*/
|
|
23
|
-
type OidcLoginStateCase = 'no_user' | 'user' | 'submitting' | 'error';
|
|
29
|
+
type OidcLoginStateCase = 'unknown' | 'no_user' | 'user' | 'submitting' | 'error';
|
|
24
30
|
/**
|
|
25
31
|
* Presentational component for the OIDC OAuth login interaction.
|
|
26
32
|
*
|
|
@@ -36,69 +42,163 @@ type OidcLoginStateCase = 'no_user' | 'user' | 'submitting' | 'error';
|
|
|
36
42
|
* ```
|
|
37
43
|
*/
|
|
38
44
|
declare class DbxFirebaseOAuthLoginViewComponent {
|
|
39
|
-
readonly loginStateCase:
|
|
40
|
-
readonly error:
|
|
41
|
-
readonly resolvedError:
|
|
42
|
-
readonly retryClick:
|
|
43
|
-
static ɵfac:
|
|
44
|
-
static ɵcmp:
|
|
45
|
+
readonly loginStateCase: i0.InputSignal<OidcLoginStateCase>;
|
|
46
|
+
readonly error: i0.InputSignal<Maybe<string | ErrorInput>>;
|
|
47
|
+
readonly resolvedError: i0.Signal<Maybe<ErrorInput>>;
|
|
48
|
+
readonly retryClick: i0.OutputEmitterRef<void>;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthLoginViewComponent, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthLoginViewComponent, "dbx-firebase-oauth-login-view", never, { "loginStateCase": { "alias": "loginStateCase"; "required": true; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "retryClick": "retryClick"; }, never, ["*"], true, never>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
interface OAuthConsentScope<T extends OidcScope = OidcScope> {
|
|
54
|
+
readonly name: T;
|
|
55
|
+
readonly description: string;
|
|
45
56
|
}
|
|
46
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Validator key emitted when the user has not selected any optional scope.
|
|
60
|
+
* Surfaces alongside the form's invalid state so the action button stays disabled.
|
|
61
|
+
*/
|
|
62
|
+
declare const OAUTH_CONSENT_SCOPES_REQUIRED_VALIDATOR_KIND = "mustSelectAtLeastOneScope";
|
|
63
|
+
/**
|
|
64
|
+
* Default message shown when the user has cleared every optional scope.
|
|
65
|
+
*/
|
|
66
|
+
declare const OAUTH_CONSENT_SCOPES_REQUIRED_VALIDATOR_DEFAULT_MESSAGE = "Select at least one scope to grant.";
|
|
67
|
+
/**
|
|
68
|
+
* Form value emitted by the consent scopes form.
|
|
69
|
+
*
|
|
70
|
+
* Uses the same key as the `OAuthInteractionConsentRequest.grantedOIDCScopes`
|
|
71
|
+
* payload field so the consent action handler can pass the form value through
|
|
72
|
+
* directly.
|
|
73
|
+
*/
|
|
74
|
+
interface OAuthConsentScopesFormValue {
|
|
75
|
+
readonly grantedOIDCScopes: OidcScope[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Configuration for the consent scopes form.
|
|
79
|
+
*
|
|
80
|
+
* Required scopes are filtered out by the caller before being passed in —
|
|
81
|
+
* required scopes are surfaced separately as a static "Always granted" line
|
|
82
|
+
* because they are not user-selectable.
|
|
83
|
+
*/
|
|
84
|
+
interface OAuthConsentScopesFormFieldsConfig {
|
|
85
|
+
/**
|
|
86
|
+
* Optional scopes the user can choose to grant.
|
|
87
|
+
*/
|
|
88
|
+
readonly optionalScopes: readonly OAuthConsentScope[];
|
|
89
|
+
/**
|
|
90
|
+
* Initial selection set. Defaults to every optional scope being selected.
|
|
91
|
+
*/
|
|
92
|
+
readonly initiallySelected?: readonly OidcScope[];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Builds a complete `FormConfig` ready to feed into a forge form component.
|
|
96
|
+
*
|
|
97
|
+
* The resulting form has a single `grantedOIDCScopes` field — a
|
|
98
|
+
* `dbxForgeListSelectionField` rendered through
|
|
99
|
+
* `DbxFirebaseOAuthConsentScopeListComponent` (a `dbx-list` selection wrapper).
|
|
100
|
+
* The list renders bare (no Material form-field wrapper) and without the
|
|
101
|
+
* default 300px height cap so it grows to fit the scope list.
|
|
102
|
+
*
|
|
103
|
+
* @param config - The consent scopes form fields configuration.
|
|
104
|
+
* @returns A `FormConfig` whose single field selects an `OidcScope[]` of granted scopes.
|
|
105
|
+
*/
|
|
106
|
+
declare function oauthConsentScopesFormConfig(config: OAuthConsentScopesFormFieldsConfig): FormConfig;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* State cases for the OIDC consent interaction flow.
|
|
110
|
+
*
|
|
111
|
+
* - `'unknown'` — Firebase auth state has not yet resolved. Render a spinner
|
|
112
|
+
* to avoid flashing between states.
|
|
113
|
+
* - `'no_user'` — Auth resolved and there is no signed-in user. Project the
|
|
114
|
+
* login UI via ng-content.
|
|
115
|
+
* - `'user'` — Auth resolved and a user is signed in. Render the consent
|
|
116
|
+
* form. Submission progress and errors are managed by the inner
|
|
117
|
+
* `dbxAction` contexts and surfaced via `dbxActionSnackbarError`.
|
|
118
|
+
*/
|
|
119
|
+
type OidcConsentStateCase = 'unknown' | 'no_user' | 'user';
|
|
47
120
|
/**
|
|
48
121
|
* Presentational component for the OIDC OAuth consent screen.
|
|
49
122
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
123
|
+
* Wires up two `dbxAction` contexts — an outer one for Approve (which hosts
|
|
124
|
+
* the scope-selection forge form via `dbxActionForm`) and a nested one for
|
|
125
|
+
* Deny (which carries no value). Buttons are bound by Angular DI's
|
|
126
|
+
* nearest-ancestor lookup: the Approve button picks up the outer action, the
|
|
127
|
+
* Deny button (wrapped in its own `<ng-container dbxAction>`) picks up the
|
|
128
|
+
* inner.
|
|
129
|
+
*
|
|
130
|
+
* Supports ng-content projection — anything provided is rendered for the
|
|
131
|
+
* `'no_user'` state (so apps can project a login view, mirroring
|
|
132
|
+
* `DbxFirebaseOAuthLoginViewComponent`).
|
|
53
133
|
*
|
|
54
134
|
* @example
|
|
55
135
|
* ```html
|
|
56
136
|
* <dbx-firebase-oauth-consent-view
|
|
57
137
|
* [details]="loginDetails"
|
|
58
|
-
* [
|
|
138
|
+
* [consentStateCase]="'user'"
|
|
59
139
|
* [scopeInjectionConfig]="scopeConfig"
|
|
60
|
-
*
|
|
61
|
-
*
|
|
140
|
+
* [approveHandler]="handleApprove"
|
|
141
|
+
* [denyHandler]="handleDeny">
|
|
62
142
|
* </dbx-firebase-oauth-consent-view>
|
|
63
143
|
* ```
|
|
64
144
|
*/
|
|
65
145
|
declare class DbxFirebaseOAuthConsentViewComponent {
|
|
66
|
-
readonly details:
|
|
67
|
-
readonly
|
|
68
|
-
readonly
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
readonly
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
readonly
|
|
146
|
+
readonly details: i0.InputSignal<Maybe<OAuthInteractionLoginDetails<string>>>;
|
|
147
|
+
readonly consentStateCase: i0.InputSignal<OidcConsentStateCase>;
|
|
148
|
+
readonly scopeInjectionConfig: i0.InputSignal<DbxInjectionComponentConfig<unknown>>;
|
|
149
|
+
/**
|
|
150
|
+
* Scopes that cannot be deselected by the user. Forwarded to the scope
|
|
151
|
+
* view so it can render an "Always granted" hint. Defaults to `['openid']`.
|
|
152
|
+
*/
|
|
153
|
+
readonly requiredScopes: i0.InputSignal<readonly string[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Approve handler — called with the form value when the Approve button
|
|
156
|
+
* triggers the outer action. Receives a `WorkUsingContext` to drive the
|
|
157
|
+
* action's loading/success/error pipeline.
|
|
158
|
+
*/
|
|
159
|
+
readonly approveHandler: i0.InputSignal<WorkUsingContext<OAuthConsentScopesFormValue, OAuthInteractionConsentResponse>>;
|
|
160
|
+
/**
|
|
161
|
+
* Deny handler — called when the Deny button triggers the inner action.
|
|
162
|
+
* No value is passed (`dbxActionValue` provides an empty payload).
|
|
163
|
+
*/
|
|
164
|
+
readonly denyHandler: i0.InputSignal<WorkUsingContext<void, OAuthInteractionConsentResponse>>;
|
|
165
|
+
readonly clientName: Signal<string>;
|
|
166
|
+
readonly clientUri: Signal<Maybe<string>>;
|
|
167
|
+
readonly logoUri: Signal<Maybe<string>>;
|
|
168
|
+
readonly scopes: Signal<OidcScope[]>;
|
|
169
|
+
readonly resolvedScopeInjectionConfig: Signal<DbxInjectionComponentConfig<unknown>>;
|
|
170
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentViewComponent, never>;
|
|
171
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentViewComponent, "dbx-firebase-oauth-consent-view", never, { "details": { "alias": "details"; "required": false; "isSignal": true; }; "consentStateCase": { "alias": "consentStateCase"; "required": true; "isSignal": true; }; "scopeInjectionConfig": { "alias": "scopeInjectionConfig"; "required": true; "isSignal": true; }; "requiredScopes": { "alias": "requiredScopes"; "required": false; "isSignal": true; }; "approveHandler": { "alias": "approveHandler"; "required": true; "isSignal": true; }; "denyHandler": { "alias": "denyHandler"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
85
172
|
}
|
|
86
173
|
|
|
87
174
|
/**
|
|
88
|
-
* Data provided to consent scope view components via the
|
|
175
|
+
* Data provided to consent scope view components via the
|
|
176
|
+
* `DBX_INJECTION_COMPONENT_DATA` token.
|
|
89
177
|
*
|
|
90
|
-
*
|
|
178
|
+
* Carries the requested scopes plus surrounding interaction context. The
|
|
179
|
+
* form value (current granted scopes) is no longer carried here — the
|
|
180
|
+
* scope view's form is wired up via `dbxActionForm` to the parent's
|
|
181
|
+
* `dbxAction`, so the value pipeline runs through the action store at
|
|
182
|
+
* trigger time.
|
|
91
183
|
*/
|
|
92
184
|
interface DbxFirebaseOAuthConsentScopesViewData {
|
|
93
185
|
readonly details?: Maybe<OAuthInteractionLoginDetails>;
|
|
94
186
|
readonly scopes: OidcScope[];
|
|
95
187
|
readonly clientName: string;
|
|
188
|
+
/**
|
|
189
|
+
* Scopes that must always be granted. Surfaced separately so the scope
|
|
190
|
+
* view can render them as a static "Always granted" hint instead of
|
|
191
|
+
* making them user-selectable.
|
|
192
|
+
*/
|
|
193
|
+
readonly requiredScopes?: readonly OidcScope[];
|
|
96
194
|
}
|
|
97
195
|
/**
|
|
98
196
|
* Abstract base class for consent scope view components.
|
|
99
197
|
*
|
|
100
|
-
* Provides typed access to the `DbxFirebaseOAuthConsentScopesViewData`
|
|
101
|
-
* via `DBX_INJECTION_COMPONENT_DATA`. Subclasses
|
|
198
|
+
* Provides typed access to the `DbxFirebaseOAuthConsentScopesViewData`
|
|
199
|
+
* injected via `DBX_INJECTION_COMPONENT_DATA`. Subclasses define the
|
|
200
|
+
* template that renders the requested scopes and (optionally) hosts a
|
|
201
|
+
* forge form decorated with `dbxActionForm`.
|
|
102
202
|
*
|
|
103
203
|
* @example
|
|
104
204
|
* ```typescript
|
|
@@ -108,39 +208,111 @@ interface DbxFirebaseOAuthConsentScopesViewData {
|
|
|
108
208
|
*/
|
|
109
209
|
declare abstract class AbstractDbxFirebaseOAuthConsentScopeViewComponent {
|
|
110
210
|
private readonly data;
|
|
111
|
-
readonly details:
|
|
112
|
-
readonly scopes:
|
|
113
|
-
readonly clientName:
|
|
114
|
-
readonly clientUri:
|
|
115
|
-
readonly logoUri:
|
|
211
|
+
readonly details: i0.Signal<Maybe<OAuthInteractionLoginDetails<string>>>;
|
|
212
|
+
readonly scopes: i0.Signal<string[]>;
|
|
213
|
+
readonly clientName: i0.Signal<string>;
|
|
214
|
+
readonly clientUri: i0.Signal<Maybe<string>>;
|
|
215
|
+
readonly logoUri: i0.Signal<Maybe<string>>;
|
|
216
|
+
readonly requiredScopes: i0.Signal<readonly string[]>;
|
|
217
|
+
isScopeRequired(scope: OidcScope): boolean;
|
|
116
218
|
}
|
|
117
219
|
|
|
118
220
|
/**
|
|
119
|
-
*
|
|
221
|
+
* Selection-list wrapper used as the `listComponentClass` for the OIDC
|
|
222
|
+
* consent scope `dbxForgeListSelectionField`.
|
|
223
|
+
*
|
|
224
|
+
* Reuses the workspace's `dbx-list` selection infrastructure so the existing
|
|
225
|
+
* scope-row visual treatment (name + description) remains intact while the
|
|
226
|
+
* selection state participates in the surrounding `dbxAction`/`dbxActionForm`
|
|
227
|
+
* pipeline.
|
|
120
228
|
*
|
|
121
229
|
* @example
|
|
122
|
-
* ```
|
|
123
|
-
* <
|
|
230
|
+
* ```ts
|
|
231
|
+
* dbxForgeListSelectionField<OAuthConsentScope, DbxFirebaseOAuthConsentScopeListComponent, OidcScope>({
|
|
232
|
+
* key: 'grantedOIDCScopes',
|
|
233
|
+
* props: {
|
|
234
|
+
* listComponentClass: of(DbxFirebaseOAuthConsentScopeListComponent),
|
|
235
|
+
* readKey: (scope) => scope.name,
|
|
236
|
+
* state$: of(successResult(optionalScopes)),
|
|
237
|
+
* wrapped: false,
|
|
238
|
+
* maxHeight: 'none'
|
|
239
|
+
* }
|
|
240
|
+
* });
|
|
124
241
|
* ```
|
|
125
242
|
*/
|
|
126
|
-
declare class DbxFirebaseOAuthConsentScopeListComponent {
|
|
127
|
-
|
|
128
|
-
static ɵfac:
|
|
129
|
-
static ɵcmp:
|
|
243
|
+
declare class DbxFirebaseOAuthConsentScopeListComponent extends AbstractDbxSelectionListWrapperDirective<OAuthConsentScope> {
|
|
244
|
+
constructor();
|
|
245
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentScopeListComponent, never>;
|
|
246
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentScopeListComponent, "dbx-firebase-oauth-consent-scope-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Selection list view that pairs with `DbxFirebaseOAuthConsentScopeListComponent`.
|
|
250
|
+
* Maps each `OAuthConsentScope` to a `DbxValueListItem` keyed by the scope name
|
|
251
|
+
* and renders it through `DbxFirebaseOAuthConsentScopeListItemComponent`.
|
|
252
|
+
*/
|
|
253
|
+
declare class DbxFirebaseOAuthConsentScopeListViewComponent extends AbstractDbxSelectionListViewDirective<OAuthConsentScope> {
|
|
254
|
+
readonly config: DbxSelectionValueListViewConfig<OAuthConsentScope>;
|
|
255
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentScopeListViewComponent, never>;
|
|
256
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentScopeListViewComponent, "dbx-firebase-oauth-consent-scope-list-view", never, {}, {}, never, never, true, never>;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Item row inside the OIDC consent scope selection list. Shown as the visual
|
|
260
|
+
* row for both selected and unselected scopes — the selection chrome (the
|
|
261
|
+
* leading checkbox/highlight) is provided by the wrapping
|
|
262
|
+
* `dbx-selection-list-view`.
|
|
263
|
+
*/
|
|
264
|
+
declare class DbxFirebaseOAuthConsentScopeListItemComponent extends AbstractDbxValueListViewItemComponent<OAuthConsentScope> {
|
|
265
|
+
get name(): string;
|
|
266
|
+
get description(): string;
|
|
267
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentScopeListItemComponent, never>;
|
|
268
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentScopeListItemComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
130
269
|
}
|
|
131
270
|
|
|
132
271
|
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
272
|
+
* Reusable forge form component that renders one checkbox per OIDC scope
|
|
273
|
+
* defined in {@link OAuthConsentScopesFormFieldsConfig}. Required scopes are
|
|
274
|
+
* rendered as checked-and-disabled.
|
|
135
275
|
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
276
|
+
* Pair with `<dbx-firebase-oauth-consent-scope-default-view>` for the default
|
|
277
|
+
* consent flow, or embed directly in custom consent UIs that supply their
|
|
278
|
+
* own scope/required configuration.
|
|
138
279
|
*/
|
|
139
|
-
declare class
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
static
|
|
143
|
-
|
|
280
|
+
declare class DbxFirebaseOAuthConsentScopeFormComponent extends AbstractConfigAsyncForgeFormDirective<OAuthConsentScopesFormValue, OAuthConsentScopesFormFieldsConfig> {
|
|
281
|
+
readonly formConfig$: Observable<Maybe<FormConfig>>;
|
|
282
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentScopeFormComponent, never>;
|
|
283
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentScopeFormComponent, "dbx-firebase-oauth-consent-scope-form", never, {}, {}, never, never, true, never>;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Default consent scope view component.
|
|
288
|
+
*
|
|
289
|
+
* Reads the requested scopes (and required scopes) from the
|
|
290
|
+
* `DBX_INJECTION_COMPONENT_DATA` provided by the parent consent view,
|
|
291
|
+
* resolves human-readable descriptions from the app-level
|
|
292
|
+
* `DbxFirebaseOidcConfigService`, then renders a
|
|
293
|
+
* `DbxFirebaseOAuthConsentScopeFormComponent` with `dbxActionForm` so the
|
|
294
|
+
* form's value participates in the surrounding `dbxAction` (the consent
|
|
295
|
+
* view's outer Approve action).
|
|
296
|
+
*
|
|
297
|
+
* Required scopes are not user-selectable. They are surfaced as an "Always
|
|
298
|
+
* granted" hint above the form because the server enforces them regardless
|
|
299
|
+
* of payload — including them in the selection list would just add noise.
|
|
300
|
+
*
|
|
301
|
+
* Apps can override this default via
|
|
302
|
+
* `DbxFirebaseOidcConfig.consentScopeListViewClass` or
|
|
303
|
+
* `DbxOAuthConsentComponentConfig.consentScopeListViewClass`. Custom views
|
|
304
|
+
* should similarly apply `dbxActionForm` to a forge form whose value matches
|
|
305
|
+
* `OAuthConsentScopesFormValue`.
|
|
306
|
+
*/
|
|
307
|
+
declare class DbxFirebaseOAuthConsentScopeDefaultViewComponent {
|
|
308
|
+
private readonly _oidcConfigService;
|
|
309
|
+
private readonly _data;
|
|
310
|
+
readonly mappedScopes: i0.Signal<OAuthConsentScope<string>[]>;
|
|
311
|
+
readonly optionalScopes: i0.Signal<OAuthConsentScope<string>[]>;
|
|
312
|
+
readonly alwaysGrantedLabel: i0.Signal<string | null>;
|
|
313
|
+
readonly formFieldsConfig: i0.Signal<OAuthConsentScopesFormFieldsConfig>;
|
|
314
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthConsentScopeDefaultViewComponent, never>;
|
|
315
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthConsentScopeDefaultViewComponent, "dbx-firebase-oauth-consent-scope-default-view", never, {}, {}, never, never, true, never>;
|
|
144
316
|
}
|
|
145
317
|
|
|
146
318
|
/**
|
|
@@ -162,16 +334,16 @@ declare class DbxFirebaseOAuthLoginComponent implements OnDestroy {
|
|
|
162
334
|
private readonly interactionService;
|
|
163
335
|
readonly uidParamReader: _dereekb_dbx_core.DbxRouteParamReaderInstance<string>;
|
|
164
336
|
readonly interactionUid: Signal<Maybe<OidcInteractionUid>>;
|
|
165
|
-
readonly isLoggedIn: Signal<boolean
|
|
166
|
-
readonly submitting:
|
|
167
|
-
readonly errorMessage:
|
|
337
|
+
readonly isLoggedIn: Signal<Maybe<boolean>>;
|
|
338
|
+
readonly submitting: i0.WritableSignal<boolean>;
|
|
339
|
+
readonly errorMessage: i0.WritableSignal<string | null>;
|
|
168
340
|
readonly loginStateCase: Signal<OidcLoginStateCase>;
|
|
169
341
|
constructor();
|
|
170
342
|
ngOnDestroy(): void;
|
|
171
343
|
retry(): void;
|
|
172
344
|
private _submitIdToken;
|
|
173
|
-
static ɵfac:
|
|
174
|
-
static ɵcmp:
|
|
345
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOAuthLoginComponent, never>;
|
|
346
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOAuthLoginComponent, "dbx-firebase-oauth-login", never, {}, {}, never, ["*"], true, never>;
|
|
175
347
|
}
|
|
176
348
|
|
|
177
349
|
/**
|
|
@@ -189,17 +361,23 @@ interface DbxOAuthConsentComponentConfig {
|
|
|
189
361
|
/**
|
|
190
362
|
* Container component for the OIDC OAuth consent screen.
|
|
191
363
|
*
|
|
192
|
-
* Manages all state: route param reading, consent submission, and error handling.
|
|
193
|
-
* Delegates visual rendering to `DbxFirebaseOAuthConsentViewComponent`.
|
|
194
|
-
*
|
|
195
364
|
* Reads interaction UID and client details from route params (populated by
|
|
196
|
-
* the server redirect),
|
|
365
|
+
* the server redirect), assembles them into `OAuthInteractionLoginDetails`,
|
|
366
|
+
* and exposes Approve / Deny handlers that drive the view's nested
|
|
367
|
+
* `dbxAction` contexts.
|
|
368
|
+
*
|
|
369
|
+
* Submission progress and error states are owned by the action stores; this
|
|
370
|
+
* container is just routing-glue + handler factories.
|
|
371
|
+
*
|
|
372
|
+
* Supports ng-content projection — any content provided is passed through to
|
|
373
|
+
* the view component for the `'no_user'` state (e.g. an app's login view).
|
|
197
374
|
*/
|
|
198
375
|
declare class DbxOAuthConsentComponent implements OnDestroy {
|
|
199
376
|
private readonly dbxRouterService;
|
|
377
|
+
private readonly dbxFirebaseAuthService;
|
|
200
378
|
private readonly interactionService;
|
|
201
379
|
private readonly oidcConfigService;
|
|
202
|
-
readonly config:
|
|
380
|
+
readonly config: i0.InputSignal<Maybe<DbxOAuthConsentComponentConfig>>;
|
|
203
381
|
readonly interactionUidParamReader: _dereekb_dbx_core.DbxRouteParamReaderInstance<string>;
|
|
204
382
|
readonly clientIdParamReader: _dereekb_dbx_core.DbxRouteParamReaderInstance<string>;
|
|
205
383
|
readonly clientNameParamReader: _dereekb_dbx_core.DbxRouteParamReaderInstance<string>;
|
|
@@ -212,17 +390,31 @@ declare class DbxOAuthConsentComponent implements OnDestroy {
|
|
|
212
390
|
private readonly routeClientUri;
|
|
213
391
|
private readonly routeLogoUri;
|
|
214
392
|
private readonly routeScopes;
|
|
215
|
-
readonly
|
|
216
|
-
readonly
|
|
217
|
-
readonly
|
|
218
|
-
readonly
|
|
219
|
-
|
|
393
|
+
readonly isLoggedIn: Signal<Maybe<boolean>>;
|
|
394
|
+
readonly resolvedInteractionUid: Signal<Maybe<string>>;
|
|
395
|
+
readonly resolvedDetails: Signal<Maybe<OAuthInteractionLoginDetails<string>>>;
|
|
396
|
+
readonly scopeInjectionConfig: Signal<DbxInjectionComponentConfig<unknown>>;
|
|
397
|
+
/**
|
|
398
|
+
* Scopes the user cannot deselect. Forwarded to the view, which shows
|
|
399
|
+
* them as a static "Always granted" hint above the selection list.
|
|
400
|
+
*/
|
|
401
|
+
readonly requiredScopes: readonly OidcScope[];
|
|
402
|
+
readonly consentStateCase: Signal<OidcConsentStateCase>;
|
|
220
403
|
ngOnDestroy(): void;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
404
|
+
/**
|
|
405
|
+
* Handles the Approve action. Pulls the form's selected scope array
|
|
406
|
+
* straight off the form value (it already matches the API field name
|
|
407
|
+
* `grantedOIDCScopes`) and forwards it through `submitConsent`. On a
|
|
408
|
+
* successful response, hard-navigates to the OIDC server's redirect URL.
|
|
409
|
+
*/
|
|
410
|
+
readonly handleApprove: WorkUsingContext<OAuthConsentScopesFormValue, OAuthInteractionConsentResponse>;
|
|
411
|
+
/**
|
|
412
|
+
* Handles the Deny action. No payload is sent — the server returns
|
|
413
|
+
* `access_denied` to the OAuth client.
|
|
414
|
+
*/
|
|
415
|
+
readonly handleDeny: WorkUsingContext<void, OAuthInteractionConsentResponse>;
|
|
416
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxOAuthConsentComponent, never>;
|
|
417
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxOAuthConsentComponent, "dbx-firebase-oauth-consent", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
226
418
|
}
|
|
227
419
|
|
|
228
420
|
interface OidcEntryClientFormFieldsConfig {
|
|
@@ -345,8 +537,8 @@ type DbxFirebaseOidcEntryClientFormComponentConfig = Omit<OidcEntryClientFormFie
|
|
|
345
537
|
declare class DbxFirebaseOidcEntryClientForgeFormComponent extends AbstractConfigAsyncForgeFormDirective<DbxFirebaseOidcModelClientFormValue, DbxFirebaseOidcEntryClientFormComponentConfig> {
|
|
346
538
|
private readonly _oidcConfigService;
|
|
347
539
|
readonly formConfig$: Observable<Maybe<FormConfig>>;
|
|
348
|
-
static ɵfac:
|
|
349
|
-
static ɵcmp:
|
|
540
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientForgeFormComponent, never>;
|
|
541
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientForgeFormComponent, "dbx-firebase-oidc-client-forge-form", never, {}, {}, never, never, true, never>;
|
|
350
542
|
}
|
|
351
543
|
|
|
352
544
|
interface DbxFirebaseOidcModelClientTestFormValue {
|
|
@@ -362,59 +554,133 @@ type DbxFirebaseOidcEntryClientTestFormComponentConfig = OidcEntryClientTestForm
|
|
|
362
554
|
*/
|
|
363
555
|
declare class DbxFirebaseOidcEntryClientTestForgeFormComponent extends AbstractConfigAsyncForgeFormDirective<DbxFirebaseOidcModelClientTestFormValue, DbxFirebaseOidcEntryClientTestFormComponentConfig> {
|
|
364
556
|
readonly formConfig$: Observable<Maybe<FormConfig>>;
|
|
365
|
-
static ɵfac:
|
|
366
|
-
static ɵcmp:
|
|
557
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientTestForgeFormComponent, never>;
|
|
558
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientTestForgeFormComponent, "dbx-firebase-oidc-client-test-forge-form", never, {}, {}, never, never, true, never>;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Document store for a single {@link OidcEntry}.
|
|
563
|
+
*/
|
|
564
|
+
declare class OidcEntryDocumentStore extends AbstractDbxFirebaseDocumentStore<OidcEntry, OidcEntryDocument> {
|
|
565
|
+
readonly oidcModelFunctions: OidcModelFunctions;
|
|
566
|
+
private readonly _latestClientSecret$;
|
|
567
|
+
/**
|
|
568
|
+
* The client secret from the most recent create operation.
|
|
569
|
+
*
|
|
570
|
+
* Only available immediately after creation — the server does not return it again.
|
|
571
|
+
*/
|
|
572
|
+
readonly latestClientSecret$: rxjs.Observable<Maybe<string>>;
|
|
573
|
+
get latestClientSecret(): Maybe<string>;
|
|
574
|
+
constructor();
|
|
575
|
+
readonly createClient: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreCreateFunction<_dereekb_firebase.CreateOidcClientParams, CreateOidcClientResult>;
|
|
576
|
+
readonly updateClient: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.UpdateOidcClientParams, void>;
|
|
577
|
+
readonly rotateClientSecret: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, RotateOidcClientSecretResult>;
|
|
578
|
+
readonly deleteClient: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, void>;
|
|
579
|
+
readonly deleteToken: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, void>;
|
|
580
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OidcEntryDocumentStore, never>;
|
|
581
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OidcEntryDocumentStore>;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Wrapper list of {@link OidcEntry} Grant rows belonging to the current user.
|
|
586
|
+
*
|
|
587
|
+
* Renders one row per Grant — i.e. one row per "app with access to my account" —
|
|
588
|
+
* with an inline Revoke button that cascades through every grantable token.
|
|
589
|
+
*/
|
|
590
|
+
declare class DbxFirebaseOidcEntryGrantListComponent extends AbstractDbxSelectionListWrapperDirective<OidcEntry> {
|
|
591
|
+
constructor();
|
|
592
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryGrantListComponent, never>;
|
|
593
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryGrantListComponent, "dbx-firebase-oidc-grant-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
|
|
594
|
+
}
|
|
595
|
+
declare class DbxFirebaseOidcEntryGrantListViewComponent extends AbstractDbxSelectionListViewDirective<OidcEntry> {
|
|
596
|
+
readonly config: DbxSelectionValueListViewConfig<OidcEntry & {
|
|
597
|
+
key: string;
|
|
598
|
+
itemValue: OidcEntry;
|
|
599
|
+
}>;
|
|
600
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryGrantListViewComponent, never>;
|
|
601
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryGrantListViewComponent, "dbx-firebase-oidc-grant-list-view", never, {}, {}, never, never, true, never>;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Per-row view for a Grant entry. Inline "Revoke" button uses a per-component
|
|
605
|
+
* {@link OidcEntryDocumentStore} keyed to this entry's id so calling
|
|
606
|
+
* `deleteToken` invokes the {@link DeleteOidcTokenParams} callModel against
|
|
607
|
+
* the right document.
|
|
608
|
+
*/
|
|
609
|
+
declare class DbxFirebaseOidcEntryGrantListViewItemComponent extends AbstractDbxValueListViewItemComponent<OidcEntry> {
|
|
610
|
+
readonly oidcEntryDocumentStore: OidcEntryDocumentStore;
|
|
611
|
+
readonly clientIdSignal: i0.Signal<string>;
|
|
612
|
+
readonly scopeSignal: i0.Signal<string | null>;
|
|
613
|
+
readonly expiresAtSignal: i0.Signal<Date | null>;
|
|
614
|
+
readonly revokeConfirmConfig: DbxActionConfirmConfig;
|
|
615
|
+
readonly handleRevoke: WorkUsingContext;
|
|
616
|
+
constructor();
|
|
617
|
+
private _payload;
|
|
618
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryGrantListViewItemComponent, never>;
|
|
619
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryGrantListViewItemComponent, "dbx-firebase-oidc-grant-list-view-item", never, {}, {}, never, never, true, never>;
|
|
367
620
|
}
|
|
368
621
|
|
|
369
622
|
type OidcEntryWithSelection = DbxValueAsListItem<OidcEntry>;
|
|
370
623
|
declare class DbxFirebaseOidcEntryClientListComponent extends AbstractDbxSelectionListWrapperDirective<OidcEntry> {
|
|
371
624
|
constructor();
|
|
372
|
-
static ɵfac:
|
|
373
|
-
static ɵcmp:
|
|
625
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientListComponent, never>;
|
|
626
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientListComponent, "dbx-firebase-oidc-client-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
|
|
374
627
|
}
|
|
375
628
|
declare class DbxFirebaseOidcEntryClientListViewComponent extends AbstractDbxSelectionListViewDirective<OidcEntry> {
|
|
376
629
|
readonly config: DbxSelectionValueListViewConfig<OidcEntryWithSelection>;
|
|
377
|
-
static ɵfac:
|
|
378
|
-
static ɵcmp:
|
|
630
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientListViewComponent, never>;
|
|
631
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientListViewComponent, "dbx-firebase-oidc-client-list-view", never, {}, {}, never, never, true, never>;
|
|
379
632
|
}
|
|
380
633
|
declare class DbxFirebaseOidcEntryClientListViewItemClientComponent {
|
|
381
|
-
readonly entry:
|
|
634
|
+
readonly entry: i0.InputSignal<OidcEntry>;
|
|
382
635
|
get name(): string;
|
|
383
636
|
get clientId(): string;
|
|
384
|
-
static ɵfac:
|
|
385
|
-
static ɵcmp:
|
|
637
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientListViewItemClientComponent, never>;
|
|
638
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientListViewItemClientComponent, "dbx-firebase-oidc-client-list-view-item-client", never, { "entry": { "alias": "entry"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
386
639
|
}
|
|
387
640
|
declare class DbxFirebaseOidcEntryClientListViewItemDefaultComponent {
|
|
388
|
-
readonly entry:
|
|
389
|
-
static ɵfac:
|
|
390
|
-
static ɵcmp:
|
|
641
|
+
readonly entry: i0.InputSignal<OidcEntry>;
|
|
642
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientListViewItemDefaultComponent, never>;
|
|
643
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientListViewItemDefaultComponent, "dbx-firebase-oidc-client-list-view-item-default", never, { "entry": { "alias": "entry"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
391
644
|
}
|
|
392
645
|
declare class DbxFirebaseOidcEntryClientListViewItemComponent extends AbstractDbxValueListViewItemComponent<OidcEntry> {
|
|
393
646
|
readonly clientType: _dereekb_firebase.OidcEntryType;
|
|
394
|
-
static ɵfac:
|
|
395
|
-
static ɵcmp:
|
|
647
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientListViewItemComponent, never>;
|
|
648
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientListViewItemComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
396
649
|
}
|
|
397
650
|
|
|
398
651
|
/**
|
|
399
|
-
*
|
|
652
|
+
* Collection store for querying {@link OidcEntry} documents.
|
|
400
653
|
*/
|
|
401
|
-
declare class
|
|
402
|
-
readonly oidcModelFunctions: OidcModelFunctions;
|
|
403
|
-
private readonly _latestClientSecret$;
|
|
404
|
-
/**
|
|
405
|
-
* The client secret from the most recent create operation.
|
|
406
|
-
*
|
|
407
|
-
* Only available immediately after creation — the server does not return it again.
|
|
408
|
-
*/
|
|
409
|
-
readonly latestClientSecret$: rxjs.Observable<Maybe<string>>;
|
|
410
|
-
get latestClientSecret(): Maybe<string>;
|
|
654
|
+
declare class OidcEntryCollectionStore extends AbstractDbxFirebaseCollectionStore<OidcEntry, OidcEntryDocument> {
|
|
411
655
|
constructor();
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
656
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OidcEntryCollectionStore, never>;
|
|
657
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OidcEntryCollectionStore>;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* Directive providing a {@link OidcEntryCollectionStore} for querying {@link OidcEntry} documents.
|
|
662
|
+
*/
|
|
663
|
+
declare class OidcEntryCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective<OidcEntry, OidcEntryDocument, OidcEntryCollectionStore> {
|
|
664
|
+
constructor();
|
|
665
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OidcEntryCollectionStoreDirective, never>;
|
|
666
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OidcEntryCollectionStoreDirective, "[dbxOidcEntryCollection]", never, {}, {}, never, never, true, never>;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Drop-in container for the "apps with access to my account" management UI.
|
|
671
|
+
*
|
|
672
|
+
* Wires a {@link OidcEntryCollectionStoreDirective} to query Grant entries
|
|
673
|
+
* for the signed-in user, then renders {@link DbxFirebaseOidcEntryGrantListComponent}
|
|
674
|
+
* with inline Revoke buttons. No inputs — the container resolves the current
|
|
675
|
+
* user via {@link DbxFirebaseAuthService}.
|
|
676
|
+
*/
|
|
677
|
+
declare class DbxFirebaseOidcEntryGrantListContainerComponent implements OnInit {
|
|
678
|
+
readonly dbxFirebaseAuthService: DbxFirebaseAuthService;
|
|
679
|
+
readonly oidcEntryCollectionStoreDirective: i0.Signal<OidcEntryCollectionStoreDirective | undefined>;
|
|
680
|
+
readonly grantConstraintsSignal: i0.Signal<FirestoreQueryConstraint<unknown>[] | undefined>;
|
|
681
|
+
ngOnInit(): void;
|
|
682
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryGrantListContainerComponent, never>;
|
|
683
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryGrantListContainerComponent, "dbx-firebase-oidc-grant-list-container", never, {}, {}, never, never, true, never>;
|
|
418
684
|
}
|
|
419
685
|
|
|
420
686
|
/**
|
|
@@ -426,11 +692,11 @@ declare class OidcEntryDocumentStore extends AbstractDbxFirebaseDocumentStore<Oi
|
|
|
426
692
|
declare class DbxFirebaseOidcEntryClientCreateComponent {
|
|
427
693
|
readonly oidcEntryDocumentStore: OidcEntryDocumentStore;
|
|
428
694
|
readonly formConfig: DbxFirebaseOidcEntryClientFormComponentConfig;
|
|
429
|
-
readonly createClientOwnerTarget:
|
|
430
|
-
readonly clientCreated:
|
|
695
|
+
readonly createClientOwnerTarget: i0.InputSignal<Maybe<string>>;
|
|
696
|
+
readonly clientCreated: i0.OutputEmitterRef<CreateOidcClientResult>;
|
|
431
697
|
readonly handleCreateClient: WorkUsingContext<DbxFirebaseOidcModelClientFormValue>;
|
|
432
|
-
static ɵfac:
|
|
433
|
-
static ɵcmp:
|
|
698
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientCreateComponent, never>;
|
|
699
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientCreateComponent, "dbx-firebase-oidc-entry-client-create", never, { "createClientOwnerTarget": { "alias": "createClientOwnerTarget"; "required": false; "isSignal": true; }; }, { "clientCreated": "clientCreated"; }, never, never, true, never>;
|
|
434
700
|
}
|
|
435
701
|
|
|
436
702
|
/**
|
|
@@ -445,33 +711,33 @@ declare class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
445
711
|
/**
|
|
446
712
|
* Scopes the user can pick from. Overrides the service default when provided.
|
|
447
713
|
*/
|
|
448
|
-
readonly availableScopes:
|
|
714
|
+
readonly availableScopes: i0.InputSignal<Maybe<OidcScopeDetails[]>>;
|
|
449
715
|
/**
|
|
450
716
|
* Path to the authorization endpoint. Overrides the service default when provided.
|
|
451
717
|
*/
|
|
452
|
-
readonly oidcAuthorizationEndpointApiPath:
|
|
453
|
-
readonly resolvedAvailableScopes:
|
|
454
|
-
readonly resolvedAuthorizationEndpointPath:
|
|
455
|
-
readonly redirectUrisSignal:
|
|
456
|
-
readonly clientIdSignal:
|
|
457
|
-
readonly formConfig:
|
|
718
|
+
readonly oidcAuthorizationEndpointApiPath: i0.InputSignal<Maybe<string>>;
|
|
719
|
+
readonly resolvedAvailableScopes: i0.Signal<OidcScopeDetails[]>;
|
|
720
|
+
readonly resolvedAuthorizationEndpointPath: i0.Signal<string>;
|
|
721
|
+
readonly redirectUrisSignal: i0.Signal<string[] | undefined>;
|
|
722
|
+
readonly clientIdSignal: i0.Signal<string | undefined>;
|
|
723
|
+
readonly formConfig: i0.Signal<OidcEntryClientTestFormFieldsConfig>;
|
|
458
724
|
readonly formTemplate$: rxjs.Observable<DbxFirebaseOidcModelClientTestFormValue>;
|
|
459
|
-
readonly codeVerifier:
|
|
460
|
-
readonly codeChallenge:
|
|
461
|
-
readonly state:
|
|
462
|
-
readonly nonce:
|
|
725
|
+
readonly codeVerifier: i0.WritableSignal<string>;
|
|
726
|
+
readonly codeChallenge: i0.WritableSignal<string>;
|
|
727
|
+
readonly state: i0.WritableSignal<string>;
|
|
728
|
+
readonly nonce: i0.WritableSignal<string>;
|
|
463
729
|
/**
|
|
464
730
|
* The current form value, updated by the form via dbxFormValueChange.
|
|
465
731
|
*/
|
|
466
|
-
readonly formValue:
|
|
467
|
-
readonly authorizationUrlSignal:
|
|
732
|
+
readonly formValue: i0.WritableSignal<Maybe<DbxFirebaseOidcModelClientTestFormValue>>;
|
|
733
|
+
readonly authorizationUrlSignal: i0.Signal<string | undefined>;
|
|
468
734
|
constructor();
|
|
469
735
|
onFormValueChange(value: Maybe<DbxFirebaseOidcModelClientTestFormValue>): void;
|
|
470
736
|
openAuthorizationUrl(): void;
|
|
471
737
|
regeneratePkce(): void;
|
|
472
738
|
private _updateCodeChallenge;
|
|
473
|
-
static ɵfac:
|
|
474
|
-
static ɵcmp:
|
|
739
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientTestComponent, never>;
|
|
740
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientTestComponent, "dbx-firebase-oidc-entry-client-test", never, { "availableScopes": { "alias": "availableScopes"; "required": false; "isSignal": true; }; "oidcAuthorizationEndpointApiPath": { "alias": "oidcAuthorizationEndpointApiPath"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
475
741
|
}
|
|
476
742
|
|
|
477
743
|
/**
|
|
@@ -484,8 +750,8 @@ declare class DbxFirebaseOidcEntryClientUpdateComponent {
|
|
|
484
750
|
readonly formConfig: DbxFirebaseOidcEntryClientFormComponentConfig;
|
|
485
751
|
readonly formTemplate$: rxjs.Observable<_dereekb_firebase.UpdateOidcClientFieldParams>;
|
|
486
752
|
readonly handleUpdateClient: WorkUsingContext<DbxFirebaseOidcModelClientUpdateFormValue>;
|
|
487
|
-
static ɵfac:
|
|
488
|
-
static ɵcmp:
|
|
753
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientUpdateComponent, never>;
|
|
754
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientUpdateComponent, "dbx-firebase-oidc-entry-client-update", never, {}, {}, never, never, true, never>;
|
|
489
755
|
}
|
|
490
756
|
|
|
491
757
|
/**
|
|
@@ -496,30 +762,12 @@ declare class DbxFirebaseOidcEntryClientUpdateComponent {
|
|
|
496
762
|
*/
|
|
497
763
|
declare class DbxFirebaseOidcEntryClientViewComponent {
|
|
498
764
|
readonly oidcEntryDocumentStore: OidcEntryDocumentStore;
|
|
499
|
-
readonly clientIdSignal:
|
|
500
|
-
readonly latestClientSecretSignal:
|
|
765
|
+
readonly clientIdSignal: i0.Signal<string | undefined>;
|
|
766
|
+
readonly latestClientSecretSignal: i0.Signal<_dereekb_util.Maybe<string>>;
|
|
501
767
|
readonly rotateSecretConfirmConfig: DbxActionConfirmConfig;
|
|
502
768
|
readonly handleRotateClientSecret: WorkUsingContext;
|
|
503
|
-
static ɵfac:
|
|
504
|
-
static ɵcmp:
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* Collection store for querying {@link OidcEntry} documents.
|
|
509
|
-
*/
|
|
510
|
-
declare class OidcEntryCollectionStore extends AbstractDbxFirebaseCollectionStore<OidcEntry, OidcEntryDocument> {
|
|
511
|
-
constructor();
|
|
512
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OidcEntryCollectionStore, never>;
|
|
513
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OidcEntryCollectionStore>;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
* Directive providing a {@link OidcEntryCollectionStore} for querying {@link OidcEntry} documents.
|
|
518
|
-
*/
|
|
519
|
-
declare class OidcEntryCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective<OidcEntry, OidcEntryDocument, OidcEntryCollectionStore> {
|
|
520
|
-
constructor();
|
|
521
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OidcEntryCollectionStoreDirective, never>;
|
|
522
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OidcEntryCollectionStoreDirective, "[dbxOidcEntryCollection]", never, {}, {}, never, never, true, never>;
|
|
769
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcEntryClientViewComponent, never>;
|
|
770
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseOidcEntryClientViewComponent, "dbx-firebase-oidc-entry-client-view", never, {}, {}, never, never, true, never>;
|
|
523
771
|
}
|
|
524
772
|
|
|
525
773
|
/**
|
|
@@ -527,8 +775,8 @@ declare class OidcEntryCollectionStoreDirective extends DbxFirebaseCollectionSto
|
|
|
527
775
|
*/
|
|
528
776
|
declare class OidcEntryDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<OidcEntry, OidcEntryDocument, OidcEntryDocumentStore> {
|
|
529
777
|
constructor();
|
|
530
|
-
static ɵfac:
|
|
531
|
-
static ɵdir:
|
|
778
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OidcEntryDocumentStoreDirective, never>;
|
|
779
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OidcEntryDocumentStoreDirective, "[dbxOidcEntryDocument]", never, {}, {}, never, never, true, never>;
|
|
532
780
|
}
|
|
533
781
|
|
|
534
782
|
declare const DEFAULT_OIDC_AUTHORIZATION_ENDPOINT_PATH = "/oidc/auth";
|
|
@@ -597,8 +845,8 @@ declare class DbxFirebaseOidcConfigService {
|
|
|
597
845
|
get tokenEndpointAuthMethods(): OidcTokenEndpointAuthMethod[];
|
|
598
846
|
get oauthInteractionRoute(): Maybe<SegueRefOrSegueRefRouterLink>;
|
|
599
847
|
get consentScopeListViewClass(): Maybe<Type<AbstractDbxFirebaseOAuthConsentScopeViewComponent>>;
|
|
600
|
-
static ɵfac:
|
|
601
|
-
static ɵprov:
|
|
848
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcConfigService, never>;
|
|
849
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseOidcConfigService>;
|
|
602
850
|
}
|
|
603
851
|
|
|
604
852
|
/**
|
|
@@ -674,16 +922,22 @@ declare class DbxFirebaseOidcInteractionService {
|
|
|
674
922
|
/**
|
|
675
923
|
* Submit consent decision to complete the consent interaction.
|
|
676
924
|
*
|
|
677
|
-
* Automatically attaches the current user's Firebase ID token.
|
|
925
|
+
* Automatically attaches the current user's Firebase ID token. When `approved`
|
|
926
|
+
* is true, optional `grants` may be passed to grant only a subset of the
|
|
927
|
+
* requested scopes/claims/resource scopes; the server validates that any
|
|
928
|
+
* subset is contained in the corresponding `missing*` set on the prompt.
|
|
929
|
+
*
|
|
930
|
+
* When `approved` is false, `grants` is ignored (not sent).
|
|
678
931
|
*
|
|
679
932
|
* @param uid - The OIDC interaction UID identifying the current consent interaction.
|
|
680
933
|
* @param approved - Whether the user approved or denied the consent request.
|
|
934
|
+
* @param grants - Optional subset of OIDC scopes / OIDC claims / resource scopes to grant.
|
|
681
935
|
* @returns Observable that emits the redirect URL from the server response.
|
|
682
936
|
*/
|
|
683
|
-
submitConsent(uid: OidcInteractionUid, approved: boolean): Observable<OAuthInteractionConsentResponse>;
|
|
684
|
-
static ɵfac:
|
|
685
|
-
static ɵprov:
|
|
937
|
+
submitConsent(uid: OidcInteractionUid, approved: boolean, grants?: Pick<OAuthInteractionConsentRequest, 'grantedOIDCScopes' | 'grantedOIDCClaims' | 'grantedResourceScopes'>): Observable<OAuthInteractionConsentResponse>;
|
|
938
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseOidcInteractionService, never>;
|
|
939
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseOidcInteractionService>;
|
|
686
940
|
}
|
|
687
941
|
|
|
688
|
-
export { AbstractDbxFirebaseOAuthConsentScopeViewComponent, DEFAULT_OIDC_AUTHORIZATION_ENDPOINT_PATH, DEFAULT_OIDC_CLIENT_ID_PARAM_KEY, DEFAULT_OIDC_CLIENT_NAME_PARAM_KEY, DEFAULT_OIDC_CLIENT_URI_PARAM_KEY, DEFAULT_OIDC_INTERACTION_ENDPOINT_PATH, DEFAULT_OIDC_INTERACTION_UID_PARAM_KEY, DEFAULT_OIDC_LOGO_URI_PARAM_KEY, DEFAULT_OIDC_SCOPES_PARAM_KEY, DEFAULT_OIDC_TOKEN_ENDPOINT_AUTH_METHODS, DbxFirebaseOAuthConsentScopeDefaultViewComponent, DbxFirebaseOAuthConsentScopeListComponent, DbxFirebaseOAuthConsentViewComponent, DbxFirebaseOAuthLoginComponent, DbxFirebaseOAuthLoginViewComponent, DbxFirebaseOidcConfig, DbxFirebaseOidcConfigService, DbxFirebaseOidcEntryClientCreateComponent, DbxFirebaseOidcEntryClientForgeFormComponent, DbxFirebaseOidcEntryClientListComponent, DbxFirebaseOidcEntryClientListViewComponent, DbxFirebaseOidcEntryClientListViewItemClientComponent, DbxFirebaseOidcEntryClientListViewItemComponent, DbxFirebaseOidcEntryClientListViewItemDefaultComponent, DbxFirebaseOidcEntryClientTestComponent, DbxFirebaseOidcEntryClientTestForgeFormComponent, DbxFirebaseOidcEntryClientUpdateComponent, DbxFirebaseOidcEntryClientViewComponent, DbxFirebaseOidcInteractionService, DbxOAuthConsentComponent, OidcEntryCollectionStore, OidcEntryCollectionStoreDirective, OidcEntryDocumentStore, OidcEntryDocumentStoreDirective, oidcClientHomepageUriForgeField, oidcClientJwksUriForgeField, oidcClientLogoUriForgeField, oidcClientNameForgeField, oidcClientRedirectUrisForgeField, oidcClientTestClientIdForgeField, oidcClientTestRedirectUriForgeField, oidcClientTestScopesForgeField, oidcClientTokenEndpointAuthMethodForgeField, oidcEntryClientForgeFormFields, oidcEntryClientTestForgeFormFields, oidcEntryClientUpdateForgeFormFields, provideDbxFirebaseOidc, provideOidcModelFirestoreCollections };
|
|
689
|
-
export type { DbxFirebaseOAuthConsentScopesViewData, DbxFirebaseOidcEntryClientFormComponentConfig, DbxFirebaseOidcEntryClientTestFormComponentConfig, DbxFirebaseOidcModelClientFormValue, DbxFirebaseOidcModelClientTestFormValue, DbxFirebaseOidcModelClientUpdateFormValue, DbxOAuthConsentComponentConfig, OAuthConsentScope, OidcEntryClientFormFieldsConfig, OidcEntryClientTestFormFieldsConfig, OidcEntryWithSelection, OidcLoginStateCase, ProvideDbxFirebaseOidcConfig };
|
|
942
|
+
export { AbstractDbxFirebaseOAuthConsentScopeViewComponent, DEFAULT_OIDC_AUTHORIZATION_ENDPOINT_PATH, DEFAULT_OIDC_CLIENT_ID_PARAM_KEY, DEFAULT_OIDC_CLIENT_NAME_PARAM_KEY, DEFAULT_OIDC_CLIENT_URI_PARAM_KEY, DEFAULT_OIDC_INTERACTION_ENDPOINT_PATH, DEFAULT_OIDC_INTERACTION_UID_PARAM_KEY, DEFAULT_OIDC_LOGO_URI_PARAM_KEY, DEFAULT_OIDC_SCOPES_PARAM_KEY, DEFAULT_OIDC_TOKEN_ENDPOINT_AUTH_METHODS, DbxFirebaseOAuthConsentScopeDefaultViewComponent, DbxFirebaseOAuthConsentScopeFormComponent, DbxFirebaseOAuthConsentScopeListComponent, DbxFirebaseOAuthConsentScopeListItemComponent, DbxFirebaseOAuthConsentScopeListViewComponent, DbxFirebaseOAuthConsentViewComponent, DbxFirebaseOAuthLoginComponent, DbxFirebaseOAuthLoginViewComponent, DbxFirebaseOidcConfig, DbxFirebaseOidcConfigService, DbxFirebaseOidcEntryClientCreateComponent, DbxFirebaseOidcEntryClientForgeFormComponent, DbxFirebaseOidcEntryClientListComponent, DbxFirebaseOidcEntryClientListViewComponent, DbxFirebaseOidcEntryClientListViewItemClientComponent, DbxFirebaseOidcEntryClientListViewItemComponent, DbxFirebaseOidcEntryClientListViewItemDefaultComponent, DbxFirebaseOidcEntryClientTestComponent, DbxFirebaseOidcEntryClientTestForgeFormComponent, DbxFirebaseOidcEntryClientUpdateComponent, DbxFirebaseOidcEntryClientViewComponent, DbxFirebaseOidcEntryGrantListComponent, DbxFirebaseOidcEntryGrantListContainerComponent, DbxFirebaseOidcEntryGrantListViewComponent, DbxFirebaseOidcEntryGrantListViewItemComponent, DbxFirebaseOidcInteractionService, DbxOAuthConsentComponent, OAUTH_CONSENT_SCOPES_REQUIRED_VALIDATOR_DEFAULT_MESSAGE, OAUTH_CONSENT_SCOPES_REQUIRED_VALIDATOR_KIND, OidcEntryCollectionStore, OidcEntryCollectionStoreDirective, OidcEntryDocumentStore, OidcEntryDocumentStoreDirective, oauthConsentScopesFormConfig, oidcClientHomepageUriForgeField, oidcClientJwksUriForgeField, oidcClientLogoUriForgeField, oidcClientNameForgeField, oidcClientRedirectUrisForgeField, oidcClientTestClientIdForgeField, oidcClientTestRedirectUriForgeField, oidcClientTestScopesForgeField, oidcClientTokenEndpointAuthMethodForgeField, oidcEntryClientForgeFormFields, oidcEntryClientTestForgeFormFields, oidcEntryClientUpdateForgeFormFields, provideDbxFirebaseOidc, provideOidcModelFirestoreCollections };
|
|
943
|
+
export type { DbxFirebaseOAuthConsentScopesViewData, DbxFirebaseOidcEntryClientFormComponentConfig, DbxFirebaseOidcEntryClientTestFormComponentConfig, DbxFirebaseOidcModelClientFormValue, DbxFirebaseOidcModelClientTestFormValue, DbxFirebaseOidcModelClientUpdateFormValue, DbxOAuthConsentComponentConfig, OAuthConsentScope, OAuthConsentScopesFormFieldsConfig, OAuthConsentScopesFormValue, OidcConsentStateCase, OidcEntryClientFormFieldsConfig, OidcEntryClientTestFormFieldsConfig, OidcEntryWithSelection, OidcLoginStateCase, ProvideDbxFirebaseOidcConfig };
|