driftdetect 0.9.26 → 0.9.28

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.
@@ -11,7 +11,7 @@ import * as path from 'node:path';
11
11
  import * as os from 'node:os';
12
12
  import { fileURLToPath } from 'node:url';
13
13
  import { createAllDetectorsArray, getDetectorCounts, } from 'driftdetect-detectors';
14
- import { ManifestStore, hashContent, } from 'driftdetect-core';
14
+ import { ManifestStore, hashContent, OutlierDetector, } from 'driftdetect-core';
15
15
  // Get the directory of this module for worker path resolution
16
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
17
  // ============================================================================
@@ -307,13 +307,33 @@ export class ScannerService {
307
307
  }
308
308
  totalDetectorsRan += result.detectorsRan;
309
309
  totalDetectorsSkipped += result.detectorsSkipped;
310
- // Convert to FileScanResult
311
- const filePatterns = result.patterns.map(p => ({
312
- patternId: p.patternId,
313
- detectorId: p.detectorId,
314
- confidence: p.confidence,
315
- location: p.location,
316
- }));
310
+ // Convert to FileScanResult - PRESERVE ALL METADATA
311
+ const filePatterns = result.patterns.map(p => {
312
+ const loc = {
313
+ file: p.location.file,
314
+ line: p.location.line,
315
+ column: p.location.column,
316
+ };
317
+ if (p.location.endLine !== undefined)
318
+ loc.endLine = p.location.endLine;
319
+ if (p.location.endColumn !== undefined)
320
+ loc.endColumn = p.location.endColumn;
321
+ const pattern = {
322
+ patternId: p.patternId,
323
+ detectorId: p.detectorId,
324
+ confidence: p.confidence,
325
+ location: loc,
326
+ };
327
+ if (p.isOutlier !== undefined)
328
+ pattern.isOutlier = p.isOutlier;
329
+ if (p.outlierReason !== undefined)
330
+ pattern.outlierReason = p.outlierReason;
331
+ if (p.matchedText !== undefined)
332
+ pattern.matchedText = p.matchedText;
333
+ if (p.metadata !== undefined)
334
+ pattern.metadata = p.metadata;
335
+ return pattern;
336
+ });
317
337
  fileResults.push({
318
338
  file: result.file,
319
339
  patterns: filePatterns,
@@ -321,27 +341,56 @@ export class ScannerService {
321
341
  duration: result.duration,
322
342
  error: result.error,
323
343
  });
324
- // Aggregate patterns
344
+ // Aggregate patterns - PRESERVE ALL METADATA
325
345
  for (const match of result.patterns) {
326
346
  const key = match.patternId;
327
347
  const existing = patternMap.get(key);
348
+ // Create enhanced location with all metadata
349
+ const enhancedLocation = {
350
+ file: match.location.file,
351
+ line: match.location.line,
352
+ column: match.location.column,
353
+ };
354
+ if (match.location.endLine !== undefined)
355
+ enhancedLocation.endLine = match.location.endLine;
356
+ if (match.location.endColumn !== undefined)
357
+ enhancedLocation.endColumn = match.location.endColumn;
358
+ if (match.isOutlier !== undefined)
359
+ enhancedLocation.isOutlier = match.isOutlier;
360
+ if (match.outlierReason !== undefined)
361
+ enhancedLocation.outlierReason = match.outlierReason;
362
+ if (match.matchedText !== undefined)
363
+ enhancedLocation.matchedText = match.matchedText;
364
+ enhancedLocation.confidence = match.confidence;
328
365
  if (existing) {
329
- addUniqueLocation(existing.locations, match.location);
366
+ addUniqueLocation(existing.locations, enhancedLocation);
330
367
  existing.occurrences++;
331
368
  existing.confidence = Math.max(existing.confidence, match.confidence);
369
+ // Track outlier count
370
+ if (match.isOutlier) {
371
+ existing.outlierCount = (existing.outlierCount || 0) + 1;
372
+ }
373
+ // Merge metadata
374
+ if (match.metadata) {
375
+ existing.metadata = { ...existing.metadata, ...match.metadata };
376
+ }
332
377
  }
333
378
  else {
334
- patternMap.set(key, {
379
+ const newPattern = {
335
380
  patternId: match.patternId,
336
381
  detectorId: match.detectorId,
337
382
  category: match.category,
338
383
  subcategory: match.subcategory,
339
384
  name: match.detectorName,
340
385
  description: match.detectorDescription,
341
- locations: [match.location],
386
+ locations: [enhancedLocation],
342
387
  confidence: match.confidence,
343
388
  occurrences: 1,
344
- });
389
+ outlierCount: match.isOutlier ? 1 : 0,
390
+ };
391
+ if (match.metadata !== undefined)
392
+ newPattern.metadata = match.metadata;
393
+ patternMap.set(key, newPattern);
345
394
  }
346
395
  // Build manifest pattern
347
396
  if (this.config.generateManifest && result.language) {
@@ -355,6 +404,103 @@ export class ScannerService {
355
404
  }
356
405
  // Convert pattern map to array
357
406
  const patterns = Array.from(patternMap.values());
407
+ // ========================================================================
408
+ // STATISTICAL OUTLIER DETECTION (Gap 2 Fix)
409
+ // Run outlier detection on aggregated patterns to identify statistical
410
+ // deviations that weren't caught by individual detectors
411
+ // ========================================================================
412
+ const outlierDetector = new OutlierDetector({
413
+ sensitivity: 0.5,
414
+ minSampleSize: 5, // Need at least 5 samples for statistical analysis
415
+ });
416
+ for (const pattern of patterns) {
417
+ // Skip patterns with too few locations for statistical analysis
418
+ if (pattern.locations.length < 5)
419
+ continue;
420
+ // Convert locations to PatternMatchResult format for outlier detection
421
+ // Handle exactOptionalPropertyTypes by only including defined values
422
+ const matchResults = pattern.locations.map((loc) => {
423
+ const result = {
424
+ patternId: pattern.patternId,
425
+ location: {
426
+ file: loc.file,
427
+ line: loc.line,
428
+ column: loc.column,
429
+ },
430
+ confidence: loc.confidence ?? pattern.confidence,
431
+ isOutlier: loc.isOutlier ?? false,
432
+ matchType: 'ast',
433
+ timestamp: new Date(),
434
+ };
435
+ // Only add optional properties if they have values
436
+ if (loc.endLine !== undefined)
437
+ result.location.endLine = loc.endLine;
438
+ if (loc.endColumn !== undefined)
439
+ result.location.endColumn = loc.endColumn;
440
+ if (loc.matchedText !== undefined)
441
+ result.matchedText = loc.matchedText;
442
+ if (loc.outlierReason !== undefined)
443
+ result.outlierReason = loc.outlierReason;
444
+ return result;
445
+ });
446
+ // Run statistical outlier detection
447
+ const outlierResult = outlierDetector.detect(matchResults, pattern.patternId);
448
+ // Update pattern locations with newly detected outliers
449
+ for (const outlier of outlierResult.outliers) {
450
+ // Find the matching location
451
+ const locIndex = pattern.locations.findIndex(loc => loc.file === outlier.location.file &&
452
+ loc.line === outlier.location.line &&
453
+ loc.column === outlier.location.column);
454
+ if (locIndex !== -1) {
455
+ const loc = pattern.locations[locIndex];
456
+ // Only mark as outlier if not already marked by detector
457
+ if (!loc?.isOutlier) {
458
+ if (loc) {
459
+ loc.isOutlier = true;
460
+ loc.outlierReason = outlier.reason;
461
+ }
462
+ pattern.outlierCount++;
463
+ }
464
+ }
465
+ }
466
+ // Update manifest pattern with outliers if generating manifest
467
+ if (this.config.generateManifest) {
468
+ const manifestKey = `${pattern.category}/${pattern.subcategory}/${pattern.patternId}`;
469
+ const manifestPattern = manifestPatternMap.get(manifestKey);
470
+ if (manifestPattern && outlierResult.outliers.length > 0) {
471
+ // Add outlier locations to manifest pattern
472
+ for (const outlier of outlierResult.outliers) {
473
+ // Create semantic location for outlier
474
+ const outlierSemanticLoc = {
475
+ file: outlier.location.file,
476
+ hash: '', // Will be populated if we have the content
477
+ range: {
478
+ start: outlier.location.line,
479
+ end: outlier.location.endLine ?? outlier.location.line,
480
+ },
481
+ type: 'block',
482
+ name: `outlier-${outlier.location.line}`,
483
+ confidence: 1 - outlier.deviationScore, // Lower confidence for higher deviation
484
+ metadata: {
485
+ reason: outlier.reason,
486
+ deviationScore: outlier.deviationScore,
487
+ deviationType: outlier.deviationType,
488
+ significance: outlier.significance,
489
+ expected: outlier.expected,
490
+ actual: outlier.actual,
491
+ suggestedFix: outlier.suggestedFix,
492
+ },
493
+ };
494
+ // Check if this outlier location already exists
495
+ const exists = manifestPattern.outliers.some(o => o.file === outlierSemanticLoc.file &&
496
+ o.range.start === outlierSemanticLoc.range.start);
497
+ if (!exists) {
498
+ manifestPattern.outliers.push(outlierSemanticLoc);
499
+ }
500
+ }
501
+ }
502
+ }
503
+ }
358
504
  // Build and save manifest
359
505
  let manifest;
360
506
  if (this.config.generateManifest && this.manifestStore) {
@@ -487,31 +633,83 @@ export class ScannerService {
487
633
  const result = await detector.detect(context);
488
634
  const info = detector.getInfo();
489
635
  for (const match of result.patterns) {
490
- filePatterns.push({
636
+ // Cast to extended type to safely access optional fields
637
+ // Note: PatternMatch has isOutlier, but extended fields may not exist
638
+ const extendedMatch = match;
639
+ // Create enhanced location with all metadata
640
+ const enhancedLocation = {
641
+ file: match.location.file,
642
+ line: match.location.line,
643
+ column: match.location.column,
644
+ };
645
+ if (match.location.endLine !== undefined)
646
+ enhancedLocation.endLine = match.location.endLine;
647
+ if (match.location.endColumn !== undefined)
648
+ enhancedLocation.endColumn = match.location.endColumn;
649
+ // Build file pattern
650
+ const filePattern = {
491
651
  patternId: match.patternId,
492
652
  detectorId: detector.id,
493
653
  confidence: match.confidence,
494
- location: match.location,
495
- });
654
+ location: enhancedLocation,
655
+ };
656
+ if (match.isOutlier !== undefined)
657
+ filePattern.isOutlier = match.isOutlier;
658
+ if (extendedMatch.outlierReason !== undefined)
659
+ filePattern.outlierReason = extendedMatch.outlierReason;
660
+ if (extendedMatch.matchedText !== undefined)
661
+ filePattern.matchedText = extendedMatch.matchedText;
662
+ const metadata = extendedMatch.metadata ?? result.metadata?.custom;
663
+ if (metadata !== undefined)
664
+ filePattern.metadata = metadata;
665
+ filePatterns.push(filePattern);
496
666
  const key = match.patternId;
497
667
  const existing = patternMap.get(key);
668
+ // Create aggregated location with all metadata
669
+ const aggLocation = {
670
+ file: match.location.file,
671
+ line: match.location.line,
672
+ column: match.location.column,
673
+ confidence: match.confidence,
674
+ };
675
+ if (match.location.endLine !== undefined)
676
+ aggLocation.endLine = match.location.endLine;
677
+ if (match.location.endColumn !== undefined)
678
+ aggLocation.endColumn = match.location.endColumn;
679
+ if (match.isOutlier !== undefined)
680
+ aggLocation.isOutlier = match.isOutlier;
681
+ if (extendedMatch.outlierReason !== undefined)
682
+ aggLocation.outlierReason = extendedMatch.outlierReason;
683
+ if (extendedMatch.matchedText !== undefined)
684
+ aggLocation.matchedText = extendedMatch.matchedText;
498
685
  if (existing) {
499
- addUniqueLocation(existing.locations, match.location);
686
+ addUniqueLocation(existing.locations, aggLocation);
500
687
  existing.occurrences++;
501
688
  existing.confidence = Math.max(existing.confidence, match.confidence);
689
+ if (match.isOutlier) {
690
+ existing.outlierCount = (existing.outlierCount || 0) + 1;
691
+ }
692
+ if (extendedMatch.metadata || result.metadata?.custom) {
693
+ existing.metadata = { ...existing.metadata, ...(extendedMatch.metadata ?? result.metadata?.custom) };
694
+ }
502
695
  }
503
696
  else {
504
- patternMap.set(key, {
697
+ const newPattern = {
505
698
  patternId: match.patternId,
506
699
  detectorId: detector.id,
507
700
  category: info.category,
508
701
  subcategory: info.subcategory,
509
702
  name: info.name,
510
703
  description: info.description,
511
- locations: [match.location],
704
+ locations: [aggLocation],
512
705
  confidence: match.confidence,
513
706
  occurrences: 1,
514
- });
707
+ outlierCount: match.isOutlier ? 1 : 0,
708
+ };
709
+ const patternMetadata = extendedMatch.metadata ?? result.metadata?.custom;
710
+ if (patternMetadata !== undefined)
711
+ newPattern.metadata = patternMetadata;
712
+ patternMap.set(key, newPattern);
515
713
  }
516
714
  if (this.config.generateManifest) {
517
715
  const semanticLoc = this.createSemanticLocation(match.location, content, contentHash, language);
@@ -615,6 +813,103 @@ export class ScannerService {
615
813
  }
616
814
  }
617
815
  const patterns = Array.from(patternMap.values());
816
+ // ========================================================================
817
+ // STATISTICAL OUTLIER DETECTION (Gap 2 Fix - Single-threaded path)
818
+ // Run outlier detection on aggregated patterns to identify statistical
819
+ // deviations that weren't caught by individual detectors
820
+ // ========================================================================
821
+ const outlierDetectorST = new OutlierDetector({
822
+ sensitivity: 0.5,
823
+ minSampleSize: 5, // Need at least 5 samples for statistical analysis
824
+ });
825
+ for (const pattern of patterns) {
826
+ // Skip patterns with too few locations for statistical analysis
827
+ if (pattern.locations.length < 5)
828
+ continue;
829
+ // Convert locations to PatternMatchResult format for outlier detection
830
+ // Handle exactOptionalPropertyTypes by only including defined values
831
+ const matchResults = pattern.locations.map((loc) => {
832
+ const result = {
833
+ patternId: pattern.patternId,
834
+ location: {
835
+ file: loc.file,
836
+ line: loc.line,
837
+ column: loc.column,
838
+ },
839
+ confidence: loc.confidence ?? pattern.confidence,
840
+ isOutlier: loc.isOutlier ?? false,
841
+ matchType: 'ast',
842
+ timestamp: new Date(),
843
+ };
844
+ // Only add optional properties if they have values
845
+ if (loc.endLine !== undefined)
846
+ result.location.endLine = loc.endLine;
847
+ if (loc.endColumn !== undefined)
848
+ result.location.endColumn = loc.endColumn;
849
+ if (loc.matchedText !== undefined)
850
+ result.matchedText = loc.matchedText;
851
+ if (loc.outlierReason !== undefined)
852
+ result.outlierReason = loc.outlierReason;
853
+ return result;
854
+ });
855
+ // Run statistical outlier detection
856
+ const outlierResult = outlierDetectorST.detect(matchResults, pattern.patternId);
857
+ // Update pattern locations with newly detected outliers
858
+ for (const outlier of outlierResult.outliers) {
859
+ // Find the matching location
860
+ const locIndex = pattern.locations.findIndex(loc => loc.file === outlier.location.file &&
861
+ loc.line === outlier.location.line &&
862
+ loc.column === outlier.location.column);
863
+ if (locIndex !== -1) {
864
+ const loc = pattern.locations[locIndex];
865
+ // Only mark as outlier if not already marked by detector
866
+ if (!loc?.isOutlier) {
867
+ if (loc) {
868
+ loc.isOutlier = true;
869
+ loc.outlierReason = outlier.reason;
870
+ }
871
+ pattern.outlierCount++;
872
+ }
873
+ }
874
+ }
875
+ // Update manifest pattern with outliers if generating manifest
876
+ if (this.config.generateManifest) {
877
+ const manifestKey = `${pattern.category}/${pattern.subcategory}/${pattern.patternId}`;
878
+ const manifestPattern = manifestPatternMap.get(manifestKey);
879
+ if (manifestPattern && outlierResult.outliers.length > 0) {
880
+ // Add outlier locations to manifest pattern
881
+ for (const outlier of outlierResult.outliers) {
882
+ // Create semantic location for outlier
883
+ const outlierSemanticLoc = {
884
+ file: outlier.location.file,
885
+ hash: '', // Will be populated if we have the content
886
+ range: {
887
+ start: outlier.location.line,
888
+ end: outlier.location.endLine ?? outlier.location.line,
889
+ },
890
+ type: 'block',
891
+ name: `outlier-${outlier.location.line}`,
892
+ confidence: 1 - outlier.deviationScore, // Lower confidence for higher deviation
893
+ metadata: {
894
+ reason: outlier.reason,
895
+ deviationScore: outlier.deviationScore,
896
+ deviationType: outlier.deviationType,
897
+ significance: outlier.significance,
898
+ expected: outlier.expected,
899
+ actual: outlier.actual,
900
+ suggestedFix: outlier.suggestedFix,
901
+ },
902
+ };
903
+ // Check if this outlier location already exists
904
+ const exists = manifestPattern.outliers.some(o => o.file === outlierSemanticLoc.file &&
905
+ o.range.start === outlierSemanticLoc.range.start);
906
+ if (!exists) {
907
+ manifestPattern.outliers.push(outlierSemanticLoc);
908
+ }
909
+ }
910
+ }
911
+ }
912
+ }
618
913
  let manifest;
619
914
  if (this.config.generateManifest && this.manifestStore) {
620
915
  const manifestPatterns = Array.from(manifestPatternMap.values());
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-service.js","sourceRoot":"","sources":["../../src/services/scanner-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner-service.js","sourceRoot":"","sources":["../../src/services/scanner-service.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,12 @@ export interface DetectorWorkerTask {
47
47
  }
48
48
  /**
49
49
  * Pattern match from detector
50
+ *
51
+ * Enhanced to preserve all metadata from detectors including:
52
+ * - Full location range (endLine/endColumn)
53
+ * - Outlier information (isOutlier, outlierReason)
54
+ * - Matched text for context
55
+ * - Custom detector metadata
50
56
  */
51
57
  export interface WorkerPatternMatch {
52
58
  patternId: string;
@@ -60,7 +66,19 @@ export interface WorkerPatternMatch {
60
66
  file: string;
61
67
  line: number;
62
68
  column: number;
69
+ /** End line for full range highlighting */
70
+ endLine?: number;
71
+ /** End column for full range highlighting */
72
+ endColumn?: number;
63
73
  };
74
+ /** Whether this match deviates from the established pattern */
75
+ isOutlier?: boolean;
76
+ /** Explanation for why this is an outlier */
77
+ outlierReason?: string;
78
+ /** The actual text that was matched */
79
+ matchedText?: string;
80
+ /** Custom metadata from the detector (auth types, route info, etc.) */
81
+ metadata?: Record<string, unknown>;
64
82
  }
65
83
  /**
66
84
  * Violation from detector
@@ -1 +1 @@
1
- {"version":3,"file":"detector-worker.d.ts","sourceRoot":"","sources":["../../src/workers/detector-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEnC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAElC,kCAAkC;IAClC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,4BAA4B;IAC5B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE/B,uBAAuB;IACvB,UAAU,EAAE,eAAe,EAAE,CAAC;IAE9B,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAsJD;;;;GAIG;AACH,wBAA8B,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,GAAG,OAAO,CAAC,oBAAoB,GAAG,YAAY,CAAC,CA8K7H"}
1
+ {"version":3,"file":"detector-worker.d.ts","sourceRoot":"","sources":["../../src/workers/detector-worker.ts"],"names":[],"mappings":"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"}