skhaall-codeguard 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.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +125 -0
  3. package/dist/cli.d.ts +16 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +295 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/core/indexer.d.ts +21 -0
  8. package/dist/core/indexer.d.ts.map +1 -0
  9. package/dist/core/indexer.js +96 -0
  10. package/dist/core/indexer.js.map +1 -0
  11. package/dist/graph/dependency-graph.d.ts +37 -0
  12. package/dist/graph/dependency-graph.d.ts.map +1 -0
  13. package/dist/graph/dependency-graph.js +94 -0
  14. package/dist/graph/dependency-graph.js.map +1 -0
  15. package/dist/graph/impact-resolver.d.ts +40 -0
  16. package/dist/graph/impact-resolver.d.ts.map +1 -0
  17. package/dist/graph/impact-resolver.js +108 -0
  18. package/dist/graph/impact-resolver.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +299 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/parsers/base-parser.d.ts +111 -0
  24. package/dist/parsers/base-parser.d.ts.map +1 -0
  25. package/dist/parsers/base-parser.js +7 -0
  26. package/dist/parsers/base-parser.js.map +1 -0
  27. package/dist/parsers/detector.d.ts +10 -0
  28. package/dist/parsers/detector.d.ts.map +1 -0
  29. package/dist/parsers/detector.js +61 -0
  30. package/dist/parsers/detector.js.map +1 -0
  31. package/dist/parsers/extractors/api-calls.d.ts +10 -0
  32. package/dist/parsers/extractors/api-calls.d.ts.map +1 -0
  33. package/dist/parsers/extractors/api-calls.js +99 -0
  34. package/dist/parsers/extractors/api-calls.js.map +1 -0
  35. package/dist/parsers/extractors/auth-guards.d.ts +8 -0
  36. package/dist/parsers/extractors/auth-guards.d.ts.map +1 -0
  37. package/dist/parsers/extractors/auth-guards.js +23 -0
  38. package/dist/parsers/extractors/auth-guards.js.map +1 -0
  39. package/dist/parsers/prisma-parser.d.ts +45 -0
  40. package/dist/parsers/prisma-parser.d.ts.map +1 -0
  41. package/dist/parsers/prisma-parser.js +197 -0
  42. package/dist/parsers/prisma-parser.js.map +1 -0
  43. package/dist/parsers/typescript-parser.d.ts +28 -0
  44. package/dist/parsers/typescript-parser.d.ts.map +1 -0
  45. package/dist/parsers/typescript-parser.js +374 -0
  46. package/dist/parsers/typescript-parser.js.map +1 -0
  47. package/dist/setup.d.ts +10 -0
  48. package/dist/setup.d.ts.map +1 -0
  49. package/dist/setup.js +135 -0
  50. package/dist/setup.js.map +1 -0
  51. package/dist/storage/index-store.d.ts +36 -0
  52. package/dist/storage/index-store.d.ts.map +1 -0
  53. package/dist/storage/index-store.js +108 -0
  54. package/dist/storage/index-store.js.map +1 -0
  55. package/dist/tools/changelog.d.ts +36 -0
  56. package/dist/tools/changelog.d.ts.map +1 -0
  57. package/dist/tools/changelog.js +212 -0
  58. package/dist/tools/changelog.js.map +1 -0
  59. package/dist/tools/check.d.ts +31 -0
  60. package/dist/tools/check.d.ts.map +1 -0
  61. package/dist/tools/check.js +180 -0
  62. package/dist/tools/check.js.map +1 -0
  63. package/dist/tools/graph.d.ts +20 -0
  64. package/dist/tools/graph.d.ts.map +1 -0
  65. package/dist/tools/graph.js +192 -0
  66. package/dist/tools/graph.js.map +1 -0
  67. package/dist/tools/guard.d.ts +30 -0
  68. package/dist/tools/guard.d.ts.map +1 -0
  69. package/dist/tools/guard.js +132 -0
  70. package/dist/tools/guard.js.map +1 -0
  71. package/dist/tools/health.d.ts +33 -0
  72. package/dist/tools/health.d.ts.map +1 -0
  73. package/dist/tools/health.js +241 -0
  74. package/dist/tools/health.js.map +1 -0
  75. package/dist/tools/impact.d.ts +10 -0
  76. package/dist/tools/impact.d.ts.map +1 -0
  77. package/dist/tools/impact.js +45 -0
  78. package/dist/tools/impact.js.map +1 -0
  79. package/dist/tools/regression.d.ts +29 -0
  80. package/dist/tools/regression.d.ts.map +1 -0
  81. package/dist/tools/regression.js +151 -0
  82. package/dist/tools/regression.js.map +1 -0
  83. package/dist/tools/routes.d.ts +40 -0
  84. package/dist/tools/routes.d.ts.map +1 -0
  85. package/dist/tools/routes.js +203 -0
  86. package/dist/tools/routes.js.map +1 -0
  87. package/dist/tools/schema.d.ts +37 -0
  88. package/dist/tools/schema.d.ts.map +1 -0
  89. package/dist/tools/schema.js +214 -0
  90. package/dist/tools/schema.js.map +1 -0
  91. package/dist/tools/search.d.ts +18 -0
  92. package/dist/tools/search.d.ts.map +1 -0
  93. package/dist/tools/search.js +99 -0
  94. package/dist/tools/search.js.map +1 -0
  95. package/dist/tools/tool-definitions.d.ts +15 -0
  96. package/dist/tools/tool-definitions.d.ts.map +1 -0
  97. package/dist/tools/tool-definitions.js +157 -0
  98. package/dist/tools/tool-definitions.js.map +1 -0
  99. package/dist/utils/import-resolver.d.ts +33 -0
  100. package/dist/utils/import-resolver.d.ts.map +1 -0
  101. package/dist/utils/import-resolver.js +150 -0
  102. package/dist/utils/import-resolver.js.map +1 -0
  103. package/dist/utils/logger.d.ts +15 -0
  104. package/dist/utils/logger.d.ts.map +1 -0
  105. package/dist/utils/logger.js +49 -0
  106. package/dist/utils/logger.js.map +1 -0
  107. package/dist/utils/path.d.ts +6 -0
  108. package/dist/utils/path.d.ts.map +1 -0
  109. package/dist/utils/path.js +12 -0
  110. package/dist/utils/path.js.map +1 -0
  111. package/dist/utils/scanner.d.ts +13 -0
  112. package/dist/utils/scanner.d.ts.map +1 -0
  113. package/dist/utils/scanner.js +55 -0
  114. package/dist/utils/scanner.js.map +1 -0
  115. package/dist/utils/validators.d.ts +45 -0
  116. package/dist/utils/validators.d.ts.map +1 -0
  117. package/dist/utils/validators.js +54 -0
  118. package/dist/utils/validators.js.map +1 -0
  119. package/package.json +57 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Parser TypeScript/JavaScript profond via ts-morph.
3
+ * Extrait imports, exports, fonctions, classes, types, routes API.
4
+ * Supporte : .ts, .tsx, .js, .jsx, .mjs, .cjs
5
+ */
6
+ import type { BaseParser, FileNode, Language } from './base-parser.js';
7
+ export declare class TypeScriptParser implements BaseParser {
8
+ readonly supportedLanguages: Language[];
9
+ private project;
10
+ constructor(tsConfigPath?: string);
11
+ canParse(filePath: string): boolean;
12
+ parseFile(filePath: string): Promise<FileNode>;
13
+ parseFiles(filePaths: string[]): Promise<FileNode[]>;
14
+ private extractImports;
15
+ private extractExports;
16
+ private extractFunctions;
17
+ private extractParameters;
18
+ private extractClasses;
19
+ private extractTypes;
20
+ private extractTypeProperties;
21
+ private extractRoutes;
22
+ private isNextApiRoute;
23
+ private extractNextRoutes;
24
+ private nextPathFromFile;
25
+ private extractNestRoutes;
26
+ private getDecoratorStringArg;
27
+ }
28
+ //# sourceMappingURL=typescript-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EASR,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAM1B,qBAAa,gBAAiB,YAAW,UAAU;IACjD,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAgC;IACvE,OAAO,CAAC,OAAO,CAAU;gBAEb,YAAY,CAAC,EAAE,MAAM;IAajC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAK7B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA8B9C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkB1D,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,cAAc;IAuEtB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Parser TypeScript/JavaScript profond via ts-morph.
3
+ * Extrait imports, exports, fonctions, classes, types, routes API.
4
+ * Supporte : .ts, .tsx, .js, .jsx, .mjs, .cjs
5
+ */
6
+ import { Project, Node } from 'ts-morph';
7
+ import { detectLanguage } from './detector.js';
8
+ import { logger } from '../utils/logger.js';
9
+ import { extractApiCalls } from './extractors/api-calls.js';
10
+ import { extractAuthGuards } from './extractors/auth-guards.js';
11
+ export class TypeScriptParser {
12
+ supportedLanguages = ['typescript', 'javascript'];
13
+ project;
14
+ constructor(tsConfigPath) {
15
+ this.project = new Project({
16
+ tsConfigFilePath: tsConfigPath,
17
+ skipAddingFilesFromTsConfig: true,
18
+ compilerOptions: tsConfigPath ? undefined : {
19
+ allowJs: true,
20
+ jsx: 4, // JsxEmit.ReactJSX
21
+ strict: true,
22
+ esModuleInterop: true,
23
+ },
24
+ });
25
+ }
26
+ canParse(filePath) {
27
+ const lang = detectLanguage(filePath);
28
+ return lang === 'typescript' || lang === 'javascript';
29
+ }
30
+ async parseFile(filePath) {
31
+ const sourceFile = this.project.addSourceFileAtPath(filePath);
32
+ try {
33
+ const apiCalls = extractApiCalls(sourceFile);
34
+ const node = {
35
+ filePath,
36
+ language: detectLanguage(filePath),
37
+ imports: this.extractImports(sourceFile),
38
+ exports: this.extractExports(sourceFile),
39
+ functions: this.extractFunctions(sourceFile),
40
+ classes: this.extractClasses(sourceFile),
41
+ types: this.extractTypes(sourceFile),
42
+ routes: this.extractRoutes(sourceFile, filePath),
43
+ ...(apiCalls.length > 0 ? { apiCalls } : {}),
44
+ parsedAt: Date.now(),
45
+ };
46
+ return node;
47
+ }
48
+ catch (error) {
49
+ logger.error('Echec parsing fichier', {
50
+ filePath,
51
+ error: error instanceof Error ? error.message : String(error),
52
+ });
53
+ throw error;
54
+ }
55
+ finally {
56
+ this.project.removeSourceFile(sourceFile);
57
+ }
58
+ }
59
+ async parseFiles(filePaths) {
60
+ const results = [];
61
+ // Parsing sequentiel pour eviter les problemes de memoire sur gros projets
62
+ for (const filePath of filePaths) {
63
+ if (this.canParse(filePath)) {
64
+ try {
65
+ const node = await this.parseFile(filePath);
66
+ results.push(node);
67
+ }
68
+ catch {
69
+ logger.warn('Fichier ignore (parsing echoue)', { filePath });
70
+ }
71
+ }
72
+ }
73
+ return results;
74
+ }
75
+ // --- Extraction des imports ---
76
+ extractImports(sourceFile) {
77
+ const imports = [];
78
+ for (const decl of sourceFile.getImportDeclarations()) {
79
+ const source = decl.getModuleSpecifierValue();
80
+ const isTypeOnly = decl.isTypeOnly();
81
+ // Default import
82
+ const defaultImport = decl.getDefaultImport();
83
+ if (defaultImport) {
84
+ imports.push({ name: defaultImport.getText(), source, isTypeOnly });
85
+ }
86
+ // Named imports
87
+ for (const named of decl.getNamedImports()) {
88
+ imports.push({
89
+ name: named.getName(),
90
+ source,
91
+ isTypeOnly: isTypeOnly || named.isTypeOnly(),
92
+ });
93
+ }
94
+ // Namespace import (import * as X)
95
+ const namespaceImport = decl.getNamespaceImport();
96
+ if (namespaceImport) {
97
+ imports.push({ name: `* as ${namespaceImport.getText()}`, source, isTypeOnly });
98
+ }
99
+ }
100
+ return imports;
101
+ }
102
+ // --- Extraction des exports ---
103
+ extractExports(sourceFile) {
104
+ const exports = [];
105
+ // Fonctions exportees
106
+ for (const fn of sourceFile.getFunctions()) {
107
+ if (fn.isExported()) {
108
+ exports.push({
109
+ name: fn.getName() ?? 'default',
110
+ kind: fn.isDefaultExport() ? 'default' : 'function',
111
+ isTypeOnly: false,
112
+ });
113
+ }
114
+ }
115
+ // Classes exportees
116
+ for (const cls of sourceFile.getClasses()) {
117
+ if (cls.isExported()) {
118
+ exports.push({
119
+ name: cls.getName() ?? 'default',
120
+ kind: cls.isDefaultExport() ? 'default' : 'class',
121
+ isTypeOnly: false,
122
+ });
123
+ }
124
+ }
125
+ // Interfaces exportees
126
+ for (const iface of sourceFile.getInterfaces()) {
127
+ if (iface.isExported()) {
128
+ exports.push({ name: iface.getName(), kind: 'interface', isTypeOnly: true });
129
+ }
130
+ }
131
+ // Type aliases exportes
132
+ for (const typeAlias of sourceFile.getTypeAliases()) {
133
+ if (typeAlias.isExported()) {
134
+ exports.push({ name: typeAlias.getName(), kind: 'type', isTypeOnly: true });
135
+ }
136
+ }
137
+ // Enums exportes
138
+ for (const enumDecl of sourceFile.getEnums()) {
139
+ if (enumDecl.isExported()) {
140
+ exports.push({ name: enumDecl.getName(), kind: 'enum', isTypeOnly: false });
141
+ }
142
+ }
143
+ // Variables exportees (export const X = ...)
144
+ for (const varStatement of sourceFile.getVariableStatements()) {
145
+ if (varStatement.isExported()) {
146
+ for (const decl of varStatement.getDeclarations()) {
147
+ exports.push({ name: decl.getName(), kind: 'variable', isTypeOnly: false });
148
+ }
149
+ }
150
+ }
151
+ // Re-exports (export { X } from './module')
152
+ for (const exportDecl of sourceFile.getExportDeclarations()) {
153
+ for (const named of exportDecl.getNamedExports()) {
154
+ exports.push({
155
+ name: named.getName(),
156
+ kind: 're-export',
157
+ isTypeOnly: exportDecl.isTypeOnly(),
158
+ });
159
+ }
160
+ }
161
+ return exports;
162
+ }
163
+ // --- Extraction des fonctions ---
164
+ extractFunctions(sourceFile) {
165
+ const functions = [];
166
+ for (const fn of sourceFile.getFunctions()) {
167
+ functions.push({
168
+ name: fn.getName() ?? '(anonymous)',
169
+ isExported: fn.isExported(),
170
+ isAsync: fn.isAsync(),
171
+ parameters: this.extractParameters(fn.getParameters()),
172
+ returnType: fn.getReturnTypeNode()?.getText() ?? null,
173
+ line: fn.getStartLineNumber(),
174
+ });
175
+ }
176
+ // Arrow functions exportees (export const handler = async (req) => { ... })
177
+ for (const varStatement of sourceFile.getVariableStatements()) {
178
+ for (const decl of varStatement.getDeclarations()) {
179
+ const initializer = decl.getInitializer();
180
+ if (initializer && Node.isArrowFunction(initializer)) {
181
+ functions.push({
182
+ name: decl.getName(),
183
+ isExported: varStatement.isExported(),
184
+ isAsync: initializer.isAsync(),
185
+ parameters: this.extractParameters(initializer.getParameters()),
186
+ returnType: initializer.getReturnTypeNode()?.getText() ?? null,
187
+ line: decl.getStartLineNumber(),
188
+ });
189
+ }
190
+ }
191
+ }
192
+ return functions;
193
+ }
194
+ extractParameters(params) {
195
+ return params.map((p) => ({
196
+ name: p.getName(),
197
+ type: p.getTypeNode()?.getText() ?? null,
198
+ isOptional: p.isOptional(),
199
+ }));
200
+ }
201
+ // --- Extraction des classes ---
202
+ extractClasses(sourceFile) {
203
+ return sourceFile.getClasses().map((cls) => ({
204
+ name: cls.getName() ?? '(anonymous)',
205
+ isExported: cls.isExported(),
206
+ decorators: cls.getDecorators().map((d) => d.getName()),
207
+ methods: cls.getMethods().map((m) => ({
208
+ name: m.getName(),
209
+ isExported: true,
210
+ isAsync: m.isAsync(),
211
+ parameters: this.extractParameters(m.getParameters()),
212
+ returnType: m.getReturnTypeNode()?.getText() ?? null,
213
+ line: m.getStartLineNumber(),
214
+ })),
215
+ line: cls.getStartLineNumber(),
216
+ }));
217
+ }
218
+ // --- Extraction des types et interfaces ---
219
+ extractTypes(sourceFile) {
220
+ const types = [];
221
+ for (const iface of sourceFile.getInterfaces()) {
222
+ types.push({
223
+ name: iface.getName(),
224
+ kind: 'interface',
225
+ isExported: iface.isExported(),
226
+ properties: iface.getProperties().map((p) => ({
227
+ name: p.getName(),
228
+ type: p.getTypeNode()?.getText() ?? 'unknown',
229
+ isOptional: p.hasQuestionToken(),
230
+ })),
231
+ line: iface.getStartLineNumber(),
232
+ });
233
+ }
234
+ for (const typeAlias of sourceFile.getTypeAliases()) {
235
+ types.push({
236
+ name: typeAlias.getName(),
237
+ kind: 'type',
238
+ isExported: typeAlias.isExported(),
239
+ properties: this.extractTypeProperties(typeAlias),
240
+ line: typeAlias.getStartLineNumber(),
241
+ });
242
+ }
243
+ for (const enumDecl of sourceFile.getEnums()) {
244
+ types.push({
245
+ name: enumDecl.getName(),
246
+ kind: 'enum',
247
+ isExported: enumDecl.isExported(),
248
+ properties: enumDecl.getMembers().map((m) => ({
249
+ name: m.getName(),
250
+ type: m.getValue()?.toString() ?? 'auto',
251
+ isOptional: false,
252
+ })),
253
+ line: enumDecl.getStartLineNumber(),
254
+ });
255
+ }
256
+ return types;
257
+ }
258
+ extractTypeProperties(typeAlias) {
259
+ // Extraire les proprietes si c'est un type objet (type X = { a: string; b: number })
260
+ const typeNode = typeAlias.getTypeNode();
261
+ if (!typeNode || !Node.isTypeLiteral(typeNode))
262
+ return [];
263
+ return typeNode.getProperties().map((p) => ({
264
+ name: p.getName(),
265
+ type: p.getTypeNode()?.getText() ?? 'unknown',
266
+ isOptional: p.hasQuestionToken(),
267
+ }));
268
+ }
269
+ // --- Detection des routes API ---
270
+ extractRoutes(sourceFile, filePath) {
271
+ const routes = [];
272
+ // Next.js App Router (app/**/route.ts)
273
+ if (this.isNextApiRoute(filePath)) {
274
+ routes.push(...this.extractNextRoutes(sourceFile, filePath));
275
+ }
276
+ // NestJS Controllers (@Controller + @Get/@Post/...)
277
+ routes.push(...this.extractNestRoutes(sourceFile, filePath));
278
+ return routes;
279
+ }
280
+ isNextApiRoute(filePath) {
281
+ const normalized = filePath.replace(/\\/g, '/');
282
+ return /\/app\/.*\/route\.(ts|js)$/.test(normalized);
283
+ }
284
+ extractNextRoutes(sourceFile, filePath) {
285
+ const routes = [];
286
+ const httpMethods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'];
287
+ // Next.js exporte des fonctions nommees GET, POST, PUT, PATCH, DELETE
288
+ for (const fn of sourceFile.getFunctions()) {
289
+ const name = fn.getName();
290
+ if (name && httpMethods.includes(name) && fn.isExported()) {
291
+ routes.push({
292
+ method: name,
293
+ path: this.nextPathFromFile(filePath),
294
+ handler: name,
295
+ filePath,
296
+ line: fn.getStartLineNumber(),
297
+ });
298
+ }
299
+ }
300
+ // Aussi les arrow functions exportees (export const GET = ...)
301
+ for (const varStatement of sourceFile.getVariableStatements()) {
302
+ if (varStatement.isExported()) {
303
+ for (const decl of varStatement.getDeclarations()) {
304
+ const name = decl.getName();
305
+ if (httpMethods.includes(name)) {
306
+ routes.push({
307
+ method: name,
308
+ path: this.nextPathFromFile(filePath),
309
+ handler: name,
310
+ filePath,
311
+ line: decl.getStartLineNumber(),
312
+ });
313
+ }
314
+ }
315
+ }
316
+ }
317
+ return routes;
318
+ }
319
+ nextPathFromFile(filePath) {
320
+ const normalized = filePath.replace(/\\/g, '/');
321
+ const match = normalized.match(/\/app(\/.*?)\/route\.(ts|js)$/);
322
+ if (!match)
323
+ return '/unknown';
324
+ // Convertir les [param] en :param
325
+ return match[1].replace(/\[([^\]]+)\]/g, ':$1');
326
+ }
327
+ extractNestRoutes(sourceFile, filePath) {
328
+ const routes = [];
329
+ const methodDecorators = new Map([
330
+ ['Get', 'GET'],
331
+ ['Post', 'POST'],
332
+ ['Put', 'PUT'],
333
+ ['Patch', 'PATCH'],
334
+ ['Delete', 'DELETE'],
335
+ ]);
336
+ for (const cls of sourceFile.getClasses()) {
337
+ // Trouver @Controller('path')
338
+ const controllerDeco = cls.getDecorators().find((d) => d.getName() === 'Controller');
339
+ if (!controllerDeco)
340
+ continue;
341
+ const basePath = this.getDecoratorStringArg(controllerDeco) ?? '';
342
+ for (const method of cls.getMethods()) {
343
+ for (const deco of method.getDecorators()) {
344
+ const httpMethod = methodDecorators.get(deco.getName());
345
+ if (!httpMethod)
346
+ continue;
347
+ const subPath = this.getDecoratorStringArg(deco) ?? '';
348
+ const fullPath = `/${basePath}/${subPath}`.replace(/\/+/g, '/').replace(/\/$/, '') || '/';
349
+ const authGuards = extractAuthGuards(method, cls);
350
+ routes.push({
351
+ method: httpMethod,
352
+ path: fullPath,
353
+ handler: `${cls.getName()}.${method.getName()}`,
354
+ filePath,
355
+ line: method.getStartLineNumber(),
356
+ ...(authGuards.length > 0 ? { authGuards } : {}),
357
+ });
358
+ }
359
+ }
360
+ }
361
+ return routes;
362
+ }
363
+ getDecoratorStringArg(decorator) {
364
+ const args = decorator.getArguments();
365
+ if (args.length === 0)
366
+ return null;
367
+ const firstArg = args[0];
368
+ if (Node.isStringLiteral(firstArg)) {
369
+ return firstArg.getLiteralValue();
370
+ }
371
+ return null;
372
+ }
373
+ }
374
+ //# sourceMappingURL=typescript-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-parser.js","sourceRoot":"","sources":["../../src/parsers/typescript-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CodeGuard Setup — installe les hooks dans le settings.json global de Claude Code.
4
+ *
5
+ * Usage :
6
+ * npx skhaall-codeguard setup Installer les hooks
7
+ * npx skhaall-codeguard unsetup Retirer les hooks
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
package/dist/setup.js ADDED
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CodeGuard Setup — installe les hooks dans le settings.json global de Claude Code.
4
+ *
5
+ * Usage :
6
+ * npx skhaall-codeguard setup Installer les hooks
7
+ * npx skhaall-codeguard unsetup Retirer les hooks
8
+ */
9
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
10
+ import { join, resolve, dirname } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ // Chemin absolu vers le CLI de CodeGuard (dans le meme dossier que ce script)
15
+ const CLI_PATH = resolve(__dirname, 'cli.js').replace(/\\/g, '/');
16
+ // Chemin du settings.json global de Claude Code
17
+ function getSettingsPath() {
18
+ const home = process.env.USERPROFILE ?? process.env.HOME ?? '';
19
+ return join(home, '.claude', 'settings.json');
20
+ }
21
+ const GUARD_HOOK = {
22
+ matcher: 'Edit|Write',
23
+ hooks: [{
24
+ type: 'command',
25
+ command: `node "${CLI_PATH}" guard`,
26
+ timeout: 30,
27
+ statusMessage: 'CodeGuard: analyse pre-modification...',
28
+ }],
29
+ };
30
+ const CHECK_HOOK = {
31
+ matcher: 'Edit|Write',
32
+ hooks: [{
33
+ type: 'command',
34
+ command: `node "${CLI_PATH}" check`,
35
+ timeout: 30,
36
+ statusMessage: 'CodeGuard: verification post-modification...',
37
+ }],
38
+ };
39
+ function isCodeGuardHook(entry) {
40
+ return entry.hooks.some((h) => h.command.includes('codeguard') && h.command.includes('cli.js'));
41
+ }
42
+ function install() {
43
+ const settingsPath = getSettingsPath();
44
+ console.log(`Settings : ${settingsPath}`);
45
+ // Lire le settings existant ou creer un nouveau
46
+ let settings = {};
47
+ if (existsSync(settingsPath)) {
48
+ try {
49
+ settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
50
+ }
51
+ catch {
52
+ console.error('Erreur : settings.json invalide. Sauvegardez-le et reessayez.');
53
+ process.exit(1);
54
+ }
55
+ }
56
+ else {
57
+ // Creer le dossier .claude si necessaire
58
+ const dir = dirname(settingsPath);
59
+ if (!existsSync(dir))
60
+ mkdirSync(dir, { recursive: true });
61
+ }
62
+ if (!settings.hooks)
63
+ settings.hooks = {};
64
+ if (!settings.hooks.PreToolUse)
65
+ settings.hooks.PreToolUse = [];
66
+ if (!settings.hooks.PostToolUse)
67
+ settings.hooks.PostToolUse = [];
68
+ // Retirer les anciens hooks CodeGuard s'ils existent
69
+ settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter((e) => !isCodeGuardHook(e));
70
+ settings.hooks.PostToolUse = settings.hooks.PostToolUse.filter((e) => !isCodeGuardHook(e));
71
+ // Ajouter les nouveaux
72
+ settings.hooks.PreToolUse.push(GUARD_HOOK);
73
+ settings.hooks.PostToolUse.unshift(CHECK_HOOK);
74
+ writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
75
+ console.log('');
76
+ console.log('CodeGuard installe avec succes.');
77
+ console.log('');
78
+ console.log('Hooks ajoutes :');
79
+ console.log(' PreToolUse(Edit|Write) → guard (analyse pre-modification)');
80
+ console.log(' PostToolUse(Edit|Write) → check (verification post-modification)');
81
+ console.log('');
82
+ console.log('Relance Claude Code pour activer les hooks.');
83
+ }
84
+ function uninstall() {
85
+ const settingsPath = getSettingsPath();
86
+ if (!existsSync(settingsPath)) {
87
+ console.log('Rien a retirer — settings.json introuvable.');
88
+ return;
89
+ }
90
+ let settings;
91
+ try {
92
+ settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
93
+ }
94
+ catch {
95
+ console.error('Erreur : settings.json invalide.');
96
+ process.exit(1);
97
+ }
98
+ if (!settings.hooks) {
99
+ console.log('Aucun hook configure.');
100
+ return;
101
+ }
102
+ let removed = 0;
103
+ if (settings.hooks.PreToolUse) {
104
+ const before = settings.hooks.PreToolUse.length;
105
+ settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter((e) => !isCodeGuardHook(e));
106
+ removed += before - settings.hooks.PreToolUse.length;
107
+ }
108
+ if (settings.hooks.PostToolUse) {
109
+ const before = settings.hooks.PostToolUse.length;
110
+ settings.hooks.PostToolUse = settings.hooks.PostToolUse.filter((e) => !isCodeGuardHook(e));
111
+ removed += before - settings.hooks.PostToolUse.length;
112
+ }
113
+ writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
114
+ if (removed > 0) {
115
+ console.log(`CodeGuard desinstalle — ${removed} hook(s) retire(s).`);
116
+ }
117
+ else {
118
+ console.log('Aucun hook CodeGuard trouve.');
119
+ }
120
+ }
121
+ // --- Main ---
122
+ const command = process.argv[2];
123
+ if (command === 'setup') {
124
+ install();
125
+ }
126
+ else if (command === 'unsetup') {
127
+ uninstall();
128
+ }
129
+ else {
130
+ console.log('Usage :');
131
+ console.log(' codeguard setup Installer les hooks Claude Code');
132
+ console.log(' codeguard unsetup Retirer les hooks Claude Code');
133
+ process.exit(1);
134
+ }
135
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Stockage de la carte du projet en JSON.
3
+ * La carte est sauvegardee dans .codeguard/index.json a la racine du projet cible.
4
+ */
5
+ import type { FileNode } from '../parsers/base-parser.js';
6
+ export interface ProjectIndex {
7
+ /** Racine du projet indexe */
8
+ projectRoot: string;
9
+ /** Date de derniere indexation complete */
10
+ indexedAt: number;
11
+ /** Nombre de fichiers indexes */
12
+ fileCount: number;
13
+ /** Carte : chemin du fichier → FileNode */
14
+ files: Record<string, FileNode>;
15
+ }
16
+ export declare class IndexStore {
17
+ private indexPath;
18
+ private snapshotPath;
19
+ private codeguardDir;
20
+ constructor(projectRoot: string);
21
+ /** Charge l'index existant ou retourne null */
22
+ load(): ProjectIndex | null;
23
+ /** Sauvegarde l'index complet */
24
+ save(index: ProjectIndex): void;
25
+ /** Met a jour un seul fichier dans l'index (re-indexation incrementale) */
26
+ updateFile(index: ProjectIndex, node: FileNode): ProjectIndex;
27
+ /** Supprime un fichier de l'index */
28
+ removeFile(index: ProjectIndex, filePath: string): ProjectIndex;
29
+ /** Verifie si l'index existe */
30
+ exists(): boolean;
31
+ /** Sauvegarde l'index actuel comme snapshot (avant un reindex) */
32
+ saveSnapshot(): void;
33
+ /** Charge le snapshot precedent ou retourne null */
34
+ loadSnapshot(): ProjectIndex | null;
35
+ }
36
+ //# sourceMappingURL=index-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-store.d.ts","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACjC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM;IAM/B,+CAA+C;IAC/C,IAAI,IAAI,YAAY,GAAG,IAAI;IAwB3B,iCAAiC;IACjC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAS/B,2EAA2E;IAC3E,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY;IAO7D,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;IAO/D,gCAAgC;IAChC,MAAM,IAAI,OAAO;IAIjB,kEAAkE;IAClE,YAAY,IAAI,IAAI;IAepB,oDAAoD;IACpD,YAAY,IAAI,YAAY,GAAG,IAAI;CAgBpC"}