UNPKG

@syntropysoft/praetorian

Version:

Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.

93 lines 3.23 kB
/** * @file src/application/services/rule-loading/RuleComposer.ts * @description Pure functions for composing and manipulating validation rules */ import { PraetorianRule, RuleConfig } from '../../../shared/types/rules'; /** * @interface RuleCompositionOptions * @description Options for rule composition */ export interface RuleCompositionOptions { includeCoreRules?: boolean; validateRules?: boolean; } /** * Composes rules from configuration * @param baseRules - Base rules to start with * @param config - Rule configuration * @param options - Composition options * @returns Composed rules */ export declare const composeRules: (baseRules: PraetorianRule[], config: RuleConfig, options?: RuleCompositionOptions) => PraetorianRule[]; /** * Adds custom rules to existing rules * @param existingRules - Existing rules * @param customRules - Custom rules to add * @returns Combined rules */ export declare const addCustomRules: (existingRules: PraetorianRule[], customRules: PraetorianRule[]) => PraetorianRule[]; /** * Applies rule overrides to existing rules * @param rules - Existing rules * @param overrides - Rule overrides * @returns Updated rules */ export declare const applyRuleOverrides: (rules: PraetorianRule[], overrides: Partial<PraetorianRule>[]) => PraetorianRule[]; /** * Validates loaded rules for consistency * @param rules - Rules to validate * @returns Validation warnings */ export declare const validateLoadedRules: (rules: PraetorianRule[]) => string[]; /** * Validates rule-specific properties * @param rule - Rule to validate * @returns Validation warnings for this rule */ export declare const validateRuleSpecificProperties: (rule: PraetorianRule) => string[]; /** * Gets rules by category * @param rules - Rules to filter * @param category - Category to filter by * @returns Filtered rules */ export declare const getRulesByCategory: (rules: PraetorianRule[], category: string) => PraetorianRule[]; /** * Gets rules by tags * @param rules - Rules to filter * @param tags - Tags to filter by * @returns Filtered rules */ export declare const getRulesByTags: (rules: PraetorianRule[], tags: string[]) => PraetorianRule[]; /** * Gets rules by severity * @param rules - Rules to filter * @param severity - Severity to filter by * @returns Filtered rules */ export declare const getRulesBySeverity: (rules: PraetorianRule[], severity: string) => PraetorianRule[]; /** * Gets enabled rules only * @param rules - Rules to filter * @returns Enabled rules */ export declare const getEnabledRules: (rules: PraetorianRule[]) => PraetorianRule[]; /** * Gets disabled rules only * @param rules - Rules to filter * @returns Disabled rules */ export declare const getDisabledRules: (rules: PraetorianRule[]) => PraetorianRule[]; /** * Gets unique categories from rules * @param rules - Rules to analyze * @returns Array of unique categories */ export declare const getUniqueCategories: (rules: PraetorianRule[]) => string[]; /** * Gets unique tags from rules * @param rules - Rules to analyze * @returns Array of unique tags */ export declare const getUniqueTags: (rules: PraetorianRule[]) => string[]; //# sourceMappingURL=RuleComposer.d.ts.map