legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
57 lines • 1.53 kB
TypeScript
/**
* Canonical configuration schema for Legal Markdown runtime behavior.
*
* @example
* ```ts
* const cfg: LegalMdConfig = {
* ...DEFAULT_CONFIG,
* logging: { ...DEFAULT_CONFIG.logging, level: 'info' },
* };
* ```
*/
export interface LegalMdConfig {
paths: {
images: string;
styles: string;
input: string;
output: string;
archive: string;
};
logging: {
level: 'error' | 'warn' | 'info' | 'debug';
debug: boolean;
};
processing: {
highlight: boolean;
enableFieldTracking: boolean;
astFieldTracking: boolean;
logicBranchHighlighting: boolean;
validationMode: 'strict' | 'permissive' | 'auto';
locale: string;
};
pdf: {
connector: 'auto' | 'puppeteer' | 'system-chrome' | 'weasyprint';
format: 'A4' | 'Letter';
margin: {
top: string;
bottom: string;
left: string;
right: string;
};
};
}
/**
* Default Legal Markdown configuration values.
*
* @example
* ```ts
* import { DEFAULT_CONFIG } from './schema.js';
*
* console.log(DEFAULT_CONFIG.pdf.connector); // "auto"
* ```
*/
export declare const DEFAULT_CONFIG: LegalMdConfig;
declare function asEnum<T extends string>(value: unknown, allowed: Set<T>, fallback: T, fieldName: string, errors: string[]): T;
export declare function validateConfig(config: unknown): LegalMdConfig;
export { asEnum as _asEnum };
//# sourceMappingURL=schema.d.ts.map