UNPKG

@xynehq/jaf

Version:

Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools

85 lines 4.21 kB
/** * JAF ADK Layer - Schema Validation * * Functional schema validation system */ import { SchemaValidator, ValidationResult, JsonSchema, TypeGuard } from '../types'; export { createValidationError } from '../types'; export declare const createSchemaValidator: <T>(schema: JsonSchema, validator: TypeGuard<T>) => SchemaValidator<T>; export declare const validateAgainstJsonSchema: (data: unknown, schema: JsonSchema) => ValidationResult<unknown>; export declare const isString: TypeGuard<string>; export declare const isNumber: TypeGuard<number>; export declare const isBoolean: TypeGuard<boolean>; export declare const isObject: TypeGuard<Record<string, unknown>>; export declare const isArray: TypeGuard<unknown[]>; export declare const isNull: TypeGuard<null>; export declare const isUndefined: TypeGuard<undefined>; export declare const stringSchema: (options?: { description?: string; enum?: string[]; default?: string; }) => JsonSchema; export declare const numberSchema: (options?: { description?: string; enum?: number[]; default?: number; }) => JsonSchema; export declare const booleanSchema: (options?: { description?: string; default?: boolean; }) => JsonSchema; export declare const objectSchema: (properties: Record<string, JsonSchema>, required?: string[], options?: { description?: string; }) => JsonSchema; export declare const arraySchema: (items: JsonSchema, options?: { description?: string; }) => JsonSchema; export declare const createStringValidator: (options?: { description?: string; enum?: string[]; default?: string; }) => SchemaValidator<string>; export declare const createNumberValidator: (options?: { description?: string; enum?: number[]; default?: number; }) => SchemaValidator<number>; export declare const createBooleanValidator: (options?: { description?: string; default?: boolean; }) => SchemaValidator<boolean>; export declare const createObjectValidator: <T extends Record<string, unknown>>(properties: Record<string, JsonSchema>, required?: string[], typeGuard?: TypeGuard<T>) => SchemaValidator<T>; export declare const createArrayValidator: <T extends unknown[]>(items: JsonSchema, typeGuard?: TypeGuard<T>) => SchemaValidator<T>; export declare const isOptional: <T>(guard: TypeGuard<T>) => TypeGuard<T | undefined>; export declare const isNullable: <T>(guard: TypeGuard<T>) => TypeGuard<T | null>; export declare const isUnion: <T>(...guards: TypeGuard<any>[]) => TypeGuard<T>; export declare const hasProperty: <K extends string>(key: K) => TypeGuard<Record<K, unknown>>; export declare const hasProperties: <K extends string>(...keys: K[]) => TypeGuard<Record<K, unknown>>; export declare const validateInput: <T>(validator: SchemaValidator<T>, data: unknown) => ValidationResult<T>; export declare const validateOutput: <T>(validator: SchemaValidator<T>, data: unknown) => ValidationResult<T>; export declare const assertValid: <T>(validator: SchemaValidator<T>, data: unknown) => T; export declare const isValid: <T>(validator: SchemaValidator<T>, data: unknown) => data is T; export declare const transformAndValidate: <T, U>(validator: SchemaValidator<U>, transformer: (input: T) => U, data: T) => ValidationResult<U>; export declare const validateAndTransform: <T, U>(inputValidator: SchemaValidator<T>, transformer: (input: T) => U, data: unknown) => ValidationResult<U>; export interface WeatherQuery { location: string; units?: 'celsius' | 'fahrenheit'; includeHourly?: boolean; [key: string]: unknown; } export declare const weatherQueryValidator: SchemaValidator<WeatherQuery>; export interface WeatherResponse { location: string; temperature: number; condition: string; humidity: number; forecast?: Array<{ time: string; temperature: number; condition: string; }>; [key: string]: unknown; } export declare const weatherResponseValidator: SchemaValidator<WeatherResponse>; export declare const withSchemaValidation: <T extends unknown[], R>(fn: (...args: T) => R, inputValidators?: SchemaValidator<unknown>[], outputValidator?: SchemaValidator<R>) => (...args: T) => R; //# sourceMappingURL=index.d.ts.map