@salesforce/b2c-tooling-sdk 0.1.0 → 0.2.0
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/dist/cjs/auth/index.d.ts +2 -0
- package/dist/cjs/auth/index.js +2 -0
- package/dist/cjs/auth/index.js.map +1 -1
- package/dist/cjs/auth/middleware.d.ts +196 -0
- package/dist/cjs/auth/middleware.js +190 -0
- package/dist/cjs/auth/middleware.js.map +1 -0
- package/dist/cjs/auth/oauth.js +21 -9
- package/dist/cjs/auth/oauth.js.map +1 -1
- package/dist/cjs/cli/base-command.d.ts +15 -0
- package/dist/cjs/cli/base-command.js +58 -2
- package/dist/cjs/cli/base-command.js.map +1 -1
- package/dist/cjs/cli/hooks.d.ts +98 -5
- package/dist/cjs/cli/hooks.js.map +1 -1
- package/dist/cjs/cli/instance-command.d.ts +1 -0
- package/dist/cjs/cli/mrt-command.d.ts +2 -1
- package/dist/cjs/cli/mrt-command.js +3 -2
- package/dist/cjs/cli/mrt-command.js.map +1 -1
- package/dist/cjs/cli/oauth-command.d.ts +1 -0
- package/dist/cjs/cli/oauth-command.js +6 -0
- package/dist/cjs/cli/oauth-command.js.map +1 -1
- package/dist/cjs/cli/ods-command.d.ts +1 -0
- package/dist/cjs/cli/webdav-command.d.ts +1 -0
- package/dist/cjs/clients/cdn-zones.d.ts +154 -0
- package/dist/cjs/clients/cdn-zones.generated.d.ts +8330 -0
- package/dist/cjs/clients/cdn-zones.generated.js +6 -0
- package/dist/cjs/clients/cdn-zones.generated.js.map +1 -0
- package/dist/cjs/clients/cdn-zones.js +100 -0
- package/dist/cjs/clients/cdn-zones.js.map +1 -0
- package/dist/cjs/clients/error-utils.d.ts +35 -0
- package/dist/cjs/clients/error-utils.js +69 -0
- package/dist/cjs/clients/error-utils.js.map +1 -0
- package/dist/cjs/clients/index.d.ts +8 -2
- package/dist/cjs/clients/index.js +6 -1
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/clients/middleware-registry.d.ts +1 -1
- package/dist/cjs/clients/middleware-registry.js.map +1 -1
- package/dist/cjs/clients/middleware.d.ts +25 -0
- package/dist/cjs/clients/middleware.js +16 -10
- package/dist/cjs/clients/middleware.js.map +1 -1
- package/dist/cjs/clients/mrt-b2c.d.ts +114 -0
- package/dist/cjs/clients/mrt-b2c.generated.d.ts +176 -0
- package/dist/cjs/clients/mrt-b2c.generated.js +6 -0
- package/dist/cjs/clients/mrt-b2c.generated.js.map +1 -0
- package/dist/cjs/clients/mrt-b2c.js +86 -0
- package/dist/cjs/clients/mrt-b2c.js.map +1 -0
- package/dist/cjs/clients/user-agent.d.ts +43 -0
- package/dist/cjs/clients/user-agent.js +87 -0
- package/dist/cjs/clients/user-agent.js.map +1 -0
- package/dist/cjs/config/dw-json.d.ts +6 -0
- package/dist/cjs/config/dw-json.js.map +1 -1
- package/dist/cjs/config/mapping.js +3 -0
- package/dist/cjs/config/mapping.js.map +1 -1
- package/dist/cjs/config/resolver.d.ts +2 -1
- package/dist/cjs/config/resolver.js +14 -7
- package/dist/cjs/config/resolver.js.map +1 -1
- package/dist/cjs/config/sources/dw-json-source.d.ts +1 -0
- package/dist/cjs/config/sources/dw-json-source.js +1 -0
- package/dist/cjs/config/sources/dw-json-source.js.map +1 -1
- package/dist/cjs/config/sources/index.d.ts +1 -0
- package/dist/cjs/config/sources/index.js +1 -0
- package/dist/cjs/config/sources/index.js.map +1 -1
- package/dist/cjs/config/sources/mobify-source.d.ts +1 -0
- package/dist/cjs/config/sources/mobify-source.js +1 -0
- package/dist/cjs/config/sources/mobify-source.js.map +1 -1
- package/dist/cjs/config/sources/package-json-source.d.ts +14 -0
- package/dist/cjs/config/sources/package-json-source.js +86 -0
- package/dist/cjs/config/sources/package-json-source.js.map +1 -0
- package/dist/cjs/config/types.d.ts +14 -0
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/operations/code/deploy.js +9 -3
- package/dist/cjs/operations/code/deploy.js.map +1 -1
- package/dist/cjs/operations/mrt/access-control.d.ts +192 -0
- package/dist/cjs/operations/mrt/access-control.js +152 -0
- package/dist/cjs/operations/mrt/access-control.js.map +1 -0
- package/dist/cjs/operations/mrt/b2c-config.d.ts +201 -0
- package/dist/cjs/operations/mrt/b2c-config.js +195 -0
- package/dist/cjs/operations/mrt/b2c-config.js.map +1 -0
- package/dist/cjs/operations/mrt/cache.d.ts +80 -0
- package/dist/cjs/operations/mrt/cache.js +65 -0
- package/dist/cjs/operations/mrt/cache.js.map +1 -0
- package/dist/cjs/operations/mrt/deployment.d.ts +157 -0
- package/dist/cjs/operations/mrt/deployment.js +109 -0
- package/dist/cjs/operations/mrt/deployment.js.map +1 -0
- package/dist/cjs/operations/mrt/env.d.ts +141 -0
- package/dist/cjs/operations/mrt/env.js +119 -0
- package/dist/cjs/operations/mrt/env.js.map +1 -1
- package/dist/cjs/operations/mrt/index.d.ts +24 -4
- package/dist/cjs/operations/mrt/index.js +23 -3
- package/dist/cjs/operations/mrt/index.js.map +1 -1
- package/dist/cjs/operations/mrt/member.d.ts +281 -0
- package/dist/cjs/operations/mrt/member.js +244 -0
- package/dist/cjs/operations/mrt/member.js.map +1 -0
- package/dist/cjs/operations/mrt/notification.d.ts +252 -0
- package/dist/cjs/operations/mrt/notification.js +206 -0
- package/dist/cjs/operations/mrt/notification.js.map +1 -0
- package/dist/cjs/operations/mrt/organization.d.ts +80 -0
- package/dist/cjs/operations/mrt/organization.js +53 -0
- package/dist/cjs/operations/mrt/organization.js.map +1 -0
- package/dist/cjs/operations/mrt/project.d.ts +261 -0
- package/dist/cjs/operations/mrt/project.js +232 -0
- package/dist/cjs/operations/mrt/project.js.map +1 -0
- package/dist/cjs/operations/mrt/push.d.ts +122 -8
- package/dist/cjs/operations/mrt/push.js +83 -10
- package/dist/cjs/operations/mrt/push.js.map +1 -1
- package/dist/cjs/operations/mrt/redirect.d.ts +337 -0
- package/dist/cjs/operations/mrt/redirect.js +256 -0
- package/dist/cjs/operations/mrt/redirect.js.map +1 -0
- package/dist/cjs/operations/mrt/user.d.ts +135 -0
- package/dist/cjs/operations/mrt/user.js +153 -0
- package/dist/cjs/operations/mrt/user.js.map +1 -0
- package/dist/cjs/skills/agents.d.ts +41 -0
- package/dist/cjs/skills/agents.js +159 -0
- package/dist/cjs/skills/agents.js.map +1 -0
- package/dist/cjs/skills/github.d.ts +47 -0
- package/dist/cjs/skills/github.js +246 -0
- package/dist/cjs/skills/github.js.map +1 -0
- package/dist/cjs/skills/index.d.ts +42 -0
- package/dist/cjs/skills/index.js +14 -0
- package/dist/cjs/skills/index.js.map +1 -0
- package/dist/cjs/skills/installer.d.ts +34 -0
- package/dist/cjs/skills/installer.js +181 -0
- package/dist/cjs/skills/installer.js.map +1 -0
- package/dist/cjs/skills/parser.d.ts +39 -0
- package/dist/cjs/skills/parser.js +131 -0
- package/dist/cjs/skills/parser.js.map +1 -0
- package/dist/cjs/skills/types.d.ts +134 -0
- package/dist/cjs/skills/types.js +7 -0
- package/dist/cjs/skills/types.js.map +1 -0
- package/dist/cjs/test-utils/config-isolation.d.ts +2 -0
- package/dist/cjs/test-utils/config-isolation.js +41 -0
- package/dist/cjs/test-utils/config-isolation.js.map +1 -0
- package/dist/cjs/test-utils/index.d.ts +1 -0
- package/dist/cjs/test-utils/index.js +7 -0
- package/dist/cjs/test-utils/index.js.map +1 -0
- package/dist/cjs/version.d.ts +14 -0
- package/dist/cjs/version.js +29 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/auth/index.d.ts +2 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/index.js.map +1 -1
- package/dist/esm/auth/middleware.d.ts +196 -0
- package/dist/esm/auth/middleware.js +190 -0
- package/dist/esm/auth/middleware.js.map +1 -0
- package/dist/esm/auth/oauth.js +21 -9
- package/dist/esm/auth/oauth.js.map +1 -1
- package/dist/esm/cli/base-command.d.ts +15 -0
- package/dist/esm/cli/base-command.js +58 -2
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/hooks.d.ts +98 -5
- package/dist/esm/cli/hooks.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +1 -0
- package/dist/esm/cli/mrt-command.d.ts +2 -1
- package/dist/esm/cli/mrt-command.js +3 -2
- package/dist/esm/cli/mrt-command.js.map +1 -1
- package/dist/esm/cli/oauth-command.d.ts +1 -0
- package/dist/esm/cli/oauth-command.js +6 -0
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/ods-command.d.ts +1 -0
- package/dist/esm/cli/webdav-command.d.ts +1 -0
- package/dist/esm/clients/cdn-zones.d.ts +154 -0
- package/dist/esm/clients/cdn-zones.generated.d.ts +8330 -0
- package/dist/esm/clients/cdn-zones.generated.js +6 -0
- package/dist/esm/clients/cdn-zones.generated.js.map +1 -0
- package/dist/esm/clients/cdn-zones.js +100 -0
- package/dist/esm/clients/cdn-zones.js.map +1 -0
- package/dist/esm/clients/error-utils.d.ts +35 -0
- package/dist/esm/clients/error-utils.js +69 -0
- package/dist/esm/clients/error-utils.js.map +1 -0
- package/dist/esm/clients/index.d.ts +8 -2
- package/dist/esm/clients/index.js +6 -1
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/clients/middleware-registry.d.ts +1 -1
- package/dist/esm/clients/middleware-registry.js.map +1 -1
- package/dist/esm/clients/middleware.d.ts +25 -0
- package/dist/esm/clients/middleware.js +16 -10
- package/dist/esm/clients/middleware.js.map +1 -1
- package/dist/esm/clients/mrt-b2c.d.ts +114 -0
- package/dist/esm/clients/mrt-b2c.generated.d.ts +176 -0
- package/dist/esm/clients/mrt-b2c.generated.js +6 -0
- package/dist/esm/clients/mrt-b2c.generated.js.map +1 -0
- package/dist/esm/clients/mrt-b2c.js +86 -0
- package/dist/esm/clients/mrt-b2c.js.map +1 -0
- package/dist/esm/clients/user-agent.d.ts +43 -0
- package/dist/esm/clients/user-agent.js +87 -0
- package/dist/esm/clients/user-agent.js.map +1 -0
- package/dist/esm/config/dw-json.d.ts +6 -0
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/mapping.js +3 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/resolver.d.ts +2 -1
- package/dist/esm/config/resolver.js +14 -7
- package/dist/esm/config/resolver.js.map +1 -1
- package/dist/esm/config/sources/dw-json-source.d.ts +1 -0
- package/dist/esm/config/sources/dw-json-source.js +1 -0
- package/dist/esm/config/sources/dw-json-source.js.map +1 -1
- package/dist/esm/config/sources/index.d.ts +1 -0
- package/dist/esm/config/sources/index.js +1 -0
- package/dist/esm/config/sources/index.js.map +1 -1
- package/dist/esm/config/sources/mobify-source.d.ts +1 -0
- package/dist/esm/config/sources/mobify-source.js +1 -0
- package/dist/esm/config/sources/mobify-source.js.map +1 -1
- package/dist/esm/config/sources/package-json-source.d.ts +14 -0
- package/dist/esm/config/sources/package-json-source.js +86 -0
- package/dist/esm/config/sources/package-json-source.js.map +1 -0
- package/dist/esm/config/types.d.ts +14 -0
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operations/code/deploy.js +9 -3
- package/dist/esm/operations/code/deploy.js.map +1 -1
- package/dist/esm/operations/mrt/access-control.d.ts +192 -0
- package/dist/esm/operations/mrt/access-control.js +152 -0
- package/dist/esm/operations/mrt/access-control.js.map +1 -0
- package/dist/esm/operations/mrt/b2c-config.d.ts +201 -0
- package/dist/esm/operations/mrt/b2c-config.js +195 -0
- package/dist/esm/operations/mrt/b2c-config.js.map +1 -0
- package/dist/esm/operations/mrt/cache.d.ts +80 -0
- package/dist/esm/operations/mrt/cache.js +65 -0
- package/dist/esm/operations/mrt/cache.js.map +1 -0
- package/dist/esm/operations/mrt/deployment.d.ts +157 -0
- package/dist/esm/operations/mrt/deployment.js +109 -0
- package/dist/esm/operations/mrt/deployment.js.map +1 -0
- package/dist/esm/operations/mrt/env.d.ts +141 -0
- package/dist/esm/operations/mrt/env.js +119 -0
- package/dist/esm/operations/mrt/env.js.map +1 -1
- package/dist/esm/operations/mrt/index.d.ts +24 -4
- package/dist/esm/operations/mrt/index.js +23 -3
- package/dist/esm/operations/mrt/index.js.map +1 -1
- package/dist/esm/operations/mrt/member.d.ts +281 -0
- package/dist/esm/operations/mrt/member.js +244 -0
- package/dist/esm/operations/mrt/member.js.map +1 -0
- package/dist/esm/operations/mrt/notification.d.ts +252 -0
- package/dist/esm/operations/mrt/notification.js +206 -0
- package/dist/esm/operations/mrt/notification.js.map +1 -0
- package/dist/esm/operations/mrt/organization.d.ts +80 -0
- package/dist/esm/operations/mrt/organization.js +53 -0
- package/dist/esm/operations/mrt/organization.js.map +1 -0
- package/dist/esm/operations/mrt/project.d.ts +261 -0
- package/dist/esm/operations/mrt/project.js +232 -0
- package/dist/esm/operations/mrt/project.js.map +1 -0
- package/dist/esm/operations/mrt/push.d.ts +122 -8
- package/dist/esm/operations/mrt/push.js +83 -10
- package/dist/esm/operations/mrt/push.js.map +1 -1
- package/dist/esm/operations/mrt/redirect.d.ts +337 -0
- package/dist/esm/operations/mrt/redirect.js +256 -0
- package/dist/esm/operations/mrt/redirect.js.map +1 -0
- package/dist/esm/operations/mrt/user.d.ts +135 -0
- package/dist/esm/operations/mrt/user.js +153 -0
- package/dist/esm/operations/mrt/user.js.map +1 -0
- package/dist/esm/skills/agents.d.ts +41 -0
- package/dist/esm/skills/agents.js +159 -0
- package/dist/esm/skills/agents.js.map +1 -0
- package/dist/esm/skills/github.d.ts +47 -0
- package/dist/esm/skills/github.js +246 -0
- package/dist/esm/skills/github.js.map +1 -0
- package/dist/esm/skills/index.d.ts +42 -0
- package/dist/esm/skills/index.js +14 -0
- package/dist/esm/skills/index.js.map +1 -0
- package/dist/esm/skills/installer.d.ts +34 -0
- package/dist/esm/skills/installer.js +181 -0
- package/dist/esm/skills/installer.js.map +1 -0
- package/dist/esm/skills/parser.d.ts +39 -0
- package/dist/esm/skills/parser.js +131 -0
- package/dist/esm/skills/parser.js.map +1 -0
- package/dist/esm/skills/types.d.ts +134 -0
- package/dist/esm/skills/types.js +7 -0
- package/dist/esm/skills/types.js.map +1 -0
- package/dist/esm/test-utils/config-isolation.d.ts +2 -0
- package/dist/esm/test-utils/config-isolation.js +41 -0
- package/dist/esm/test-utils/config-isolation.js.map +1 -0
- package/dist/esm/test-utils/index.d.ts +1 -0
- package/dist/esm/test-utils/index.js +7 -0
- package/dist/esm/test-utils/index.js.map +1 -0
- package/dist/esm/version.d.ts +14 -0
- package/dist/esm/version.js +29 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +24 -2
- package/specs/cdn-zones-v1.yaml +9324 -0
- package/specs/mrt-b2c.json +384 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Middleware Registry for B2C SDK.
|
|
3
|
+
*
|
|
4
|
+
* Provides a middleware system specifically for authentication requests (OAuth token requests).
|
|
5
|
+
* This is separate from the HTTP middleware registry because auth requests bypass the
|
|
6
|
+
* standard openapi-fetch client middleware chain.
|
|
7
|
+
*
|
|
8
|
+
* ## SDK Usage
|
|
9
|
+
*
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { globalAuthMiddlewareRegistry, AuthMiddlewareProvider } from '@salesforce/b2c-tooling-sdk/auth';
|
|
12
|
+
*
|
|
13
|
+
* const loggingProvider: AuthMiddlewareProvider = {
|
|
14
|
+
* name: 'auth-logger',
|
|
15
|
+
* getMiddleware() {
|
|
16
|
+
* return {
|
|
17
|
+
* onRequest({ request }) {
|
|
18
|
+
* console.log(`[Auth] ${request.method} ${request.url}`);
|
|
19
|
+
* return request;
|
|
20
|
+
* },
|
|
21
|
+
* onResponse({ response }) {
|
|
22
|
+
* console.log(`[Auth] ${response.status}`);
|
|
23
|
+
* return response;
|
|
24
|
+
* },
|
|
25
|
+
* };
|
|
26
|
+
* },
|
|
27
|
+
* };
|
|
28
|
+
*
|
|
29
|
+
* globalAuthMiddlewareRegistry.register(loggingProvider);
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ## CLI Plugin Usage
|
|
33
|
+
*
|
|
34
|
+
* Plugins can provide auth middleware via the `b2c:auth-middleware` hook.
|
|
35
|
+
*
|
|
36
|
+
* @module auth/middleware
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Middleware interface for authentication requests.
|
|
40
|
+
*
|
|
41
|
+
* Similar to openapi-fetch's Middleware interface, but simplified for auth requests.
|
|
42
|
+
*/
|
|
43
|
+
export interface AuthMiddleware {
|
|
44
|
+
/**
|
|
45
|
+
* Called before the auth request is sent.
|
|
46
|
+
* Can modify the request or return a new one.
|
|
47
|
+
*
|
|
48
|
+
* @param params - Object containing the request
|
|
49
|
+
* @returns Modified request, or void to use original
|
|
50
|
+
*/
|
|
51
|
+
onRequest?(params: {
|
|
52
|
+
request: Request;
|
|
53
|
+
}): Promise<Request | void>;
|
|
54
|
+
/**
|
|
55
|
+
* Called after the auth response is received.
|
|
56
|
+
* Can modify the response or return a new one.
|
|
57
|
+
*
|
|
58
|
+
* @param params - Object containing request and response
|
|
59
|
+
* @returns Modified response, or void to use original
|
|
60
|
+
*/
|
|
61
|
+
onResponse?(params: {
|
|
62
|
+
request: Request;
|
|
63
|
+
response: Response;
|
|
64
|
+
}): Promise<Response | void>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Middleware provider that supplies middleware for auth requests.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const provider: AuthMiddlewareProvider = {
|
|
72
|
+
* name: 'user-agent',
|
|
73
|
+
* getMiddleware() {
|
|
74
|
+
* return {
|
|
75
|
+
* onRequest({ request }) {
|
|
76
|
+
* request.headers.set('User-Agent', 'my-app/1.0');
|
|
77
|
+
* return request;
|
|
78
|
+
* },
|
|
79
|
+
* };
|
|
80
|
+
* },
|
|
81
|
+
* };
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export interface AuthMiddlewareProvider {
|
|
85
|
+
/**
|
|
86
|
+
* Human-readable name for the provider (used in logging/debugging).
|
|
87
|
+
*/
|
|
88
|
+
readonly name: string;
|
|
89
|
+
/**
|
|
90
|
+
* Returns middleware for auth requests.
|
|
91
|
+
*
|
|
92
|
+
* @returns Middleware to apply, or undefined to skip
|
|
93
|
+
*/
|
|
94
|
+
getMiddleware(): AuthMiddleware | undefined;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Registry for auth middleware providers.
|
|
98
|
+
*
|
|
99
|
+
* The registry collects middleware from multiple providers and returns
|
|
100
|
+
* them in registration order when requested during OAuth token requests.
|
|
101
|
+
*
|
|
102
|
+
* ## Usage Modes
|
|
103
|
+
*
|
|
104
|
+
* **SDK Mode**: Register providers directly via `register()`:
|
|
105
|
+
* ```typescript
|
|
106
|
+
* globalAuthMiddlewareRegistry.register(myProvider);
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* **CLI Mode**: Providers are collected via the `b2c:auth-middleware` hook
|
|
110
|
+
* and registered during command initialization.
|
|
111
|
+
*/
|
|
112
|
+
export declare class AuthMiddlewareRegistry {
|
|
113
|
+
private providers;
|
|
114
|
+
/**
|
|
115
|
+
* Registers a middleware provider.
|
|
116
|
+
*
|
|
117
|
+
* Providers are called in registration order when middleware is requested.
|
|
118
|
+
*
|
|
119
|
+
* @param provider - The provider to register
|
|
120
|
+
*/
|
|
121
|
+
register(provider: AuthMiddlewareProvider): void;
|
|
122
|
+
/**
|
|
123
|
+
* Unregisters a middleware provider by name.
|
|
124
|
+
*
|
|
125
|
+
* @param name - The name of the provider to remove
|
|
126
|
+
* @returns true if a provider was removed, false if not found
|
|
127
|
+
*/
|
|
128
|
+
unregister(name: string): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Collects middleware from all providers.
|
|
131
|
+
*
|
|
132
|
+
* @returns Array of middleware in registration order
|
|
133
|
+
*/
|
|
134
|
+
getMiddleware(): AuthMiddleware[];
|
|
135
|
+
/**
|
|
136
|
+
* Clears all registered providers.
|
|
137
|
+
*
|
|
138
|
+
* Primarily useful for testing.
|
|
139
|
+
*/
|
|
140
|
+
clear(): void;
|
|
141
|
+
/**
|
|
142
|
+
* Returns the number of registered providers.
|
|
143
|
+
*/
|
|
144
|
+
get size(): number;
|
|
145
|
+
/**
|
|
146
|
+
* Returns the names of all registered providers.
|
|
147
|
+
*/
|
|
148
|
+
getProviderNames(): string[];
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Global auth middleware registry instance.
|
|
152
|
+
*
|
|
153
|
+
* This is the default registry used by OAuth strategies. Register
|
|
154
|
+
* middleware providers here to have them applied to token requests.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* import { globalAuthMiddlewareRegistry } from '@salesforce/b2c-tooling-sdk/auth';
|
|
159
|
+
*
|
|
160
|
+
* globalAuthMiddlewareRegistry.register({
|
|
161
|
+
* name: 'user-agent',
|
|
162
|
+
* getMiddleware() {
|
|
163
|
+
* return {
|
|
164
|
+
* onRequest({ request }) {
|
|
165
|
+
* request.headers.set('User-Agent', 'my-app/1.0');
|
|
166
|
+
* return request;
|
|
167
|
+
* },
|
|
168
|
+
* };
|
|
169
|
+
* },
|
|
170
|
+
* });
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export declare const globalAuthMiddlewareRegistry: AuthMiddlewareRegistry;
|
|
174
|
+
/**
|
|
175
|
+
* Applies auth middleware to a request.
|
|
176
|
+
*
|
|
177
|
+
* This helper applies all registered `onRequest` middleware in order,
|
|
178
|
+
* accumulating modifications to the request.
|
|
179
|
+
*
|
|
180
|
+
* @param request - The original request
|
|
181
|
+
* @param middleware - Array of middleware to apply
|
|
182
|
+
* @returns The modified request
|
|
183
|
+
*/
|
|
184
|
+
export declare function applyAuthRequestMiddleware(request: Request, middleware: AuthMiddleware[]): Promise<Request>;
|
|
185
|
+
/**
|
|
186
|
+
* Applies auth middleware to a response.
|
|
187
|
+
*
|
|
188
|
+
* This helper applies all registered `onResponse` middleware in order,
|
|
189
|
+
* accumulating modifications to the response.
|
|
190
|
+
*
|
|
191
|
+
* @param request - The original request (for context)
|
|
192
|
+
* @param response - The response to process
|
|
193
|
+
* @param middleware - Array of middleware to apply
|
|
194
|
+
* @returns The modified response
|
|
195
|
+
*/
|
|
196
|
+
export declare function applyAuthResponseMiddleware(request: Request, response: Response, middleware: AuthMiddleware[]): Promise<Response>;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Auth Middleware Registry for B2C SDK.
|
|
8
|
+
*
|
|
9
|
+
* Provides a middleware system specifically for authentication requests (OAuth token requests).
|
|
10
|
+
* This is separate from the HTTP middleware registry because auth requests bypass the
|
|
11
|
+
* standard openapi-fetch client middleware chain.
|
|
12
|
+
*
|
|
13
|
+
* ## SDK Usage
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { globalAuthMiddlewareRegistry, AuthMiddlewareProvider } from '@salesforce/b2c-tooling-sdk/auth';
|
|
17
|
+
*
|
|
18
|
+
* const loggingProvider: AuthMiddlewareProvider = {
|
|
19
|
+
* name: 'auth-logger',
|
|
20
|
+
* getMiddleware() {
|
|
21
|
+
* return {
|
|
22
|
+
* onRequest({ request }) {
|
|
23
|
+
* console.log(`[Auth] ${request.method} ${request.url}`);
|
|
24
|
+
* return request;
|
|
25
|
+
* },
|
|
26
|
+
* onResponse({ response }) {
|
|
27
|
+
* console.log(`[Auth] ${response.status}`);
|
|
28
|
+
* return response;
|
|
29
|
+
* },
|
|
30
|
+
* };
|
|
31
|
+
* },
|
|
32
|
+
* };
|
|
33
|
+
*
|
|
34
|
+
* globalAuthMiddlewareRegistry.register(loggingProvider);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* ## CLI Plugin Usage
|
|
38
|
+
*
|
|
39
|
+
* Plugins can provide auth middleware via the `b2c:auth-middleware` hook.
|
|
40
|
+
*
|
|
41
|
+
* @module auth/middleware
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* Registry for auth middleware providers.
|
|
45
|
+
*
|
|
46
|
+
* The registry collects middleware from multiple providers and returns
|
|
47
|
+
* them in registration order when requested during OAuth token requests.
|
|
48
|
+
*
|
|
49
|
+
* ## Usage Modes
|
|
50
|
+
*
|
|
51
|
+
* **SDK Mode**: Register providers directly via `register()`:
|
|
52
|
+
* ```typescript
|
|
53
|
+
* globalAuthMiddlewareRegistry.register(myProvider);
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* **CLI Mode**: Providers are collected via the `b2c:auth-middleware` hook
|
|
57
|
+
* and registered during command initialization.
|
|
58
|
+
*/
|
|
59
|
+
export class AuthMiddlewareRegistry {
|
|
60
|
+
providers = [];
|
|
61
|
+
/**
|
|
62
|
+
* Registers a middleware provider.
|
|
63
|
+
*
|
|
64
|
+
* Providers are called in registration order when middleware is requested.
|
|
65
|
+
*
|
|
66
|
+
* @param provider - The provider to register
|
|
67
|
+
*/
|
|
68
|
+
register(provider) {
|
|
69
|
+
this.providers.push(provider);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Unregisters a middleware provider by name.
|
|
73
|
+
*
|
|
74
|
+
* @param name - The name of the provider to remove
|
|
75
|
+
* @returns true if a provider was removed, false if not found
|
|
76
|
+
*/
|
|
77
|
+
unregister(name) {
|
|
78
|
+
const index = this.providers.findIndex((p) => p.name === name);
|
|
79
|
+
if (index >= 0) {
|
|
80
|
+
this.providers.splice(index, 1);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Collects middleware from all providers.
|
|
87
|
+
*
|
|
88
|
+
* @returns Array of middleware in registration order
|
|
89
|
+
*/
|
|
90
|
+
getMiddleware() {
|
|
91
|
+
const middleware = [];
|
|
92
|
+
for (const provider of this.providers) {
|
|
93
|
+
const m = provider.getMiddleware();
|
|
94
|
+
if (m) {
|
|
95
|
+
middleware.push(m);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return middleware;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Clears all registered providers.
|
|
102
|
+
*
|
|
103
|
+
* Primarily useful for testing.
|
|
104
|
+
*/
|
|
105
|
+
clear() {
|
|
106
|
+
this.providers = [];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Returns the number of registered providers.
|
|
110
|
+
*/
|
|
111
|
+
get size() {
|
|
112
|
+
return this.providers.length;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns the names of all registered providers.
|
|
116
|
+
*/
|
|
117
|
+
getProviderNames() {
|
|
118
|
+
return this.providers.map((p) => p.name);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Global auth middleware registry instance.
|
|
123
|
+
*
|
|
124
|
+
* This is the default registry used by OAuth strategies. Register
|
|
125
|
+
* middleware providers here to have them applied to token requests.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { globalAuthMiddlewareRegistry } from '@salesforce/b2c-tooling-sdk/auth';
|
|
130
|
+
*
|
|
131
|
+
* globalAuthMiddlewareRegistry.register({
|
|
132
|
+
* name: 'user-agent',
|
|
133
|
+
* getMiddleware() {
|
|
134
|
+
* return {
|
|
135
|
+
* onRequest({ request }) {
|
|
136
|
+
* request.headers.set('User-Agent', 'my-app/1.0');
|
|
137
|
+
* return request;
|
|
138
|
+
* },
|
|
139
|
+
* };
|
|
140
|
+
* },
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export const globalAuthMiddlewareRegistry = new AuthMiddlewareRegistry();
|
|
145
|
+
/**
|
|
146
|
+
* Applies auth middleware to a request.
|
|
147
|
+
*
|
|
148
|
+
* This helper applies all registered `onRequest` middleware in order,
|
|
149
|
+
* accumulating modifications to the request.
|
|
150
|
+
*
|
|
151
|
+
* @param request - The original request
|
|
152
|
+
* @param middleware - Array of middleware to apply
|
|
153
|
+
* @returns The modified request
|
|
154
|
+
*/
|
|
155
|
+
export async function applyAuthRequestMiddleware(request, middleware) {
|
|
156
|
+
let currentRequest = request;
|
|
157
|
+
for (const m of middleware) {
|
|
158
|
+
if (m.onRequest) {
|
|
159
|
+
const result = await m.onRequest({ request: currentRequest });
|
|
160
|
+
if (result) {
|
|
161
|
+
currentRequest = result;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return currentRequest;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Applies auth middleware to a response.
|
|
169
|
+
*
|
|
170
|
+
* This helper applies all registered `onResponse` middleware in order,
|
|
171
|
+
* accumulating modifications to the response.
|
|
172
|
+
*
|
|
173
|
+
* @param request - The original request (for context)
|
|
174
|
+
* @param response - The response to process
|
|
175
|
+
* @param middleware - Array of middleware to apply
|
|
176
|
+
* @returns The modified response
|
|
177
|
+
*/
|
|
178
|
+
export async function applyAuthResponseMiddleware(request, response, middleware) {
|
|
179
|
+
let currentResponse = response;
|
|
180
|
+
for (const m of middleware) {
|
|
181
|
+
if (m.onResponse) {
|
|
182
|
+
const result = await m.onResponse({ request, response: currentResponse });
|
|
183
|
+
if (result) {
|
|
184
|
+
currentResponse = result;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return currentResponse;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AA2DH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,sBAAsB;IACzB,SAAS,GAA6B,EAAE,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAgC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAAgB,EAAE,UAA4B;IAC7F,IAAI,cAAc,GAAG,OAAO,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,cAAc,GAAG,MAAM,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAgB,EAChB,QAAkB,EAClB,UAA4B;IAE5B,IAAI,eAAe,GAAG,QAAQ,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAC,CAAC,CAAC;YACxE,IAAI,MAAM,EAAE,CAAC;gBACX,eAAe,GAAG,MAAM,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/dist/esm/auth/oauth.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getLogger } from '../logging/logger.js';
|
|
2
2
|
import { DEFAULT_ACCOUNT_MANAGER_HOST } from '../defaults.js';
|
|
3
|
+
import { globalAuthMiddlewareRegistry, applyAuthRequestMiddleware, applyAuthResponseMiddleware } from './middleware.js';
|
|
3
4
|
// Module-level token cache to support multiple instances with same clientId
|
|
4
5
|
const ACCESS_TOKEN_CACHE = new Map();
|
|
5
6
|
/**
|
|
@@ -131,21 +132,32 @@ export class OAuthStrategy {
|
|
|
131
132
|
params.append('scope', this.config.scopes.join(' '));
|
|
132
133
|
}
|
|
133
134
|
const credentials = Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64');
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
// Build request object for middleware
|
|
136
|
+
let request = new Request(url, {
|
|
137
|
+
method,
|
|
138
|
+
headers: {
|
|
139
|
+
Authorization: `Basic ${credentials}`,
|
|
140
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
141
|
+
},
|
|
142
|
+
body: params.toString(),
|
|
143
|
+
});
|
|
144
|
+
// Apply auth middleware (e.g., User-Agent)
|
|
145
|
+
const middleware = globalAuthMiddlewareRegistry.getMiddleware();
|
|
146
|
+
request = await applyAuthRequestMiddleware(request, middleware);
|
|
147
|
+
// Convert headers to object for logging
|
|
148
|
+
const requestHeaders = {};
|
|
149
|
+
request.headers.forEach((value, key) => {
|
|
150
|
+
requestHeaders[key] = value;
|
|
151
|
+
});
|
|
138
152
|
logger.debug({ clientId: this.config.clientId }, `[Auth] Using OAuth client_credentials grant for client: ${this.config.clientId}`);
|
|
139
153
|
// Debug: Log request start
|
|
140
154
|
logger.debug({ method, url }, `[Auth REQ] ${method} ${url}`);
|
|
141
155
|
// Trace: Log request details
|
|
142
156
|
logger.trace({ method, url, headers: requestHeaders, body: params.toString() }, `[Auth REQ BODY] ${method} ${url}`);
|
|
143
157
|
const startTime = Date.now();
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
body: params.toString(),
|
|
148
|
-
});
|
|
158
|
+
let response = await fetch(request);
|
|
159
|
+
// Apply response middleware
|
|
160
|
+
response = await applyAuthResponseMiddleware(request, response, middleware);
|
|
149
161
|
const duration = Date.now() - startTime;
|
|
150
162
|
// Debug: Log response summary
|
|
151
163
|
logger.debug({ method, url, status: response.status, duration }, `[Auth RESP] ${method} ${url} ${response.status} ${duration}ms`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/auth/oauth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,11 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
|
|
|
61
61
|
* Plugin sources are collected into two arrays based on their priority:
|
|
62
62
|
* - `pluginSourcesBefore`: High priority sources (override defaults)
|
|
63
63
|
* - `pluginSourcesAfter`: Low priority sources (fill gaps)
|
|
64
|
+
*
|
|
65
|
+
* Priority mapping:
|
|
66
|
+
* - 'before' → -1 (higher priority than defaults)
|
|
67
|
+
* - 'after' → 10 (lower priority than defaults)
|
|
68
|
+
* - number → used directly
|
|
64
69
|
*/
|
|
65
70
|
protected collectPluginConfigSources(): Promise<void>;
|
|
66
71
|
/**
|
|
@@ -73,6 +78,16 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
|
|
|
73
78
|
* Plugin middleware is registered with the global middleware registry.
|
|
74
79
|
*/
|
|
75
80
|
protected collectPluginHttpMiddleware(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Collects auth middleware from plugins via the `b2c:auth-middleware` hook.
|
|
83
|
+
*
|
|
84
|
+
* This method is called during command initialization, after flags are parsed
|
|
85
|
+
* but before any authentication is performed. It allows CLI plugins to provide
|
|
86
|
+
* custom middleware that will be applied to OAuth token requests.
|
|
87
|
+
*
|
|
88
|
+
* Plugin middleware is registered with the global auth middleware registry.
|
|
89
|
+
*/
|
|
90
|
+
protected collectPluginAuthMiddleware(): Promise<void>;
|
|
76
91
|
/**
|
|
77
92
|
* Handle errors thrown during command execution.
|
|
78
93
|
*
|
|
@@ -9,6 +9,8 @@ import { setLanguage } from '../i18n/index.js';
|
|
|
9
9
|
import { configureLogger, getLogger } from '../logging/index.js';
|
|
10
10
|
import { createExtraParamsMiddleware } from '../clients/middleware.js';
|
|
11
11
|
import { globalMiddlewareRegistry } from '../clients/middleware-registry.js';
|
|
12
|
+
import { globalAuthMiddlewareRegistry } from '../auth/middleware.js';
|
|
13
|
+
import { setUserAgent } from '../clients/user-agent.js';
|
|
12
14
|
const LOG_LEVELS = ['trace', 'debug', 'info', 'warn', 'error', 'silent'];
|
|
13
15
|
/**
|
|
14
16
|
* Base command class for B2C CLI tools.
|
|
@@ -101,11 +103,16 @@ export class BaseCommand extends Command {
|
|
|
101
103
|
setLanguage(this.flags.lang);
|
|
102
104
|
}
|
|
103
105
|
this.configureLogging();
|
|
106
|
+
// Set CLI User-Agent (CLI name/version only, without @salesforce/ prefix)
|
|
107
|
+
// This must happen before any API clients are created
|
|
108
|
+
setUserAgent(`${this.config.name.replace(/^@salesforce\//, '')}/${this.config.version}`);
|
|
104
109
|
// Register extra params middleware (from --extra-query, --extra-body, --extra-headers flags)
|
|
105
110
|
// This must happen before any API clients are created
|
|
106
111
|
this.registerExtraParamsMiddleware();
|
|
107
112
|
// Collect middleware from plugins before any API clients are created
|
|
108
113
|
await this.collectPluginHttpMiddleware();
|
|
114
|
+
// Collect auth middleware from plugins before any authentication is performed
|
|
115
|
+
await this.collectPluginAuthMiddleware();
|
|
109
116
|
// Collect config sources from plugins before loading configuration
|
|
110
117
|
await this.collectPluginConfigSources();
|
|
111
118
|
this.resolvedConfig = this.loadConfiguration();
|
|
@@ -180,6 +187,11 @@ export class BaseCommand extends Command {
|
|
|
180
187
|
* Plugin sources are collected into two arrays based on their priority:
|
|
181
188
|
* - `pluginSourcesBefore`: High priority sources (override defaults)
|
|
182
189
|
* - `pluginSourcesAfter`: Low priority sources (fill gaps)
|
|
190
|
+
*
|
|
191
|
+
* Priority mapping:
|
|
192
|
+
* - 'before' → -1 (higher priority than defaults)
|
|
193
|
+
* - 'after' → 10 (lower priority than defaults)
|
|
194
|
+
* - number → used directly
|
|
183
195
|
*/
|
|
184
196
|
async collectPluginConfigSources() {
|
|
185
197
|
// Access flags that may be defined in subclasses (OAuthCommand, InstanceCommand)
|
|
@@ -200,11 +212,26 @@ export class BaseCommand extends Command {
|
|
|
200
212
|
const result = success.result;
|
|
201
213
|
if (!result?.sources?.length)
|
|
202
214
|
continue;
|
|
203
|
-
|
|
215
|
+
// Map priority: 'before' → -1, 'after' → 10, number → as-is, undefined → 10
|
|
216
|
+
const numericPriority = result.priority === 'before'
|
|
217
|
+
? -1
|
|
218
|
+
: result.priority === 'after'
|
|
219
|
+
? 10
|
|
220
|
+
: typeof result.priority === 'number'
|
|
221
|
+
? result.priority
|
|
222
|
+
: 10; // default 'after'
|
|
223
|
+
// Apply priority to sources that don't already have one set
|
|
224
|
+
for (const source of result.sources) {
|
|
225
|
+
if (source.priority === undefined) {
|
|
226
|
+
source.priority = numericPriority;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Still use before/after arrays for backwards compatibility
|
|
230
|
+
// The resolver will sort all sources by priority anyway
|
|
231
|
+
if (numericPriority < 0) {
|
|
204
232
|
this.pluginSourcesBefore.push(...result.sources);
|
|
205
233
|
}
|
|
206
234
|
else {
|
|
207
|
-
// Default priority is 'after'
|
|
208
235
|
this.pluginSourcesAfter.push(...result.sources);
|
|
209
236
|
}
|
|
210
237
|
}
|
|
@@ -242,6 +269,35 @@ export class BaseCommand extends Command {
|
|
|
242
269
|
this.logger?.warn(`Plugin ${failure.plugin.name} b2c:http-middleware hook failed: ${failure.error.message}`);
|
|
243
270
|
}
|
|
244
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Collects auth middleware from plugins via the `b2c:auth-middleware` hook.
|
|
274
|
+
*
|
|
275
|
+
* This method is called during command initialization, after flags are parsed
|
|
276
|
+
* but before any authentication is performed. It allows CLI plugins to provide
|
|
277
|
+
* custom middleware that will be applied to OAuth token requests.
|
|
278
|
+
*
|
|
279
|
+
* Plugin middleware is registered with the global auth middleware registry.
|
|
280
|
+
*/
|
|
281
|
+
async collectPluginAuthMiddleware() {
|
|
282
|
+
const hookOptions = {
|
|
283
|
+
flags: this.flags,
|
|
284
|
+
};
|
|
285
|
+
const hookResult = await this.config.runHook('b2c:auth-middleware', hookOptions);
|
|
286
|
+
// Register middleware from all plugins that responded
|
|
287
|
+
for (const success of hookResult.successes) {
|
|
288
|
+
const result = success.result;
|
|
289
|
+
if (!result?.providers?.length)
|
|
290
|
+
continue;
|
|
291
|
+
for (const provider of result.providers) {
|
|
292
|
+
globalAuthMiddlewareRegistry.register(provider);
|
|
293
|
+
this.logger?.debug(`Registered auth middleware provider: ${provider.name}`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Log warnings for hook failures (don't break the CLI)
|
|
297
|
+
for (const failure of hookResult.failures) {
|
|
298
|
+
this.logger?.warn(`Plugin ${failure.plugin.name} b2c:auth-middleware hook failed: ${failure.error.message}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
245
301
|
/**
|
|
246
302
|
* Handle errors thrown during command execution.
|
|
247
303
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"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"}
|