@syntropysoft/praetorian
Version:
Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.
94 lines • 3.6 kB
TypeScript
/**
* @file src/application/services/rule-loading/UltraSimpleRuleDictionary.ts
* @description Ultra-simple rule dictionary - ID as key, name as value (SOLID SRP + Functional Programming)
*/
import { RuleDictionary, RuleDictionaryResult } from '../../../shared/types/rule-dictionary';
/**
* Creates an empty rule dictionary
* @returns Empty rule dictionary
*/
export declare const createEmptyDictionary: () => RuleDictionary;
/**
* Adds rules to dictionary, skipping duplicates (Guard Clause Pattern)
* @param dictionary - Current dictionary
* @param rules - Rules to add (ID -> Name mapping)
* @param source - Source identifier for warnings
* @returns Dictionary result with added/skipped rules
*/
export declare const addRulesToDictionary: (dictionary: RuleDictionary, rules: {
[ruleId: string]: string;
}, source?: string) => RuleDictionaryResult;
/**
* Merges multiple rule dictionaries (Functional Composition)
* @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;
/**
* Gets rule name by ID (Pure Function)
* @param dictionary - Rule dictionary
* @param ruleId - Rule ID to find
* @returns Rule name if found, undefined otherwise
*/
export declare const getRuleNameById: (dictionary: RuleDictionary, ruleId: string) => string | undefined;
/**
* Checks if rule exists in dictionary (Pure Function)
* @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 dictionary statistics (Pure Function)
* @param dictionary - Rule dictionary
* @returns Statistics about the dictionary
*/
export declare const getDictionaryStats: (dictionary: RuleDictionary) => {
totalRules: number;
uniqueIds: number;
ruleIds: string[];
ruleNames: string[];
};
/**
* Filters dictionary by predicate (Pure Function)
* @param dictionary - Rule dictionary
* @param predicate - Filter function
* @returns Filtered dictionary
*/
export declare const filterDictionary: (dictionary: RuleDictionary, predicate: (ruleId: string, ruleName: string) => boolean) => RuleDictionary;
/**
* Removes rules from dictionary (Pure Function)
* @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 (Pure Function)
* @param dictionary - Rule dictionary
* @param overrides - Rules to override (ID -> Name mapping)
* @returns New dictionary with overridden rules
*/
export declare const overrideRulesInDictionary: (dictionary: RuleDictionary, overrides: {
[ruleId: string]: string;
}[]) => RuleDictionaryResult;
/**
* Converts array of rule objects to dictionary (Pure Function)
* @param rules - Array of rule objects with id and name
* @returns Dictionary mapping
*/
export declare const arrayToDictionary: (rules: {
id: string;
name: string;
}[]) => RuleDictionary;
/**
* Converts dictionary to array of rule objects (Pure Function)
* @param dictionary - Rule dictionary
* @returns Array of rule objects
*/
export declare const dictionaryToArray: (dictionary: RuleDictionary) => {
id: string;
name: string;
}[];
//# sourceMappingURL=UltraSimpleRuleDictionary.d.ts.map