monarch-code-graph 0.3.4 → 0.4.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 (49) hide show
  1. package/dist/cli.d.ts +0 -2
  2. package/dist/cli.js +2632 -96
  3. package/dist/index.d.ts +33 -6
  4. package/dist/index.js +1552 -7
  5. package/package.json +7 -5
  6. package/dist/cli.d.ts.map +0 -1
  7. package/dist/cli.js.map +0 -1
  8. package/dist/commands/analyze.d.ts +0 -8
  9. package/dist/commands/analyze.d.ts.map +0 -1
  10. package/dist/commands/analyze.js +0 -76
  11. package/dist/commands/analyze.js.map +0 -1
  12. package/dist/commands/diff.d.ts +0 -8
  13. package/dist/commands/diff.d.ts.map +0 -1
  14. package/dist/commands/diff.js +0 -203
  15. package/dist/commands/diff.js.map +0 -1
  16. package/dist/commands/graph.d.ts +0 -12
  17. package/dist/commands/graph.d.ts.map +0 -1
  18. package/dist/commands/graph.js +0 -72
  19. package/dist/commands/graph.js.map +0 -1
  20. package/dist/commands/help.d.ts +0 -2
  21. package/dist/commands/help.d.ts.map +0 -1
  22. package/dist/commands/help.js +0 -234
  23. package/dist/commands/help.js.map +0 -1
  24. package/dist/commands/init.d.ts +0 -6
  25. package/dist/commands/init.d.ts.map +0 -1
  26. package/dist/commands/init.js +0 -37
  27. package/dist/commands/init.js.map +0 -1
  28. package/dist/commands/list.d.ts +0 -7
  29. package/dist/commands/list.d.ts.map +0 -1
  30. package/dist/commands/list.js +0 -148
  31. package/dist/commands/list.js.map +0 -1
  32. package/dist/commands/run.d.ts +0 -10
  33. package/dist/commands/run.d.ts.map +0 -1
  34. package/dist/commands/run.js +0 -388
  35. package/dist/commands/run.js.map +0 -1
  36. package/dist/commands/serve.d.ts +0 -8
  37. package/dist/commands/serve.d.ts.map +0 -1
  38. package/dist/commands/serve.js +0 -137
  39. package/dist/commands/serve.js.map +0 -1
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js.map +0 -1
  42. package/dist/utils/ascii-graph.d.ts +0 -21
  43. package/dist/utils/ascii-graph.d.ts.map +0 -1
  44. package/dist/utils/ascii-graph.js +0 -431
  45. package/dist/utils/ascii-graph.js.map +0 -1
  46. package/dist/utils/output.d.ts +0 -12
  47. package/dist/utils/output.d.ts.map +0 -1
  48. package/dist/utils/output.js +0 -24
  49. package/dist/utils/output.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monarch-code-graph",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "CLI tool for Monarch - Static codebase flow mapping and visualization",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,7 +12,8 @@
12
12
  "dist"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc && node -e \"require('fs').cpSync('../analyzer/src/exporters/codeql/queries', 'dist/queries', {recursive: true})\"",
15
+ "build": "tsup",
16
+ "build:tsc": "tsc && node -e \"require('fs').cpSync('../analyzer/src/exporters/codeql/queries', 'dist/queries', {recursive: true})\"",
16
17
  "dev": "tsc --watch",
17
18
  "typecheck": "tsc --noEmit",
18
19
  "test": "vitest run",
@@ -38,14 +39,15 @@
38
39
  "url": "https://github.com/your-username/monarch.git"
39
40
  },
40
41
  "dependencies": {
41
- "@codeflow/shared": "workspace:*",
42
- "@codeflow/analyzer": "workspace:*",
43
- "commander": "^13.0.0",
44
42
  "chalk": "^5.4.1",
43
+ "commander": "^13.0.0",
45
44
  "ora": "^8.2.0"
46
45
  },
47
46
  "devDependencies": {
47
+ "@codeflow/analyzer": "workspace:*",
48
+ "@codeflow/shared": "workspace:*",
48
49
  "@types/node": "^22.10.5",
50
+ "tsup": "^8.5.1",
49
51
  "typescript": "^5.7.2",
50
52
  "vitest": "^4.0.17"
51
53
  },
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- interface AnalyzeOptions {
2
- output: string;
3
- exporter: string;
4
- watch: boolean;
5
- }
6
- export declare function analyzeCommand(targetPath: string, options: AnalyzeOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=analyze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
@@ -1,76 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import ora from 'ora';
4
- import { MockExporter, applyElkLayout } from '@codeflow/analyzer';
5
- import { log, formatPath, formatNumber } from '../utils/output.js';
6
- export async function analyzeCommand(targetPath, options) {
7
- const absolutePath = path.resolve(targetPath);
8
- if (!fs.existsSync(absolutePath)) {
9
- log.error(`Path does not exist: ${formatPath(absolutePath)}`);
10
- process.exit(1);
11
- }
12
- log.title('Monarch Analysis');
13
- log.info(`Target: ${formatPath(absolutePath)}`);
14
- log.info(`Exporter: ${options.exporter}`);
15
- log.info(`Output: ${formatPath(options.output)}`);
16
- const spinner = ora('Analyzing codebase...').start();
17
- try {
18
- let artifact;
19
- if (options.exporter === 'mock') {
20
- const exporter = new MockExporter(absolutePath);
21
- await exporter.prepare();
22
- spinner.text = 'Scanning files...';
23
- await exporter.analyze();
24
- spinner.text = 'Generating artifact...';
25
- artifact = await exporter.export();
26
- await exporter.cleanup();
27
- }
28
- else if (options.exporter === 'codeql-ts') {
29
- spinner.text = 'Creating CodeQL database...';
30
- // Dynamic import to avoid loading CodeQL dependencies if not needed
31
- const { CodeQLExporter } = await import('@codeflow/analyzer');
32
- const exporter = new CodeQLExporter(absolutePath);
33
- await exporter.prepare();
34
- spinner.text = 'Running CodeQL queries...';
35
- await exporter.analyze();
36
- spinner.text = 'Generating artifact...';
37
- artifact = await exporter.export();
38
- await exporter.cleanup();
39
- }
40
- else {
41
- spinner.fail(`Unknown exporter: ${options.exporter}`);
42
- process.exit(1);
43
- }
44
- // Apply layout
45
- spinner.text = 'Computing layout...';
46
- artifact = await applyElkLayout(artifact);
47
- // Ensure output directory exists
48
- const outputDir = path.dirname(path.resolve(options.output));
49
- if (!fs.existsSync(outputDir)) {
50
- fs.mkdirSync(outputDir, { recursive: true });
51
- }
52
- // Write artifact
53
- const outputPath = path.resolve(options.output);
54
- fs.writeFileSync(outputPath, JSON.stringify(artifact, null, 2));
55
- spinner.succeed('Analysis complete!');
56
- // Print summary
57
- console.log('');
58
- log.success(`Graph saved to ${formatPath(outputPath)}`);
59
- console.log('');
60
- log.info(`Functions: ${formatNumber(artifact.nodes.functions.length)}`);
61
- log.info(`Modules: ${formatNumber(artifact.nodes.modules.length)}`);
62
- log.info(`Components: ${formatNumber(artifact.nodes.components.length)}`);
63
- log.info(`Call edges: ${formatNumber(artifact.edges.calls.length)}`);
64
- log.info(`Dataflow: ${formatNumber(artifact.edges.dataflow.length)}`);
65
- if (options.watch) {
66
- log.info('\nWatching for changes... (press Ctrl+C to stop)');
67
- // TODO: Implement file watching
68
- }
69
- }
70
- catch (error) {
71
- spinner.fail('Analysis failed');
72
- log.error(String(error));
73
- process.exit(1);
74
- }
75
- }
76
- //# sourceMappingURL=analyze.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- interface DiffOptions {
2
- format: 'text' | 'json' | 'markdown';
3
- exitOnChanges: boolean;
4
- only?: 'functions' | 'modules' | 'edges';
5
- }
6
- export declare function diffCommand(baselinePath: string, currentPath: string, options: DiffOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAMA,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;CAC1C;AA0BD,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -1,203 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import chalk from 'chalk';
4
- import { isCodeFlowArtifact } from '@codeflow/shared';
5
- import { log, formatPath, formatDiff } from '../utils/output.js';
6
- export async function diffCommand(baselinePath, currentPath, options) {
7
- const baseline = loadArtifact(baselinePath, 'Baseline');
8
- const current = loadArtifact(currentPath, 'Current');
9
- if (!baseline || !current) {
10
- process.exit(1);
11
- }
12
- const diff = calculateDiff(baseline, current);
13
- switch (options.format) {
14
- case 'json':
15
- console.log(JSON.stringify(diff, null, 2));
16
- break;
17
- case 'markdown':
18
- printMarkdownDiff(diff, baselinePath, currentPath, options.only);
19
- break;
20
- default:
21
- printTextDiff(diff, baselinePath, currentPath, options.only);
22
- }
23
- if (options.exitOnChanges && diff.hasChanges) {
24
- process.exit(1);
25
- }
26
- }
27
- function loadArtifact(filePath, label) {
28
- const absolutePath = path.resolve(filePath);
29
- if (!fs.existsSync(absolutePath)) {
30
- log.error(`${label} artifact not found: ${formatPath(absolutePath)}`);
31
- return null;
32
- }
33
- try {
34
- const content = fs.readFileSync(absolutePath, 'utf-8');
35
- const artifact = JSON.parse(content);
36
- if (!isCodeFlowArtifact(artifact)) {
37
- log.error(`${label} file is not a valid Monarch artifact`);
38
- return null;
39
- }
40
- return artifact;
41
- }
42
- catch (error) {
43
- log.error(`Failed to parse ${label} artifact: ${error}`);
44
- return null;
45
- }
46
- }
47
- function calculateDiff(baseline, current) {
48
- const baselineFnIds = new Set(baseline.nodes.functions.map((fn) => fn.id));
49
- const currentFnIds = new Set(current.nodes.functions.map((fn) => fn.id));
50
- const addedFunctions = current.nodes.functions
51
- .filter((fn) => !baselineFnIds.has(fn.id))
52
- .map((fn) => `${fn.name} (${fn.file}:${fn.startLine})`);
53
- const removedFunctions = baseline.nodes.functions
54
- .filter((fn) => !currentFnIds.has(fn.id))
55
- .map((fn) => `${fn.name} (${fn.file}:${fn.startLine})`);
56
- const baselineModIds = new Set(baseline.nodes.modules.map((m) => m.id));
57
- const currentModIds = new Set(current.nodes.modules.map((m) => m.id));
58
- const addedModules = current.nodes.modules
59
- .filter((m) => !baselineModIds.has(m.id))
60
- .map((m) => m.path);
61
- const removedModules = baseline.nodes.modules
62
- .filter((m) => !currentModIds.has(m.id))
63
- .map((m) => m.path);
64
- const edgeKey = (e) => `${e.from}->${e.to}`;
65
- const baselineCallEdges = new Set(baseline.edges.calls.map(edgeKey));
66
- const currentCallEdges = new Set(current.edges.calls.map(edgeKey));
67
- const addedCallEdges = current.edges.calls
68
- .filter((e) => !baselineCallEdges.has(edgeKey(e)))
69
- .map((e) => formatEdge(e, current));
70
- const removedCallEdges = baseline.edges.calls
71
- .filter((e) => !currentCallEdges.has(edgeKey(e)))
72
- .map((e) => formatEdge(e, baseline));
73
- const baselineDataflowEdges = new Set(baseline.edges.dataflow.map(edgeKey));
74
- const currentDataflowEdges = new Set(current.edges.dataflow.map(edgeKey));
75
- const addedDataflowEdges = current.edges.dataflow
76
- .filter((e) => !baselineDataflowEdges.has(edgeKey(e)))
77
- .map((e) => formatEdge(e, current));
78
- const removedDataflowEdges = baseline.edges.dataflow
79
- .filter((e) => !currentDataflowEdges.has(edgeKey(e)))
80
- .map((e) => formatEdge(e, baseline));
81
- const hasChanges = addedFunctions.length > 0 ||
82
- removedFunctions.length > 0 ||
83
- addedModules.length > 0 ||
84
- removedModules.length > 0 ||
85
- addedCallEdges.length > 0 ||
86
- removedCallEdges.length > 0 ||
87
- addedDataflowEdges.length > 0 ||
88
- removedDataflowEdges.length > 0;
89
- return {
90
- hasChanges,
91
- summary: {
92
- functionsAdded: addedFunctions.length,
93
- functionsRemoved: removedFunctions.length,
94
- modulesAdded: addedModules.length,
95
- modulesRemoved: removedModules.length,
96
- callEdgesAdded: addedCallEdges.length,
97
- callEdgesRemoved: removedCallEdges.length,
98
- dataflowEdgesAdded: addedDataflowEdges.length,
99
- dataflowEdgesRemoved: removedDataflowEdges.length,
100
- },
101
- details: {
102
- addedFunctions,
103
- removedFunctions,
104
- addedModules,
105
- removedModules,
106
- addedCallEdges,
107
- removedCallEdges,
108
- addedDataflowEdges,
109
- removedDataflowEdges,
110
- },
111
- };
112
- }
113
- function formatEdge(edge, artifact) {
114
- const fromFn = artifact.nodes.functions.find((fn) => fn.id === edge.from);
115
- const toFn = artifact.nodes.functions.find((fn) => fn.id === edge.to);
116
- return `${fromFn?.name || edge.from} → ${toFn?.name || edge.to}`;
117
- }
118
- function printTextDiff(diff, baselinePath, currentPath, only) {
119
- log.title('Monarch Graph Diff');
120
- console.log(chalk.dim(`Baseline: ${baselinePath}`));
121
- console.log(chalk.dim(`Current: ${currentPath}`));
122
- console.log('');
123
- if (!diff.hasChanges) {
124
- log.success('No changes detected');
125
- return;
126
- }
127
- console.log(chalk.bold('Summary:'));
128
- if (!only || only === 'functions') {
129
- console.log(` Functions: ${formatDiff(diff.summary.functionsAdded, diff.summary.functionsRemoved)}`);
130
- }
131
- if (!only || only === 'modules') {
132
- console.log(` Modules: ${formatDiff(diff.summary.modulesAdded, diff.summary.modulesRemoved)}`);
133
- }
134
- if (!only || only === 'edges') {
135
- console.log(` Call Edges: ${formatDiff(diff.summary.callEdgesAdded, diff.summary.callEdgesRemoved)}`);
136
- console.log(` Dataflow Edges: ${formatDiff(diff.summary.dataflowEdgesAdded, diff.summary.dataflowEdgesRemoved)}`);
137
- }
138
- console.log('');
139
- if ((!only || only === 'functions') && diff.details.addedFunctions.length > 0) {
140
- console.log(chalk.green.bold('Added Functions:'));
141
- diff.details.addedFunctions.forEach((fn) => console.log(chalk.green(` + ${fn}`)));
142
- console.log('');
143
- }
144
- if ((!only || only === 'functions') && diff.details.removedFunctions.length > 0) {
145
- console.log(chalk.red.bold('Removed Functions:'));
146
- diff.details.removedFunctions.forEach((fn) => console.log(chalk.red(` - ${fn}`)));
147
- console.log('');
148
- }
149
- if ((!only || only === 'modules') && diff.details.addedModules.length > 0) {
150
- console.log(chalk.green.bold('Added Modules:'));
151
- diff.details.addedModules.forEach((m) => console.log(chalk.green(` + ${m}`)));
152
- console.log('');
153
- }
154
- if ((!only || only === 'modules') && diff.details.removedModules.length > 0) {
155
- console.log(chalk.red.bold('Removed Modules:'));
156
- diff.details.removedModules.forEach((m) => console.log(chalk.red(` - ${m}`)));
157
- console.log('');
158
- }
159
- if ((!only || only === 'edges') && diff.details.addedCallEdges.length > 0) {
160
- console.log(chalk.green.bold('Added Call Edges:'));
161
- diff.details.addedCallEdges.forEach((e) => console.log(chalk.green(` + ${e}`)));
162
- console.log('');
163
- }
164
- if ((!only || only === 'edges') && diff.details.removedCallEdges.length > 0) {
165
- console.log(chalk.red.bold('Removed Call Edges:'));
166
- diff.details.removedCallEdges.forEach((e) => console.log(chalk.red(` - ${e}`)));
167
- console.log('');
168
- }
169
- }
170
- function printMarkdownDiff(diff, baselinePath, currentPath, only) {
171
- console.log('# Monarch Graph Diff\n');
172
- console.log(`- **Baseline:** \`${baselinePath}\``);
173
- console.log(`- **Current:** \`${currentPath}\`\n`);
174
- if (!diff.hasChanges) {
175
- console.log('✅ No changes detected\n');
176
- return;
177
- }
178
- console.log('## Summary\n');
179
- console.log('| Category | Added | Removed |');
180
- console.log('|----------|-------|---------|');
181
- if (!only || only === 'functions') {
182
- console.log(`| Functions | ${diff.summary.functionsAdded} | ${diff.summary.functionsRemoved} |`);
183
- }
184
- if (!only || only === 'modules') {
185
- console.log(`| Modules | ${diff.summary.modulesAdded} | ${diff.summary.modulesRemoved} |`);
186
- }
187
- if (!only || only === 'edges') {
188
- console.log(`| Call Edges | ${diff.summary.callEdgesAdded} | ${diff.summary.callEdgesRemoved} |`);
189
- console.log(`| Dataflow Edges | ${diff.summary.dataflowEdgesAdded} | ${diff.summary.dataflowEdgesRemoved} |`);
190
- }
191
- console.log('');
192
- if ((!only || only === 'functions') && diff.details.addedFunctions.length > 0) {
193
- console.log('### Added Functions\n');
194
- diff.details.addedFunctions.forEach((fn) => console.log(`- \`${fn}\``));
195
- console.log('');
196
- }
197
- if ((!only || only === 'functions') && diff.details.removedFunctions.length > 0) {
198
- console.log('### Removed Functions\n');
199
- diff.details.removedFunctions.forEach((fn) => console.log(`- \`${fn}\``));
200
- console.log('');
201
- }
202
- }
203
- //# sourceMappingURL=diff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { type ViewLevel } from '../utils/ascii-graph.js';
2
- interface GraphOptions {
3
- level: ViewLevel;
4
- expand?: string;
5
- expandType?: 'component' | 'module';
6
- list: boolean;
7
- noColor: boolean;
8
- width?: string;
9
- }
10
- export declare function graphCommand(artifactPath: string, options: GraphOptions): Promise<void>;
11
- export {};
12
- //# sourceMappingURL=graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AAEjC,UAAU,YAAY;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CA4Df"}
@@ -1,72 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { isCodeFlowArtifact } from '@codeflow/shared';
4
- import { log, formatPath } from '../utils/output.js';
5
- import { renderAsciiGraph, renderExpandedView, listExpandableItems, } from '../utils/ascii-graph.js';
6
- export async function graphCommand(artifactPath, options) {
7
- const absolutePath = path.resolve(artifactPath);
8
- // Load artifact
9
- if (!fs.existsSync(absolutePath)) {
10
- log.error(`Artifact not found: ${formatPath(absolutePath)}`);
11
- log.info('Run `monarch analyze` or `monarch run` first to generate a graph');
12
- process.exit(1);
13
- }
14
- let artifact;
15
- try {
16
- const content = fs.readFileSync(absolutePath, 'utf-8');
17
- artifact = JSON.parse(content);
18
- if (!isCodeFlowArtifact(artifact)) {
19
- log.error('Invalid artifact file');
20
- process.exit(1);
21
- }
22
- }
23
- catch (error) {
24
- log.error(`Failed to read artifact: ${error}`);
25
- process.exit(1);
26
- }
27
- const maxWidth = options.width ? parseInt(options.width, 10) : process.stdout.columns || 80;
28
- const colorize = !options.noColor;
29
- // List mode - show expandable items
30
- if (options.list) {
31
- console.log(listExpandableItems(artifact));
32
- return;
33
- }
34
- // Expand mode - show specific component or module
35
- if (options.expand) {
36
- const expandType = options.expandType || detectExpandType(artifact, options.expand);
37
- if (!expandType) {
38
- log.error(`Could not find "${options.expand}" as a component or module.`);
39
- log.info('Use --list to see available components and modules.');
40
- process.exit(1);
41
- }
42
- const output = renderExpandedView(artifact, options.expand, expandType, {
43
- maxWidth,
44
- colorize,
45
- showEdgeCounts: true,
46
- });
47
- console.log(output);
48
- return;
49
- }
50
- // Default mode - show graph at specified level
51
- const output = renderAsciiGraph(artifact, options.level, {
52
- maxWidth,
53
- colorize,
54
- showEdgeCounts: true,
55
- });
56
- console.log(output);
57
- }
58
- /**
59
- * Try to detect if the given name is a component or module
60
- */
61
- function detectExpandType(artifact, name) {
62
- // Check components first
63
- const component = artifact.nodes.components.find((c) => c.name === name || c.id === name);
64
- if (component)
65
- return 'component';
66
- // Check modules
67
- const module = artifact.nodes.modules.find((m) => m.path === name || m.id === name || m.path.endsWith(name));
68
- if (module)
69
- return 'module';
70
- return null;
71
- }
72
- //# sourceMappingURL=graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function helpCommand(command?: string): void;
2
- //# sourceMappingURL=help.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AA2IA,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAUlD"}