@openziti/ziti-mcp-server 0.1.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/LICENSE +201 -0
- package/README.md +868 -0
- package/dist/auth/client-credentials-flow.d.ts +21 -0
- package/dist/auth/client-credentials-flow.js +63 -0
- package/dist/auth/client-credentials-flow.js.map +1 -0
- package/dist/auth/device-auth-flow.d.ts +47 -0
- package/dist/auth/device-auth-flow.js +291 -0
- package/dist/auth/device-auth-flow.js.map +1 -0
- package/dist/clients/base.d.ts +74 -0
- package/dist/clients/base.js +109 -0
- package/dist/clients/base.js.map +1 -0
- package/dist/clients/claude.d.ts +22 -0
- package/dist/clients/claude.js +40 -0
- package/dist/clients/claude.js.map +1 -0
- package/dist/clients/cursor.d.ts +22 -0
- package/dist/clients/cursor.js +39 -0
- package/dist/clients/cursor.js.map +1 -0
- package/dist/clients/index.d.ts +33 -0
- package/dist/clients/index.js +39 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/types.d.ts +70 -0
- package/dist/clients/types.js +2 -0
- package/dist/clients/types.js.map +1 -0
- package/dist/clients/utils.d.ts +22 -0
- package/dist/clients/utils.js +46 -0
- package/dist/clients/utils.js.map +1 -0
- package/dist/clients/vscode.d.ts +76 -0
- package/dist/clients/vscode.js +159 -0
- package/dist/clients/vscode.js.map +1 -0
- package/dist/clients/windsurf.d.ts +22 -0
- package/dist/clients/windsurf.js +39 -0
- package/dist/clients/windsurf.js.map +1 -0
- package/dist/commands/init.d.ts +45 -0
- package/dist/commands/init.js +133 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logout.d.ts +12 -0
- package/dist/commands/logout.js +90 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/run.d.ts +15 -0
- package/dist/commands/run.js +94 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/session.d.ts +12 -0
- package/dist/commands/session.js +99 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +105 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +67 -0
- package/dist/server.js +171 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/api-sessions.d.ts +3 -0
- package/dist/tools/api-sessions.js +86 -0
- package/dist/tools/api-sessions.js.map +1 -0
- package/dist/tools/auth-policies.d.ts +3 -0
- package/dist/tools/auth-policies.js +347 -0
- package/dist/tools/auth-policies.js.map +1 -0
- package/dist/tools/authenticators.d.ts +3 -0
- package/dist/tools/authenticators.js +183 -0
- package/dist/tools/authenticators.js.map +1 -0
- package/dist/tools/certificate-authorities.d.ts +3 -0
- package/dist/tools/certificate-authorities.js +288 -0
- package/dist/tools/certificate-authorities.js.map +1 -0
- package/dist/tools/config-types.d.ts +3 -0
- package/dist/tools/config-types.js +194 -0
- package/dist/tools/config-types.js.map +1 -0
- package/dist/tools/configs.d.ts +3 -0
- package/dist/tools/configs.js +203 -0
- package/dist/tools/configs.js.map +1 -0
- package/dist/tools/controller-settings.d.ts +3 -0
- package/dist/tools/controller-settings.js +219 -0
- package/dist/tools/controller-settings.js.map +1 -0
- package/dist/tools/controllers.d.ts +3 -0
- package/dist/tools/controllers.js +89 -0
- package/dist/tools/controllers.js.map +1 -0
- package/dist/tools/edge-router-policies.d.ts +3 -0
- package/dist/tools/edge-router-policies.js +262 -0
- package/dist/tools/edge-router-policies.js.map +1 -0
- package/dist/tools/edge-routers.d.ts +3 -0
- package/dist/tools/edge-routers.js +381 -0
- package/dist/tools/edge-routers.js.map +1 -0
- package/dist/tools/enrollments.d.ts +3 -0
- package/dist/tools/enrollments.js +187 -0
- package/dist/tools/enrollments.js.map +1 -0
- package/dist/tools/external-jwt-signers.d.ts +3 -0
- package/dist/tools/external-jwt-signers.js +242 -0
- package/dist/tools/external-jwt-signers.js.map +1 -0
- package/dist/tools/identities.d.ts +3 -0
- package/dist/tools/identities.js +741 -0
- package/dist/tools/identities.js.map +1 -0
- package/dist/tools/identity-types.d.ts +3 -0
- package/dist/tools/identity-types.js +58 -0
- package/dist/tools/identity-types.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +101 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/posture-checks.d.ts +3 -0
- package/dist/tools/posture-checks.js +254 -0
- package/dist/tools/posture-checks.js.map +1 -0
- package/dist/tools/routers.d.ts +3 -0
- package/dist/tools/routers.js +169 -0
- package/dist/tools/routers.js.map +1 -0
- package/dist/tools/service-edge-router-policies.d.ts +3 -0
- package/dist/tools/service-edge-router-policies.js +282 -0
- package/dist/tools/service-edge-router-policies.js.map +1 -0
- package/dist/tools/service-policies.d.ts +3 -0
- package/dist/tools/service-policies.js +311 -0
- package/dist/tools/service-policies.js.map +1 -0
- package/dist/tools/services.d.ts +3 -0
- package/dist/tools/services.js +403 -0
- package/dist/tools/services.js.map +1 -0
- package/dist/tools/sessions.d.ts +3 -0
- package/dist/tools/sessions.js +86 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/terminators.d.ts +3 -0
- package/dist/tools/terminators.js +187 -0
- package/dist/tools/terminators.js.map +1 -0
- package/dist/tools/transit-routers.d.ts +3 -0
- package/dist/tools/transit-routers.js +169 -0
- package/dist/tools/transit-routers.js.map +1 -0
- package/dist/utils/analytics.d.ts +75 -0
- package/dist/utils/analytics.js +191 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/auth0-client.d.ts +27 -0
- package/dist/utils/auth0-client.js +67 -0
- package/dist/utils/auth0-client.js.map +1 -0
- package/dist/utils/authenticated-client.d.ts +6 -0
- package/dist/utils/authenticated-client.js +55 -0
- package/dist/utils/authenticated-client.js.map +1 -0
- package/dist/utils/config.d.ts +65 -0
- package/dist/utils/config.js +80 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/constants.d.ts +15 -0
- package/dist/utils/constants.js +17 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/controller-client/client/client.gen.d.ts +2 -0
- package/dist/utils/controller-client/client/client.gen.js +229 -0
- package/dist/utils/controller-client/client/client.gen.js.map +1 -0
- package/dist/utils/controller-client/client/index.d.ts +8 -0
- package/dist/utils/controller-client/client/index.js +7 -0
- package/dist/utils/controller-client/client/index.js.map +1 -0
- package/dist/utils/controller-client/client/types.gen.d.ts +117 -0
- package/dist/utils/controller-client/client/types.gen.js +3 -0
- package/dist/utils/controller-client/client/types.gen.js.map +1 -0
- package/dist/utils/controller-client/client/utils.gen.d.ts +33 -0
- package/dist/utils/controller-client/client/utils.gen.js +232 -0
- package/dist/utils/controller-client/client/utils.gen.js.map +1 -0
- package/dist/utils/controller-client/client.gen.d.ts +12 -0
- package/dist/utils/controller-client/client.gen.js +6 -0
- package/dist/utils/controller-client/client.gen.js.map +1 -0
- package/dist/utils/controller-client/core/auth.gen.d.ts +18 -0
- package/dist/utils/controller-client/core/auth.gen.js +15 -0
- package/dist/utils/controller-client/core/auth.gen.js.map +1 -0
- package/dist/utils/controller-client/core/bodySerializer.gen.d.ts +25 -0
- package/dist/utils/controller-client/core/bodySerializer.gen.js +58 -0
- package/dist/utils/controller-client/core/bodySerializer.gen.js.map +1 -0
- package/dist/utils/controller-client/core/params.gen.d.ts +43 -0
- package/dist/utils/controller-client/core/params.gen.js +101 -0
- package/dist/utils/controller-client/core/params.gen.js.map +1 -0
- package/dist/utils/controller-client/core/pathSerializer.gen.d.ts +33 -0
- package/dist/utils/controller-client/core/pathSerializer.gen.js +115 -0
- package/dist/utils/controller-client/core/pathSerializer.gen.js.map +1 -0
- package/dist/utils/controller-client/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/utils/controller-client/core/queryKeySerializer.gen.js +100 -0
- package/dist/utils/controller-client/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/utils/controller-client/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/utils/controller-client/core/serverSentEvents.gen.js +136 -0
- package/dist/utils/controller-client/core/serverSentEvents.gen.js.map +1 -0
- package/dist/utils/controller-client/core/types.gen.d.ts +78 -0
- package/dist/utils/controller-client/core/types.gen.js +3 -0
- package/dist/utils/controller-client/core/types.gen.js.map +1 -0
- package/dist/utils/controller-client/core/utils.gen.d.ts +19 -0
- package/dist/utils/controller-client/core/utils.gen.js +88 -0
- package/dist/utils/controller-client/core/utils.gen.js.map +1 -0
- package/dist/utils/controller-client/index.d.ts +2 -0
- package/dist/utils/controller-client/index.js +3 -0
- package/dist/utils/controller-client/index.js.map +1 -0
- package/dist/utils/controller-client/sdk.gen.d.ts +1302 -0
- package/dist/utils/controller-client/sdk.gen.js +4436 -0
- package/dist/utils/controller-client/sdk.gen.js.map +1 -0
- package/dist/utils/controller-client/types.gen.d.ts +9170 -0
- package/dist/utils/controller-client/types.gen.js +3 -0
- package/dist/utils/controller-client/types.gen.js.map +1 -0
- package/dist/utils/glob.d.ts +75 -0
- package/dist/utils/glob.js +110 -0
- package/dist/utils/glob.js.map +1 -0
- package/dist/utils/http-utility.d.ts +5 -0
- package/dist/utils/http-utility.js +68 -0
- package/dist/utils/http-utility.js.map +1 -0
- package/dist/utils/keychain.d.ts +129 -0
- package/dist/utils/keychain.js +193 -0
- package/dist/utils/keychain.js.map +1 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/logger.js +28 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/package.d.ts +3 -0
- package/dist/utils/package.js +9 -0
- package/dist/utils/package.js.map +1 -0
- package/dist/utils/scopes.d.ts +12 -0
- package/dist/utils/scopes.js +19 -0
- package/dist/utils/scopes.js.map +1 -0
- package/dist/utils/terminal.d.ts +35 -0
- package/dist/utils/terminal.js +409 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils/tools.d.ts +63 -0
- package/dist/utils/tools.js +149 -0
- package/dist/utils/tools.js.map +1 -0
- package/dist/utils/types.d.ts +55 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AuthenticationClient, ManagementClient } from 'auth0';
|
|
2
|
+
import { ZitiConfig } from './config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates and configures an OpenZiti Controller Management API client for making API calls.
|
|
5
|
+
*
|
|
6
|
+
* This function initializes a ManagementClient with proper authentication,
|
|
7
|
+
* retry logic (10 retries), and user agent information. The client provides
|
|
8
|
+
* methods for interacting with all OpenZiti Controller Management API endpoints to manage resources
|
|
9
|
+
* in your Ziti network.
|
|
10
|
+
*
|
|
11
|
+
* @param {ZitiConfig} config - Configuration object containing:
|
|
12
|
+
* - host: The OpenZiti Controller host
|
|
13
|
+
* - domain: The Auth0 domain name (e.g., 'your-tenant.auth0.com')
|
|
14
|
+
* - token: A valid OpenZiti Controller Management API access token with appropriate scopes
|
|
15
|
+
* @returns {Promise<ManagementClient>} A configured OpenZiti Controller Management API client
|
|
16
|
+
* ready to make authenticated requests to the OpenZiti Controller Management API.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getManagementClient: (config: ZitiConfig) => Promise<ManagementClient>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates and configures an Auth0 Authentication API client.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} domain - The Auth0 domain (e.g., 'your-tenant.auth0.com')
|
|
23
|
+
* @param {string} [clientId] - Optional client ID for authentication operations
|
|
24
|
+
* @param {string} [clientSecret] - Optional client secret for server-to-server operations
|
|
25
|
+
* @returns {Promise<AuthenticationClient>} Configured Auth0 Authentication API client
|
|
26
|
+
*/
|
|
27
|
+
export declare const getAuthenticationClient: (domain: string, clientId: string, clientSecret: string) => Promise<AuthenticationClient>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AuthenticationClient, ManagementClient } from 'auth0';
|
|
2
|
+
import { packageVersion } from './package.js';
|
|
3
|
+
/**
|
|
4
|
+
* Generates a standardized User-Agent string for API requests.
|
|
5
|
+
*
|
|
6
|
+
* This function constructs a User-Agent header value that identifies the application
|
|
7
|
+
* making requests to OpenZiti Controller APIs. The format follows standard conventions:
|
|
8
|
+
* "application-name/version (runtime/runtime-version)"
|
|
9
|
+
*
|
|
10
|
+
* @returns {string} Formatted User-Agent string containing the application name,
|
|
11
|
+
* version, and Node.js runtime version
|
|
12
|
+
* @example
|
|
13
|
+
* // Example usage in headers for an API request
|
|
14
|
+
* const headers = {
|
|
15
|
+
* 'Content-Type': 'application/json',
|
|
16
|
+
* 'User-Agent': getUserAgent()
|
|
17
|
+
* };
|
|
18
|
+
* // Could produce: "ziti-mcp-server/1.2.3 (node.js/16.14.0)"
|
|
19
|
+
*/
|
|
20
|
+
function getUserAgent() {
|
|
21
|
+
return `ziti-mcp-server/${packageVersion} (node.js/${process.version.replace('v', '')})`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates and configures an OpenZiti Controller Management API client for making API calls.
|
|
25
|
+
*
|
|
26
|
+
* This function initializes a ManagementClient with proper authentication,
|
|
27
|
+
* retry logic (10 retries), and user agent information. The client provides
|
|
28
|
+
* methods for interacting with all OpenZiti Controller Management API endpoints to manage resources
|
|
29
|
+
* in your Ziti network.
|
|
30
|
+
*
|
|
31
|
+
* @param {ZitiConfig} config - Configuration object containing:
|
|
32
|
+
* - host: The OpenZiti Controller host
|
|
33
|
+
* - domain: The Auth0 domain name (e.g., 'your-tenant.auth0.com')
|
|
34
|
+
* - token: A valid OpenZiti Controller Management API access token with appropriate scopes
|
|
35
|
+
* @returns {Promise<ManagementClient>} A configured OpenZiti Controller Management API client
|
|
36
|
+
* ready to make authenticated requests to the OpenZiti Controller Management API.
|
|
37
|
+
*/
|
|
38
|
+
export const getManagementClient = async (config) => {
|
|
39
|
+
return new ManagementClient({
|
|
40
|
+
// host: config.host,
|
|
41
|
+
domain: config.domain,
|
|
42
|
+
token: config.token,
|
|
43
|
+
retry: { maxRetries: 10, enabled: true },
|
|
44
|
+
headers: {
|
|
45
|
+
'User-agent': getUserAgent(),
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Creates and configures an Auth0 Authentication API client.
|
|
51
|
+
*
|
|
52
|
+
* @param {string} domain - The Auth0 domain (e.g., 'your-tenant.auth0.com')
|
|
53
|
+
* @param {string} [clientId] - Optional client ID for authentication operations
|
|
54
|
+
* @param {string} [clientSecret] - Optional client secret for server-to-server operations
|
|
55
|
+
* @returns {Promise<AuthenticationClient>} Configured Auth0 Authentication API client
|
|
56
|
+
*/
|
|
57
|
+
export const getAuthenticationClient = async (domain, clientId, clientSecret) => {
|
|
58
|
+
return new AuthenticationClient({
|
|
59
|
+
domain,
|
|
60
|
+
headers: {
|
|
61
|
+
'User-agent': getUserAgent(),
|
|
62
|
+
},
|
|
63
|
+
clientId,
|
|
64
|
+
clientSecret,
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=auth0-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth0-client.js","sourceRoot":"","sources":["../../src/utils/auth0-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA+B,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,YAAY;IACnB,OAAO,mBAAmB,cAAc,aAAa,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAkB,EAA6B,EAAE;IACzF,OAAO,IAAI,gBAAgB,CAAC;QAC1B,qBAAqB;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxC,OAAO,EAAE;YACP,YAAY,EAAE,YAAY,EAAE;SAC7B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACd,QAAgB,EAChB,YAAoB,EACW,EAAE;IACjC,OAAO,IAAI,oBAAoB,CAAC;QAC9B,MAAM;QACN,OAAO,EAAE;YACP,YAAY,EAAE,YAAY,EAAE;SAC7B;QACD,QAAQ;QACR,YAAY;KACb,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HandlerConfig, HandlerRequest, HandlerResponse } from './types.js';
|
|
2
|
+
import { createClient } from './controller-client/client/client.gen.js';
|
|
3
|
+
type ManagementClient = ReturnType<typeof createClient>;
|
|
4
|
+
export type ApiCall = (client: ManagementClient, ztSession: string | null) => Promise<unknown>;
|
|
5
|
+
export declare function withAuthenticatedClient(request: HandlerRequest, config: HandlerConfig, operationName: string, apiCall: ApiCall): Promise<HandlerResponse>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { log } from './logger.js';
|
|
2
|
+
import { createErrorResponse, createSuccessResponse } from './http-utility.js';
|
|
3
|
+
import { createClient } from './controller-client/client/client.gen.js';
|
|
4
|
+
import { authenticate } from './controller-client/sdk.gen.js';
|
|
5
|
+
export async function withAuthenticatedClient(request, config, operationName, apiCall) {
|
|
6
|
+
try {
|
|
7
|
+
if (!request.token) {
|
|
8
|
+
log('Warning: Token is empty or undefined');
|
|
9
|
+
return createErrorResponse('Error: Missing authorization token');
|
|
10
|
+
}
|
|
11
|
+
if (!config.domain) {
|
|
12
|
+
log('Error: Auth0 domain is not configured');
|
|
13
|
+
return createErrorResponse('Error: Auth0 domain is not configured');
|
|
14
|
+
}
|
|
15
|
+
if (!config.zitiControllerHost) {
|
|
16
|
+
log('Error: Ziti Controller host is not configured');
|
|
17
|
+
return createErrorResponse('Error: Ziti Controller host is not configured');
|
|
18
|
+
}
|
|
19
|
+
const managementClient = createClient({
|
|
20
|
+
baseUrl: `https://${config.zitiControllerHost}/edge/management/v1`,
|
|
21
|
+
headers: { Authorization: `Bearer ${request.token}` },
|
|
22
|
+
});
|
|
23
|
+
const authResponseData = await authenticate({
|
|
24
|
+
query: { method: 'ext-jwt' },
|
|
25
|
+
client: managementClient,
|
|
26
|
+
});
|
|
27
|
+
const ztSession = authResponseData?.response.headers.get('zt-session') ?? null;
|
|
28
|
+
log(`The value of zt-session is: ${ztSession}`);
|
|
29
|
+
try {
|
|
30
|
+
const responseData = await apiCall(managementClient, ztSession);
|
|
31
|
+
if (!responseData) {
|
|
32
|
+
return createSuccessResponse({ message: 'No results found.', logs: [] });
|
|
33
|
+
}
|
|
34
|
+
return createSuccessResponse(responseData);
|
|
35
|
+
}
|
|
36
|
+
catch (sdkError) {
|
|
37
|
+
log('Controller client error');
|
|
38
|
+
let errorMessage = `Failed to ${operationName}: ${sdkError.message || 'Unknown error'}`;
|
|
39
|
+
if (sdkError.statusCode === 401) {
|
|
40
|
+
errorMessage +=
|
|
41
|
+
'\nError: Unauthorized. Your token might be expired or invalid. Try running "npx @openziti/openziti-mcp-server init" to refresh your token.';
|
|
42
|
+
}
|
|
43
|
+
else if (sdkError.statusCode === 403) {
|
|
44
|
+
errorMessage +=
|
|
45
|
+
'\nError: Forbidden. Your token might not have the required scopes. Try running "npx @openziti/openziti-mcp-server init" to see the proper permissions.';
|
|
46
|
+
}
|
|
47
|
+
return createErrorResponse(errorMessage);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
log('Error processing request');
|
|
52
|
+
return createErrorResponse(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=authenticated-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticated-client.js","sourceRoot":"","sources":["../../src/utils/authenticated-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAK9D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuB,EACvB,MAAqB,EACrB,aAAqB,EACrB,OAAgB;IAEhB,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,OAAO,mBAAmB,CAAC,oCAAoC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAC7C,OAAO,mBAAmB,CAAC,uCAAuC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC/B,GAAG,CAAC,+CAA+C,CAAC,CAAC;YACrD,OAAO,mBAAmB,CAAC,+CAA+C,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC;YACpC,OAAO,EAAE,WAAW,MAAM,CAAC,kBAAkB,qBAAqB;YAClE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE,EAAE;SACtD,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;YAC5B,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QAC/E,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,qBAAqB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,QAAa,EAAE,CAAC;YACvB,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/B,IAAI,YAAY,GAAG,aAAa,aAAa,KAAK,QAAQ,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;YACxF,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAChC,YAAY;oBACV,4IAA4I,CAAC;YACjJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvC,YAAY;oBACV,wJAAwJ,CAAC;YAC7J,CAAC;YACD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,OAAO,mBAAmB,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ziti configuration interface representing essential
|
|
3
|
+
* connection information needed for API operations.
|
|
4
|
+
*/
|
|
5
|
+
export interface ZitiConfig {
|
|
6
|
+
/**
|
|
7
|
+
* OpenZiti Controller host.
|
|
8
|
+
* Used to construct OpenZiti Controller API endpoints.
|
|
9
|
+
* Essential for routing requests to the correct Ziti network instance.
|
|
10
|
+
*/
|
|
11
|
+
zitiControllerHost: string;
|
|
12
|
+
/**
|
|
13
|
+
* Authentication token for Auth0 Management API access.
|
|
14
|
+
* Must be valid and non-expired for API operations to succeed.
|
|
15
|
+
* Used in the Authorization header for all API requests.
|
|
16
|
+
*/
|
|
17
|
+
token: string;
|
|
18
|
+
/**
|
|
19
|
+
* Auth0 tenant domain (e.g., "your-tenant.auth0.com").
|
|
20
|
+
* Used to construct API endpoints and identify the tenant.
|
|
21
|
+
* Essential for routing requests to the correct Auth0 instance.
|
|
22
|
+
*/
|
|
23
|
+
domain: string;
|
|
24
|
+
/**
|
|
25
|
+
* Human-readable name for the Auth0 tenant.
|
|
26
|
+
* Used primarily for display purposes in logs and user interfaces.
|
|
27
|
+
* Defaults to domain if not explicitly provided.
|
|
28
|
+
*/
|
|
29
|
+
tenantName?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Loads and prepares Auth0 configuration for API interactions.
|
|
33
|
+
*
|
|
34
|
+
* This function retrieves stored credentials from the system keychain
|
|
35
|
+
* to establish a secure connection with Auth0 tenant. It handles
|
|
36
|
+
* the authentication flow behind the scenes, ensuring a valid
|
|
37
|
+
* access token is available for API operations.
|
|
38
|
+
*
|
|
39
|
+
* @returns {Promise<ZitiConfig | null>} Configuration object with token and domain
|
|
40
|
+
* or null if retrieval fails
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadConfig(): Promise<ZitiConfig | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Validates Auth0 configuration to ensure it can be used for API operations.
|
|
45
|
+
*
|
|
46
|
+
* This comprehensive validation ensures that:
|
|
47
|
+
* 1. The configuration object exists
|
|
48
|
+
* 2. The required token is present
|
|
49
|
+
* 3. The required domain is specified
|
|
50
|
+
* 4. The token has not expired
|
|
51
|
+
*
|
|
52
|
+
* Security validation is critical since invalid or expired credentials could
|
|
53
|
+
* lead to API failures or security vulnerabilities. This function prevents
|
|
54
|
+
* operations from proceeding with invalid authentication states.
|
|
55
|
+
*
|
|
56
|
+
* Note: This validation complements the user-oriented validation in `run.ts`.
|
|
57
|
+
* While `run.ts` provides detailed CLI error messages during startup,
|
|
58
|
+
* this function serves as an ongoing validation layer during server operation,
|
|
59
|
+
* particularly when handling tool requests. Both mechanisms work together
|
|
60
|
+
* to create a secure yet user-friendly experience.
|
|
61
|
+
*
|
|
62
|
+
* @param {ZitiConfig | null} config - The configuration to validate
|
|
63
|
+
* @returns {Promise<boolean>} True if config is valid and usable, false otherwise
|
|
64
|
+
*/
|
|
65
|
+
export declare function validateConfig(config: ZitiConfig | null): Promise<boolean>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as os from 'os';
|
|
2
|
+
import { keychain } from './keychain.js';
|
|
3
|
+
import { isTokenExpired, getValidAccessToken, } from '../auth/device-auth-flow.js';
|
|
4
|
+
import { log } from './logger.js';
|
|
5
|
+
// Ensure HOME is set
|
|
6
|
+
if (!process.env.HOME) {
|
|
7
|
+
process.env.HOME = os.homedir();
|
|
8
|
+
log(`HOME environment variable was not set, updating Home directory`);
|
|
9
|
+
}
|
|
10
|
+
// Determine if we're in debug mode
|
|
11
|
+
const isDebugMode = process.env.OPENZITI_MCP_DEBUG === 'true' || process.env.DEBUG?.includes('ziti-mcp');
|
|
12
|
+
log(`Debug mode: ${isDebugMode}`);
|
|
13
|
+
/**
|
|
14
|
+
* Loads and prepares Auth0 configuration for API interactions.
|
|
15
|
+
*
|
|
16
|
+
* This function retrieves stored credentials from the system keychain
|
|
17
|
+
* to establish a secure connection with Auth0 tenant. It handles
|
|
18
|
+
* the authentication flow behind the scenes, ensuring a valid
|
|
19
|
+
* access token is available for API operations.
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise<ZitiConfig | null>} Configuration object with token and domain
|
|
22
|
+
* or null if retrieval fails
|
|
23
|
+
*/
|
|
24
|
+
export async function loadConfig() {
|
|
25
|
+
const token = await getValidAccessToken();
|
|
26
|
+
const zitiControllerHost = await keychain.getZitiControllerHost();
|
|
27
|
+
const domain = await keychain.getDomain();
|
|
28
|
+
return {
|
|
29
|
+
token: token || '',
|
|
30
|
+
zitiControllerHost: zitiControllerHost || '',
|
|
31
|
+
domain: domain || '',
|
|
32
|
+
tenantName: domain || 'default',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validates Auth0 configuration to ensure it can be used for API operations.
|
|
37
|
+
*
|
|
38
|
+
* This comprehensive validation ensures that:
|
|
39
|
+
* 1. The configuration object exists
|
|
40
|
+
* 2. The required token is present
|
|
41
|
+
* 3. The required domain is specified
|
|
42
|
+
* 4. The token has not expired
|
|
43
|
+
*
|
|
44
|
+
* Security validation is critical since invalid or expired credentials could
|
|
45
|
+
* lead to API failures or security vulnerabilities. This function prevents
|
|
46
|
+
* operations from proceeding with invalid authentication states.
|
|
47
|
+
*
|
|
48
|
+
* Note: This validation complements the user-oriented validation in `run.ts`.
|
|
49
|
+
* While `run.ts` provides detailed CLI error messages during startup,
|
|
50
|
+
* this function serves as an ongoing validation layer during server operation,
|
|
51
|
+
* particularly when handling tool requests. Both mechanisms work together
|
|
52
|
+
* to create a secure yet user-friendly experience.
|
|
53
|
+
*
|
|
54
|
+
* @param {ZitiConfig | null} config - The configuration to validate
|
|
55
|
+
* @returns {Promise<boolean>} True if config is valid and usable, false otherwise
|
|
56
|
+
*/
|
|
57
|
+
export async function validateConfig(config) {
|
|
58
|
+
if (!config) {
|
|
59
|
+
log('Configuration is null');
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (!config.token) {
|
|
63
|
+
log('Auth0 token is missing');
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (!config.zitiControllerHost) {
|
|
67
|
+
log('Ziti Controller Host is missing');
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (!config.domain) {
|
|
71
|
+
log('Auth0 domain is missing');
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (await isTokenExpired()) {
|
|
75
|
+
log('Auth0 token is expired');
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,cAAc,EAEd,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qBAAqB;AACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAChC,GAAG,CAAC,gEAAgE,CAAC,CAAC;AACxE,CAAC;AAED,mCAAmC;AACnC,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACvF,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;AAoClC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;IAE1C,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;QAC5C,MAAM,EAAE,MAAM,IAAI,EAAE;QACpB,UAAU,EAAE,MAAM,IAAI,SAAS;KAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAyB;IAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/B,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,cAAc,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core application constants for the OpenZiti MCP Server.
|
|
3
|
+
*
|
|
4
|
+
* This module defines globally shared constants used across the application,
|
|
5
|
+
* such as identifiers for logging, configuration defaults, and service names.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Application identifier used for debug logging namespaces and telemetry.
|
|
9
|
+
*/
|
|
10
|
+
export declare const APP_ID = "ziti-mcp";
|
|
11
|
+
/**
|
|
12
|
+
* Default MCP server name registered in client configuration files.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MCP_SERVER_NAME = "ziti";
|
|
15
|
+
export { KEYCHAIN_SERVICE_NAME, KeychainItem, ALL_KEYCHAIN_ITEMS } from './keychain.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core application constants for the OpenZiti MCP Server.
|
|
3
|
+
*
|
|
4
|
+
* This module defines globally shared constants used across the application,
|
|
5
|
+
* such as identifiers for logging, configuration defaults, and service names.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Application identifier used for debug logging namespaces and telemetry.
|
|
9
|
+
*/
|
|
10
|
+
export const APP_ID = 'ziti-mcp';
|
|
11
|
+
/**
|
|
12
|
+
* Default MCP server name registered in client configuration files.
|
|
13
|
+
*/
|
|
14
|
+
export const MCP_SERVER_NAME = 'ziti';
|
|
15
|
+
// Re-export keychain-related constants for backward compatibility
|
|
16
|
+
export { KEYCHAIN_SERVICE_NAME, KeychainItem, ALL_KEYCHAIN_ITEMS } from './keychain.js';
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC,kEAAkE;AAClE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import { createSseClient } from '../core/serverSentEvents.gen.js';
|
|
3
|
+
import { getValidRequestBody } from '../core/utils.gen.js';
|
|
4
|
+
import { buildUrl, createConfig, createInterceptors, getParseAs, mergeConfigs, mergeHeaders, setAuthParams, } from './utils.gen.js';
|
|
5
|
+
export const createClient = (config = {}) => {
|
|
6
|
+
let _config = mergeConfigs(createConfig(), config);
|
|
7
|
+
const getConfig = () => ({ ..._config });
|
|
8
|
+
const setConfig = (config) => {
|
|
9
|
+
_config = mergeConfigs(_config, config);
|
|
10
|
+
return getConfig();
|
|
11
|
+
};
|
|
12
|
+
const interceptors = createInterceptors();
|
|
13
|
+
const beforeRequest = async (options) => {
|
|
14
|
+
const opts = {
|
|
15
|
+
..._config,
|
|
16
|
+
...options,
|
|
17
|
+
fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
|
|
18
|
+
headers: mergeHeaders(_config.headers, options.headers),
|
|
19
|
+
serializedBody: undefined,
|
|
20
|
+
};
|
|
21
|
+
if (opts.security) {
|
|
22
|
+
await setAuthParams({
|
|
23
|
+
...opts,
|
|
24
|
+
security: opts.security,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (opts.requestValidator) {
|
|
28
|
+
await opts.requestValidator(opts);
|
|
29
|
+
}
|
|
30
|
+
if (opts.body !== undefined && opts.bodySerializer) {
|
|
31
|
+
opts.serializedBody = opts.bodySerializer(opts.body);
|
|
32
|
+
}
|
|
33
|
+
// remove Content-Type header if body is empty to avoid sending invalid requests
|
|
34
|
+
if (opts.body === undefined || opts.serializedBody === '') {
|
|
35
|
+
opts.headers.delete('Content-Type');
|
|
36
|
+
}
|
|
37
|
+
const url = buildUrl(opts);
|
|
38
|
+
return { opts, url };
|
|
39
|
+
};
|
|
40
|
+
const request = async (options) => {
|
|
41
|
+
// @ts-expect-error
|
|
42
|
+
const { opts, url } = await beforeRequest(options);
|
|
43
|
+
const requestInit = {
|
|
44
|
+
redirect: 'follow',
|
|
45
|
+
...opts,
|
|
46
|
+
body: getValidRequestBody(opts),
|
|
47
|
+
};
|
|
48
|
+
let request = new Request(url, requestInit);
|
|
49
|
+
for (const fn of interceptors.request.fns) {
|
|
50
|
+
if (fn) {
|
|
51
|
+
request = await fn(request, opts);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// fetch must be assigned here, otherwise it would throw the error:
|
|
55
|
+
// TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation
|
|
56
|
+
const _fetch = opts.fetch;
|
|
57
|
+
let response;
|
|
58
|
+
try {
|
|
59
|
+
response = await _fetch(request);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
// Handle fetch exceptions (AbortError, network errors, etc.)
|
|
63
|
+
let finalError = error;
|
|
64
|
+
for (const fn of interceptors.error.fns) {
|
|
65
|
+
if (fn) {
|
|
66
|
+
finalError = (await fn(error, undefined, request, opts));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
finalError = finalError || {};
|
|
70
|
+
if (opts.throwOnError) {
|
|
71
|
+
throw finalError;
|
|
72
|
+
}
|
|
73
|
+
// Return error response
|
|
74
|
+
return opts.responseStyle === 'data'
|
|
75
|
+
? undefined
|
|
76
|
+
: {
|
|
77
|
+
error: finalError,
|
|
78
|
+
request,
|
|
79
|
+
response: undefined,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
for (const fn of interceptors.response.fns) {
|
|
83
|
+
if (fn) {
|
|
84
|
+
response = await fn(response, request, opts);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const result = {
|
|
88
|
+
request,
|
|
89
|
+
response,
|
|
90
|
+
};
|
|
91
|
+
if (response.ok) {
|
|
92
|
+
const parseAs = (opts.parseAs === 'auto'
|
|
93
|
+
? getParseAs(response.headers.get('Content-Type'))
|
|
94
|
+
: opts.parseAs) ?? 'json';
|
|
95
|
+
if (response.status === 204 ||
|
|
96
|
+
response.headers.get('Content-Length') === '0') {
|
|
97
|
+
let emptyData;
|
|
98
|
+
switch (parseAs) {
|
|
99
|
+
case 'arrayBuffer':
|
|
100
|
+
case 'blob':
|
|
101
|
+
case 'text':
|
|
102
|
+
emptyData = await response[parseAs]();
|
|
103
|
+
break;
|
|
104
|
+
case 'formData':
|
|
105
|
+
emptyData = new FormData();
|
|
106
|
+
break;
|
|
107
|
+
case 'stream':
|
|
108
|
+
emptyData = response.body;
|
|
109
|
+
break;
|
|
110
|
+
case 'json':
|
|
111
|
+
default:
|
|
112
|
+
emptyData = {};
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
return opts.responseStyle === 'data'
|
|
116
|
+
? emptyData
|
|
117
|
+
: {
|
|
118
|
+
data: emptyData,
|
|
119
|
+
...result,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
let data;
|
|
123
|
+
switch (parseAs) {
|
|
124
|
+
case 'arrayBuffer':
|
|
125
|
+
case 'blob':
|
|
126
|
+
case 'formData':
|
|
127
|
+
case 'json':
|
|
128
|
+
case 'text':
|
|
129
|
+
data = await response[parseAs]();
|
|
130
|
+
break;
|
|
131
|
+
case 'stream':
|
|
132
|
+
return opts.responseStyle === 'data'
|
|
133
|
+
? response.body
|
|
134
|
+
: {
|
|
135
|
+
data: response.body,
|
|
136
|
+
...result,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
if (parseAs === 'json') {
|
|
140
|
+
if (opts.responseValidator) {
|
|
141
|
+
await opts.responseValidator(data);
|
|
142
|
+
}
|
|
143
|
+
if (opts.responseTransformer) {
|
|
144
|
+
data = await opts.responseTransformer(data);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return opts.responseStyle === 'data'
|
|
148
|
+
? data
|
|
149
|
+
: {
|
|
150
|
+
data,
|
|
151
|
+
...result,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const textError = await response.text();
|
|
155
|
+
let jsonError;
|
|
156
|
+
try {
|
|
157
|
+
jsonError = JSON.parse(textError);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// noop
|
|
161
|
+
}
|
|
162
|
+
const error = jsonError ?? textError;
|
|
163
|
+
let finalError = error;
|
|
164
|
+
for (const fn of interceptors.error.fns) {
|
|
165
|
+
if (fn) {
|
|
166
|
+
finalError = (await fn(error, response, request, opts));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
finalError = finalError || {};
|
|
170
|
+
if (opts.throwOnError) {
|
|
171
|
+
throw finalError;
|
|
172
|
+
}
|
|
173
|
+
// TODO: we probably want to return error and improve types
|
|
174
|
+
return opts.responseStyle === 'data'
|
|
175
|
+
? undefined
|
|
176
|
+
: {
|
|
177
|
+
error: finalError,
|
|
178
|
+
...result,
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
const makeMethodFn = (method) => (options) => request({ ...options, method });
|
|
182
|
+
const makeSseFn = (method) => async (options) => {
|
|
183
|
+
const { opts, url } = await beforeRequest(options);
|
|
184
|
+
return createSseClient({
|
|
185
|
+
...opts,
|
|
186
|
+
body: opts.body,
|
|
187
|
+
headers: opts.headers,
|
|
188
|
+
method,
|
|
189
|
+
onRequest: async (url, init) => {
|
|
190
|
+
let request = new Request(url, init);
|
|
191
|
+
for (const fn of interceptors.request.fns) {
|
|
192
|
+
if (fn) {
|
|
193
|
+
request = await fn(request, opts);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return request;
|
|
197
|
+
},
|
|
198
|
+
url,
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
return {
|
|
202
|
+
buildUrl,
|
|
203
|
+
connect: makeMethodFn('CONNECT'),
|
|
204
|
+
delete: makeMethodFn('DELETE'),
|
|
205
|
+
get: makeMethodFn('GET'),
|
|
206
|
+
getConfig,
|
|
207
|
+
head: makeMethodFn('HEAD'),
|
|
208
|
+
interceptors,
|
|
209
|
+
options: makeMethodFn('OPTIONS'),
|
|
210
|
+
patch: makeMethodFn('PATCH'),
|
|
211
|
+
post: makeMethodFn('POST'),
|
|
212
|
+
put: makeMethodFn('PUT'),
|
|
213
|
+
request,
|
|
214
|
+
setConfig,
|
|
215
|
+
sse: {
|
|
216
|
+
connect: makeSseFn('CONNECT'),
|
|
217
|
+
delete: makeSseFn('DELETE'),
|
|
218
|
+
get: makeSseFn('GET'),
|
|
219
|
+
head: makeSseFn('HEAD'),
|
|
220
|
+
options: makeSseFn('OPTIONS'),
|
|
221
|
+
patch: makeSseFn('PATCH'),
|
|
222
|
+
post: makeSseFn('POST'),
|
|
223
|
+
put: makeSseFn('PUT'),
|
|
224
|
+
trace: makeSseFn('TRACE'),
|
|
225
|
+
},
|
|
226
|
+
trace: makeMethodFn('TRACE'),
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=client.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.gen.js","sourceRoot":"","sources":["../../../../src/utils/controller-client/client/client.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { Auth } from '../core/auth.gen.js';
|
|
2
|
+
export type { QuerySerializerOptions } from '../core/bodySerializer.gen.js';
|
|
3
|
+
export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen.js';
|
|
4
|
+
export { buildClientParams } from '../core/params.gen.js';
|
|
5
|
+
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen.js';
|
|
6
|
+
export { createClient } from './client.gen.js';
|
|
7
|
+
export type { Client, ClientOptions, Config, CreateClientConfig, Options, RequestOptions, RequestResult, ResolvedRequestOptions, ResponseStyle, TDataShape, } from './types.gen.js';
|
|
8
|
+
export { createConfig, mergeHeaders } from './utils.gen.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen.js';
|
|
3
|
+
export { buildClientParams } from '../core/params.gen.js';
|
|
4
|
+
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen.js';
|
|
5
|
+
export { createClient } from './client.gen.js';
|
|
6
|
+
export { createConfig, mergeHeaders } from './utils.gen.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/controller-client/client/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAIrD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAa/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|