@syntropysoft/praetorian
Version:
Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.
78 lines • 2.8 kB
TypeScript
/**
* @file src/application/services/rule-loading/RuleSetLoader.ts
* @description Pure functions for loading rule sets from various sources
*/
import { PraetorianRule, RuleLoadResult } from '../../../shared/types/rules';
/**
* @interface RuleSetLoadOptions
* @description Options for loading a rule set
*/
export interface RuleSetLoadOptions {
workingDirectory: string;
validateRules?: boolean;
}
/**
* Loads a rule set from a path or URL
* @param ruleSetPath - Path to rule set (file path or URL)
* @param options - Loading options
* @returns Promise with loaded rules
*/
export declare const loadRuleSet: (ruleSetPath: string, options: RuleSetLoadOptions) => Promise<RuleLoadResult>;
/**
* Loads a core rule set by name
* @param corePath - Core rule set path (e.g., '@praetorian/core/all')
* @returns Rule load result
*/
export declare const loadCoreRuleSet: (corePath: string) => RuleLoadResult;
/**
* Loads rule set from a local file
* @param filePath - Path to the rule file
* @param options - Loading options
* @returns Promise with loaded rules
*/
export declare const loadRuleSetFromFile: (filePath: string, options: RuleSetLoadOptions) => Promise<RuleLoadResult>;
/**
* Loads rule set from a URL (placeholder for future implementation)
* @param url - URL to the rule set
* @returns Promise with loaded rules
*/
export declare const loadRuleSetFromUrl: (url: string) => Promise<RuleLoadResult>;
/**
* Parses rule file content based on file extension
* @param content - File content
* @param filePath - Full file path for extension detection
* @returns Parsed rules result
*/
export declare const parseRuleFile: (content: string, filePath: string) => RuleLoadResult;
/**
* Parses content based on file extension
* @param content - File content
* @param extension - File extension
* @returns Parsed content
*/
export declare const parseContentByExtension: (content: string, extension: string) => any;
/**
* Extracts rules from parsed content
* @param parsedContent - Parsed file content
* @returns Array of rules
*/
export declare const extractRulesFromContent: (parsedContent: any) => PraetorianRule[];
/**
* Checks if a string is a valid URL
* @param str - String to check
* @returns True if URL, false otherwise
*/
export declare const isUrl: (str: string) => boolean;
/**
* Creates an empty rule load result with errors
* @param errors - Array of error messages
* @returns Empty result with errors
*/
export declare const createEmptyResult: (errors?: string[]) => RuleLoadResult;
/**
* Combines multiple rule load results
* @param results - Array of rule load results
* @returns Combined result
*/
export declare const combineRuleLoadResults: (results: RuleLoadResult[]) => RuleLoadResult;
//# sourceMappingURL=RuleSetLoader.d.ts.map