@hatem427/code-guard-ci 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/.husky/pre-commit +27 -0
- package/LICENSE +21 -0
- package/README.md +646 -0
- package/config/angular.config.ts +223 -0
- package/config/guidelines.config.ts +229 -0
- package/config/nextjs.config.ts +160 -0
- package/config/react.config.ts +330 -0
- package/dist/config/angular.config.d.ts +15 -0
- package/dist/config/angular.config.d.ts.map +1 -0
- package/dist/config/angular.config.js +187 -0
- package/dist/config/angular.config.js.map +1 -0
- package/dist/config/guidelines.config.d.ts +63 -0
- package/dist/config/guidelines.config.d.ts.map +1 -0
- package/dist/config/guidelines.config.js +167 -0
- package/dist/config/guidelines.config.js.map +1 -0
- package/dist/config/nextjs.config.d.ts +18 -0
- package/dist/config/nextjs.config.d.ts.map +1 -0
- package/dist/config/nextjs.config.js +133 -0
- package/dist/config/nextjs.config.js.map +1 -0
- package/dist/config/react.config.d.ts +15 -0
- package/dist/config/react.config.d.ts.map +1 -0
- package/dist/config/react.config.js +287 -0
- package/dist/config/react.config.js.map +1 -0
- package/dist/scripts/auto-fix.d.ts +16 -0
- package/dist/scripts/auto-fix.d.ts.map +1 -0
- package/dist/scripts/auto-fix.js +130 -0
- package/dist/scripts/auto-fix.js.map +1 -0
- package/dist/scripts/cli.d.ts +17 -0
- package/dist/scripts/cli.d.ts.map +1 -0
- package/dist/scripts/cli.js +255 -0
- package/dist/scripts/cli.js.map +1 -0
- package/dist/scripts/delete-bypass-logs.d.ts +17 -0
- package/dist/scripts/delete-bypass-logs.d.ts.map +1 -0
- package/dist/scripts/delete-bypass-logs.js +242 -0
- package/dist/scripts/delete-bypass-logs.js.map +1 -0
- package/dist/scripts/generate-doc.d.ts +18 -0
- package/dist/scripts/generate-doc.d.ts.map +1 -0
- package/dist/scripts/generate-doc.js +300 -0
- package/dist/scripts/generate-doc.js.map +1 -0
- package/dist/scripts/generate-pr-checklist.d.ts +20 -0
- package/dist/scripts/generate-pr-checklist.d.ts.map +1 -0
- package/dist/scripts/generate-pr-checklist.js +276 -0
- package/dist/scripts/generate-pr-checklist.js.map +1 -0
- package/dist/scripts/precommit-check.d.ts +23 -0
- package/dist/scripts/precommit-check.d.ts.map +1 -0
- package/dist/scripts/precommit-check.js +331 -0
- package/dist/scripts/precommit-check.js.map +1 -0
- package/dist/scripts/set-admin-password.d.ts +14 -0
- package/dist/scripts/set-admin-password.d.ts.map +1 -0
- package/dist/scripts/set-admin-password.js +116 -0
- package/dist/scripts/set-admin-password.js.map +1 -0
- package/dist/scripts/set-bypass-password.d.ts +11 -0
- package/dist/scripts/set-bypass-password.d.ts.map +1 -0
- package/dist/scripts/set-bypass-password.js +106 -0
- package/dist/scripts/set-bypass-password.js.map +1 -0
- package/dist/scripts/utils/auto-fixer.d.ts +28 -0
- package/dist/scripts/utils/auto-fixer.d.ts.map +1 -0
- package/dist/scripts/utils/auto-fixer.js +177 -0
- package/dist/scripts/utils/auto-fixer.js.map +1 -0
- package/dist/scripts/utils/bypass-manager.d.ts +101 -0
- package/dist/scripts/utils/bypass-manager.d.ts.map +1 -0
- package/dist/scripts/utils/bypass-manager.js +496 -0
- package/dist/scripts/utils/bypass-manager.js.map +1 -0
- package/dist/scripts/utils/code-analyzer.d.ts +34 -0
- package/dist/scripts/utils/code-analyzer.d.ts.map +1 -0
- package/dist/scripts/utils/code-analyzer.js +323 -0
- package/dist/scripts/utils/code-analyzer.js.map +1 -0
- package/dist/scripts/utils/file-checker.d.ts +93 -0
- package/dist/scripts/utils/file-checker.d.ts.map +1 -0
- package/dist/scripts/utils/file-checker.js +248 -0
- package/dist/scripts/utils/file-checker.js.map +1 -0
- package/dist/scripts/utils/logger.d.ts +26 -0
- package/dist/scripts/utils/logger.d.ts.map +1 -0
- package/dist/scripts/utils/logger.js +86 -0
- package/dist/scripts/utils/logger.js.map +1 -0
- package/dist/scripts/utils/project-detector.d.ts +34 -0
- package/dist/scripts/utils/project-detector.d.ts.map +1 -0
- package/dist/scripts/utils/project-detector.js +124 -0
- package/dist/scripts/utils/project-detector.js.map +1 -0
- package/dist/scripts/utils/rule-engine.d.ts +57 -0
- package/dist/scripts/utils/rule-engine.d.ts.map +1 -0
- package/dist/scripts/utils/rule-engine.js +158 -0
- package/dist/scripts/utils/rule-engine.js.map +1 -0
- package/dist/scripts/view-bypass-log.d.ts +13 -0
- package/dist/scripts/view-bypass-log.d.ts.map +1 -0
- package/dist/scripts/view-bypass-log.js +117 -0
- package/dist/scripts/view-bypass-log.js.map +1 -0
- package/package.json +74 -0
- package/scripts/auto-fix.ts +115 -0
- package/scripts/cli.ts +246 -0
- package/scripts/delete-bypass-logs.ts +253 -0
- package/scripts/generate-doc.ts +317 -0
- package/scripts/generate-pr-checklist.ts +285 -0
- package/scripts/precommit-check.ts +349 -0
- package/scripts/set-admin-password.ts +90 -0
- package/scripts/set-bypass-password.ts +80 -0
- package/scripts/utils/auto-fixer.ts +181 -0
- package/scripts/utils/bypass-manager.ts +566 -0
- package/scripts/utils/code-analyzer.ts +341 -0
- package/scripts/utils/file-checker.ts +253 -0
- package/scripts/utils/logger.ts +88 -0
- package/scripts/utils/project-detector.ts +115 -0
- package/scripts/utils/rule-engine.ts +186 -0
- package/scripts/view-bypass-log.ts +92 -0
- package/templates/feature-doc-api.md +101 -0
- package/templates/feature-doc-service.md +113 -0
- package/templates/feature-doc-ui.md +91 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.config.js","sourceRoot":"","sources":["../../config/react.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* auto-fix.ts ā Automatically fix code violations
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* Attempts to automatically fix common code violations.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* npm run auto-fix
|
|
11
|
+
* npm run auto-fix -- --dry-run
|
|
12
|
+
*/
|
|
13
|
+
import '../config/angular.config';
|
|
14
|
+
import '../config/react.config';
|
|
15
|
+
import '../config/nextjs.config';
|
|
16
|
+
//# sourceMappingURL=auto-fix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-fix.d.ts","sourceRoot":"","sources":["../../scripts/auto-fix.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAUH,OAAO,0BAA0B,CAAC;AAClC,OAAO,wBAAwB,CAAC;AAChC,OAAO,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* ============================================================================
|
|
5
|
+
* auto-fix.ts ā Automatically fix code violations
|
|
6
|
+
* ============================================================================
|
|
7
|
+
*
|
|
8
|
+
* Attempts to automatically fix common code violations.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* npm run auto-fix
|
|
12
|
+
* npm run auto-fix -- --dry-run
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
const project_detector_1 = require("./utils/project-detector");
|
|
49
|
+
const file_checker_1 = require("./utils/file-checker");
|
|
50
|
+
const guidelines_config_1 = require("../config/guidelines.config");
|
|
51
|
+
const rule_engine_1 = require("./utils/rule-engine");
|
|
52
|
+
const auto_fixer_1 = require("./utils/auto-fixer");
|
|
53
|
+
const logger = __importStar(require("./utils/logger"));
|
|
54
|
+
// Load configs
|
|
55
|
+
require("../config/angular.config");
|
|
56
|
+
require("../config/react.config");
|
|
57
|
+
require("../config/nextjs.config");
|
|
58
|
+
const CHECKABLE_EXTENSIONS = ['ts', 'tsx', 'js', 'jsx', 'html', 'css', 'scss', 'sass', 'less'];
|
|
59
|
+
function parseArgs() {
|
|
60
|
+
const args = process.argv.slice(2);
|
|
61
|
+
return {
|
|
62
|
+
dryRun: args.includes('--dry-run'),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async function main() {
|
|
66
|
+
logger.header('š§ Code Guardian ā Auto-Fix');
|
|
67
|
+
const opts = parseArgs();
|
|
68
|
+
if (opts.dryRun) {
|
|
69
|
+
logger.info('Dry-run mode: will show what would be fixed without making changes');
|
|
70
|
+
}
|
|
71
|
+
// Detect project
|
|
72
|
+
const project = (0, project_detector_1.detectProject)();
|
|
73
|
+
logger.info(`Detected project: ${project.label}`);
|
|
74
|
+
// Get staged files
|
|
75
|
+
const stagedPaths = (0, file_checker_1.getStagedFiles)();
|
|
76
|
+
if (stagedPaths.length === 0) {
|
|
77
|
+
logger.info('No staged files found.');
|
|
78
|
+
process.exit(0);
|
|
79
|
+
}
|
|
80
|
+
logger.info(`Found ${stagedPaths.length} staged file(s).`);
|
|
81
|
+
// Read files
|
|
82
|
+
const files = (0, file_checker_1.readStagedFiles)(CHECKABLE_EXTENSIONS);
|
|
83
|
+
if (files.length === 0) {
|
|
84
|
+
logger.info('No checkable files in staging.');
|
|
85
|
+
process.exit(0);
|
|
86
|
+
}
|
|
87
|
+
// Load rules and execute
|
|
88
|
+
const rules = (0, guidelines_config_1.getRulesForProject)(project.type);
|
|
89
|
+
logger.info(`Loaded ${rules.length} rule(s) for ${project.label}.`);
|
|
90
|
+
const report = (0, rule_engine_1.executeRules)(files, rules, false);
|
|
91
|
+
if (report.violations.length === 0) {
|
|
92
|
+
logger.success('ā
No violations found!');
|
|
93
|
+
process.exit(0);
|
|
94
|
+
}
|
|
95
|
+
logger.info(`Found ${report.violations.length} violation(s).\n`);
|
|
96
|
+
// Attempt auto-fix
|
|
97
|
+
if (opts.dryRun) {
|
|
98
|
+
logger.info('Would attempt to fix:');
|
|
99
|
+
for (const v of report.violations) {
|
|
100
|
+
console.log(` ⢠${v.file}:${v.line} [${v.ruleId}]`);
|
|
101
|
+
}
|
|
102
|
+
logger.info('\nRun without --dry-run to apply fixes.');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
logger.info('Attempting to auto-fix violations...\n');
|
|
106
|
+
const fixResults = (0, auto_fixer_1.autoFixAll)(report.violations, process.cwd());
|
|
107
|
+
console.log(`\nš Results:`);
|
|
108
|
+
console.log(` ā
Fixed: ${fixResults.fixed}`);
|
|
109
|
+
console.log(` ā ļø Manual fix required: ${fixResults.failed}\n`);
|
|
110
|
+
// Show what couldn't be fixed
|
|
111
|
+
const manualFixes = fixResults.results.filter((r) => !r.result.fixed);
|
|
112
|
+
if (manualFixes.length > 0) {
|
|
113
|
+
logger.warn('The following require manual fixes:');
|
|
114
|
+
for (const { violation, result } of manualFixes) {
|
|
115
|
+
console.log(` ⢠${violation.file}:${violation.line} [${violation.ruleId}] - ${result.message}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (fixResults.fixed > 0) {
|
|
119
|
+
logger.success(`\nā
Auto-fixed ${fixResults.fixed} violation(s)!`);
|
|
120
|
+
logger.info('Remember to review changes and re-stage files:');
|
|
121
|
+
logger.dim(' git add .');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
process.exit(0);
|
|
125
|
+
}
|
|
126
|
+
main().catch((err) => {
|
|
127
|
+
logger.error(`Unexpected error: ${err.message || err}`);
|
|
128
|
+
process.exit(1);
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=auto-fix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-fix.js","sourceRoot":"","sources":["../../scripts/auto-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* cli.ts ā Code Guardian CLI entrypoint
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* Main CLI interface when installed as an npm package.
|
|
8
|
+
* Provides commands: init, check, doc, checklist
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* npx code-guardian init
|
|
12
|
+
* npx code-guardian check
|
|
13
|
+
* npx code-guardian doc --name="feature" --type=ui
|
|
14
|
+
* npx code-guardian checklist
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../scripts/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* ============================================================================
|
|
5
|
+
* cli.ts ā Code Guardian CLI entrypoint
|
|
6
|
+
* ============================================================================
|
|
7
|
+
*
|
|
8
|
+
* Main CLI interface when installed as an npm package.
|
|
9
|
+
* Provides commands: init, check, doc, checklist
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* npx code-guardian init
|
|
13
|
+
* npx code-guardian check
|
|
14
|
+
* npx code-guardian doc --name="feature" --type=ui
|
|
15
|
+
* npx code-guardian checklist
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
+
var ownKeys = function(o) {
|
|
35
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
+
var ar = [];
|
|
37
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
return ownKeys(o);
|
|
41
|
+
};
|
|
42
|
+
return function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
+
__setModuleDefault(result, mod);
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
})();
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
const fs = __importStar(require("fs"));
|
|
52
|
+
const path = __importStar(require("path"));
|
|
53
|
+
const child_process_1 = require("child_process");
|
|
54
|
+
const VERSION = '1.0.0';
|
|
55
|
+
// āā CLI argument parsing āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
56
|
+
const args = process.argv.slice(2);
|
|
57
|
+
const command = args[0];
|
|
58
|
+
// āā Commands āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
59
|
+
function showHelp() {
|
|
60
|
+
console.log(`
|
|
61
|
+
š”ļø Code Guardian v${VERSION}
|
|
62
|
+
|
|
63
|
+
Usage:
|
|
64
|
+
code-guardian <command> [options]
|
|
65
|
+
|
|
66
|
+
Commands:
|
|
67
|
+
init Setup Code Guardian in current project
|
|
68
|
+
check Run pre-commit checks manually
|
|
69
|
+
doc Generate feature documentation
|
|
70
|
+
checklist Generate PR checklist
|
|
71
|
+
help Show this help message
|
|
72
|
+
version Show version
|
|
73
|
+
|
|
74
|
+
Examples:
|
|
75
|
+
code-guardian init
|
|
76
|
+
code-guardian check
|
|
77
|
+
code-guardian doc --name="user-card" --type=ui
|
|
78
|
+
code-guardian checklist --project=angular
|
|
79
|
+
|
|
80
|
+
For more info: https://github.com/team/code-guardian
|
|
81
|
+
`);
|
|
82
|
+
}
|
|
83
|
+
function showVersion() {
|
|
84
|
+
console.log(`Code Guardian v${VERSION}`);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Initialize Code Guardian in the current project.
|
|
88
|
+
* Copies config files, templates, and sets up Husky.
|
|
89
|
+
*/
|
|
90
|
+
function initProject() {
|
|
91
|
+
console.log('š”ļø Initializing Code Guardian...\n');
|
|
92
|
+
const cwd = process.cwd();
|
|
93
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
94
|
+
// Check if package.json exists
|
|
95
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
96
|
+
console.error('ā Error: No package.json found in current directory.');
|
|
97
|
+
console.error(' Run this command from your project root.');
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
// Determine the source directory (where code-guardian is installed)
|
|
101
|
+
const sourceDir = path.join(__dirname, '..');
|
|
102
|
+
// Copy config files
|
|
103
|
+
console.log('š Copying configuration files...');
|
|
104
|
+
const configDir = path.join(cwd, 'config');
|
|
105
|
+
if (!fs.existsSync(configDir)) {
|
|
106
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
107
|
+
}
|
|
108
|
+
const configFiles = ['guidelines.config.ts', 'angular.config.ts', 'react.config.ts', 'nextjs.config.ts'];
|
|
109
|
+
for (const file of configFiles) {
|
|
110
|
+
const src = path.join(sourceDir, 'config', file);
|
|
111
|
+
const dest = path.join(configDir, file);
|
|
112
|
+
if (fs.existsSync(src)) {
|
|
113
|
+
fs.copyFileSync(src, dest);
|
|
114
|
+
console.log(` ā ${file}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Copy templates
|
|
118
|
+
console.log('\nš Copying documentation templates...');
|
|
119
|
+
const templatesDir = path.join(cwd, 'templates');
|
|
120
|
+
if (!fs.existsSync(templatesDir)) {
|
|
121
|
+
fs.mkdirSync(templatesDir, { recursive: true });
|
|
122
|
+
}
|
|
123
|
+
const templateFiles = ['feature-doc-ui.md', 'feature-doc-api.md', 'feature-doc-service.md'];
|
|
124
|
+
for (const file of templateFiles) {
|
|
125
|
+
const src = path.join(sourceDir, 'templates', file);
|
|
126
|
+
const dest = path.join(templatesDir, file);
|
|
127
|
+
if (fs.existsSync(src)) {
|
|
128
|
+
fs.copyFileSync(src, dest);
|
|
129
|
+
console.log(` ā ${file}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Create docs/features directory
|
|
133
|
+
const docsDir = path.join(cwd, 'docs', 'features');
|
|
134
|
+
if (!fs.existsSync(docsDir)) {
|
|
135
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
136
|
+
fs.writeFileSync(path.join(docsDir, '.gitkeep'), '');
|
|
137
|
+
console.log('\nš Created docs/features directory');
|
|
138
|
+
}
|
|
139
|
+
// Update package.json scripts
|
|
140
|
+
console.log('\nš Updating package.json scripts...');
|
|
141
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
142
|
+
packageJson.scripts = packageJson.scripts || {};
|
|
143
|
+
packageJson.scripts['precommit-check'] = 'code-guardian check';
|
|
144
|
+
packageJson.scripts['generate-doc'] = 'code-guardian doc';
|
|
145
|
+
packageJson.scripts['generate-pr-checklist'] = 'code-guardian checklist';
|
|
146
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
|
|
147
|
+
console.log(' ā Added npm scripts');
|
|
148
|
+
// Setup Husky
|
|
149
|
+
console.log('\nš¶ Setting up Husky...');
|
|
150
|
+
try {
|
|
151
|
+
(0, child_process_1.execSync)('npx husky install', { stdio: 'inherit', cwd });
|
|
152
|
+
(0, child_process_1.execSync)('npx husky add .husky/pre-commit "npm run precommit-check"', { stdio: 'inherit', cwd });
|
|
153
|
+
console.log(' ā Husky configured');
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
console.warn(' ā ļø Husky setup failed. You may need to run "npx husky install" manually.');
|
|
157
|
+
}
|
|
158
|
+
console.log('\nā
Code Guardian initialized successfully!\n');
|
|
159
|
+
console.log('Next steps:');
|
|
160
|
+
console.log(' 1. Review config files in ./config/');
|
|
161
|
+
console.log(' 2. Customize rules for your team');
|
|
162
|
+
console.log(' 3. Make a commit to test the pre-commit hook');
|
|
163
|
+
console.log(' 4. Run "npm run generate-doc -- --name=test --type=ui" to test doc generation\n');
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Run pre-commit checks manually.
|
|
167
|
+
*/
|
|
168
|
+
function runCheck() {
|
|
169
|
+
const scriptPath = path.join(__dirname, 'precommit-check.js');
|
|
170
|
+
if (fs.existsSync(scriptPath)) {
|
|
171
|
+
require(scriptPath);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
// Fallback: try to run from source
|
|
175
|
+
const tsScriptPath = path.join(__dirname, '..', 'scripts', 'precommit-check.ts');
|
|
176
|
+
if (fs.existsSync(tsScriptPath)) {
|
|
177
|
+
(0, child_process_1.execSync)(`npx ts-node ${tsScriptPath}`, { stdio: 'inherit' });
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
console.error('ā Error: Could not find precommit-check script.');
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Generate feature documentation.
|
|
187
|
+
*/
|
|
188
|
+
function generateDoc() {
|
|
189
|
+
const scriptPath = path.join(__dirname, 'generate-doc.js');
|
|
190
|
+
const scriptArgs = args.slice(1).join(' ');
|
|
191
|
+
if (fs.existsSync(scriptPath)) {
|
|
192
|
+
(0, child_process_1.execSync)(`node ${scriptPath} ${scriptArgs}`, { stdio: 'inherit' });
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const tsScriptPath = path.join(__dirname, '..', 'scripts', 'generate-doc.ts');
|
|
196
|
+
if (fs.existsSync(tsScriptPath)) {
|
|
197
|
+
(0, child_process_1.execSync)(`npx ts-node ${tsScriptPath} ${scriptArgs}`, { stdio: 'inherit' });
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.error('ā Error: Could not find generate-doc script.');
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Generate PR checklist.
|
|
207
|
+
*/
|
|
208
|
+
function generateChecklist() {
|
|
209
|
+
const scriptPath = path.join(__dirname, 'generate-pr-checklist.js');
|
|
210
|
+
const scriptArgs = args.slice(1).join(' ');
|
|
211
|
+
if (fs.existsSync(scriptPath)) {
|
|
212
|
+
(0, child_process_1.execSync)(`node ${scriptPath} ${scriptArgs}`, { stdio: 'inherit' });
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const tsScriptPath = path.join(__dirname, '..', 'scripts', 'generate-pr-checklist.ts');
|
|
216
|
+
if (fs.existsSync(tsScriptPath)) {
|
|
217
|
+
(0, child_process_1.execSync)(`npx ts-node ${tsScriptPath} ${scriptArgs}`, { stdio: 'inherit' });
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
console.error('ā Error: Could not find generate-pr-checklist script.');
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// āā Main āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
226
|
+
switch (command) {
|
|
227
|
+
case 'init':
|
|
228
|
+
initProject();
|
|
229
|
+
break;
|
|
230
|
+
case 'check':
|
|
231
|
+
runCheck();
|
|
232
|
+
break;
|
|
233
|
+
case 'doc':
|
|
234
|
+
generateDoc();
|
|
235
|
+
break;
|
|
236
|
+
case 'checklist':
|
|
237
|
+
generateChecklist();
|
|
238
|
+
break;
|
|
239
|
+
case 'version':
|
|
240
|
+
case '--version':
|
|
241
|
+
case '-v':
|
|
242
|
+
showVersion();
|
|
243
|
+
break;
|
|
244
|
+
case 'help':
|
|
245
|
+
case '--help':
|
|
246
|
+
case '-h':
|
|
247
|
+
case undefined:
|
|
248
|
+
showHelp();
|
|
249
|
+
break;
|
|
250
|
+
default:
|
|
251
|
+
console.error(`ā Unknown command: ${command}`);
|
|
252
|
+
console.error('Run "code-guardian help" for usage information.');
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../scripts/cli.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,+EAA+E;AAE/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,+EAA+E;AAE/E,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;sBACQ,OAAO;;;;;;;;;;;;;;;;;;;;GAoB1B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEvD,+BAA+B;IAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE7C,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IACzG,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;IAC5F,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;IAChD,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,qBAAqB,CAAC;IAC/D,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC;IAC1D,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,yBAAyB,CAAC;IAEzE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,cAAc;IACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,IAAA,wBAAQ,EAAC,2DAA2D,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACjF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAA,wBAAQ,EAAC,eAAe,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAA,wBAAQ,EAAC,QAAQ,UAAU,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC9E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAA,wBAAQ,EAAC,eAAe,YAAY,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAA,wBAAQ,EAAC,QAAQ,UAAU,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACvF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAA,wBAAQ,EAAC,eAAe,YAAY,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,MAAM;QACT,WAAW,EAAE,CAAC;QACd,MAAM;IAER,KAAK,OAAO;QACV,QAAQ,EAAE,CAAC;QACX,MAAM;IAER,KAAK,KAAK;QACR,WAAW,EAAE,CAAC;QACd,MAAM;IAER,KAAK,WAAW;QACd,iBAAiB,EAAE,CAAC;QACpB,MAAM;IAER,KAAK,SAAS,CAAC;IACf,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI;QACP,WAAW,EAAE,CAAC;QACd,MAAM;IAER,KAAK,MAAM,CAAC;IACZ,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI,CAAC;IACV,KAAK,SAAS;QACZ,QAAQ,EAAE,CAAC;QACX,MAAM;IAER;QACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* delete-bypass-logs.ts ā Delete bypass log entries (ADMIN ONLY)
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* Requires admin password to delete entries from bypass log.
|
|
8
|
+
* Deleted entries are automatically archived for audit trail.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* npm run delete-bypass-logs
|
|
12
|
+
* npm run delete-bypass-logs -- --id="entry-uuid"
|
|
13
|
+
* npm run delete-bypass-logs -- --author="john@example.com"
|
|
14
|
+
* npm run delete-bypass-logs -- --before="2024-01-01"
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=delete-bypass-logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-bypass-logs.d.ts","sourceRoot":"","sources":["../../scripts/delete-bypass-logs.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|