driftdetect-detectors 0.6.1 → 0.7.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Geoffrey Fernald
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Constants Pattern Detector
3
+ *
4
+ * Detects patterns related to constants, enums, and configuration values:
5
+ * - Inconsistent constant naming conventions
6
+ * - Magic values that should be constants
7
+ * - Hardcoded secrets in constants
8
+ * - Duplicate constant definitions
9
+ *
10
+ * @requirements Constant & Enum Extraction Feature
11
+ */
12
+ import type { Violation, QuickFix, Language } from 'driftdetect-core';
13
+ import { UnifiedDetector, type DetectionStrategy, type StrategyResult, type DetectionContext } from '../base/unified-detector.js';
14
+ /**
15
+ * Constants pattern detector
16
+ *
17
+ * Detects patterns and violations related to constants usage.
18
+ */
19
+ export declare class ConstantsDetector extends UnifiedDetector {
20
+ readonly id = "config/constants";
21
+ readonly category: "config";
22
+ readonly subcategory = "constants";
23
+ readonly name = "Constants Pattern Detector";
24
+ readonly description = "Detects constant naming conventions, magic values, and potential secrets";
25
+ readonly supportedLanguages: Language[];
26
+ readonly strategies: DetectionStrategy[];
27
+ /**
28
+ * Learned naming convention for this codebase
29
+ */
30
+ private learnedConvention;
31
+ /**
32
+ * Count of constants by naming convention
33
+ */
34
+ private conventionCounts;
35
+ /**
36
+ * Generate quick fix for a violation
37
+ */
38
+ generateQuickFix(violation: Violation): QuickFix | null;
39
+ protected detectWithStrategy(strategy: DetectionStrategy, context: DetectionContext): Promise<StrategyResult>;
40
+ private detectWithRegex;
41
+ private detectSemantic;
42
+ private detectLearning;
43
+ private getConstantPatterns;
44
+ private detectNamingConvention;
45
+ private isInConstantDeclaration;
46
+ private suggestConstantName;
47
+ private getLineNumber;
48
+ private getLineStart;
49
+ private createPatternMatch;
50
+ private createViolation;
51
+ }
52
+ /**
53
+ * Factory function
54
+ */
55
+ export declare function createConstantsDetector(): ConstantsDetector;
56
+ //# sourceMappingURL=constants-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-detector.d.ts","sourceRoot":"","sources":["../../src/config/constants-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAgB,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AA4GrC;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,EAAE,sBAAsB;IACjC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,QAAQ,CAAC,WAAW,8EACyD;IAC7E,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAQrC;IACF,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAqC;IAE7E;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAuB;IAEhD;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA6B;IAErD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI;cA0CvC,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,cAAc,CAAC;YAiBZ,eAAe;YAqGf,cAAc;YAmDd,cAAc;IAuD5B,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;CA2BxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -0,0 +1,411 @@
1
+ /**
2
+ * Constants Pattern Detector
3
+ *
4
+ * Detects patterns related to constants, enums, and configuration values:
5
+ * - Inconsistent constant naming conventions
6
+ * - Magic values that should be constants
7
+ * - Hardcoded secrets in constants
8
+ * - Duplicate constant definitions
9
+ *
10
+ * @requirements Constant & Enum Extraction Feature
11
+ */
12
+ import { UnifiedDetector, } from '../base/unified-detector.js';
13
+ // ============================================================================
14
+ // Constants
15
+ // ============================================================================
16
+ /**
17
+ * Common constant naming conventions by language
18
+ */
19
+ const NAMING_CONVENTIONS = [
20
+ // SCREAMING_SNAKE_CASE (most common)
21
+ {
22
+ pattern: /^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$/,
23
+ name: 'SCREAMING_SNAKE_CASE',
24
+ languages: ['typescript', 'javascript', 'python', 'java', 'php', 'go'],
25
+ },
26
+ // PascalCase (C#, Go exported)
27
+ {
28
+ pattern: /^[A-Z][a-zA-Z0-9]*$/,
29
+ name: 'PascalCase',
30
+ languages: ['csharp', 'go'],
31
+ },
32
+ // camelCase (some JS/TS projects)
33
+ {
34
+ pattern: /^[a-z][a-zA-Z0-9]*$/,
35
+ name: 'camelCase',
36
+ languages: ['typescript', 'javascript'],
37
+ },
38
+ // k prefix (Hungarian notation)
39
+ {
40
+ pattern: /^k[A-Z][a-zA-Z0-9]*$/,
41
+ name: 'kPrefixPascalCase',
42
+ languages: ['csharp', 'cpp'],
43
+ },
44
+ ];
45
+ /**
46
+ * Patterns that indicate magic values
47
+ */
48
+ const MAGIC_VALUE_PATTERNS = [
49
+ // HTTP status codes
50
+ {
51
+ pattern: /\b(200|201|204|301|302|400|401|403|404|500|502|503)\b/,
52
+ category: 'http_status',
53
+ severity: 'warning',
54
+ },
55
+ // Common timeouts (in ms)
56
+ {
57
+ pattern: /\b(1000|3000|5000|10000|30000|60000)\b/,
58
+ category: 'timeout',
59
+ severity: 'info',
60
+ },
61
+ // Port numbers
62
+ {
63
+ pattern: /\b(80|443|3000|3001|5000|8000|8080|8443|9000)\b/,
64
+ category: 'port',
65
+ severity: 'info',
66
+ },
67
+ // Retry counts
68
+ {
69
+ pattern: /\b(retry|retries|attempts)\s*[=:]\s*[3-5]\b/i,
70
+ category: 'retry_count',
71
+ severity: 'info',
72
+ },
73
+ // Pagination limits
74
+ {
75
+ pattern: /\b(limit|pageSize|perPage)\s*[=:]\s*(10|20|25|50|100)\b/i,
76
+ category: 'pagination',
77
+ severity: 'info',
78
+ },
79
+ ];
80
+ /**
81
+ * Secret patterns (simplified - full detection in security-scanner)
82
+ */
83
+ const SECRET_PATTERNS = [
84
+ /(?:api[_-]?key|apikey)\s*[=:]\s*['"][^'"]{20,}['"]/i,
85
+ /(?:secret|password|passwd|pwd)\s*[=:]\s*['"][^'"]+['"]/i,
86
+ /(?:token|auth[_-]?token)\s*[=:]\s*['"][^'"]{20,}['"]/i,
87
+ /(?:private[_-]?key)\s*[=:]\s*['"][^'"]+['"]/i,
88
+ ];
89
+ // ============================================================================
90
+ // Detector Implementation
91
+ // ============================================================================
92
+ /**
93
+ * Constants pattern detector
94
+ *
95
+ * Detects patterns and violations related to constants usage.
96
+ */
97
+ export class ConstantsDetector extends UnifiedDetector {
98
+ id = 'config/constants';
99
+ category = 'config';
100
+ subcategory = 'constants';
101
+ name = 'Constants Pattern Detector';
102
+ description = 'Detects constant naming conventions, magic values, and potential secrets';
103
+ supportedLanguages = [
104
+ 'typescript',
105
+ 'javascript',
106
+ 'python',
107
+ 'java',
108
+ 'csharp',
109
+ 'php',
110
+ 'go',
111
+ ];
112
+ strategies = ['regex', 'semantic', 'learning'];
113
+ /**
114
+ * Learned naming convention for this codebase
115
+ */
116
+ learnedConvention = null;
117
+ /**
118
+ * Count of constants by naming convention
119
+ */
120
+ conventionCounts = new Map();
121
+ /**
122
+ * Generate quick fix for a violation
123
+ */
124
+ generateQuickFix(violation) {
125
+ if (violation.patternId === 'magic-value') {
126
+ return {
127
+ title: 'Extract to constant',
128
+ kind: 'quickfix',
129
+ edit: {
130
+ changes: {
131
+ [violation.file]: [{
132
+ range: violation.range,
133
+ newText: `/* TODO: Extract to constant */`,
134
+ }],
135
+ },
136
+ },
137
+ isPreferred: true,
138
+ confidence: 0.7,
139
+ };
140
+ }
141
+ if (violation.patternId === 'hardcoded-secret') {
142
+ return {
143
+ title: 'Move to environment variable',
144
+ kind: 'quickfix',
145
+ edit: {
146
+ changes: {
147
+ [violation.file]: [{
148
+ range: violation.range,
149
+ newText: `process.env.SECRET_VALUE`,
150
+ }],
151
+ },
152
+ },
153
+ isPreferred: true,
154
+ confidence: 0.8,
155
+ };
156
+ }
157
+ return null;
158
+ }
159
+ // ============================================================================
160
+ // Strategy Implementation
161
+ // ============================================================================
162
+ async detectWithStrategy(strategy, context) {
163
+ switch (strategy) {
164
+ case 'regex':
165
+ return this.detectWithRegex(context);
166
+ case 'semantic':
167
+ return this.detectSemantic(context);
168
+ case 'learning':
169
+ return this.detectLearning(context);
170
+ default:
171
+ return this.createSkippedResult(strategy, 'Not implemented');
172
+ }
173
+ }
174
+ // ============================================================================
175
+ // Regex Detection
176
+ // ============================================================================
177
+ async detectWithRegex(context) {
178
+ const patterns = [];
179
+ const violations = [];
180
+ const content = context.content;
181
+ const lines = content.split('\n');
182
+ // Detect constant declarations
183
+ const constantPatterns = this.getConstantPatterns(context.language);
184
+ for (const pattern of constantPatterns) {
185
+ let match;
186
+ while ((match = pattern.regex.exec(content)) !== null) {
187
+ const line = this.getLineNumber(content, match.index);
188
+ const name = match[1] || match[0];
189
+ // Check naming convention
190
+ const convention = this.detectNamingConvention(name);
191
+ if (convention) {
192
+ this.conventionCounts.set(convention, (this.conventionCounts.get(convention) || 0) + 1);
193
+ }
194
+ patterns.push(this.createPatternMatch(`constant-${pattern.type}`, context.file, line, match.index - this.getLineStart(content, line), {
195
+ name,
196
+ type: pattern.type,
197
+ convention,
198
+ }));
199
+ }
200
+ }
201
+ // Detect magic values
202
+ for (const magicPattern of MAGIC_VALUE_PATTERNS) {
203
+ let match;
204
+ const regex = new RegExp(magicPattern.pattern.source, 'gi');
205
+ while ((match = regex.exec(content)) !== null) {
206
+ const line = this.getLineNumber(content, match.index);
207
+ const lineContent = lines[line - 1] || '';
208
+ // Skip if it's already in a constant declaration
209
+ if (this.isInConstantDeclaration(lineContent)) {
210
+ continue;
211
+ }
212
+ violations.push(this.createViolation('magic-value', context.file, line, match.index - this.getLineStart(content, line), `Magic value '${match[0]}' should be extracted to a named constant`, magicPattern.severity, {
213
+ value: match[0],
214
+ category: magicPattern.category,
215
+ suggestedName: this.suggestConstantName(match[0], magicPattern.category),
216
+ }));
217
+ }
218
+ }
219
+ // Detect potential secrets
220
+ for (const secretPattern of SECRET_PATTERNS) {
221
+ let match;
222
+ const regex = new RegExp(secretPattern.source, 'gi');
223
+ while ((match = regex.exec(content)) !== null) {
224
+ const line = this.getLineNumber(content, match.index);
225
+ violations.push(this.createViolation('hardcoded-secret', context.file, line, match.index - this.getLineStart(content, line), 'Potential hardcoded secret detected - use environment variables', 'error', {
226
+ pattern: secretPattern.source,
227
+ }));
228
+ }
229
+ }
230
+ return this.createStrategyResult('regex', patterns, violations, 0.8);
231
+ }
232
+ // ============================================================================
233
+ // Semantic Detection
234
+ // ============================================================================
235
+ async detectSemantic(context) {
236
+ const patterns = [];
237
+ const violations = [];
238
+ const content = context.content;
239
+ // Semantic keywords that indicate constants
240
+ const semanticPatterns = [
241
+ { keyword: 'CONFIG', category: 'config' },
242
+ { keyword: 'SETTINGS', category: 'config' },
243
+ { keyword: 'OPTIONS', category: 'config' },
244
+ { keyword: 'DEFAULT', category: 'default' },
245
+ { keyword: 'MAX_', category: 'limit' },
246
+ { keyword: 'MIN_', category: 'limit' },
247
+ { keyword: 'TIMEOUT', category: 'timeout' },
248
+ { keyword: 'RETRY', category: 'retry' },
249
+ { keyword: 'ERROR_', category: 'error' },
250
+ { keyword: 'STATUS_', category: 'status' },
251
+ { keyword: 'API_', category: 'api' },
252
+ { keyword: 'URL_', category: 'api' },
253
+ { keyword: 'ENDPOINT', category: 'api' },
254
+ ];
255
+ for (const { keyword, category } of semanticPatterns) {
256
+ const regex = new RegExp(`\\b([A-Z_]*${keyword}[A-Z_0-9]*)\\b`, 'g');
257
+ let match;
258
+ while ((match = regex.exec(content)) !== null) {
259
+ const line = this.getLineNumber(content, match.index);
260
+ patterns.push(this.createPatternMatch(`constant-semantic-${category}`, context.file, line, match.index - this.getLineStart(content, line), {
261
+ name: match[1],
262
+ category,
263
+ keyword,
264
+ }));
265
+ }
266
+ }
267
+ return this.createStrategyResult('semantic', patterns, violations, 0.7);
268
+ }
269
+ // ============================================================================
270
+ // Learning Detection
271
+ // ============================================================================
272
+ async detectLearning(context) {
273
+ const violations = [];
274
+ // Learn the dominant naming convention
275
+ if (!this.learnedConvention && this.conventionCounts.size > 0) {
276
+ let maxCount = 0;
277
+ for (const [convention, count] of this.conventionCounts) {
278
+ if (count > maxCount) {
279
+ maxCount = count;
280
+ this.learnedConvention = convention;
281
+ }
282
+ }
283
+ }
284
+ // If we've learned a convention, flag violations
285
+ if (this.learnedConvention) {
286
+ const constantPatterns = this.getConstantPatterns(context.language);
287
+ const content = context.content;
288
+ for (const pattern of constantPatterns) {
289
+ let match;
290
+ while ((match = pattern.regex.exec(content)) !== null) {
291
+ const name = match[1] || match[0];
292
+ const convention = this.detectNamingConvention(name);
293
+ if (convention && convention !== this.learnedConvention) {
294
+ const line = this.getLineNumber(content, match.index);
295
+ violations.push(this.createViolation('naming-convention-violation', context.file, line, match.index - this.getLineStart(content, line), `Constant '${name}' uses ${convention} but codebase convention is ${this.learnedConvention}`, 'warning', {
296
+ name,
297
+ actualConvention: convention,
298
+ expectedConvention: this.learnedConvention,
299
+ }));
300
+ }
301
+ }
302
+ }
303
+ }
304
+ return this.createStrategyResult('learning', [], violations, 0.9);
305
+ }
306
+ // ============================================================================
307
+ // Helper Methods
308
+ // ============================================================================
309
+ getConstantPatterns(language) {
310
+ switch (language) {
311
+ case 'typescript':
312
+ case 'javascript':
313
+ return [
314
+ { regex: /\bconst\s+([A-Z][A-Z0-9_]*)\s*=/g, type: 'const' },
315
+ { regex: /\bexport\s+const\s+([A-Z][A-Z0-9_]*)\s*=/g, type: 'export-const' },
316
+ ];
317
+ case 'python':
318
+ return [
319
+ { regex: /^([A-Z][A-Z0-9_]*)\s*=/gm, type: 'module-constant' },
320
+ ];
321
+ case 'java':
322
+ return [
323
+ {
324
+ regex: /\b(?:public|private|protected)?\s*static\s+final\s+\w+\s+([A-Z][A-Z0-9_]*)\s*=/g,
325
+ type: 'static-final',
326
+ },
327
+ ];
328
+ case 'csharp':
329
+ return [
330
+ { regex: /\bconst\s+\w+\s+([A-Z][A-Za-z0-9]*)\s*=/g, type: 'const' },
331
+ {
332
+ regex: /\bstatic\s+readonly\s+\w+\s+([A-Z][A-Za-z0-9]*)\s*=/g,
333
+ type: 'static-readonly',
334
+ },
335
+ ];
336
+ case 'php':
337
+ return [
338
+ { regex: /\bconst\s+([A-Z][A-Z0-9_]*)\s*=/g, type: 'const' },
339
+ { regex: /\bdefine\s*\(\s*['"]([A-Z][A-Z0-9_]*)['"]/g, type: 'define' },
340
+ ];
341
+ case 'go':
342
+ return [
343
+ { regex: /\bconst\s+([A-Z][A-Za-z0-9]*)\s*=/g, type: 'const' },
344
+ { regex: /\bconst\s+\(\s*([A-Z][A-Za-z0-9]*)/g, type: 'const-block' },
345
+ ];
346
+ default:
347
+ return [];
348
+ }
349
+ }
350
+ detectNamingConvention(name) {
351
+ for (const convention of NAMING_CONVENTIONS) {
352
+ if (convention.pattern.test(name)) {
353
+ return convention.name;
354
+ }
355
+ }
356
+ return null;
357
+ }
358
+ isInConstantDeclaration(line) {
359
+ return /\b(const|final|readonly|define)\b/i.test(line);
360
+ }
361
+ suggestConstantName(value, category) {
362
+ const prefix = category.toUpperCase();
363
+ const suffix = value.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase();
364
+ return `${prefix}_${suffix}`;
365
+ }
366
+ getLineNumber(content, index) {
367
+ return content.substring(0, index).split('\n').length;
368
+ }
369
+ getLineStart(content, lineNumber) {
370
+ const lines = content.split('\n');
371
+ let start = 0;
372
+ for (let i = 0; i < lineNumber - 1 && i < lines.length; i++) {
373
+ start += lines[i].length + 1;
374
+ }
375
+ return start;
376
+ }
377
+ createPatternMatch(patternId, file, line, column, _metadata) {
378
+ return {
379
+ patternId,
380
+ location: { file, line, column },
381
+ confidence: 0.85,
382
+ isOutlier: false,
383
+ };
384
+ }
385
+ createViolation(patternId, file, line, column, message, severity, _metadata) {
386
+ return {
387
+ id: `${patternId}-${file}-${line}-${column}`,
388
+ patternId,
389
+ file,
390
+ range: {
391
+ start: { line: line - 1, character: column },
392
+ end: { line: line - 1, character: column + 1 },
393
+ },
394
+ message,
395
+ severity: severity === 'error' ? 'error' : severity === 'warning' ? 'warning' : 'info',
396
+ expected: 'Follow constant naming conventions',
397
+ actual: message,
398
+ aiExplainAvailable: true,
399
+ aiFixAvailable: true,
400
+ firstSeen: new Date(),
401
+ occurrences: 1,
402
+ };
403
+ }
404
+ }
405
+ /**
406
+ * Factory function
407
+ */
408
+ export function createConstantsDetector() {
409
+ return new ConstantsDetector();
410
+ }
411
+ //# sourceMappingURL=constants-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-detector.js","sourceRoot":"","sources":["../../src/config/constants-detector.ts"],"names":[],"mappings":"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"}
@@ -37,4 +37,5 @@ export { DefaultValuesSemanticDetector, createDefaultValuesSemanticDetector, } f
37
37
  export { ConfigValidationSemanticDetector, createConfigValidationSemanticDetector, } from './config-validation-semantic.js';
38
38
  export { EnvironmentDetectionSemanticDetector, createEnvironmentDetectionSemanticDetector, } from './environment-detection-semantic.js';
39
39
  export * from './aspnet/index.js';
40
+ export { ConstantsDetector, createConstantsDetector, } from './constants-detector.js';
40
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -68,4 +68,8 @@ export { EnvironmentDetectionSemanticDetector, createEnvironmentDetectionSemanti
68
68
  // ASP.NET Core Detectors (C#)
69
69
  // ============================================================================
70
70
  export * from './aspnet/index.js';
71
+ // ============================================================================
72
+ // Constants Pattern Detector
73
+ // ============================================================================
74
+ export { ConstantsDetector, createConstantsDetector, } from './constants-detector.js';
71
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -121,16 +121,16 @@ export declare function createAllDetectors(): {
121
121
  clientPatterns: import("./api/client-patterns.js").ClientPatternsDetector;
122
122
  retryPatterns: import("./api/retry-patterns.js").RetryPatternsDetector;
123
123
  };
124
- auth: (import("./auth/audit-semantic.js").AuditSemanticDetector | import("./auth/middleware-semantic.js").AuthMiddlewareSemanticDetector | import("./auth/ownership-semantic.js").OwnershipSemanticDetector | import("./auth/permission-checks-semantic.js").PermissionChecksSemanticDetector | import("./auth/rbac-semantic.js").RBACSemanticDetector | import("./auth/token-handling-semantic.js").TokenHandlingSemanticDetector)[];
125
- security: (import("./security/input-sanitization-semantic.js").InputSanitizationSemanticDetector | import("./security/rate-limiting-semantic.js").RateLimitingSemanticDetector | import("./security/csrf-protection-semantic.js").CSRFProtectionSemanticDetector | import("./security/sql-injection-semantic.js").SQLInjectionSemanticDetector | import("./security/xss-prevention-semantic.js").XSSPreventionSemanticDetector | import("./security/csp-headers-semantic.js").CSPHeadersSemanticDetector | import("./security/secret-management-semantic.js").SecretManagementSemanticDetector)[];
124
+ auth: (import("./auth/middleware-semantic.js").AuthMiddlewareSemanticDetector | import("./auth/token-handling-semantic.js").TokenHandlingSemanticDetector | import("./auth/permission-checks-semantic.js").PermissionChecksSemanticDetector | import("./auth/rbac-semantic.js").RBACSemanticDetector | import("./auth/ownership-semantic.js").OwnershipSemanticDetector | import("./auth/audit-semantic.js").AuditSemanticDetector)[];
125
+ security: (import("./security/input-sanitization-semantic.js").InputSanitizationSemanticDetector | import("./security/sql-injection-semantic.js").SQLInjectionSemanticDetector | import("./security/xss-prevention-semantic.js").XSSPreventionSemanticDetector | import("./security/csrf-protection-semantic.js").CSRFProtectionSemanticDetector | import("./security/csp-headers-semantic.js").CSPHeadersSemanticDetector | import("./security/secret-management-semantic.js").SecretManagementSemanticDetector | import("./security/rate-limiting-semantic.js").RateLimitingSemanticDetector)[];
126
126
  errors: (import("./errors/exception-hierarchy-semantic.js").ExceptionHierarchySemanticDetector | import("./errors/error-codes-semantic.js").ErrorCodesSemanticDetector | import("./errors/try-catch-semantic.js").TryCatchSemanticDetector | import("./errors/error-propagation-semantic.js").ErrorPropagationSemanticDetector | import("./errors/async-errors-semantic.js").AsyncErrorsSemanticDetector | import("./errors/circuit-breaker-semantic.js").CircuitBreakerSemanticDetector | import("./errors/error-logging-semantic.js").ErrorLoggingSemanticDetector)[];
127
127
  structural: (import("./structural/file-naming-semantic.js").FileNamingSemanticDetector | import("./structural/directory-structure-semantic.js").DirectoryStructureSemanticDetector | import("./structural/co-location-semantic.js").CoLocationSemanticDetector | import("./structural/barrel-exports-semantic.js").BarrelExportsSemanticDetector | import("./structural/import-ordering-semantic.js").ImportOrderingSemanticDetector | import("./structural/module-boundaries-semantic.js").ModuleBoundariesSemanticDetector | import("./structural/circular-deps-semantic.js").CircularDepsSemanticDetector | import("./structural/package-boundaries-semantic.js").PackageBoundariesSemanticDetector)[];
128
128
  components: (import("./components/component-structure-semantic.js").ComponentStructureSemanticDetector | import("./components/props-patterns-semantic.js").PropsPatternsSemanticDetector | import("./components/duplicate-detection-semantic.js").DuplicateDetectionSemanticDetector | import("./components/near-duplicate-semantic.js").NearDuplicateSemanticDetector | import("./components/state-patterns-semantic.js").StatePatternsSemanticDetector | import("./components/composition-semantic.js").CompositionSemanticDetector | import("./components/ref-forwarding-semantic.js").RefForwardingSemanticDetector | import("./components/modal-patterns-semantic.js").ModalPatternsSemanticDetector)[];
129
- styling: (import("./styling/class-naming-semantic.js").ClassNamingSemanticDetector | import("./styling/color-usage-semantic.js").ColorUsageSemanticDetector | import("./styling/design-tokens-semantic.js").DesignTokensSemanticDetector | import("./styling/responsive-semantic.js").ResponsiveSemanticDetector | import("./styling/spacing-scale-semantic.js").SpacingScaleSemanticDetector | import("./styling/tailwind-patterns-semantic.js").TailwindPatternsSemanticDetector | import("./styling/typography-semantic.js").TypographySemanticDetector | import("./styling/z-index-scale-semantic.js").ZIndexScaleSemanticDetector)[];
129
+ styling: (import("./styling/design-tokens-semantic.js").DesignTokensSemanticDetector | import("./styling/spacing-scale-semantic.js").SpacingScaleSemanticDetector | import("./styling/color-usage-semantic.js").ColorUsageSemanticDetector | import("./styling/typography-semantic.js").TypographySemanticDetector | import("./styling/class-naming-semantic.js").ClassNamingSemanticDetector | import("./styling/tailwind-patterns-semantic.js").TailwindPatternsSemanticDetector | import("./styling/z-index-scale-semantic.js").ZIndexScaleSemanticDetector | import("./styling/responsive-semantic.js").ResponsiveSemanticDetector)[];
130
130
  logging: (import("./logging/structured-logging-semantic.js").StructuredLoggingSemanticDetector | import("./logging/log-levels-semantic.js").LogLevelsSemanticDetector | import("./logging/context-fields-semantic.js").ContextFieldsSemanticDetector | import("./logging/correlation-ids-semantic.js").CorrelationIdsSemanticDetector | import("./logging/pii-redaction-semantic.js").PIIRedactionSemanticDetector | import("./logging/metrics-semantic.js").MetricsSemanticDetector | import("./logging/health-checks-semantic.js").HealthChecksSemanticDetector)[];
131
131
  testing: (import("./testing/test-file-naming-semantic.js").TestFileNamingSemanticDetector | import("./testing/test-co-location-semantic.js").TestCoLocationSemanticDetector | import("./testing/test-structure-semantic.js").TestStructureSemanticDetector | import("./testing/mock-patterns-semantic.js").MockPatternsSemanticDetector | import("./testing/fixture-patterns-semantic.js").FixturePatternsSemanticDetector | import("./testing/describe-naming-semantic.js").DescribeNamingSemanticDetector | import("./testing/setup-teardown-semantic.js").SetupTeardownSemanticDetector)[];
132
132
  dataAccess: (import("./data-access/query-patterns-semantic.js").QueryPatternsSemanticDetector | import("./data-access/repository-pattern-semantic.js").RepositoryPatternSemanticDetector | import("./data-access/transaction-semantic.js").TransactionSemanticDetector | import("./data-access/validation-semantic.js").ValidationSemanticDetector | import("./data-access/dto-patterns-semantic.js").DTOPatternsSemanticDetector | import("./data-access/n-plus-one-semantic.js").NPlusOneSemanticDetector | import("./data-access/connection-pooling-semantic.js").ConnectionPoolingSemanticDetector)[];
133
- config: (import("./config/env-config-semantic.js").EnvConfigSemanticDetector | import("./config/feature-flags-semantic.js").FeatureFlagsSemanticDetector | import("./config/required-optional-semantic.js").RequiredOptionalSemanticDetector | import("./config/default-values-semantic.js").DefaultValuesSemanticDetector | import("./config/config-validation-semantic.js").ConfigValidationSemanticDetector | import("./config/environment-detection-semantic.js").EnvironmentDetectionSemanticDetector)[];
133
+ config: (import("./config/env-config-semantic.js").EnvConfigSemanticDetector | import("./config/required-optional-semantic.js").RequiredOptionalSemanticDetector | import("./config/default-values-semantic.js").DefaultValuesSemanticDetector | import("./config/feature-flags-semantic.js").FeatureFlagsSemanticDetector | import("./config/config-validation-semantic.js").ConfigValidationSemanticDetector | import("./config/environment-detection-semantic.js").EnvironmentDetectionSemanticDetector)[];
134
134
  types: (import("./types/file-location-semantic.js").FileLocationSemanticDetector | import("./types/naming-conventions-semantic.js").NamingConventionsSemanticDetector | import("./types/interface-vs-type-semantic.js").InterfaceVsTypeSemanticDetector | import("./types/generic-patterns-semantic.js").GenericPatternsSemanticDetector | import("./types/utility-types-semantic.js").UtilityTypesSemanticDetector | import("./types/type-assertions-semantic.js").TypeAssertionsSemanticDetector | import("./types/any-usage-semantic.js").AnyUsageSemanticDetector)[];
135
135
  accessibility: (import("./accessibility/semantic-html-semantic.js").SemanticHtmlSemanticDetector | import("./accessibility/aria-roles-semantic.js").AriaRolesSemanticDetector | import("./accessibility/keyboard-nav-semantic.js").KeyboardNavSemanticDetector | import("./accessibility/focus-management-semantic.js").FocusManagementSemanticDetector | import("./accessibility/heading-hierarchy-semantic.js").HeadingHierarchySemanticDetector | import("./accessibility/alt-text-semantic.js").AltTextSemanticDetector)[];
136
136
  documentation: (import("./documentation/jsdoc-patterns-semantic.js").JSDocPatternsSemanticDetector | import("./documentation/readme-structure-semantic.js").ReadmeStructureSemanticDetector | import("./documentation/todo-patterns-semantic.js").TodoPatternsSemanticDetector | import("./documentation/deprecation-semantic.js").DeprecationSemanticDetector | import("./documentation/example-code-semantic.js").ExampleCodeSemanticDetector)[];
@@ -139,59 +139,59 @@ export declare function createAllDetectors(): {
139
139
  /**
140
140
  * Create all auth learning detectors
141
141
  */
142
- export declare function createAllAuthLearningDetectors(): (import("./auth/token-handling-learning.js").TokenHandlingLearningDetector | import("./auth/middleware-usage-learning.js").AuthMiddlewareLearningDetector | import("./auth/permission-checks-learning.js").PermissionChecksLearningDetector | import("./auth/rbac-patterns-learning.js").RBACPatternsLearningDetector | import("./auth/resource-ownership-learning.js").ResourceOwnershipLearningDetector | import("./auth/audit-logging-learning.js").AuditLoggingLearningDetector)[];
142
+ export declare function createAllAuthLearningDetectors(): (import("./auth/middleware-usage-learning.js").AuthMiddlewareLearningDetector | import("./auth/token-handling-learning.js").TokenHandlingLearningDetector | import("./auth/permission-checks-learning.js").PermissionChecksLearningDetector | import("./auth/rbac-patterns-learning.js").RBACPatternsLearningDetector | import("./auth/resource-ownership-learning.js").ResourceOwnershipLearningDetector | import("./auth/audit-logging-learning.js").AuditLoggingLearningDetector)[];
143
143
  /**
144
144
  * Create all security learning detectors
145
145
  */
146
- export declare function createAllSecurityLearningDetectors(): (import("./security/input-sanitization-learning.js").InputSanitizationLearningDetector | import("./security/rate-limiting-learning.js").RateLimitingLearningDetector | import("./security/csrf-protection-learning.js").CSRFProtectionLearningDetector | import("./security/sql-injection-learning.js").SQLInjectionLearningDetector | import("./security/xss-prevention-learning.js").XSSPreventionLearningDetector | import("./security/csp-headers-learning.js").CSPHeadersLearningDetector | import("./security/secret-management-learning.js").SecretManagementLearningDetector)[];
146
+ export declare function createAllSecurityLearningDetectors(): (import("./security/input-sanitization-learning.js").InputSanitizationLearningDetector | import("./security/sql-injection-learning.js").SQLInjectionLearningDetector | import("./security/xss-prevention-learning.js").XSSPreventionLearningDetector | import("./security/csrf-protection-learning.js").CSRFProtectionLearningDetector | import("./security/csp-headers-learning.js").CSPHeadersLearningDetector | import("./security/secret-management-learning.js").SecretManagementLearningDetector | import("./security/rate-limiting-learning.js").RateLimitingLearningDetector)[];
147
147
  /**
148
148
  * Create all error learning detectors
149
149
  */
150
- export declare function createAllErrorLearningDetectors(): (import("./errors/error-codes-learning.js").ErrorCodesLearningDetector | import("./errors/exception-hierarchy-learning.js").ExceptionHierarchyLearningDetector | import("./errors/error-logging-learning.js").ErrorLoggingLearningDetector | import("./errors/try-catch-learning.js").TryCatchLearningDetector | import("./errors/async-errors-learning.js").AsyncErrorsLearningDetector | import("./errors/circuit-breaker-learning.js").CircuitBreakerLearningDetector | import("./errors/error-propagation-learning.js").ErrorPropagationLearningDetector)[];
150
+ export declare function createAllErrorLearningDetectors(): (import("./errors/exception-hierarchy-learning.js").ExceptionHierarchyLearningDetector | import("./errors/error-codes-learning.js").ErrorCodesLearningDetector | import("./errors/try-catch-learning.js").TryCatchLearningDetector | import("./errors/error-propagation-learning.js").ErrorPropagationLearningDetector | import("./errors/async-errors-learning.js").AsyncErrorsLearningDetector | import("./errors/circuit-breaker-learning.js").CircuitBreakerLearningDetector | import("./errors/error-logging-learning.js").ErrorLoggingLearningDetector)[];
151
151
  /**
152
152
  * Create all structural learning detectors
153
153
  */
154
- export declare function createAllStructuralLearningDetectors(): (import("./structural/file-naming-learning.js").FileNamingLearningDetector | import("./structural/import-ordering-learning.js").ImportOrderingLearningDetector | import("./structural/barrel-exports-learning.js").BarrelExportsLearningDetector | import("./structural/module-boundaries-learning.js").ModuleBoundariesLearningDetector | import("./structural/directory-structure-learning.js").DirectoryStructureLearningDetector | import("./structural/circular-deps-learning.js").CircularDepsLearningDetector | import("./structural/co-location-learning.js").CoLocationLearningDetector | import("./structural/package-boundaries-learning.js").PackageBoundariesLearningDetector)[];
154
+ export declare function createAllStructuralLearningDetectors(): (import("./structural/file-naming-learning.js").FileNamingLearningDetector | import("./structural/directory-structure-learning.js").DirectoryStructureLearningDetector | import("./structural/co-location-learning.js").CoLocationLearningDetector | import("./structural/barrel-exports-learning.js").BarrelExportsLearningDetector | import("./structural/import-ordering-learning.js").ImportOrderingLearningDetector | import("./structural/module-boundaries-learning.js").ModuleBoundariesLearningDetector | import("./structural/circular-deps-learning.js").CircularDepsLearningDetector | import("./structural/package-boundaries-learning.js").PackageBoundariesLearningDetector)[];
155
155
  /**
156
156
  * Create all component learning detectors
157
157
  */
158
- export declare function createAllComponentLearningDetectors(): (import("./components/component-structure-learning.js").ComponentStructureLearningDetector | import("./components/props-patterns-learning.js").PropsPatternsLearningDetector | import("./components/state-patterns-learning.js").StatePatternsLearningDetector | import("./components/composition-learning.js").CompositionLearningDetector | import("./components/duplicate-detection-learning.js").DuplicateDetectionLearningDetector | import("./components/near-duplicate-learning.js").NearDuplicateLearningDetector | import("./components/ref-forwarding-learning.js").RefForwardingLearningDetector)[];
158
+ export declare function createAllComponentLearningDetectors(): (import("./components/component-structure-learning.js").ComponentStructureLearningDetector | import("./components/props-patterns-learning.js").PropsPatternsLearningDetector | import("./components/duplicate-detection-learning.js").DuplicateDetectionLearningDetector | import("./components/near-duplicate-learning.js").NearDuplicateLearningDetector | import("./components/state-patterns-learning.js").StatePatternsLearningDetector | import("./components/composition-learning.js").CompositionLearningDetector | import("./components/ref-forwarding-learning.js").RefForwardingLearningDetector)[];
159
159
  /**
160
160
  * Create all styling learning detectors
161
161
  */
162
- export declare function createAllStylingLearningDetectors(): (import("./styling/class-naming-learning.js").ClassNamingLearningDetector | import("./styling/color-usage-learning.js").ColorUsageLearningDetector | import("./styling/design-tokens-learning.js").DesignTokensLearningDetector | import("./styling/responsive-learning.js").ResponsiveLearningDetector | import("./styling/spacing-scale-learning.js").SpacingScaleLearningDetector | import("./styling/tailwind-patterns-learning.js").TailwindPatternsLearningDetector | import("./styling/typography-learning.js").TypographyLearningDetector | import("./styling/z-index-scale-learning.js").ZIndexScaleLearningDetector)[];
162
+ export declare function createAllStylingLearningDetectors(): (import("./styling/design-tokens-learning.js").DesignTokensLearningDetector | import("./styling/spacing-scale-learning.js").SpacingScaleLearningDetector | import("./styling/color-usage-learning.js").ColorUsageLearningDetector | import("./styling/typography-learning.js").TypographyLearningDetector | import("./styling/class-naming-learning.js").ClassNamingLearningDetector | import("./styling/tailwind-patterns-learning.js").TailwindPatternsLearningDetector | import("./styling/z-index-scale-learning.js").ZIndexScaleLearningDetector | import("./styling/responsive-learning.js").ResponsiveLearningDetector)[];
163
163
  /**
164
164
  * Create all logging learning detectors
165
165
  */
166
- export declare function createAllLoggingLearningDetectors(): (import("./logging/log-levels-learning.js").LogLevelsLearningDetector | import("./logging/metric-naming-learning.js").MetricNamingLearningDetector | import("./logging/structured-format-learning.js").StructuredFormatLearningDetector | import("./logging/context-fields-learning.js").ContextFieldsLearningDetector | import("./logging/correlation-ids-learning.js").CorrelationIdsLearningDetector | import("./logging/health-checks-learning.js").HealthChecksLearningDetector | import("./logging/pii-redaction-learning.js").PIIRedactionLearningDetector)[];
166
+ export declare function createAllLoggingLearningDetectors(): (import("./logging/structured-format-learning.js").StructuredFormatLearningDetector | import("./logging/log-levels-learning.js").LogLevelsLearningDetector | import("./logging/context-fields-learning.js").ContextFieldsLearningDetector | import("./logging/correlation-ids-learning.js").CorrelationIdsLearningDetector | import("./logging/pii-redaction-learning.js").PIIRedactionLearningDetector | import("./logging/metric-naming-learning.js").MetricNamingLearningDetector | import("./logging/health-checks-learning.js").HealthChecksLearningDetector)[];
167
167
  /**
168
168
  * Create all testing learning detectors
169
169
  */
170
- export declare function createAllTestingLearningDetectors(): (import("./testing/describe-naming-learning.js").DescribeNamingLearningDetector | import("./testing/test-structure-learning.js").TestStructureLearningDetector | import("./testing/mock-patterns-learning.js").MockPatternsLearningDetector | import("./testing/fixture-patterns-learning.js").FixturePatternsLearningDetector | import("./testing/setup-teardown-learning.js").SetupTeardownLearningDetector | import("./testing/file-naming-learning.js").TestFileNamingLearningDetector | import("./testing/co-location-learning.js").TestCoLocationLearningDetector)[];
170
+ export declare function createAllTestingLearningDetectors(): (import("./testing/file-naming-learning.js").TestFileNamingLearningDetector | import("./testing/co-location-learning.js").TestCoLocationLearningDetector | import("./testing/test-structure-learning.js").TestStructureLearningDetector | import("./testing/mock-patterns-learning.js").MockPatternsLearningDetector | import("./testing/fixture-patterns-learning.js").FixturePatternsLearningDetector | import("./testing/describe-naming-learning.js").DescribeNamingLearningDetector | import("./testing/setup-teardown-learning.js").SetupTeardownLearningDetector)[];
171
171
  /**
172
172
  * Create all data access learning detectors
173
173
  */
174
- export declare function createAllDataAccessLearningDetectors(): (import("./data-access/repository-pattern-learning.js").RepositoryPatternLearningDetector | import("./data-access/query-patterns-learning.js").QueryPatternsLearningDetector | import("./data-access/dto-patterns-learning.js").DTOPatternsLearningDetector | import("./data-access/transaction-patterns-learning.js").TransactionPatternsLearningDetector | import("./data-access/connection-pooling-learning.js").ConnectionPoolingLearningDetector | import("./data-access/validation-patterns-learning.js").ValidationPatternsLearningDetector | import("./data-access/n-plus-one-learning.js").NPlusOneLearningDetector)[];
174
+ export declare function createAllDataAccessLearningDetectors(): (import("./data-access/query-patterns-learning.js").QueryPatternsLearningDetector | import("./data-access/repository-pattern-learning.js").RepositoryPatternLearningDetector | import("./data-access/transaction-patterns-learning.js").TransactionPatternsLearningDetector | import("./data-access/validation-patterns-learning.js").ValidationPatternsLearningDetector | import("./data-access/dto-patterns-learning.js").DTOPatternsLearningDetector | import("./data-access/n-plus-one-learning.js").NPlusOneLearningDetector | import("./data-access/connection-pooling-learning.js").ConnectionPoolingLearningDetector)[];
175
175
  /**
176
176
  * Create all config learning detectors
177
177
  */
178
- export declare function createAllConfigLearningDetectors(): (import("./config/feature-flags-learning.js").FeatureFlagsLearningDetector | import("./config/env-naming-learning.js").EnvNamingLearningDetector | import("./config/config-validation-learning.js").ConfigValidationLearningDetector | import("./config/default-values-learning.js").DefaultValuesLearningDetector | import("./config/environment-detection-learning.js").EnvironmentDetectionLearningDetector | import("./config/required-optional-learning.js").RequiredOptionalLearningDetector)[];
178
+ export declare function createAllConfigLearningDetectors(): (import("./config/env-naming-learning.js").EnvNamingLearningDetector | import("./config/required-optional-learning.js").RequiredOptionalLearningDetector | import("./config/default-values-learning.js").DefaultValuesLearningDetector | import("./config/feature-flags-learning.js").FeatureFlagsLearningDetector | import("./config/config-validation-learning.js").ConfigValidationLearningDetector | import("./config/environment-detection-learning.js").EnvironmentDetectionLearningDetector)[];
179
179
  /**
180
180
  * Create all types learning detectors
181
181
  */
182
- export declare function createAllTypesLearningDetectors(): (import("./types/interface-vs-type-learning.js").InterfaceVsTypeLearningDetector | import("./types/naming-conventions-learning.js").TypeNamingConventionsLearningDetector | import("./types/utility-types-learning.js").UtilityTypesLearningDetector | import("./types/generic-patterns-learning.js").GenericPatternsLearningDetector | import("./types/any-usage-learning.js").AnyUsageLearningDetector | import("./types/file-location-learning.js").TypeFileLocationLearningDetector | import("./types/type-assertions-learning.js").TypeAssertionsLearningDetector)[];
182
+ export declare function createAllTypesLearningDetectors(): (import("./types/file-location-learning.js").TypeFileLocationLearningDetector | import("./types/naming-conventions-learning.js").TypeNamingConventionsLearningDetector | import("./types/interface-vs-type-learning.js").InterfaceVsTypeLearningDetector | import("./types/generic-patterns-learning.js").GenericPatternsLearningDetector | import("./types/utility-types-learning.js").UtilityTypesLearningDetector | import("./types/type-assertions-learning.js").TypeAssertionsLearningDetector | import("./types/any-usage-learning.js").AnyUsageLearningDetector)[];
183
183
  /**
184
184
  * Create all accessibility learning detectors
185
185
  */
186
- export declare function createAllAccessibilityLearningDetectors(): (import("./accessibility/aria-roles-learning.js").AriaRolesLearningDetector | import("./accessibility/keyboard-nav-learning.js").KeyboardNavLearningDetector | import("./accessibility/alt-text-learning.js").AltTextLearningDetector | import("./accessibility/semantic-html-learning.js").SemanticHtmlLearningDetector | import("./accessibility/focus-management-learning.js").FocusManagementLearningDetector | import("./accessibility/heading-hierarchy-learning.js").HeadingHierarchyLearningDetector)[];
186
+ export declare function createAllAccessibilityLearningDetectors(): (import("./accessibility/semantic-html-learning.js").SemanticHtmlLearningDetector | import("./accessibility/aria-roles-learning.js").AriaRolesLearningDetector | import("./accessibility/keyboard-nav-learning.js").KeyboardNavLearningDetector | import("./accessibility/focus-management-learning.js").FocusManagementLearningDetector | import("./accessibility/heading-hierarchy-learning.js").HeadingHierarchyLearningDetector | import("./accessibility/alt-text-learning.js").AltTextLearningDetector)[];
187
187
  /**
188
188
  * Create all documentation learning detectors
189
189
  */
190
- export declare function createAllDocumentationLearningDetectors(): (import("./documentation/jsdoc-patterns-learning.js").JSDocPatternsLearningDetector | import("./documentation/todo-patterns-learning.js").TodoPatternsLearningDetector | import("./documentation/deprecation-learning.js").DeprecationLearningDetector | import("./documentation/example-code-learning.js").ExampleCodeLearningDetector | import("./documentation/readme-structure-learning.js").ReadmeStructureLearningDetector)[];
190
+ export declare function createAllDocumentationLearningDetectors(): (import("./documentation/jsdoc-patterns-learning.js").JSDocPatternsLearningDetector | import("./documentation/readme-structure-learning.js").ReadmeStructureLearningDetector | import("./documentation/todo-patterns-learning.js").TodoPatternsLearningDetector | import("./documentation/deprecation-learning.js").DeprecationLearningDetector | import("./documentation/example-code-learning.js").ExampleCodeLearningDetector)[];
191
191
  /**
192
192
  * Create all performance learning detectors
193
193
  */
194
- export declare function createAllPerformanceLearningDetectors(): (import("./performance/lazy-loading-learning.js").LazyLoadingLearningDetector | import("./performance/code-splitting-learning.js").CodeSplittingLearningDetector | import("./performance/debounce-throttle-learning.js").DebounceThrottleLearningDetector | import("./performance/memoization-learning.js").MemoizationLearningDetector | import("./performance/caching-patterns-learning.js").CachingPatternsLearningDetector | import("./performance/bundle-size-learning.js").BundleSizeLearningDetector)[];
194
+ export declare function createAllPerformanceLearningDetectors(): (import("./performance/code-splitting-learning.js").CodeSplittingLearningDetector | import("./performance/lazy-loading-learning.js").LazyLoadingLearningDetector | import("./performance/memoization-learning.js").MemoizationLearningDetector | import("./performance/caching-patterns-learning.js").CachingPatternsLearningDetector | import("./performance/debounce-throttle-learning.js").DebounceThrottleLearningDetector | import("./performance/bundle-size-learning.js").BundleSizeLearningDetector)[];
195
195
  /**
196
196
  * Get detector count by category
197
197
  */
@@ -216,11 +216,11 @@ export declare function getDetectorCounts(): {
216
216
  /**
217
217
  * Create all auth semantic detectors
218
218
  */
219
- export declare function createAllAuthSemanticDetectors(): (import("./auth/audit-semantic.js").AuditSemanticDetector | import("./auth/middleware-semantic.js").AuthMiddlewareSemanticDetector | import("./auth/ownership-semantic.js").OwnershipSemanticDetector | import("./auth/permission-checks-semantic.js").PermissionChecksSemanticDetector | import("./auth/rbac-semantic.js").RBACSemanticDetector | import("./auth/token-handling-semantic.js").TokenHandlingSemanticDetector)[];
219
+ export declare function createAllAuthSemanticDetectors(): (import("./auth/middleware-semantic.js").AuthMiddlewareSemanticDetector | import("./auth/token-handling-semantic.js").TokenHandlingSemanticDetector | import("./auth/permission-checks-semantic.js").PermissionChecksSemanticDetector | import("./auth/rbac-semantic.js").RBACSemanticDetector | import("./auth/ownership-semantic.js").OwnershipSemanticDetector | import("./auth/audit-semantic.js").AuditSemanticDetector)[];
220
220
  /**
221
221
  * Create all security semantic detectors
222
222
  */
223
- export declare function createAllSecuritySemanticDetectors(): (import("./security/input-sanitization-semantic.js").InputSanitizationSemanticDetector | import("./security/rate-limiting-semantic.js").RateLimitingSemanticDetector | import("./security/csrf-protection-semantic.js").CSRFProtectionSemanticDetector | import("./security/sql-injection-semantic.js").SQLInjectionSemanticDetector | import("./security/xss-prevention-semantic.js").XSSPreventionSemanticDetector | import("./security/csp-headers-semantic.js").CSPHeadersSemanticDetector | import("./security/secret-management-semantic.js").SecretManagementSemanticDetector)[];
223
+ export declare function createAllSecuritySemanticDetectors(): (import("./security/input-sanitization-semantic.js").InputSanitizationSemanticDetector | import("./security/sql-injection-semantic.js").SQLInjectionSemanticDetector | import("./security/xss-prevention-semantic.js").XSSPreventionSemanticDetector | import("./security/csrf-protection-semantic.js").CSRFProtectionSemanticDetector | import("./security/csp-headers-semantic.js").CSPHeadersSemanticDetector | import("./security/secret-management-semantic.js").SecretManagementSemanticDetector | import("./security/rate-limiting-semantic.js").RateLimitingSemanticDetector)[];
224
224
  /**
225
225
  * Create all error semantic detectors
226
226
  */
@@ -236,7 +236,7 @@ export declare function createAllComponentSemanticDetectors(): (import("./compon
236
236
  /**
237
237
  * Create all styling semantic detectors
238
238
  */
239
- export declare function createAllStylingSemanticDetectors(): (import("./styling/class-naming-semantic.js").ClassNamingSemanticDetector | import("./styling/color-usage-semantic.js").ColorUsageSemanticDetector | import("./styling/design-tokens-semantic.js").DesignTokensSemanticDetector | import("./styling/responsive-semantic.js").ResponsiveSemanticDetector | import("./styling/spacing-scale-semantic.js").SpacingScaleSemanticDetector | import("./styling/tailwind-patterns-semantic.js").TailwindPatternsSemanticDetector | import("./styling/typography-semantic.js").TypographySemanticDetector | import("./styling/z-index-scale-semantic.js").ZIndexScaleSemanticDetector)[];
239
+ export declare function createAllStylingSemanticDetectors(): (import("./styling/design-tokens-semantic.js").DesignTokensSemanticDetector | import("./styling/spacing-scale-semantic.js").SpacingScaleSemanticDetector | import("./styling/color-usage-semantic.js").ColorUsageSemanticDetector | import("./styling/typography-semantic.js").TypographySemanticDetector | import("./styling/class-naming-semantic.js").ClassNamingSemanticDetector | import("./styling/tailwind-patterns-semantic.js").TailwindPatternsSemanticDetector | import("./styling/z-index-scale-semantic.js").ZIndexScaleSemanticDetector | import("./styling/responsive-semantic.js").ResponsiveSemanticDetector)[];
240
240
  /**
241
241
  * Create all logging semantic detectors
242
242
  */
@@ -257,7 +257,7 @@ export declare function createAllDataBoundarySemanticDetectors(): (import("./dat
257
257
  /**
258
258
  * Create all config semantic detectors
259
259
  */
260
- export declare function createAllConfigSemanticDetectors(): (import("./config/env-config-semantic.js").EnvConfigSemanticDetector | import("./config/feature-flags-semantic.js").FeatureFlagsSemanticDetector | import("./config/required-optional-semantic.js").RequiredOptionalSemanticDetector | import("./config/default-values-semantic.js").DefaultValuesSemanticDetector | import("./config/config-validation-semantic.js").ConfigValidationSemanticDetector | import("./config/environment-detection-semantic.js").EnvironmentDetectionSemanticDetector)[];
260
+ export declare function createAllConfigSemanticDetectors(): (import("./config/env-config-semantic.js").EnvConfigSemanticDetector | import("./config/required-optional-semantic.js").RequiredOptionalSemanticDetector | import("./config/default-values-semantic.js").DefaultValuesSemanticDetector | import("./config/feature-flags-semantic.js").FeatureFlagsSemanticDetector | import("./config/config-validation-semantic.js").ConfigValidationSemanticDetector | import("./config/environment-detection-semantic.js").EnvironmentDetectionSemanticDetector)[];
261
261
  /**
262
262
  * Create all types semantic detectors
263
263
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "driftdetect-detectors",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Pattern detectors for Drift - 150+ detectors across 15 categories",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,6 +29,16 @@
29
29
  "files": [
30
30
  "dist"
31
31
  ],
32
+ "dependencies": {
33
+ "driftdetect-core": "^0.7.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^20.10.0",
37
+ "@vitest/coverage-v8": "^1.0.0",
38
+ "fast-check": "^3.15.0",
39
+ "typescript": "^5.3.0",
40
+ "vitest": "^1.0.0"
41
+ },
32
42
  "scripts": {
33
43
  "build": "tsc",
34
44
  "clean": "rm -rf dist",
@@ -39,15 +49,5 @@
39
49
  "test:watch": "vitest",
40
50
  "test:coverage": "vitest run --coverage",
41
51
  "typecheck": "tsc --noEmit"
42
- },
43
- "dependencies": {
44
- "driftdetect-core": "^0.6.0"
45
- },
46
- "devDependencies": {
47
- "@types/node": "^20.10.0",
48
- "@vitest/coverage-v8": "^1.0.0",
49
- "fast-check": "^3.15.0",
50
- "typescript": "^5.3.0",
51
- "vitest": "^1.0.0"
52
52
  }
53
- }
53
+ }