@securitydept/token-set-context-client-angular 0.3.0-beta.5 → 0.3.0-beta.7

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: "21.2.12", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
122
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor });
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: "21.2.12", ngImport: i0, type: TokenSetClientRegistryAuthorizationInterceptor, decorators: [{
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(...(ngDevMode ? [undefined, { debugName: "clientQuery" }] : /* istanbul ignore next */ []));
176
- autoInitialize = input(true, ...(ngDevMode ? [{ debugName: "autoInitialize" }] : /* istanbul ignore next */ []));
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: "21.2.12", ngImport: i0, type: TokenSetBackendCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", 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
+ 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: "21.2.12", ngImport: i0, type: TokenSetBackendCallbackComponent, decorators: [{
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(...(ngDevMode ? [undefined, { debugName: "clientQuery" }] : /* istanbul ignore next */ []));
231
- autoInitialize = input(true, ...(ngDevMode ? [{ debugName: "autoInitialize" }] : /* istanbul ignore next */ []));
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: "21.2.12", ngImport: i0, type: TokenSetFrontendCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
272
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", 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 });
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: "21.2.12", ngImport: i0, type: TokenSetFrontendCallbackComponent, decorators: [{
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.5",
3
+ "version": "0.3.0-beta.7",
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.5",
49
- "@securitydept/token-set-context-client": "0.3.0-beta.5",
50
- "@securitydept/client-angular": "0.3.0-beta.5"
48
+ "@securitydept/client": "0.3.0-beta.7",
49
+ "@securitydept/token-set-context-client": "0.3.0-beta.7",
50
+ "@securitydept/client-angular": "0.3.0-beta.7"
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",