code-auditor-mcp 1.0.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 +362 -0
- package/configs/hhra-compat.json +168 -0
- package/dist/analyzers/analyzerUtils.d.ts +69 -0
- package/dist/analyzers/analyzerUtils.d.ts.map +1 -0
- package/dist/analyzers/analyzerUtils.js +188 -0
- package/dist/analyzers/analyzerUtils.js.map +1 -0
- package/dist/analyzers/dataAccessAnalyzer.d.ts +46 -0
- package/dist/analyzers/dataAccessAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/dataAccessAnalyzer.js +448 -0
- package/dist/analyzers/dataAccessAnalyzer.js.map +1 -0
- package/dist/analyzers/dryAnalyzer.d.ts +30 -0
- package/dist/analyzers/dryAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/dryAnalyzer.js +537 -0
- package/dist/analyzers/dryAnalyzer.js.map +1 -0
- package/dist/analyzers/solidAnalyzer.d.ts +23 -0
- package/dist/analyzers/solidAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/solidAnalyzer.js +355 -0
- package/dist/analyzers/solidAnalyzer.js.map +1 -0
- package/dist/auditRunner.d.ts +20 -0
- package/dist/auditRunner.d.ts.map +1 -0
- package/dist/auditRunner.js +214 -0
- package/dist/auditRunner.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +38 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/configLoader.d.ts +19 -0
- package/dist/config/configLoader.d.ts.map +1 -0
- package/dist/config/configLoader.js +124 -0
- package/dist/config/configLoader.js.map +1 -0
- package/dist/config/defaults.d.ts +69 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +142 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-standalone.d.ts +3 -0
- package/dist/mcp-standalone.d.ts.map +1 -0
- package/dist/mcp-standalone.js +171 -0
- package/dist/mcp-standalone.js.map +1 -0
- package/dist/mcp.d.ts +3 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +340 -0
- package/dist/mcp.js.map +1 -0
- package/dist/reporting/csvReportGenerator.d.ts +29 -0
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -0
- package/dist/reporting/csvReportGenerator.js +182 -0
- package/dist/reporting/csvReportGenerator.js.map +1 -0
- package/dist/reporting/htmlReportGenerator.d.ts +18 -0
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -0
- package/dist/reporting/htmlReportGenerator.js +352 -0
- package/dist/reporting/htmlReportGenerator.js.map +1 -0
- package/dist/reporting/jsonReportGenerator.d.ts +23 -0
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -0
- package/dist/reporting/jsonReportGenerator.js +103 -0
- package/dist/reporting/jsonReportGenerator.js.map +1 -0
- package/dist/reporting/reportGenerator.d.ts +21 -0
- package/dist/reporting/reportGenerator.d.ts.map +1 -0
- package/dist/reporting/reportGenerator.js +53 -0
- package/dist/reporting/reportGenerator.js.map +1 -0
- package/dist/types.d.ts +246 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/astParser.d.ts +71 -0
- package/dist/utils/astParser.d.ts.map +1 -0
- package/dist/utils/astParser.js +244 -0
- package/dist/utils/astParser.js.map +1 -0
- package/dist/utils/astUtils.d.ts +89 -0
- package/dist/utils/astUtils.d.ts.map +1 -0
- package/dist/utils/astUtils.js +289 -0
- package/dist/utils/astUtils.js.map +1 -0
- package/dist/utils/fileDiscovery.d.ts +58 -0
- package/dist/utils/fileDiscovery.d.ts.map +1 -0
- package/dist/utils/fileDiscovery.js +203 -0
- package/dist/utils/fileDiscovery.js.map +1 -0
- package/examples/.auditrc.example.json +61 -0
- package/examples/.auditrc.json +201 -0
- package/examples/nextjs.auditrc.json +65 -0
- package/examples/node-api.auditrc.json +82 -0
- package/examples/react.auditrc.json +59 -0
- package/package.json +62 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAElE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC;;;;;CAKf,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,eAAe,aAAa,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Loader (Functional)
|
|
3
|
+
* Handles loading and merging configuration from multiple sources
|
|
4
|
+
*/
|
|
5
|
+
import { AuditConfig } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Load configuration from multiple sources
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadConfig(options?: {
|
|
10
|
+
configPath?: string;
|
|
11
|
+
cliArgs?: Partial<AuditConfig>;
|
|
12
|
+
environmentPrefix?: string;
|
|
13
|
+
}): Promise<AuditConfig>;
|
|
14
|
+
/**
|
|
15
|
+
* Validate configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateConfig(config: AuditConfig): string[];
|
|
18
|
+
export { AuditConfig } from '../types.js';
|
|
19
|
+
//# sourceMappingURL=configLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configLoader.d.ts","sourceRoot":"","sources":["../../src/config/configLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,WAAW,CAAC,CAuBvB;AA8FD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAkB5D;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Loader (Functional)
|
|
3
|
+
* Handles loading and merging configuration from multiple sources
|
|
4
|
+
*/
|
|
5
|
+
import { promises as fs } from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { getDefaultConfig } from './defaults.js';
|
|
8
|
+
/**
|
|
9
|
+
* Load configuration from multiple sources
|
|
10
|
+
*/
|
|
11
|
+
export async function loadConfig(options) {
|
|
12
|
+
// Start with defaults
|
|
13
|
+
let config = getDefaultConfig();
|
|
14
|
+
// Load from config file if specified
|
|
15
|
+
if (options?.configPath) {
|
|
16
|
+
config = await loadFromFile(config, options.configPath);
|
|
17
|
+
}
|
|
18
|
+
// Load from environment variables
|
|
19
|
+
if (options?.environmentPrefix) {
|
|
20
|
+
config = loadFromEnvironment(config, options.environmentPrefix);
|
|
21
|
+
}
|
|
22
|
+
// Apply CLI arguments (highest priority)
|
|
23
|
+
if (options?.cliArgs) {
|
|
24
|
+
config = { ...config, ...options.cliArgs };
|
|
25
|
+
}
|
|
26
|
+
// Normalize paths
|
|
27
|
+
config = normalizePaths(config);
|
|
28
|
+
return config;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Load configuration from a JSON file
|
|
32
|
+
*/
|
|
33
|
+
async function loadFromFile(baseConfig, configPath) {
|
|
34
|
+
try {
|
|
35
|
+
const content = await fs.readFile(configPath, 'utf-8');
|
|
36
|
+
const fileConfig = JSON.parse(content);
|
|
37
|
+
return mergeConfig(baseConfig, fileConfig);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.warn(`Failed to load config from ${configPath}:`, error);
|
|
41
|
+
return baseConfig;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Load configuration from environment variables
|
|
46
|
+
*/
|
|
47
|
+
function loadFromEnvironment(baseConfig, prefix) {
|
|
48
|
+
const env = process.env;
|
|
49
|
+
const envConfig = {};
|
|
50
|
+
// Map environment variables to config properties
|
|
51
|
+
if (env[`${prefix}_MIN_SEVERITY`]) {
|
|
52
|
+
envConfig.minSeverity = env[`${prefix}_MIN_SEVERITY`];
|
|
53
|
+
}
|
|
54
|
+
if (env[`${prefix}_OUTPUT_DIR`]) {
|
|
55
|
+
envConfig.outputDirectory = env[`${prefix}_OUTPUT_DIR`];
|
|
56
|
+
}
|
|
57
|
+
if (env[`${prefix}_FAIL_ON_CRITICAL`]) {
|
|
58
|
+
envConfig.failOnCritical = env[`${prefix}_FAIL_ON_CRITICAL`] === 'true';
|
|
59
|
+
}
|
|
60
|
+
if (env[`${prefix}_ANALYZERS`]) {
|
|
61
|
+
envConfig.enabledAnalyzers = env[`${prefix}_ANALYZERS`].split(',');
|
|
62
|
+
}
|
|
63
|
+
return mergeConfig(baseConfig, envConfig);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Deep merge two configuration objects
|
|
67
|
+
*/
|
|
68
|
+
function mergeConfig(base, override) {
|
|
69
|
+
const result = { ...base };
|
|
70
|
+
for (const key in override) {
|
|
71
|
+
const value = override[key];
|
|
72
|
+
if (value !== undefined) {
|
|
73
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
74
|
+
const baseValue = base[key];
|
|
75
|
+
result[key] = {
|
|
76
|
+
...(typeof baseValue === 'object' ? baseValue : {}),
|
|
77
|
+
...value
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
result[key] = value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Normalize file paths in configuration
|
|
89
|
+
*/
|
|
90
|
+
function normalizePaths(config) {
|
|
91
|
+
const normalized = { ...config };
|
|
92
|
+
// Normalize output directory
|
|
93
|
+
if (normalized.outputDirectory) {
|
|
94
|
+
normalized.outputDirectory = path.resolve(normalized.outputDirectory);
|
|
95
|
+
}
|
|
96
|
+
// Normalize include/exclude paths
|
|
97
|
+
if (normalized.includePaths) {
|
|
98
|
+
normalized.includePaths = normalized.includePaths.map(p => path.isAbsolute(p) ? p : path.join(process.cwd(), p));
|
|
99
|
+
}
|
|
100
|
+
if (normalized.excludePaths) {
|
|
101
|
+
normalized.excludePaths = normalized.excludePaths.map(p => path.isAbsolute(p) ? p : path.join(process.cwd(), p));
|
|
102
|
+
}
|
|
103
|
+
return normalized;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Validate configuration
|
|
107
|
+
*/
|
|
108
|
+
export function validateConfig(config) {
|
|
109
|
+
const errors = [];
|
|
110
|
+
// Validate severity
|
|
111
|
+
if (config.minSeverity && !['critical', 'warning', 'suggestion'].includes(config.minSeverity)) {
|
|
112
|
+
errors.push(`Invalid severity: ${config.minSeverity}`);
|
|
113
|
+
}
|
|
114
|
+
// Validate analyzers
|
|
115
|
+
const validAnalyzers = ['solid', 'dry', 'security', 'component', 'data-access'];
|
|
116
|
+
if (config.enabledAnalyzers) {
|
|
117
|
+
const invalid = config.enabledAnalyzers.filter(a => !validAnalyzers.includes(a));
|
|
118
|
+
if (invalid.length > 0) {
|
|
119
|
+
errors.push(`Invalid analyzers: ${invalid.join(', ')}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return errors;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=configLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../../src/config/configLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configurations for the code auditor
|
|
3
|
+
*/
|
|
4
|
+
import { AuditConfig } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get default configuration
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDefaultConfig(): AuditConfig;
|
|
9
|
+
/**
|
|
10
|
+
* Get project type specific defaults
|
|
11
|
+
*/
|
|
12
|
+
export declare function getProjectTypeDefaults(projectType: string): Partial<AuditConfig>;
|
|
13
|
+
/**
|
|
14
|
+
* Get environment-specific defaults
|
|
15
|
+
*/
|
|
16
|
+
export declare function getEnvironmentDefaults(env: string): Partial<AuditConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* Default analyzer configurations
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_ANALYZER_CONFIGS: {
|
|
21
|
+
solid: {
|
|
22
|
+
maxMethodsPerClass: number;
|
|
23
|
+
maxLinesPerMethod: number;
|
|
24
|
+
maxParametersPerMethod: number;
|
|
25
|
+
maxImportsPerFile: number;
|
|
26
|
+
maxComplexity: number;
|
|
27
|
+
};
|
|
28
|
+
dry: {
|
|
29
|
+
minLineThreshold: number;
|
|
30
|
+
similarityThreshold: number;
|
|
31
|
+
excludePatterns: string[];
|
|
32
|
+
checkImports: boolean;
|
|
33
|
+
checkStrings: boolean;
|
|
34
|
+
};
|
|
35
|
+
security: {
|
|
36
|
+
authPatterns: string[];
|
|
37
|
+
adminPatterns: string[];
|
|
38
|
+
rateLimitPatterns: string[];
|
|
39
|
+
publicPatterns: string[];
|
|
40
|
+
};
|
|
41
|
+
component: {
|
|
42
|
+
frameworkPatterns: {
|
|
43
|
+
react: {
|
|
44
|
+
components: string[];
|
|
45
|
+
hooks: string[];
|
|
46
|
+
context: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
checkErrorBoundaries: boolean;
|
|
50
|
+
maxComplexity: number;
|
|
51
|
+
maxNesting: number;
|
|
52
|
+
};
|
|
53
|
+
dataAccess: {
|
|
54
|
+
databasePatterns: {
|
|
55
|
+
postgres: string[];
|
|
56
|
+
mysql: string[];
|
|
57
|
+
mongodb: string[];
|
|
58
|
+
};
|
|
59
|
+
securityPatterns: {
|
|
60
|
+
parameterized: string[];
|
|
61
|
+
sanitized: string[];
|
|
62
|
+
};
|
|
63
|
+
performanceThresholds: {
|
|
64
|
+
maxJoins: number;
|
|
65
|
+
warnOnSelectStar: boolean;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAwB9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBxE;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDpC,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configurations for the code auditor
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Get default configuration
|
|
6
|
+
*/
|
|
7
|
+
export function getDefaultConfig() {
|
|
8
|
+
return {
|
|
9
|
+
includePaths: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
|
|
10
|
+
excludePaths: [
|
|
11
|
+
'**/node_modules/**',
|
|
12
|
+
'**/.next/**',
|
|
13
|
+
'**/dist/**',
|
|
14
|
+
'**/build/**',
|
|
15
|
+
'**/coverage/**',
|
|
16
|
+
'**/*.test.{ts,tsx,js,jsx}',
|
|
17
|
+
'**/*.spec.{ts,tsx,js,jsx}'
|
|
18
|
+
],
|
|
19
|
+
enabledAnalyzers: ['solid', 'dry', 'security', 'component', 'data-access'],
|
|
20
|
+
outputFormats: ['html', 'json'],
|
|
21
|
+
outputDirectory: './audit-reports',
|
|
22
|
+
minSeverity: 'suggestion',
|
|
23
|
+
failOnCritical: false,
|
|
24
|
+
showProgress: true,
|
|
25
|
+
thresholds: {
|
|
26
|
+
maxCritical: 0,
|
|
27
|
+
maxWarnings: 100,
|
|
28
|
+
minHealthScore: 75
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get project type specific defaults
|
|
34
|
+
*/
|
|
35
|
+
export function getProjectTypeDefaults(projectType) {
|
|
36
|
+
switch (projectType) {
|
|
37
|
+
case 'nextjs':
|
|
38
|
+
return {
|
|
39
|
+
includePaths: ['app/**/*.{ts,tsx}', 'pages/**/*.{ts,tsx}', 'src/**/*.{ts,tsx}'],
|
|
40
|
+
excludePaths: [
|
|
41
|
+
...getDefaultConfig().excludePaths,
|
|
42
|
+
'**/.next/**',
|
|
43
|
+
'**/public/**'
|
|
44
|
+
]
|
|
45
|
+
};
|
|
46
|
+
case 'react':
|
|
47
|
+
return {
|
|
48
|
+
includePaths: ['src/**/*.{ts,tsx,js,jsx}'],
|
|
49
|
+
excludePaths: [
|
|
50
|
+
...getDefaultConfig().excludePaths,
|
|
51
|
+
'**/public/**',
|
|
52
|
+
'**/build/**'
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
case 'node':
|
|
56
|
+
return {
|
|
57
|
+
includePaths: ['src/**/*.{ts,js}', 'lib/**/*.{ts,js}'],
|
|
58
|
+
outputFormats: ['json', 'csv']
|
|
59
|
+
};
|
|
60
|
+
default:
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get environment-specific defaults
|
|
66
|
+
*/
|
|
67
|
+
export function getEnvironmentDefaults(env) {
|
|
68
|
+
switch (env) {
|
|
69
|
+
case 'ci':
|
|
70
|
+
return {
|
|
71
|
+
outputFormats: ['json'],
|
|
72
|
+
failOnCritical: true,
|
|
73
|
+
showProgress: false
|
|
74
|
+
};
|
|
75
|
+
case 'development':
|
|
76
|
+
return {
|
|
77
|
+
outputFormats: ['html'],
|
|
78
|
+
showProgress: true,
|
|
79
|
+
minSeverity: 'suggestion'
|
|
80
|
+
};
|
|
81
|
+
case 'production':
|
|
82
|
+
return {
|
|
83
|
+
minSeverity: 'warning',
|
|
84
|
+
failOnCritical: true
|
|
85
|
+
};
|
|
86
|
+
default:
|
|
87
|
+
return {};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Default analyzer configurations
|
|
92
|
+
*/
|
|
93
|
+
export const DEFAULT_ANALYZER_CONFIGS = {
|
|
94
|
+
solid: {
|
|
95
|
+
maxMethodsPerClass: 10,
|
|
96
|
+
maxLinesPerMethod: 50,
|
|
97
|
+
maxParametersPerMethod: 4,
|
|
98
|
+
maxImportsPerFile: 20,
|
|
99
|
+
maxComplexity: 10
|
|
100
|
+
},
|
|
101
|
+
dry: {
|
|
102
|
+
minLineThreshold: 5,
|
|
103
|
+
similarityThreshold: 0.85,
|
|
104
|
+
excludePatterns: ['**/*.test.ts', '**/*.spec.ts'],
|
|
105
|
+
checkImports: true,
|
|
106
|
+
checkStrings: true
|
|
107
|
+
},
|
|
108
|
+
security: {
|
|
109
|
+
authPatterns: ['withAuth', 'requireAuth', 'isAuthenticated'],
|
|
110
|
+
adminPatterns: ['withAdmin', 'requireAdmin', 'isAdmin'],
|
|
111
|
+
rateLimitPatterns: ['rateLimit', 'withRateLimit'],
|
|
112
|
+
publicPatterns: ['public', 'noAuth', 'skipAuth']
|
|
113
|
+
},
|
|
114
|
+
component: {
|
|
115
|
+
frameworkPatterns: {
|
|
116
|
+
react: {
|
|
117
|
+
components: ['*.tsx', '*.jsx'],
|
|
118
|
+
hooks: ['use*'],
|
|
119
|
+
context: ['*Context', '*Provider']
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
checkErrorBoundaries: true,
|
|
123
|
+
maxComplexity: 15,
|
|
124
|
+
maxNesting: 4
|
|
125
|
+
},
|
|
126
|
+
dataAccess: {
|
|
127
|
+
databasePatterns: {
|
|
128
|
+
postgres: ['pg', 'postgres', 'postgresql'],
|
|
129
|
+
mysql: ['mysql', 'mysql2'],
|
|
130
|
+
mongodb: ['mongodb', 'mongoose']
|
|
131
|
+
},
|
|
132
|
+
securityPatterns: {
|
|
133
|
+
parameterized: ['?', '$1', ':param'],
|
|
134
|
+
sanitized: ['sanitize', 'escape', 'clean']
|
|
135
|
+
},
|
|
136
|
+
performanceThresholds: {
|
|
137
|
+
maxJoins: 5,
|
|
138
|
+
warnOnSelectStar: true
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;QAC5D,YAAY,EAAE;YACZ,oBAAoB;YACpB,aAAa;YACb,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,2BAA2B;YAC3B,2BAA2B;SAC5B;QACD,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC;QAC1E,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAC/B,eAAe,EAAE,iBAAiB;QAClC,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE;YACV,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,GAAG;YAChB,cAAc,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO;gBACL,YAAY,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;gBAC/E,YAAY,EAAE;oBACZ,GAAG,gBAAgB,EAAE,CAAC,YAAa;oBACnC,aAAa;oBACb,cAAc;iBACf;aACF,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO;gBACL,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,YAAY,EAAE;oBACZ,GAAG,gBAAgB,EAAE,CAAC,YAAa;oBACnC,cAAc;oBACd,aAAa;iBACd;aACF,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtD,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;aAC/B,CAAC;QAEJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,IAAI;YACP,OAAO;gBACL,aAAa,EAAE,CAAC,MAAM,CAAC;gBACvB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC;QAEJ,KAAK,aAAa;YAChB,OAAO;gBACL,aAAa,EAAE,CAAC,MAAM,CAAC;gBACvB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,YAAY;aAC1B,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO;gBACL,WAAW,EAAE,SAAS;gBACtB,cAAc,EAAE,IAAI;aACrB,CAAC;QAEJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE;QACL,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,EAAE;QACrB,sBAAsB,EAAE,CAAC;QACzB,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,EAAE;KAClB;IAED,GAAG,EAAE;QACH,gBAAgB,EAAE,CAAC;QACnB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;QACjD,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IAED,QAAQ,EAAE;QACR,YAAY,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,iBAAiB,CAAC;QAC5D,aAAa,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC;QACvD,iBAAiB,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;QACjD,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;KACjD;IAED,SAAS,EAAE;QACT,iBAAiB,EAAE;YACjB,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC9B,KAAK,EAAE,CAAC,MAAM,CAAC;gBACf,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;aACnC;SACF;QACD,oBAAoB,EAAE,IAAI;QAC1B,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,CAAC;KACd;IAED,UAAU,EAAE;QACV,gBAAgB,EAAE;YAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC;YAC1C,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC1B,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;SACjC;QACD,gBAAgB,EAAE;YAChB,aAAa,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC;YACpC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;SAC3C;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,CAAC;YACX,gBAAgB,EAAE,IAAI;SACvB;KACF;CACF,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Auditor
|
|
3
|
+
* Main entry point for the code quality audit library
|
|
4
|
+
*
|
|
5
|
+
* Exports all public APIs for programmatic use
|
|
6
|
+
*/
|
|
7
|
+
export { createAuditRunner, runAudit, AuditProgress } from './auditRunner.js';
|
|
8
|
+
import { createAuditRunner as _createAuditRunner, runAudit as _runAudit } from './auditRunner.js';
|
|
9
|
+
export { AuditConfig, loadConfig, validateConfig } from './config/configLoader.js';
|
|
10
|
+
export { getDefaultConfig, getProjectTypeDefaults, getEnvironmentDefaults, DEFAULT_ANALYZER_CONFIGS } from './config/defaults.js';
|
|
11
|
+
export { AuditOptions, AuditRunnerOptions, AuditResult, AuditSummary, AuditMetadata, ReportFormat, SeverityLevel, Violation, SOLIDViolation, DRYViolation, AuthPatternIssue, PageAnalysis, RouteAnalysis, DataAccessPattern, QueryInfo, AnalyzerResult, BaseAnalyzerOptions, Recommendation, RecommendationPriority, FileInfo, ImportInfo, ExportInfo } from './types.js';
|
|
12
|
+
export { solidAnalyzer } from './analyzers/solidAnalyzer.js';
|
|
13
|
+
export { dryAnalyzer } from './analyzers/dryAnalyzer.js';
|
|
14
|
+
export { dataAccessAnalyzer } from './analyzers/dataAccessAnalyzer.js';
|
|
15
|
+
export * from './analyzers/analyzerUtils.js';
|
|
16
|
+
export { generateReport, createReportGenerator, ReportGenerator } from './reporting/reportGenerator.js';
|
|
17
|
+
export { generateHTMLReport, HTMLReportGenerator, HTMLReportConfig } from './reporting/htmlReportGenerator.js';
|
|
18
|
+
export { generateJSONReport, generateCompactJSONReport, JSONReportGenerator, JSONReportConfig } from './reporting/jsonReportGenerator.js';
|
|
19
|
+
export { generateCSVReport, generateSummaryCSVReport, generatePivotCSVReport, CSVReportGenerator, CSVReportConfig } from './reporting/csvReportGenerator.js';
|
|
20
|
+
export { getImports, getExports, findFunctions, findClasses, calculateComplexity, getASTNode } from './utils/astUtils.js';
|
|
21
|
+
export { discoverFiles, FileDiscoveryOptions, DEFAULT_EXCLUDED_DIRS, TYPESCRIPT_EXTENSIONS, JAVASCRIPT_EXTENSIONS, ALL_EXTENSIONS } from './utils/fileDiscovery.js';
|
|
22
|
+
export declare const version = "0.1.0";
|
|
23
|
+
/**
|
|
24
|
+
* Create a pre-configured audit runner for specific project types
|
|
25
|
+
*/
|
|
26
|
+
export declare function createProjectAuditRunner(projectType: 'nextjs' | 'react' | 'vue' | 'angular' | 'node' | 'generic', options?: any): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
* List available analyzers
|
|
29
|
+
*/
|
|
30
|
+
export declare function getAvailableAnalyzers(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* List available report formats
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAvailableFormats(): string[];
|
|
35
|
+
declare const _default: {
|
|
36
|
+
runAudit: typeof _runAudit;
|
|
37
|
+
createAuditRunner: typeof _createAuditRunner;
|
|
38
|
+
createProjectAuditRunner: typeof createProjectAuditRunner;
|
|
39
|
+
getAvailableAnalyzers: typeof getAvailableAnalyzers;
|
|
40
|
+
getAvailableFormats: typeof getAvailableFormats;
|
|
41
|
+
version: string;
|
|
42
|
+
};
|
|
43
|
+
export default _default;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAGhB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGT,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACd,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvE,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACxE,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;;;;;;;;;AAGD,wBAOE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Auditor
|
|
3
|
+
* Main entry point for the code quality audit library
|
|
4
|
+
*
|
|
5
|
+
* Exports all public APIs for programmatic use
|
|
6
|
+
*/
|
|
7
|
+
// Main audit runner
|
|
8
|
+
export { createAuditRunner, runAudit } from './auditRunner.js';
|
|
9
|
+
// Import for default export
|
|
10
|
+
import { createAuditRunner as _createAuditRunner, runAudit as _runAudit } from './auditRunner.js';
|
|
11
|
+
// Configuration
|
|
12
|
+
export { loadConfig, validateConfig } from './config/configLoader.js';
|
|
13
|
+
export { getDefaultConfig, getProjectTypeDefaults, getEnvironmentDefaults, DEFAULT_ANALYZER_CONFIGS } from './config/defaults.js';
|
|
14
|
+
// Analyzers
|
|
15
|
+
export { solidAnalyzer } from './analyzers/solidAnalyzer.js';
|
|
16
|
+
export { dryAnalyzer } from './analyzers/dryAnalyzer.js';
|
|
17
|
+
// export { securityAnalyzer } from './analyzers/securityAnalyzer.js';
|
|
18
|
+
// export { componentAnalyzer } from './analyzers/componentAnalyzer.js';
|
|
19
|
+
export { dataAccessAnalyzer } from './analyzers/dataAccessAnalyzer.js';
|
|
20
|
+
// Analyzer utilities
|
|
21
|
+
export * from './analyzers/analyzerUtils.js';
|
|
22
|
+
// Report Generators
|
|
23
|
+
export { generateReport, createReportGenerator, ReportGenerator } from './reporting/reportGenerator.js';
|
|
24
|
+
export { generateHTMLReport, HTMLReportGenerator } from './reporting/htmlReportGenerator.js';
|
|
25
|
+
export { generateJSONReport, generateCompactJSONReport, JSONReportGenerator } from './reporting/jsonReportGenerator.js';
|
|
26
|
+
export { generateCSVReport, generateSummaryCSVReport, generatePivotCSVReport, CSVReportGenerator } from './reporting/csvReportGenerator.js';
|
|
27
|
+
// Utilities
|
|
28
|
+
export { getImports, getExports, findFunctions, findClasses, calculateComplexity, getASTNode } from './utils/astUtils.js';
|
|
29
|
+
export { discoverFiles, DEFAULT_EXCLUDED_DIRS, TYPESCRIPT_EXTENSIONS, JAVASCRIPT_EXTENSIONS, ALL_EXTENSIONS } from './utils/fileDiscovery.js';
|
|
30
|
+
// Version
|
|
31
|
+
export const version = '0.1.0';
|
|
32
|
+
/**
|
|
33
|
+
* Create a pre-configured audit runner for specific project types
|
|
34
|
+
*/
|
|
35
|
+
export async function createProjectAuditRunner(projectType, options) {
|
|
36
|
+
const { createAuditRunner } = await import('./auditRunner.js');
|
|
37
|
+
const { getProjectTypeDefaults } = await import('./config/defaults.js');
|
|
38
|
+
const projectDefaults = getProjectTypeDefaults(projectType);
|
|
39
|
+
const mergedOptions = {
|
|
40
|
+
...projectDefaults,
|
|
41
|
+
...options
|
|
42
|
+
};
|
|
43
|
+
return createAuditRunner(mergedOptions);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* List available analyzers
|
|
47
|
+
*/
|
|
48
|
+
export function getAvailableAnalyzers() {
|
|
49
|
+
return ['solid', 'dry', 'security', 'component', 'data-access'];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* List available report formats
|
|
53
|
+
*/
|
|
54
|
+
export function getAvailableFormats() {
|
|
55
|
+
return ['html', 'json', 'csv'];
|
|
56
|
+
}
|
|
57
|
+
// Default export for convenience
|
|
58
|
+
export default {
|
|
59
|
+
runAudit: _runAudit,
|
|
60
|
+
createAuditRunner: _createAuditRunner,
|
|
61
|
+
createProjectAuditRunner,
|
|
62
|
+
getAvailableAnalyzers,
|
|
63
|
+
getAvailableFormats,
|
|
64
|
+
version
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,gBAAgB;AAChB,OAAO,EAEL,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAuC9B,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,sEAAsE;AACtE,wEAAwE;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,qBAAqB;AACrB,cAAc,8BAA8B,CAAC;AAE7C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwE,EACxE,OAAa;IAEb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG;QACpB,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,iCAAiC;AACjC,eAAe;IACb,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,kBAAkB;IACrC,wBAAwB;IACxB,qBAAqB;IACrB,mBAAmB;IACnB,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-standalone.d.ts","sourceRoot":"","sources":["../src/mcp-standalone.ts"],"names":[],"mappings":""}
|