@zachsents/ts-mcp 0.3.2 → 0.3.5

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Give AI agents TypeScript type inference — no editor required.**
4
4
 
5
- A standalone MCP server that provides TypeScript type information using [tsgo](https://github.com/nicolo-ribaudo/tc39-proposal-type-annotations) (the native Go-based TypeScript compiler). Works with any MCP client Cursor, Claude Desktop, VS Code, Windsurf, or any other agent.
5
+ A standalone MCP server that provides TypeScript type information using [tsgo](https://github.com/nicolo-ribaudo/tc39-proposal-type-annotations) (the native Go-based TypeScript compiler). Works with any MCP client that supports stdio MCP servers.
6
6
 
7
7
  No running editor needed. It spawns and manages tsgo LSP instances directly, keeping them warm for fast subsequent queries.
8
8
 
@@ -22,71 +22,15 @@ yarn global add @typescript/native-preview
22
22
 
23
23
  ## Install
24
24
 
25
- ### Cursor
26
-
27
- [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=ts-hover&config=eyJjb21tYW5kIjoibnB4IC15IEB6YWNoc2VudHMvdHMtbWNwIn0%3D)
28
-
29
- Or manually add to `.cursor/mcp.json`:
30
-
31
- ```json
32
- {
33
- "mcpServers": {
34
- "ts-hover": {
35
- "command": "npx",
36
- "args": ["-y", "@zachsents/ts-mcp"]
37
- }
38
- }
39
- }
40
- ```
41
-
42
- ### VS Code
43
-
44
- Add to your User Settings (JSON):
45
-
46
- ```json
47
- {
48
- "mcp": {
49
- "servers": {
50
- "ts-hover": {
51
- "command": "npx",
52
- "args": ["-y", "@zachsents/ts-mcp"]
53
- }
54
- }
55
- }
56
- }
57
- ```
58
-
59
- ### Claude Desktop
60
-
61
- Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
62
-
63
- ```json
64
- {
65
- "mcpServers": {
66
- "ts-hover": {
67
- "command": "npx",
68
- "args": ["-y", "@zachsents/ts-mcp"]
69
- }
70
- }
71
- }
72
- ```
73
-
74
- ### Claude Code
75
-
76
- ```bash
77
- claude mcp add-json ts-hover '{"command":"npx","args":["-y","@zachsents/ts-mcp"]}'
78
- ```
79
-
80
- ### Windsurf
81
-
82
- Add to your Windsurf MCP config:
25
+ Add an MCP server named `ts-hover`:
83
26
 
84
27
  ```json
85
28
  {
86
29
  "mcpServers": {
87
30
  "ts-hover": {
88
31
  "command": "npx",
89
- "args": ["-y", "@zachsents/ts-mcp"]
32
+ "args": ["-y", "@zachsents/ts-mcp"],
33
+ "cwd": "/tmp"
90
34
  }
91
35
  }
92
36
  }
package/dist/index.js CHANGED
@@ -5,8 +5,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
5
5
  import { z } from "zod";
6
6
  import { TsgoPool } from "./pool.js";
7
7
  import { resolveTsgoBinary } from "./resolve-binary.js";
8
- const binaryPath = resolveTsgoBinary();
9
- const pool = new TsgoPool(binaryPath);
8
+ const pool = new TsgoPool(resolveTsgoBinary());
10
9
  const server = new McpServer({
11
10
  name: "ts-hover",
12
11
  version: "0.3.0",
@@ -55,8 +54,7 @@ server.registerTool("diagnostics", {
55
54
  }
56
55
  const parts = [];
57
56
  for (const d of diagnostics) {
58
- const code = d.code != null ? ` TS${d.code}` : "";
59
- parts.push(`${d.line}:${d.character} ${d.severity}${code}: ${d.message}`);
57
+ parts.push(`${d.line}:${d.character} ${d.severity}${d.code != null ? ` TS${d.code}` : ""}: ${d.message}`);
60
58
  }
61
59
  const fixes = actions.filter((a) => a.kind?.startsWith("quickfix"));
62
60
  const sourceActions = actions.filter((a) => a.kind?.startsWith("source"));
@@ -101,11 +99,15 @@ server.registerTool("references", {
101
99
  content: [{ type: "text", text: "No references found." }],
102
100
  };
103
101
  }
104
- const text = locations
105
- .map((loc) => `${loc.file}:${loc.line}:${loc.character}`)
106
- .join("\n");
107
102
  return {
108
- content: [{ type: "text", text }],
103
+ content: [
104
+ {
105
+ type: "text",
106
+ text: locations
107
+ .map((loc) => `${loc.file}:${loc.line}:${loc.character}`)
108
+ .join("\n"),
109
+ },
110
+ ],
109
111
  };
110
112
  });
111
113
  server.registerTool("outline", {
@@ -184,23 +186,38 @@ server.registerTool("inlay_hints", {
184
186
  content: [{ type: "text", text: "No inlay hints." }],
185
187
  };
186
188
  }
187
- const text = hints
188
- .map((h) => `${h.line}:${h.character} ${h.kind}: ${h.text}`)
189
- .join("\n");
190
189
  return {
191
- content: [{ type: "text", text }],
190
+ content: [
191
+ {
192
+ type: "text",
193
+ text: hints
194
+ .map((h) => `${h.line}:${h.character} ${h.kind}: ${h.text}`)
195
+ .join("\n"),
196
+ },
197
+ ],
192
198
  };
193
199
  });
194
- /** Recursively format a symbol tree with indentation */
200
+ /**
201
+ * Recursively format a symbol tree with indentation
202
+ *
203
+ * @param symbols - Symbols at the current tree level.
204
+ * @param lines - Output lines accumulated during traversal.
205
+ * @param depth - Current indentation depth.
206
+ */
195
207
  function formatSymbolTree(symbols, lines, depth) {
196
- const indent = " ".repeat(depth);
197
208
  for (const sym of symbols) {
198
- lines.push(`${indent}${sym.kind} ${sym.name} (line ${sym.line})`);
209
+ lines.push(`${" ".repeat(depth)}${sym.kind} ${sym.name} (line ${sym.line})`);
199
210
  if (sym.children.length > 0) {
200
211
  formatSymbolTree(sym.children, lines, depth + 1);
201
212
  }
202
213
  }
203
214
  }
215
+ /**
216
+ * Format an LSP text edit for CLI output.
217
+ *
218
+ * @param edit - Text edit to render.
219
+ * @returns A human-readable summary of the edit.
220
+ */
204
221
  function formatTextEdit(edit) {
205
222
  const loc = ` ${edit.file}:${edit.startLine}:${edit.startCharacter}`;
206
223
  if (edit.newText === "") {
@@ -218,31 +235,29 @@ function formatTextEdit(edit) {
218
235
  /**
219
236
  * Apply LSP text edits to a file. Edits are sorted bottom-to-top so earlier
220
237
  * positions aren't shifted by later replacements.
238
+ *
239
+ * @param filePath - Absolute path to the file being edited.
240
+ * @param edits - LSP edits to apply.
221
241
  */
222
242
  async function applyEdits(filePath, edits) {
223
- const content = await readFile(filePath, "utf-8");
224
- const lines = content.split("\n");
225
- const sorted = [...edits].toSorted((a, b) => {
243
+ const lines = (await readFile(filePath, "utf-8")).split("\n");
244
+ for (const edit of [...edits].toSorted((a, b) => {
226
245
  if (a.startLine !== b.startLine)
227
246
  return b.startLine - a.startLine;
228
247
  return b.startCharacter - a.startCharacter;
229
- });
230
- for (const edit of sorted) {
231
- const startLine = lines[edit.startLine] ?? "";
232
- const endLine = lines[edit.endLine] ?? "";
233
- const before = startLine.slice(0, edit.startCharacter);
234
- const after = endLine.slice(edit.endCharacter);
235
- const replacement = (before + edit.newText + after).split("\n");
236
- lines.splice(edit.startLine, edit.endLine - edit.startLine + 1, ...replacement);
248
+ })) {
249
+ lines.splice(edit.startLine, edit.endLine - edit.startLine + 1, ...((lines[edit.startLine] ?? "").slice(0, edit.startCharacter) +
250
+ edit.newText +
251
+ (lines[edit.endLine] ?? "").slice(edit.endCharacter)).split("\n"));
237
252
  }
238
253
  await writeFile(filePath, lines.join("\n"));
239
254
  }
255
+ /** Shut down the client pool before exiting. */
240
256
  async function cleanup() {
241
257
  await pool.shutdown();
242
258
  process.exit(0);
243
259
  }
244
260
  process.on("SIGINT", cleanup);
245
261
  process.on("SIGTERM", cleanup);
246
- const transport = new StdioServerTransport();
247
- await server.connect(transport);
262
+ await server.connect(new StdioServerTransport());
248
263
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { readFile } from "node:fs/promises";
3
3
  import { extname } from "node:path";
4
4
  import { z } from "zod";
5
5
  const REQUEST_TIMEOUT_MS = 30_000;
6
+ /** JSON-RPC response and server-request envelope accepted from tsgo. */
6
7
  const jsonRpcMessageSchema = z.object({
7
8
  jsonrpc: z.literal("2.0"),
8
9
  id: z.union([z.number(), z.string()]).optional(),
@@ -17,22 +18,12 @@ const jsonRpcMessageSchema = z.object({
17
18
  })
18
19
  .optional(),
19
20
  });
20
- const hoverResultSchema = z.object({
21
- contents: z.unknown(),
22
- });
23
- /** MarkupContent shape: `{ kind, value }` or just a raw `{ value }` string */
24
- const markupContentSchema = z.object({ value: z.string() });
25
- // Shared LSP building blocks
21
+ /** Shared LSP position shape. */
26
22
  const positionSchema = z.object({ line: z.number(), character: z.number() });
27
23
  const rangeSchema = z.object({ start: positionSchema, end: positionSchema });
28
- // Definition/references response can be Location or LocationLink
24
+ /** Location shape returned by definition and reference requests. */
29
25
  const locationSchema = z.object({ uri: z.string(), range: rangeSchema });
30
- const locationLinkSchema = z.object({
31
- targetUri: z.string(),
32
- targetRange: rangeSchema,
33
- targetSelectionRange: rangeSchema.optional(),
34
- });
35
- // Diagnostics
26
+ /** Diagnostic item shape returned by tsgo. */
36
27
  const diagnosticItemSchema = z.object({
37
28
  range: rangeSchema,
38
29
  severity: z.number().optional(),
@@ -40,30 +31,9 @@ const diagnosticItemSchema = z.object({
40
31
  source: z.string().optional(),
41
32
  message: z.string(),
42
33
  });
43
- const diagnosticResultSchema = z.object({
44
- kind: z.string(),
45
- items: z.array(diagnosticItemSchema),
46
- });
47
- // Code actions
34
+ /** Text-edit shape shared by code actions and workspace edits. */
48
35
  const textEditSchema = z.object({ range: rangeSchema, newText: z.string() });
49
- const codeActionSchema = z.object({
50
- title: z.string(),
51
- kind: z.string().optional(),
52
- diagnostics: z.array(diagnosticItemSchema).optional(),
53
- edit: z
54
- .object({
55
- changes: z.record(z.string(), z.array(textEditSchema)).optional(),
56
- })
57
- .optional(),
58
- });
59
36
  const SEVERITY_LABELS = ["", "error", "warning", "info", "hint"];
60
- // Document symbols — tsgo returns flat SymbolInformation[], not hierarchical
61
- const symbolInformationSchema = z.object({
62
- name: z.string(),
63
- kind: z.number(),
64
- containerName: z.string().optional(),
65
- location: locationSchema,
66
- });
67
37
  const SYMBOL_KIND_LABELS = {
68
38
  1: "file",
69
39
  2: "module",
@@ -81,20 +51,6 @@ const SYMBOL_KIND_LABELS = {
81
51
  22: "enum member",
82
52
  26: "type parameter",
83
53
  };
84
- // Workspace edit (shared by rename and code actions)
85
- const workspaceEditSchema = z.object({
86
- changes: z.record(z.string(), z.array(textEditSchema)).optional(),
87
- });
88
- // Inlay hints
89
- const inlayHintLabelSchema = z.union([
90
- z.string(),
91
- z.array(z.object({ value: z.string() })),
92
- ]);
93
- const inlayHintSchema = z.object({
94
- position: positionSchema,
95
- label: inlayHintLabelSchema,
96
- kind: z.number().optional(),
97
- });
98
54
  const INLAY_HINT_KIND_LABELS = {
99
55
  1: "type",
100
56
  2: "parameter",
@@ -114,6 +70,13 @@ export class LspClient {
114
70
  buffer = Buffer.alloc(0);
115
71
  documents = new Map();
116
72
  alive = true;
73
+ /**
74
+ * Start a tsgo LSP child process.
75
+ *
76
+ * @param binaryPath - Absolute path to the tsgo native binary.
77
+ * @param rootUri - LSP root URI for the project.
78
+ * @throws When the child process does not expose piped stdio.
79
+ */
117
80
  constructor(binaryPath, rootUri) {
118
81
  this.rootUri = rootUri;
119
82
  this.proc = spawn(binaryPath, ["--lsp", "--stdio"], {
@@ -136,16 +99,30 @@ export class LspClient {
136
99
  this.pending.clear();
137
100
  });
138
101
  }
139
- /** Create and initialize a new LSP client for a project root */
102
+ /**
103
+ * Create and initialize a new LSP client for a project root
104
+ *
105
+ * @param binaryPath - Absolute path to the tsgo native binary.
106
+ * @param rootUri - LSP root URI for the project.
107
+ * @returns An initialized LSP client.
108
+ */
140
109
  static async create(binaryPath, rootUri) {
141
110
  const client = new LspClient(binaryPath, rootUri);
142
111
  await client.initialize();
143
112
  return client;
144
113
  }
114
+ /** @returns Whether the child process is available for requests. */
145
115
  get isAlive() {
146
116
  return this.alive;
147
117
  }
148
- /** Get hover information at a position in a file */
118
+ /**
119
+ * Get hover information at a position in a file
120
+ *
121
+ * @param filePath - Absolute path to the source file.
122
+ * @param line - Zero-based source line.
123
+ * @param character - Zero-based character offset.
124
+ * @returns Rendered hover content, or null when unavailable.
125
+ */
149
126
  async hover(filePath, line, character) {
150
127
  if (!this.alive)
151
128
  throw new Error("LSP client is not alive");
@@ -155,12 +132,19 @@ export class LspClient {
155
132
  textDocument: { uri },
156
133
  position: { line, character },
157
134
  });
158
- const parsed = hoverResultSchema.safeParse(result);
135
+ const parsed = z.object({ contents: z.unknown() }).safeParse(result);
159
136
  if (!parsed.success)
160
137
  return null;
161
138
  return formatHoverContents(parsed.data.contents);
162
139
  }
163
- /** Get definition location(s) for a symbol at a position */
140
+ /**
141
+ * Get definition location(s) for a symbol at a position
142
+ *
143
+ * @param filePath - Absolute path to the source file.
144
+ * @param line - Zero-based source line.
145
+ * @param character - Zero-based character offset.
146
+ * @returns Definition locations reported for the selected symbol.
147
+ */
164
148
  async definition(filePath, line, character) {
165
149
  if (!this.alive)
166
150
  throw new Error("LSP client is not alive");
@@ -172,7 +156,12 @@ export class LspClient {
172
156
  });
173
157
  return parseLocations(result);
174
158
  }
175
- /** Pull diagnostics for a file */
159
+ /**
160
+ * Pull diagnostics for a file
161
+ *
162
+ * @param filePath - Absolute path to the source file.
163
+ * @returns Diagnostics reported for the file.
164
+ */
176
165
  async diagnostics(filePath) {
177
166
  if (!this.alive)
178
167
  throw new Error("LSP client is not alive");
@@ -181,44 +170,74 @@ export class LspClient {
181
170
  const result = await this.sendRequest("textDocument/diagnostic", {
182
171
  textDocument: { uri },
183
172
  });
184
- const parsed = diagnosticResultSchema.safeParse(result);
173
+ const parsed = z
174
+ .object({
175
+ kind: z.string(),
176
+ items: z.array(diagnosticItemSchema),
177
+ })
178
+ .safeParse(result);
185
179
  if (!parsed.success)
186
180
  return [];
187
- return parsed.data.items.map((item) => ({
188
- line: item.range.start.line,
189
- character: item.range.start.character,
190
- endLine: item.range.end.line,
191
- endCharacter: item.range.end.character,
192
- severity: SEVERITY_LABELS[item.severity ?? 1] ?? "error",
193
- message: item.message,
194
- code: item.code,
181
+ return parsed.data.items.map(({ code, message, range, severity }) => ({
182
+ line: range.start.line,
183
+ character: range.start.character,
184
+ endLine: range.end.line,
185
+ endCharacter: range.end.character,
186
+ severity: SEVERITY_LABELS[severity ?? 1] ?? "error",
187
+ message,
188
+ code,
195
189
  }));
196
190
  }
197
- /** Get code actions for a range, optionally scoped to specific diagnostics */
191
+ /**
192
+ * Get code actions for a range, optionally scoped to specific diagnostics
193
+ *
194
+ * @param filePath - Absolute path to the source file.
195
+ * @param range - Source range to inspect.
196
+ * @param range.start - Inclusive start position.
197
+ * @param range.start.line - Zero-based start line.
198
+ * @param range.start.character - Zero-based start character.
199
+ * @param range.end - Exclusive end position.
200
+ * @param range.end.line - Zero-based end line.
201
+ * @param range.end.character - Zero-based end character.
202
+ * @param diagnostics - Diagnostics used to scope available actions.
203
+ * @returns Code actions returned for the range.
204
+ */
198
205
  async codeActions(filePath, range, diagnostics = []) {
199
206
  if (!this.alive)
200
207
  throw new Error("LSP client is not alive");
201
208
  const uri = pathToUri(filePath);
202
209
  await this.ensureDocumentOpen(filePath, uri);
203
- const lspDiagnostics = diagnostics.map((d) => ({
204
- range: {
205
- start: { line: d.line, character: d.character },
206
- end: { line: d.endLine, character: d.endCharacter },
207
- },
208
- severity: SEVERITY_LABELS.indexOf(d.severity) || 1,
209
- message: d.message,
210
- ...(d.code != null ? { code: d.code } : {}),
211
- }));
212
210
  const result = await this.sendRequest("textDocument/codeAction", {
213
211
  textDocument: { uri },
214
212
  range,
215
- context: { diagnostics: lspDiagnostics },
213
+ context: {
214
+ diagnostics: diagnostics.map(({ character, code, endCharacter, endLine, line, message, severity, }) => ({
215
+ range: {
216
+ start: { line, character },
217
+ end: { line: endLine, character: endCharacter },
218
+ },
219
+ severity: SEVERITY_LABELS.indexOf(severity) || 1,
220
+ message,
221
+ ...(code != null ? { code } : {}),
222
+ })),
223
+ },
216
224
  });
217
225
  if (!Array.isArray(result))
218
226
  return [];
219
227
  const actions = [];
220
228
  for (const item of result) {
221
- const parsed = codeActionSchema.safeParse(item);
229
+ const parsed = z
230
+ .object({
231
+ title: z.string(),
232
+ kind: z.string().optional(),
233
+ diagnostics: z.array(diagnosticItemSchema).optional(),
234
+ edit: z
235
+ .object({
236
+ changes: z.record(z.string(), z.array(textEditSchema)).optional(),
237
+ })
238
+ .optional(),
239
+ })
240
+ .safeParse(item);
222
241
  if (!parsed.success || !parsed.data.edit)
223
242
  continue;
224
243
  actions.push({
@@ -229,7 +248,12 @@ export class LspClient {
229
248
  }
230
249
  return actions;
231
250
  }
232
- /** Get a structured outline of all symbols in a file */
251
+ /**
252
+ * Get a structured outline of all symbols in a file
253
+ *
254
+ * @param filePath - Absolute path to the source file.
255
+ * @returns The file's hierarchical symbol outline.
256
+ */
233
257
  async documentSymbols(filePath) {
234
258
  if (!this.alive)
235
259
  throw new Error("LSP client is not alive");
@@ -240,7 +264,15 @@ export class LspClient {
240
264
  return [];
241
265
  return buildSymbolTree(result);
242
266
  }
243
- /** Rename a symbol across the project */
267
+ /**
268
+ * Rename a symbol across the project
269
+ *
270
+ * @param filePath - Absolute path to the source file.
271
+ * @param line - Zero-based source line.
272
+ * @param character - Zero-based character offset.
273
+ * @param newName - Replacement symbol name.
274
+ * @returns Text edits required to perform the rename.
275
+ */
244
276
  async rename(filePath, line, character, newName) {
245
277
  if (!this.alive)
246
278
  throw new Error("LSP client is not alive");
@@ -253,7 +285,14 @@ export class LspClient {
253
285
  });
254
286
  return parseWorkspaceEdit(result);
255
287
  }
256
- /** Get inferred type annotations for a line range */
288
+ /**
289
+ * Get inferred type annotations for a line range
290
+ *
291
+ * @param filePath - Absolute path to the source file.
292
+ * @param startLine - Zero-based inclusive start line.
293
+ * @param endLine - Zero-based exclusive end line.
294
+ * @returns Inlay hints reported for the requested range.
295
+ */
257
296
  async inlayHints(filePath, startLine, endLine) {
258
297
  if (!this.alive)
259
298
  throw new Error("LSP client is not alive");
@@ -270,23 +309,38 @@ export class LspClient {
270
309
  return [];
271
310
  const hints = [];
272
311
  for (const item of result) {
273
- const parsed = inlayHintSchema.safeParse(item);
312
+ const parsed = z
313
+ .object({
314
+ position: positionSchema,
315
+ label: z.union([
316
+ z.string(),
317
+ z.array(z.object({ value: z.string() })),
318
+ ]),
319
+ kind: z.number().optional(),
320
+ })
321
+ .safeParse(item);
274
322
  if (!parsed.success)
275
323
  continue;
276
324
  const label = parsed.data.label;
277
- const text = typeof label === "string"
278
- ? label
279
- : label.map((part) => part.value).join("");
280
325
  hints.push({
281
326
  line: parsed.data.position.line,
282
327
  character: parsed.data.position.character,
283
- text,
328
+ text: typeof label === "string"
329
+ ? label
330
+ : label.map((part) => part.value).join(""),
284
331
  kind: INLAY_HINT_KIND_LABELS[parsed.data.kind ?? 0] ?? "unknown",
285
332
  });
286
333
  }
287
334
  return hints;
288
335
  }
289
- /** Find all references to a symbol at a position */
336
+ /**
337
+ * Find all references to a symbol at a position
338
+ *
339
+ * @param filePath - Absolute path to the source file.
340
+ * @param line - Zero-based source line.
341
+ * @param character - Zero-based character offset.
342
+ * @returns Locations that reference the selected symbol.
343
+ */
290
344
  async references(filePath, line, character) {
291
345
  if (!this.alive)
292
346
  throw new Error("LSP client is not alive");
@@ -313,6 +367,7 @@ export class LspClient {
313
367
  }
314
368
  this.proc.kill();
315
369
  }
370
+ /** Initialize the LSP session. */
316
371
  async initialize() {
317
372
  await this.sendRequest("initialize", {
318
373
  processId: process.pid,
@@ -325,8 +380,38 @@ export class LspClient {
325
380
  });
326
381
  this.sendNotification("initialized", {});
327
382
  }
328
- /** Open a document in the LSP if needed, or update it if contents changed */
383
+ /**
384
+ * Re-read all previously opened documents from disk and push changes to tsgo.
385
+ * This ensures that edits to imported/dependency files are picked up before
386
+ * we query a file that depends on them.
387
+ */
388
+ async refreshOpenDocuments() {
389
+ for (const [uri, state] of this.documents) {
390
+ let content;
391
+ try {
392
+ content = await readFile(uriToPath(uri), "utf-8");
393
+ }
394
+ catch {
395
+ continue;
396
+ }
397
+ if (content !== state.content) {
398
+ const version = state.version + 1;
399
+ this.sendNotification("textDocument/didChange", {
400
+ textDocument: { uri, version },
401
+ contentChanges: [{ text: content }],
402
+ });
403
+ this.documents.set(uri, { version, content });
404
+ }
405
+ }
406
+ }
407
+ /**
408
+ * Open a document in the LSP if needed, or update it if contents changed
409
+ *
410
+ * @param filePath - Absolute path to the source file.
411
+ * @param uri - LSP document URI for the file.
412
+ */
329
413
  async ensureDocumentOpen(filePath, uri) {
414
+ await this.refreshOpenDocuments();
330
415
  const content = await readFile(filePath, "utf-8");
331
416
  const existing = this.documents.get(uri);
332
417
  if (!existing) {
@@ -350,27 +435,52 @@ export class LspClient {
350
435
  this.documents.set(uri, { version, content });
351
436
  }
352
437
  }
438
+ /**
439
+ * Send an LSP request and await its response.
440
+ *
441
+ * @param method - LSP method name.
442
+ * @param params - JSON-RPC request parameters.
443
+ */
353
444
  sendRequest(method, params) {
354
445
  return new Promise((resolve, reject) => {
355
446
  const id = this.nextId++;
356
- const timer = setTimeout(() => {
357
- this.pending.delete(id);
358
- reject(new Error(`Request "${method}" timed out after ${REQUEST_TIMEOUT_MS}ms`));
359
- }, REQUEST_TIMEOUT_MS);
360
- this.pending.set(id, { resolve, reject, timer });
447
+ this.pending.set(id, {
448
+ resolve,
449
+ reject,
450
+ timer: setTimeout(() => {
451
+ this.pending.delete(id);
452
+ reject(new Error(`Request "${method}" timed out after ${REQUEST_TIMEOUT_MS}ms`));
453
+ }, REQUEST_TIMEOUT_MS),
454
+ });
361
455
  this.send({ jsonrpc: "2.0", id, method, params });
362
456
  });
363
457
  }
458
+ /**
459
+ * Send an LSP notification.
460
+ *
461
+ * @param method - LSP method name.
462
+ * @param params - JSON-RPC notification parameters.
463
+ */
364
464
  sendNotification(method, params) {
365
465
  this.send({ jsonrpc: "2.0", method, params });
366
466
  }
467
+ /**
468
+ * Respond to a server-initiated LSP request.
469
+ *
470
+ * @param id - Identifier of the server request.
471
+ * @param result - JSON-RPC response result.
472
+ */
367
473
  sendResponse(id, result) {
368
474
  this.send({ jsonrpc: "2.0", id, result });
369
475
  }
476
+ /**
477
+ * Write a framed JSON-RPC message to the child process.
478
+ *
479
+ * @param message - JSON-RPC message to serialize and send.
480
+ */
370
481
  send(message) {
371
482
  const body = JSON.stringify(message);
372
- const header = `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n`;
373
- this.stdin.write(header + body);
483
+ this.stdin.write(`Content-Length: ${Buffer.byteLength(body)}\r\n\r\n${body}`);
374
484
  }
375
485
  /** Parse Content-Length framed messages from the buffer */
376
486
  drainBuffer() {
@@ -378,24 +488,29 @@ export class LspClient {
378
488
  const headerEnd = this.buffer.indexOf("\r\n\r\n");
379
489
  if (headerEnd === -1)
380
490
  return;
381
- const header = this.buffer.subarray(0, headerEnd).toString("ascii");
382
- const match = header.match(/Content-Length:\s*(\d+)/);
491
+ const match = this.buffer
492
+ .subarray(0, headerEnd)
493
+ .toString("ascii")
494
+ .match(/Content-Length:\s*(\d+)/);
383
495
  if (!match) {
384
496
  this.buffer = this.buffer.subarray(headerEnd + 4);
385
497
  continue;
386
498
  }
387
- const contentLength = Number.parseInt(match[1] ?? "0", 10);
388
499
  const bodyStart = headerEnd + 4;
389
- const bodyEnd = bodyStart + contentLength;
500
+ const bodyEnd = bodyStart + Number.parseInt(match[1] ?? "0", 10);
390
501
  if (this.buffer.length < bodyEnd)
391
502
  return;
392
- const body = this.buffer.subarray(bodyStart, bodyEnd).toString("utf-8");
503
+ const parsed = jsonRpcMessageSchema.safeParse(JSON.parse(this.buffer.subarray(bodyStart, bodyEnd).toString("utf-8")));
393
504
  this.buffer = this.buffer.subarray(bodyEnd);
394
- const parsed = jsonRpcMessageSchema.safeParse(JSON.parse(body));
395
505
  if (parsed.success)
396
506
  this.handleMessage(parsed.data);
397
507
  }
398
508
  }
509
+ /**
510
+ * Route a parsed JSON-RPC message.
511
+ *
512
+ * @param message - Validated JSON-RPC message from the server.
513
+ */
399
514
  handleMessage(message) {
400
515
  // Response to one of our requests (numeric id, no method)
401
516
  if (typeof message.id === "number" && !message.method) {
@@ -418,22 +533,36 @@ export class LspClient {
418
533
  }
419
534
  }
420
535
  }
536
+ /**
537
+ * Convert a file path to an LSP file URI.
538
+ *
539
+ * @param filePath - Absolute path to convert.
540
+ * @returns The corresponding file URI.
541
+ */
421
542
  function pathToUri(filePath) {
422
543
  return `file://${filePath}`;
423
544
  }
545
+ /**
546
+ * Convert an LSP file URI to a file path.
547
+ *
548
+ * @param uri - File URI to convert.
549
+ * @returns The corresponding absolute file path.
550
+ */
424
551
  function uriToPath(uri) {
425
552
  return uri.replace(/^file:\/\//, "");
426
553
  }
427
554
  /**
428
555
  * Parse Location[] or LocationLink[] from an LSP response into LspLocation[].
429
556
  * Handles single objects, arrays, and null.
557
+ *
558
+ * @param result - Raw LSP definition response.
559
+ * @returns Normalized definition locations.
430
560
  */
431
561
  function parseLocations(result) {
432
562
  if (result == null)
433
563
  return [];
434
- const items = Array.isArray(result) ? result : [result];
435
564
  const locations = [];
436
- for (const item of items) {
565
+ for (const item of Array.isArray(result) ? result : [result]) {
437
566
  const loc = locationSchema.safeParse(item);
438
567
  if (loc.success) {
439
568
  locations.push({
@@ -443,7 +572,13 @@ function parseLocations(result) {
443
572
  });
444
573
  continue;
445
574
  }
446
- const link = locationLinkSchema.safeParse(item);
575
+ const link = z
576
+ .object({
577
+ targetUri: z.string(),
578
+ targetRange: rangeSchema,
579
+ targetSelectionRange: rangeSchema.optional(),
580
+ })
581
+ .safeParse(item);
447
582
  if (link.success) {
448
583
  const range = link.data.targetSelectionRange ?? link.data.targetRange;
449
584
  locations.push({
@@ -458,11 +593,21 @@ function parseLocations(result) {
458
593
  /**
459
594
  * Build a symbol tree from flat SymbolInformation[]. Uses containerName to
460
595
  * reconstruct parent-child relationships.
596
+ *
597
+ * @param items - Raw LSP symbol information records.
598
+ * @returns A hierarchical symbol outline.
461
599
  */
462
600
  function buildSymbolTree(items) {
463
601
  const flat = [];
464
602
  for (const item of items) {
465
- const parsed = symbolInformationSchema.safeParse(item);
603
+ const parsed = z
604
+ .object({
605
+ name: z.string(),
606
+ kind: z.number(),
607
+ containerName: z.string().optional(),
608
+ location: locationSchema,
609
+ })
610
+ .safeParse(item);
466
611
  if (!parsed.success)
467
612
  continue;
468
613
  flat.push({
@@ -496,17 +641,25 @@ function buildSymbolTree(items) {
496
641
  }
497
642
  return roots;
498
643
  }
499
- /** Parse a WorkspaceEdit into flat LspTextEdit[] */
644
+ /**
645
+ * Parse a WorkspaceEdit into flat LspTextEdit[]
646
+ *
647
+ * @param result - Raw LSP workspace edit.
648
+ * @returns Flattened text edits.
649
+ */
500
650
  function parseWorkspaceEdit(result) {
501
- const parsed = workspaceEditSchema.safeParse(result);
651
+ const parsed = z
652
+ .object({
653
+ changes: z.record(z.string(), z.array(textEditSchema)).optional(),
654
+ })
655
+ .safeParse(result);
502
656
  if (!parsed.success || !parsed.data.changes)
503
657
  return [];
504
658
  const edits = [];
505
659
  for (const [editUri, textEdits] of Object.entries(parsed.data.changes)) {
506
- const file = uriToPath(editUri);
507
660
  for (const te of textEdits) {
508
661
  edits.push({
509
- file,
662
+ file: uriToPath(editUri),
510
663
  startLine: te.range.start.line,
511
664
  startCharacter: te.range.start.character,
512
665
  endLine: te.range.end.line,
@@ -517,9 +670,14 @@ function parseWorkspaceEdit(result) {
517
670
  }
518
671
  return edits;
519
672
  }
673
+ /**
674
+ * Return the LSP language identifier for a source file.
675
+ *
676
+ * @param filePath - Source file path.
677
+ * @returns The matching LSP language identifier.
678
+ */
520
679
  function getLanguageId(filePath) {
521
- const ext = extname(filePath);
522
- switch (ext) {
680
+ switch (extname(filePath)) {
523
681
  case ".ts":
524
682
  case ".mts":
525
683
  case ".cts":
@@ -539,6 +697,9 @@ function getLanguageId(filePath) {
539
697
  /**
540
698
  * Extract text from LSP hover contents. Handles MarkupContent (`{ value }`),
541
699
  * plain strings, and arrays of either.
700
+ *
701
+ * @param contents - Raw LSP hover content.
702
+ * @returns Rendered hover text, or null when the content is unsupported.
542
703
  */
543
704
  function formatHoverContents(contents) {
544
705
  const str = z.string().safeParse(contents);
@@ -548,7 +709,7 @@ function formatHoverContents(contents) {
548
709
  const parts = contents.map(formatHoverContents).filter(Boolean);
549
710
  return parts.length > 0 ? parts.join("\n\n") : null;
550
711
  }
551
- const markup = markupContentSchema.safeParse(contents);
712
+ const markup = z.object({ value: z.string() }).safeParse(contents);
552
713
  if (markup.success)
553
714
  return markup.data.value;
554
715
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"lsp-client.js","sourceRoot":"","sources":["../src/lsp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lsp-client.js","sourceRoot":"","sources":["../src/lsp-client.ts"],"names":[],"mappings":"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"}
package/dist/pool.js CHANGED
@@ -12,11 +12,24 @@ export class TsgoPool {
12
12
  binaryPath;
13
13
  idleTimeoutMs;
14
14
  entries = new Map();
15
+ /**
16
+ * Create an LSP client pool.
17
+ *
18
+ * @param binaryPath - Absolute path to the tsgo native binary.
19
+ * @param idleTimeoutMs - Time before an inactive client is shut down.
20
+ */
15
21
  constructor(binaryPath, idleTimeoutMs = DEFAULT_IDLE_TIMEOUT_MS) {
16
22
  this.binaryPath = binaryPath;
17
23
  this.idleTimeoutMs = idleTimeoutMs;
18
24
  }
19
- /** Get hover info + definition location in one call */
25
+ /**
26
+ * Get hover info + definition location in one call
27
+ *
28
+ * @param filePath - Absolute path to the source file.
29
+ * @param line - Zero-based source line.
30
+ * @param character - Zero-based character offset.
31
+ * @returns Hover text and the first definition location, when available.
32
+ */
20
33
  async hoverWithDefinition(filePath, line, character) {
21
34
  const client = await this.getClient(filePath);
22
35
  const [hover, definitions] = await Promise.all([
@@ -25,35 +38,65 @@ export class TsgoPool {
25
38
  ]);
26
39
  return { hover, definition: definitions[0] ?? null };
27
40
  }
28
- /** Get diagnostics for a file with available fixes for each error */
41
+ /**
42
+ * Get diagnostics for a file with available fixes for each error
43
+ *
44
+ * @param filePath - Absolute path to the source file.
45
+ * @returns Diagnostics and the code actions available for them.
46
+ */
29
47
  async diagnosticsWithFixes(filePath) {
30
48
  const client = await this.getClient(filePath);
31
49
  const diagnostics = await client.diagnostics(filePath);
32
- const actions = await client.codeActions(filePath, {
33
- start: { line: 0, character: 0 },
34
- end: { line: 1_000_000, character: 0 },
35
- }, diagnostics);
36
- return { diagnostics, actions };
50
+ return {
51
+ diagnostics,
52
+ actions: await client.codeActions(filePath, {
53
+ start: { line: 0, character: 0 },
54
+ end: { line: 1_000_000, character: 0 },
55
+ }, diagnostics),
56
+ };
37
57
  }
38
- /** Find all references to a symbol */
58
+ /**
59
+ * Find all references to a symbol
60
+ *
61
+ * @param filePath - Absolute path to the source file.
62
+ * @param line - Zero-based source line.
63
+ * @param character - Zero-based character offset.
64
+ * @returns Locations that reference the selected symbol.
65
+ */
39
66
  async references(filePath, line, character) {
40
- const client = await this.getClient(filePath);
41
- return client.references(filePath, line, character);
67
+ return (await this.getClient(filePath)).references(filePath, line, character);
42
68
  }
43
- /** Get a structured outline of all symbols in a file */
69
+ /**
70
+ * Get a structured outline of all symbols in a file
71
+ *
72
+ * @param filePath - Absolute path to the source file.
73
+ * @returns The file's hierarchical symbol outline.
74
+ */
44
75
  async outline(filePath) {
45
- const client = await this.getClient(filePath);
46
- return client.documentSymbols(filePath);
76
+ return (await this.getClient(filePath)).documentSymbols(filePath);
47
77
  }
48
- /** Rename a symbol across the project */
78
+ /**
79
+ * Rename a symbol across the project
80
+ *
81
+ * @param filePath - Absolute path to the source file.
82
+ * @param line - Zero-based source line.
83
+ * @param character - Zero-based character offset.
84
+ * @param newName - Replacement symbol name.
85
+ * @returns Text edits required to perform the rename.
86
+ */
49
87
  async rename(filePath, line, character, newName) {
50
- const client = await this.getClient(filePath);
51
- return client.rename(filePath, line, character, newName);
88
+ return (await this.getClient(filePath)).rename(filePath, line, character, newName);
52
89
  }
53
- /** Get inferred type annotations for a line range */
90
+ /**
91
+ * Get inferred type annotations for a line range
92
+ *
93
+ * @param filePath - Absolute path to the source file.
94
+ * @param startLine - Zero-based inclusive start line.
95
+ * @param endLine - Zero-based exclusive end line.
96
+ * @returns Inlay hints reported for the requested range.
97
+ */
54
98
  async inlayHints(filePath, startLine, endLine) {
55
- const client = await this.getClient(filePath);
56
- return client.inlayHints(filePath, startLine, endLine);
99
+ return (await this.getClient(filePath)).inlayHints(filePath, startLine, endLine);
57
100
  }
58
101
  /** Shut down all active LSP instances */
59
102
  async shutdown() {
@@ -63,6 +106,12 @@ export class TsgoPool {
63
106
  }));
64
107
  this.entries.clear();
65
108
  }
109
+ /**
110
+ * Get or create the client for a file's project.
111
+ *
112
+ * @param filePath - Absolute path used to locate the project.
113
+ * @returns A live client for the file's project.
114
+ */
66
115
  async getClient(filePath) {
67
116
  const projectRoot = findProjectRoot(filePath);
68
117
  const existing = this.entries.get(projectRoot);
@@ -74,8 +123,7 @@ export class TsgoPool {
74
123
  clearTimeout(existing.idleTimer);
75
124
  this.entries.delete(projectRoot);
76
125
  }
77
- const rootUri = `file://${projectRoot}`;
78
- const client = await LspClient.create(this.binaryPath, rootUri);
126
+ const client = await LspClient.create(this.binaryPath, `file://${projectRoot}`);
79
127
  const entry = {
80
128
  client,
81
129
  idleTimer: this.startIdleTimer(projectRoot),
@@ -83,6 +131,12 @@ export class TsgoPool {
83
131
  this.entries.set(projectRoot, entry);
84
132
  return client;
85
133
  }
134
+ /**
135
+ * Schedule an idle client for shutdown.
136
+ *
137
+ * @param projectRoot - Absolute path to the client's project root.
138
+ * @returns The scheduled idle timer.
139
+ */
86
140
  startIdleTimer(projectRoot) {
87
141
  return setTimeout(async () => {
88
142
  const entry = this.entries.get(projectRoot);
@@ -92,12 +146,23 @@ export class TsgoPool {
92
146
  }
93
147
  }, this.idleTimeoutMs);
94
148
  }
149
+ /**
150
+ * Restart a client's idle shutdown timer.
151
+ *
152
+ * @param projectRoot - Absolute path to the client's project root.
153
+ * @param entry - Pool entry whose timer should be restarted.
154
+ */
95
155
  resetIdleTimer(projectRoot, entry) {
96
156
  clearTimeout(entry.idleTimer);
97
157
  entry.idleTimer = this.startIdleTimer(projectRoot);
98
158
  }
99
159
  }
100
- /** Walk up from a file path to find the nearest tsconfig.json */
160
+ /**
161
+ * Walk up from a file path to find the nearest tsconfig.json
162
+ *
163
+ * @param filePath - Absolute path used to start the search.
164
+ * @returns The nearest project root, or the file's directory as a fallback.
165
+ */
101
166
  function findProjectRoot(filePath) {
102
167
  let dir = dirname(filePath);
103
168
  for (;;) {
package/dist/pool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ const PLATFORM_PACKAGE = `@typescript/native-preview-${process.platform}-${proce
6
6
  * Resolves the tsgo native binary path. Checks TSGO_PATH env var, then bun/npm
7
7
  * global install locations. The native binary is required (not the Node
8
8
  * wrapper) for stdio piping.
9
+ *
10
+ * @returns The absolute path to the tsgo native binary.
11
+ * @throws When the configured or installed native binary cannot be found.
9
12
  */
10
13
  export function resolveTsgoBinary() {
11
14
  const envPath = process.env.TSGO_PATH;
@@ -15,11 +18,10 @@ export function resolveTsgoBinary() {
15
18
  return envPath;
16
19
  }
17
20
  const exe = process.platform === "win32" ? "tsgo.exe" : "tsgo";
18
- const candidates = [
21
+ for (const candidate of [
19
22
  join(homedir(), ".bun", "install", "global", "node_modules", PLATFORM_PACKAGE, "lib", exe),
20
23
  join("/usr", "local", "lib", "node_modules", PLATFORM_PACKAGE, "lib", exe),
21
- ];
22
- for (const candidate of candidates) {
24
+ ]) {
23
25
  if (existsSync(candidate))
24
26
  return candidate;
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,gBAAgB,GAAG,8BAA8B,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;AAEzF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,+BAA+B,CAC/D,CAAA;QACH,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,MAAM,UAAU,GAAG;QACjB,IAAI,CACF,OAAO,EAAE,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,GAAG,CACJ;QACD,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC;KAC3E,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IAC7C,CAAC;IAED,MAAM,IAAI,KAAK,CACb;QACE,oCAAoC;QACpC,uBAAuB,gBAAgB,EAAE;QACzC,yDAAyD;QACzD,6CAA6C;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,gBAAgB,GAAG,8BAA8B,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;AAEzF;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,+BAA+B,CAC/D,CAAA;QACH,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,KAAK,MAAM,SAAS,IAAI;QACtB,IAAI,CACF,OAAO,EAAE,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,GAAG,CACJ;QACD,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC;KAC3E,EAAE,CAAC;QACF,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IAC7C,CAAC;IAED,MAAM,IAAI,KAAK,CACb;QACE,oCAAoC;QACpC,uBAAuB,gBAAgB,EAAE;QACzC,yDAAyD;QACzD,6CAA6C;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zachsents/ts-mcp",
3
- "version": "0.3.2",
3
+ "version": "0.3.5",
4
4
  "description": "Give AI agents TypeScript type awareness",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,27 +21,32 @@
21
21
  ],
22
22
  "repository": {
23
23
  "type": "git",
24
- "url": "https://github.com/zachsents/ts-mcp.git"
24
+ "url": "https://github.com/zachsents/zachs-tools.git",
25
+ "directory": "packages/ts-mcp"
25
26
  },
26
27
  "author": "Zach Sents",
27
28
  "license": "MIT",
28
29
  "scripts": {
29
30
  "start": "bun run src/index.ts",
30
31
  "build": "tsc -p tsconfig.build.json && shx chmod +x dist/index.js",
31
- "lint": "oxlint --type-aware --fix --fix-suggestions",
32
+ "lint": "oxlint --type-aware",
33
+ "lint:fix": "oxlint --type-aware --fix --fix-suggestions",
32
34
  "format": "prettier --write .",
33
- "fix": "bun run lint && bun run format",
35
+ "format:check": "prettier --check .",
36
+ "fix": "bun run lint:fix && bun run format",
37
+ "test": "bun test/smoke.ts",
34
38
  "typecheck": "tsc --noEmit",
35
- "check": "bun run typecheck && bun run fix"
39
+ "check": "bun run --cwd ../.. build:lint-plugin && bun run format:check && bun run lint && bun run typecheck && bun run test",
40
+ "prepublishOnly": "bun run check && bun run build"
36
41
  },
37
42
  "devDependencies": {
38
43
  "@types/bun": "latest",
39
- "oxlint": "^1.51.0",
40
- "oxlint-tsgolint": "^0.16.0",
41
- "prettier": "^3.8.1",
44
+ "oxlint": "^1.74.0",
45
+ "oxlint-tsgolint": "^0.24.0",
46
+ "prettier": "3.4.2",
42
47
  "prettier-plugin-jsdoc": "^1.8.0",
43
48
  "shx": "^0.4.0",
44
- "typescript": "^5"
49
+ "typescript": "^5.9.3"
45
50
  },
46
51
  "dependencies": {
47
52
  "@modelcontextprotocol/sdk": "^1.27.1",