@securitydept/token-set-context-client-angular 0.3.0-beta.5 → 0.3.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -118,10 +118,10 @@ class TokenSetClientRegistryAuthorizationInterceptor {
|
|
|
118
118
|
return next.handle(req.clone({ setHeaders: { Authorization: authorization } }));
|
|
119
119
|
}));
|
|
120
120
|
}
|
|
121
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
122
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
121
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
122
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor });
|
|
123
123
|
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor, decorators: [{
|
|
125
125
|
type: Injectable
|
|
126
126
|
}] });
|
|
127
127
|
function provideTokenSetClientRegistryAuthorizationInterceptor(options) {
|
|
@@ -172,8 +172,10 @@ async function defaultTokenSetClientRegistryAuthorizationForRequest(registry, re
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
class TokenSetBackendCallbackComponent {
|
|
175
|
-
clientQuery = input(
|
|
176
|
-
|
|
175
|
+
clientQuery = input(/* @ts-ignore */
|
|
176
|
+
...(ngDevMode ? [undefined, { debugName: "clientQuery" }] : /* istanbul ignore next */ []));
|
|
177
|
+
autoInitialize = input(true, /* @ts-ignore */
|
|
178
|
+
...(ngDevMode ? [{ debugName: "autoInitialize" }] : /* istanbul ignore next */ []));
|
|
177
179
|
environment = inject(ENVIRONMENT);
|
|
178
180
|
registry = inject(TOKEN_SET_CLIENT_REGISTRY);
|
|
179
181
|
destroyRef = inject(DestroyRef);
|
|
@@ -213,10 +215,10 @@ class TokenSetBackendCallbackComponent {
|
|
|
213
215
|
}));
|
|
214
216
|
});
|
|
215
217
|
}
|
|
216
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
217
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
218
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetBackendCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
219
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.0", type: TokenSetBackendCallbackComponent, isStandalone: true, selector: "sd-token-set-backend-callback", inputs: { clientQuery: { classPropertyName: "clientQuery", publicName: "clientQuery", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["sdTokenSetBackendCallback"], ngImport: i0, template: "", isInline: true });
|
|
218
220
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetBackendCallbackComponent, decorators: [{
|
|
220
222
|
type: Component,
|
|
221
223
|
args: [{
|
|
222
224
|
selector: "sd-token-set-backend-callback",
|
|
@@ -227,8 +229,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
227
229
|
}], ctorParameters: () => [], propDecorators: { clientQuery: [{ type: i0.Input, args: [{ isSignal: true, alias: "clientQuery", required: false }] }], autoInitialize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoInitialize", required: false }] }] } });
|
|
228
230
|
|
|
229
231
|
class TokenSetFrontendCallbackComponent {
|
|
230
|
-
clientQuery = input(
|
|
231
|
-
|
|
232
|
+
clientQuery = input(/* @ts-ignore */
|
|
233
|
+
...(ngDevMode ? [undefined, { debugName: "clientQuery" }] : /* istanbul ignore next */ []));
|
|
234
|
+
autoInitialize = input(true, /* @ts-ignore */
|
|
235
|
+
...(ngDevMode ? [{ debugName: "autoInitialize" }] : /* istanbul ignore next */ []));
|
|
232
236
|
environment = inject(ENVIRONMENT);
|
|
233
237
|
registry = inject(TOKEN_SET_CLIENT_REGISTRY);
|
|
234
238
|
destroyRef = inject(DestroyRef);
|
|
@@ -268,10 +272,10 @@ class TokenSetFrontendCallbackComponent {
|
|
|
268
272
|
}));
|
|
269
273
|
});
|
|
270
274
|
}
|
|
271
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
272
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
275
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetFrontendCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.0", type: TokenSetFrontendCallbackComponent, isStandalone: true, selector: "sd-token-set-frontend-callback", inputs: { clientQuery: { classPropertyName: "clientQuery", publicName: "clientQuery", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["sdTokenSetFrontendCallback"], ngImport: i0, template: "", isInline: true });
|
|
273
277
|
}
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TokenSetFrontendCallbackComponent, decorators: [{
|
|
275
279
|
type: Component,
|
|
276
280
|
args: [{
|
|
277
281
|
selector: "sd-token-set-frontend-callback",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securitydept-token-set-context-client-angular.mjs","sources":["../../src/lib/client-registry.ts","../../src/lib/auth-coordination/planner-host.ts","../../src/lib/auth-coordination/secure-routes.ts","../../src/lib/client-registry-authorization.interceptor.ts","../../src/lib/components/backend-callback.component.ts","../../src/lib/components/frontend-callback.component.ts","../../src/lib/index.ts","../../src/public-api.ts","../../src/securitydept-token-set-context-client-angular.ts"],"sourcesContent":["import { InjectionToken, type Provider } from \"@angular/core\";\nimport { type FoundationEnvironment } from \"@securitydept/client\";\nimport {\n\tENVIRONMENT,\n\tprovideEnvironmentProvider,\n} from \"@securitydept/client-angular\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tTOKEN_SET_CLIENT_REGISTRY as CORE_TOKEN_SET_CLIENT_REGISTRY,\n\ttype ProvideTokenSetClientRegistryOptions,\n\tprovideTokenSetClientRegistry as provideCoreTokenSetClientRegistry,\n\ttype TokenSetClientRegistry,\n} from \"@securitydept/token-set-context-client/registry\";\n\nexport const TOKEN_SET_CLIENT_REGISTRY = new InjectionToken<\n\tTokenSetClientRegistry<BaseOidcModeClient>\n>(\"TOKEN_SET_CLIENT_REGISTRY\");\n\nexport { type ProvideTokenSetClientRegistryOptions };\n\nexport function provideTokenSetClientRegistry(\n\toptions: ProvideTokenSetClientRegistryOptions = {},\n): Provider[] {\n\treturn [\n\t\t...provideCoreTokenSetClientRegistry(options).map(\n\t\t\tprovideEnvironmentProvider,\n\t\t),\n\t\t{\n\t\t\tprovide: TOKEN_SET_CLIENT_REGISTRY,\n\t\t\tuseFactory: (environment: FoundationEnvironment) =>\n\t\t\t\tenvironment.injector.get(CORE_TOKEN_SET_CLIENT_REGISTRY),\n\t\t\tdeps: [ENVIRONMENT],\n\t\t},\n\t];\n}\n","// Token-set requirement planner host — Angular DI adapter over core registry auth coordination\n\nimport {\n\ttype EnvironmentProviders,\n\tinject,\n\tmakeEnvironmentProviders,\n} from \"@angular/core\";\nimport {\n\tREQUIREMENT_PLANNER_HOST,\n\ttype RequirementPlannerHost,\n\ttype RouteBehaviourContextExtra,\n\tSecuritydeptInjector,\n} from \"@securitydept/client\";\nimport {\n\tENVIRONMENT,\n\tSECURITYDEPT_INJECTOR,\n} from \"@securitydept/client-angular\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tTokenSetClientRegistryPlannerHost,\n\tTokenSetClientRegistryRequirementBehaviour,\n\ttype TokenSetClientRegistryRequirementBehaviourOptions,\n\ttype TokenSetClientRegistryRouteRequirementBehaviourShape,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\n/** Options for {@link provideTokenSetRequirementPlannerHost}. */\nexport type ProvideTokenSetRequirementPlannerHostOptions =\n\tTokenSetClientRegistryRequirementBehaviourOptions<\n\t\tBaseOidcModeClient,\n\t\tRouteBehaviourContextExtra\n\t>;\n\n/**\n * Provide registry-backed requirement behaviour for Angular guards.\n *\n * This is intentionally a thin adapter over the framework-neutral registry\n * auth-coordination layer. Route requirements must carry\n * `attributes.query: TokenSetClientQueryOptions`.\n */\nexport function provideTokenSetRequirementPlannerHost(\n\toptions: ProvideTokenSetRequirementPlannerHostOptions = {},\n): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\t{\n\t\t\tprovide: SECURITYDEPT_INJECTOR,\n\t\t\tuseFactory: (): SecuritydeptInjector => {\n\t\t\t\tconst registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\t\t\t\tconst environment = inject(ENVIRONMENT);\n\t\t\t\tconst parentInjector =\n\t\t\t\t\tinject(SECURITYDEPT_INJECTOR, {\n\t\t\t\t\t\toptional: true,\n\t\t\t\t\t\tskipSelf: true,\n\t\t\t\t\t}) ?? undefined;\n\t\t\t\tconst parent = (parentInjector?.get(REQUIREMENT_PLANNER_HOST, null) ??\n\t\t\t\t\tundefined) as\n\t\t\t\t\t| RequirementPlannerHost<TokenSetClientRegistryRouteRequirementBehaviourShape>\n\t\t\t\t\t| undefined;\n\t\t\t\tconst behaviour = new TokenSetClientRegistryRequirementBehaviour<\n\t\t\t\t\tBaseOidcModeClient,\n\t\t\t\t\tRouteBehaviourContextExtra\n\t\t\t\t>(registry, options);\n\t\t\t\tconst host = new TokenSetClientRegistryPlannerHost<\n\t\t\t\t\tBaseOidcModeClient,\n\t\t\t\t\tRouteBehaviourContextExtra,\n\t\t\t\t\tTokenSetClientRegistryRouteRequirementBehaviourShape\n\t\t\t\t>(registry, behaviour, environment, parent);\n\t\t\t\tconst providers = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: REQUIREMENT_PLANNER_HOST,\n\t\t\t\t\t\tuseValue: host as RequirementPlannerHost<unknown>,\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn parentInjector\n\t\t\t\t\t? SecuritydeptInjector.fromParentInjector(parentInjector, providers)\n\t\t\t\t\t: SecuritydeptInjector.resolveAndCreate(providers);\n\t\t\t},\n\t\t},\n\t]);\n}\n","// Token-set secure route helpers — query-first registry requirements\n\nimport {\n\ttype CanActivateChildFn,\n\ttype CanActivateFn,\n\ttype Route,\n} from \"@angular/router\";\nimport { type RequirementsComposition } from \"@securitydept/client\";\nimport {\n\tsecureRoute as baseSecureRoute,\n\tsecureRouteRoot as baseSecureRouteRoot,\n\ttype CreateAngularGuardOptions,\n\tcreateAngularCanActivate,\n\tcreateAngularCanActivateChild,\n\ttype SecureRouteConfig,\n} from \"@securitydept/client-angular\";\nimport { type TokenSetClientRegistryAuthRequirement } from \"@securitydept/token-set-context-client/registry\";\nimport {\n\ttype ProvideTokenSetRequirementPlannerHostOptions,\n\tprovideTokenSetRequirementPlannerHost,\n} from \"./planner-host\";\n\n/** Serializable token-set security declaration for a child route. */\nexport interface TokenSetSecureRouteSecurityOptions {\n\t/** Requirements declared at this route segment. */\n\trequirements?: readonly TokenSetClientRegistryAuthRequirement[];\n\t/** Composition strategy against ancestor requirements (default `merge`). */\n\tcomposition?: RequirementsComposition;\n}\n\n/** Root-level token-set security: metadata plus registry behaviour hooks. */\nexport interface TokenSetSecureRouteRootSecurityOptions\n\textends TokenSetSecureRouteSecurityOptions,\n\t\tProvideTokenSetRequirementPlannerHostOptions {}\n\n/** Guard factory options specialized to token-set registry requirements. */\nexport type TokenSetAngularGuardOptions =\n\tCreateAngularGuardOptions<TokenSetClientRegistryAuthRequirement>;\n\n/**\n * Create a token-set `CanActivateFn`. The behaviour host is resolved from DI\n * (provided by {@link provideTokenSetRequirementPlannerHost}).\n */\nexport function createTokenSetCanActivate(\n\toptions?: TokenSetAngularGuardOptions,\n): CanActivateFn {\n\treturn createAngularCanActivate<TokenSetClientRegistryAuthRequirement>(\n\t\toptions,\n\t);\n}\n\n/**\n * Create a token-set `CanActivateChildFn`. The behaviour host is resolved from\n * DI (provided by {@link provideTokenSetRequirementPlannerHost}).\n */\nexport function createTokenSetCanActivateChild(\n\toptions?: TokenSetAngularGuardOptions,\n): CanActivateChildFn {\n\treturn createAngularCanActivateChild<TokenSetClientRegistryAuthRequirement>(\n\t\toptions,\n\t);\n}\n\n/**\n * Declare a secured child route. Writes token-set registry requirement\n * metadata only; enforcement is owned by a guarded\n * {@link secureTokenSetRouteRoot} ancestor.\n */\nexport function secureTokenSetRoute(\n\tpath: string,\n\tsecurity: TokenSetSecureRouteSecurityOptions = {},\n\trouteOptions?: SecureRouteConfig,\n): Route {\n\treturn baseSecureRoute<TokenSetClientRegistryAuthRequirement>(\n\t\tpath,\n\t\t{\n\t\t\trequirements: security.requirements,\n\t\t\tcomposition: security.composition,\n\t\t},\n\t\trouteOptions,\n\t);\n}\n\n/**\n * Declare a guarded token-set route root. Delegates guard assembly to the\n * client-angular base helper and mounts registry-backed behaviour hooks.\n */\nexport function secureTokenSetRouteRoot(\n\tpath: string,\n\tsecurity: TokenSetSecureRouteRootSecurityOptions = {},\n\trouteOptions?: SecureRouteConfig,\n): Route {\n\tconst providers = [\n\t\t...(routeOptions?.providers ?? []),\n\t\tprovideTokenSetRequirementPlannerHost({\n\t\t\tcheckClientAuthenticated: security.checkClientAuthenticated,\n\t\t\tonClientUnauthenticated: security.onClientUnauthenticated,\n\t\t\tselectClientCandidate: security.selectClientCandidate,\n\t\t}),\n\t];\n\treturn baseSecureRouteRoot<TokenSetClientRegistryAuthRequirement>(\n\t\tpath,\n\t\t{\n\t\t\trequirements: security.requirements,\n\t\t\tcomposition: security.composition,\n\t\t},\n\t\t{\n\t\t\t...routeOptions,\n\t\t\tproviders,\n\t\t},\n\t);\n}\n","import {\n\tHTTP_INTERCEPTORS,\n\ttype HttpEvent,\n\ttype HttpHandler,\n\ttype HttpHandlerFn,\n\ttype HttpInterceptor,\n\ttype HttpInterceptorFn,\n\ttype HttpRequest,\n} from \"@angular/common/http\";\nimport {\n\tInjectable,\n\tInjectionToken,\n\tinject,\n\ttype Provider,\n} from \"@angular/core\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport { type TokenSetClientRegistry } from \"@securitydept/token-set-context-client/registry\";\nimport { from, type Observable, switchMap } from \"rxjs\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"./client-registry\";\n\nexport interface TokenSetClientRegistryAuthorizationRequest {\n\turl: string;\n\tclone(update: { setHeaders?: Record<string, string> }): unknown;\n}\n\nexport type TokenSetClientRegistryAuthorizationForRequest = (\n\tregistry: TokenSetClientRegistry<BaseOidcModeClient>,\n\trequest: TokenSetClientRegistryAuthorizationRequest,\n) => Promise<string | null | undefined> | string | null | undefined;\n\nexport interface TokenSetClientRegistryAuthorizationInterceptorProviderOptions {\n\t/**\n\t * Resolves the Authorization header value for a request.\n\t *\n\t * The default implementation selects a registered client by request URL,\n\t * initializes that client, and reads its replayed authorization header.\n\t */\n\tauthorizationForRequest?: TokenSetClientRegistryAuthorizationForRequest;\n}\n\nexport interface TokenSetClientRegistryAuthorizationInterceptorOptions\n\textends TokenSetClientRegistryAuthorizationInterceptorProviderOptions {\n\tregistry?: TokenSetClientRegistry<BaseOidcModeClient>;\n}\n\nexport const TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST =\n\tnew InjectionToken<TokenSetClientRegistryAuthorizationForRequest>(\n\t\t\"TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST\",\n\t);\n\n@Injectable()\nexport class TokenSetClientRegistryAuthorizationInterceptor\n\timplements HttpInterceptor\n{\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly authorizationForRequest =\n\t\tinject(TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST, {\n\t\t\toptional: true,\n\t\t}) ?? defaultTokenSetClientRegistryAuthorizationForRequest;\n\n\tintercept(\n\t\treq: HttpRequest<unknown>,\n\t\tnext: HttpHandler,\n\t): Observable<HttpEvent<unknown>> {\n\t\treturn from(\n\t\t\tPromise.resolve(this.authorizationForRequest(this.registry, req)),\n\t\t).pipe(\n\t\t\tswitchMap((authorization) => {\n\t\t\t\tif (!authorization) {\n\t\t\t\t\treturn next.handle(req);\n\t\t\t\t}\n\t\t\t\treturn next.handle(\n\t\t\t\t\treq.clone({ setHeaders: { Authorization: authorization } }),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\t}\n}\n\nexport function provideTokenSetClientRegistryAuthorizationInterceptor(\n\toptions?: TokenSetClientRegistryAuthorizationInterceptorProviderOptions,\n): Provider[] {\n\tconst providers: Provider[] = [\n\t\t{\n\t\t\tprovide: HTTP_INTERCEPTORS,\n\t\t\tuseClass: TokenSetClientRegistryAuthorizationInterceptor,\n\t\t\tmulti: true,\n\t\t},\n\t];\n\tif (options) {\n\t\tif (options.authorizationForRequest) {\n\t\t\tproviders.push({\n\t\t\t\tprovide: TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST,\n\t\t\t\tuseValue: options.authorizationForRequest,\n\t\t\t});\n\t\t}\n\t}\n\treturn providers;\n}\n\nexport function createTokenSetClientRegistryAuthorizationInterceptor(\n\toptions?: TokenSetClientRegistryAuthorizationInterceptorOptions,\n): HttpInterceptorFn {\n\treturn function tokenSetClientRegistryAuthorizationInterceptorFn(\n\t\treq: HttpRequest<unknown>,\n\t\tnext: HttpHandlerFn,\n\t): Observable<HttpEvent<unknown>> {\n\t\tconst registry = options?.registry ?? inject(TOKEN_SET_CLIENT_REGISTRY);\n\t\tconst authorizationForRequest =\n\t\t\toptions?.authorizationForRequest ??\n\t\t\t(options\n\t\t\t\t? null\n\t\t\t\t: inject(TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST, {\n\t\t\t\t\t\toptional: true,\n\t\t\t\t\t})) ??\n\t\t\tdefaultTokenSetClientRegistryAuthorizationForRequest;\n\t\treturn from(Promise.resolve(authorizationForRequest(registry, req))).pipe(\n\t\t\tswitchMap((authorization) => {\n\t\t\t\tif (!authorization) {\n\t\t\t\t\treturn next(req);\n\t\t\t\t}\n\t\t\t\treturn next(\n\t\t\t\t\treq.clone({ setHeaders: { Authorization: authorization } }),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\t};\n}\n\nexport async function defaultTokenSetClientRegistryAuthorizationForRequest(\n\tregistry: TokenSetClientRegistry<BaseOidcModeClient>,\n\trequest: TokenSetClientRegistryAuthorizationRequest,\n): Promise<string | null> {\n\tconst record = await registry.clientRecordForQuery(\n\t\t{\n\t\t\turl: request.url,\n\t\t},\n\t\t{ initialize: true },\n\t);\n\tif (!record) {\n\t\treturn null;\n\t}\n\n\tconst header = await record.client.authorizationHeaderValue.whenValue();\n\treturn header ?? null;\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tDestroyRef,\n\tinject,\n\tinput,\n\ttype Signal,\n} from \"@angular/core\";\nimport {\n\tcreateComputed,\n\tcreateSignal,\n\ttype ResourceSnapshot,\n\tResourceStatus,\n\tresourceFromSnapshots,\n} from \"@securitydept/client\";\nimport { ENVIRONMENT, toNgSignal } from \"@securitydept/client-angular\";\nimport { type BackendOidcModeClient } from \"@securitydept/token-set-context-client/backend-oidc-mode\";\nimport {\n\tOidcModeCallbackHandlingKind,\n\ttype OidcModeCallbackHandlingResult,\n\ttype TokenSetAuthSnapshot,\n} from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tselectTokenSetBackendCallbackClientFromRegistry,\n\ttype TokenSetBackendCallbackClientFromRegistrySelectionSignal,\n\ttype TokenSetCallbackClientQuery,\n\tTokenSetCallbackClientSelectionKind,\n\ttype TokenSetCallbackClientSelectionSnapshot,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\ntype BackendCallbackResult =\n\tOidcModeCallbackHandlingResult<TokenSetAuthSnapshot>;\n\n@Component({\n\tselector: \"sd-token-set-backend-callback\",\n\tstandalone: true,\n\ttemplate: \"\",\n\texportAs: \"sdTokenSetBackendCallback\",\n})\nexport class TokenSetBackendCallbackComponent {\n\treadonly clientQuery = input<TokenSetCallbackClientQuery | undefined>();\n\treadonly autoInitialize = input(true);\n\n\tprivate readonly environment = inject(ENVIRONMENT);\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly destroyRef = inject(DestroyRef);\n\tprivate readonly selectionSource =\n\t\tcreateSignal<TokenSetBackendCallbackClientFromRegistrySelectionSignal | null>(\n\t\t\tnull,\n\t\t);\n\tprivate readonly selectionSignal = createComputed<\n\t\tTokenSetCallbackClientSelectionSnapshot<BackendOidcModeClient>\n\t>(\n\t\t() =>\n\t\t\tthis.selectionSource.get()?.get() ?? {\n\t\t\t\tstatus: ResourceStatus.Idle,\n\t\t\t},\n\t);\n\n\treadonly selection: Signal<\n\t\tTokenSetCallbackClientSelectionSnapshot<BackendOidcModeClient>\n\t> = toNgSignal(this.selectionSignal, { requireSync: true });\n\treadonly resource = resourceFromSnapshots<BackendCallbackResult>(() => {\n\t\tconst selection = this.selectionSignal.get();\n\t\tswitch (selection.status) {\n\t\t\tcase ResourceStatus.Idle:\n\t\t\t\treturn { status: ResourceStatus.Idle };\n\t\t\tcase ResourceStatus.Loading:\n\t\t\t\treturn { status: ResourceStatus.Loading };\n\t\t\tcase ResourceStatus.LoadingError:\n\t\t\t\treturn selection;\n\t\t\tcase ResourceStatus.Resolved:\n\t\t\t\treturn selection.value.kind ===\n\t\t\t\t\tTokenSetCallbackClientSelectionKind.NotApplicable\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstatus: ResourceStatus.Resolved,\n\t\t\t\t\t\t\tvalue: { kind: OidcModeCallbackHandlingKind.NotApplicable },\n\t\t\t\t\t\t}\n\t\t\t\t\t: selection.value.client.callback.state.get();\n\t\t}\n\t});\n\treadonly state: Signal<ResourceSnapshot<BackendCallbackResult>> = toNgSignal(\n\t\tthis.resource,\n\t\t{ requireSync: true },\n\t);\n\n\tconstructor() {\n\t\tthis.destroyRef.onDestroy(() => this.resource.dispose());\n\t\tafterNextRender(() => {\n\t\t\tthis.selectionSource.set(\n\t\t\t\tselectTokenSetBackendCallbackClientFromRegistry({\n\t\t\t\t\tregistry: this.registry,\n\t\t\t\t\tcallbackUrl: this.environment.router?.currentUrl()?.toString() ?? \"\",\n\t\t\t\t\tclientQuery: this.clientQuery(),\n\t\t\t\t\tinitialize: this.autoInitialize(),\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t}\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tDestroyRef,\n\tinject,\n\tinput,\n\ttype Signal,\n} from \"@angular/core\";\nimport {\n\tcreateComputed,\n\tcreateSignal,\n\ttype ResourceSnapshot,\n\tResourceStatus,\n\tresourceFromSnapshots,\n} from \"@securitydept/client\";\nimport { ENVIRONMENT, toNgSignal } from \"@securitydept/client-angular\";\nimport {\n\ttype FrontendOidcModeCallbackResult,\n\ttype FrontendOidcModeClient,\n} from \"@securitydept/token-set-context-client/frontend-oidc-mode\";\nimport {\n\tOidcModeCallbackHandlingKind,\n\ttype OidcModeCallbackHandlingResult,\n} from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tselectTokenSetFrontendCallbackClientFromRegistry,\n\ttype TokenSetCallbackClientQuery,\n\tTokenSetCallbackClientSelectionKind,\n\ttype TokenSetCallbackClientSelectionSnapshot,\n\ttype TokenSetFrontendCallbackClientFromRegistrySelectionSignal,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\ntype FrontendCallbackResult =\n\tOidcModeCallbackHandlingResult<FrontendOidcModeCallbackResult>;\n\n@Component({\n\tselector: \"sd-token-set-frontend-callback\",\n\tstandalone: true,\n\ttemplate: \"\",\n\texportAs: \"sdTokenSetFrontendCallback\",\n})\nexport class TokenSetFrontendCallbackComponent {\n\treadonly clientQuery = input<TokenSetCallbackClientQuery | undefined>();\n\treadonly autoInitialize = input(true);\n\n\tprivate readonly environment = inject(ENVIRONMENT);\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly destroyRef = inject(DestroyRef);\n\tprivate readonly selectionSource =\n\t\tcreateSignal<TokenSetFrontendCallbackClientFromRegistrySelectionSignal | null>(\n\t\t\tnull,\n\t\t);\n\tprivate readonly selectionSignal = createComputed<\n\t\tTokenSetCallbackClientSelectionSnapshot<FrontendOidcModeClient>\n\t>(\n\t\t() =>\n\t\t\tthis.selectionSource.get()?.get() ?? {\n\t\t\t\tstatus: ResourceStatus.Idle,\n\t\t\t},\n\t);\n\n\treadonly selection: Signal<\n\t\tTokenSetCallbackClientSelectionSnapshot<FrontendOidcModeClient>\n\t> = toNgSignal(this.selectionSignal, { requireSync: true });\n\treadonly resource = resourceFromSnapshots<FrontendCallbackResult>(() => {\n\t\tconst selection = this.selectionSignal.get();\n\t\tswitch (selection.status) {\n\t\t\tcase ResourceStatus.Idle:\n\t\t\t\treturn { status: ResourceStatus.Idle };\n\t\t\tcase ResourceStatus.Loading:\n\t\t\t\treturn { status: ResourceStatus.Loading };\n\t\t\tcase ResourceStatus.LoadingError:\n\t\t\t\treturn selection;\n\t\t\tcase ResourceStatus.Resolved:\n\t\t\t\treturn selection.value.kind ===\n\t\t\t\t\tTokenSetCallbackClientSelectionKind.NotApplicable\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstatus: ResourceStatus.Resolved,\n\t\t\t\t\t\t\tvalue: { kind: OidcModeCallbackHandlingKind.NotApplicable },\n\t\t\t\t\t\t}\n\t\t\t\t\t: selection.value.client.callback.state.get();\n\t\t}\n\t});\n\treadonly state: Signal<ResourceSnapshot<FrontendCallbackResult>> = toNgSignal(\n\t\tthis.resource,\n\t\t{ requireSync: true },\n\t);\n\n\tconstructor() {\n\t\tthis.destroyRef.onDestroy(() => this.resource.dispose());\n\t\tafterNextRender(() => {\n\t\t\tthis.selectionSource.set(\n\t\t\t\tselectTokenSetFrontendCallbackClientFromRegistry({\n\t\t\t\t\tregistry: this.registry,\n\t\t\t\t\tcallbackUrl: this.environment.router?.currentUrl()?.toString() ?? \"\",\n\t\t\t\t\tclientQuery: this.clientQuery(),\n\t\t\t\t\tinitialize: this.autoInitialize(),\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t}\n}\n","// Angular integration family for @securitydept/token-set-context-client\n//\n// Canonical import path:\n// import { ... } from \"@securitydept/token-set-context-client-angular\"\n//\n// Multi-client-first Angular-native adapter surface:\n// - Keyed client registration via provideTokenSetClientRegistry()\n// - Multi-client lookup via the core TokenSetClientRegistry\n// - Per-client mode client replay signals with RxJS bridge support\n// - Client-registry authorization interceptor (functional + class-based)\n// - provideTokenSetClientRegistryAuthorizationInterceptor() for NgModule HTTP_INTERCEPTORS setup\n// - Requirement/provider-family → client key mapping\n// - secureTokenSetRouteRoot() / secureTokenSetRoute() — token-set Angular\n// Router route-security builders that delegate to the client-angular base\n// helpers and mount the token-set behaviour host.\n// - provideTokenSetRequirementPlannerHost() — provides the token-set\n// RequirementPlannerHost behaviour to the client-angular guard pipeline.\n// - createTokenSetCanActivate() / createTokenSetCanActivateChild() — token-set\n// named guard factories over the client-angular base guards.\n// - Signal/Observable bridge utilities live in @securitydept/client-angular\n//\n// Built by ng-packagr (APF / FESM2022). Decorators are fully supported.\n//\n// Stability: provisional (framework adapter)\n\nexport * from \"./auth-coordination\";\nexport * from \"./client-registry\";\nexport * from \"./client-registry-authorization.interceptor\";\nexport * from \"./components\";\n","/*\n * Public API Surface of @securitydept/token-set-context-client-angular\n */\n\nexport * from \"./lib\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["provideCoreTokenSetClientRegistry","CORE_TOKEN_SET_CLIENT_REGISTRY","baseSecureRoute","baseSecureRouteRoot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"securitydept-token-set-context-client-angular.mjs","sources":["../../src/lib/client-registry.ts","../../src/lib/auth-coordination/planner-host.ts","../../src/lib/auth-coordination/secure-routes.ts","../../src/lib/client-registry-authorization.interceptor.ts","../../src/lib/components/backend-callback.component.ts","../../src/lib/components/frontend-callback.component.ts","../../src/lib/index.ts","../../src/public-api.ts","../../src/securitydept-token-set-context-client-angular.ts"],"sourcesContent":["import { InjectionToken, type Provider } from \"@angular/core\";\nimport { type FoundationEnvironment } from \"@securitydept/client\";\nimport {\n\tENVIRONMENT,\n\tprovideEnvironmentProvider,\n} from \"@securitydept/client-angular\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tTOKEN_SET_CLIENT_REGISTRY as CORE_TOKEN_SET_CLIENT_REGISTRY,\n\ttype ProvideTokenSetClientRegistryOptions,\n\tprovideTokenSetClientRegistry as provideCoreTokenSetClientRegistry,\n\ttype TokenSetClientRegistry,\n} from \"@securitydept/token-set-context-client/registry\";\n\nexport const TOKEN_SET_CLIENT_REGISTRY = new InjectionToken<\n\tTokenSetClientRegistry<BaseOidcModeClient>\n>(\"TOKEN_SET_CLIENT_REGISTRY\");\n\nexport { type ProvideTokenSetClientRegistryOptions };\n\nexport function provideTokenSetClientRegistry(\n\toptions: ProvideTokenSetClientRegistryOptions = {},\n): Provider[] {\n\treturn [\n\t\t...provideCoreTokenSetClientRegistry(options).map(\n\t\t\tprovideEnvironmentProvider,\n\t\t),\n\t\t{\n\t\t\tprovide: TOKEN_SET_CLIENT_REGISTRY,\n\t\t\tuseFactory: (environment: FoundationEnvironment) =>\n\t\t\t\tenvironment.injector.get(CORE_TOKEN_SET_CLIENT_REGISTRY),\n\t\t\tdeps: [ENVIRONMENT],\n\t\t},\n\t];\n}\n","// Token-set requirement planner host — Angular DI adapter over core registry auth coordination\n\nimport {\n\ttype EnvironmentProviders,\n\tinject,\n\tmakeEnvironmentProviders,\n} from \"@angular/core\";\nimport {\n\tREQUIREMENT_PLANNER_HOST,\n\ttype RequirementPlannerHost,\n\ttype RouteBehaviourContextExtra,\n\tSecuritydeptInjector,\n} from \"@securitydept/client\";\nimport {\n\tENVIRONMENT,\n\tSECURITYDEPT_INJECTOR,\n} from \"@securitydept/client-angular\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tTokenSetClientRegistryPlannerHost,\n\tTokenSetClientRegistryRequirementBehaviour,\n\ttype TokenSetClientRegistryRequirementBehaviourOptions,\n\ttype TokenSetClientRegistryRouteRequirementBehaviourShape,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\n/** Options for {@link provideTokenSetRequirementPlannerHost}. */\nexport type ProvideTokenSetRequirementPlannerHostOptions =\n\tTokenSetClientRegistryRequirementBehaviourOptions<\n\t\tBaseOidcModeClient,\n\t\tRouteBehaviourContextExtra\n\t>;\n\n/**\n * Provide registry-backed requirement behaviour for Angular guards.\n *\n * This is intentionally a thin adapter over the framework-neutral registry\n * auth-coordination layer. Route requirements must carry\n * `attributes.query: TokenSetClientQueryOptions`.\n */\nexport function provideTokenSetRequirementPlannerHost(\n\toptions: ProvideTokenSetRequirementPlannerHostOptions = {},\n): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\t{\n\t\t\tprovide: SECURITYDEPT_INJECTOR,\n\t\t\tuseFactory: (): SecuritydeptInjector => {\n\t\t\t\tconst registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\t\t\t\tconst environment = inject(ENVIRONMENT);\n\t\t\t\tconst parentInjector =\n\t\t\t\t\tinject(SECURITYDEPT_INJECTOR, {\n\t\t\t\t\t\toptional: true,\n\t\t\t\t\t\tskipSelf: true,\n\t\t\t\t\t}) ?? undefined;\n\t\t\t\tconst parent = (parentInjector?.get(REQUIREMENT_PLANNER_HOST, null) ??\n\t\t\t\t\tundefined) as\n\t\t\t\t\t| RequirementPlannerHost<TokenSetClientRegistryRouteRequirementBehaviourShape>\n\t\t\t\t\t| undefined;\n\t\t\t\tconst behaviour = new TokenSetClientRegistryRequirementBehaviour<\n\t\t\t\t\tBaseOidcModeClient,\n\t\t\t\t\tRouteBehaviourContextExtra\n\t\t\t\t>(registry, options);\n\t\t\t\tconst host = new TokenSetClientRegistryPlannerHost<\n\t\t\t\t\tBaseOidcModeClient,\n\t\t\t\t\tRouteBehaviourContextExtra,\n\t\t\t\t\tTokenSetClientRegistryRouteRequirementBehaviourShape\n\t\t\t\t>(registry, behaviour, environment, parent);\n\t\t\t\tconst providers = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: REQUIREMENT_PLANNER_HOST,\n\t\t\t\t\t\tuseValue: host as RequirementPlannerHost<unknown>,\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn parentInjector\n\t\t\t\t\t? SecuritydeptInjector.fromParentInjector(parentInjector, providers)\n\t\t\t\t\t: SecuritydeptInjector.resolveAndCreate(providers);\n\t\t\t},\n\t\t},\n\t]);\n}\n","// Token-set secure route helpers — query-first registry requirements\n\nimport {\n\ttype CanActivateChildFn,\n\ttype CanActivateFn,\n\ttype Route,\n} from \"@angular/router\";\nimport { type RequirementsComposition } from \"@securitydept/client\";\nimport {\n\tsecureRoute as baseSecureRoute,\n\tsecureRouteRoot as baseSecureRouteRoot,\n\ttype CreateAngularGuardOptions,\n\tcreateAngularCanActivate,\n\tcreateAngularCanActivateChild,\n\ttype SecureRouteConfig,\n} from \"@securitydept/client-angular\";\nimport { type TokenSetClientRegistryAuthRequirement } from \"@securitydept/token-set-context-client/registry\";\nimport {\n\ttype ProvideTokenSetRequirementPlannerHostOptions,\n\tprovideTokenSetRequirementPlannerHost,\n} from \"./planner-host\";\n\n/** Serializable token-set security declaration for a child route. */\nexport interface TokenSetSecureRouteSecurityOptions {\n\t/** Requirements declared at this route segment. */\n\trequirements?: readonly TokenSetClientRegistryAuthRequirement[];\n\t/** Composition strategy against ancestor requirements (default `merge`). */\n\tcomposition?: RequirementsComposition;\n}\n\n/** Root-level token-set security: metadata plus registry behaviour hooks. */\nexport interface TokenSetSecureRouteRootSecurityOptions\n\textends TokenSetSecureRouteSecurityOptions,\n\t\tProvideTokenSetRequirementPlannerHostOptions {}\n\n/** Guard factory options specialized to token-set registry requirements. */\nexport type TokenSetAngularGuardOptions =\n\tCreateAngularGuardOptions<TokenSetClientRegistryAuthRequirement>;\n\n/**\n * Create a token-set `CanActivateFn`. The behaviour host is resolved from DI\n * (provided by {@link provideTokenSetRequirementPlannerHost}).\n */\nexport function createTokenSetCanActivate(\n\toptions?: TokenSetAngularGuardOptions,\n): CanActivateFn {\n\treturn createAngularCanActivate<TokenSetClientRegistryAuthRequirement>(\n\t\toptions,\n\t);\n}\n\n/**\n * Create a token-set `CanActivateChildFn`. The behaviour host is resolved from\n * DI (provided by {@link provideTokenSetRequirementPlannerHost}).\n */\nexport function createTokenSetCanActivateChild(\n\toptions?: TokenSetAngularGuardOptions,\n): CanActivateChildFn {\n\treturn createAngularCanActivateChild<TokenSetClientRegistryAuthRequirement>(\n\t\toptions,\n\t);\n}\n\n/**\n * Declare a secured child route. Writes token-set registry requirement\n * metadata only; enforcement is owned by a guarded\n * {@link secureTokenSetRouteRoot} ancestor.\n */\nexport function secureTokenSetRoute(\n\tpath: string,\n\tsecurity: TokenSetSecureRouteSecurityOptions = {},\n\trouteOptions?: SecureRouteConfig,\n): Route {\n\treturn baseSecureRoute<TokenSetClientRegistryAuthRequirement>(\n\t\tpath,\n\t\t{\n\t\t\trequirements: security.requirements,\n\t\t\tcomposition: security.composition,\n\t\t},\n\t\trouteOptions,\n\t);\n}\n\n/**\n * Declare a guarded token-set route root. Delegates guard assembly to the\n * client-angular base helper and mounts registry-backed behaviour hooks.\n */\nexport function secureTokenSetRouteRoot(\n\tpath: string,\n\tsecurity: TokenSetSecureRouteRootSecurityOptions = {},\n\trouteOptions?: SecureRouteConfig,\n): Route {\n\tconst providers = [\n\t\t...(routeOptions?.providers ?? []),\n\t\tprovideTokenSetRequirementPlannerHost({\n\t\t\tcheckClientAuthenticated: security.checkClientAuthenticated,\n\t\t\tonClientUnauthenticated: security.onClientUnauthenticated,\n\t\t\tselectClientCandidate: security.selectClientCandidate,\n\t\t}),\n\t];\n\treturn baseSecureRouteRoot<TokenSetClientRegistryAuthRequirement>(\n\t\tpath,\n\t\t{\n\t\t\trequirements: security.requirements,\n\t\t\tcomposition: security.composition,\n\t\t},\n\t\t{\n\t\t\t...routeOptions,\n\t\t\tproviders,\n\t\t},\n\t);\n}\n","import {\n\tHTTP_INTERCEPTORS,\n\ttype HttpEvent,\n\ttype HttpHandler,\n\ttype HttpHandlerFn,\n\ttype HttpInterceptor,\n\ttype HttpInterceptorFn,\n\ttype HttpRequest,\n} from \"@angular/common/http\";\nimport {\n\tInjectable,\n\tInjectionToken,\n\tinject,\n\ttype Provider,\n} from \"@angular/core\";\nimport { type BaseOidcModeClient } from \"@securitydept/token-set-context-client/orchestration\";\nimport { type TokenSetClientRegistry } from \"@securitydept/token-set-context-client/registry\";\nimport { from, type Observable, switchMap } from \"rxjs\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"./client-registry\";\n\nexport interface TokenSetClientRegistryAuthorizationRequest {\n\turl: string;\n\tclone(update: { setHeaders?: Record<string, string> }): unknown;\n}\n\nexport type TokenSetClientRegistryAuthorizationForRequest = (\n\tregistry: TokenSetClientRegistry<BaseOidcModeClient>,\n\trequest: TokenSetClientRegistryAuthorizationRequest,\n) => Promise<string | null | undefined> | string | null | undefined;\n\nexport interface TokenSetClientRegistryAuthorizationInterceptorProviderOptions {\n\t/**\n\t * Resolves the Authorization header value for a request.\n\t *\n\t * The default implementation selects a registered client by request URL,\n\t * initializes that client, and reads its replayed authorization header.\n\t */\n\tauthorizationForRequest?: TokenSetClientRegistryAuthorizationForRequest;\n}\n\nexport interface TokenSetClientRegistryAuthorizationInterceptorOptions\n\textends TokenSetClientRegistryAuthorizationInterceptorProviderOptions {\n\tregistry?: TokenSetClientRegistry<BaseOidcModeClient>;\n}\n\nexport const TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST =\n\tnew InjectionToken<TokenSetClientRegistryAuthorizationForRequest>(\n\t\t\"TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST\",\n\t);\n\n@Injectable()\nexport class TokenSetClientRegistryAuthorizationInterceptor\n\timplements HttpInterceptor\n{\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly authorizationForRequest =\n\t\tinject(TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST, {\n\t\t\toptional: true,\n\t\t}) ?? defaultTokenSetClientRegistryAuthorizationForRequest;\n\n\tintercept(\n\t\treq: HttpRequest<unknown>,\n\t\tnext: HttpHandler,\n\t): Observable<HttpEvent<unknown>> {\n\t\treturn from(\n\t\t\tPromise.resolve(this.authorizationForRequest(this.registry, req)),\n\t\t).pipe(\n\t\t\tswitchMap((authorization) => {\n\t\t\t\tif (!authorization) {\n\t\t\t\t\treturn next.handle(req);\n\t\t\t\t}\n\t\t\t\treturn next.handle(\n\t\t\t\t\treq.clone({ setHeaders: { Authorization: authorization } }),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\t}\n}\n\nexport function provideTokenSetClientRegistryAuthorizationInterceptor(\n\toptions?: TokenSetClientRegistryAuthorizationInterceptorProviderOptions,\n): Provider[] {\n\tconst providers: Provider[] = [\n\t\t{\n\t\t\tprovide: HTTP_INTERCEPTORS,\n\t\t\tuseClass: TokenSetClientRegistryAuthorizationInterceptor,\n\t\t\tmulti: true,\n\t\t},\n\t];\n\tif (options) {\n\t\tif (options.authorizationForRequest) {\n\t\t\tproviders.push({\n\t\t\t\tprovide: TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST,\n\t\t\t\tuseValue: options.authorizationForRequest,\n\t\t\t});\n\t\t}\n\t}\n\treturn providers;\n}\n\nexport function createTokenSetClientRegistryAuthorizationInterceptor(\n\toptions?: TokenSetClientRegistryAuthorizationInterceptorOptions,\n): HttpInterceptorFn {\n\treturn function tokenSetClientRegistryAuthorizationInterceptorFn(\n\t\treq: HttpRequest<unknown>,\n\t\tnext: HttpHandlerFn,\n\t): Observable<HttpEvent<unknown>> {\n\t\tconst registry = options?.registry ?? inject(TOKEN_SET_CLIENT_REGISTRY);\n\t\tconst authorizationForRequest =\n\t\t\toptions?.authorizationForRequest ??\n\t\t\t(options\n\t\t\t\t? null\n\t\t\t\t: inject(TOKEN_SET_CLIENT_REGISTRY_AUTHORIZATION_FOR_REQUEST, {\n\t\t\t\t\t\toptional: true,\n\t\t\t\t\t})) ??\n\t\t\tdefaultTokenSetClientRegistryAuthorizationForRequest;\n\t\treturn from(Promise.resolve(authorizationForRequest(registry, req))).pipe(\n\t\t\tswitchMap((authorization) => {\n\t\t\t\tif (!authorization) {\n\t\t\t\t\treturn next(req);\n\t\t\t\t}\n\t\t\t\treturn next(\n\t\t\t\t\treq.clone({ setHeaders: { Authorization: authorization } }),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\t};\n}\n\nexport async function defaultTokenSetClientRegistryAuthorizationForRequest(\n\tregistry: TokenSetClientRegistry<BaseOidcModeClient>,\n\trequest: TokenSetClientRegistryAuthorizationRequest,\n): Promise<string | null> {\n\tconst record = await registry.clientRecordForQuery(\n\t\t{\n\t\t\turl: request.url,\n\t\t},\n\t\t{ initialize: true },\n\t);\n\tif (!record) {\n\t\treturn null;\n\t}\n\n\tconst header = await record.client.authorizationHeaderValue.whenValue();\n\treturn header ?? null;\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tDestroyRef,\n\tinject,\n\tinput,\n\ttype Signal,\n} from \"@angular/core\";\nimport {\n\tcreateComputed,\n\tcreateSignal,\n\ttype ResourceSnapshot,\n\tResourceStatus,\n\tresourceFromSnapshots,\n} from \"@securitydept/client\";\nimport { ENVIRONMENT, toNgSignal } from \"@securitydept/client-angular\";\nimport { type BackendOidcModeClient } from \"@securitydept/token-set-context-client/backend-oidc-mode\";\nimport {\n\tOidcModeCallbackHandlingKind,\n\ttype OidcModeCallbackHandlingResult,\n\ttype TokenSetAuthSnapshot,\n} from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tselectTokenSetBackendCallbackClientFromRegistry,\n\ttype TokenSetBackendCallbackClientFromRegistrySelectionSignal,\n\ttype TokenSetCallbackClientQuery,\n\tTokenSetCallbackClientSelectionKind,\n\ttype TokenSetCallbackClientSelectionSnapshot,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\ntype BackendCallbackResult =\n\tOidcModeCallbackHandlingResult<TokenSetAuthSnapshot>;\n\n@Component({\n\tselector: \"sd-token-set-backend-callback\",\n\tstandalone: true,\n\ttemplate: \"\",\n\texportAs: \"sdTokenSetBackendCallback\",\n})\nexport class TokenSetBackendCallbackComponent {\n\treadonly clientQuery = input<TokenSetCallbackClientQuery | undefined>();\n\treadonly autoInitialize = input(true);\n\n\tprivate readonly environment = inject(ENVIRONMENT);\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly destroyRef = inject(DestroyRef);\n\tprivate readonly selectionSource =\n\t\tcreateSignal<TokenSetBackendCallbackClientFromRegistrySelectionSignal | null>(\n\t\t\tnull,\n\t\t);\n\tprivate readonly selectionSignal = createComputed<\n\t\tTokenSetCallbackClientSelectionSnapshot<BackendOidcModeClient>\n\t>(\n\t\t() =>\n\t\t\tthis.selectionSource.get()?.get() ?? {\n\t\t\t\tstatus: ResourceStatus.Idle,\n\t\t\t},\n\t);\n\n\treadonly selection: Signal<\n\t\tTokenSetCallbackClientSelectionSnapshot<BackendOidcModeClient>\n\t> = toNgSignal(this.selectionSignal, { requireSync: true });\n\treadonly resource = resourceFromSnapshots<BackendCallbackResult>(() => {\n\t\tconst selection = this.selectionSignal.get();\n\t\tswitch (selection.status) {\n\t\t\tcase ResourceStatus.Idle:\n\t\t\t\treturn { status: ResourceStatus.Idle };\n\t\t\tcase ResourceStatus.Loading:\n\t\t\t\treturn { status: ResourceStatus.Loading };\n\t\t\tcase ResourceStatus.LoadingError:\n\t\t\t\treturn selection;\n\t\t\tcase ResourceStatus.Resolved:\n\t\t\t\treturn selection.value.kind ===\n\t\t\t\t\tTokenSetCallbackClientSelectionKind.NotApplicable\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstatus: ResourceStatus.Resolved,\n\t\t\t\t\t\t\tvalue: { kind: OidcModeCallbackHandlingKind.NotApplicable },\n\t\t\t\t\t\t}\n\t\t\t\t\t: selection.value.client.callback.state.get();\n\t\t}\n\t});\n\treadonly state: Signal<ResourceSnapshot<BackendCallbackResult>> = toNgSignal(\n\t\tthis.resource,\n\t\t{ requireSync: true },\n\t);\n\n\tconstructor() {\n\t\tthis.destroyRef.onDestroy(() => this.resource.dispose());\n\t\tafterNextRender(() => {\n\t\t\tthis.selectionSource.set(\n\t\t\t\tselectTokenSetBackendCallbackClientFromRegistry({\n\t\t\t\t\tregistry: this.registry,\n\t\t\t\t\tcallbackUrl: this.environment.router?.currentUrl()?.toString() ?? \"\",\n\t\t\t\t\tclientQuery: this.clientQuery(),\n\t\t\t\t\tinitialize: this.autoInitialize(),\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t}\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tDestroyRef,\n\tinject,\n\tinput,\n\ttype Signal,\n} from \"@angular/core\";\nimport {\n\tcreateComputed,\n\tcreateSignal,\n\ttype ResourceSnapshot,\n\tResourceStatus,\n\tresourceFromSnapshots,\n} from \"@securitydept/client\";\nimport { ENVIRONMENT, toNgSignal } from \"@securitydept/client-angular\";\nimport {\n\ttype FrontendOidcModeCallbackResult,\n\ttype FrontendOidcModeClient,\n} from \"@securitydept/token-set-context-client/frontend-oidc-mode\";\nimport {\n\tOidcModeCallbackHandlingKind,\n\ttype OidcModeCallbackHandlingResult,\n} from \"@securitydept/token-set-context-client/orchestration\";\nimport {\n\tselectTokenSetFrontendCallbackClientFromRegistry,\n\ttype TokenSetCallbackClientQuery,\n\tTokenSetCallbackClientSelectionKind,\n\ttype TokenSetCallbackClientSelectionSnapshot,\n\ttype TokenSetFrontendCallbackClientFromRegistrySelectionSignal,\n} from \"@securitydept/token-set-context-client/registry\";\nimport { TOKEN_SET_CLIENT_REGISTRY } from \"../client-registry\";\n\ntype FrontendCallbackResult =\n\tOidcModeCallbackHandlingResult<FrontendOidcModeCallbackResult>;\n\n@Component({\n\tselector: \"sd-token-set-frontend-callback\",\n\tstandalone: true,\n\ttemplate: \"\",\n\texportAs: \"sdTokenSetFrontendCallback\",\n})\nexport class TokenSetFrontendCallbackComponent {\n\treadonly clientQuery = input<TokenSetCallbackClientQuery | undefined>();\n\treadonly autoInitialize = input(true);\n\n\tprivate readonly environment = inject(ENVIRONMENT);\n\tprivate readonly registry = inject(TOKEN_SET_CLIENT_REGISTRY);\n\tprivate readonly destroyRef = inject(DestroyRef);\n\tprivate readonly selectionSource =\n\t\tcreateSignal<TokenSetFrontendCallbackClientFromRegistrySelectionSignal | null>(\n\t\t\tnull,\n\t\t);\n\tprivate readonly selectionSignal = createComputed<\n\t\tTokenSetCallbackClientSelectionSnapshot<FrontendOidcModeClient>\n\t>(\n\t\t() =>\n\t\t\tthis.selectionSource.get()?.get() ?? {\n\t\t\t\tstatus: ResourceStatus.Idle,\n\t\t\t},\n\t);\n\n\treadonly selection: Signal<\n\t\tTokenSetCallbackClientSelectionSnapshot<FrontendOidcModeClient>\n\t> = toNgSignal(this.selectionSignal, { requireSync: true });\n\treadonly resource = resourceFromSnapshots<FrontendCallbackResult>(() => {\n\t\tconst selection = this.selectionSignal.get();\n\t\tswitch (selection.status) {\n\t\t\tcase ResourceStatus.Idle:\n\t\t\t\treturn { status: ResourceStatus.Idle };\n\t\t\tcase ResourceStatus.Loading:\n\t\t\t\treturn { status: ResourceStatus.Loading };\n\t\t\tcase ResourceStatus.LoadingError:\n\t\t\t\treturn selection;\n\t\t\tcase ResourceStatus.Resolved:\n\t\t\t\treturn selection.value.kind ===\n\t\t\t\t\tTokenSetCallbackClientSelectionKind.NotApplicable\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstatus: ResourceStatus.Resolved,\n\t\t\t\t\t\t\tvalue: { kind: OidcModeCallbackHandlingKind.NotApplicable },\n\t\t\t\t\t\t}\n\t\t\t\t\t: selection.value.client.callback.state.get();\n\t\t}\n\t});\n\treadonly state: Signal<ResourceSnapshot<FrontendCallbackResult>> = toNgSignal(\n\t\tthis.resource,\n\t\t{ requireSync: true },\n\t);\n\n\tconstructor() {\n\t\tthis.destroyRef.onDestroy(() => this.resource.dispose());\n\t\tafterNextRender(() => {\n\t\t\tthis.selectionSource.set(\n\t\t\t\tselectTokenSetFrontendCallbackClientFromRegistry({\n\t\t\t\t\tregistry: this.registry,\n\t\t\t\t\tcallbackUrl: this.environment.router?.currentUrl()?.toString() ?? \"\",\n\t\t\t\t\tclientQuery: this.clientQuery(),\n\t\t\t\t\tinitialize: this.autoInitialize(),\n\t\t\t\t}),\n\t\t\t);\n\t\t});\n\t}\n}\n","// Angular integration family for @securitydept/token-set-context-client\n//\n// Canonical import path:\n// import { ... } from \"@securitydept/token-set-context-client-angular\"\n//\n// Multi-client-first Angular-native adapter surface:\n// - Keyed client registration via provideTokenSetClientRegistry()\n// - Multi-client lookup via the core TokenSetClientRegistry\n// - Per-client mode client replay signals with RxJS bridge support\n// - Client-registry authorization interceptor (functional + class-based)\n// - provideTokenSetClientRegistryAuthorizationInterceptor() for NgModule HTTP_INTERCEPTORS setup\n// - Requirement/provider-family → client key mapping\n// - secureTokenSetRouteRoot() / secureTokenSetRoute() — token-set Angular\n// Router route-security builders that delegate to the client-angular base\n// helpers and mount the token-set behaviour host.\n// - provideTokenSetRequirementPlannerHost() — provides the token-set\n// RequirementPlannerHost behaviour to the client-angular guard pipeline.\n// - createTokenSetCanActivate() / createTokenSetCanActivateChild() — token-set\n// named guard factories over the client-angular base guards.\n// - Signal/Observable bridge utilities live in @securitydept/client-angular\n//\n// Built by ng-packagr (APF / FESM2022). Decorators are fully supported.\n//\n// Stability: provisional (framework adapter)\n\nexport * from \"./auth-coordination\";\nexport * from \"./client-registry\";\nexport * from \"./client-registry-authorization.interceptor\";\nexport * from \"./components\";\n","/*\n * Public API Surface of @securitydept/token-set-context-client-angular\n */\n\nexport * from \"./lib\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["provideCoreTokenSetClientRegistry","CORE_TOKEN_SET_CLIENT_REGISTRY","baseSecureRoute","baseSecureRouteRoot"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@securitydept/token-set-context-client-angular",
|
|
3
|
-
"version": "0.3.0-beta.
|
|
3
|
+
"version": "0.3.0-beta.6",
|
|
4
4
|
"description": "Token Set Context Client Angular of the SecurityDept TypeScript SDK, a layered authentication and authorization toolkit built as reusable Rust crates, a TypeScript client SDK workspace, and reference server/web apps.",
|
|
5
5
|
"author": "Zhou Yeheng <root@aitiotekt.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"@angular/common": ">=19.0.0",
|
|
46
46
|
"@angular/router": ">=19.0.0",
|
|
47
47
|
"rxjs": ">=7.0.0",
|
|
48
|
-
"@securitydept/client": "0.3.0-beta.
|
|
49
|
-
"@securitydept/token-set-context-client": "0.3.0-beta.
|
|
50
|
-
"@securitydept/client-angular": "0.3.0-beta.
|
|
48
|
+
"@securitydept/client": "0.3.0-beta.6",
|
|
49
|
+
"@securitydept/token-set-context-client": "0.3.0-beta.6",
|
|
50
|
+
"@securitydept/client-angular": "0.3.0-beta.6"
|
|
51
51
|
},
|
|
52
52
|
"module": "fesm2022/securitydept-token-set-context-client-angular.mjs",
|
|
53
53
|
"typings": "types/securitydept-token-set-context-client-angular.d.ts",
|