import { SchemaValidationError, type ParseRecordFailureData, type DictionaryValidationError, type RecordValidationError, type ParseSchemaFailureData, type ParseDictionaryData } from '@overture-stack/lectern-validation'; import { DataRecord, Schema } from '@overture-stack/lectern-dictionary'; export type ProcessingFunction = (schema: Schema, rec: Readonly, index: number) => any; type RecordProcessingSuccess = { status: 'SUCCESS'; record: DataRecord; }; type RecordProcessingErrorParsing = ParseRecordFailureData & { status: 'ERROR_PARSING'; }; type RecordProcessingErrorValidation = { status: 'ERROR_VALIDATION'; record: DataRecord; errors: RecordValidationError[]; }; export type RecordProcessingResult = RecordProcessingSuccess | RecordProcessingErrorParsing | RecordProcessingErrorValidation; type SchemaProcessingSuccess = { status: 'SUCCESS'; records: DataRecord[]; }; type SchemaProcessingErrorParsing = ParseSchemaFailureData & { status: 'ERROR_PARSING'; }; type SchemaProcessingErrorValidation = { status: 'ERROR_VALIDATION'; records: DataRecord[]; errors: SchemaValidationError[]; }; export type SchemaProcessingResult = SchemaProcessingSuccess | SchemaProcessingErrorParsing | SchemaProcessingErrorValidation; type DictionaryProcessingSuccess = { status: 'SUCCESS'; data: Record; }; type DictionaryProcessingErrorParsing = { status: 'ERROR_PARSING'; data: ParseDictionaryData; }; /** * Includes all converted data plus the list of errors that occurred in validation. */ type DictionaryProcessingErrorValidation = { status: 'ERROR_VALIDATION'; data: Record; errors: DictionaryValidationError[]; }; export type DictionaryProcessingResult = DictionaryProcessingSuccess | DictionaryProcessingErrorParsing | DictionaryProcessingErrorValidation; export interface FieldNamesByPriorityMap { required: string[]; optional: string[]; } export {};