@local-labs-jpollock/local-cli 0.0.1
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/addon-dist/bin/mcp-stdio.js +2808 -0
- package/addon-dist/lib/common/constants.d.ts +22 -0
- package/addon-dist/lib/common/constants.js +26 -0
- package/addon-dist/lib/common/theme.d.ts +68 -0
- package/addon-dist/lib/common/theme.js +126 -0
- package/addon-dist/lib/common/types.d.ts +298 -0
- package/addon-dist/lib/common/types.js +6 -0
- package/addon-dist/lib/main/config/ConnectionInfo.d.ts +25 -0
- package/addon-dist/lib/main/config/ConnectionInfo.js +82 -0
- package/addon-dist/lib/main/index.d.ts +12 -0
- package/addon-dist/lib/main/index.js +3322 -0
- package/addon-dist/lib/main/mcp/McpAuth.d.ts +37 -0
- package/addon-dist/lib/main/mcp/McpAuth.js +87 -0
- package/addon-dist/lib/main/mcp/McpServer.d.ts +67 -0
- package/addon-dist/lib/main/mcp/McpServer.js +343 -0
- package/addon-dist/lib/main/mcp/tools/changePhpVersion.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/changePhpVersion.js +81 -0
- package/addon-dist/lib/main/mcp/tools/cloneSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/cloneSite.js +66 -0
- package/addon-dist/lib/main/mcp/tools/createSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/createSite.js +137 -0
- package/addon-dist/lib/main/mcp/tools/deleteSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/deleteSite.js +72 -0
- package/addon-dist/lib/main/mcp/tools/exportDatabase.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/exportDatabase.js +72 -0
- package/addon-dist/lib/main/mcp/tools/exportSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/exportSite.js +103 -0
- package/addon-dist/lib/main/mcp/tools/getLocalInfo.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/getLocalInfo.js +72 -0
- package/addon-dist/lib/main/mcp/tools/getSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/getSite.js +68 -0
- package/addon-dist/lib/main/mcp/tools/getSiteLogs.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/getSiteLogs.js +149 -0
- package/addon-dist/lib/main/mcp/tools/helpers.d.ts +59 -0
- package/addon-dist/lib/main/mcp/tools/helpers.js +179 -0
- package/addon-dist/lib/main/mcp/tools/importDatabase.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/importDatabase.js +109 -0
- package/addon-dist/lib/main/mcp/tools/importSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/importSite.js +149 -0
- package/addon-dist/lib/main/mcp/tools/index.d.ts +26 -0
- package/addon-dist/lib/main/mcp/tools/index.js +117 -0
- package/addon-dist/lib/main/mcp/tools/listBlueprints.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/listBlueprints.js +54 -0
- package/addon-dist/lib/main/mcp/tools/listServices.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/listServices.js +112 -0
- package/addon-dist/lib/main/mcp/tools/listSites.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/listSites.js +62 -0
- package/addon-dist/lib/main/mcp/tools/openAdminer.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/openAdminer.js +59 -0
- package/addon-dist/lib/main/mcp/tools/openSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/openSite.js +62 -0
- package/addon-dist/lib/main/mcp/tools/renameSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/renameSite.js +70 -0
- package/addon-dist/lib/main/mcp/tools/restartSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/restartSite.js +56 -0
- package/addon-dist/lib/main/mcp/tools/saveBlueprint.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/saveBlueprint.js +89 -0
- package/addon-dist/lib/main/mcp/tools/startSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/startSite.js +54 -0
- package/addon-dist/lib/main/mcp/tools/stopSite.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/stopSite.js +54 -0
- package/addon-dist/lib/main/mcp/tools/toggleXdebug.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/toggleXdebug.js +69 -0
- package/addon-dist/lib/main/mcp/tools/trustSsl.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/trustSsl.js +59 -0
- package/addon-dist/lib/main/mcp/tools/wpCli.d.ts +7 -0
- package/addon-dist/lib/main/mcp/tools/wpCli.js +110 -0
- package/addon-dist/lib/main.d.ts +1 -0
- package/addon-dist/lib/main.js +10 -0
- package/addon-dist/lib/renderer/index.d.ts +7 -0
- package/addon-dist/lib/renderer/index.js +479 -0
- package/addon-dist/package.json +73 -0
- package/bin/lwp.js +10 -0
- package/lib/bootstrap/index.d.ts +98 -0
- package/lib/bootstrap/index.js +493 -0
- package/lib/bootstrap/paths.d.ts +28 -0
- package/lib/bootstrap/paths.js +96 -0
- package/lib/client/GraphQLClient.d.ts +38 -0
- package/lib/client/GraphQLClient.js +71 -0
- package/lib/client/index.d.ts +4 -0
- package/lib/client/index.js +10 -0
- package/lib/formatters/index.d.ts +75 -0
- package/lib/formatters/index.js +139 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +1173 -0
- package/package.json +72 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* start_site Tool
|
|
4
|
+
* Start a WordPress site
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.startSiteDefinition = void 0;
|
|
8
|
+
exports.startSite = startSite;
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
exports.startSiteDefinition = {
|
|
11
|
+
name: 'start_site',
|
|
12
|
+
description: 'Start a WordPress site by name or ID',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
site: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Site name or ID (partial names work)',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ['site'],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
async function startSite(args, services) {
|
|
25
|
+
const { site: siteQuery } = args;
|
|
26
|
+
// Validate required parameter
|
|
27
|
+
const paramError = (0, helpers_1.validateRequiredParam)(siteQuery, 'site');
|
|
28
|
+
if (paramError)
|
|
29
|
+
return paramError;
|
|
30
|
+
// Find site or return error
|
|
31
|
+
const siteResult = (0, helpers_1.findSiteOrError)(siteQuery, services.siteData);
|
|
32
|
+
if ('error' in siteResult)
|
|
33
|
+
return siteResult.error;
|
|
34
|
+
const { site } = siteResult;
|
|
35
|
+
try {
|
|
36
|
+
const currentStatus = await services.siteProcessManager.getSiteStatus(site);
|
|
37
|
+
if (currentStatus === 'running') {
|
|
38
|
+
return {
|
|
39
|
+
content: [{ type: 'text', text: `Site "${site.name}" is already running` }],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
await services.siteProcessManager.start(site);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: 'text', text: `Site "${site.name}" started successfully` }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return {
|
|
49
|
+
content: [{ type: 'text', text: `Failed to start site: ${error.message}` }],
|
|
50
|
+
isError: true,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRTaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21haW4vbWNwL3Rvb2xzL3N0YXJ0U2l0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUF3QkgsOEJBbUNDO0FBeERELHVDQUFtRTtBQUV0RCxRQUFBLG1CQUFtQixHQUFzQjtJQUNwRCxJQUFJLEVBQUUsWUFBWTtJQUNsQixXQUFXLEVBQUUsc0NBQXNDO0lBQ25ELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxzQ0FBc0M7YUFDcEQ7U0FDRjtRQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQztLQUNuQjtDQUNGLENBQUM7QUFNSyxLQUFLLFVBQVUsU0FBUyxDQUM3QixJQUE2QixFQUM3QixRQUF1QjtJQUV2QixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQWdDLENBQUM7SUFFN0QsOEJBQThCO0lBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQXFCLEVBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELElBQUksVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBRWxDLDRCQUE0QjtJQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFlLEVBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRSxJQUFJLE9BQU8sSUFBSSxVQUFVO1FBQUUsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ25ELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFNUIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxRQUFRLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVFLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7YUFDNUUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUMsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1NBQzlFLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPO1lBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSx5QkFBeUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDM0UsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHN0YXJ0X3NpdGUgVG9vbFxuICogU3RhcnQgYSBXb3JkUHJlc3Mgc2l0ZVxuICovXG5cbmltcG9ydCB7IE1jcFRvb2xEZWZpbml0aW9uLCBNY3BUb29sUmVzdWx0LCBMb2NhbFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IHZhbGlkYXRlUmVxdWlyZWRQYXJhbSwgZmluZFNpdGVPckVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHN0YXJ0U2l0ZURlZmluaXRpb246IE1jcFRvb2xEZWZpbml0aW9uID0ge1xuICBuYW1lOiAnc3RhcnRfc2l0ZScsXG4gIGRlc2NyaXB0aW9uOiAnU3RhcnQgYSBXb3JkUHJlc3Mgc2l0ZSBieSBuYW1lIG9yIElEJyxcbiAgaW5wdXRTY2hlbWE6IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBzaXRlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1NpdGUgbmFtZSBvciBJRCAocGFydGlhbCBuYW1lcyB3b3JrKScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsnc2l0ZSddLFxuICB9LFxufTtcblxuaW50ZXJmYWNlIFN0YXJ0U2l0ZUFyZ3Mge1xuICBzaXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydFNpdGUoXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBzZXJ2aWNlczogTG9jYWxTZXJ2aWNlc1xuKTogUHJvbWlzZTxNY3BUb29sUmVzdWx0PiB7XG4gIGNvbnN0IHsgc2l0ZTogc2l0ZVF1ZXJ5IH0gPSBhcmdzIGFzIHVua25vd24gYXMgU3RhcnRTaXRlQXJncztcblxuICAvLyBWYWxpZGF0ZSByZXF1aXJlZCBwYXJhbWV0ZXJcbiAgY29uc3QgcGFyYW1FcnJvciA9IHZhbGlkYXRlUmVxdWlyZWRQYXJhbShzaXRlUXVlcnksICdzaXRlJyk7XG4gIGlmIChwYXJhbUVycm9yKSByZXR1cm4gcGFyYW1FcnJvcjtcblxuICAvLyBGaW5kIHNpdGUgb3IgcmV0dXJuIGVycm9yXG4gIGNvbnN0IHNpdGVSZXN1bHQgPSBmaW5kU2l0ZU9yRXJyb3Ioc2l0ZVF1ZXJ5LCBzZXJ2aWNlcy5zaXRlRGF0YSk7XG4gIGlmICgnZXJyb3InIGluIHNpdGVSZXN1bHQpIHJldHVybiBzaXRlUmVzdWx0LmVycm9yO1xuICBjb25zdCB7IHNpdGUgfSA9IHNpdGVSZXN1bHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdHVzID0gYXdhaXQgc2VydmljZXMuc2l0ZVByb2Nlc3NNYW5hZ2VyLmdldFNpdGVTdGF0dXMoc2l0ZSk7XG5cbiAgICBpZiAoY3VycmVudFN0YXR1cyA9PT0gJ3J1bm5pbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6IGBTaXRlIFwiJHtzaXRlLm5hbWV9XCIgaXMgYWxyZWFkeSBydW5uaW5nYCB9XSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgYXdhaXQgc2VydmljZXMuc2l0ZVByb2Nlc3NNYW5hZ2VyLnN0YXJ0KHNpdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogYFNpdGUgXCIke3NpdGUubmFtZX1cIiBzdGFydGVkIHN1Y2Nlc3NmdWxseWAgfV0sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6IGBGYWlsZWQgdG8gc3RhcnQgc2l0ZTogJHtlcnJvci5tZXNzYWdlfWAgfV0sXG4gICAgICBpc0Vycm9yOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stop_site Tool
|
|
3
|
+
* Stop a WordPress site
|
|
4
|
+
*/
|
|
5
|
+
import { McpToolDefinition, McpToolResult, LocalServices } from '../../../common/types';
|
|
6
|
+
export declare const stopSiteDefinition: McpToolDefinition;
|
|
7
|
+
export declare function stopSite(args: Record<string, unknown>, services: LocalServices): Promise<McpToolResult>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* stop_site Tool
|
|
4
|
+
* Stop a WordPress site
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.stopSiteDefinition = void 0;
|
|
8
|
+
exports.stopSite = stopSite;
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
exports.stopSiteDefinition = {
|
|
11
|
+
name: 'stop_site',
|
|
12
|
+
description: 'Stop a running WordPress site by name or ID',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
site: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Site name or ID (partial names work)',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ['site'],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
async function stopSite(args, services) {
|
|
25
|
+
const { site: siteQuery } = args;
|
|
26
|
+
// Validate required parameter
|
|
27
|
+
const paramError = (0, helpers_1.validateRequiredParam)(siteQuery, 'site');
|
|
28
|
+
if (paramError)
|
|
29
|
+
return paramError;
|
|
30
|
+
// Find site or return error
|
|
31
|
+
const siteResult = (0, helpers_1.findSiteOrError)(siteQuery, services.siteData);
|
|
32
|
+
if ('error' in siteResult)
|
|
33
|
+
return siteResult.error;
|
|
34
|
+
const { site } = siteResult;
|
|
35
|
+
try {
|
|
36
|
+
const currentStatus = await services.siteProcessManager.getSiteStatus(site);
|
|
37
|
+
if (currentStatus !== 'running') {
|
|
38
|
+
return {
|
|
39
|
+
content: [{ type: 'text', text: `Site "${site.name}" is already stopped` }],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
await services.siteProcessManager.stop(site);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: 'text', text: `Site "${site.name}" stopped successfully` }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return {
|
|
49
|
+
content: [{ type: 'text', text: `Failed to stop site: ${error.message}` }],
|
|
50
|
+
isError: true,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcFNpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWFpbi9tY3AvdG9vbHMvc3RvcFNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBd0JILDRCQW1DQztBQXhERCx1Q0FBbUU7QUFFdEQsUUFBQSxrQkFBa0IsR0FBc0I7SUFDbkQsSUFBSSxFQUFFLFdBQVc7SUFDakIsV0FBVyxFQUFFLDZDQUE2QztJQUMxRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsc0NBQXNDO2FBQ3BEO1NBQ0Y7UUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDbkI7Q0FDRixDQUFDO0FBTUssS0FBSyxVQUFVLFFBQVEsQ0FDNUIsSUFBNkIsRUFDN0IsUUFBdUI7SUFFdkIsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUErQixDQUFDO0lBRTVELDhCQUE4QjtJQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFBLCtCQUFxQixFQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxJQUFJLFVBQVU7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUVsQyw0QkFBNEI7SUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBQSx5QkFBZSxFQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsSUFBSSxPQUFPLElBQUksVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztJQUNuRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBRTVCLElBQUksQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHLE1BQU0sUUFBUSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1RSxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2FBQzVFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdDLE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQztTQUM5RSxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzFFLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzdG9wX3NpdGUgVG9vbFxuICogU3RvcCBhIFdvcmRQcmVzcyBzaXRlXG4gKi9cblxuaW1wb3J0IHsgTWNwVG9vbERlZmluaXRpb24sIE1jcFRvb2xSZXN1bHQsIExvY2FsU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdHlwZXMnO1xuaW1wb3J0IHsgdmFsaWRhdGVSZXF1aXJlZFBhcmFtLCBmaW5kU2l0ZU9yRXJyb3IgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3Qgc3RvcFNpdGVEZWZpbml0aW9uOiBNY3BUb29sRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogJ3N0b3Bfc2l0ZScsXG4gIGRlc2NyaXB0aW9uOiAnU3RvcCBhIHJ1bm5pbmcgV29yZFByZXNzIHNpdGUgYnkgbmFtZSBvciBJRCcsXG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgc2l0ZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTaXRlIG5hbWUgb3IgSUQgKHBhcnRpYWwgbmFtZXMgd29yayknLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ3NpdGUnXSxcbiAgfSxcbn07XG5cbmludGVyZmFjZSBTdG9wU2l0ZUFyZ3Mge1xuICBzaXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdG9wU2l0ZShcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHNlcnZpY2VzOiBMb2NhbFNlcnZpY2VzXG4pOiBQcm9taXNlPE1jcFRvb2xSZXN1bHQ+IHtcbiAgY29uc3QgeyBzaXRlOiBzaXRlUXVlcnkgfSA9IGFyZ3MgYXMgdW5rbm93biBhcyBTdG9wU2l0ZUFyZ3M7XG5cbiAgLy8gVmFsaWRhdGUgcmVxdWlyZWQgcGFyYW1ldGVyXG4gIGNvbnN0IHBhcmFtRXJyb3IgPSB2YWxpZGF0ZVJlcXVpcmVkUGFyYW0oc2l0ZVF1ZXJ5LCAnc2l0ZScpO1xuICBpZiAocGFyYW1FcnJvcikgcmV0dXJuIHBhcmFtRXJyb3I7XG5cbiAgLy8gRmluZCBzaXRlIG9yIHJldHVybiBlcnJvclxuICBjb25zdCBzaXRlUmVzdWx0ID0gZmluZFNpdGVPckVycm9yKHNpdGVRdWVyeSwgc2VydmljZXMuc2l0ZURhdGEpO1xuICBpZiAoJ2Vycm9yJyBpbiBzaXRlUmVzdWx0KSByZXR1cm4gc2l0ZVJlc3VsdC5lcnJvcjtcbiAgY29uc3QgeyBzaXRlIH0gPSBzaXRlUmVzdWx0O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY3VycmVudFN0YXR1cyA9IGF3YWl0IHNlcnZpY2VzLnNpdGVQcm9jZXNzTWFuYWdlci5nZXRTaXRlU3RhdHVzKHNpdGUpO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMgIT09ICdydW5uaW5nJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogJ3RleHQnLCB0ZXh0OiBgU2l0ZSBcIiR7c2l0ZS5uYW1lfVwiIGlzIGFscmVhZHkgc3RvcHBlZGAgfV0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGF3YWl0IHNlcnZpY2VzLnNpdGVQcm9jZXNzTWFuYWdlci5zdG9wKHNpdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogYFNpdGUgXCIke3NpdGUubmFtZX1cIiBzdG9wcGVkIHN1Y2Nlc3NmdWxseWAgfV0sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6IGBGYWlsZWQgdG8gc3RvcCBzaXRlOiAke2Vycm9yLm1lc3NhZ2V9YCB9XSxcbiAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* toggle_xdebug Tool
|
|
3
|
+
* Enable or disable Xdebug for a site
|
|
4
|
+
*/
|
|
5
|
+
import { McpToolDefinition, McpToolResult, LocalServices } from '../../../common/types';
|
|
6
|
+
export declare const toggleXdebugDefinition: McpToolDefinition;
|
|
7
|
+
export declare function toggleXdebug(args: Record<string, unknown>, services: LocalServices): Promise<McpToolResult>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* toggle_xdebug Tool
|
|
4
|
+
* Enable or disable Xdebug for a site
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.toggleXdebugDefinition = void 0;
|
|
8
|
+
exports.toggleXdebug = toggleXdebug;
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
exports.toggleXdebugDefinition = {
|
|
11
|
+
name: 'toggle_xdebug',
|
|
12
|
+
description: 'Enable or disable Xdebug for a site (requires site restart to take effect)',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
site: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Site name or ID',
|
|
19
|
+
},
|
|
20
|
+
enabled: {
|
|
21
|
+
type: 'boolean',
|
|
22
|
+
description: 'True to enable Xdebug, false to disable',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: ['site', 'enabled'],
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
async function toggleXdebug(args, services) {
|
|
29
|
+
const { site: siteQuery, enabled } = args;
|
|
30
|
+
const paramError = (0, helpers_1.validateRequiredParam)(siteQuery, 'site');
|
|
31
|
+
if (paramError)
|
|
32
|
+
return paramError;
|
|
33
|
+
if (typeof enabled !== 'boolean') {
|
|
34
|
+
return (0, helpers_1.createErrorResult)('Error: enabled parameter must be true or false');
|
|
35
|
+
}
|
|
36
|
+
const siteResult = (0, helpers_1.findSiteOrError)(siteQuery, services.siteData);
|
|
37
|
+
if ('error' in siteResult)
|
|
38
|
+
return siteResult.error;
|
|
39
|
+
const { site } = siteResult;
|
|
40
|
+
try {
|
|
41
|
+
// Check if updateSite method exists
|
|
42
|
+
if (!services.siteData.updateSite) {
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: 'text', text: 'Site update service not available' }],
|
|
45
|
+
isError: true,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const previousState = site.xdebugEnabled ?? false;
|
|
49
|
+
// Update the xdebugEnabled property
|
|
50
|
+
services.siteData.updateSite(site.id, { xdebugEnabled: enabled });
|
|
51
|
+
const action = enabled ? 'enabled' : 'disabled';
|
|
52
|
+
const restartNote = previousState !== enabled ? ' Restart the site for changes to take effect.' : '';
|
|
53
|
+
return {
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: `Xdebug ${action} for "${site.name}".${restartNote}`,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: 'text', text: `Failed to toggle Xdebug: ${error.message}` }],
|
|
65
|
+
isError: true,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlWGRlYnVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21haW4vbWNwL3Rvb2xzL3RvZ2dsZVhkZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUE2Qkgsb0NBaURDO0FBM0VELHVDQUFzRjtBQUV6RSxRQUFBLHNCQUFzQixHQUFzQjtJQUN2RCxJQUFJLEVBQUUsZUFBZTtJQUNyQixXQUFXLEVBQUUsNEVBQTRFO0lBQ3pGLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsV0FBVyxFQUFFLHlDQUF5QzthQUN2RDtTQUNGO1FBQ0QsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUM5QjtDQUNGLENBQUM7QUFPSyxLQUFLLFVBQVUsWUFBWSxDQUNoQyxJQUE2QixFQUM3QixRQUF1QjtJQUV2QixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFtQyxDQUFDO0lBRXpFLE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQXFCLEVBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELElBQUksVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBRWxDLElBQUksT0FBTyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFBLDJCQUFpQixFQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWUsRUFBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksT0FBTyxJQUFJLFVBQVU7UUFBRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDbkQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUU1QixJQUFJLENBQUM7UUFDSCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLG1DQUFtQyxFQUFFLENBQUM7Z0JBQ3RFLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQztRQUVsRCxvQ0FBb0M7UUFDcEMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQ2YsYUFBYSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsK0NBQStDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVuRixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxVQUFVLE1BQU0sU0FBUyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtpQkFDM0Q7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPO1lBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSw0QkFBNEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDOUUsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHRvZ2dsZV94ZGVidWcgVG9vbFxuICogRW5hYmxlIG9yIGRpc2FibGUgWGRlYnVnIGZvciBhIHNpdGVcbiAqL1xuXG5pbXBvcnQgeyBNY3BUb29sRGVmaW5pdGlvbiwgTWNwVG9vbFJlc3VsdCwgTG9jYWxTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVJlcXVpcmVkUGFyYW0sIGZpbmRTaXRlT3JFcnJvciwgY3JlYXRlRXJyb3JSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgdG9nZ2xlWGRlYnVnRGVmaW5pdGlvbjogTWNwVG9vbERlZmluaXRpb24gPSB7XG4gIG5hbWU6ICd0b2dnbGVfeGRlYnVnJyxcbiAgZGVzY3JpcHRpb246ICdFbmFibGUgb3IgZGlzYWJsZSBYZGVidWcgZm9yIGEgc2l0ZSAocmVxdWlyZXMgc2l0ZSByZXN0YXJ0IHRvIHRha2UgZWZmZWN0KScsXG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgc2l0ZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTaXRlIG5hbWUgb3IgSUQnLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZWQ6IHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RydWUgdG8gZW5hYmxlIFhkZWJ1ZywgZmFsc2UgdG8gZGlzYWJsZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsnc2l0ZScsICdlbmFibGVkJ10sXG4gIH0sXG59O1xuXG5pbnRlcmZhY2UgVG9nZ2xlWGRlYnVnQXJncyB7XG4gIHNpdGU6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvZ2dsZVhkZWJ1ZyhcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHNlcnZpY2VzOiBMb2NhbFNlcnZpY2VzXG4pOiBQcm9taXNlPE1jcFRvb2xSZXN1bHQ+IHtcbiAgY29uc3QgeyBzaXRlOiBzaXRlUXVlcnksIGVuYWJsZWQgfSA9IGFyZ3MgYXMgdW5rbm93biBhcyBUb2dnbGVYZGVidWdBcmdzO1xuXG4gIGNvbnN0IHBhcmFtRXJyb3IgPSB2YWxpZGF0ZVJlcXVpcmVkUGFyYW0oc2l0ZVF1ZXJ5LCAnc2l0ZScpO1xuICBpZiAocGFyYW1FcnJvcikgcmV0dXJuIHBhcmFtRXJyb3I7XG5cbiAgaWYgKHR5cGVvZiBlbmFibGVkICE9PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gY3JlYXRlRXJyb3JSZXN1bHQoJ0Vycm9yOiBlbmFibGVkIHBhcmFtZXRlciBtdXN0IGJlIHRydWUgb3IgZmFsc2UnKTtcbiAgfVxuXG4gIGNvbnN0IHNpdGVSZXN1bHQgPSBmaW5kU2l0ZU9yRXJyb3Ioc2l0ZVF1ZXJ5LCBzZXJ2aWNlcy5zaXRlRGF0YSk7XG4gIGlmICgnZXJyb3InIGluIHNpdGVSZXN1bHQpIHJldHVybiBzaXRlUmVzdWx0LmVycm9yO1xuICBjb25zdCB7IHNpdGUgfSA9IHNpdGVSZXN1bHQ7XG5cbiAgdHJ5IHtcbiAgICAvLyBDaGVjayBpZiB1cGRhdGVTaXRlIG1ldGhvZCBleGlzdHNcbiAgICBpZiAoIXNlcnZpY2VzLnNpdGVEYXRhLnVwZGF0ZVNpdGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogJ1NpdGUgdXBkYXRlIHNlcnZpY2Ugbm90IGF2YWlsYWJsZScgfV0sXG4gICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBzaXRlLnhkZWJ1Z0VuYWJsZWQgPz8gZmFsc2U7XG5cbiAgICAvLyBVcGRhdGUgdGhlIHhkZWJ1Z0VuYWJsZWQgcHJvcGVydHlcbiAgICBzZXJ2aWNlcy5zaXRlRGF0YS51cGRhdGVTaXRlKHNpdGUuaWQsIHsgeGRlYnVnRW5hYmxlZDogZW5hYmxlZCB9KTtcblxuICAgIGNvbnN0IGFjdGlvbiA9IGVuYWJsZWQgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnO1xuICAgIGNvbnN0IHJlc3RhcnROb3RlID1cbiAgICAgIHByZXZpb3VzU3RhdGUgIT09IGVuYWJsZWQgPyAnIFJlc3RhcnQgdGhlIHNpdGUgZm9yIGNoYW5nZXMgdG8gdGFrZSBlZmZlY3QuJyA6ICcnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiBgWGRlYnVnICR7YWN0aW9ufSBmb3IgXCIke3NpdGUubmFtZX1cIi4ke3Jlc3RhcnROb3RlfWAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW3sgdHlwZTogJ3RleHQnLCB0ZXh0OiBgRmFpbGVkIHRvIHRvZ2dsZSBYZGVidWc6ICR7ZXJyb3IubWVzc2FnZX1gIH1dLFxuICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* trust_ssl Tool
|
|
3
|
+
* Trust SSL certificate for a site
|
|
4
|
+
*/
|
|
5
|
+
import { McpToolDefinition, McpToolResult, LocalServices } from '../../../common/types';
|
|
6
|
+
export declare const trustSslDefinition: McpToolDefinition;
|
|
7
|
+
export declare function trustSsl(args: Record<string, unknown>, services: LocalServices): Promise<McpToolResult>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* trust_ssl Tool
|
|
4
|
+
* Trust SSL certificate for a site
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.trustSslDefinition = void 0;
|
|
8
|
+
exports.trustSsl = trustSsl;
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
exports.trustSslDefinition = {
|
|
11
|
+
name: 'trust_ssl',
|
|
12
|
+
description: 'Trust the SSL certificate for a site (may require admin password)',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
site: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Site name or ID',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ['site'],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
async function trustSsl(args, services) {
|
|
25
|
+
const { site: siteQuery } = args;
|
|
26
|
+
const paramError = (0, helpers_1.validateRequiredParam)(siteQuery, 'site');
|
|
27
|
+
if (paramError)
|
|
28
|
+
return paramError;
|
|
29
|
+
const siteResult = (0, helpers_1.findSiteOrError)(siteQuery, services.siteData);
|
|
30
|
+
if ('error' in siteResult)
|
|
31
|
+
return siteResult.error;
|
|
32
|
+
const { site } = siteResult;
|
|
33
|
+
try {
|
|
34
|
+
// Check if x509Cert service exists
|
|
35
|
+
if (!services.x509Cert) {
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: 'text', text: 'SSL certificate service not available' }],
|
|
38
|
+
isError: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
// Trust the certificate
|
|
42
|
+
await services.x509Cert.trustCert(site);
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
{
|
|
46
|
+
type: 'text',
|
|
47
|
+
text: `Successfully trusted SSL certificate for "${site.name}". You may need to restart your browser.`,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: 'text', text: `Failed to trust SSL certificate: ${error.message}` }],
|
|
55
|
+
isError: true,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RTc2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWFpbi9tY3AvdG9vbHMvdHJ1c3RTc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBd0JILDRCQXVDQztBQTVERCx1Q0FBbUU7QUFFdEQsUUFBQSxrQkFBa0IsR0FBc0I7SUFDbkQsSUFBSSxFQUFFLFdBQVc7SUFDakIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsaUJBQWlCO2FBQy9CO1NBQ0Y7UUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDbkI7Q0FDRixDQUFDO0FBTUssS0FBSyxVQUFVLFFBQVEsQ0FDNUIsSUFBNkIsRUFDN0IsUUFBdUI7SUFFdkIsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUErQixDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQXFCLEVBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELElBQUksVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBRWxDLE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWUsRUFBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksT0FBTyxJQUFJLFVBQVU7UUFBRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDbkQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUU1QixJQUFJLENBQUM7UUFDSCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixPQUFPO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsdUNBQXVDLEVBQUUsQ0FBQztnQkFDMUUsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUVELHdCQUF3QjtRQUN4QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLDZDQUE2QyxJQUFJLENBQUMsSUFBSSwwQ0FBMEM7aUJBQ3ZHO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsb0NBQW9DLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3RGLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB0cnVzdF9zc2wgVG9vbFxuICogVHJ1c3QgU1NMIGNlcnRpZmljYXRlIGZvciBhIHNpdGVcbiAqL1xuXG5pbXBvcnQgeyBNY3BUb29sRGVmaW5pdGlvbiwgTWNwVG9vbFJlc3VsdCwgTG9jYWxTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVJlcXVpcmVkUGFyYW0sIGZpbmRTaXRlT3JFcnJvciB9IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBjb25zdCB0cnVzdFNzbERlZmluaXRpb246IE1jcFRvb2xEZWZpbml0aW9uID0ge1xuICBuYW1lOiAndHJ1c3Rfc3NsJyxcbiAgZGVzY3JpcHRpb246ICdUcnVzdCB0aGUgU1NMIGNlcnRpZmljYXRlIGZvciBhIHNpdGUgKG1heSByZXF1aXJlIGFkbWluIHBhc3N3b3JkKScsXG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgc2l0ZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTaXRlIG5hbWUgb3IgSUQnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ3NpdGUnXSxcbiAgfSxcbn07XG5cbmludGVyZmFjZSBUcnVzdFNzbEFyZ3Mge1xuICBzaXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cnVzdFNzbChcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHNlcnZpY2VzOiBMb2NhbFNlcnZpY2VzXG4pOiBQcm9taXNlPE1jcFRvb2xSZXN1bHQ+IHtcbiAgY29uc3QgeyBzaXRlOiBzaXRlUXVlcnkgfSA9IGFyZ3MgYXMgdW5rbm93biBhcyBUcnVzdFNzbEFyZ3M7XG5cbiAgY29uc3QgcGFyYW1FcnJvciA9IHZhbGlkYXRlUmVxdWlyZWRQYXJhbShzaXRlUXVlcnksICdzaXRlJyk7XG4gIGlmIChwYXJhbUVycm9yKSByZXR1cm4gcGFyYW1FcnJvcjtcblxuICBjb25zdCBzaXRlUmVzdWx0ID0gZmluZFNpdGVPckVycm9yKHNpdGVRdWVyeSwgc2VydmljZXMuc2l0ZURhdGEpO1xuICBpZiAoJ2Vycm9yJyBpbiBzaXRlUmVzdWx0KSByZXR1cm4gc2l0ZVJlc3VsdC5lcnJvcjtcbiAgY29uc3QgeyBzaXRlIH0gPSBzaXRlUmVzdWx0O1xuXG4gIHRyeSB7XG4gICAgLy8gQ2hlY2sgaWYgeDUwOUNlcnQgc2VydmljZSBleGlzdHNcbiAgICBpZiAoIXNlcnZpY2VzLng1MDlDZXJ0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6ICdTU0wgY2VydGlmaWNhdGUgc2VydmljZSBub3QgYXZhaWxhYmxlJyB9XSxcbiAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVHJ1c3QgdGhlIGNlcnRpZmljYXRlXG4gICAgYXdhaXQgc2VydmljZXMueDUwOUNlcnQudHJ1c3RDZXJ0KHNpdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiBgU3VjY2Vzc2Z1bGx5IHRydXN0ZWQgU1NMIGNlcnRpZmljYXRlIGZvciBcIiR7c2l0ZS5uYW1lfVwiLiBZb3UgbWF5IG5lZWQgdG8gcmVzdGFydCB5b3VyIGJyb3dzZXIuYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6IGBGYWlsZWQgdG8gdHJ1c3QgU1NMIGNlcnRpZmljYXRlOiAke2Vycm9yLm1lc3NhZ2V9YCB9XSxcbiAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wp_cli Tool
|
|
3
|
+
* Run WP-CLI commands against a site
|
|
4
|
+
*/
|
|
5
|
+
import { McpToolDefinition, McpToolResult, LocalServices } from '../../../common/types';
|
|
6
|
+
export declare const wpCliDefinition: McpToolDefinition;
|
|
7
|
+
export declare function wpCli(args: Record<string, unknown>, services: LocalServices): Promise<McpToolResult>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* wp_cli Tool
|
|
4
|
+
* Run WP-CLI commands against a site
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.wpCliDefinition = void 0;
|
|
8
|
+
exports.wpCli = wpCli;
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
exports.wpCliDefinition = {
|
|
11
|
+
name: 'wp_cli',
|
|
12
|
+
description: 'Run a WP-CLI command against a WordPress site. The site must be running.',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
site: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Site name or ID (partial names work)',
|
|
19
|
+
},
|
|
20
|
+
command: {
|
|
21
|
+
oneOf: [
|
|
22
|
+
{
|
|
23
|
+
type: 'array',
|
|
24
|
+
items: { type: 'string' },
|
|
25
|
+
description: 'WP-CLI command as array, e.g. ["plugin", "list", "--format=json"]',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'WP-CLI command as string, e.g. "plugin list --format=json"',
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
description: 'WP-CLI command - either as array ["plugin", "list"] or string "plugin list"',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ['site', 'command'],
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
async function wpCli(args, services) {
|
|
39
|
+
const { site: siteQuery, command: rawCommand } = args;
|
|
40
|
+
// Validate required parameters
|
|
41
|
+
const siteError = (0, helpers_1.validateRequiredParam)(siteQuery, 'site');
|
|
42
|
+
if (siteError)
|
|
43
|
+
return siteError;
|
|
44
|
+
const commandError = (0, helpers_1.validateRequiredParam)(rawCommand, 'command');
|
|
45
|
+
if (commandError)
|
|
46
|
+
return commandError;
|
|
47
|
+
// Normalize command to array - accept both string and array formats
|
|
48
|
+
let command;
|
|
49
|
+
if (typeof rawCommand === 'string') {
|
|
50
|
+
// Split string on whitespace, preserving quoted strings would be complex
|
|
51
|
+
// For simple cases, split on spaces
|
|
52
|
+
command = rawCommand.trim().split(/\s+/).filter(Boolean);
|
|
53
|
+
}
|
|
54
|
+
else if (Array.isArray(rawCommand)) {
|
|
55
|
+
command = rawCommand;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return {
|
|
59
|
+
content: [
|
|
60
|
+
{
|
|
61
|
+
type: 'text',
|
|
62
|
+
text: 'Error: command must be a string or array of strings',
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
isError: true,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (command.length === 0) {
|
|
69
|
+
return (0, helpers_1.createErrorResult)('Error: command cannot be empty');
|
|
70
|
+
}
|
|
71
|
+
// Security: Check for blocked commands
|
|
72
|
+
const blockedCommand = (0, helpers_1.isBlockedWpCommand)(command);
|
|
73
|
+
if (blockedCommand) {
|
|
74
|
+
return (0, helpers_1.createErrorResult)(`Error: Command "${blockedCommand}" is blocked for security reasons. This command could allow arbitrary code execution.`);
|
|
75
|
+
}
|
|
76
|
+
// Find site or return error
|
|
77
|
+
const siteResult = (0, helpers_1.findSiteOrError)(siteQuery, services.siteData);
|
|
78
|
+
if ('error' in siteResult)
|
|
79
|
+
return siteResult.error;
|
|
80
|
+
const { site } = siteResult;
|
|
81
|
+
try {
|
|
82
|
+
const currentStatus = await services.siteProcessManager.getSiteStatus(site);
|
|
83
|
+
if (currentStatus !== 'running') {
|
|
84
|
+
return {
|
|
85
|
+
content: [
|
|
86
|
+
{
|
|
87
|
+
type: 'text',
|
|
88
|
+
text: `Site "${site.name}" is not running. Start it first with the start_site tool.`,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
isError: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const output = await services.wpCli.run(site, command, {
|
|
95
|
+
skipPlugins: true,
|
|
96
|
+
skipThemes: true,
|
|
97
|
+
ignoreErrors: false,
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
content: [{ type: 'text', text: output?.trim() || '(no output)' }],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return {
|
|
105
|
+
content: [{ type: 'text', text: `WP-CLI error: ${error.message}` }],
|
|
106
|
+
isError: true,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3BDbGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWFpbi9tY3AvdG9vbHMvd3BDbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBdUNILHNCQWdGQztBQXBIRCx1Q0FBMEc7QUFFN0YsUUFBQSxlQUFlLEdBQXNCO0lBQ2hELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxFQUFFLDBFQUEwRTtJQUN2RixXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsc0NBQXNDO2FBQ3BEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUN6QixXQUFXLEVBQUUsbUVBQW1FO3FCQUNqRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxXQUFXLEVBQUUsNERBQTREO3FCQUMxRTtpQkFDRjtnQkFDRCxXQUFXLEVBQUUsNkVBQTZFO2FBQzNGO1NBQ0Y7UUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO0tBQzlCO0NBQ0YsQ0FBQztBQU9LLEtBQUssVUFBVSxLQUFLLENBQ3pCLElBQTZCLEVBQzdCLFFBQXVCO0lBRXZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUE0QixDQUFDO0lBRTlFLCtCQUErQjtJQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFBLCtCQUFxQixFQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxJQUFJLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoQyxNQUFNLFlBQVksR0FBRyxJQUFBLCtCQUFxQixFQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRSxJQUFJLFlBQVk7UUFBRSxPQUFPLFlBQVksQ0FBQztJQUV0QyxvRUFBb0U7SUFDcEUsSUFBSSxPQUFpQixDQUFDO0lBQ3RCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMseUVBQXlFO1FBQ3pFLG9DQUFvQztRQUNwQyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDdkIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxxREFBcUQ7aUJBQzVEO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBQSwyQkFBaUIsRUFBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsTUFBTSxjQUFjLEdBQUcsSUFBQSw0QkFBa0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBQSwyQkFBaUIsRUFDdEIsbUJBQW1CLGNBQWMsdUZBQXVGLENBQ3pILENBQUM7SUFDSixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWUsRUFBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksT0FBTyxJQUFJLFVBQVU7UUFBRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDbkQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUU1QixJQUFJLENBQUM7UUFDSCxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUUsSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsT0FBTztnQkFDTCxPQUFPLEVBQUU7b0JBQ1A7d0JBQ0UsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksNERBQTREO3FCQUNyRjtpQkFDRjtnQkFDRCxPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3JELFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQztTQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB3cF9jbGkgVG9vbFxuICogUnVuIFdQLUNMSSBjb21tYW5kcyBhZ2FpbnN0IGEgc2l0ZVxuICovXG5cbmltcG9ydCB7IE1jcFRvb2xEZWZpbml0aW9uLCBNY3BUb29sUmVzdWx0LCBMb2NhbFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IHZhbGlkYXRlUmVxdWlyZWRQYXJhbSwgZmluZFNpdGVPckVycm9yLCBpc0Jsb2NrZWRXcENvbW1hbmQsIGNyZWF0ZUVycm9yUmVzdWx0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHdwQ2xpRGVmaW5pdGlvbjogTWNwVG9vbERlZmluaXRpb24gPSB7XG4gIG5hbWU6ICd3cF9jbGknLFxuICBkZXNjcmlwdGlvbjogJ1J1biBhIFdQLUNMSSBjb21tYW5kIGFnYWluc3QgYSBXb3JkUHJlc3Mgc2l0ZS4gVGhlIHNpdGUgbXVzdCBiZSBydW5uaW5nLicsXG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgc2l0ZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTaXRlIG5hbWUgb3IgSUQgKHBhcnRpYWwgbmFtZXMgd29yayknLFxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV1AtQ0xJIGNvbW1hbmQgYXMgYXJyYXksIGUuZy4gW1wicGx1Z2luXCIsIFwibGlzdFwiLCBcIi0tZm9ybWF0PWpzb25cIl0nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1dQLUNMSSBjb21tYW5kIGFzIHN0cmluZywgZS5nLiBcInBsdWdpbiBsaXN0IC0tZm9ybWF0PWpzb25cIicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdXUC1DTEkgY29tbWFuZCAtIGVpdGhlciBhcyBhcnJheSBbXCJwbHVnaW5cIiwgXCJsaXN0XCJdIG9yIHN0cmluZyBcInBsdWdpbiBsaXN0XCInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ3NpdGUnLCAnY29tbWFuZCddLFxuICB9LFxufTtcblxuaW50ZXJmYWNlIFdwQ2xpQXJncyB7XG4gIHNpdGU6IHN0cmluZztcbiAgY29tbWFuZDogc3RyaW5nW10gfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cENsaShcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHNlcnZpY2VzOiBMb2NhbFNlcnZpY2VzXG4pOiBQcm9taXNlPE1jcFRvb2xSZXN1bHQ+IHtcbiAgY29uc3QgeyBzaXRlOiBzaXRlUXVlcnksIGNvbW1hbmQ6IHJhd0NvbW1hbmQgfSA9IGFyZ3MgYXMgdW5rbm93biBhcyBXcENsaUFyZ3M7XG5cbiAgLy8gVmFsaWRhdGUgcmVxdWlyZWQgcGFyYW1ldGVyc1xuICBjb25zdCBzaXRlRXJyb3IgPSB2YWxpZGF0ZVJlcXVpcmVkUGFyYW0oc2l0ZVF1ZXJ5LCAnc2l0ZScpO1xuICBpZiAoc2l0ZUVycm9yKSByZXR1cm4gc2l0ZUVycm9yO1xuXG4gIGNvbnN0IGNvbW1hbmRFcnJvciA9IHZhbGlkYXRlUmVxdWlyZWRQYXJhbShyYXdDb21tYW5kLCAnY29tbWFuZCcpO1xuICBpZiAoY29tbWFuZEVycm9yKSByZXR1cm4gY29tbWFuZEVycm9yO1xuXG4gIC8vIE5vcm1hbGl6ZSBjb21tYW5kIHRvIGFycmF5IC0gYWNjZXB0IGJvdGggc3RyaW5nIGFuZCBhcnJheSBmb3JtYXRzXG4gIGxldCBjb21tYW5kOiBzdHJpbmdbXTtcbiAgaWYgKHR5cGVvZiByYXdDb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgIC8vIFNwbGl0IHN0cmluZyBvbiB3aGl0ZXNwYWNlLCBwcmVzZXJ2aW5nIHF1b3RlZCBzdHJpbmdzIHdvdWxkIGJlIGNvbXBsZXhcbiAgICAvLyBGb3Igc2ltcGxlIGNhc2VzLCBzcGxpdCBvbiBzcGFjZXNcbiAgICBjb21tYW5kID0gcmF3Q29tbWFuZC50cmltKCkuc3BsaXQoL1xccysvKS5maWx0ZXIoQm9vbGVhbik7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyYXdDb21tYW5kKSkge1xuICAgIGNvbW1hbmQgPSByYXdDb21tYW5kO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogJ0Vycm9yOiBjb21tYW5kIG11c3QgYmUgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbW1hbmQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KCdFcnJvcjogY29tbWFuZCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIC8vIFNlY3VyaXR5OiBDaGVjayBmb3IgYmxvY2tlZCBjb21tYW5kc1xuICBjb25zdCBibG9ja2VkQ29tbWFuZCA9IGlzQmxvY2tlZFdwQ29tbWFuZChjb21tYW5kKTtcbiAgaWYgKGJsb2NrZWRDb21tYW5kKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFxuICAgICAgYEVycm9yOiBDb21tYW5kIFwiJHtibG9ja2VkQ29tbWFuZH1cIiBpcyBibG9ja2VkIGZvciBzZWN1cml0eSByZWFzb25zLiBUaGlzIGNvbW1hbmQgY291bGQgYWxsb3cgYXJiaXRyYXJ5IGNvZGUgZXhlY3V0aW9uLmBcbiAgICApO1xuICB9XG5cbiAgLy8gRmluZCBzaXRlIG9yIHJldHVybiBlcnJvclxuICBjb25zdCBzaXRlUmVzdWx0ID0gZmluZFNpdGVPckVycm9yKHNpdGVRdWVyeSwgc2VydmljZXMuc2l0ZURhdGEpO1xuICBpZiAoJ2Vycm9yJyBpbiBzaXRlUmVzdWx0KSByZXR1cm4gc2l0ZVJlc3VsdC5lcnJvcjtcbiAgY29uc3QgeyBzaXRlIH0gPSBzaXRlUmVzdWx0O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY3VycmVudFN0YXR1cyA9IGF3YWl0IHNlcnZpY2VzLnNpdGVQcm9jZXNzTWFuYWdlci5nZXRTaXRlU3RhdHVzKHNpdGUpO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMgIT09ICdydW5uaW5nJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHRleHQ6IGBTaXRlIFwiJHtzaXRlLm5hbWV9XCIgaXMgbm90IHJ1bm5pbmcuIFN0YXJ0IGl0IGZpcnN0IHdpdGggdGhlIHN0YXJ0X3NpdGUgdG9vbC5gLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHNlcnZpY2VzLndwQ2xpLnJ1bihzaXRlLCBjb21tYW5kLCB7XG4gICAgICBza2lwUGx1Z2luczogdHJ1ZSxcbiAgICAgIHNraXBUaGVtZXM6IHRydWUsXG4gICAgICBpZ25vcmVFcnJvcnM6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogb3V0cHV0Py50cmltKCkgfHwgJyhubyBvdXRwdXQpJyB9XSxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogYFdQLUNMSSBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWAgfV0sXG4gICAgICBpc0Vycm9yOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './main/index';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
// Re-export default from main/index
|
|
8
|
+
var index_1 = require("./main/index");
|
|
9
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(index_1).default; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9DQUFvQztBQUNwQyxzQ0FBdUM7QUFBOUIsaUhBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGRlZmF1bHQgZnJvbSBtYWluL2luZGV4XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9tYWluL2luZGV4JztcbiJdfQ==
|