camouf 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.
- package/LICENSE +21 -0
- package/README.md +346 -0
- package/dist/cli/commands/analyze.d.ts +8 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +81 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +104 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/report.d.ts +8 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +63 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +9 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +87 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +9 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +93 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +48 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/version.d.ts +16 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +16 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/core/analyzer/architecture-visualizer.d.ts +25 -0
- package/dist/core/analyzer/architecture-visualizer.d.ts.map +1 -0
- package/dist/core/analyzer/architecture-visualizer.js +333 -0
- package/dist/core/analyzer/architecture-visualizer.js.map +1 -0
- package/dist/core/analyzer/dependency-analyzer.d.ts +49 -0
- package/dist/core/analyzer/dependency-analyzer.d.ts.map +1 -0
- package/dist/core/analyzer/dependency-analyzer.js +242 -0
- package/dist/core/analyzer/dependency-analyzer.js.map +1 -0
- package/dist/core/config/config-schema.d.ts +280 -0
- package/dist/core/config/config-schema.d.ts.map +1 -0
- package/dist/core/config/config-schema.js +199 -0
- package/dist/core/config/config-schema.js.map +1 -0
- package/dist/core/config/configuration-manager.d.ts +82 -0
- package/dist/core/config/configuration-manager.d.ts.map +1 -0
- package/dist/core/config/configuration-manager.js +306 -0
- package/dist/core/config/configuration-manager.js.map +1 -0
- package/dist/core/logger.d.ts +27 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +86 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/parsers/go-parser.d.ts +16 -0
- package/dist/core/parsers/go-parser.d.ts.map +1 -0
- package/dist/core/parsers/go-parser.js +117 -0
- package/dist/core/parsers/go-parser.js.map +1 -0
- package/dist/core/parsers/java-parser.d.ts +22 -0
- package/dist/core/parsers/java-parser.d.ts.map +1 -0
- package/dist/core/parsers/java-parser.js +114 -0
- package/dist/core/parsers/java-parser.js.map +1 -0
- package/dist/core/parsers/javascript-parser.d.ts +14 -0
- package/dist/core/parsers/javascript-parser.d.ts.map +1 -0
- package/dist/core/parsers/javascript-parser.js +19 -0
- package/dist/core/parsers/javascript-parser.js.map +1 -0
- package/dist/core/parsers/parser-registry.d.ts +45 -0
- package/dist/core/parsers/parser-registry.d.ts.map +1 -0
- package/dist/core/parsers/parser-registry.js +121 -0
- package/dist/core/parsers/parser-registry.js.map +1 -0
- package/dist/core/parsers/parser.interface.d.ts +49 -0
- package/dist/core/parsers/parser.interface.d.ts.map +1 -0
- package/dist/core/parsers/parser.interface.js +7 -0
- package/dist/core/parsers/parser.interface.js.map +1 -0
- package/dist/core/parsers/python-parser.d.ts +22 -0
- package/dist/core/parsers/python-parser.d.ts.map +1 -0
- package/dist/core/parsers/python-parser.js +136 -0
- package/dist/core/parsers/python-parser.js.map +1 -0
- package/dist/core/parsers/rust-parser.d.ts +16 -0
- package/dist/core/parsers/rust-parser.d.ts.map +1 -0
- package/dist/core/parsers/rust-parser.js +176 -0
- package/dist/core/parsers/rust-parser.js.map +1 -0
- package/dist/core/parsers/typescript-parser.d.ts +29 -0
- package/dist/core/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/core/parsers/typescript-parser.js +251 -0
- package/dist/core/parsers/typescript-parser.js.map +1 -0
- package/dist/core/reporter/report-generator.d.ts +31 -0
- package/dist/core/reporter/report-generator.d.ts.map +1 -0
- package/dist/core/reporter/report-generator.js +417 -0
- package/dist/core/reporter/report-generator.js.map +1 -0
- package/dist/core/reporter/violation-reporter.d.ts +62 -0
- package/dist/core/reporter/violation-reporter.d.ts.map +1 -0
- package/dist/core/reporter/violation-reporter.js +265 -0
- package/dist/core/reporter/violation-reporter.js.map +1 -0
- package/dist/core/rules/builtin/api-versioning.rule.d.ts +28 -0
- package/dist/core/rules/builtin/api-versioning.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/api-versioning.rule.js +103 -0
- package/dist/core/rules/builtin/api-versioning.rule.js.map +1 -0
- package/dist/core/rules/builtin/circular-dependencies.rule.d.ts +26 -0
- package/dist/core/rules/builtin/circular-dependencies.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/circular-dependencies.rule.js +99 -0
- package/dist/core/rules/builtin/circular-dependencies.rule.js.map +1 -0
- package/dist/core/rules/builtin/data-flow-integrity.rule.d.ts +27 -0
- package/dist/core/rules/builtin/data-flow-integrity.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/data-flow-integrity.rule.js +111 -0
- package/dist/core/rules/builtin/data-flow-integrity.rule.js.map +1 -0
- package/dist/core/rules/builtin/ddd-boundaries.rule.d.ts +31 -0
- package/dist/core/rules/builtin/ddd-boundaries.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/ddd-boundaries.rule.js +141 -0
- package/dist/core/rules/builtin/ddd-boundaries.rule.js.map +1 -0
- package/dist/core/rules/builtin/distributed-transactions.rule.d.ts +27 -0
- package/dist/core/rules/builtin/distributed-transactions.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/distributed-transactions.rule.js +134 -0
- package/dist/core/rules/builtin/distributed-transactions.rule.js.map +1 -0
- package/dist/core/rules/builtin/index.d.ts +16 -0
- package/dist/core/rules/builtin/index.d.ts.map +1 -0
- package/dist/core/rules/builtin/index.js +16 -0
- package/dist/core/rules/builtin/index.js.map +1 -0
- package/dist/core/rules/builtin/layer-dependencies.rule.d.ts +30 -0
- package/dist/core/rules/builtin/layer-dependencies.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/layer-dependencies.rule.js +102 -0
- package/dist/core/rules/builtin/layer-dependencies.rule.js.map +1 -0
- package/dist/core/rules/builtin/performance-antipatterns.rule.d.ts +29 -0
- package/dist/core/rules/builtin/performance-antipatterns.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/performance-antipatterns.rule.js +148 -0
- package/dist/core/rules/builtin/performance-antipatterns.rule.js.map +1 -0
- package/dist/core/rules/builtin/resilience-patterns.rule.d.ts +29 -0
- package/dist/core/rules/builtin/resilience-patterns.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/resilience-patterns.rule.js +123 -0
- package/dist/core/rules/builtin/resilience-patterns.rule.js.map +1 -0
- package/dist/core/rules/builtin/security-context.rule.d.ts +32 -0
- package/dist/core/rules/builtin/security-context.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/security-context.rule.js +145 -0
- package/dist/core/rules/builtin/security-context.rule.js.map +1 -0
- package/dist/core/rules/builtin/type-safety.rule.d.ts +32 -0
- package/dist/core/rules/builtin/type-safety.rule.d.ts.map +1 -0
- package/dist/core/rules/builtin/type-safety.rule.js +175 -0
- package/dist/core/rules/builtin/type-safety.rule.js.map +1 -0
- package/dist/core/rules/rule-engine.d.ts +72 -0
- package/dist/core/rules/rule-engine.d.ts.map +1 -0
- package/dist/core/rules/rule-engine.js +225 -0
- package/dist/core/rules/rule-engine.js.map +1 -0
- package/dist/core/rules/rule.interface.d.ts +169 -0
- package/dist/core/rules/rule.interface.d.ts.map +1 -0
- package/dist/core/rules/rule.interface.js +38 -0
- package/dist/core/rules/rule.interface.js.map +1 -0
- package/dist/core/scanner/project-detector.d.ts +51 -0
- package/dist/core/scanner/project-detector.d.ts.map +1 -0
- package/dist/core/scanner/project-detector.js +310 -0
- package/dist/core/scanner/project-detector.js.map +1 -0
- package/dist/core/scanner/project-scanner.d.ts +101 -0
- package/dist/core/scanner/project-scanner.d.ts.map +1 -0
- package/dist/core/scanner/project-scanner.js +321 -0
- package/dist/core/scanner/project-scanner.js.map +1 -0
- package/dist/core/watcher/file-watcher.d.ts +48 -0
- package/dist/core/watcher/file-watcher.d.ts.map +1 -0
- package/dist/core/watcher/file-watcher.js +124 -0
- package/dist/core/watcher/file-watcher.js.map +1 -0
- package/dist/types/config.types.d.ts +163 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/config.types.js +36 -0
- package/dist/types/config.types.js.map +1 -0
- package/dist/types/core.types.d.ts +247 -0
- package/dist/types/core.types.d.ts.map +1 -0
- package/dist/types/core.types.js +7 -0
- package/dist/types/core.types.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Defines all configuration interfaces for Camouf.
|
|
5
|
+
*/
|
|
6
|
+
export interface CamoufConfig {
|
|
7
|
+
/** Project name */
|
|
8
|
+
name?: string;
|
|
9
|
+
/** Root directory of the project */
|
|
10
|
+
root: string;
|
|
11
|
+
/** Languages to analyze */
|
|
12
|
+
languages: SupportedLanguage[];
|
|
13
|
+
/** Architecture layer definitions */
|
|
14
|
+
layers: LayerConfig[];
|
|
15
|
+
/** Directory mappings */
|
|
16
|
+
directories: DirectoryConfig;
|
|
17
|
+
/** Rules configuration */
|
|
18
|
+
rules: RulesConfig;
|
|
19
|
+
/** Parser configurations */
|
|
20
|
+
parsers?: ParsersConfig;
|
|
21
|
+
/** File patterns to include/exclude */
|
|
22
|
+
patterns: PatternsConfig;
|
|
23
|
+
/** Output and reporting options */
|
|
24
|
+
output?: OutputConfig;
|
|
25
|
+
/** Advanced options */
|
|
26
|
+
advanced?: AdvancedConfig;
|
|
27
|
+
}
|
|
28
|
+
export type SupportedLanguage = 'typescript' | 'javascript' | 'python' | 'java' | 'go' | 'rust' | 'csharp' | 'kotlin';
|
|
29
|
+
export interface LayerConfig {
|
|
30
|
+
/** Layer name */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Layer type for predefined rules */
|
|
33
|
+
type: 'presentation' | 'application' | 'domain' | 'infrastructure' | 'shared' | 'custom';
|
|
34
|
+
/** Directories belonging to this layer */
|
|
35
|
+
directories: string[];
|
|
36
|
+
/** Allowed dependencies (other layer names) */
|
|
37
|
+
allowedDependencies: string[];
|
|
38
|
+
/** Forbidden dependencies (other layer names) */
|
|
39
|
+
forbiddenDependencies?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface DirectoryConfig {
|
|
42
|
+
/** Client/Frontend directories */
|
|
43
|
+
client: string[];
|
|
44
|
+
/** Server/Backend directories */
|
|
45
|
+
server: string[];
|
|
46
|
+
/** Shared/Common directories */
|
|
47
|
+
shared: string[];
|
|
48
|
+
/** Test directories */
|
|
49
|
+
tests?: string[];
|
|
50
|
+
/** Custom directory mappings */
|
|
51
|
+
custom?: Record<string, string[]>;
|
|
52
|
+
}
|
|
53
|
+
export interface RulesConfig {
|
|
54
|
+
/** Built-in rules configuration */
|
|
55
|
+
builtin: BuiltinRulesConfig;
|
|
56
|
+
/** Custom rules */
|
|
57
|
+
custom?: CustomRuleConfig[];
|
|
58
|
+
/** Global rule settings */
|
|
59
|
+
settings?: RuleSettings;
|
|
60
|
+
}
|
|
61
|
+
export interface BuiltinRulesConfig {
|
|
62
|
+
/** Layer dependency violations */
|
|
63
|
+
'layer-dependencies'?: RuleLevel;
|
|
64
|
+
/** Circular dependency detection */
|
|
65
|
+
'circular-dependencies'?: RuleLevel;
|
|
66
|
+
/** Data flow integrity */
|
|
67
|
+
'data-flow-integrity'?: RuleLevel;
|
|
68
|
+
/** Distributed transaction boundaries */
|
|
69
|
+
'distributed-transactions'?: RuleLevel;
|
|
70
|
+
/** API versioning evolution */
|
|
71
|
+
'api-versioning'?: RuleLevel;
|
|
72
|
+
/** Security context propagation */
|
|
73
|
+
'security-context'?: RuleLevel;
|
|
74
|
+
/** Performance anti-patterns */
|
|
75
|
+
'performance-antipatterns'?: RuleLevel;
|
|
76
|
+
/** Resilience pattern compliance */
|
|
77
|
+
'resilience-patterns'?: RuleLevel;
|
|
78
|
+
/** DDD boundaries */
|
|
79
|
+
'ddd-boundaries'?: RuleLevel;
|
|
80
|
+
/** Multi-language type safety */
|
|
81
|
+
'type-safety'?: RuleLevel;
|
|
82
|
+
}
|
|
83
|
+
export type RuleLevel = 'off' | 'warn' | 'error' | RuleLevelConfig;
|
|
84
|
+
export interface RuleLevelConfig {
|
|
85
|
+
level: 'off' | 'warn' | 'error';
|
|
86
|
+
options?: Record<string, unknown>;
|
|
87
|
+
}
|
|
88
|
+
export interface CustomRuleConfig {
|
|
89
|
+
/** Rule identifier */
|
|
90
|
+
id: string;
|
|
91
|
+
/** Rule name */
|
|
92
|
+
name: string;
|
|
93
|
+
/** Rule description */
|
|
94
|
+
description?: string;
|
|
95
|
+
/** Severity level */
|
|
96
|
+
level: 'warn' | 'error';
|
|
97
|
+
/** Rule implementation path (JS/TS file) */
|
|
98
|
+
path?: string;
|
|
99
|
+
/** Declarative rule definition */
|
|
100
|
+
declarative?: DeclarativeRule;
|
|
101
|
+
}
|
|
102
|
+
export interface DeclarativeRule {
|
|
103
|
+
/** Pattern type */
|
|
104
|
+
type: 'import' | 'dependency' | 'naming' | 'structure';
|
|
105
|
+
/** Pattern to match */
|
|
106
|
+
pattern: string;
|
|
107
|
+
/** Target files/directories */
|
|
108
|
+
target: string;
|
|
109
|
+
/** Action: allow or deny */
|
|
110
|
+
action: 'allow' | 'deny';
|
|
111
|
+
/** Message to show on violation */
|
|
112
|
+
message: string;
|
|
113
|
+
}
|
|
114
|
+
export interface RuleSettings {
|
|
115
|
+
/** Maximum circular dependency chain length to report */
|
|
116
|
+
maxCircularDepth?: number;
|
|
117
|
+
/** Patterns to exclude from rule checking */
|
|
118
|
+
excludePatterns?: string[];
|
|
119
|
+
}
|
|
120
|
+
export interface ParsersConfig {
|
|
121
|
+
/** TypeScript/JavaScript parser options */
|
|
122
|
+
typescript?: {
|
|
123
|
+
tsConfigPath?: string;
|
|
124
|
+
strict?: boolean;
|
|
125
|
+
};
|
|
126
|
+
/** Python parser options */
|
|
127
|
+
python?: {
|
|
128
|
+
version?: '2' | '3';
|
|
129
|
+
};
|
|
130
|
+
/** Java parser options */
|
|
131
|
+
java?: {
|
|
132
|
+
sourceVersion?: string;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface PatternsConfig {
|
|
136
|
+
/** File patterns to include */
|
|
137
|
+
include: string[];
|
|
138
|
+
/** File patterns to exclude */
|
|
139
|
+
exclude: string[];
|
|
140
|
+
}
|
|
141
|
+
export interface OutputConfig {
|
|
142
|
+
/** Report format */
|
|
143
|
+
format?: 'text' | 'json' | 'sarif' | 'html';
|
|
144
|
+
/** Output directory */
|
|
145
|
+
directory?: string;
|
|
146
|
+
/** Show code snippets */
|
|
147
|
+
showCode?: boolean;
|
|
148
|
+
}
|
|
149
|
+
export interface AdvancedConfig {
|
|
150
|
+
/** Enable caching */
|
|
151
|
+
cache?: boolean;
|
|
152
|
+
/** Cache directory */
|
|
153
|
+
cacheDirectory?: string;
|
|
154
|
+
/** Max parallel workers */
|
|
155
|
+
maxWorkers?: number;
|
|
156
|
+
/** Enable debug mode */
|
|
157
|
+
debug?: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Default configuration
|
|
161
|
+
*/
|
|
162
|
+
export declare const defaultConfig: Partial<CamoufConfig>;
|
|
163
|
+
//# sourceMappingURL=config.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Defines all configuration interfaces for Camouf.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Default configuration
|
|
8
|
+
*/
|
|
9
|
+
export const defaultConfig = {
|
|
10
|
+
languages: ['typescript', 'javascript'],
|
|
11
|
+
patterns: {
|
|
12
|
+
include: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
|
|
13
|
+
exclude: [
|
|
14
|
+
'**/node_modules/**',
|
|
15
|
+
'**/dist/**',
|
|
16
|
+
'**/build/**',
|
|
17
|
+
'**/.git/**',
|
|
18
|
+
'**/coverage/**',
|
|
19
|
+
'**/*.test.*',
|
|
20
|
+
'**/*.spec.*',
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
rules: {
|
|
24
|
+
builtin: {
|
|
25
|
+
'layer-dependencies': 'error',
|
|
26
|
+
'circular-dependencies': 'warn',
|
|
27
|
+
'performance-antipatterns': 'warn',
|
|
28
|
+
'type-safety': 'warn',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
advanced: {
|
|
32
|
+
cache: true,
|
|
33
|
+
maxWorkers: 4,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=config.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgOH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IACvC,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;QACvD,OAAO,EAAE;YACP,oBAAoB;YACpB,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,gBAAgB;YAChB,aAAa;YACb,aAAa;SACd;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,oBAAoB,EAAE,OAAO;YAC7B,uBAAuB,EAAE,MAAM;YAC/B,0BAA0B,EAAE,MAAM;YAClC,aAAa,EAAE,MAAM;SACtB;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC;KACd;CACF,CAAC"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Types
|
|
3
|
+
*
|
|
4
|
+
* Defines core interfaces used throughout Camouf.
|
|
5
|
+
*/
|
|
6
|
+
import type { SupportedLanguage } from './config.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Represents a file in the project
|
|
9
|
+
*/
|
|
10
|
+
export interface ProjectFile {
|
|
11
|
+
/** Absolute path to the file */
|
|
12
|
+
path: string;
|
|
13
|
+
/** Relative path from project root */
|
|
14
|
+
relativePath: string;
|
|
15
|
+
/** Programming language */
|
|
16
|
+
language: SupportedLanguage;
|
|
17
|
+
/** File extension */
|
|
18
|
+
extension: string;
|
|
19
|
+
/** Layer this file belongs to */
|
|
20
|
+
layer?: string;
|
|
21
|
+
/** Last modified timestamp */
|
|
22
|
+
lastModified: number;
|
|
23
|
+
/** File size in bytes */
|
|
24
|
+
size: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Represents a dependency between files
|
|
28
|
+
*/
|
|
29
|
+
export interface Dependency {
|
|
30
|
+
/** Source file path */
|
|
31
|
+
source: string;
|
|
32
|
+
/** Target file/module path */
|
|
33
|
+
target: string;
|
|
34
|
+
/** Type of import */
|
|
35
|
+
type: DependencyType;
|
|
36
|
+
/** Line number of the import statement */
|
|
37
|
+
line?: number;
|
|
38
|
+
/** Column number */
|
|
39
|
+
column?: number;
|
|
40
|
+
/** Imported symbols */
|
|
41
|
+
imports?: ImportedSymbol[];
|
|
42
|
+
/** Whether it's a dynamic import */
|
|
43
|
+
isDynamic?: boolean;
|
|
44
|
+
/** Whether it's a type-only import */
|
|
45
|
+
isTypeOnly?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export type DependencyType = 'import' | 'require' | 'dynamic-import' | 're-export' | 'side-effect' | 'type-import' | 'python-import' | 'java-import' | 'go-import' | 'rust-use';
|
|
48
|
+
/**
|
|
49
|
+
* Represents an imported symbol
|
|
50
|
+
*/
|
|
51
|
+
export interface ImportedSymbol {
|
|
52
|
+
/** Original name in the source module */
|
|
53
|
+
name: string;
|
|
54
|
+
/** Alias if renamed */
|
|
55
|
+
alias?: string;
|
|
56
|
+
/** Whether it's a default import */
|
|
57
|
+
isDefault?: boolean;
|
|
58
|
+
/** Whether it's a namespace import */
|
|
59
|
+
isNamespace?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Represents a violation of architecture rules
|
|
63
|
+
*/
|
|
64
|
+
export interface Violation {
|
|
65
|
+
/** Unique identifier for this violation instance */
|
|
66
|
+
id: string;
|
|
67
|
+
/** Rule that was violated */
|
|
68
|
+
ruleId: string;
|
|
69
|
+
/** Rule name */
|
|
70
|
+
ruleName: string;
|
|
71
|
+
/** Severity level */
|
|
72
|
+
severity: ViolationSeverity;
|
|
73
|
+
/** Violation message */
|
|
74
|
+
message: string;
|
|
75
|
+
/** Detailed description */
|
|
76
|
+
description?: string;
|
|
77
|
+
/** File where violation occurred */
|
|
78
|
+
file: string;
|
|
79
|
+
/** Line number */
|
|
80
|
+
line?: number;
|
|
81
|
+
/** Column number */
|
|
82
|
+
column?: number;
|
|
83
|
+
/** End line (for ranges) */
|
|
84
|
+
endLine?: number;
|
|
85
|
+
/** End column */
|
|
86
|
+
endColumn?: number;
|
|
87
|
+
/** Code snippet */
|
|
88
|
+
codeSnippet?: string;
|
|
89
|
+
/** Suggested fix */
|
|
90
|
+
suggestion?: string;
|
|
91
|
+
/** Whether auto-fix is available */
|
|
92
|
+
fixable?: boolean;
|
|
93
|
+
/** Fix function */
|
|
94
|
+
fix?: ViolationFix;
|
|
95
|
+
/** Related locations */
|
|
96
|
+
relatedLocations?: RelatedLocation[];
|
|
97
|
+
/** Additional metadata */
|
|
98
|
+
metadata?: Record<string, unknown>;
|
|
99
|
+
}
|
|
100
|
+
export type ViolationSeverity = 'error' | 'warning' | 'info';
|
|
101
|
+
export interface ViolationFix {
|
|
102
|
+
/** Description of the fix */
|
|
103
|
+
description: string;
|
|
104
|
+
/** Changes to apply */
|
|
105
|
+
changes: FileChange[];
|
|
106
|
+
}
|
|
107
|
+
export interface FileChange {
|
|
108
|
+
/** File to modify */
|
|
109
|
+
file: string;
|
|
110
|
+
/** Start position */
|
|
111
|
+
start: Position;
|
|
112
|
+
/** End position */
|
|
113
|
+
end: Position;
|
|
114
|
+
/** New text */
|
|
115
|
+
newText: string;
|
|
116
|
+
}
|
|
117
|
+
export interface Position {
|
|
118
|
+
line: number;
|
|
119
|
+
column: number;
|
|
120
|
+
}
|
|
121
|
+
export interface RelatedLocation {
|
|
122
|
+
/** File path */
|
|
123
|
+
file: string;
|
|
124
|
+
/** Line number */
|
|
125
|
+
line: number;
|
|
126
|
+
/** Column number */
|
|
127
|
+
column?: number;
|
|
128
|
+
/** Message */
|
|
129
|
+
message: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parsed file information
|
|
133
|
+
*/
|
|
134
|
+
export interface ParsedFile {
|
|
135
|
+
/** File information */
|
|
136
|
+
file: ProjectFile;
|
|
137
|
+
/** Dependencies found */
|
|
138
|
+
dependencies: Dependency[];
|
|
139
|
+
/** Exported symbols */
|
|
140
|
+
exports: ExportedSymbol[];
|
|
141
|
+
/** AST (language-specific) */
|
|
142
|
+
ast?: unknown;
|
|
143
|
+
/** Parse errors */
|
|
144
|
+
errors?: ParseError[];
|
|
145
|
+
}
|
|
146
|
+
export interface ExportedSymbol {
|
|
147
|
+
/** Symbol name */
|
|
148
|
+
name: string;
|
|
149
|
+
/** Symbol type */
|
|
150
|
+
type: SymbolType;
|
|
151
|
+
/** Line number */
|
|
152
|
+
line?: number;
|
|
153
|
+
/** Whether it's a default export */
|
|
154
|
+
isDefault?: boolean;
|
|
155
|
+
/** Type annotation (if available) */
|
|
156
|
+
typeAnnotation?: string;
|
|
157
|
+
}
|
|
158
|
+
export type SymbolType = 'function' | 'class' | 'interface' | 'type' | 'enum' | 'variable' | 'constant' | 'namespace' | 'module';
|
|
159
|
+
export interface ParseError {
|
|
160
|
+
/** Error message */
|
|
161
|
+
message: string;
|
|
162
|
+
/** Line number */
|
|
163
|
+
line: number;
|
|
164
|
+
/** Column number */
|
|
165
|
+
column?: number;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Dependency graph node
|
|
169
|
+
*/
|
|
170
|
+
export interface GraphNode {
|
|
171
|
+
/** Node ID (usually file path) */
|
|
172
|
+
id: string;
|
|
173
|
+
/** Node metadata */
|
|
174
|
+
data: ProjectFile;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Dependency graph edge
|
|
178
|
+
*/
|
|
179
|
+
export interface GraphEdge {
|
|
180
|
+
/** Source node ID */
|
|
181
|
+
source: string;
|
|
182
|
+
/** Target node ID */
|
|
183
|
+
target: string;
|
|
184
|
+
/** Edge metadata */
|
|
185
|
+
data: Dependency;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Analysis result
|
|
189
|
+
*/
|
|
190
|
+
export interface AnalysisResult {
|
|
191
|
+
/** Summary statistics */
|
|
192
|
+
summary: AnalysisSummary;
|
|
193
|
+
/** Hotspot files */
|
|
194
|
+
hotspots: Hotspot[];
|
|
195
|
+
/** Circular dependencies found */
|
|
196
|
+
circularDependencies: CircularDependency[];
|
|
197
|
+
/** Layer violations */
|
|
198
|
+
layerViolations: LayerViolation[];
|
|
199
|
+
/** Suggestions for improvement */
|
|
200
|
+
suggestions: string[];
|
|
201
|
+
/** Metrics by file */
|
|
202
|
+
fileMetrics?: FileMetrics[];
|
|
203
|
+
}
|
|
204
|
+
export interface AnalysisSummary {
|
|
205
|
+
totalFiles: number;
|
|
206
|
+
totalDependencies: number;
|
|
207
|
+
circularDependencies: number;
|
|
208
|
+
averageCoupling: number;
|
|
209
|
+
maxCoupling: number;
|
|
210
|
+
layerViolations: number;
|
|
211
|
+
}
|
|
212
|
+
export interface Hotspot {
|
|
213
|
+
file: string;
|
|
214
|
+
dependents: number;
|
|
215
|
+
dependencies: number;
|
|
216
|
+
coupling: number;
|
|
217
|
+
}
|
|
218
|
+
export interface CircularDependency {
|
|
219
|
+
cycle: string[];
|
|
220
|
+
files: string[];
|
|
221
|
+
}
|
|
222
|
+
export interface LayerViolation {
|
|
223
|
+
sourceLayer: string;
|
|
224
|
+
targetLayer: string;
|
|
225
|
+
file: string;
|
|
226
|
+
dependency: string;
|
|
227
|
+
}
|
|
228
|
+
export interface FileMetrics {
|
|
229
|
+
file: string;
|
|
230
|
+
linesOfCode: number;
|
|
231
|
+
dependencies: number;
|
|
232
|
+
dependents: number;
|
|
233
|
+
complexity?: number;
|
|
234
|
+
maintainability?: number;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* File change event
|
|
238
|
+
*/
|
|
239
|
+
export interface FileChangeEvent {
|
|
240
|
+
/** File path */
|
|
241
|
+
path: string;
|
|
242
|
+
/** Change type */
|
|
243
|
+
type: 'add' | 'change' | 'unlink';
|
|
244
|
+
/** Timestamp */
|
|
245
|
+
timestamp: number;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=core.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.types.d.ts","sourceRoot":"","sources":["../../src/types/core.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IAErB,2BAA2B;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IAErB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,IAAI,EAAE,cAAc,CAAC;IAErB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAE3B,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,aAAa,GACb,eAAe,GACf,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sCAAsC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IAEX,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,mBAAmB;IACnB,GAAG,CAAC,EAAE,YAAY,CAAC;IAEnB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,KAAK,EAAE,QAAQ,CAAC;IAEhB,mBAAmB;IACnB,GAAG,EAAE,QAAQ,CAAC;IAEd,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,IAAI,EAAE,WAAW,CAAC;IAElB,yBAAyB;IACzB,YAAY,EAAE,UAAU,EAAE,CAAC;IAE3B,uBAAuB;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,mBAAmB;IACnB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,EAAE,UAAU,CAAC;IAEjB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IAEX,oBAAoB;IACpB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,OAAO,EAAE,eAAe,CAAC;IAEzB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB,kCAAkC;IAClC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAE3C,uBAAuB;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC,kCAAkC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,sBAAsB;IACtB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAElC,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.types.js","sourceRoot":"","sources":["../../src/types/core.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "camouf",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Real-time architecture monitoring CLI tool with multi-language support",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"camouf": "./dist/cli/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsc -w",
|
|
13
|
+
"start": "node dist/cli/index.js",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"test:watch": "jest --watch",
|
|
16
|
+
"lint": "eslint src/**/*.ts",
|
|
17
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
18
|
+
"prepublishOnly": "npm run build"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"architecture",
|
|
22
|
+
"cli",
|
|
23
|
+
"monitoring",
|
|
24
|
+
"static-analysis",
|
|
25
|
+
"typescript",
|
|
26
|
+
"javascript",
|
|
27
|
+
"python",
|
|
28
|
+
"java",
|
|
29
|
+
"go",
|
|
30
|
+
"rust",
|
|
31
|
+
"multi-language",
|
|
32
|
+
"code-quality",
|
|
33
|
+
"dependency-graph",
|
|
34
|
+
"ddd",
|
|
35
|
+
"clean-architecture"
|
|
36
|
+
],
|
|
37
|
+
"author": "",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"homepage": "https://github.com/camouf-cli/camouf#readme",
|
|
40
|
+
"bugs": {
|
|
41
|
+
"url": "https://github.com/camouf-cli/camouf/issues"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18.0.0"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"chalk": "^5.3.0",
|
|
48
|
+
"chokidar": "^3.5.3",
|
|
49
|
+
"commander": "^12.1.0",
|
|
50
|
+
"cosmiconfig": "^9.0.0",
|
|
51
|
+
"fast-glob": "^3.3.2",
|
|
52
|
+
"figures": "^6.0.1",
|
|
53
|
+
"graphlib": "^2.1.8",
|
|
54
|
+
"inquirer": "^9.2.12",
|
|
55
|
+
"log-symbols": "^6.0.0",
|
|
56
|
+
"ora": "^8.0.1",
|
|
57
|
+
"ts-morph": "^22.0.0",
|
|
58
|
+
"tree-sitter": "^0.21.0",
|
|
59
|
+
"tree-sitter-javascript": "^0.21.0",
|
|
60
|
+
"tree-sitter-typescript": "^0.21.0",
|
|
61
|
+
"tree-sitter-python": "^0.21.0",
|
|
62
|
+
"tree-sitter-java": "^0.21.0",
|
|
63
|
+
"tree-sitter-go": "^0.21.0",
|
|
64
|
+
"tree-sitter-rust": "^0.21.0",
|
|
65
|
+
"ajv": "^8.12.0",
|
|
66
|
+
"winston": "^3.11.0",
|
|
67
|
+
"boxen": "^7.1.1",
|
|
68
|
+
"cli-table3": "^0.6.3"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@types/node": "^20.10.0",
|
|
72
|
+
"@types/inquirer": "^9.0.7",
|
|
73
|
+
"@types/graphlib": "^2.1.12",
|
|
74
|
+
"@typescript-eslint/eslint-plugin": "^6.13.0",
|
|
75
|
+
"@typescript-eslint/parser": "^6.13.0",
|
|
76
|
+
"eslint": "^8.55.0",
|
|
77
|
+
"jest": "^29.7.0",
|
|
78
|
+
"ts-jest": "^29.1.1",
|
|
79
|
+
"typescript": "^5.3.2"
|
|
80
|
+
},
|
|
81
|
+
"files": [
|
|
82
|
+
"dist",
|
|
83
|
+
"README.md",
|
|
84
|
+
"LICENSE"
|
|
85
|
+
],
|
|
86
|
+
"repository": {
|
|
87
|
+
"type": "git",
|
|
88
|
+
"url": ""
|
|
89
|
+
}
|
|
90
|
+
}
|