schema-shield 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../lib/formats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA8TzC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CA4O1D,CAAC"}
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../lib/formats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsVzC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CA8O1D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,11 @@ import { DefineErrorFunction, ValidationError } from "./utils/main-utils";
3
3
  export { ValidationError } from "./utils/main-utils";
4
4
  export { deepCloneUnfreeze as deepClone } from "./utils/deep-freeze";
5
5
  export type Result = void | ValidationError | true;
6
+ export interface ValidateSubschemaFunction {
7
+ (schema: CompiledSchema, data: any): Result;
8
+ }
6
9
  export interface KeywordFunction {
7
- (schema: CompiledSchema, data: any, defineError: DefineErrorFunction, instance: SchemaShield): Result;
10
+ (schema: CompiledSchema, data: any, defineError: DefineErrorFunction, instance: SchemaShield, validateSubschema?: ValidateSubschemaFunction): Result;
8
11
  }
9
12
  export interface TypeFunction {
10
13
  (data: any): boolean;
@@ -28,17 +31,26 @@ export interface Validator {
28
31
  compiledSchema: CompiledSchema;
29
32
  }
30
33
  export declare class SchemaShield {
34
+ #private;
31
35
  private types;
32
36
  private formats;
33
37
  private keywords;
34
38
  private immutable;
39
+ private useDefaults;
35
40
  private rootSchema;
36
- private idRegistry;
37
41
  private failFast;
38
- constructor({ immutable, failFast }?: {
42
+ private maxDepth;
43
+ private validationContexts;
44
+ private compileCache;
45
+ private compilingRequiresContext;
46
+ private compilingMutableSchemas;
47
+ constructor({ immutable, failFast, maxDepth, useDefaults }?: {
39
48
  immutable?: boolean;
40
49
  failFast?: boolean;
50
+ maxDepth?: number;
51
+ useDefaults?: boolean | "empty";
41
52
  });
53
+ setDefault(target: Record<string, any>, key: string, value: any): void;
42
54
  addType(name: string, validator: TypeFunction, overwrite?: boolean): void;
43
55
  getType(type: string): TypeFunction | false;
44
56
  addFormat(name: string, validator: FormatFunction, overwrite?: boolean): void;
@@ -48,7 +60,19 @@ export declare class SchemaShield {
48
60
  getKeyword(keyword: string): KeywordFunction | false;
49
61
  getSchemaRef(path: string): CompiledSchema | undefined;
50
62
  getSchemaById(id: string): CompiledSchema | undefined;
63
+ private depthError;
64
+ private schemaChildEntries;
65
+ private schemaChildren;
66
+ private registrySubschemaEntries;
67
+ private escapePointerToken;
68
+ private resolveUri;
69
+ private resourceUri;
70
+ private buildReferenceRegistry;
71
+ private resolveReferenceSource;
72
+ private analyzeSchema;
51
73
  compile(schema: any): Validator;
74
+ private prepareSchema;
75
+ private createGuardedValidator;
52
76
  private isPlainObject;
53
77
  private isTrivialAlwaysValidSubschema;
54
78
  private shallowArrayEquals;
@@ -57,10 +81,15 @@ export declare class SchemaShield {
57
81
  private normalizeSchemaForCompile;
58
82
  private markSchemaHasRef;
59
83
  private shouldSkipKeyword;
60
- private hasRequiredDefaults;
84
+ private hasPropertyDefaults;
61
85
  private isDefaultTypeValidator;
86
+ private rollbackDefaults;
87
+ private isDepthError;
88
+ private validateSubschema;
89
+ private installDepthGuards;
62
90
  private compileSchema;
63
91
  isSchemaLike(subSchema: any): boolean;
92
+ private getCompiledReferenceTarget;
64
93
  private linkReferences;
65
94
  }
66
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}