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.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							2.9 KiB
						
					
					
				| import type { AnySchema, AnySchemaObject, AnyValidateFunction, EvaluatedProperties, EvaluatedItems } from "../types";
 | |
| import type Ajv from "../core";
 | |
| import type { InstanceOptions } from "../core";
 | |
| import { CodeGen, Name, Code, ValueScopeName } from "./codegen";
 | |
| import { LocalRefs } from "./resolve";
 | |
| import { JSONType } from "./rules";
 | |
| export declare type SchemaRefs = {
 | |
|     [Ref in string]?: SchemaEnv | AnySchema;
 | |
| };
 | |
| export interface SchemaCxt {
 | |
|     readonly gen: CodeGen;
 | |
|     readonly allErrors?: boolean;
 | |
|     readonly data: Name;
 | |
|     readonly parentData: Name;
 | |
|     readonly parentDataProperty: Code | number;
 | |
|     readonly dataNames: Name[];
 | |
|     readonly dataPathArr: (Code | number)[];
 | |
|     readonly dataLevel: number;
 | |
|     dataTypes: JSONType[];
 | |
|     definedProperties: Set<string>;
 | |
|     readonly topSchemaRef: Code;
 | |
|     readonly validateName: Name;
 | |
|     evaluated?: Name;
 | |
|     readonly ValidationError?: Name;
 | |
|     readonly schema: AnySchema;
 | |
|     readonly schemaEnv: SchemaEnv;
 | |
|     readonly rootId: string;
 | |
|     baseId: string;
 | |
|     readonly schemaPath: Code;
 | |
|     readonly errSchemaPath: string;
 | |
|     readonly errorPath: Code;
 | |
|     readonly propertyName?: Name;
 | |
|     readonly compositeRule?: boolean;
 | |
|     props?: EvaluatedProperties | Name;
 | |
|     items?: EvaluatedItems | Name;
 | |
|     jtdDiscriminator?: string;
 | |
|     jtdMetadata?: boolean;
 | |
|     readonly createErrors?: boolean;
 | |
|     readonly opts: InstanceOptions;
 | |
|     readonly self: Ajv;
 | |
| }
 | |
| export interface SchemaObjCxt extends SchemaCxt {
 | |
|     readonly schema: AnySchemaObject;
 | |
| }
 | |
| interface SchemaEnvArgs {
 | |
|     readonly schema: AnySchema;
 | |
|     readonly schemaId?: "$id" | "id";
 | |
|     readonly root?: SchemaEnv;
 | |
|     readonly baseId?: string;
 | |
|     readonly schemaPath?: string;
 | |
|     readonly localRefs?: LocalRefs;
 | |
|     readonly meta?: boolean;
 | |
| }
 | |
| export declare class SchemaEnv implements SchemaEnvArgs {
 | |
|     readonly schema: AnySchema;
 | |
|     readonly schemaId?: "$id" | "id";
 | |
|     readonly root: SchemaEnv;
 | |
|     baseId: string;
 | |
|     schemaPath?: string;
 | |
|     localRefs?: LocalRefs;
 | |
|     readonly meta?: boolean;
 | |
|     readonly $async?: boolean;
 | |
|     readonly refs: SchemaRefs;
 | |
|     readonly dynamicAnchors: {
 | |
|         [Ref in string]?: true;
 | |
|     };
 | |
|     validate?: AnyValidateFunction;
 | |
|     validateName?: ValueScopeName;
 | |
|     serialize?: (data: unknown) => string;
 | |
|     serializeName?: ValueScopeName;
 | |
|     parse?: (data: string) => unknown;
 | |
|     parseName?: ValueScopeName;
 | |
|     constructor(env: SchemaEnvArgs);
 | |
| }
 | |
| export declare function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv;
 | |
| export declare function resolveRef(this: Ajv, root: SchemaEnv, baseId: string, ref: string): AnySchema | SchemaEnv | undefined;
 | |
| export declare function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void;
 | |
| export declare function resolveSchema(this: Ajv, root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it
 | |
| ref: string): SchemaEnv | undefined;
 | |
| export {};
 |