UNPKG

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