UNPKG

@samiyev/guardian

Version:

Research-backed code quality guardian for AI-assisted development. Detects hardcodes, secrets, circular deps, framework leaks, entity exposure, and 9 architecture violations. Enforces Clean Architecture/DDD principles. Works with GitHub Copilot, Cursor, W

61 lines 3.73 kB
import { IHardcodeDetector } from "../../../domain/services/IHardcodeDetector"; import { INamingConventionDetector } from "../../../domain/services/INamingConventionDetector"; import { IFrameworkLeakDetector } from "../../../domain/services/IFrameworkLeakDetector"; import { IEntityExposureDetector } from "../../../domain/services/IEntityExposureDetector"; import { IDependencyDirectionDetector } from "../../../domain/services/IDependencyDirectionDetector"; import { IRepositoryPatternDetector } from "../../../domain/services/RepositoryPatternDetectorService"; import { IAggregateBoundaryDetector } from "../../../domain/services/IAggregateBoundaryDetector"; import { ISecretDetector } from "../../../domain/services/ISecretDetector"; import { IAnemicModelDetector } from "../../../domain/services/IAnemicModelDetector"; import { IDuplicateValueTracker } from "../../../domain/services/IDuplicateValueTracker"; import { SourceFile } from "../../../domain/entities/SourceFile"; import { DependencyGraph } from "../../../domain/entities/DependencyGraph"; import type { AggregateBoundaryViolation, AnemicModelViolation, ArchitectureViolation, CircularDependencyViolation, DependencyDirectionViolation, EntityExposureViolation, FrameworkLeakViolation, HardcodeViolation, NamingConventionViolation, RepositoryPatternViolation, SecretViolation } from "../AnalyzeProject"; export interface DetectionRequest { sourceFiles: SourceFile[]; dependencyGraph: DependencyGraph; } export interface DetectionResult { violations: ArchitectureViolation[]; hardcodeViolations: HardcodeViolation[]; circularDependencyViolations: CircularDependencyViolation[]; namingViolations: NamingConventionViolation[]; frameworkLeakViolations: FrameworkLeakViolation[]; entityExposureViolations: EntityExposureViolation[]; dependencyDirectionViolations: DependencyDirectionViolation[]; repositoryPatternViolations: RepositoryPatternViolation[]; aggregateBoundaryViolations: AggregateBoundaryViolation[]; secretViolations: SecretViolation[]; anemicModelViolations: AnemicModelViolation[]; } /** * Pipeline step responsible for running all detectors */ export declare class ExecuteDetection { private readonly hardcodeDetector; private readonly namingConventionDetector; private readonly frameworkLeakDetector; private readonly entityExposureDetector; private readonly dependencyDirectionDetector; private readonly repositoryPatternDetector; private readonly aggregateBoundaryDetector; private readonly secretDetector; private readonly anemicModelDetector; private readonly duplicateValueTracker; constructor(hardcodeDetector: IHardcodeDetector, namingConventionDetector: INamingConventionDetector, frameworkLeakDetector: IFrameworkLeakDetector, entityExposureDetector: IEntityExposureDetector, dependencyDirectionDetector: IDependencyDirectionDetector, repositoryPatternDetector: IRepositoryPatternDetector, aggregateBoundaryDetector: IAggregateBoundaryDetector, secretDetector: ISecretDetector, anemicModelDetector: IAnemicModelDetector, duplicateValueTracker: IDuplicateValueTracker); execute(request: DetectionRequest): Promise<DetectionResult>; private detectViolations; private detectLayerFromImport; private detectHardcode; private detectCircularDependencies; private detectNamingConventions; private detectFrameworkLeaks; private detectEntityExposures; private detectDependencyDirections; private detectRepositoryPatternViolations; private detectAggregateBoundaryViolations; private detectSecrets; private detectAnemicModels; private sortBySeverity; } //# sourceMappingURL=ExecuteDetection.d.ts.map