@angular/cli 21.1.0-next.3 → 21.1.0-rc.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 +1 -1
- package/lib/code-examples.db +0 -0
- package/package.json +17 -17
- package/src/commands/mcp/devserver.d.ts +0 -1
- package/src/commands/mcp/devserver.js +0 -4
- package/src/commands/mcp/devserver.js.map +1 -1
- package/src/commands/mcp/mcp-server.d.ts +105 -30
- package/src/commands/mcp/mcp-server.js +19 -10
- package/src/commands/mcp/mcp-server.js.map +1 -1
- package/src/commands/mcp/tools/build.js +1 -10
- package/src/commands/mcp/tools/build.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-start.d.ts +8 -0
- package/src/commands/mcp/tools/devserver/devserver-start.js +10 -5
- package/src/commands/mcp/tools/devserver/devserver-start.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-stop.d.ts +9 -0
- package/src/commands/mcp/tools/devserver/devserver-stop.js +23 -6
- package/src/commands/mcp/tools/devserver/devserver-stop.js.map +1 -1
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.d.ts +9 -0
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js +23 -4
- package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js.map +1 -1
- package/src/commands/mcp/tools/e2e.d.ts +43 -0
- package/src/commands/mcp/tools/e2e.js +87 -0
- package/src/commands/mcp/tools/e2e.js.map +1 -0
- package/src/commands/mcp/tools/modernize.js +1 -5
- package/src/commands/mcp/tools/modernize.js.map +1 -1
- package/src/commands/mcp/tools/test.d.ts +35 -0
- package/src/commands/mcp/tools/test.js +78 -0
- package/src/commands/mcp/tools/test.js.map +1 -0
- package/src/commands/mcp/utils.d.ts +23 -0
- package/src/commands/mcp/utils.js +50 -4
- package/src/commands/mcp/utils.js.map +1 -1
- package/src/commands/update/cli.js +2 -2
- package/src/commands/update/cli.js.map +1 -1
- package/src/package-managers/package-manager-descriptor.d.ts +5 -1
- package/src/package-managers/package-manager-descriptor.js +5 -3
- package/src/package-managers/package-manager-descriptor.js.map +1 -1
- package/src/package-managers/package-manager.d.ts +1 -0
- package/src/package-managers/package-manager.js +1 -0
- package/src/package-managers/package-manager.js.map +1 -1
- package/src/package-managers/parsers.js +2 -1
- package/src/package-managers/parsers.js.map +1 -1
- package/src/utilities/version.js +1 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2010-
|
|
3
|
+
Copyright (c) 2010-2026 Google LLC. https://angular.dev/license
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/lib/code-examples.db
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/cli",
|
|
3
|
-
"version": "21.1.0-
|
|
3
|
+
"version": "21.1.0-rc.0",
|
|
4
4
|
"description": "CLI tool for Angular",
|
|
5
5
|
"main": "lib/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://github.com/angular/angular-cli",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@angular-devkit/architect": "0.2101.0-
|
|
29
|
-
"@angular-devkit/core": "21.1.0-
|
|
30
|
-
"@angular-devkit/schematics": "21.1.0-
|
|
28
|
+
"@angular-devkit/architect": "0.2101.0-rc.0",
|
|
29
|
+
"@angular-devkit/core": "21.1.0-rc.0",
|
|
30
|
+
"@angular-devkit/schematics": "21.1.0-rc.0",
|
|
31
31
|
"@inquirer/prompts": "7.10.1",
|
|
32
32
|
"@listr2/prompt-adapter-inquirer": "3.0.5",
|
|
33
|
-
"@modelcontextprotocol/sdk": "1.25.
|
|
34
|
-
"@schematics/angular": "21.1.0-
|
|
33
|
+
"@modelcontextprotocol/sdk": "1.25.2",
|
|
34
|
+
"@schematics/angular": "21.1.0-rc.0",
|
|
35
35
|
"@yarnpkg/lockfile": "1.1.0",
|
|
36
|
-
"algoliasearch": "5.46.
|
|
36
|
+
"algoliasearch": "5.46.2",
|
|
37
37
|
"ini": "6.0.0",
|
|
38
38
|
"jsonc-parser": "3.3.1",
|
|
39
39
|
"listr2": "9.0.5",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"resolve": "1.22.11",
|
|
44
44
|
"semver": "7.7.3",
|
|
45
45
|
"yargs": "18.0.0",
|
|
46
|
-
"zod": "4.
|
|
46
|
+
"zod": "4.3.5"
|
|
47
47
|
},
|
|
48
48
|
"ng-update": {
|
|
49
49
|
"migrations": "@schematics/angular/migrations/migration-collection.json",
|
|
50
50
|
"packageGroup": {
|
|
51
|
-
"@angular/cli": "21.1.0-
|
|
52
|
-
"@angular/build": "21.1.0-
|
|
53
|
-
"@angular/ssr": "21.1.0-
|
|
54
|
-
"@angular-devkit/architect": "0.2101.0-
|
|
55
|
-
"@angular-devkit/build-angular": "21.1.0-
|
|
56
|
-
"@angular-devkit/build-webpack": "0.2101.0-
|
|
57
|
-
"@angular-devkit/core": "21.1.0-
|
|
58
|
-
"@angular-devkit/schematics": "21.1.0-
|
|
51
|
+
"@angular/cli": "21.1.0-rc.0",
|
|
52
|
+
"@angular/build": "21.1.0-rc.0",
|
|
53
|
+
"@angular/ssr": "21.1.0-rc.0",
|
|
54
|
+
"@angular-devkit/architect": "0.2101.0-rc.0",
|
|
55
|
+
"@angular-devkit/build-angular": "21.1.0-rc.0",
|
|
56
|
+
"@angular-devkit/build-webpack": "0.2101.0-rc.0",
|
|
57
|
+
"@angular-devkit/core": "21.1.0-rc.0",
|
|
58
|
+
"@angular-devkit/schematics": "21.1.0-rc.0"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
"packageManager": "pnpm@10.
|
|
61
|
+
"packageManager": "pnpm@10.27.0",
|
|
62
62
|
"engines": {
|
|
63
63
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0",
|
|
64
64
|
"npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.LocalDevserver = void 0;
|
|
11
|
-
exports.devserverKey = devserverKey;
|
|
12
11
|
// Log messages that we want to catch to identify the build status.
|
|
13
12
|
const BUILD_SUCCEEDED_MESSAGE = 'Application bundle generation complete.';
|
|
14
13
|
const BUILD_FAILED_MESSAGE = 'Application bundle generation failed.';
|
|
@@ -22,9 +21,6 @@ const BUILD_END_MESSAGES = [
|
|
|
22
21
|
WAITING_FOR_CHANGES_MESSAGE,
|
|
23
22
|
CHANGES_DETECTED_SUCCESS_MESSAGE,
|
|
24
23
|
];
|
|
25
|
-
function devserverKey(project) {
|
|
26
|
-
return project ?? '<default>';
|
|
27
|
-
}
|
|
28
24
|
/**
|
|
29
25
|
* A local Angular development server managed by the MCP server.
|
|
30
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"devserver.js","sourceRoot":"","sources":["devserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,36 +8,6 @@
|
|
|
8
8
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
9
|
import type { AngularWorkspace } from '../../utilities/config';
|
|
10
10
|
import { type AnyMcpToolDeclaration } from './tools/tool-registry';
|
|
11
|
-
/**
|
|
12
|
-
* Experimental tools that are grouped together under a single name.
|
|
13
|
-
*
|
|
14
|
-
* Used for enabling them as a group.
|
|
15
|
-
*/
|
|
16
|
-
export declare const EXPERIMENTAL_TOOL_GROUPS: {
|
|
17
|
-
devserver: (import("./tools/tool-registry").McpToolDeclaration<{
|
|
18
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
19
|
-
}, {
|
|
20
|
-
message: import("zod").ZodString;
|
|
21
|
-
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
22
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
23
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
-
}, {
|
|
25
|
-
message: import("zod").ZodString;
|
|
26
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
27
|
-
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
28
|
-
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
29
|
-
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
30
|
-
}, {
|
|
31
|
-
status: import("zod").ZodEnum<{
|
|
32
|
-
success: "success";
|
|
33
|
-
timeout: "timeout";
|
|
34
|
-
failure: "failure";
|
|
35
|
-
unknown: "unknown";
|
|
36
|
-
no_devserver_found: "no_devserver_found";
|
|
37
|
-
}>;
|
|
38
|
-
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
39
|
-
}>)[];
|
|
40
|
-
};
|
|
41
11
|
/**
|
|
42
12
|
* The set of tools that are available but not enabled by default.
|
|
43
13
|
* These tools are considered experimental and may have limitations.
|
|
@@ -52,6 +22,14 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
|
|
|
52
22
|
}>;
|
|
53
23
|
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
54
24
|
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
25
|
+
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
26
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
27
|
+
}, {
|
|
28
|
+
status: import("zod").ZodEnum<{
|
|
29
|
+
success: "success";
|
|
30
|
+
failure: "failure";
|
|
31
|
+
}>;
|
|
32
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
55
33
|
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
56
34
|
directories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
57
35
|
transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
@@ -60,6 +38,15 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
|
|
|
60
38
|
}, {
|
|
61
39
|
instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
62
40
|
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
41
|
+
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
42
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
43
|
+
filter: import("zod").ZodOptional<import("zod").ZodString>;
|
|
44
|
+
}, {
|
|
45
|
+
status: import("zod").ZodEnum<{
|
|
46
|
+
success: "success";
|
|
47
|
+
failure: "failure";
|
|
48
|
+
}>;
|
|
49
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
63
50
|
}>, ...(import("./tools/tool-registry").McpToolDeclaration<{
|
|
64
51
|
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
65
52
|
}, {
|
|
@@ -83,6 +70,94 @@ export declare const EXPERIMENTAL_TOOLS: readonly [import("./tools/tool-registry
|
|
|
83
70
|
}>;
|
|
84
71
|
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
85
72
|
}>)[]];
|
|
73
|
+
/**
|
|
74
|
+
* Experimental tools that are grouped together under a single name.
|
|
75
|
+
*
|
|
76
|
+
* Used for enabling them as a group.
|
|
77
|
+
*/
|
|
78
|
+
export declare const EXPERIMENTAL_TOOL_GROUPS: {
|
|
79
|
+
all: readonly [import("./tools/tool-registry").McpToolDeclaration<{
|
|
80
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
81
|
+
configuration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
82
|
+
}, {
|
|
83
|
+
status: import("zod").ZodEnum<{
|
|
84
|
+
success: "success";
|
|
85
|
+
failure: "failure";
|
|
86
|
+
}>;
|
|
87
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
88
|
+
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
89
|
+
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
90
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
91
|
+
}, {
|
|
92
|
+
status: import("zod").ZodEnum<{
|
|
93
|
+
success: "success";
|
|
94
|
+
failure: "failure";
|
|
95
|
+
}>;
|
|
96
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
97
|
+
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
98
|
+
directories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
99
|
+
transformations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
100
|
+
[x: string]: string;
|
|
101
|
+
}>>>;
|
|
102
|
+
}, {
|
|
103
|
+
instructions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
104
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
105
|
+
}>, import("./tools/tool-registry").McpToolDeclaration<{
|
|
106
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
107
|
+
filter: import("zod").ZodOptional<import("zod").ZodString>;
|
|
108
|
+
}, {
|
|
109
|
+
status: import("zod").ZodEnum<{
|
|
110
|
+
success: "success";
|
|
111
|
+
failure: "failure";
|
|
112
|
+
}>;
|
|
113
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
114
|
+
}>, ...(import("./tools/tool-registry").McpToolDeclaration<{
|
|
115
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
116
|
+
}, {
|
|
117
|
+
message: import("zod").ZodString;
|
|
118
|
+
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
119
|
+
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
120
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
121
|
+
}, {
|
|
122
|
+
message: import("zod").ZodString;
|
|
123
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
124
|
+
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
125
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
126
|
+
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
127
|
+
}, {
|
|
128
|
+
status: import("zod").ZodEnum<{
|
|
129
|
+
success: "success";
|
|
130
|
+
timeout: "timeout";
|
|
131
|
+
failure: "failure";
|
|
132
|
+
unknown: "unknown";
|
|
133
|
+
no_devserver_found: "no_devserver_found";
|
|
134
|
+
}>;
|
|
135
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
136
|
+
}>)[]];
|
|
137
|
+
devserver: (import("./tools/tool-registry").McpToolDeclaration<{
|
|
138
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
139
|
+
}, {
|
|
140
|
+
message: import("zod").ZodString;
|
|
141
|
+
address: import("zod").ZodOptional<import("zod").ZodString>;
|
|
142
|
+
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
143
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
144
|
+
}, {
|
|
145
|
+
message: import("zod").ZodString;
|
|
146
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
147
|
+
}> | import("./tools/tool-registry").McpToolDeclaration<{
|
|
148
|
+
project: import("zod").ZodOptional<import("zod").ZodString>;
|
|
149
|
+
timeout: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
150
|
+
}, {
|
|
151
|
+
status: import("zod").ZodEnum<{
|
|
152
|
+
success: "success";
|
|
153
|
+
timeout: "timeout";
|
|
154
|
+
failure: "failure";
|
|
155
|
+
unknown: "unknown";
|
|
156
|
+
no_devserver_found: "no_devserver_found";
|
|
157
|
+
}>;
|
|
158
|
+
logs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
159
|
+
}>)[];
|
|
160
|
+
};
|
|
86
161
|
export declare function createMcpServer(options: {
|
|
87
162
|
workspace?: AngularWorkspace;
|
|
88
163
|
readOnly?: boolean;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.EXPERIMENTAL_TOOL_GROUPS = exports.EXPERIMENTAL_TOOLS = void 0;
|
|
11
11
|
exports.createMcpServer = createMcpServer;
|
|
12
12
|
exports.assembleToolDeclarations = assembleToolDeclarations;
|
|
13
13
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
@@ -22,23 +22,17 @@ const devserver_start_1 = require("./tools/devserver/devserver-start");
|
|
|
22
22
|
const devserver_stop_1 = require("./tools/devserver/devserver-stop");
|
|
23
23
|
const devserver_wait_for_build_1 = require("./tools/devserver/devserver-wait-for-build");
|
|
24
24
|
const doc_search_1 = require("./tools/doc-search");
|
|
25
|
+
const e2e_1 = require("./tools/e2e");
|
|
25
26
|
const index_1 = require("./tools/examples/index");
|
|
26
27
|
const modernize_1 = require("./tools/modernize");
|
|
27
28
|
const zoneless_migration_1 = require("./tools/onpush-zoneless-migration/zoneless-migration");
|
|
28
29
|
const projects_1 = require("./tools/projects");
|
|
30
|
+
const test_1 = require("./tools/test");
|
|
29
31
|
const tool_registry_1 = require("./tools/tool-registry");
|
|
30
32
|
/**
|
|
31
33
|
* Tools to manage devservers. Should be bundled together, then added to experimental or stable as a group.
|
|
32
34
|
*/
|
|
33
35
|
const DEVSERVER_TOOLS = [devserver_start_1.DEVSERVER_START_TOOL, devserver_stop_1.DEVSERVER_STOP_TOOL, devserver_wait_for_build_1.DEVSERVER_WAIT_FOR_BUILD_TOOL];
|
|
34
|
-
/**
|
|
35
|
-
* Experimental tools that are grouped together under a single name.
|
|
36
|
-
*
|
|
37
|
-
* Used for enabling them as a group.
|
|
38
|
-
*/
|
|
39
|
-
exports.EXPERIMENTAL_TOOL_GROUPS = {
|
|
40
|
-
'devserver': DEVSERVER_TOOLS,
|
|
41
|
-
};
|
|
42
36
|
/**
|
|
43
37
|
* The set of tools that are enabled by default for the MCP server.
|
|
44
38
|
* These tools are considered stable and suitable for general use.
|
|
@@ -55,7 +49,22 @@ const STABLE_TOOLS = [
|
|
|
55
49
|
* The set of tools that are available but not enabled by default.
|
|
56
50
|
* These tools are considered experimental and may have limitations.
|
|
57
51
|
*/
|
|
58
|
-
exports.EXPERIMENTAL_TOOLS = [
|
|
52
|
+
exports.EXPERIMENTAL_TOOLS = [
|
|
53
|
+
build_1.BUILD_TOOL,
|
|
54
|
+
e2e_1.E2E_TOOL,
|
|
55
|
+
modernize_1.MODERNIZE_TOOL,
|
|
56
|
+
test_1.TEST_TOOL,
|
|
57
|
+
...DEVSERVER_TOOLS,
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Experimental tools that are grouped together under a single name.
|
|
61
|
+
*
|
|
62
|
+
* Used for enabling them as a group.
|
|
63
|
+
*/
|
|
64
|
+
exports.EXPERIMENTAL_TOOL_GROUPS = {
|
|
65
|
+
'all': exports.EXPERIMENTAL_TOOLS,
|
|
66
|
+
'devserver': DEVSERVER_TOOLS,
|
|
67
|
+
};
|
|
59
68
|
async function createMcpServer(options, logger) {
|
|
60
69
|
const server = new mcp_js_1.McpServer({
|
|
61
70
|
name: 'angular-cli-server',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["mcp-server.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.BUILD_TOOL = void 0;
|
|
11
11
|
exports.runBuild = runBuild;
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
|
-
const host_1 = require("../host");
|
|
14
13
|
const utils_1 = require("../utils");
|
|
15
14
|
const tool_registry_1 = require("./tool-registry");
|
|
16
15
|
const DEFAULT_CONFIGURATION = 'development';
|
|
@@ -45,15 +44,7 @@ async function runBuild(input, host) {
|
|
|
45
44
|
}
|
|
46
45
|
catch (e) {
|
|
47
46
|
status = 'failure';
|
|
48
|
-
|
|
49
|
-
logs = e.logs;
|
|
50
|
-
}
|
|
51
|
-
else if (e instanceof Error) {
|
|
52
|
-
logs = [e.message];
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
logs = [String(e)];
|
|
56
|
-
}
|
|
47
|
+
logs = (0, utils_1.getCommandErrorLogs)(e);
|
|
57
48
|
}
|
|
58
49
|
for (const line of logs) {
|
|
59
50
|
const match = line.match(/Output location: (.*)/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAmCH,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAmCH,4BAkCC;AAnED,6BAAwB;AAExB,oCAA8E;AAC9E,mDAAuE;AAEvE,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAE5C,MAAM,iBAAiB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGzD,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;IACH,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAIH,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;IACnD,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7E,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC1F,CAAC,CAAC;AAII,KAAK,UAAU,QAAQ,CAAC,KAAqB,EAAE,IAAU;IAC9D,6BAA6B;IAC7B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC;IAE9D,IAAI,MAAM,GAAgB,SAAS,CAAC;IACpC,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,UAA8B,CAAC;IAEnC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,SAAS,CAAC;QACnB,IAAI,GAAG,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAoB;QACzC,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,OAAO,IAAA,qCAA6B,EAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAEY,QAAA,UAAU,GAGnB,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE;;;;;;;;;;;;;;;CAed;IACC,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,oBAAoB,CAAC,KAAK;IACvC,YAAY,EAAE,qBAAqB,CAAC,KAAK;IACzC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;CAC/D,CAAC,CAAC"}
|
|
@@ -17,6 +17,14 @@ declare const devserverStartToolOutputSchema: z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strip>;
|
|
18
18
|
export type DevserverStartToolOutput = z.infer<typeof devserverStartToolOutputSchema>;
|
|
19
19
|
export declare function startDevserver(input: DevserverStartToolInput, context: McpToolContext): Promise<{
|
|
20
|
+
content: {
|
|
21
|
+
type: "text";
|
|
22
|
+
text: string;
|
|
23
|
+
}[];
|
|
24
|
+
structuredContent: {
|
|
25
|
+
message: string[];
|
|
26
|
+
};
|
|
27
|
+
} | {
|
|
20
28
|
content: {
|
|
21
29
|
type: "text";
|
|
22
30
|
text: string;
|
|
@@ -30,20 +30,25 @@ function localhostAddress(port) {
|
|
|
30
30
|
return `http://localhost:${port}/`;
|
|
31
31
|
}
|
|
32
32
|
async function startDevserver(input, context) {
|
|
33
|
-
const
|
|
34
|
-
|
|
33
|
+
const projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
|
|
34
|
+
if (!projectName) {
|
|
35
|
+
return (0, utils_1.createStructuredContentOutput)({
|
|
36
|
+
message: ['Project name not provided, and no default project found.'],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
let devserver = context.devservers.get(projectName);
|
|
35
40
|
if (devserver) {
|
|
36
41
|
return (0, utils_1.createStructuredContentOutput)({
|
|
37
|
-
message: `Development server for project '${
|
|
42
|
+
message: `Development server for project '${projectName}' is already running.`,
|
|
38
43
|
address: localhostAddress(devserver.port),
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
const port = await context.host.getAvailablePort();
|
|
42
47
|
devserver = new devserver_1.LocalDevserver({ host: context.host, project: input.project, port });
|
|
43
48
|
devserver.start();
|
|
44
|
-
context.devservers.set(
|
|
49
|
+
context.devservers.set(projectName, devserver);
|
|
45
50
|
return (0, utils_1.createStructuredContentOutput)({
|
|
46
|
-
message: `Development server for project '${
|
|
51
|
+
message: `Development server for project '${projectName}' started and watching for workspace changes.`,
|
|
47
52
|
address: localhostAddress(port),
|
|
48
53
|
});
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devserver-start.js","sourceRoot":"","sources":["devserver-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAkCH,
|
|
1
|
+
{"version":3,"file":"devserver-start.js","sourceRoot":"","sources":["devserver-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAkCH,wCA4BC;AA5DD,6BAAwB;AACxB,+CAAiD;AACjD,uCAAmF;AACnF,oDAA6F;AAE7F,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,MAAM,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4FAA4F,CAC7F;CACJ,CAAC,CAAC;AAIH,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,oBAAoB,IAAI,GAAG,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAA8B,EAAE,OAAuB;IAC1F,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,CAAC,0DAA0D,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,WAAW,uBAAuB;YAC9E,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAEnD,SAAS,GAAG,IAAI,0BAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE/C,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,WAAW,+CAA+C;QACtG,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,oBAAoB,GAG7B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;CAmBd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,6BAA6B,CAAC,KAAK;IAChD,YAAY,EAAE,8BAA8B,CAAC,KAAK;IAClD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -17,6 +17,15 @@ declare const devserverStopToolOutputSchema: z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strip>;
|
|
18
18
|
export type DevserverStopToolOutput = z.infer<typeof devserverStopToolOutputSchema>;
|
|
19
19
|
export declare function stopDevserver(input: DevserverStopToolInput, context: McpToolContext): {
|
|
20
|
+
content: {
|
|
21
|
+
type: "text";
|
|
22
|
+
text: string;
|
|
23
|
+
}[];
|
|
24
|
+
structuredContent: {
|
|
25
|
+
message: string[];
|
|
26
|
+
logs: undefined;
|
|
27
|
+
};
|
|
28
|
+
} | {
|
|
20
29
|
content: {
|
|
21
30
|
type: "text";
|
|
22
31
|
text: string;
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.DEVSERVER_STOP_TOOL = void 0;
|
|
11
11
|
exports.stopDevserver = stopDevserver;
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
|
-
const devserver_1 = require("../../devserver");
|
|
14
13
|
const utils_1 = require("../../utils");
|
|
15
14
|
const tool_registry_1 = require("../tool-registry");
|
|
16
15
|
const devserverStopToolInputSchema = zod_1.z.object({
|
|
@@ -24,18 +23,36 @@ const devserverStopToolOutputSchema = zod_1.z.object({
|
|
|
24
23
|
logs: zod_1.z.array(zod_1.z.string()).optional().describe('The full logs from the dev server.'),
|
|
25
24
|
});
|
|
26
25
|
function stopDevserver(input, context) {
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
if (context.devservers.size === 0) {
|
|
27
|
+
return (0, utils_1.createStructuredContentOutput)({
|
|
28
|
+
message: ['No development servers are currently running.'],
|
|
29
|
+
logs: undefined,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
|
|
33
|
+
if (!projectName) {
|
|
34
|
+
// This should not happen. But if there's just a single running devserver, stop it.
|
|
35
|
+
if (context.devservers.size === 1) {
|
|
36
|
+
projectName = Array.from(context.devservers.keys())[0];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return (0, utils_1.createStructuredContentOutput)({
|
|
40
|
+
message: ['Project name not provided, and no default project found.'],
|
|
41
|
+
logs: undefined,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const devServer = context.devservers.get(projectName);
|
|
29
46
|
if (!devServer) {
|
|
30
47
|
return (0, utils_1.createStructuredContentOutput)({
|
|
31
|
-
message: `Development server for project '${
|
|
48
|
+
message: `Development server for project '${projectName}' was not running.`,
|
|
32
49
|
logs: undefined,
|
|
33
50
|
});
|
|
34
51
|
}
|
|
35
52
|
devServer.stop();
|
|
36
|
-
context.devservers.delete(
|
|
53
|
+
context.devservers.delete(projectName);
|
|
37
54
|
return (0, utils_1.createStructuredContentOutput)({
|
|
38
|
-
message: `Development server for project '${
|
|
55
|
+
message: `Development server for project '${projectName}' stopped.`,
|
|
39
56
|
logs: devServer.getServerLogs(),
|
|
40
57
|
});
|
|
41
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devserver-stop.js","sourceRoot":"","sources":["devserver-stop.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"devserver-stop.js","sourceRoot":"","sources":["devserver-stop.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAwBH,sCAsCC;AA5DD,6BAAwB;AACxB,uCAAmF;AACnF,oDAA6F;AAE7F,MAAM,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;CACJ,CAAC,CAAC;AAIH,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACjF,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CACpF,CAAC,CAAC;AAIH,SAAgB,aAAa,CAAC,KAA6B,EAAE,OAAuB;IAClF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,CAAC,+CAA+C,CAAC;YAC1D,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAElE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,mFAAmF;QACnF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,qCAA6B,EAAC;gBACnC,OAAO,EAAE,CAAC,0DAA0D,CAAC;gBACrE,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAA,qCAA6B,EAAC;YACnC,OAAO,EAAE,mCAAmC,WAAW,oBAAoB;YAC3E,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,OAAO,IAAA,qCAA6B,EAAC;QACnC,OAAO,EAAE,mCAAmC,WAAW,YAAY;QACnE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,mBAAmB,GAG5B,IAAA,2BAAW,EAAC;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE;;;;;;;;;;;;CAYd;IACC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,4BAA4B,CAAC,KAAK;IAC/C,YAAY,EAAE,6BAA6B,CAAC,KAAK;IACjD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -28,6 +28,15 @@ declare const devserverWaitForBuildToolOutputSchema: z.ZodObject<{
|
|
|
28
28
|
}, z.core.$strip>;
|
|
29
29
|
export type DevserverWaitForBuildToolOutput = z.infer<typeof devserverWaitForBuildToolOutputSchema>;
|
|
30
30
|
export declare function waitForDevserverBuild(input: DevserverWaitForBuildToolInput, context: McpToolContext): Promise<{
|
|
31
|
+
content: {
|
|
32
|
+
type: "text";
|
|
33
|
+
text: string;
|
|
34
|
+
}[];
|
|
35
|
+
structuredContent: {
|
|
36
|
+
status: string;
|
|
37
|
+
logs: undefined;
|
|
38
|
+
};
|
|
39
|
+
} | {
|
|
31
40
|
content: {
|
|
32
41
|
type: "text";
|
|
33
42
|
text: string;
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.DEVSERVER_WAIT_FOR_BUILD_TOOL = exports.WATCH_DELAY = void 0;
|
|
11
11
|
exports.waitForDevserverBuild = waitForDevserverBuild;
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
|
-
const devserver_1 = require("../../devserver");
|
|
14
13
|
const utils_1 = require("../../utils");
|
|
15
14
|
const tool_registry_1 = require("../tool-registry");
|
|
16
15
|
/**
|
|
@@ -44,19 +43,39 @@ function wait(ms) {
|
|
|
44
43
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
45
44
|
}
|
|
46
45
|
async function waitForDevserverBuild(input, context) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
if (context.devservers.size === 0) {
|
|
47
|
+
return (0, utils_1.createStructuredContentOutput)({
|
|
48
|
+
status: 'no_devserver_found',
|
|
49
|
+
logs: undefined,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
let projectName = input.project ?? (0, utils_1.getDefaultProjectName)(context);
|
|
53
|
+
if (!projectName) {
|
|
54
|
+
// This should not happen. But if there's just a single running devserver, wait for it.
|
|
55
|
+
if (context.devservers.size === 1) {
|
|
56
|
+
projectName = Array.from(context.devservers.keys())[0];
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return (0, utils_1.createStructuredContentOutput)({
|
|
60
|
+
status: 'no_devserver_found',
|
|
61
|
+
logs: undefined,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const devServer = context.devservers.get(projectName);
|
|
50
66
|
if (!devServer) {
|
|
51
67
|
return (0, utils_1.createStructuredContentOutput)({
|
|
52
68
|
status: 'no_devserver_found',
|
|
69
|
+
logs: undefined,
|
|
53
70
|
});
|
|
54
71
|
}
|
|
72
|
+
const deadline = Date.now() + input.timeout;
|
|
55
73
|
await wait(exports.WATCH_DELAY);
|
|
56
74
|
while (devServer.isBuilding()) {
|
|
57
75
|
if (Date.now() > deadline) {
|
|
58
76
|
return (0, utils_1.createStructuredContentOutput)({
|
|
59
77
|
status: 'timeout',
|
|
78
|
+
logs: undefined,
|
|
60
79
|
});
|
|
61
80
|
}
|
|
62
81
|
await wait(exports.WATCH_DELAY);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devserver-wait-for-build.js","sourceRoot":"","sources":["devserver-wait-for-build.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"devserver-wait-for-build.js","sourceRoot":"","sources":["devserver-wait-for-build.ts"],"names":[],"mappings":"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"}
|