import type { DataRecord, Result } from '@overture-stack/lectern-dictionary'; import type { RecordValidationErrorInvalidValue, RecordValidationErrorUnrecognizedField } from '../validateRecord'; import type { SchemaRecordError } from '../validateSchema'; export type ParseFieldError = RecordValidationErrorInvalidValue | RecordValidationErrorUnrecognizedField; export type ParseRecordFailureData = { record: DataRecord; errors: ParseFieldError[]; }; export type ParseRecordResult = Result<{ record: DataRecord; }, ParseRecordFailureData>; export type ParseSchemaError = SchemaRecordError; export type ParseSchemaFailureData = { records: DataRecord[]; errors: ParseSchemaError[]; }; export type ParseSchemaResult = Result<{ records: DataRecord[]; }, ParseSchemaFailureData>; export type ParseDictionaryErrorUnrecognizedSchema = { reason: 'UNRECOGNIZED_SCHEMA'; }; export type ParseDictionaryErrorInvalidRecords = { reason: 'INVALID_RECORDS'; errors: ParseSchemaError[]; }; export type ParseDictionaryFailure = { records: DataRecord[]; } & (ParseDictionaryErrorUnrecognizedSchema | ParseDictionaryErrorInvalidRecords); export type ParseDictionaryData = Record>; export type ParseDictionaryResult = Result;