@fyuld/snitch 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.snitchconfig.json +142 -0
  2. package/dist/src/commands/badimports.d.ts +2 -0
  3. package/dist/src/commands/badimports.d.ts.map +1 -0
  4. package/dist/src/commands/badimports.js +8 -0
  5. package/dist/src/commands/badimports.js.map +1 -0
  6. package/dist/src/commands/dirtydefaults.d.ts +2 -0
  7. package/dist/src/commands/dirtydefaults.d.ts.map +1 -0
  8. package/dist/src/commands/dirtydefaults.js +8 -0
  9. package/dist/src/commands/dirtydefaults.js.map +1 -0
  10. package/dist/src/commands/dm.d.ts +2 -0
  11. package/dist/src/commands/dm.d.ts.map +1 -0
  12. package/dist/src/commands/dm.js +100 -0
  13. package/dist/src/commands/dm.js.map +1 -0
  14. package/dist/src/commands/enumerate.d.ts +2 -0
  15. package/dist/src/commands/enumerate.d.ts.map +1 -0
  16. package/dist/src/commands/enumerate.js +8 -0
  17. package/dist/src/commands/enumerate.js.map +1 -0
  18. package/dist/src/commands/expectmagic.d.ts +2 -0
  19. package/dist/src/commands/expectmagic.d.ts.map +1 -0
  20. package/dist/src/commands/expectmagic.js +8 -0
  21. package/dist/src/commands/expectmagic.js.map +1 -0
  22. package/dist/src/commands/fixtures.d.ts +2 -0
  23. package/dist/src/commands/fixtures.d.ts.map +1 -0
  24. package/dist/src/commands/fixtures.js +8 -0
  25. package/dist/src/commands/fixtures.js.map +1 -0
  26. package/dist/src/commands/init.d.ts +2 -0
  27. package/dist/src/commands/init.d.ts.map +1 -0
  28. package/dist/src/commands/init.js +64 -0
  29. package/dist/src/commands/init.js.map +1 -0
  30. package/dist/src/commands/scan.d.ts +2 -0
  31. package/dist/src/commands/scan.d.ts.map +1 -0
  32. package/dist/src/commands/scan.js +81 -0
  33. package/dist/src/commands/scan.js.map +1 -0
  34. package/dist/src/commands/vocab.d.ts +2 -0
  35. package/dist/src/commands/vocab.d.ts.map +1 -0
  36. package/dist/src/commands/vocab.js +166 -0
  37. package/dist/src/commands/vocab.js.map +1 -0
  38. package/dist/src/datamodel.d.ts +18 -0
  39. package/dist/src/datamodel.d.ts.map +1 -0
  40. package/dist/src/datamodel.js +23 -0
  41. package/dist/src/datamodel.js.map +1 -0
  42. package/dist/src/index.d.ts +3 -0
  43. package/dist/src/index.d.ts.map +1 -0
  44. package/dist/src/index.js +69 -0
  45. package/dist/src/index.js.map +1 -0
  46. package/dist/src/utils/pattern-scanner.d.ts +31 -0
  47. package/dist/src/utils/pattern-scanner.d.ts.map +1 -0
  48. package/dist/src/utils/pattern-scanner.js +154 -0
  49. package/dist/src/utils/pattern-scanner.js.map +1 -0
  50. package/dist/src/utils/ts-parser.d.ts +16 -0
  51. package/dist/src/utils/ts-parser.d.ts.map +1 -0
  52. package/dist/src/utils/ts-parser.js +350 -0
  53. package/dist/src/utils/ts-parser.js.map +1 -0
  54. package/package.json +40 -0
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.vocabCommand = vocabCommand;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs"));
39
+ const ts_parser_1 = require("../utils/ts-parser");
40
+ async function vocabCommand(sourceDirectory = 'src') {
41
+ const absolutePath = path.resolve(sourceDirectory);
42
+ if (!fs.existsSync(absolutePath)) {
43
+ throw new Error(`Directory not found: ${absolutePath}`);
44
+ }
45
+ if (!fs.statSync(absolutePath).isDirectory()) {
46
+ throw new Error(`Not a directory: ${absolutePath}`);
47
+ }
48
+ console.log(`Scanning directory: ${absolutePath}\n`);
49
+ const files = (0, ts_parser_1.scanDirectory)(absolutePath);
50
+ const allDeclarations = [];
51
+ for (const file of files) {
52
+ const declarations = (0, ts_parser_1.parseDeclarationsWithDetails)(file);
53
+ allDeclarations.push(...declarations);
54
+ }
55
+ if (allDeclarations.length === 0) {
56
+ console.log('No type declarations found.');
57
+ return;
58
+ }
59
+ // Generate DATA_DICTIONARY.md
60
+ const outputPath = path.resolve('DATA_DICTIONARY.md');
61
+ let markdown = '# Data Dictionary\n\n';
62
+ markdown += `Generated from: \`${sourceDirectory}\`\n\n`;
63
+ markdown += `Total declarations: ${allDeclarations.length}\n\n`;
64
+ markdown += '---\n\n';
65
+ const exported = allDeclarations.filter((d) => d.isExported);
66
+ const nonExported = allDeclarations.filter((d) => !d.isExported);
67
+ // Exported section
68
+ if (exported.length > 0) {
69
+ markdown += `## Exported\n\n`;
70
+ const exportedEnums = exported.filter((d) => d.type === 'enum');
71
+ const exportedTypes = exported.filter((d) => d.type === 'type');
72
+ const exportedInterfaces = exported.filter((d) => d.type === 'interface');
73
+ if (exportedEnums.length > 0) {
74
+ markdown += `### Enums\n\n`;
75
+ for (const decl of exportedEnums) {
76
+ const relativePath = path.relative(process.cwd(), decl.file);
77
+ markdown += `#### ${decl.name}\n\n`;
78
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
79
+ if (decl.definition) {
80
+ markdown += '```typescript\n';
81
+ markdown += decl.definition + '\n';
82
+ markdown += '```\n\n';
83
+ }
84
+ }
85
+ }
86
+ if (exportedTypes.length > 0) {
87
+ markdown += `### Types\n\n`;
88
+ for (const decl of exportedTypes) {
89
+ const relativePath = path.relative(process.cwd(), decl.file);
90
+ markdown += `#### ${decl.name}\n\n`;
91
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
92
+ if (decl.definition) {
93
+ markdown += '```typescript\n';
94
+ markdown += `type ${decl.name} = ${decl.definition}\n`;
95
+ markdown += '```\n\n';
96
+ }
97
+ }
98
+ }
99
+ if (exportedInterfaces.length > 0) {
100
+ markdown += `### Interfaces\n\n`;
101
+ for (const decl of exportedInterfaces) {
102
+ const relativePath = path.relative(process.cwd(), decl.file);
103
+ markdown += `#### ${decl.name}\n\n`;
104
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
105
+ if (decl.definition) {
106
+ markdown += '```typescript\n';
107
+ markdown += `interface ${decl.name} {\n${decl.definition}}\n`;
108
+ markdown += '```\n\n';
109
+ }
110
+ }
111
+ }
112
+ }
113
+ // Non-Exported section
114
+ if (nonExported.length > 0) {
115
+ markdown += `## Non-Exported\n\n`;
116
+ const nonExportedEnums = nonExported.filter((d) => d.type === 'enum');
117
+ const nonExportedTypes = nonExported.filter((d) => d.type === 'type');
118
+ const nonExportedInterfaces = nonExported.filter((d) => d.type === 'interface');
119
+ if (nonExportedEnums.length > 0) {
120
+ markdown += `### Enums\n\n`;
121
+ for (const decl of nonExportedEnums) {
122
+ const relativePath = path.relative(process.cwd(), decl.file);
123
+ markdown += `#### ${decl.name}\n\n`;
124
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
125
+ if (decl.definition) {
126
+ markdown += '```typescript\n';
127
+ markdown += decl.definition + '\n';
128
+ markdown += '```\n\n';
129
+ }
130
+ }
131
+ }
132
+ if (nonExportedTypes.length > 0) {
133
+ markdown += `### Types\n\n`;
134
+ for (const decl of nonExportedTypes) {
135
+ const relativePath = path.relative(process.cwd(), decl.file);
136
+ markdown += `#### ${decl.name}\n\n`;
137
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
138
+ if (decl.definition) {
139
+ markdown += '```typescript\n';
140
+ markdown += `type ${decl.name} = ${decl.definition}\n`;
141
+ markdown += '```\n\n';
142
+ }
143
+ }
144
+ }
145
+ if (nonExportedInterfaces.length > 0) {
146
+ markdown += `### Interfaces\n\n`;
147
+ for (const decl of nonExportedInterfaces) {
148
+ const relativePath = path.relative(process.cwd(), decl.file);
149
+ markdown += `#### ${decl.name}\n\n`;
150
+ markdown += `- **Location:** \`${relativePath}:${decl.line}\`\n\n`;
151
+ if (decl.definition) {
152
+ markdown += '```typescript\n';
153
+ markdown += `interface ${decl.name} {\n${decl.definition}}\n`;
154
+ markdown += '```\n\n';
155
+ }
156
+ }
157
+ }
158
+ }
159
+ fs.writeFileSync(outputPath, markdown, 'utf-8');
160
+ console.log(`✓ Generated DATA_DICTIONARY.md at: ${outputPath}`);
161
+ const totalInterfaces = allDeclarations.filter((d) => d.type === 'interface').length;
162
+ const totalTypes = allDeclarations.filter((d) => d.type === 'type').length;
163
+ const totalEnums = allDeclarations.filter((d) => d.type === 'enum').length;
164
+ console.log(`\nSummary: ${totalInterfaces} interfaces, ${totalTypes} types, ${totalEnums} enums`);
165
+ }
166
+ //# sourceMappingURL=vocab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocab.js","sourceRoot":"","sources":["../../../src/commands/vocab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare enum TypeScriptTypeKind {
2
+ Type = "type",
3
+ Enum = "enum",
4
+ Interface = "interface",
5
+ Class = "class"
6
+ }
7
+ export declare enum SnitchCommands {
8
+ Init = "init",
9
+ Scan = "scan",
10
+ Dirtydefaults = "dirtydefaults",
11
+ Dm = "dm",
12
+ Expectmagic = "expectmagic",
13
+ Fixtures = "fixtures",
14
+ Enumerate = "enumerate",
15
+ Badimports = "badimports",
16
+ Vocab = "vocab"
17
+ }
18
+ //# sourceMappingURL=datamodel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datamodel.d.ts","sourceRoot":"","sources":["../../src/datamodel.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,EAAE,OAAO;IACT,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;CAChB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnitchCommands = exports.TypeScriptTypeKind = void 0;
4
+ var TypeScriptTypeKind;
5
+ (function (TypeScriptTypeKind) {
6
+ TypeScriptTypeKind["Type"] = "type";
7
+ TypeScriptTypeKind["Enum"] = "enum";
8
+ TypeScriptTypeKind["Interface"] = "interface";
9
+ TypeScriptTypeKind["Class"] = "class";
10
+ })(TypeScriptTypeKind || (exports.TypeScriptTypeKind = TypeScriptTypeKind = {}));
11
+ var SnitchCommands;
12
+ (function (SnitchCommands) {
13
+ SnitchCommands["Init"] = "init";
14
+ SnitchCommands["Scan"] = "scan";
15
+ SnitchCommands["Dirtydefaults"] = "dirtydefaults";
16
+ SnitchCommands["Dm"] = "dm";
17
+ SnitchCommands["Expectmagic"] = "expectmagic";
18
+ SnitchCommands["Fixtures"] = "fixtures";
19
+ SnitchCommands["Enumerate"] = "enumerate";
20
+ SnitchCommands["Badimports"] = "badimports";
21
+ SnitchCommands["Vocab"] = "vocab";
22
+ })(SnitchCommands || (exports.SnitchCommands = SnitchCommands = {}));
23
+ //# sourceMappingURL=datamodel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/datamodel.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,6CAAuB,CAAA;IACvB,qCAAe,CAAA;AACjB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAED,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA;IACb,iDAA+B,CAAA;IAC/B,2BAAS,CAAA;IACT,6CAA2B,CAAA;IAC3B,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,iCAAe,CAAA;AACjB,CAAC,EAVW,cAAc,8BAAd,cAAc,QAUzB"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const dirtydefaults_1 = require("./commands/dirtydefaults");
5
+ const dm_1 = require("./commands/dm");
6
+ const fixtures_1 = require("./commands/fixtures");
7
+ const expectmagic_1 = require("./commands/expectmagic");
8
+ const scan_1 = require("./commands/scan");
9
+ const init_1 = require("./commands/init");
10
+ const enumerate_1 = require("./commands/enumerate");
11
+ const badimports_1 = require("./commands/badimports");
12
+ const vocab_1 = require("./commands/vocab");
13
+ const datamodel_1 = require("./datamodel");
14
+ const args = process.argv.slice(2);
15
+ if (args.length === 0) {
16
+ console.log('Usage: snitch <command> <params>');
17
+ console.log('\nAvailable commands:');
18
+ console.log(' init - Create .snitchconfig.json in current directory');
19
+ console.log(' dm <sourceDirectory> - Generate report of type, enum, and interface declarations');
20
+ console.log(' scan <scanName> [directory] - Run pattern scanner (e.g., scan expectmagic test)');
21
+ console.log(' fixtures <sourceDirectory> - Find inline config declarations that should use fixtures');
22
+ console.log(' expectmagic [sourceDirectory] - Find magic values in expect() assertions (defaults to ./test)');
23
+ console.log(' enumerate [sourceDirectory] - Find inline union types that should use enums');
24
+ console.log(' badimports [sourceDirectory] - Find imports that violate rules (defaults to ./src)');
25
+ console.log(' vocab [sourceDirectory] - Generate DATA_DICTIONARY.md from type definitions (defaults to ./src)');
26
+ process.exit(1);
27
+ }
28
+ const command = args[0];
29
+ const params = args.slice(1);
30
+ async function main() {
31
+ switch (command) {
32
+ case datamodel_1.SnitchCommands.Init:
33
+ await (0, init_1.initCommand)();
34
+ break;
35
+ case datamodel_1.SnitchCommands.Dirtydefaults:
36
+ await (0, dirtydefaults_1.dirtydefaultsCommand)(params.length > 0 ? params[0] : 'src');
37
+ break;
38
+ case datamodel_1.SnitchCommands.Dm:
39
+ await (0, dm_1.dmCommand)(params.length > 0 ? params[0] : 'src');
40
+ break;
41
+ case datamodel_1.SnitchCommands.Scan:
42
+ await (0, scan_1.scanCommand)(params);
43
+ break;
44
+ case datamodel_1.SnitchCommands.Fixtures:
45
+ await (0, fixtures_1.fixturesCommand)(params.length > 0 ? params[0] : 'test');
46
+ break;
47
+ case datamodel_1.SnitchCommands.Expectmagic:
48
+ await (0, expectmagic_1.expectmagicCommand)(params.length > 0 ? params[0] : 'test');
49
+ break;
50
+ case datamodel_1.SnitchCommands.Enumerate:
51
+ await (0, enumerate_1.enumerateCommand)(params.length > 0 ? params[0] : 'src');
52
+ break;
53
+ case datamodel_1.SnitchCommands.Badimports:
54
+ await (0, badimports_1.badimportsCommand)(params.length > 0 ? params[0] : 'src');
55
+ break;
56
+ case datamodel_1.SnitchCommands.Vocab:
57
+ await (0, vocab_1.vocabCommand)(params.length > 0 ? params[0] : 'src');
58
+ break;
59
+ default:
60
+ console.error(`Unknown command: ${command}`);
61
+ console.log("Use 'snitch' without arguments to see available commands");
62
+ process.exit(1);
63
+ }
64
+ }
65
+ main().catch((error) => {
66
+ console.error('Error:', error.message);
67
+ process.exit(1);
68
+ });
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface Warning {
2
+ message: string;
3
+ regexes: string[];
4
+ recommendation?: {
5
+ message: string;
6
+ recommendations: string[];
7
+ };
8
+ }
9
+ export interface ScanConfig {
10
+ warnings: Warning[];
11
+ }
12
+ export interface Violation {
13
+ warning: string;
14
+ file: string;
15
+ line: number;
16
+ content: string;
17
+ recommendation?: {
18
+ message: string;
19
+ recommendations: string[];
20
+ };
21
+ }
22
+ export type FileFilter = (filePath: string, fileName: string) => boolean;
23
+ export declare function scanFiles(directory: string, fileFilter: FileFilter): string[];
24
+ export declare function findViolations(files: string[], config: ScanConfig): Violation[];
25
+ export declare function printReport(violations: Violation[], reportTitle: string): void;
26
+ export declare const FILE_FILTERS: {
27
+ testFiles: (_filePath: string, fileName: string) => boolean;
28
+ allTypeScript: (_filePath: string, fileName: string) => boolean;
29
+ allFiles: (_filePath: string, _fileName: string) => boolean;
30
+ };
31
+ //# sourceMappingURL=pattern-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-scanner.d.ts","sourceRoot":"","sources":["../../../src/utils/pattern-scanner.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzE,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,MAAM,EAAE,CAyBV;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,UAAU,GACjB,SAAS,EAAE,CA6Bb;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,SAAS,EAAE,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAsEN;AAED,eAAO,MAAM,YAAY;2BACA,MAAM,YAAY,MAAM;+BAEpB,MAAM,YAAY,MAAM;0BAE7B,MAAM,aAAa,MAAM;CAChD,CAAC"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FILE_FILTERS = void 0;
37
+ exports.scanFiles = scanFiles;
38
+ exports.findViolations = findViolations;
39
+ exports.printReport = printReport;
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ function scanFiles(directory, fileFilter) {
43
+ const files = [];
44
+ function scan(dir) {
45
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
46
+ for (const entry of entries) {
47
+ const fullPath = path.join(dir, entry.name);
48
+ if (entry.isDirectory()) {
49
+ if (entry.name !== "node_modules" &&
50
+ entry.name !== "dist" &&
51
+ !entry.name.startsWith(".")) {
52
+ scan(fullPath);
53
+ }
54
+ }
55
+ else if (entry.isFile() && fileFilter(fullPath, entry.name)) {
56
+ files.push(fullPath);
57
+ }
58
+ }
59
+ }
60
+ scan(directory);
61
+ return files;
62
+ }
63
+ function findViolations(files, config) {
64
+ const violations = [];
65
+ for (const file of files) {
66
+ const content = fs.readFileSync(file, "utf-8");
67
+ const lines = content.split("\n");
68
+ for (let i = 0; i < lines.length; i++) {
69
+ const line = lines[i];
70
+ const lineNumber = i + 1;
71
+ for (const warning of config.warnings) {
72
+ for (const regexPattern of warning.regexes) {
73
+ const regex = new RegExp(regexPattern);
74
+ if (regex.test(line)) {
75
+ violations.push({
76
+ warning: warning.message,
77
+ file: file,
78
+ line: lineNumber,
79
+ content: line.trim(),
80
+ recommendation: warning.recommendation,
81
+ });
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return violations;
88
+ }
89
+ function printReport(violations, reportTitle) {
90
+ if (violations.length === 0) {
91
+ console.log("No violations found.");
92
+ return;
93
+ }
94
+ console.log("=".repeat(80));
95
+ console.log(reportTitle.toUpperCase());
96
+ console.log("=".repeat(80));
97
+ console.log(`\nTotal violations found: ${violations.length}\n`);
98
+ const uniqueRecommendations = new Map();
99
+ for (const violation of violations) {
100
+ if (violation.recommendation) {
101
+ const key = violation.recommendation.message;
102
+ if (!uniqueRecommendations.has(key)) {
103
+ uniqueRecommendations.set(key, violation.recommendation);
104
+ }
105
+ }
106
+ }
107
+ if (uniqueRecommendations.size > 0) {
108
+ console.log("RECOMMENDATIONS:");
109
+ console.log("─".repeat(80));
110
+ for (const rec of uniqueRecommendations.values()) {
111
+ console.log(`\n${rec.message}`);
112
+ for (const recommendation of rec.recommendations) {
113
+ console.log(` • ${recommendation}`);
114
+ }
115
+ console.log("");
116
+ }
117
+ }
118
+ const groupedByWarning = violations.reduce((acc, violation) => {
119
+ if (!acc[violation.warning]) {
120
+ acc[violation.warning] = [];
121
+ }
122
+ acc[violation.warning].push(violation);
123
+ return acc;
124
+ }, {});
125
+ for (const [warningMessage, items] of Object.entries(groupedByWarning)) {
126
+ console.log(`\n${"─".repeat(80)}`);
127
+ console.log(`${warningMessage.toUpperCase()} (${items.length})`);
128
+ console.log("─".repeat(80));
129
+ for (const violation of items) {
130
+ const relativePath = path.relative(process.cwd(), violation.file);
131
+ console.log(`\n File: ${relativePath}:${violation.line}`);
132
+ console.log(` Code: ${violation.content}`);
133
+ }
134
+ }
135
+ if (uniqueRecommendations.size > 0) {
136
+ console.log(`\n${"─".repeat(80)}`);
137
+ console.log("RECOMMENDATIONS:");
138
+ console.log("─".repeat(80));
139
+ for (const rec of uniqueRecommendations.values()) {
140
+ console.log(`\n${rec.message}`);
141
+ for (const recommendation of rec.recommendations) {
142
+ console.log(` • ${recommendation}`);
143
+ }
144
+ console.log("");
145
+ }
146
+ }
147
+ console.log(`\n${"=".repeat(80)}\n`);
148
+ }
149
+ exports.FILE_FILTERS = {
150
+ testFiles: (_filePath, fileName) => fileName.endsWith(".test.ts") || fileName.endsWith(".spec.ts"),
151
+ allTypeScript: (_filePath, fileName) => fileName.endsWith(".ts") || fileName.endsWith(".tsx"),
152
+ allFiles: (_filePath, _fileName) => true,
153
+ };
154
+ //# sourceMappingURL=pattern-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-scanner.js","sourceRoot":"","sources":["../../../src/utils/pattern-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { TypeScriptTypeKind } from "../datamodel";
2
+ export interface Declaration {
3
+ name: string;
4
+ type: TypeScriptTypeKind;
5
+ file: string;
6
+ line: number;
7
+ }
8
+ export interface DeclarationWithExport extends Declaration {
9
+ isExported: boolean;
10
+ definition?: string;
11
+ }
12
+ export declare function scanDirectory(directory: string): string[];
13
+ export declare function parseDeclarations(filePath: string): Declaration[];
14
+ export declare function parseDeclarationsWithExportInfo(filePath: string): DeclarationWithExport[];
15
+ export declare function parseDeclarationsWithDetails(filePath: string): DeclarationWithExport[];
16
+ //# sourceMappingURL=ts-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/ts-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBzD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CA+CjE;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,GACf,qBAAqB,EAAE,CA4FzB;AA4ED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,qBAAqB,EAAE,CAsGzB"}