UNPKG

@syntropysoft/praetorian

Version:

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

124 lines 4.51 kB
/** * @file src/application/services/rule-loading/RuleDictionary.ts * @description Pure functional rule dictionary to manage unique rule loading */ import { PraetorianRule } from '../../../shared/types/rules'; /** * @interface RuleDictionary * @description Dictionary of rules indexed by ID */ export interface RuleDictionary { [ruleId: string]: PraetorianRule; } /** * @interface RuleDictionaryResult * @description Result of dictionary operations */ export interface RuleDictionaryResult { dictionary: RuleDictionary; added: string[]; skipped: string[]; warnings: string[]; } /** * Creates an empty rule dictionary * @returns Empty rule dictionary */ export declare const createEmptyDictionary: () => RuleDictionary; /** * Adds rules to dictionary, skipping duplicates * @param dictionary - Current dictionary * @param rules - Rules to add * @param source - Source identifier for warnings * @returns Dictionary result with added/skipped rules */ export declare const addRulesToDictionary: (dictionary: RuleDictionary, rules: PraetorianRule[], source?: string) => RuleDictionaryResult; /** * Merges multiple rule dictionaries * @param dictionaries - Array of dictionaries to merge * @param sources - Source identifiers for warnings * @returns Merged dictionary result */ export declare const mergeRuleDictionaries: (dictionaries: RuleDictionary[], sources?: string[]) => RuleDictionaryResult; /** * Converts dictionary to array of rules * @param dictionary - Rule dictionary * @returns Array of rules */ export declare const dictionaryToRules: (dictionary: RuleDictionary) => PraetorianRule[]; /** * Gets rule by ID from dictionary * @param dictionary - Rule dictionary * @param ruleId - Rule ID to find * @returns Rule if found, undefined otherwise */ export declare const getRuleById: (dictionary: RuleDictionary, ruleId: string) => PraetorianRule | undefined; /** * Checks if rule exists in dictionary * @param dictionary - Rule dictionary * @param ruleId - Rule ID to check * @returns True if rule exists */ export declare const hasRule: (dictionary: RuleDictionary, ruleId: string) => boolean; /** * Gets rules by category from dictionary * @param dictionary - Rule dictionary * @param category - Category to filter by * @returns Array of rules in category */ export declare const getRulesByCategory: (dictionary: RuleDictionary, category: string) => PraetorianRule[]; /** * Gets rules by type from dictionary * @param dictionary - Rule dictionary * @param type - Type to filter by * @returns Array of rules of type */ export declare const getRulesByType: (dictionary: RuleDictionary, type: string) => PraetorianRule[]; /** * Gets enabled rules from dictionary * @param dictionary - Rule dictionary * @returns Array of enabled rules */ export declare const getEnabledRules: (dictionary: RuleDictionary) => PraetorianRule[]; /** * Gets disabled rules from dictionary * @param dictionary - Rule dictionary * @returns Array of disabled rules */ export declare const getDisabledRules: (dictionary: RuleDictionary) => PraetorianRule[]; /** * Gets dictionary statistics * @param dictionary - Rule dictionary * @returns Statistics about the dictionary */ export declare const getDictionaryStats: (dictionary: RuleDictionary) => { totalRules: number; enabledRules: number; disabledRules: number; categories: (string | undefined)[]; types: ("schema" | "security" | "format" | "structure")[]; severities: import("../../../shared/types").ValidationSeverity[]; uniqueIds: number; }; /** * Filters dictionary by predicate * @param dictionary - Rule dictionary * @param predicate - Filter function * @returns Filtered dictionary */ export declare const filterDictionary: (dictionary: RuleDictionary, predicate: (rule: PraetorianRule) => boolean) => RuleDictionary; /** * Removes rules from dictionary * @param dictionary - Rule dictionary * @param ruleIds - Rule IDs to remove * @returns New dictionary without specified rules */ export declare const removeRulesFromDictionary: (dictionary: RuleDictionary, ruleIds: string[]) => RuleDictionary; /** * Overrides rules in dictionary * @param dictionary - Rule dictionary * @param overrides - Rules to override (by ID) * @returns New dictionary with overridden rules */ export declare const overrideRulesInDictionary: (dictionary: RuleDictionary, overrides: Partial<PraetorianRule>[]) => RuleDictionaryResult; //# sourceMappingURL=RuleDictionary.d.ts.map