You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					174 lines
				
				8.1 KiB
			
		
		
			
		
	
	
					174 lines
				
				8.1 KiB
			| 
											3 years ago
										 | export { Format, FormatDefinition, AsyncFormatDefinition, KeywordDefinition, KeywordErrorDefinition, CodeKeywordDefinition, MacroKeywordDefinition, FuncKeywordDefinition, Vocabulary, Schema, SchemaObject, AnySchemaObject, AsyncSchema, AnySchema, ValidateFunction, AsyncValidateFunction, AnyValidateFunction, ErrorObject, ErrorNoParams, } from "./types"; | ||
|  | export { SchemaCxt, SchemaObjCxt } from "./compile"; | ||
|  | export interface Plugin<Opts> { | ||
|  |     (ajv: Ajv, options?: Opts): Ajv; | ||
|  |     [prop: string]: any; | ||
|  | } | ||
|  | export { KeywordCxt } from "./compile/validate"; | ||
|  | export { DefinedError } from "./vocabularies/errors"; | ||
|  | export { JSONType } from "./compile/rules"; | ||
|  | export { JSONSchemaType } from "./types/json-schema"; | ||
|  | export { JTDSchemaType, SomeJTDSchemaType, JTDDataType } from "./types/jtd-schema"; | ||
|  | export { _, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions } from "./compile/codegen"; | ||
|  | import type { Schema, AnySchema, AnySchemaObject, SchemaObject, AsyncSchema, Vocabulary, KeywordDefinition, AddedKeywordDefinition, AnyValidateFunction, ValidateFunction, AsyncValidateFunction, ErrorObject, Format, AddedFormat, RegExpEngine, UriResolver } from "./types"; | ||
|  | import type { JSONSchemaType } from "./types/json-schema"; | ||
|  | import type { JTDSchemaType, SomeJTDSchemaType, JTDDataType } from "./types/jtd-schema"; | ||
|  | import ValidationError from "./runtime/validation_error"; | ||
|  | import MissingRefError from "./compile/ref_error"; | ||
|  | import { ValidationRules } from "./compile/rules"; | ||
|  | import { SchemaEnv } from "./compile"; | ||
|  | import { Code, ValueScope } from "./compile/codegen"; | ||
|  | export declare type Options = CurrentOptions & DeprecatedOptions; | ||
|  | export interface CurrentOptions { | ||
|  |     strict?: boolean | "log"; | ||
|  |     strictSchema?: boolean | "log"; | ||
|  |     strictNumbers?: boolean | "log"; | ||
|  |     strictTypes?: boolean | "log"; | ||
|  |     strictTuples?: boolean | "log"; | ||
|  |     strictRequired?: boolean | "log"; | ||
|  |     allowMatchingProperties?: boolean; | ||
|  |     allowUnionTypes?: boolean; | ||
|  |     validateFormats?: boolean; | ||
|  |     $data?: boolean; | ||
|  |     allErrors?: boolean; | ||
|  |     verbose?: boolean; | ||
|  |     discriminator?: boolean; | ||
|  |     unicodeRegExp?: boolean; | ||
|  |     timestamp?: "string" | "date"; | ||
|  |     parseDate?: boolean; | ||
|  |     allowDate?: boolean; | ||
|  |     $comment?: true | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown); | ||
|  |     formats?: { | ||
|  |         [Name in string]?: Format; | ||
|  |     }; | ||
|  |     keywords?: Vocabulary; | ||
|  |     schemas?: AnySchema[] | { | ||
|  |         [Key in string]?: AnySchema; | ||
|  |     }; | ||
|  |     logger?: Logger | false; | ||
|  |     loadSchema?: (uri: string) => Promise<AnySchemaObject>; | ||
|  |     removeAdditional?: boolean | "all" | "failing"; | ||
|  |     useDefaults?: boolean | "empty"; | ||
|  |     coerceTypes?: boolean | "array"; | ||
|  |     next?: boolean; | ||
|  |     unevaluated?: boolean; | ||
|  |     dynamicRef?: boolean; | ||
|  |     schemaId?: "id" | "$id"; | ||
|  |     jtd?: boolean; | ||
|  |     meta?: SchemaObject | boolean; | ||
|  |     defaultMeta?: string | AnySchemaObject; | ||
|  |     validateSchema?: boolean | "log"; | ||
|  |     addUsedSchema?: boolean; | ||
|  |     inlineRefs?: boolean | number; | ||
|  |     passContext?: boolean; | ||
|  |     loopRequired?: number; | ||
|  |     loopEnum?: number; | ||
|  |     ownProperties?: boolean; | ||
|  |     multipleOfPrecision?: number; | ||
|  |     int32range?: boolean; | ||
|  |     messages?: boolean; | ||
|  |     code?: CodeOptions; | ||
|  |     uriResolver?: UriResolver; | ||
|  | } | ||
|  | export interface CodeOptions { | ||
|  |     es5?: boolean; | ||
|  |     esm?: boolean; | ||
|  |     lines?: boolean; | ||
|  |     optimize?: boolean | number; | ||
|  |     formats?: Code; | ||
|  |     source?: boolean; | ||
|  |     process?: (code: string, schema?: SchemaEnv) => string; | ||
|  |     regExp?: RegExpEngine; | ||
|  | } | ||
|  | interface InstanceCodeOptions extends CodeOptions { | ||
|  |     regExp: RegExpEngine; | ||
|  |     optimize: number; | ||
|  | } | ||
|  | interface DeprecatedOptions { | ||
|  |     /** @deprecated */ | ||
|  |     ignoreKeywordsWithRef?: boolean; | ||
|  |     /** @deprecated */ | ||
|  |     jsPropertySyntax?: boolean; | ||
|  |     /** @deprecated */ | ||
|  |     unicode?: boolean; | ||
|  | } | ||
|  | declare type RequiredInstanceOptions = { | ||
|  |     [K in "strictSchema" | "strictNumbers" | "strictTypes" | "strictTuples" | "strictRequired" | "inlineRefs" | "loopRequired" | "loopEnum" | "meta" | "messages" | "schemaId" | "addUsedSchema" | "validateSchema" | "validateFormats" | "int32range" | "unicodeRegExp" | "uriResolver"]: NonNullable<Options[K]>; | ||
|  | } & { | ||
|  |     code: InstanceCodeOptions; | ||
|  | }; | ||
|  | export declare type InstanceOptions = Options & RequiredInstanceOptions; | ||
|  | export interface Logger { | ||
|  |     log(...args: unknown[]): unknown; | ||
|  |     warn(...args: unknown[]): unknown; | ||
|  |     error(...args: unknown[]): unknown; | ||
|  | } | ||
|  | export default class Ajv { | ||
|  |     opts: InstanceOptions; | ||
|  |     errors?: ErrorObject[] | null; | ||
|  |     logger: Logger; | ||
|  |     readonly scope: ValueScope; | ||
|  |     readonly schemas: { | ||
|  |         [Key in string]?: SchemaEnv; | ||
|  |     }; | ||
|  |     readonly refs: { | ||
|  |         [Ref in string]?: SchemaEnv | string; | ||
|  |     }; | ||
|  |     readonly formats: { | ||
|  |         [Name in string]?: AddedFormat; | ||
|  |     }; | ||
|  |     readonly RULES: ValidationRules; | ||
|  |     readonly _compilations: Set<SchemaEnv>; | ||
|  |     private readonly _loading; | ||
|  |     private readonly _cache; | ||
|  |     private readonly _metaOpts; | ||
|  |     static ValidationError: typeof ValidationError; | ||
|  |     static MissingRefError: typeof MissingRefError; | ||
|  |     constructor(opts?: Options); | ||
|  |     _addVocabularies(): void; | ||
|  |     _addDefaultMetaSchema(): void; | ||
|  |     defaultMeta(): string | AnySchemaObject | undefined; | ||
|  |     validate(schema: Schema | string, data: unknown): boolean; | ||
|  |     validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>; | ||
|  |     validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T; | ||
|  |     validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T; | ||
|  |     validate<N extends never, T extends SomeJTDSchemaType>(schema: T, data: unknown): data is JTDDataType<T>; | ||
|  |     validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>; | ||
|  |     validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>; | ||
|  |     compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>; | ||
|  |     compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>; | ||
|  |     compile<N extends never, T extends SomeJTDSchemaType>(schema: T, _meta?: boolean): ValidateFunction<JTDDataType<T>>; | ||
|  |     compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>; | ||
|  |     compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>; | ||
|  |     compileAsync<T = unknown>(schema: SchemaObject | JSONSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>; | ||
|  |     compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>; | ||
|  |     compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>; | ||
|  |     compileAsync<T = unknown>(schema: AnySchemaObject, meta?: boolean): Promise<AnyValidateFunction<T>>; | ||
|  |     addSchema(schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored
 | ||
|  |     key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
 | ||
|  |     _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
 | ||
|  |     _validateSchema?: boolean | "log"): Ajv; | ||
|  |     addMetaSchema(schema: AnySchemaObject, key?: string, // schema key
 | ||
|  |     _validateSchema?: boolean | "log"): Ajv; | ||
|  |     validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown>; | ||
|  |     getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined; | ||
|  |     removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv; | ||
|  |     addVocabulary(definitions: Vocabulary): Ajv; | ||
|  |     addKeyword(kwdOrDef: string | KeywordDefinition, def?: KeywordDefinition): Ajv; | ||
|  |     getKeyword(keyword: string): AddedKeywordDefinition | boolean; | ||
|  |     removeKeyword(keyword: string): Ajv; | ||
|  |     addFormat(name: string, format: Format): Ajv; | ||
|  |     errorsText(errors?: ErrorObject[] | null | undefined, // optional array of validation errors
 | ||
|  |     { separator, dataVar }?: ErrorsTextOptions): string; | ||
|  |     $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject; | ||
|  |     private _removeAllSchemas; | ||
|  |     _addSchema(schema: AnySchema, meta?: boolean, baseId?: string, validateSchema?: boolean | "log", addSchema?: boolean): SchemaEnv; | ||
|  |     private _checkUnique; | ||
|  |     private _compileSchemaEnv; | ||
|  |     private _compileMetaSchema; | ||
|  | } | ||
|  | export interface ErrorsTextOptions { | ||
|  |     separator?: string; | ||
|  |     dataVar?: string; | ||
|  | } |