|
declare var ajv: { |
|
(options?: ajv.Options): ajv.Ajv; |
|
new(options?: ajv.Options): ajv.Ajv; |
|
ValidationError: typeof AjvErrors.ValidationError; |
|
MissingRefError: typeof AjvErrors.MissingRefError; |
|
$dataMetaSchema: object; |
|
} |
|
|
|
declare namespace AjvErrors { |
|
class ValidationError extends Error { |
|
constructor(errors: Array<ajv.ErrorObject>); |
|
|
|
message: string; |
|
errors: Array<ajv.ErrorObject>; |
|
ajv: true; |
|
validation: true; |
|
} |
|
|
|
class MissingRefError extends Error { |
|
constructor(baseId: string, ref: string, message?: string); |
|
static message: (baseId: string, ref: string) => string; |
|
|
|
message: string; |
|
missingRef: string; |
|
missingSchema: string; |
|
} |
|
} |
|
|
|
declare namespace ajv { |
|
type ValidationError = AjvErrors.ValidationError; |
|
|
|
type MissingRefError = AjvErrors.MissingRefError; |
|
|
|
interface Ajv { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validate(schemaKeyRef: object | string | boolean, data: any): boolean | PromiseLike<any>; |
|
|
|
|
|
|
|
|
|
|
|
compile(schema: object | boolean): ValidateFunction; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike<ValidateFunction>; |
|
|
|
|
|
|
|
|
|
|
|
|
|
addSchema(schema: Array<object> | object, key?: string): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addMetaSchema(schema: object, key?: string): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
validateSchema(schema: object | boolean): boolean; |
|
|
|
|
|
|
|
|
|
|
|
getSchema(keyRef: string): ValidateFunction | undefined; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
|
|
addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addKeyword(keyword: string, definition: KeywordDefinition): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
|
|
getKeyword(keyword: string): object | boolean; |
|
|
|
|
|
|
|
|
|
|
|
|
|
removeKeyword(keyword: string): Ajv; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validateKeyword(definition: KeywordDefinition, throwError: boolean): boolean; |
|
|
|
|
|
|
|
|
|
|
|
|
|
errorsText(errors?: Array<ErrorObject> | null, options?: ErrorsTextOptions): string; |
|
errors?: Array<ErrorObject> | null; |
|
_opts: Options; |
|
} |
|
|
|
interface CustomLogger { |
|
log(...args: any[]): any; |
|
warn(...args: any[]): any; |
|
error(...args: any[]): any; |
|
} |
|
|
|
interface ValidateFunction { |
|
( |
|
data: any, |
|
dataPath?: string, |
|
parentData?: object | Array<any>, |
|
parentDataProperty?: string | number, |
|
rootData?: object | Array<any> |
|
): boolean | PromiseLike<any>; |
|
schema?: object | boolean; |
|
errors?: null | Array<ErrorObject>; |
|
refs?: object; |
|
refVal?: Array<any>; |
|
root?: ValidateFunction | object; |
|
$async?: true; |
|
source?: object; |
|
} |
|
|
|
interface Options { |
|
$data?: boolean; |
|
allErrors?: boolean; |
|
verbose?: boolean; |
|
jsonPointers?: boolean; |
|
uniqueItems?: boolean; |
|
unicode?: boolean; |
|
format?: false | string; |
|
formats?: object; |
|
keywords?: object; |
|
unknownFormats?: true | string[] | 'ignore'; |
|
schemas?: Array<object> | object; |
|
schemaId?: '$id' | 'id' | 'auto'; |
|
missingRefs?: true | 'ignore' | 'fail'; |
|
extendRefs?: true | 'ignore' | 'fail'; |
|
loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike<object | boolean>; |
|
removeAdditional?: boolean | 'all' | 'failing'; |
|
useDefaults?: boolean | 'empty' | 'shared'; |
|
coerceTypes?: boolean | 'array'; |
|
strictDefaults?: boolean | 'log'; |
|
strictKeywords?: boolean | 'log'; |
|
strictNumbers?: boolean; |
|
async?: boolean | string; |
|
transpile?: string | ((code: string) => string); |
|
meta?: boolean | object; |
|
validateSchema?: boolean | 'log'; |
|
addUsedSchema?: boolean; |
|
inlineRefs?: boolean | number; |
|
passContext?: boolean; |
|
loopRequired?: number; |
|
ownProperties?: boolean; |
|
multipleOfPrecision?: boolean | number; |
|
errorDataPath?: string, |
|
messages?: boolean; |
|
sourceCode?: boolean; |
|
processCode?: (code: string, schema: object) => string; |
|
cache?: object; |
|
logger?: CustomLogger | false; |
|
nullable?: boolean; |
|
serialize?: ((schema: object | boolean) => any) | false; |
|
} |
|
|
|
type FormatValidator = string | RegExp | ((data: string) => boolean | PromiseLike<any>); |
|
type NumberFormatValidator = ((data: number) => boolean | PromiseLike<any>); |
|
|
|
interface NumberFormatDefinition { |
|
type: "number", |
|
validate: NumberFormatValidator; |
|
compare?: (data1: number, data2: number) => number; |
|
async?: boolean; |
|
} |
|
|
|
interface StringFormatDefinition { |
|
type?: "string", |
|
validate: FormatValidator; |
|
compare?: (data1: string, data2: string) => number; |
|
async?: boolean; |
|
} |
|
|
|
type FormatDefinition = NumberFormatDefinition | StringFormatDefinition; |
|
|
|
interface KeywordDefinition { |
|
type?: string | Array<string>; |
|
async?: boolean; |
|
$data?: boolean; |
|
errors?: boolean | string; |
|
metaSchema?: object; |
|
|
|
schema?: boolean; |
|
statements?: boolean; |
|
dependencies?: Array<string>; |
|
modifying?: boolean; |
|
valid?: boolean; |
|
|
|
validate?: SchemaValidateFunction | ValidateFunction; |
|
compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction; |
|
macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean; |
|
inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string; |
|
} |
|
|
|
interface CompilationContext { |
|
level: number; |
|
dataLevel: number; |
|
dataPathArr: string[]; |
|
schema: any; |
|
schemaPath: string; |
|
baseId: string; |
|
async: boolean; |
|
opts: Options; |
|
formats: { |
|
[index: string]: FormatDefinition | undefined; |
|
}; |
|
keywords: { |
|
[index: string]: KeywordDefinition | undefined; |
|
}; |
|
compositeRule: boolean; |
|
validate: (schema: object) => boolean; |
|
util: { |
|
copy(obj: any, target?: any): any; |
|
toHash(source: string[]): { [index: string]: true | undefined }; |
|
equal(obj: any, target: any): boolean; |
|
getProperty(str: string): string; |
|
schemaHasRules(schema: object, rules: any): string; |
|
escapeQuotes(str: string): string; |
|
toQuotedString(str: string): string; |
|
getData(jsonPointer: string, dataLevel: number, paths: string[]): string; |
|
escapeJsonPointer(str: string): string; |
|
unescapeJsonPointer(str: string): string; |
|
escapeFragment(str: string): string; |
|
unescapeFragment(str: string): string; |
|
}; |
|
self: Ajv; |
|
} |
|
|
|
interface SchemaValidateFunction { |
|
( |
|
schema: any, |
|
data: any, |
|
parentSchema?: object, |
|
dataPath?: string, |
|
parentData?: object | Array<any>, |
|
parentDataProperty?: string | number, |
|
rootData?: object | Array<any> |
|
): boolean | PromiseLike<any>; |
|
errors?: Array<ErrorObject>; |
|
} |
|
|
|
interface ErrorsTextOptions { |
|
separator?: string; |
|
dataVar?: string; |
|
} |
|
|
|
interface ErrorObject { |
|
keyword: string; |
|
dataPath: string; |
|
schemaPath: string; |
|
params: ErrorParameters; |
|
|
|
propertyName?: string; |
|
|
|
message?: string; |
|
|
|
schema?: any; |
|
parentSchema?: object; |
|
data?: any; |
|
} |
|
|
|
type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams | |
|
DependenciesParams | FormatParams | ComparisonParams | |
|
MultipleOfParams | PatternParams | RequiredParams | |
|
TypeParams | UniqueItemsParams | CustomParams | |
|
PatternRequiredParams | PropertyNamesParams | |
|
IfParams | SwitchParams | NoParams | EnumParams; |
|
|
|
interface RefParams { |
|
ref: string; |
|
} |
|
|
|
interface LimitParams { |
|
limit: number; |
|
} |
|
|
|
interface AdditionalPropertiesParams { |
|
additionalProperty: string; |
|
} |
|
|
|
interface DependenciesParams { |
|
property: string; |
|
missingProperty: string; |
|
depsCount: number; |
|
deps: string; |
|
} |
|
|
|
interface FormatParams { |
|
format: string |
|
} |
|
|
|
interface ComparisonParams { |
|
comparison: string; |
|
limit: number | string; |
|
exclusive: boolean; |
|
} |
|
|
|
interface MultipleOfParams { |
|
multipleOf: number; |
|
} |
|
|
|
interface PatternParams { |
|
pattern: string; |
|
} |
|
|
|
interface RequiredParams { |
|
missingProperty: string; |
|
} |
|
|
|
interface TypeParams { |
|
type: string; |
|
} |
|
|
|
interface UniqueItemsParams { |
|
i: number; |
|
j: number; |
|
} |
|
|
|
interface CustomParams { |
|
keyword: string; |
|
} |
|
|
|
interface PatternRequiredParams { |
|
missingPattern: string; |
|
} |
|
|
|
interface PropertyNamesParams { |
|
propertyName: string; |
|
} |
|
|
|
interface IfParams { |
|
failingKeyword: string; |
|
} |
|
|
|
interface SwitchParams { |
|
caseIndex: number; |
|
} |
|
|
|
interface NoParams { } |
|
|
|
interface EnumParams { |
|
allowedValues: Array<any>; |
|
} |
|
} |
|
|
|
export = ajv; |
|
|