repomap-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/analyzer/imports-analyzer.d.ts +27 -0
  2. package/dist/analyzer/imports-analyzer.d.ts.map +1 -0
  3. package/dist/analyzer/imports-analyzer.js +74 -0
  4. package/dist/analyzer/imports-analyzer.js.map +1 -0
  5. package/dist/analyzer/tree-sitter-analyzer.d.ts +37 -0
  6. package/dist/analyzer/tree-sitter-analyzer.d.ts.map +1 -0
  7. package/dist/analyzer/tree-sitter-analyzer.js +531 -0
  8. package/dist/analyzer/tree-sitter-analyzer.js.map +1 -0
  9. package/dist/commands/init.d.ts +6 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +202 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/login.d.ts +9 -0
  14. package/dist/commands/login.d.ts.map +1 -0
  15. package/dist/commands/login.js +106 -0
  16. package/dist/commands/login.js.map +1 -0
  17. package/dist/commands/mcp.d.ts +4 -0
  18. package/dist/commands/mcp.d.ts.map +1 -0
  19. package/dist/commands/mcp.js +511 -0
  20. package/dist/commands/mcp.js.map +1 -0
  21. package/dist/commands/snapshot.d.ts +8 -0
  22. package/dist/commands/snapshot.d.ts.map +1 -0
  23. package/dist/commands/snapshot.js +314 -0
  24. package/dist/commands/snapshot.js.map +1 -0
  25. package/dist/commands/status.d.ts +5 -0
  26. package/dist/commands/status.d.ts.map +1 -0
  27. package/dist/commands/status.js +108 -0
  28. package/dist/commands/status.js.map +1 -0
  29. package/dist/commands/watch.d.ts +5 -0
  30. package/dist/commands/watch.d.ts.map +1 -0
  31. package/dist/commands/watch.js +367 -0
  32. package/dist/commands/watch.js.map +1 -0
  33. package/dist/generator/claude-md.d.ts +19 -0
  34. package/dist/generator/claude-md.d.ts.map +1 -0
  35. package/dist/generator/claude-md.js +656 -0
  36. package/dist/generator/claude-md.js.map +1 -0
  37. package/dist/generator/map-json.d.ts +35 -0
  38. package/dist/generator/map-json.d.ts.map +1 -0
  39. package/dist/generator/map-json.js +130 -0
  40. package/dist/generator/map-json.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +91 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/scanner/file-scanner.d.ts +9 -0
  46. package/dist/scanner/file-scanner.d.ts.map +1 -0
  47. package/dist/scanner/file-scanner.js +76 -0
  48. package/dist/scanner/file-scanner.js.map +1 -0
  49. package/dist/scanner/stack-detector.d.ts +10 -0
  50. package/dist/scanner/stack-detector.d.ts.map +1 -0
  51. package/dist/scanner/stack-detector.js +153 -0
  52. package/dist/scanner/stack-detector.js.map +1 -0
  53. package/dist/utils/credentials.d.ts +11 -0
  54. package/dist/utils/credentials.d.ts.map +1 -0
  55. package/dist/utils/credentials.js +34 -0
  56. package/dist/utils/credentials.js.map +1 -0
  57. package/dist/utils/health-score.d.ts +10 -0
  58. package/dist/utils/health-score.d.ts.map +1 -0
  59. package/dist/utils/health-score.js +44 -0
  60. package/dist/utils/health-score.js.map +1 -0
  61. package/dist/utils/ui.d.ts +14 -0
  62. package/dist/utils/ui.d.ts.map +1 -0
  63. package/dist/utils/ui.js +45 -0
  64. package/dist/utils/ui.js.map +1 -0
  65. package/package.json +54 -0
@@ -0,0 +1,531 @@
1
+ /**
2
+ * Deep code analysis using web-tree-sitter (WASM) with enhanced regex fallback.
3
+ * Works portably without native compilation. If WASM fails, falls back to
4
+ * enhanced regex that handles all import/export patterns correctly.
5
+ */
6
+ import fs from 'fs';
7
+ import path from 'path';
8
+ import { createRequire } from 'module';
9
+ // ─── WASM state ───────────────────────────────────────────────────────────────
10
+ let wasmReady = false;
11
+ let wasmFailed = false;
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ let WasmParser = null;
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const wasmLanguages = {};
16
+ const req = createRequire(import.meta.url);
17
+ async function tryLoadWasmGrammar(grammarName) {
18
+ try {
19
+ const wasmPath = req.resolve(`tree-sitter-wasms/out/${grammarName}.wasm`);
20
+ const wasmBuf = fs.readFileSync(wasmPath);
21
+ wasmLanguages[grammarName] = await WasmParser.Language.load(wasmBuf);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ export async function initTreeSitterWasm() {
29
+ if (wasmReady)
30
+ return true;
31
+ if (wasmFailed)
32
+ return false;
33
+ try {
34
+ // Dynamic import — if web-tree-sitter is not installed this throws
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ const mod = await import('web-tree-sitter').catch(() => null);
37
+ if (!mod) {
38
+ wasmFailed = true;
39
+ return false;
40
+ }
41
+ WasmParser = mod.default ?? mod;
42
+ // Locate tree-sitter.wasm bundled with web-tree-sitter
43
+ await WasmParser.init({
44
+ locateFile: (filename) => {
45
+ try {
46
+ const pkgEntry = req.resolve('web-tree-sitter');
47
+ return path.join(path.dirname(pkgEntry), filename);
48
+ }
49
+ catch {
50
+ return filename;
51
+ }
52
+ },
53
+ });
54
+ // Load grammars (best-effort — skip missing ones)
55
+ await Promise.all([
56
+ tryLoadWasmGrammar('tree-sitter-javascript'),
57
+ tryLoadWasmGrammar('tree-sitter-typescript'),
58
+ tryLoadWasmGrammar('tree-sitter-tsx'),
59
+ tryLoadWasmGrammar('tree-sitter-python'),
60
+ tryLoadWasmGrammar('tree-sitter-go'),
61
+ tryLoadWasmGrammar('tree-sitter-rust'),
62
+ ]);
63
+ wasmReady = Object.keys(wasmLanguages).length > 0;
64
+ if (!wasmReady)
65
+ wasmFailed = true;
66
+ return wasmReady;
67
+ }
68
+ catch {
69
+ wasmFailed = true;
70
+ return false;
71
+ }
72
+ }
73
+ export function isWasmAvailable() {
74
+ return wasmReady;
75
+ }
76
+ // ─── Enhanced regex analysis (reliable fallback) ──────────────────────────────
77
+ function parseJsTsImports(content) {
78
+ const details = [];
79
+ // 1. Static imports: import ... from 'source'
80
+ // Covers: default, named, namespace, mixed, type imports
81
+ const staticRe = /^import\s+(type\s+)?((?:\*\s+as\s+\w+|\{[^}]*\}|\w+)(?:\s*,\s*(?:\{[^}]*\}|\w+))?)\s+from\s+['"]([^'"]+)['"]/gm;
82
+ let m;
83
+ while ((m = staticRe.exec(content)) !== null) {
84
+ const clauseFull = m[2].trim();
85
+ const source = m[3];
86
+ const isExternal = !source.startsWith('.') && !source.startsWith('/');
87
+ // Namespace: * as Foo
88
+ if (clauseFull.startsWith('*')) {
89
+ const nsName = clauseFull.replace(/\*\s+as\s+/, '').trim();
90
+ details.push({ source, symbols: [nsName], type: 'namespace', isExternal });
91
+ continue;
92
+ }
93
+ // Split on comma to handle: default, { named }
94
+ const parts = clauseFull.split(/,(?![^{]*\})/).map((s) => s.trim());
95
+ let defaultSym = '';
96
+ let namedSyms = [];
97
+ for (const part of parts) {
98
+ if (part.startsWith('{')) {
99
+ // named: { a, b as c, ... }
100
+ namedSyms = part
101
+ .replace(/[{}]/g, '')
102
+ .split(',')
103
+ .map((s) => s.trim().split(/\s+as\s+/).pop())
104
+ .filter(Boolean);
105
+ }
106
+ else if (part) {
107
+ defaultSym = part;
108
+ }
109
+ }
110
+ if (namedSyms.length) {
111
+ details.push({ source, symbols: namedSyms, type: 'named', isExternal });
112
+ }
113
+ if (defaultSym) {
114
+ details.push({ source, symbols: [defaultSym], type: 'default', isExternal });
115
+ }
116
+ }
117
+ // 2. Side-effect imports: import 'source'
118
+ const sideEffectRe = /^import\s+['"]([^'"]+)['"]/gm;
119
+ while ((m = sideEffectRe.exec(content)) !== null) {
120
+ const source = m[1];
121
+ details.push({ source, symbols: [], type: 'side-effect', isExternal: !source.startsWith('.') });
122
+ }
123
+ // 3. Dynamic imports: import('source')
124
+ const dynamicRe = /\bimport\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/gm;
125
+ while ((m = dynamicRe.exec(content)) !== null) {
126
+ const source = m[1];
127
+ details.push({ source, symbols: [], type: 'dynamic', isExternal: !source.startsWith('.') });
128
+ }
129
+ // 4. require() calls — treat as default imports
130
+ const requireRe = /(?:const|let|var)\s+(?:\{([^}]+)\}|(\w+))\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/gm;
131
+ while ((m = requireRe.exec(content)) !== null) {
132
+ const source = m[3];
133
+ const isExternal = !source.startsWith('.') && !source.startsWith('/');
134
+ if (m[1]) {
135
+ // destructured: const { a, b } = require(...)
136
+ const syms = m[1].split(',').map((s) => s.trim().split(/\s+as\s+/).pop()).filter(Boolean);
137
+ details.push({ source, symbols: syms, type: 'named', isExternal });
138
+ }
139
+ else if (m[2]) {
140
+ details.push({ source, symbols: [m[2]], type: 'default', isExternal });
141
+ }
142
+ }
143
+ return details;
144
+ }
145
+ function parseJsTsExports(content) {
146
+ const details = [];
147
+ // 1. export (async) function name(params): ReturnType
148
+ const funcRe = /^export\s+(default\s+)?(async\s+)?function\s*\*?\s*(\w+)?\s*\(([^)]*)\)/gm;
149
+ let m;
150
+ while ((m = funcRe.exec(content)) !== null) {
151
+ const isDefault = !!m[1];
152
+ const isAsync = !!m[2];
153
+ const name = m[3] || 'default';
154
+ const rawParams = m[4];
155
+ const params = rawParams
156
+ .split(',')
157
+ .map((p) => p.trim().split(':')[0].trim().replace(/[?=].*$/, '').trim())
158
+ .filter(Boolean);
159
+ details.push({ name, type: 'function', async: isAsync, params, isDefault });
160
+ }
161
+ // 2. export class Foo
162
+ const classRe = /^export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)/gm;
163
+ while ((m = classRe.exec(content)) !== null) {
164
+ details.push({ name: m[2], type: 'class', async: false, params: [], isDefault: !!m[1] });
165
+ }
166
+ // 3. export const/let/var name = ...
167
+ const constRe = /^export\s+(const|let|var)\s+(\w+)/gm;
168
+ while ((m = constRe.exec(content)) !== null) {
169
+ const kind = m[1];
170
+ details.push({ name: m[2], type: kind, async: false, params: [], isDefault: false });
171
+ }
172
+ // 4. export type/interface/enum
173
+ const typeRe = /^export\s+(type|interface|enum)\s+(\w+)/gm;
174
+ while ((m = typeRe.exec(content)) !== null) {
175
+ const kind = m[1];
176
+ details.push({ name: m[2], type: kind, async: false, params: [], isDefault: false });
177
+ }
178
+ // 5. export { a, b, c } — named re-exports without 'from'
179
+ const namedRe = /^export\s+\{([^}]+)\}(?!\s+from)/gm;
180
+ while ((m = namedRe.exec(content)) !== null) {
181
+ const names = m[1]
182
+ .split(',')
183
+ .map((s) => s.trim().split(/\s+as\s+/).pop())
184
+ .filter(Boolean);
185
+ for (const name of names) {
186
+ if (!details.find((d) => d.name === name)) {
187
+ details.push({ name, type: 'const', async: false, params: [], isDefault: false });
188
+ }
189
+ }
190
+ }
191
+ // 6. export default (arrow, value, identifier)
192
+ const defaultRe = /^export\s+default\s+(?!function|class)(\w+)/gm;
193
+ while ((m = defaultRe.exec(content)) !== null) {
194
+ if (!details.find((d) => d.isDefault)) {
195
+ details.push({ name: m[1], type: 'default', async: false, params: [], isDefault: true });
196
+ }
197
+ }
198
+ return details;
199
+ }
200
+ function parseJsTsFunctions(content) {
201
+ const functions = [];
202
+ // Named function declarations (not exports — those are in exports)
203
+ const funcDeclRe = /^(?:export\s+)?(?:export\s+default\s+)?(?:async\s+)?function\s*\*?\s*(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^\n{]+))?/gm;
204
+ let m;
205
+ const seen = new Set();
206
+ while ((m = funcDeclRe.exec(content)) !== null) {
207
+ const name = m[1];
208
+ if (seen.has(name))
209
+ continue;
210
+ seen.add(name);
211
+ const isAsync = m[0].includes('async ');
212
+ const rawParams = m[2];
213
+ const params = rawParams
214
+ .split(',')
215
+ .map((p) => p.trim().split(':')[0].trim().replace(/[?=].*$/, '').trim())
216
+ .filter(Boolean);
217
+ const returnType = m[3]?.trim().replace(/\s*\{$/, '') ?? '';
218
+ // Try to extract preceding JSDoc
219
+ const idx = content.indexOf(m[0]);
220
+ let docstring = '';
221
+ if (idx > 0) {
222
+ const before = content.substring(Math.max(0, idx - 500), idx);
223
+ const docMatch = /\/\*\*([\s\S]*?)\*\/\s*$/.exec(before);
224
+ if (docMatch) {
225
+ docstring = docMatch[1]
226
+ .replace(/^\s*\*\s?/gm, '')
227
+ .trim()
228
+ .split('\n')[0]
229
+ .trim();
230
+ }
231
+ }
232
+ functions.push({ name, params, returnType, async: isAsync, docstring });
233
+ }
234
+ // Arrow functions assigned to const/let/var
235
+ const arrowRe = /^(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=\s*(async\s+)?\(([^)]*)\)\s*(?::\s*([^\n=>]+))?\s*=>/gm;
236
+ while ((m = arrowRe.exec(content)) !== null) {
237
+ const name = m[1];
238
+ if (seen.has(name))
239
+ continue;
240
+ seen.add(name);
241
+ const isAsync = !!m[2];
242
+ const rawParams = m[3];
243
+ const params = rawParams
244
+ .split(',')
245
+ .map((p) => p.trim().split(':')[0].trim().replace(/[?=].*$/, '').trim())
246
+ .filter(Boolean);
247
+ const returnType = m[4]?.trim() ?? '';
248
+ functions.push({ name, params, returnType, async: isAsync, docstring: '' });
249
+ }
250
+ return functions.slice(0, 30);
251
+ }
252
+ function calcComplexity(content) {
253
+ // Simplified cyclomatic: 1 + count of branches
254
+ let score = 1;
255
+ const patterns = [
256
+ /\bif\s*\(/g,
257
+ /\belse\s+if\s*\(/g,
258
+ /\bfor\s*\(/g,
259
+ /\bwhile\s*\(/g,
260
+ /\bdo\s*\{/g,
261
+ /\bcase\s+[^:]+:/g,
262
+ /\bcatch\s*\(/g,
263
+ /\?\s*[^:]/g, // ternary
264
+ /&&/g,
265
+ /\|\|/g,
266
+ ];
267
+ for (const re of patterns) {
268
+ const matches = content.match(re);
269
+ if (matches)
270
+ score += matches.length;
271
+ }
272
+ return score;
273
+ }
274
+ // ─── Language-specific parsers ────────────────────────────────────────────────
275
+ function analyzeJsTsDeep(content, filePath) {
276
+ return {
277
+ importDetails: parseJsTsImports(content),
278
+ exportDetails: parseJsTsExports(content),
279
+ functions: parseJsTsFunctions(content),
280
+ complexity: calcComplexity(content),
281
+ };
282
+ }
283
+ function analyzePythonDeep(content) {
284
+ const importDetails = [];
285
+ // from X import a, b, c
286
+ const fromRe = /^from\s+(\S+)\s+import\s+(.+)/gm;
287
+ let m;
288
+ while ((m = fromRe.exec(content)) !== null) {
289
+ const source = m[1];
290
+ const symbols = m[2]
291
+ .replace(/\(|\)/g, '')
292
+ .split(',')
293
+ .map((s) => s.trim().split(/\s+as\s+/).pop())
294
+ .filter(Boolean);
295
+ importDetails.push({
296
+ source,
297
+ symbols,
298
+ type: 'named',
299
+ isExternal: !source.startsWith('.'),
300
+ });
301
+ }
302
+ // import X [as Y]
303
+ const importRe = /^import\s+(.+)/gm;
304
+ while ((m = importRe.exec(content)) !== null) {
305
+ const parts = m[1].split(',').map((s) => s.trim());
306
+ for (const part of parts) {
307
+ const source = part.split(/\s+as\s+/)[0].trim();
308
+ const alias = part.split(/\s+as\s+/)[1]?.trim();
309
+ importDetails.push({
310
+ source,
311
+ symbols: alias ? [alias] : [source],
312
+ type: 'default',
313
+ isExternal: !source.startsWith('.'),
314
+ });
315
+ }
316
+ }
317
+ // Public functions/classes = exports
318
+ const exportDetails = [];
319
+ const defRe = /^(def|class)\s+([A-Z_][A-Za-z0-9_]*)/gm;
320
+ while ((m = defRe.exec(content)) !== null) {
321
+ exportDetails.push({
322
+ name: m[2],
323
+ type: m[1] === 'class' ? 'class' : 'function',
324
+ async: m[0].includes('async'),
325
+ params: [],
326
+ isDefault: false,
327
+ });
328
+ }
329
+ const functions = [];
330
+ const fnRe = /^(?:async\s+)?def\s+(\w+)\s*\(([^)]*)\)/gm;
331
+ while ((m = fnRe.exec(content)) !== null) {
332
+ if (!m[1].startsWith('_')) {
333
+ functions.push({
334
+ name: m[1],
335
+ params: m[2].split(',').map((s) => s.trim().split(':')[0].trim().replace(/=.*$/, '').trim()).filter(Boolean),
336
+ returnType: '',
337
+ async: m[0].includes('async'),
338
+ docstring: '',
339
+ });
340
+ }
341
+ }
342
+ return { importDetails, exportDetails, functions, complexity: calcComplexity(content) };
343
+ }
344
+ function analyzeGoDeep(content) {
345
+ const importDetails = [];
346
+ // Block imports
347
+ const blockRe = /import\s+\(([\s\S]*?)\)/gm;
348
+ let m;
349
+ while ((m = blockRe.exec(content)) !== null) {
350
+ const lineRe = /(?:(\w+)\s+)?"([^"]+)"/g;
351
+ let lm;
352
+ while ((lm = lineRe.exec(m[1])) !== null) {
353
+ importDetails.push({
354
+ source: lm[2],
355
+ symbols: lm[1] ? [lm[1]] : [],
356
+ type: lm[1] ? 'default' : 'side-effect',
357
+ isExternal: !lm[2].startsWith('./') && !lm[2].startsWith('../'),
358
+ });
359
+ }
360
+ }
361
+ // Single imports
362
+ const singleRe = /^import\s+(?:(\w+)\s+)?"([^"]+)"/gm;
363
+ while ((m = singleRe.exec(content)) !== null) {
364
+ importDetails.push({
365
+ source: m[2],
366
+ symbols: m[1] ? [m[1]] : [],
367
+ type: m[1] ? 'default' : 'side-effect',
368
+ isExternal: !m[2].startsWith('./') && !m[2].startsWith('../'),
369
+ });
370
+ }
371
+ const exportDetails = [];
372
+ const funcRe = /^func\s+(?:\([^)]+\)\s+)?([A-Z]\w*)\s*\(([^)]*)\)/gm;
373
+ while ((m = funcRe.exec(content)) !== null) {
374
+ exportDetails.push({
375
+ name: m[1],
376
+ type: 'function',
377
+ async: false,
378
+ params: m[2].split(',').map((s) => s.trim().split(/\s+/)[0]).filter(Boolean),
379
+ isDefault: false,
380
+ });
381
+ }
382
+ const typeRe = /^type\s+([A-Z]\w*)\s+(?:struct|interface)/gm;
383
+ while ((m = typeRe.exec(content)) !== null) {
384
+ exportDetails.push({ name: m[1], type: 'type', async: false, params: [], isDefault: false });
385
+ }
386
+ const functions = [];
387
+ const allFuncRe = /^func\s+(?:\([^)]+\)\s+)?(\w+)\s*\(([^)]*)\)(?:\s*([^{]+))?/gm;
388
+ while ((m = allFuncRe.exec(content)) !== null) {
389
+ functions.push({
390
+ name: m[1],
391
+ params: m[2].split(',').map((s) => s.trim().split(/\s+/)[0]).filter(Boolean),
392
+ returnType: m[3]?.trim() ?? '',
393
+ async: false,
394
+ docstring: '',
395
+ });
396
+ }
397
+ return { importDetails, exportDetails, functions: functions.slice(0, 20), complexity: calcComplexity(content) };
398
+ }
399
+ function analyzeRustDeep(content) {
400
+ const importDetails = [];
401
+ const useRe = /^use\s+([\w:]+)(?:::\{([^}]+)\})?/gm;
402
+ let m;
403
+ while ((m = useRe.exec(content)) !== null) {
404
+ const source = m[1];
405
+ if (m[2]) {
406
+ const symbols = m[2].split(',').map((s) => s.trim()).filter(Boolean);
407
+ importDetails.push({ source, symbols, type: 'named', isExternal: !source.startsWith('crate') && !source.startsWith('self') && !source.startsWith('super') });
408
+ }
409
+ else {
410
+ const parts = source.split('::');
411
+ importDetails.push({ source, symbols: [parts[parts.length - 1]], type: 'named', isExternal: !source.startsWith('crate') });
412
+ }
413
+ }
414
+ const exportDetails = [];
415
+ const pubFnRe = /^pub\s+(?:async\s+)?fn\s+(\w+)\s*\(([^)]*)\)/gm;
416
+ while ((m = pubFnRe.exec(content)) !== null) {
417
+ exportDetails.push({
418
+ name: m[1],
419
+ type: 'function',
420
+ async: m[0].includes('async'),
421
+ params: m[2].split(',').map((s) => s.trim().split(':')[0].trim()).filter(Boolean),
422
+ isDefault: false,
423
+ });
424
+ }
425
+ const pubStructRe = /^pub\s+(struct|enum|trait|type)\s+(\w+)/gm;
426
+ while ((m = pubStructRe.exec(content)) !== null) {
427
+ exportDetails.push({
428
+ name: m[2],
429
+ type: m[1] === 'struct' || m[1] === 'trait' ? 'type' : m[1],
430
+ async: false,
431
+ params: [],
432
+ isDefault: false,
433
+ });
434
+ }
435
+ const functions = [];
436
+ const fnRe = /^(?:pub\s+)?(?:async\s+)?fn\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^\n{]+))?/gm;
437
+ while ((m = fnRe.exec(content)) !== null) {
438
+ functions.push({
439
+ name: m[1],
440
+ params: m[2].split(',').map((s) => s.trim().split(':')[0].trim()).filter(Boolean),
441
+ returnType: m[3]?.trim() ?? '',
442
+ async: m[0].includes('async'),
443
+ docstring: '',
444
+ });
445
+ }
446
+ return { importDetails, exportDetails, functions: functions.slice(0, 20), complexity: calcComplexity(content) };
447
+ }
448
+ // ─── WASM-based analysis ──────────────────────────────────────────────────────
449
+ function analyzeWithWasm(content, filePath) {
450
+ if (!wasmReady || !WasmParser)
451
+ return null;
452
+ try {
453
+ const ext = path.extname(filePath).toLowerCase();
454
+ let grammarKey = '';
455
+ if (ext === '.js' || ext === '.mjs' || ext === '.cjs' || ext === '.jsx')
456
+ grammarKey = 'tree-sitter-javascript';
457
+ else if (ext === '.ts')
458
+ grammarKey = 'tree-sitter-typescript';
459
+ else if (ext === '.tsx')
460
+ grammarKey = 'tree-sitter-tsx';
461
+ else if (ext === '.py')
462
+ grammarKey = 'tree-sitter-python';
463
+ else if (ext === '.go')
464
+ grammarKey = 'tree-sitter-go';
465
+ else if (ext === '.rs')
466
+ grammarKey = 'tree-sitter-rust';
467
+ const language = wasmLanguages[grammarKey];
468
+ if (!language)
469
+ return null;
470
+ const parser = new WasmParser();
471
+ parser.setLanguage(language);
472
+ const tree = parser.parse(content);
473
+ // Use AST to extract more precise info, then supplement with regex
474
+ // For now, use regex extraction (WASM parse validates syntax)
475
+ const baseAnalysis = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext)
476
+ ? analyzeJsTsDeep(content, filePath)
477
+ : ext === '.py'
478
+ ? analyzePythonDeep(content)
479
+ : ext === '.go'
480
+ ? analyzeGoDeep(content)
481
+ : analyzeRustDeep(content);
482
+ // Cleanup parser
483
+ parser.delete();
484
+ tree.delete();
485
+ return baseAnalysis;
486
+ }
487
+ catch {
488
+ return null;
489
+ }
490
+ }
491
+ // ─── Main export ──────────────────────────────────────────────────────────────
492
+ export function analyzeFileDeep(filePath, content) {
493
+ const ext = path.extname(filePath).toLowerCase();
494
+ const lines = content.split('\n').length;
495
+ const langMap = {
496
+ '.ts': 'typescript',
497
+ '.tsx': 'typescript',
498
+ '.js': 'javascript',
499
+ '.jsx': 'javascript',
500
+ '.mjs': 'javascript',
501
+ '.cjs': 'javascript',
502
+ '.py': 'python',
503
+ '.go': 'go',
504
+ '.rs': 'rust',
505
+ };
506
+ const language = langMap[ext] ?? 'unknown';
507
+ // Try WASM first (syntax-aware), fall back to enhanced regex
508
+ const wasmResult = analyzeWithWasm(content, filePath);
509
+ if (wasmResult) {
510
+ return { ...wasmResult, lines, language };
511
+ }
512
+ // Enhanced regex fallback by language
513
+ let base;
514
+ if (['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext)) {
515
+ base = analyzeJsTsDeep(content, filePath);
516
+ }
517
+ else if (ext === '.py') {
518
+ base = analyzePythonDeep(content);
519
+ }
520
+ else if (ext === '.go') {
521
+ base = analyzeGoDeep(content);
522
+ }
523
+ else if (ext === '.rs') {
524
+ base = analyzeRustDeep(content);
525
+ }
526
+ else {
527
+ base = { importDetails: [], exportDetails: [], functions: [], complexity: 1 };
528
+ }
529
+ return { ...base, lines, language };
530
+ }
531
+ //# sourceMappingURL=tree-sitter-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/tree-sitter-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface InitOptions {
2
+ deep: boolean;
3
+ path: string;
4
+ }
5
+ export declare function runInit(options: InitOptions): Promise<void>;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA6EA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAeD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJjE"}