@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
TypeScript
/**
* @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