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,27 @@
1
+ import type { ScannedFile } from '../scanner/file-scanner.js';
2
+ import { isWasmAvailable, type ImportDetail, type ExportDetail, type FunctionDetail } from './tree-sitter-analyzer.js';
3
+ export type { ImportDetail, ExportDetail, FunctionDetail };
4
+ export interface FileAnalysis {
5
+ path: string;
6
+ relativePath: string;
7
+ type: string;
8
+ language: string;
9
+ /** Simple string list — backward-compatible with map-json / module detection */
10
+ imports: string[];
11
+ /** Simple string list — backward-compatible */
12
+ exports: string[];
13
+ /** Enriched import details from deep analysis */
14
+ importDetails: ImportDetail[];
15
+ /** Enriched export details from deep analysis */
16
+ exportDetails: ExportDetail[];
17
+ /** Top-level functions / methods */
18
+ functions: FunctionDetail[];
19
+ /** Simplified cyclomatic complexity */
20
+ complexity: number;
21
+ /** Line count */
22
+ lines: number;
23
+ }
24
+ export declare function initAnalyzer(): Promise<void>;
25
+ export declare function analyzeFiles(files: ScannedFile[]): FileAnalysis[];
26
+ export { isWasmAvailable };
27
+ //# sourceMappingURL=imports-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/imports-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAGL,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iDAAiD;IACjD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iDAAiD;IACjD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,oCAAoC;IACpC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAoBD,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAKlD;AAoCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAOjE;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,74 @@
1
+ import fs from 'fs';
2
+ import { analyzeFileDeep, initTreeSitterWasm, isWasmAvailable, } from './tree-sitter-analyzer.js';
3
+ // ─── File-type classifier ─────────────────────────────────────────────────────
4
+ function classifyType(relativePath, content) {
5
+ if (/page\.(tsx?|jsx?)$/.test(relativePath))
6
+ return 'page';
7
+ if (/layout\.(tsx?|jsx?)$/.test(relativePath))
8
+ return 'layout';
9
+ if (/\/(components?|ui)\//.test(relativePath))
10
+ return 'component';
11
+ if (/\/(hooks?|use[A-Z])/.test(relativePath))
12
+ return 'hook';
13
+ if (/\/(lib|utils?|helpers?)\//.test(relativePath))
14
+ return 'utility';
15
+ if (/\/(api|routes?)\//.test(relativePath))
16
+ return 'api';
17
+ if (/\/(types?|interfaces?)\//.test(relativePath))
18
+ return 'types';
19
+ if (/\/(config|constants?)\//.test(relativePath) || /config\.(ts|js)$/.test(relativePath))
20
+ return 'config';
21
+ if (content.includes("'use client'") || content.includes('"use client"'))
22
+ return 'component';
23
+ if (/export\s+default/.test(content) && /\.(tsx|jsx)$/.test(relativePath))
24
+ return 'component';
25
+ return 'module';
26
+ }
27
+ // ─── Main entry points ────────────────────────────────────────────────────────
28
+ export async function initAnalyzer() {
29
+ const loaded = await initTreeSitterWasm();
30
+ if (!loaded) {
31
+ // Silent — graceful degradation to enhanced regex is automatic
32
+ }
33
+ }
34
+ function analyzeFile(file) {
35
+ let content;
36
+ try {
37
+ content = fs.readFileSync(file.path, 'utf-8');
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ if (content.includes('\0'))
43
+ return null; // skip binary
44
+ const deep = analyzeFileDeep(file.relativePath, content);
45
+ // Flatten importDetails → simple string list for backward compat
46
+ const imports = [...new Set(deep.importDetails.map((d) => d.source))];
47
+ // Flatten exportDetails → simple string list
48
+ const exports = deep.exportDetails.map((d) => d.name);
49
+ const type = classifyType(file.relativePath, content);
50
+ return {
51
+ path: file.path,
52
+ relativePath: file.relativePath,
53
+ type,
54
+ language: deep.language,
55
+ imports,
56
+ exports,
57
+ importDetails: deep.importDetails,
58
+ exportDetails: deep.exportDetails,
59
+ functions: deep.functions,
60
+ complexity: deep.complexity,
61
+ lines: deep.lines,
62
+ };
63
+ }
64
+ export function analyzeFiles(files) {
65
+ const results = [];
66
+ for (const file of files) {
67
+ const analysis = analyzeFile(file);
68
+ if (analysis)
69
+ results.push(analysis);
70
+ }
71
+ return results;
72
+ }
73
+ export { isWasmAvailable };
74
+ //# sourceMappingURL=imports-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/imports-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
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
+ export interface ImportDetail {
7
+ source: string;
8
+ symbols: string[];
9
+ type: 'named' | 'default' | 'namespace' | 'dynamic' | 'side-effect';
10
+ isExternal: boolean;
11
+ }
12
+ export interface ExportDetail {
13
+ name: string;
14
+ type: 'function' | 'class' | 'const' | 'let' | 'var' | 'type' | 'interface' | 'enum' | 'default';
15
+ async: boolean;
16
+ params: string[];
17
+ isDefault: boolean;
18
+ }
19
+ export interface FunctionDetail {
20
+ name: string;
21
+ params: string[];
22
+ returnType: string;
23
+ async: boolean;
24
+ docstring: string;
25
+ }
26
+ export interface DeepFileAnalysis {
27
+ importDetails: ImportDetail[];
28
+ exportDetails: ExportDetail[];
29
+ functions: FunctionDetail[];
30
+ complexity: number;
31
+ lines: number;
32
+ language: string;
33
+ }
34
+ export declare function initTreeSitterWasm(): Promise<boolean>;
35
+ export declare function isWasmAvailable(): boolean;
36
+ export declare function analyzeFileDeep(filePath: string, content: string): DeepFileAnalysis;
37
+ //# sourceMappingURL=tree-sitter-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/tree-sitter-analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACpE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IACjG,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwBD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAyC3D;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAwdD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAsCnF"}