@securitydept/basic-auth-context-client-angular 0.3.0-beta.1 → 0.3.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,4 +2,10 @@
2
2
 
3
3
  Basic Auth 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.
4
4
 
5
+ ## Documentation
6
+
7
+ - [Package documentation](https://www.npmjs.com/package/@securitydept/basic-auth-context-client-angular)
8
+ - [SecurityDept TypeScript SDK guide](https://github.com/ethaxon/securitydept/blob/main/docs/en/007-CLIENT_SDK_GUIDE.md)
9
+ - [SecurityDept architecture](https://github.com/ethaxon/securitydept/blob/main/docs/en/001-ARCHITECTURE.md)
10
+
5
11
  Repository: [ethaxon/securitydept](https://github.com/ethaxon/securitydept)
@@ -1,107 +1,15 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable } from '@angular/core';
3
- import * as i1 from '@securitydept/basic-auth-context-client';
4
- import { BasicAuthContextClient } from '@securitydept/basic-auth-context-client';
1
+ import { InjectionToken } from '@angular/core';
2
+ import { provideBasicAuthContext as provideBasicAuthContext$1, BASIC_AUTH_CONTEXT_CLIENT as BASIC_AUTH_CONTEXT_CLIENT$1 } from '@securitydept/basic-auth-context-client';
3
+ import { ENVIRONMENT, provideEnvironmentProvider } from '@securitydept/client-angular';
5
4
 
6
- // Angular adapter for @securitydept/basic-auth-context-client
7
- //
8
- // Canonical import path:
9
- // import { ... } from "@securitydept/basic-auth-context-client-angular"
10
- //
11
- // Provides Angular-native DI integration: InjectionToken, provider factory,
12
- // and Injectable service facade for BasicAuthContextClient.
13
- //
14
- // Built by ng-packagr (APF / FESM2022). Decorators are fully supported.
15
- //
16
- // Stability: provisional (framework adapter)
17
- // ---------------------------------------------------------------------------
18
- // InjectionToken
19
- // ---------------------------------------------------------------------------
20
- /**
21
- * Angular `InjectionToken` for `BasicAuthContextClient`.
22
- *
23
- * Use {@link provideBasicAuthContext} to register the client in the injector,
24
- * then inject via `inject(BASIC_AUTH_CONTEXT_CLIENT)` or constructor injection.
25
- */
26
5
  const BASIC_AUTH_CONTEXT_CLIENT = new InjectionToken("BASIC_AUTH_CONTEXT_CLIENT");
27
- // ---------------------------------------------------------------------------
28
- // Service facade
29
- // ---------------------------------------------------------------------------
30
- /**
31
- * Angular service facade for `BasicAuthContextClient`.
32
- *
33
- * Wraps the SDK client to provide an Angular-idiomatic API surface.
34
- * Registered via `provideBasicAuthContext`.
35
- *
36
- * @example
37
- * ```ts
38
- * @Component({ ... })
39
- * export class AuthGuardComponent {
40
- * private readonly auth = inject(BasicAuthContextService);
41
- *
42
- * get isInProtectedZone(): boolean {
43
- * return this.auth.isInZone(location.pathname);
44
- * }
45
- * }
46
- * ```
47
- */
48
- class BasicAuthContextService {
49
- client;
50
- constructor(
51
- /** The underlying SDK client instance. */
52
- client) {
53
- this.client = client;
54
- }
55
- /** Find the zone that contains the given path. */
56
- zoneForPath(path) {
57
- return this.client.zoneForPath(path);
58
- }
59
- /** Check whether a path falls inside any configured zone. */
60
- isInZone(path) {
61
- return this.client.isInZone(path);
62
- }
63
- /** Build the full login URL for a zone. */
64
- loginUrl(...args) {
65
- return this.client.loginUrl(...args);
66
- }
67
- /** Build the full logout URL for a zone. */
68
- logoutUrl(...args) {
69
- return this.client.logoutUrl(...args);
70
- }
71
- /** Handle a 401 response within the zone system. */
72
- handleUnauthorized(...args) {
73
- return this.client.handleUnauthorized(...args);
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BasicAuthContextService, deps: [{ token: i1.BasicAuthContextClient }], target: i0.ɵɵFactoryTarget.Injectable });
76
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BasicAuthContextService });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BasicAuthContextService, decorators: [{
79
- type: Injectable
80
- }], ctorParameters: () => [{ type: i1.BasicAuthContextClient }] });
81
- /**
82
- * Create Angular providers for `BasicAuthContextClient`.
83
- *
84
- * @example
85
- * ```ts
86
- * import { provideBasicAuthContext } from "@securitydept/basic-auth-context-client-angular";
87
- *
88
- * export const appConfig = {
89
- * providers: [
90
- * provideBasicAuthContext({ config: { baseUrl: "/api", zones: [...] } }),
91
- * ],
92
- * };
93
- * ```
94
- */
95
6
  function provideBasicAuthContext(options) {
96
- const client = new BasicAuthContextClient(options.config);
97
7
  return [
8
+ ...provideBasicAuthContext$1(options).map(provideEnvironmentProvider),
98
9
  {
99
10
  provide: BASIC_AUTH_CONTEXT_CLIENT,
100
- useValue: client,
101
- },
102
- {
103
- provide: BasicAuthContextService,
104
- useValue: new BasicAuthContextService(client),
11
+ useFactory: (environment) => environment.injector.get(BASIC_AUTH_CONTEXT_CLIENT$1),
12
+ deps: [ENVIRONMENT],
105
13
  },
106
14
  ];
107
15
  }
@@ -114,5 +22,5 @@ function provideBasicAuthContext(options) {
114
22
  * Generated bundle index. Do not edit.
115
23
  */
116
24
 
117
- export { BASIC_AUTH_CONTEXT_CLIENT, BasicAuthContextService, provideBasicAuthContext };
25
+ export { BASIC_AUTH_CONTEXT_CLIENT, provideBasicAuthContext };
118
26
  //# sourceMappingURL=securitydept-basic-auth-context-client-angular.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"securitydept-basic-auth-context-client-angular.mjs","sources":["../../src/lib/index.ts","../../src/public-api.ts","../../src/securitydept-basic-auth-context-client-angular.ts"],"sourcesContent":["// Angular adapter for @securitydept/basic-auth-context-client\n//\n// Canonical import path:\n// import { ... } from \"@securitydept/basic-auth-context-client-angular\"\n//\n// Provides Angular-native DI integration: InjectionToken, provider factory,\n// and Injectable service facade for BasicAuthContextClient.\n//\n// Built by ng-packagr (APF / FESM2022). Decorators are fully supported.\n//\n// Stability: provisional (framework adapter)\n\nimport { Injectable, InjectionToken, type Provider } from \"@angular/core\";\nimport {\n\tBasicAuthContextClient,\n\ttype BasicAuthContextClientConfig,\n} from \"@securitydept/basic-auth-context-client\";\n\n// ---------------------------------------------------------------------------\n// InjectionToken\n// ---------------------------------------------------------------------------\n\n/**\n * Angular `InjectionToken` for `BasicAuthContextClient`.\n *\n * Use {@link provideBasicAuthContext} to register the client in the injector,\n * then inject via `inject(BASIC_AUTH_CONTEXT_CLIENT)` or constructor injection.\n */\nexport const BASIC_AUTH_CONTEXT_CLIENT =\n\tnew InjectionToken<BasicAuthContextClient>(\"BASIC_AUTH_CONTEXT_CLIENT\");\n\n// ---------------------------------------------------------------------------\n// Service facade\n// ---------------------------------------------------------------------------\n\n/**\n * Angular service facade for `BasicAuthContextClient`.\n *\n * Wraps the SDK client to provide an Angular-idiomatic API surface.\n * Registered via `provideBasicAuthContext`.\n *\n * @example\n * ```ts\n * @Component({ ... })\n * export class AuthGuardComponent {\n * private readonly auth = inject(BasicAuthContextService);\n *\n * get isInProtectedZone(): boolean {\n * return this.auth.isInZone(location.pathname);\n * }\n * }\n * ```\n */\n@Injectable()\nexport class BasicAuthContextService {\n\tconstructor(\n\t\t/** The underlying SDK client instance. */\n\t\treadonly client: BasicAuthContextClient,\n\t) {}\n\n\t/** Find the zone that contains the given path. */\n\tzoneForPath(path: string) {\n\t\treturn this.client.zoneForPath(path);\n\t}\n\n\t/** Check whether a path falls inside any configured zone. */\n\tisInZone(path: string): boolean {\n\t\treturn this.client.isInZone(path);\n\t}\n\n\t/** Build the full login URL for a zone. */\n\tloginUrl(...args: Parameters<BasicAuthContextClient[\"loginUrl\"]>): string {\n\t\treturn this.client.loginUrl(...args);\n\t}\n\n\t/** Build the full logout URL for a zone. */\n\tlogoutUrl(...args: Parameters<BasicAuthContextClient[\"logoutUrl\"]>): string {\n\t\treturn this.client.logoutUrl(...args);\n\t}\n\n\t/** Handle a 401 response within the zone system. */\n\thandleUnauthorized(\n\t\t...args: Parameters<BasicAuthContextClient[\"handleUnauthorized\"]>\n\t) {\n\t\treturn this.client.handleUnauthorized(...args);\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Provider factory\n// ---------------------------------------------------------------------------\n\n/**\n * Options for {@link provideBasicAuthContext}.\n */\nexport interface ProvideBasicAuthContextOptions {\n\tconfig: BasicAuthContextClientConfig;\n}\n\n/**\n * Create Angular providers for `BasicAuthContextClient`.\n *\n * @example\n * ```ts\n * import { provideBasicAuthContext } from \"@securitydept/basic-auth-context-client-angular\";\n *\n * export const appConfig = {\n * providers: [\n * provideBasicAuthContext({ config: { baseUrl: \"/api\", zones: [...] } }),\n * ],\n * };\n * ```\n */\nexport function provideBasicAuthContext(\n\toptions: ProvideBasicAuthContextOptions,\n): Provider[] {\n\tconst client = new BasicAuthContextClient(options.config);\n\treturn [\n\t\t{\n\t\t\tprovide: BASIC_AUTH_CONTEXT_CLIENT,\n\t\t\tuseValue: client,\n\t\t},\n\t\t{\n\t\t\tprovide: BasicAuthContextService,\n\t\t\tuseValue: new BasicAuthContextService(client),\n\t\t},\n\t];\n}\n","/*\n * Public API Surface of @securitydept/basic-auth-context-client-angular\n */\n\nexport * from \"./lib\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AAEA;;;;;AAKG;MACU,yBAAyB,GACrC,IAAI,cAAc,CAAyB,2BAA2B;AAEvE;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;AAiBG;MAEU,uBAAuB,CAAA;AAGzB,IAAA,MAAA;AAFV,IAAA,WAAA;;IAEU,MAA8B,EAAA;QAA9B,IAAA,CAAA,MAAM,GAAN,MAAM;IACb;;AAGH,IAAA,WAAW,CAAC,IAAY,EAAA;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IACrC;;AAGA,IAAA,QAAQ,CAAC,IAAY,EAAA;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC;;IAGA,QAAQ,CAAC,GAAG,IAAoD,EAAA;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC;;IAGA,SAAS,CAAC,GAAG,IAAqD,EAAA;QACjE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACtC;;IAGA,kBAAkB,CACjB,GAAG,IAA8D,EAAA;QAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/C;uGA/BY,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAvB,uBAAuB,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;AA8CD;;;;;;;;;;;;;AAaG;AACG,SAAU,uBAAuB,CACtC,OAAuC,EAAA;IAEvC,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC;IACzD,OAAO;AACN,QAAA;AACC,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,MAAM;AAChB,SAAA;AACD,QAAA;AACC,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,IAAI,uBAAuB,CAAC,MAAM,CAAC;AAC7C,SAAA;KACD;AACF;;AC/HA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"securitydept-basic-auth-context-client-angular.mjs","sources":["../../src/lib/index.ts","../../src/public-api.ts","../../src/securitydept-basic-auth-context-client-angular.ts"],"sourcesContent":["import { InjectionToken, type Provider } from \"@angular/core\";\nimport {\n\ttype BasicAuthContextClient,\n\tBASIC_AUTH_CONTEXT_CLIENT as CORE_BASIC_AUTH_CONTEXT_CLIENT,\n\ttype ProvideBasicAuthContextOptions,\n\tprovideBasicAuthContext as provideCoreBasicAuthContext,\n} from \"@securitydept/basic-auth-context-client\";\nimport { type FoundationEnvironment } from \"@securitydept/client\";\nimport {\n\tENVIRONMENT,\n\tprovideEnvironmentProvider,\n} from \"@securitydept/client-angular\";\n\nexport const BASIC_AUTH_CONTEXT_CLIENT =\n\tnew InjectionToken<BasicAuthContextClient>(\"BASIC_AUTH_CONTEXT_CLIENT\");\n\nexport { type ProvideBasicAuthContextOptions };\n\nexport function provideBasicAuthContext(\n\toptions: ProvideBasicAuthContextOptions,\n): Provider[] {\n\treturn [\n\t\t...provideCoreBasicAuthContext(options).map(provideEnvironmentProvider),\n\t\t{\n\t\t\tprovide: BASIC_AUTH_CONTEXT_CLIENT,\n\t\t\tuseFactory: (environment: FoundationEnvironment) =>\n\t\t\t\tenvironment.injector.get(CORE_BASIC_AUTH_CONTEXT_CLIENT),\n\t\t\tdeps: [ENVIRONMENT],\n\t\t},\n\t];\n}\n","/*\n * Public API Surface of @securitydept/basic-auth-context-client-angular\n */\n\nexport * from \"./lib\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["provideCoreBasicAuthContext","CORE_BASIC_AUTH_CONTEXT_CLIENT"],"mappings":";;;;MAaa,yBAAyB,GACrC,IAAI,cAAc,CAAyB,2BAA2B;AAIjE,SAAU,uBAAuB,CACtC,OAAuC,EAAA;IAEvC,OAAO;QACN,GAAGA,yBAA2B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;AACvE,QAAA;AACC,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,UAAU,EAAE,CAAC,WAAkC,KAC9C,WAAW,CAAC,QAAQ,CAAC,GAAG,CAACC,2BAA8B,CAAC;YACzD,IAAI,EAAE,CAAC,WAAW,CAAC;AACnB,SAAA;KACD;AACF;;AC9BA;;AAEG;;ACFH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@securitydept/basic-auth-context-client-angular",
3
- "version": "0.3.0-beta.1",
3
+ "version": "0.3.0-beta.10",
4
4
  "description": "Basic Auth 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",
@@ -42,7 +42,9 @@
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@angular/core": ">=19.0.0",
45
- "@securitydept/basic-auth-context-client": "0.3.0-beta.1"
45
+ "@securitydept/basic-auth-context-client": "0.3.0-beta.10",
46
+ "@securitydept/client-angular": "0.3.0-beta.10",
47
+ "@securitydept/client": "0.3.0-beta.10"
46
48
  },
47
49
  "module": "fesm2022/securitydept-basic-auth-context-client-angular.mjs",
48
50
  "typings": "types/securitydept-basic-auth-context-client-angular.d.ts",
@@ -1,74 +1,10 @@
1
- import * as _securitydept_basic_auth_context_client from '@securitydept/basic-auth-context-client';
2
- import { BasicAuthContextClient, BasicAuthContextClientConfig } from '@securitydept/basic-auth-context-client';
3
- import * as i0 from '@angular/core';
4
1
  import { InjectionToken, Provider } from '@angular/core';
2
+ import { BasicAuthContextClient, ProvideBasicAuthContextOptions } from '@securitydept/basic-auth-context-client';
3
+ export { ProvideBasicAuthContextOptions } from '@securitydept/basic-auth-context-client';
5
4
 
6
- /**
7
- * Angular `InjectionToken` for `BasicAuthContextClient`.
8
- *
9
- * Use {@link provideBasicAuthContext} to register the client in the injector,
10
- * then inject via `inject(BASIC_AUTH_CONTEXT_CLIENT)` or constructor injection.
11
- */
12
5
  declare const BASIC_AUTH_CONTEXT_CLIENT: InjectionToken<BasicAuthContextClient>;
13
- /**
14
- * Angular service facade for `BasicAuthContextClient`.
15
- *
16
- * Wraps the SDK client to provide an Angular-idiomatic API surface.
17
- * Registered via `provideBasicAuthContext`.
18
- *
19
- * @example
20
- * ```ts
21
- * @Component({ ... })
22
- * export class AuthGuardComponent {
23
- * private readonly auth = inject(BasicAuthContextService);
24
- *
25
- * get isInProtectedZone(): boolean {
26
- * return this.auth.isInZone(location.pathname);
27
- * }
28
- * }
29
- * ```
30
- */
31
- declare class BasicAuthContextService {
32
- /** The underlying SDK client instance. */
33
- readonly client: BasicAuthContextClient;
34
- constructor(
35
- /** The underlying SDK client instance. */
36
- client: BasicAuthContextClient);
37
- /** Find the zone that contains the given path. */
38
- zoneForPath(path: string): _securitydept_basic_auth_context_client.ResolvedBasicAuthZone | undefined;
39
- /** Check whether a path falls inside any configured zone. */
40
- isInZone(path: string): boolean;
41
- /** Build the full login URL for a zone. */
42
- loginUrl(...args: Parameters<BasicAuthContextClient["loginUrl"]>): string;
43
- /** Build the full logout URL for a zone. */
44
- logoutUrl(...args: Parameters<BasicAuthContextClient["logoutUrl"]>): string;
45
- /** Handle a 401 response within the zone system. */
46
- handleUnauthorized(...args: Parameters<BasicAuthContextClient["handleUnauthorized"]>): _securitydept_basic_auth_context_client.AuthGuardResult<null>;
47
- static ɵfac: i0.ɵɵFactoryDeclaration<BasicAuthContextService, never>;
48
- static ɵprov: i0.ɵɵInjectableDeclaration<BasicAuthContextService>;
49
- }
50
- /**
51
- * Options for {@link provideBasicAuthContext}.
52
- */
53
- interface ProvideBasicAuthContextOptions {
54
- config: BasicAuthContextClientConfig;
55
- }
56
- /**
57
- * Create Angular providers for `BasicAuthContextClient`.
58
- *
59
- * @example
60
- * ```ts
61
- * import { provideBasicAuthContext } from "@securitydept/basic-auth-context-client-angular";
62
- *
63
- * export const appConfig = {
64
- * providers: [
65
- * provideBasicAuthContext({ config: { baseUrl: "/api", zones: [...] } }),
66
- * ],
67
- * };
68
- * ```
69
- */
6
+
70
7
  declare function provideBasicAuthContext(options: ProvideBasicAuthContextOptions): Provider[];
71
8
 
72
- export { BASIC_AUTH_CONTEXT_CLIENT, BasicAuthContextService, provideBasicAuthContext };
73
- export type { ProvideBasicAuthContextOptions };
9
+ export { BASIC_AUTH_CONTEXT_CLIENT, provideBasicAuthContext };
74
10
  //# sourceMappingURL=securitydept-basic-auth-context-client-angular.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"securitydept-basic-auth-context-client-angular.d.ts","sources":["../../src/lib/index.ts"],"mappings":";;;;;AAsBA;;;;;AAKG;AACH,cAAa,yBAAyB,EAAA,cAAA,CAAA,sBAAA;AAOtC;;;;;;;;;;;;;;;;;AAiBG;AACH,cACa,uBAAuB;;qBAGjB,sBAAsB;;;AAA9B,YAAQ,sBAAsB;;+BAIhB,uCAAA,CAAA,qBAAA;;AAKxB;;AAKA,sBAAkB,UAAU,CAAC,sBAAsB;;AAKnD,uBAAmB,UAAU,CAAC,sBAAsB;;gCAM1C,UAAU,CAAC,sBAAsB,0BAAuB,uCAAA,CAAA,eAAA;yCA5BtD,uBAAuB;6CAAvB,uBAAuB;AAgCnC;AAMD;;AAEG;UACc,8BAA8B;YACtC,4BAA4B;AACpC;AAED;;;;;;;;;;;;;AAaG;AACH,iBAAgB,uBAAuB,UAC7B,8BAA8B,GACrC,QAAQ;;;;","names":[]}
1
+ {"version":3,"file":"securitydept-basic-auth-context-client-angular.d.ts","sources":["../../src/lib/index.ts"],"mappings":";;;;AAaA,cAAa,yBAAyB,EAAA,cAAA,CAAA,sBAAA;;AAKtC,iBAAgB,uBAAuB,UAC7B,8BAA8B,GACrC,QAAQ;;;;","names":[]}