@paretools/build 0.8.5 → 0.10.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/README.md +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/build-runner.d.ts +2 -2
- package/dist/lib/build-runner.d.ts.map +1 -1
- package/dist/lib/build-runner.js +6 -6
- package/dist/lib/build-runner.js.map +1 -1
- package/dist/lib/formatters.d.ts +1 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +61 -9
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/parsers.d.ts +14 -5
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +336 -28
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +126 -4
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +51 -2
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +29 -12
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/esbuild.d.ts.map +1 -1
- package/dist/tools/esbuild.js +130 -19
- package/dist/tools/esbuild.js.map +1 -1
- package/dist/tools/nx.d.ts.map +1 -1
- package/dist/tools/nx.js +85 -14
- package/dist/tools/nx.js.map +1 -1
- package/dist/tools/tsc.d.ts.map +1 -1
- package/dist/tools/tsc.js +48 -10
- package/dist/tools/tsc.js.map +1 -1
- package/dist/tools/turbo.d.ts.map +1 -1
- package/dist/tools/turbo.js +97 -13
- package/dist/tools/turbo.js.map +1 -1
- package/dist/tools/vite-build.d.ts.map +1 -1
- package/dist/tools/vite-build.js +83 -15
- package/dist/tools/vite-build.js.map +1 -1
- package/dist/tools/webpack.d.ts.map +1 -1
- package/dist/tools/webpack.js +78 -15
- package/dist/tools/webpack.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/esbuild.js
CHANGED
|
@@ -4,17 +4,17 @@ import { esbuildCmd } from "../lib/build-runner.js";
|
|
|
4
4
|
import { parseEsbuildOutput } from "../lib/parsers.js";
|
|
5
5
|
import { formatEsbuild, compactEsbuildMap, formatEsbuildCompact } from "../lib/formatters.js";
|
|
6
6
|
import { EsbuildResultSchema } from "../schemas/index.js";
|
|
7
|
+
import { readFile, unlink } from "node:fs/promises";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { randomBytes } from "node:crypto";
|
|
10
|
+
import { tmpdir } from "node:os";
|
|
7
11
|
/** Registers the `esbuild` tool on the given MCP server. */
|
|
8
12
|
export function registerEsbuildTool(server) {
|
|
9
13
|
server.registerTool("esbuild", {
|
|
10
14
|
title: "esbuild",
|
|
11
|
-
description: "Runs the esbuild bundler and returns structured errors, warnings, and output files.
|
|
15
|
+
description: "Runs the esbuild bundler and returns structured errors, warnings, and output files.",
|
|
12
16
|
inputSchema: {
|
|
13
|
-
path: z
|
|
14
|
-
.string()
|
|
15
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Project root path (default: cwd)"),
|
|
17
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
18
18
|
entryPoints: z
|
|
19
19
|
.array(z.string().max(INPUT_LIMITS.PATH_MAX))
|
|
20
20
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
@@ -40,24 +40,65 @@ export function registerEsbuildTool(server) {
|
|
|
40
40
|
.optional()
|
|
41
41
|
.describe("Target platform (browser, node, neutral)"),
|
|
42
42
|
sourcemap: z
|
|
43
|
+
.enum(["true", "linked", "inline", "external", "both"])
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Source map mode: 'true' for default, 'linked', 'inline', 'external', or 'both'"),
|
|
46
|
+
target: z
|
|
47
|
+
.string()
|
|
48
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("Target environment (e.g., 'es2020', 'node16', 'chrome90'). Maps to --target."),
|
|
51
|
+
external: z
|
|
52
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
53
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Packages to exclude from the bundle (e.g., ['react', 'react-dom']). Maps to --external."),
|
|
56
|
+
tsconfig: z
|
|
57
|
+
.string()
|
|
58
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Path to tsconfig.json for TypeScript configuration (maps to --tsconfig)"),
|
|
61
|
+
drop: z
|
|
62
|
+
.array(z.enum(["console", "debugger"]))
|
|
63
|
+
.max(2)
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Statements to drop from output (maps to --drop:console, --drop:debugger)"),
|
|
66
|
+
splitting: z
|
|
67
|
+
.boolean()
|
|
68
|
+
.optional()
|
|
69
|
+
.describe("Enable code splitting (requires format=esm and outdir)"),
|
|
70
|
+
legalComments: z
|
|
71
|
+
.enum(["none", "inline", "eof", "linked", "external"])
|
|
72
|
+
.optional()
|
|
73
|
+
.describe("How to handle legal comments (license headers)"),
|
|
74
|
+
logLevel: z
|
|
75
|
+
.enum(["verbose", "debug", "info", "warning", "error", "silent"])
|
|
76
|
+
.optional()
|
|
77
|
+
.describe("Log level to control output verbosity"),
|
|
78
|
+
define: z
|
|
79
|
+
.record(z.string(), z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
80
|
+
.optional()
|
|
81
|
+
.describe("Compile-time constant replacements (e.g., { 'process.env.NODE_ENV': '\"production\"' }). " +
|
|
82
|
+
"Maps to --define:KEY=VALUE for each entry."),
|
|
83
|
+
loader: z
|
|
84
|
+
.record(z.string().max(INPUT_LIMITS.STRING_MAX), z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
85
|
+
.optional()
|
|
86
|
+
.describe("Custom file loaders by extension (e.g., { '.png': 'dataurl', '.wasm': 'binary' }). Maps to --loader:.ext=type."),
|
|
87
|
+
metafile: z
|
|
43
88
|
.boolean()
|
|
44
89
|
.optional()
|
|
45
|
-
.
|
|
46
|
-
|
|
90
|
+
.describe("Generate a metafile with bundle analysis data (inputs/outputs with byte sizes). " +
|
|
91
|
+
"When enabled, the metafile is included in the structured output."),
|
|
47
92
|
args: z
|
|
48
93
|
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
49
94
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
50
95
|
.optional()
|
|
51
96
|
.default([])
|
|
52
97
|
.describe("Additional esbuild flags"),
|
|
53
|
-
compact: z
|
|
54
|
-
.boolean()
|
|
55
|
-
.optional()
|
|
56
|
-
.default(true)
|
|
57
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
98
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
58
99
|
},
|
|
59
100
|
outputSchema: EsbuildResultSchema,
|
|
60
|
-
}, async ({ path, entryPoints, outdir, outfile, bundle, minify, format, platform, sourcemap, args, compact, }) => {
|
|
101
|
+
}, async ({ path, entryPoints, outdir, outfile, bundle, minify, format, platform, sourcemap, target, external, tsconfig, drop, splitting, legalComments, logLevel, define, loader, metafile, args, compact, }) => {
|
|
61
102
|
const cwd = path || process.cwd();
|
|
62
103
|
// Validate entry points to prevent flag injection
|
|
63
104
|
for (const ep of entryPoints) {
|
|
@@ -76,10 +117,63 @@ export function registerEsbuildTool(server) {
|
|
|
76
117
|
cliArgs.push(`--format=${format}`);
|
|
77
118
|
if (platform)
|
|
78
119
|
cliArgs.push(`--platform=${platform}`);
|
|
79
|
-
if (sourcemap)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
120
|
+
if (sourcemap) {
|
|
121
|
+
if (sourcemap === "true") {
|
|
122
|
+
cliArgs.push("--sourcemap");
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
cliArgs.push(`--sourcemap=${sourcemap}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (target) {
|
|
129
|
+
assertNoFlagInjection(target, "target");
|
|
130
|
+
cliArgs.push(`--target=${target}`);
|
|
131
|
+
}
|
|
132
|
+
if (external) {
|
|
133
|
+
for (const ext of external) {
|
|
134
|
+
assertNoFlagInjection(ext, "external");
|
|
135
|
+
cliArgs.push(`--external:${ext}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (tsconfig) {
|
|
139
|
+
assertNoFlagInjection(tsconfig, "tsconfig");
|
|
140
|
+
cliArgs.push(`--tsconfig=${tsconfig}`);
|
|
141
|
+
}
|
|
142
|
+
if (drop) {
|
|
143
|
+
for (const d of drop) {
|
|
144
|
+
cliArgs.push(`--drop:${d}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (splitting)
|
|
148
|
+
cliArgs.push("--splitting");
|
|
149
|
+
if (legalComments)
|
|
150
|
+
cliArgs.push(`--legal-comments=${legalComments}`);
|
|
151
|
+
if (logLevel)
|
|
152
|
+
cliArgs.push(`--log-level=${logLevel}`);
|
|
153
|
+
// Gap #79: define parameter — compile-time constant replacements
|
|
154
|
+
const defineRecord = define;
|
|
155
|
+
if (defineRecord) {
|
|
156
|
+
for (const [key, value] of Object.entries(defineRecord)) {
|
|
157
|
+
assertNoFlagInjection(String(key), "define key");
|
|
158
|
+
assertNoFlagInjection(String(value), "define value");
|
|
159
|
+
cliArgs.push(`--define:${key}=${value}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const loaderRecord = loader;
|
|
163
|
+
if (loaderRecord) {
|
|
164
|
+
for (const [extKey, loaderType] of Object.entries(loaderRecord)) {
|
|
165
|
+
assertNoFlagInjection(String(extKey), "loader key");
|
|
166
|
+
assertNoFlagInjection(String(loaderType), "loader value");
|
|
167
|
+
const normalizedExt = extKey.startsWith(".") ? extKey : `.${extKey}`;
|
|
168
|
+
cliArgs.push(`--loader:${normalizedExt}=${loaderType}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Gap #80: metafile parameter — bundle analysis data
|
|
172
|
+
let metafilePath;
|
|
173
|
+
if (metafile) {
|
|
174
|
+
const suffix = randomBytes(6).toString("hex");
|
|
175
|
+
metafilePath = join(tmpdir(), `pare-esbuild-meta-${suffix}.json`);
|
|
176
|
+
cliArgs.push(`--metafile=${metafilePath}`);
|
|
83
177
|
}
|
|
84
178
|
if (args) {
|
|
85
179
|
cliArgs.push(...args);
|
|
@@ -88,7 +182,24 @@ export function registerEsbuildTool(server) {
|
|
|
88
182
|
const result = await esbuildCmd(cliArgs, cwd);
|
|
89
183
|
const duration = Math.round((Date.now() - start) / 100) / 10;
|
|
90
184
|
const rawOutput = result.stdout + "\n" + result.stderr;
|
|
91
|
-
|
|
185
|
+
// Read metafile if it was generated
|
|
186
|
+
let metafileContent;
|
|
187
|
+
if (metafilePath) {
|
|
188
|
+
try {
|
|
189
|
+
metafileContent = await readFile(metafilePath, "utf-8");
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// Metafile may not exist if build failed
|
|
193
|
+
}
|
|
194
|
+
// Clean up the temp metafile
|
|
195
|
+
try {
|
|
196
|
+
await unlink(metafilePath);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Ignore cleanup errors
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const data = parseEsbuildOutput(result.stdout, result.stderr, result.exitCode, duration, metafilePath, metafileContent);
|
|
92
203
|
return compactDualOutput(data, rawOutput, formatEsbuild, compactEsbuildMap, formatEsbuildCompact, compact === false);
|
|
93
204
|
});
|
|
94
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/tools/esbuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/tools/esbuild.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/nx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.d.ts","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"nx.d.ts","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,QA2K/C"}
|
package/dist/tools/nx.js
CHANGED
|
@@ -8,7 +8,7 @@ import { NxResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerNxTool(server) {
|
|
9
9
|
server.registerTool("nx", {
|
|
10
10
|
title: "nx",
|
|
11
|
-
description: "Runs Nx workspace commands and returns structured per-project task results with cache status.
|
|
11
|
+
description: "Runs Nx workspace commands and returns structured per-project task results with cache status.",
|
|
12
12
|
inputSchema: {
|
|
13
13
|
target: z
|
|
14
14
|
.string()
|
|
@@ -29,39 +29,82 @@ export function registerNxTool(server) {
|
|
|
29
29
|
.max(INPUT_LIMITS.STRING_MAX)
|
|
30
30
|
.optional()
|
|
31
31
|
.describe("Base ref for affected comparison (e.g., 'main')"),
|
|
32
|
-
|
|
32
|
+
head: z
|
|
33
33
|
.string()
|
|
34
|
-
.max(INPUT_LIMITS.
|
|
34
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Head ref for affected comparison (maps to --head)"),
|
|
37
|
+
configuration: z
|
|
38
|
+
.string()
|
|
39
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Build configuration to use (e.g., 'production', 'development'). Maps to --configuration."),
|
|
42
|
+
projects: z
|
|
43
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
44
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
35
45
|
.optional()
|
|
36
|
-
.describe("
|
|
46
|
+
.describe("Specific projects to include in run-many (maps to --projects)"),
|
|
47
|
+
exclude: z
|
|
48
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
49
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("Projects to exclude from run-many (maps to --exclude)"),
|
|
52
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
53
|
+
parallel: z
|
|
54
|
+
.number()
|
|
55
|
+
.optional()
|
|
56
|
+
.describe("Max number of parallel tasks (maps to --parallel)"),
|
|
57
|
+
skipNxCache: z
|
|
58
|
+
.boolean()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Skip the Nx cache and re-run all tasks (maps to --skip-nx-cache)"),
|
|
61
|
+
nxBail: z
|
|
62
|
+
.boolean()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Stop task execution after the first failure (maps to --nx-bail)"),
|
|
65
|
+
verbose: z
|
|
66
|
+
.boolean()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("Enable verbose output for debugging (maps to --verbose)"),
|
|
69
|
+
dryRun: z
|
|
70
|
+
.boolean()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Preview the task graph without executing (maps to --dry-run)"),
|
|
73
|
+
outputStyle: z
|
|
74
|
+
.enum(["dynamic", "static", "stream", "stream-without-prefixes", "compact"])
|
|
75
|
+
.optional()
|
|
76
|
+
.describe("Output style for task logs"),
|
|
77
|
+
graph: z
|
|
78
|
+
.boolean()
|
|
79
|
+
.optional()
|
|
80
|
+
.describe("Generate the task graph visualization (maps to --graph)"),
|
|
37
81
|
args: z
|
|
38
82
|
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
39
83
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
40
84
|
.optional()
|
|
41
85
|
.default([])
|
|
42
86
|
.describe("Additional arguments to pass to nx"),
|
|
43
|
-
compact: z
|
|
44
|
-
.boolean()
|
|
45
|
-
.optional()
|
|
46
|
-
.default(true)
|
|
47
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
87
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
48
88
|
},
|
|
49
89
|
outputSchema: NxResultSchema,
|
|
50
|
-
}, async ({ target, project, affected, base, path, args, compact }) => {
|
|
90
|
+
}, async ({ target, project, affected, base, head, configuration, projects, exclude, path, parallel, skipNxCache, nxBail, verbose, dryRun, outputStyle, graph, args, compact, }) => {
|
|
51
91
|
const cwd = path || process.cwd();
|
|
52
92
|
assertNoFlagInjection(target, "target");
|
|
53
93
|
if (project)
|
|
54
94
|
assertNoFlagInjection(project, "project");
|
|
55
95
|
if (base)
|
|
56
96
|
assertNoFlagInjection(base, "base");
|
|
57
|
-
|
|
58
|
-
assertNoFlagInjection(
|
|
59
|
-
|
|
97
|
+
if (head)
|
|
98
|
+
assertNoFlagInjection(head, "head");
|
|
99
|
+
if (configuration)
|
|
100
|
+
assertNoFlagInjection(configuration, "configuration");
|
|
60
101
|
const cliArgs = [];
|
|
61
102
|
if (affected) {
|
|
62
103
|
cliArgs.push("affected", `--target=${target}`);
|
|
63
104
|
if (base)
|
|
64
105
|
cliArgs.push(`--base=${base}`);
|
|
106
|
+
if (head)
|
|
107
|
+
cliArgs.push(`--head=${head}`);
|
|
65
108
|
}
|
|
66
109
|
else if (project) {
|
|
67
110
|
cliArgs.push("run", `${project}:${target}`);
|
|
@@ -69,6 +112,34 @@ export function registerNxTool(server) {
|
|
|
69
112
|
else {
|
|
70
113
|
cliArgs.push("run-many", `--target=${target}`);
|
|
71
114
|
}
|
|
115
|
+
if (configuration)
|
|
116
|
+
cliArgs.push(`--configuration=${configuration}`);
|
|
117
|
+
if (projects && projects.length > 0) {
|
|
118
|
+
for (const p of projects) {
|
|
119
|
+
assertNoFlagInjection(p, "projects");
|
|
120
|
+
}
|
|
121
|
+
cliArgs.push(`--projects=${projects.join(",")}`);
|
|
122
|
+
}
|
|
123
|
+
if (exclude && exclude.length > 0) {
|
|
124
|
+
for (const e of exclude) {
|
|
125
|
+
assertNoFlagInjection(e, "exclude");
|
|
126
|
+
}
|
|
127
|
+
cliArgs.push(`--exclude=${exclude.join(",")}`);
|
|
128
|
+
}
|
|
129
|
+
if (parallel !== undefined)
|
|
130
|
+
cliArgs.push(`--parallel=${parallel}`);
|
|
131
|
+
if (skipNxCache)
|
|
132
|
+
cliArgs.push("--skip-nx-cache");
|
|
133
|
+
if (nxBail)
|
|
134
|
+
cliArgs.push("--nx-bail");
|
|
135
|
+
if (verbose)
|
|
136
|
+
cliArgs.push("--verbose");
|
|
137
|
+
if (dryRun)
|
|
138
|
+
cliArgs.push("--dry-run");
|
|
139
|
+
if (outputStyle)
|
|
140
|
+
cliArgs.push(`--output-style=${outputStyle}`);
|
|
141
|
+
if (graph)
|
|
142
|
+
cliArgs.push("--graph");
|
|
72
143
|
if (args) {
|
|
73
144
|
cliArgs.push(...args);
|
|
74
145
|
}
|
|
@@ -76,7 +147,7 @@ export function registerNxTool(server) {
|
|
|
76
147
|
const result = await nxCmd(cliArgs, cwd);
|
|
77
148
|
const duration = Math.round((Date.now() - start) / 100) / 10;
|
|
78
149
|
const rawOutput = result.stdout + "\n" + result.stderr;
|
|
79
|
-
const data = parseNxOutput(result.stdout, result.stderr, result.exitCode, duration);
|
|
150
|
+
const data = parseNxOutput(result.stdout, result.stderr, result.exitCode, duration, affected);
|
|
80
151
|
return compactDualOutput(data, rawOutput, formatNx, compactNxMap, formatNxCompact, compact === false);
|
|
81
152
|
});
|
|
82
153
|
}
|
package/dist/tools/nx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,uDAAuD;AACvD,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,MAAM,CAAC,YAAY,CACjB,IAAI,EACJ;QACE,KAAK,EAAE,IAAI;QACX,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,uDAAuD;AACvD,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,MAAM,CAAC,YAAY,CACjB,IAAI,EACJ;QACE,KAAK,EAAE,IAAI;QACX,WAAW,EACT,+FAA+F;QACjG,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;YACrD,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,wDAAwD,CAAC;YACrE,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CACP,0FAA0F,CAC3F;YACH,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC9C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC9C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;YACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACpF,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,WAAW,EAAE,CAAC;iBACX,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,yBAAyB,EAAE,SAAS,CAAC,CAAC;iBAC3E,QAAQ,EAAE;iBACV,QAAQ,CAAC,4BAA4B,CAAC;YACzC,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC9C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,oCAAoC,CAAC;YACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,cAAc;KAC7B,EACD,KAAK,EAAE,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,KAAK,EACL,IAAI,EACJ,OAAO,GACR,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,OAAO;YAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,aAAa;YAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;YAC/C,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,aAAa;YAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;QAEpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,qBAAqB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9F,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/tsc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAsGhD"}
|
package/dist/tools/tsc.js
CHANGED
|
@@ -8,35 +8,73 @@ import { TscResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerTscTool(server) {
|
|
9
9
|
server.registerTool("tsc", {
|
|
10
10
|
title: "TypeScript Check",
|
|
11
|
-
description: "Runs the TypeScript compiler and returns structured diagnostics (file, line, column, code, message).
|
|
11
|
+
description: "Runs the TypeScript compiler and returns structured diagnostics (file, line, column, code, message). " +
|
|
12
|
+
"Note: In compact mode, diagnostics are trimmed to file, line, and code — column and message fields are omitted to save tokens.",
|
|
12
13
|
inputSchema: {
|
|
13
|
-
path: z
|
|
14
|
-
.string()
|
|
15
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Project root path (default: cwd)"),
|
|
14
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
18
15
|
noEmit: z
|
|
19
16
|
.boolean()
|
|
20
17
|
.optional()
|
|
21
18
|
.default(true)
|
|
22
19
|
.describe("Skip emitting output files (default: true)"),
|
|
20
|
+
listEmittedFiles: z
|
|
21
|
+
.boolean()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe("List emitted output files when emit is enabled (maps to --listEmittedFiles). Default: true when noEmit=false."),
|
|
23
24
|
project: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Path to tsconfig.json"),
|
|
24
|
-
|
|
25
|
+
incremental: z
|
|
25
26
|
.boolean()
|
|
26
27
|
.optional()
|
|
27
|
-
.
|
|
28
|
-
|
|
28
|
+
.describe("Enable incremental compilation for faster repeated checks (maps to --incremental)"),
|
|
29
|
+
skipLibCheck: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Skip type checking of declaration files for faster feedback (maps to --skipLibCheck)"),
|
|
33
|
+
emitDeclarationOnly: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Only emit .d.ts declaration files without JS output (maps to --emitDeclarationOnly)"),
|
|
37
|
+
declaration: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("Generate .d.ts declaration files (maps to --declaration)"),
|
|
41
|
+
declarationDir: z
|
|
42
|
+
.string()
|
|
43
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Output directory for .d.ts declaration files (maps to --declarationDir). Use with --declaration."),
|
|
46
|
+
pretty: z
|
|
47
|
+
.boolean()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Enable or disable pretty-printed output (maps to --pretty). Set false for normalized parser-friendly output."),
|
|
50
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
29
51
|
},
|
|
30
52
|
outputSchema: TscResultSchema,
|
|
31
|
-
}, async ({ path, noEmit, project, compact }) => {
|
|
53
|
+
}, async ({ path, noEmit, listEmittedFiles, project, incremental, skipLibCheck, emitDeclarationOnly, declaration, declarationDir, pretty, compact, }) => {
|
|
32
54
|
const cwd = path || process.cwd();
|
|
33
55
|
if (project)
|
|
34
56
|
assertNoFlagInjection(project, "project");
|
|
57
|
+
if (declarationDir)
|
|
58
|
+
assertNoFlagInjection(declarationDir, "declarationDir");
|
|
35
59
|
const args = [];
|
|
36
60
|
if (noEmit !== false)
|
|
37
61
|
args.push("--noEmit");
|
|
62
|
+
if (noEmit === false && listEmittedFiles !== false)
|
|
63
|
+
args.push("--listEmittedFiles");
|
|
38
64
|
if (project)
|
|
39
65
|
args.push("--project", project);
|
|
66
|
+
if (incremental)
|
|
67
|
+
args.push("--incremental");
|
|
68
|
+
if (skipLibCheck)
|
|
69
|
+
args.push("--skipLibCheck");
|
|
70
|
+
if (emitDeclarationOnly)
|
|
71
|
+
args.push("--emitDeclarationOnly");
|
|
72
|
+
if (declaration)
|
|
73
|
+
args.push("--declaration");
|
|
74
|
+
if (declarationDir)
|
|
75
|
+
args.push("--declarationDir", declarationDir);
|
|
76
|
+
if (pretty === false)
|
|
77
|
+
args.push("--pretty", "false");
|
|
40
78
|
const result = await tsc(args, cwd);
|
|
41
79
|
const rawOutput = result.stdout + "\n" + result.stderr;
|
|
42
80
|
const data = parseTscOutput(result.stdout, result.stderr, result.exitCode);
|
package/dist/tools/tsc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsc.js","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"tsc.js","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAqKlD"}
|