@depup/typebox 1.3.22-depup.0 → 1.3.30-depup.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.
- package/README.md +2 -2
- package/build/compile/validator.d.mts +1 -1
- package/build/compile/validator.mjs +1 -1
- package/build/format/iri.mjs +5 -1
- package/build/schema/build.mjs +2 -2
- package/build/schema/check.mjs +1 -1
- package/build/schema/compile.d.mts +3 -2
- package/build/schema/compile.mjs +8 -8
- package/build/schema/engine/_context.d.mts +6 -7
- package/build/schema/engine/_context.mjs +23 -15
- package/build/schema/engine/_functions.d.mts +2 -2
- package/build/schema/engine/_functions.mjs +1 -1
- package/build/schema/engine/_reducer.d.mts +3 -3
- package/build/schema/engine/_refine.d.mts +5 -5
- package/build/schema/engine/_refine.mjs +4 -7
- package/build/schema/engine/_stack.d.mts +34 -16
- package/build/schema/engine/_stack.mjs +148 -104
- package/build/schema/engine/additionalItems.d.mts +4 -4
- package/build/schema/engine/additionalProperties.d.mts +8 -8
- package/build/schema/engine/additionalProperties.mjs +11 -17
- package/build/schema/engine/allOf.d.mts +4 -4
- package/build/schema/engine/allOf.mjs +3 -3
- package/build/schema/engine/anyOf.d.mts +4 -4
- package/build/schema/engine/anyOf.mjs +5 -10
- package/build/schema/engine/boolean.d.mts +4 -4
- package/build/schema/engine/boolean.mjs +2 -6
- package/build/schema/engine/const.d.mts +4 -4
- package/build/schema/engine/const.mjs +2 -6
- package/build/schema/engine/contains.d.mts +4 -4
- package/build/schema/engine/contains.mjs +2 -6
- package/build/schema/engine/dependencies.d.mts +4 -4
- package/build/schema/engine/dependencies.mjs +3 -6
- package/build/schema/engine/dependentRequired.d.mts +4 -4
- package/build/schema/engine/dependentRequired.mjs +2 -6
- package/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/build/schema/engine/dynamicRef.d.mts +4 -4
- package/build/schema/engine/dynamicRef.mjs +11 -7
- package/build/schema/engine/enum.d.mts +4 -4
- package/build/schema/engine/enum.mjs +2 -6
- package/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/build/schema/engine/format.d.mts +4 -4
- package/build/schema/engine/format.mjs +2 -6
- package/build/schema/engine/if.d.mts +4 -4
- package/build/schema/engine/if.mjs +7 -15
- package/build/schema/engine/items.d.mts +4 -4
- package/build/schema/engine/items.mjs +1 -1
- package/build/schema/engine/maxContains.d.mts +4 -4
- package/build/schema/engine/maxContains.mjs +2 -6
- package/build/schema/engine/maxItems.d.mts +4 -4
- package/build/schema/engine/maxItems.mjs +2 -6
- package/build/schema/engine/maxLength.d.mts +4 -4
- package/build/schema/engine/maxLength.mjs +2 -6
- package/build/schema/engine/maxProperties.d.mts +4 -4
- package/build/schema/engine/maxProperties.mjs +2 -6
- package/build/schema/engine/maximum.d.mts +4 -4
- package/build/schema/engine/maximum.mjs +2 -6
- package/build/schema/engine/minContains.d.mts +4 -4
- package/build/schema/engine/minContains.mjs +2 -6
- package/build/schema/engine/minItems.d.mts +5 -5
- package/build/schema/engine/minItems.mjs +2 -6
- package/build/schema/engine/minLength.d.mts +4 -4
- package/build/schema/engine/minLength.mjs +2 -6
- package/build/schema/engine/minProperties.d.mts +4 -4
- package/build/schema/engine/minProperties.mjs +2 -6
- package/build/schema/engine/minimum.d.mts +4 -4
- package/build/schema/engine/minimum.mjs +2 -6
- package/build/schema/engine/multipleOf.d.mts +4 -4
- package/build/schema/engine/multipleOf.mjs +2 -6
- package/build/schema/engine/not.d.mts +4 -4
- package/build/schema/engine/not.mjs +4 -8
- package/build/schema/engine/oneOf.d.mts +4 -4
- package/build/schema/engine/oneOf.mjs +6 -11
- package/build/schema/engine/pattern.d.mts +4 -4
- package/build/schema/engine/pattern.mjs +3 -7
- package/build/schema/engine/patternProperties.d.mts +4 -4
- package/build/schema/engine/patternProperties.mjs +1 -1
- package/build/schema/engine/prefixItems.d.mts +4 -4
- package/build/schema/engine/prefixItems.mjs +1 -1
- package/build/schema/engine/properties.d.mts +4 -4
- package/build/schema/engine/properties.mjs +1 -1
- package/build/schema/engine/propertyNames.d.mts +4 -4
- package/build/schema/engine/propertyNames.mjs +4 -10
- package/build/schema/engine/recursiveRef.d.mts +4 -4
- package/build/schema/engine/recursiveRef.mjs +11 -7
- package/build/schema/engine/ref.d.mts +4 -4
- package/build/schema/engine/ref.mjs +19 -15
- package/build/schema/engine/required.d.mts +4 -4
- package/build/schema/engine/required.mjs +2 -6
- package/build/schema/engine/schema.d.mts +7 -7
- package/build/schema/engine/schema.mjs +137 -133
- package/build/schema/engine/type.d.mts +4 -4
- package/build/schema/engine/type.mjs +2 -6
- package/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/build/schema/engine/uniqueItems.d.mts +4 -4
- package/build/schema/engine/uniqueItems.mjs +2 -6
- package/build/schema/errors.d.mts +2 -2
- package/build/schema/errors.mjs +8 -14
- package/build/schema/intern/index.d.mts +1 -0
- package/build/schema/intern/index.mjs +1 -0
- package/build/schema/intern/intern.d.mts +11 -0
- package/build/schema/intern/intern.mjs +293 -0
- package/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/build/schema/meta/draft_2019_09.mjs +288 -0
- package/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/build/schema/meta/draft_2020_12.mjs +300 -0
- package/build/schema/meta/draft_3.d.mts +2 -0
- package/build/schema/meta/draft_3.mjs +143 -0
- package/build/schema/meta/draft_4.d.mts +2 -0
- package/build/schema/meta/draft_4.mjs +149 -0
- package/build/schema/meta/draft_6.d.mts +2 -0
- package/build/schema/meta/draft_6.mjs +155 -0
- package/build/schema/meta/draft_7.d.mts +2 -0
- package/build/schema/meta/draft_7.mjs +172 -0
- package/build/schema/meta/index.d.mts +2 -0
- package/build/schema/meta/index.mjs +2 -0
- package/build/schema/meta/meta.d.mts +9 -0
- package/build/schema/meta/meta.mjs +15 -0
- package/build/schema/meta/schema.d.mts +6 -0
- package/build/schema/meta/schema.mjs +1 -0
- package/build/schema/parse.d.mts +1 -0
- package/build/schema/parse.mjs +10 -5
- package/build/schema/resolve/resolve.d.mts +8 -3
- package/build/schema/resolve/resolve.mjs +268 -139
- package/build/schema/schema.d.mts +2 -0
- package/build/schema/schema.mjs +2 -0
- package/build/value/errors/errors.d.mts +2 -12
- package/build/value/errors/errors.mjs +2 -7
- package/changes.json +1 -1
- package/package.json +3 -3
- package/readme.md +59 -89
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import * as Functions from './_functions.mjs';
|
|
3
3
|
import * as Schema from '../types/index.mjs';
|
|
4
|
-
import {
|
|
4
|
+
import { Resolve } from '../resolve/index.mjs';
|
|
5
|
+
import { CheckContext, ErrorContext } from './_context.mjs';
|
|
5
6
|
import { EmitGuard as E } from '../../guard/index.mjs';
|
|
6
7
|
import { CheckSchema, ErrorSchema } from './schema.mjs';
|
|
7
8
|
// ------------------------------------------------------------------
|
|
@@ -21,32 +22,35 @@ function BuildRefFast(stack, context, target, value) {
|
|
|
21
22
|
return Functions.CreateFunction(stack, context, target, value);
|
|
22
23
|
}
|
|
23
24
|
export function BuildRef(stack, context, schema, value) {
|
|
24
|
-
const
|
|
25
|
+
const result = Resolve.Ref(stack, schema);
|
|
26
|
+
const target = result.schema ?? false;
|
|
25
27
|
return context.UseUnevaluated()
|
|
26
|
-
? BuildRefStandard(stack, context, target, value)
|
|
27
|
-
: BuildRefFast(stack, context, target, value);
|
|
28
|
+
? BuildRefStandard(result.stack, context, target, value)
|
|
29
|
+
: BuildRefFast(result.stack, context, target, value);
|
|
28
30
|
}
|
|
29
31
|
// ------------------------------------------------------------------
|
|
30
32
|
// Check
|
|
31
33
|
// ------------------------------------------------------------------
|
|
32
34
|
export function CheckRef(stack, context, schema, value) {
|
|
33
|
-
const
|
|
35
|
+
const result = Resolve.Ref(stack, schema);
|
|
36
|
+
const target = result.schema ?? false;
|
|
34
37
|
const nextContext = new CheckContext();
|
|
35
|
-
const
|
|
36
|
-
if (
|
|
38
|
+
const valid = (Schema.IsSchema(target) && CheckSchema(result.stack, nextContext, target, value));
|
|
39
|
+
if (valid)
|
|
37
40
|
context.Merge([nextContext]);
|
|
38
|
-
return
|
|
41
|
+
return valid;
|
|
39
42
|
}
|
|
40
43
|
// ------------------------------------------------------------------
|
|
41
44
|
// Error
|
|
42
45
|
// ------------------------------------------------------------------
|
|
43
46
|
export function ErrorRef(stack, context, _schemaPath, instancePath, schema, value) {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
47
|
+
const result = Resolve.Ref(stack, schema);
|
|
48
|
+
const target = result.schema ?? false;
|
|
49
|
+
const nextContext = new ErrorContext();
|
|
50
|
+
const valid = (Schema.IsSchema(target) && ErrorSchema(result.stack, nextContext, '#', instancePath, target, value));
|
|
51
|
+
if (valid)
|
|
48
52
|
context.Merge([nextContext]);
|
|
49
|
-
if (!
|
|
50
|
-
nextContext.GetErrors()
|
|
51
|
-
return
|
|
53
|
+
if (!valid)
|
|
54
|
+
context.AddErrors(nextContext.GetErrors());
|
|
55
|
+
return valid;
|
|
52
56
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import
|
|
2
|
+
import * as Stack from './_stack.mjs';
|
|
3
3
|
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
export declare function BuildRequired(_stack: Stack, _context: BuildContext, schema: Schema.XRequired, value: string): string;
|
|
5
|
-
export declare function CheckRequired(_stack: Stack, _context: CheckContext, schema: Schema.XRequired, value: Record<PropertyKey, unknown>): boolean;
|
|
6
|
-
export declare function ErrorRequired(_stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XRequired, value: Record<PropertyKey, unknown>): boolean;
|
|
4
|
+
export declare function BuildRequired(_stack: Stack.XStack, _context: BuildContext, schema: Schema.XRequired, value: string): string;
|
|
5
|
+
export declare function CheckRequired(_stack: Stack.XStack, _context: CheckContext, schema: Schema.XRequired, value: Record<PropertyKey, unknown>): boolean;
|
|
6
|
+
export declare function ErrorRequired(_stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XRequired, value: Record<PropertyKey, unknown>): boolean;
|
|
@@ -23,10 +23,6 @@ export function ErrorRequired(_stack, context, schemaPath, instancePath, schema,
|
|
|
23
23
|
requiredProperties.push(key);
|
|
24
24
|
return hasKey;
|
|
25
25
|
});
|
|
26
|
-
return isRequired ||
|
|
27
|
-
|
|
28
|
-
schemaPath,
|
|
29
|
-
instancePath,
|
|
30
|
-
params: { requiredProperties }
|
|
31
|
-
});
|
|
26
|
+
return isRequired ||
|
|
27
|
+
context.AddError('required', schemaPath, instancePath, { requiredProperties });
|
|
32
28
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import { Stack } from './_stack.mjs';
|
|
3
2
|
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
3
|
+
import * as Stack from './_stack.mjs';
|
|
4
|
+
export declare function BuildSchemaPushStack(stack: Stack.XStack, context: BuildContext, schema: Schema.XSchema, value: string): string;
|
|
5
|
+
export declare function BuildSchema(stack: Stack.XStack, context: BuildContext, schema: Schema.XSchema, value: string): string;
|
|
6
|
+
export declare function CheckSchemaPushStack(stack: Stack.XStack, context: CheckContext, schema: Schema.XSchema, value: unknown): boolean;
|
|
7
|
+
export declare function CheckSchema(stack: Stack.XStack, context: CheckContext, schema: Schema.XSchema, value: unknown): boolean;
|
|
8
|
+
export declare function ErrorSchemaPushStack(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XSchema, value: unknown): boolean;
|
|
9
|
+
export declare function ErrorSchema(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XSchema, value: unknown): boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import * as Schema from '../types/index.mjs';
|
|
3
3
|
import { BuildRefine, CheckRefine, ErrorRefine } from './_refine.mjs';
|
|
4
|
+
import * as Stack from './_stack.mjs';
|
|
4
5
|
import { EmitGuard as E, Guard as G } from '../../guard/index.mjs';
|
|
5
6
|
import { BuildAdditionalItems, CheckAdditionalItems, ErrorAdditionalItems } from './additionalItems.mjs';
|
|
6
7
|
import { BuildAdditionalProperties, CheckAdditionalProperties, ErrorAdditionalProperties } from './additionalProperties.mjs';
|
|
@@ -132,34 +133,34 @@ export function BuildSchemaPushStack(stack, context, schema, value) {
|
|
|
132
133
|
: BuildSchema(stack, context, schema, value);
|
|
133
134
|
}
|
|
134
135
|
export function BuildSchema(stack, context, schema, value) {
|
|
135
|
-
|
|
136
|
+
const current = Stack.NextStack(stack, schema);
|
|
136
137
|
const conditions = [];
|
|
137
138
|
if (Schema.IsSchemaBoolean(schema))
|
|
138
|
-
return BuildSchemaBoolean(
|
|
139
|
+
return BuildSchemaBoolean(current, context, schema, value);
|
|
139
140
|
if (Schema.IsType(schema))
|
|
140
|
-
conditions.push(BuildType(
|
|
141
|
+
conditions.push(BuildType(current, context, schema, value));
|
|
141
142
|
if (HasObjectKeywords(schema)) {
|
|
142
143
|
const constraints = [];
|
|
143
144
|
if (Schema.IsRequired(schema))
|
|
144
|
-
constraints.push(BuildRequired(
|
|
145
|
+
constraints.push(BuildRequired(current, context, schema, value));
|
|
145
146
|
if (Schema.IsAdditionalProperties(schema))
|
|
146
|
-
constraints.push(BuildAdditionalProperties(
|
|
147
|
+
constraints.push(BuildAdditionalProperties(current, context, schema, value));
|
|
147
148
|
if (Schema.IsDependencies(schema))
|
|
148
|
-
constraints.push(BuildDependencies(
|
|
149
|
+
constraints.push(BuildDependencies(current, context, schema, value));
|
|
149
150
|
if (Schema.IsDependentRequired(schema))
|
|
150
|
-
constraints.push(BuildDependentRequired(
|
|
151
|
+
constraints.push(BuildDependentRequired(current, context, schema, value));
|
|
151
152
|
if (Schema.IsDependentSchemas(schema))
|
|
152
|
-
constraints.push(BuildDependentSchemas(
|
|
153
|
+
constraints.push(BuildDependentSchemas(current, context, schema, value));
|
|
153
154
|
if (Schema.IsPatternProperties(schema))
|
|
154
|
-
constraints.push(BuildPatternProperties(
|
|
155
|
+
constraints.push(BuildPatternProperties(current, context, schema, value));
|
|
155
156
|
if (Schema.IsProperties(schema))
|
|
156
|
-
constraints.push(BuildProperties(
|
|
157
|
+
constraints.push(BuildProperties(current, context, schema, value));
|
|
157
158
|
if (Schema.IsPropertyNames(schema))
|
|
158
|
-
constraints.push(BuildPropertyNames(
|
|
159
|
+
constraints.push(BuildPropertyNames(current, context, schema, value));
|
|
159
160
|
if (Schema.IsMinProperties(schema))
|
|
160
|
-
constraints.push(BuildMinProperties(
|
|
161
|
+
constraints.push(BuildMinProperties(current, context, schema, value));
|
|
161
162
|
if (Schema.IsMaxProperties(schema))
|
|
162
|
-
constraints.push(BuildMaxProperties(
|
|
163
|
+
constraints.push(BuildMaxProperties(current, context, schema, value));
|
|
163
164
|
const reduced = E.ReduceAnd(constraints);
|
|
164
165
|
const guarded = E.Or(E.Not(E.IsObjectNotArray(value)), reduced);
|
|
165
166
|
conditions.push(HasObjectType(schema) ? reduced : guarded);
|
|
@@ -167,23 +168,23 @@ export function BuildSchema(stack, context, schema, value) {
|
|
|
167
168
|
if (HasArrayKeywords(schema)) {
|
|
168
169
|
const constraints = [];
|
|
169
170
|
if (Schema.IsAdditionalItems(schema))
|
|
170
|
-
constraints.push(BuildAdditionalItems(
|
|
171
|
+
constraints.push(BuildAdditionalItems(current, context, schema, value));
|
|
171
172
|
if (Schema.IsContains(schema))
|
|
172
|
-
constraints.push(BuildContains(
|
|
173
|
+
constraints.push(BuildContains(current, context, schema, value));
|
|
173
174
|
if (Schema.IsItems(schema))
|
|
174
|
-
constraints.push(BuildItems(
|
|
175
|
+
constraints.push(BuildItems(current, context, schema, value));
|
|
175
176
|
if (Schema.IsMaxContains(schema))
|
|
176
|
-
constraints.push(BuildMaxContains(
|
|
177
|
+
constraints.push(BuildMaxContains(current, context, schema, value));
|
|
177
178
|
if (Schema.IsMaxItems(schema))
|
|
178
|
-
constraints.push(BuildMaxItems(
|
|
179
|
+
constraints.push(BuildMaxItems(current, context, schema, value));
|
|
179
180
|
if (Schema.IsMinContains(schema))
|
|
180
|
-
constraints.push(BuildMinContains(
|
|
181
|
+
constraints.push(BuildMinContains(current, context, schema, value));
|
|
181
182
|
if (Schema.IsMinItems(schema))
|
|
182
|
-
constraints.push(BuildMinItems(
|
|
183
|
+
constraints.push(BuildMinItems(current, context, schema, value));
|
|
183
184
|
if (Schema.IsPrefixItems(schema))
|
|
184
|
-
constraints.push(BuildPrefixItems(
|
|
185
|
+
constraints.push(BuildPrefixItems(current, context, schema, value));
|
|
185
186
|
if (Schema.IsUniqueItems(schema))
|
|
186
|
-
constraints.push(BuildUniqueItems(
|
|
187
|
+
constraints.push(BuildUniqueItems(current, context, schema, value));
|
|
187
188
|
const reduced = E.ReduceAnd(constraints);
|
|
188
189
|
const guarded = E.Or(E.Not(E.IsArray(value)), reduced);
|
|
189
190
|
conditions.push(HasArrayType(schema) ? reduced : guarded);
|
|
@@ -191,13 +192,13 @@ export function BuildSchema(stack, context, schema, value) {
|
|
|
191
192
|
if (HasStringKeywords(schema)) {
|
|
192
193
|
const constraints = [];
|
|
193
194
|
if (Schema.IsMaxLength(schema))
|
|
194
|
-
constraints.push(BuildMaxLength(
|
|
195
|
+
constraints.push(BuildMaxLength(current, context, schema, value));
|
|
195
196
|
if (Schema.IsMinLength(schema))
|
|
196
|
-
constraints.push(BuildMinLength(
|
|
197
|
+
constraints.push(BuildMinLength(current, context, schema, value));
|
|
197
198
|
if (Schema.IsFormat(schema))
|
|
198
|
-
constraints.push(BuildFormat(
|
|
199
|
+
constraints.push(BuildFormat(current, context, schema, value));
|
|
199
200
|
if (Schema.IsPattern(schema))
|
|
200
|
-
constraints.push(BuildPattern(
|
|
201
|
+
constraints.push(BuildPattern(current, context, schema, value));
|
|
201
202
|
const reduced = E.ReduceAnd(constraints);
|
|
202
203
|
const guarded = E.Or(E.Not(E.IsString(value)), reduced);
|
|
203
204
|
conditions.push(HasStringType(schema) ? reduced : guarded);
|
|
@@ -205,47 +206,46 @@ export function BuildSchema(stack, context, schema, value) {
|
|
|
205
206
|
if (HasNumberKeywords(schema)) {
|
|
206
207
|
const constraints = [];
|
|
207
208
|
if (Schema.IsExclusiveMaximum(schema))
|
|
208
|
-
constraints.push(BuildExclusiveMaximum(
|
|
209
|
+
constraints.push(BuildExclusiveMaximum(current, context, schema, value));
|
|
209
210
|
if (Schema.IsExclusiveMinimum(schema))
|
|
210
|
-
constraints.push(BuildExclusiveMinimum(
|
|
211
|
+
constraints.push(BuildExclusiveMinimum(current, context, schema, value));
|
|
211
212
|
if (Schema.IsMaximum(schema))
|
|
212
|
-
constraints.push(BuildMaximum(
|
|
213
|
+
constraints.push(BuildMaximum(current, context, schema, value));
|
|
213
214
|
if (Schema.IsMinimum(schema))
|
|
214
|
-
constraints.push(BuildMinimum(
|
|
215
|
+
constraints.push(BuildMinimum(current, context, schema, value));
|
|
215
216
|
if (Schema.IsMultipleOf(schema))
|
|
216
|
-
constraints.push(BuildMultipleOf(
|
|
217
|
+
constraints.push(BuildMultipleOf(current, context, schema, value));
|
|
217
218
|
const reduced = E.ReduceAnd(constraints);
|
|
218
219
|
const guarded = E.Or(E.Not(E.Or(E.IsNumber(value), E.IsBigInt(value))), reduced);
|
|
219
220
|
conditions.push(HasNumberType(schema) ? reduced : guarded);
|
|
220
221
|
}
|
|
221
222
|
if (Schema.IsRef(schema))
|
|
222
|
-
conditions.push(BuildRef(
|
|
223
|
+
conditions.push(BuildRef(current, context, schema, value));
|
|
223
224
|
if (Schema.IsRecursiveRef(schema))
|
|
224
|
-
conditions.push(BuildRecursiveRef(
|
|
225
|
+
conditions.push(BuildRecursiveRef(current, context, schema, value));
|
|
225
226
|
if (Schema.IsDynamicRef(schema))
|
|
226
|
-
conditions.push(BuildDynamicRef(
|
|
227
|
+
conditions.push(BuildDynamicRef(current, context, schema, value));
|
|
227
228
|
if (Schema.IsConst(schema))
|
|
228
|
-
conditions.push(BuildConst(
|
|
229
|
+
conditions.push(BuildConst(current, context, schema, value));
|
|
229
230
|
if (Schema.IsEnum(schema))
|
|
230
|
-
conditions.push(BuildEnum(
|
|
231
|
+
conditions.push(BuildEnum(current, context, schema, value));
|
|
231
232
|
if (Schema.IsIf(schema))
|
|
232
|
-
conditions.push(BuildIf(
|
|
233
|
+
conditions.push(BuildIf(current, context, schema, value));
|
|
233
234
|
if (Schema.IsNot(schema))
|
|
234
|
-
conditions.push(BuildNot(
|
|
235
|
+
conditions.push(BuildNot(current, context, schema, value));
|
|
235
236
|
if (Schema.IsAllOf(schema))
|
|
236
|
-
conditions.push(BuildAllOf(
|
|
237
|
+
conditions.push(BuildAllOf(current, context, schema, value));
|
|
237
238
|
if (Schema.IsAnyOf(schema))
|
|
238
|
-
conditions.push(BuildAnyOf(
|
|
239
|
+
conditions.push(BuildAnyOf(current, context, schema, value));
|
|
239
240
|
if (Schema.IsOneOf(schema))
|
|
240
|
-
conditions.push(BuildOneOf(
|
|
241
|
+
conditions.push(BuildOneOf(current, context, schema, value));
|
|
241
242
|
if (Schema.IsUnevaluatedItems(schema))
|
|
242
|
-
conditions.push(E.Or(E.Not(E.IsArray(value)), BuildUnevaluatedItems(
|
|
243
|
+
conditions.push(E.Or(E.Not(E.IsArray(value)), BuildUnevaluatedItems(current, context, schema, value)));
|
|
243
244
|
if (Schema.IsUnevaluatedProperties(schema))
|
|
244
|
-
conditions.push(E.Or(E.Not(E.IsObject(value)), BuildUnevaluatedProperties(
|
|
245
|
+
conditions.push(E.Or(E.Not(E.IsObject(value)), BuildUnevaluatedProperties(current, context, schema, value)));
|
|
245
246
|
if (Schema.IsRefine(schema))
|
|
246
|
-
conditions.push(BuildRefine(
|
|
247
|
+
conditions.push(BuildRefine(current, context, schema, value));
|
|
247
248
|
const result = E.ReduceAnd(conditions);
|
|
248
|
-
stack.Pop(schema);
|
|
249
249
|
return result;
|
|
250
250
|
}
|
|
251
251
|
// ----------------------------------------------------------------
|
|
@@ -255,50 +255,49 @@ export function CheckSchemaPushStack(stack, context, schema, value) {
|
|
|
255
255
|
return (context.Push() && CheckSchema(stack, context, schema, value)) && context.Pop();
|
|
256
256
|
}
|
|
257
257
|
export function CheckSchema(stack, context, schema, value) {
|
|
258
|
-
|
|
259
|
-
const result = Schema.IsSchemaBoolean(schema) ? CheckSchemaBoolean(
|
|
260
|
-
(!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(
|
|
261
|
-
(!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(
|
|
262
|
-
(!Schema.IsDependencies(schema) || CheckDependencies(
|
|
263
|
-
(!Schema.IsDependentRequired(schema) || CheckDependentRequired(
|
|
264
|
-
(!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(
|
|
265
|
-
(!Schema.IsPatternProperties(schema) || CheckPatternProperties(
|
|
266
|
-
(!Schema.IsProperties(schema) || CheckProperties(
|
|
267
|
-
(!Schema.IsPropertyNames(schema) || CheckPropertyNames(
|
|
268
|
-
(!Schema.IsMinProperties(schema) || CheckMinProperties(
|
|
269
|
-
(!Schema.IsMaxProperties(schema) || CheckMaxProperties(
|
|
270
|
-
(!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(
|
|
271
|
-
(!Schema.IsContains(schema) || CheckContains(
|
|
272
|
-
(!Schema.IsItems(schema) || CheckItems(
|
|
273
|
-
(!Schema.IsMaxContains(schema) || CheckMaxContains(
|
|
274
|
-
(!Schema.IsMaxItems(schema) || CheckMaxItems(
|
|
275
|
-
(!Schema.IsMinContains(schema) || CheckMinContains(
|
|
276
|
-
(!Schema.IsMinItems(schema) || CheckMinItems(
|
|
277
|
-
(!Schema.IsPrefixItems(schema) || CheckPrefixItems(
|
|
278
|
-
(!Schema.IsUniqueItems(schema) || CheckUniqueItems(
|
|
279
|
-
(!G.IsString(value) || ((!Schema.IsMaxLength(schema) || CheckMaxLength(
|
|
280
|
-
(!Schema.IsMinLength(schema) || CheckMinLength(
|
|
281
|
-
(!Schema.IsFormat(schema) || CheckFormat(
|
|
282
|
-
(!Schema.IsPattern(schema) || CheckPattern(
|
|
283
|
-
(!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(
|
|
284
|
-
(!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(
|
|
285
|
-
(!Schema.IsMaximum(schema) || CheckMaximum(
|
|
286
|
-
(!Schema.IsMinimum(schema) || CheckMinimum(
|
|
287
|
-
(!Schema.IsMultipleOf(schema) || CheckMultipleOf(
|
|
288
|
-
(!Schema.IsRef(schema) || CheckRef(
|
|
289
|
-
(!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(
|
|
290
|
-
(!Schema.IsDynamicRef(schema) || CheckDynamicRef(
|
|
291
|
-
(!Schema.IsConst(schema) || CheckConst(
|
|
292
|
-
(!Schema.IsEnum(schema) || CheckEnum(
|
|
293
|
-
(!Schema.IsIf(schema) || CheckIf(
|
|
294
|
-
(!Schema.IsNot(schema) || CheckNot(
|
|
295
|
-
(!Schema.IsAllOf(schema) || CheckAllOf(
|
|
296
|
-
(!Schema.IsAnyOf(schema) || CheckAnyOf(
|
|
297
|
-
(!Schema.IsOneOf(schema) || CheckOneOf(
|
|
298
|
-
(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(
|
|
299
|
-
(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(
|
|
300
|
-
(!Schema.IsRefine(schema) || CheckRefine(
|
|
301
|
-
stack.Pop(schema);
|
|
258
|
+
const current = Stack.NextStack(stack, schema);
|
|
259
|
+
const result = Schema.IsSchemaBoolean(schema) ? CheckSchemaBoolean(current, context, schema, value) : ((!Schema.IsType(schema) || CheckType(current, context, schema, value)) &&
|
|
260
|
+
(!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(current, context, schema, value)) &&
|
|
261
|
+
(!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(current, context, schema, value)) &&
|
|
262
|
+
(!Schema.IsDependencies(schema) || CheckDependencies(current, context, schema, value)) &&
|
|
263
|
+
(!Schema.IsDependentRequired(schema) || CheckDependentRequired(current, context, schema, value)) &&
|
|
264
|
+
(!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(current, context, schema, value)) &&
|
|
265
|
+
(!Schema.IsPatternProperties(schema) || CheckPatternProperties(current, context, schema, value)) &&
|
|
266
|
+
(!Schema.IsProperties(schema) || CheckProperties(current, context, schema, value)) &&
|
|
267
|
+
(!Schema.IsPropertyNames(schema) || CheckPropertyNames(current, context, schema, value)) &&
|
|
268
|
+
(!Schema.IsMinProperties(schema) || CheckMinProperties(current, context, schema, value)) &&
|
|
269
|
+
(!Schema.IsMaxProperties(schema) || CheckMaxProperties(current, context, schema, value)))) &&
|
|
270
|
+
(!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(current, context, schema, value)) &&
|
|
271
|
+
(!Schema.IsContains(schema) || CheckContains(current, context, schema, value)) &&
|
|
272
|
+
(!Schema.IsItems(schema) || CheckItems(current, context, schema, value)) &&
|
|
273
|
+
(!Schema.IsMaxContains(schema) || CheckMaxContains(current, context, schema, value)) &&
|
|
274
|
+
(!Schema.IsMaxItems(schema) || CheckMaxItems(current, context, schema, value)) &&
|
|
275
|
+
(!Schema.IsMinContains(schema) || CheckMinContains(current, context, schema, value)) &&
|
|
276
|
+
(!Schema.IsMinItems(schema) || CheckMinItems(current, context, schema, value)) &&
|
|
277
|
+
(!Schema.IsPrefixItems(schema) || CheckPrefixItems(current, context, schema, value)) &&
|
|
278
|
+
(!Schema.IsUniqueItems(schema) || CheckUniqueItems(current, context, schema, value)))) &&
|
|
279
|
+
(!G.IsString(value) || ((!Schema.IsMaxLength(schema) || CheckMaxLength(current, context, schema, value)) &&
|
|
280
|
+
(!Schema.IsMinLength(schema) || CheckMinLength(current, context, schema, value)) &&
|
|
281
|
+
(!Schema.IsFormat(schema) || CheckFormat(current, context, schema, value)) &&
|
|
282
|
+
(!Schema.IsPattern(schema) || CheckPattern(current, context, schema, value)))) &&
|
|
283
|
+
(!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(current, context, schema, value)) &&
|
|
284
|
+
(!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(current, context, schema, value)) &&
|
|
285
|
+
(!Schema.IsMaximum(schema) || CheckMaximum(current, context, schema, value)) &&
|
|
286
|
+
(!Schema.IsMinimum(schema) || CheckMinimum(current, context, schema, value)) &&
|
|
287
|
+
(!Schema.IsMultipleOf(schema) || CheckMultipleOf(current, context, schema, value)))) &&
|
|
288
|
+
(!Schema.IsRef(schema) || CheckRef(current, context, schema, value)) &&
|
|
289
|
+
(!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(current, context, schema, value)) &&
|
|
290
|
+
(!Schema.IsDynamicRef(schema) || CheckDynamicRef(current, context, schema, value)) &&
|
|
291
|
+
(!Schema.IsConst(schema) || CheckConst(current, context, schema, value)) &&
|
|
292
|
+
(!Schema.IsEnum(schema) || CheckEnum(current, context, schema, value)) &&
|
|
293
|
+
(!Schema.IsIf(schema) || CheckIf(current, context, schema, value)) &&
|
|
294
|
+
(!Schema.IsNot(schema) || CheckNot(current, context, schema, value)) &&
|
|
295
|
+
(!Schema.IsAllOf(schema) || CheckAllOf(current, context, schema, value)) &&
|
|
296
|
+
(!Schema.IsAnyOf(schema) || CheckAnyOf(current, context, schema, value)) &&
|
|
297
|
+
(!Schema.IsOneOf(schema) || CheckOneOf(current, context, schema, value)) &&
|
|
298
|
+
(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(current, context, schema, value))) &&
|
|
299
|
+
(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(current, context, schema, value))) &&
|
|
300
|
+
(!Schema.IsRefine(schema) || CheckRefine(current, context, schema, value)));
|
|
302
301
|
return result;
|
|
303
302
|
}
|
|
304
303
|
// ----------------------------------------------------------------
|
|
@@ -308,49 +307,54 @@ export function ErrorSchemaPushStack(stack, context, schemaPath, instancePath, s
|
|
|
308
307
|
return (context.Push() && ErrorSchema(stack, context, schemaPath, instancePath, schema, value)) && context.Pop();
|
|
309
308
|
}
|
|
310
309
|
export function ErrorSchema(stack, context, schemaPath, instancePath, schema, value) {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
+(!Schema.
|
|
321
|
-
+(!Schema.
|
|
322
|
-
+(!Schema.
|
|
323
|
-
|
|
324
|
-
+(!Schema.
|
|
325
|
-
+(!Schema.
|
|
326
|
-
+(!Schema.
|
|
327
|
-
+(!Schema.
|
|
328
|
-
+(!Schema.
|
|
329
|
-
|
|
330
|
-
+(!Schema.
|
|
331
|
-
+(!Schema.
|
|
332
|
-
|
|
333
|
-
+(!Schema.
|
|
334
|
-
+(!Schema.
|
|
335
|
-
+(!Schema.
|
|
336
|
-
|
|
337
|
-
+(!Schema.
|
|
338
|
-
|
|
339
|
-
+(!Schema.
|
|
340
|
-
+(!Schema.
|
|
341
|
-
|
|
342
|
-
+(!Schema.
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
+(!Schema.
|
|
348
|
-
+(!Schema.
|
|
349
|
-
+(!Schema.
|
|
350
|
-
+(!Schema.
|
|
351
|
-
+(!Schema.
|
|
352
|
-
+(!Schema.
|
|
353
|
-
(!Schema.
|
|
354
|
-
|
|
310
|
+
// Optimization: We can safely terminate here when the context is at capacity because we are unable to
|
|
311
|
+
// append additional errors. It is worth being mindful that logical keywords such as allOf, anyOf,
|
|
312
|
+
// oneOf pass a new context per operand, so the capacity check applies per context, not across the
|
|
313
|
+
// full set of errors accumulated by the schema as a whole. (review)
|
|
314
|
+
if (context.AtCapacity())
|
|
315
|
+
return false;
|
|
316
|
+
const current = Stack.NextStack(stack, schema);
|
|
317
|
+
const result = (Schema.IsSchemaBoolean(schema)) ? ErrorSchemaBoolean(current, context, schemaPath, instancePath, schema, value) : (!!(+(!Schema.IsType(schema) || ErrorType(current, context, schemaPath, instancePath, schema, value)) &
|
|
318
|
+
+(!(G.IsObject(value) && !G.IsArray(value)) || !!(+(!Schema.IsRequired(schema) || ErrorRequired(current, context, schemaPath, instancePath, schema, value)) &
|
|
319
|
+
+(!Schema.IsAdditionalProperties(schema) || ErrorAdditionalProperties(current, context, schemaPath, instancePath, schema, value)) &
|
|
320
|
+
+(!Schema.IsDependencies(schema) || ErrorDependencies(current, context, schemaPath, instancePath, schema, value)) &
|
|
321
|
+
+(!Schema.IsDependentRequired(schema) || ErrorDependentRequired(current, context, schemaPath, instancePath, schema, value)) &
|
|
322
|
+
+(!Schema.IsDependentSchemas(schema) || ErrorDependentSchemas(current, context, schemaPath, instancePath, schema, value)) &
|
|
323
|
+
+(!Schema.IsPatternProperties(schema) || ErrorPatternProperties(current, context, schemaPath, instancePath, schema, value)) &
|
|
324
|
+
+(!Schema.IsProperties(schema) || ErrorProperties(current, context, schemaPath, instancePath, schema, value)) &
|
|
325
|
+
+(!Schema.IsPropertyNames(schema) || ErrorPropertyNames(current, context, schemaPath, instancePath, schema, value)) &
|
|
326
|
+
+(!Schema.IsMinProperties(schema) || ErrorMinProperties(current, context, schemaPath, instancePath, schema, value)) &
|
|
327
|
+
+(!Schema.IsMaxProperties(schema) || ErrorMaxProperties(current, context, schemaPath, instancePath, schema, value)))) &
|
|
328
|
+
+(!G.IsArray(value) || !!(+(!Schema.IsAdditionalItems(schema) || ErrorAdditionalItems(current, context, schemaPath, instancePath, schema, value)) &
|
|
329
|
+
+(!Schema.IsContains(schema) || ErrorContains(current, context, schemaPath, instancePath, schema, value)) &
|
|
330
|
+
+(!Schema.IsItems(schema) || ErrorItems(current, context, schemaPath, instancePath, schema, value)) &
|
|
331
|
+
+(!Schema.IsMaxContains(schema) || ErrorMaxContains(current, context, schemaPath, instancePath, schema, value)) &
|
|
332
|
+
+(!Schema.IsMaxItems(schema) || ErrorMaxItems(current, context, schemaPath, instancePath, schema, value)) &
|
|
333
|
+
+(!Schema.IsMinContains(schema) || ErrorMinContains(current, context, schemaPath, instancePath, schema, value)) &
|
|
334
|
+
+(!Schema.IsMinItems(schema) || ErrorMinItems(current, context, schemaPath, instancePath, schema, value)) &
|
|
335
|
+
+(!Schema.IsPrefixItems(schema) || ErrorPrefixItems(current, context, schemaPath, instancePath, schema, value)) &
|
|
336
|
+
+(!Schema.IsUniqueItems(schema) || ErrorUniqueItems(current, context, schemaPath, instancePath, schema, value)))) &
|
|
337
|
+
+(!G.IsString(value) || !!(+(!Schema.IsMaxLength(schema) || ErrorMaxLength(current, context, schemaPath, instancePath, schema, value)) &
|
|
338
|
+
+(!Schema.IsMinLength(schema) || ErrorMinLength(current, context, schemaPath, instancePath, schema, value)) &
|
|
339
|
+
+(!Schema.IsFormat(schema) || ErrorFormat(current, context, schemaPath, instancePath, schema, value)) &
|
|
340
|
+
+(!Schema.IsPattern(schema) || ErrorPattern(current, context, schemaPath, instancePath, schema, value)))) &
|
|
341
|
+
+(!(G.IsNumber(value) || G.IsBigInt(value)) || !!(+(!Schema.IsExclusiveMaximum(schema) || ErrorExclusiveMaximum(current, context, schemaPath, instancePath, schema, value)) &
|
|
342
|
+
+(!Schema.IsExclusiveMinimum(schema) || ErrorExclusiveMinimum(current, context, schemaPath, instancePath, schema, value)) &
|
|
343
|
+
+(!Schema.IsMaximum(schema) || ErrorMaximum(current, context, schemaPath, instancePath, schema, value)) &
|
|
344
|
+
+(!Schema.IsMinimum(schema) || ErrorMinimum(current, context, schemaPath, instancePath, schema, value)) &
|
|
345
|
+
+(!Schema.IsMultipleOf(schema) || ErrorMultipleOf(current, context, schemaPath, instancePath, schema, value)))) &
|
|
346
|
+
+(!Schema.IsRef(schema) || ErrorRef(current, context, schemaPath, instancePath, schema, value)) &
|
|
347
|
+
+(!Schema.IsRecursiveRef(schema) || ErrorRecursiveRef(current, context, schemaPath, instancePath, schema, value)) &
|
|
348
|
+
+(!Schema.IsDynamicRef(schema) || ErrorDynamicRef(current, context, schemaPath, instancePath, schema, value)) &
|
|
349
|
+
+(!Schema.IsConst(schema) || ErrorConst(current, context, schemaPath, instancePath, schema, value)) &
|
|
350
|
+
+(!Schema.IsEnum(schema) || ErrorEnum(current, context, schemaPath, instancePath, schema, value)) &
|
|
351
|
+
+(!Schema.IsIf(schema) || ErrorIf(current, context, schemaPath, instancePath, schema, value)) &
|
|
352
|
+
+(!Schema.IsNot(schema) || ErrorNot(current, context, schemaPath, instancePath, schema, value)) &
|
|
353
|
+
+(!Schema.IsAllOf(schema) || ErrorAllOf(current, context, schemaPath, instancePath, schema, value)) &
|
|
354
|
+
+(!Schema.IsAnyOf(schema) || ErrorAnyOf(current, context, schemaPath, instancePath, schema, value)) &
|
|
355
|
+
+(!Schema.IsOneOf(schema) || ErrorOneOf(current, context, schemaPath, instancePath, schema, value)) &
|
|
356
|
+
+(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || ErrorUnevaluatedItems(current, context, schemaPath, instancePath, schema, value))) &
|
|
357
|
+
+(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || ErrorUnevaluatedProperties(current, context, schemaPath, instancePath, schema, value)))) &&
|
|
358
|
+
(!Schema.IsRefine(schema) || ErrorRefine(current, context, schemaPath, instancePath, schema, value)));
|
|
355
359
|
return result;
|
|
356
360
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import
|
|
2
|
+
import * as Stack from './_stack.mjs';
|
|
3
3
|
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
export declare function BuildType(stack: Stack, context: BuildContext, schema: Schema.XType, value: string): string;
|
|
5
|
-
export declare function CheckType(stack: Stack, context: CheckContext, schema: Schema.XType, value: unknown): boolean;
|
|
6
|
-
export declare function ErrorType(stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XType, value: unknown): boolean;
|
|
4
|
+
export declare function BuildType(stack: Stack.XStack, context: BuildContext, schema: Schema.XType, value: string): string;
|
|
5
|
+
export declare function CheckType(stack: Stack.XStack, context: CheckContext, schema: Schema.XType, value: unknown): boolean;
|
|
6
|
+
export declare function ErrorType(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XType, value: unknown): boolean;
|
|
@@ -61,10 +61,6 @@ export function CheckType(stack, context, schema, value) {
|
|
|
61
61
|
}
|
|
62
62
|
export function ErrorType(stack, context, schemaPath, instancePath, schema, value) {
|
|
63
63
|
const isType = G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);
|
|
64
|
-
return isType ||
|
|
65
|
-
|
|
66
|
-
schemaPath,
|
|
67
|
-
instancePath,
|
|
68
|
-
params: { type: schema.type }
|
|
69
|
-
});
|
|
64
|
+
return isType ||
|
|
65
|
+
context.AddError('type', schemaPath, instancePath, { type: schema.type });
|
|
70
66
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import
|
|
2
|
+
import * as Stack from './_stack.mjs';
|
|
3
3
|
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
export declare function BuildUnevaluatedItems(stack: Stack, context: BuildContext, schema: Schema.XUnevaluatedItems, value: string): string;
|
|
5
|
-
export declare function CheckUnevaluatedItems(stack: Stack, context: CheckContext, schema: Schema.XUnevaluatedItems, value: unknown[]): boolean;
|
|
6
|
-
export declare function ErrorUnevaluatedItems(stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XUnevaluatedItems, value: unknown[]): boolean;
|
|
4
|
+
export declare function BuildUnevaluatedItems(stack: Stack.XStack, context: BuildContext, schema: Schema.XUnevaluatedItems, value: string): string;
|
|
5
|
+
export declare function CheckUnevaluatedItems(stack: Stack.XStack, context: CheckContext, schema: Schema.XUnevaluatedItems, value: unknown[]): boolean;
|
|
6
|
+
export declare function ErrorUnevaluatedItems(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XUnevaluatedItems, value: unknown[]): boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Unique } from './_unique.mjs';
|
|
3
|
-
import {
|
|
4
|
-
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
3
|
+
import { ErrorContext } from './_context.mjs';
|
|
5
4
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
5
|
+
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
6
6
|
// ------------------------------------------------------------------
|
|
7
7
|
// Build
|
|
8
8
|
// ------------------------------------------------------------------
|
|
@@ -35,17 +35,13 @@ export function ErrorUnevaluatedItems(stack, context, schemaPath, instancePath,
|
|
|
35
35
|
const indices = context.GetIndices();
|
|
36
36
|
const unevaluatedItems = [];
|
|
37
37
|
const isUnevaluatedItems = G.EveryAll(value, 0, (item, index) => {
|
|
38
|
-
const nextContext = new
|
|
38
|
+
const nextContext = new ErrorContext();
|
|
39
39
|
const isEvaluatedItem = (indices.has(index) || ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedItems, item))
|
|
40
40
|
&& context.AddIndex(index);
|
|
41
41
|
if (!isEvaluatedItem)
|
|
42
42
|
unevaluatedItems.push(index);
|
|
43
43
|
return isEvaluatedItem;
|
|
44
44
|
});
|
|
45
|
-
return isUnevaluatedItems ||
|
|
46
|
-
|
|
47
|
-
schemaPath,
|
|
48
|
-
instancePath,
|
|
49
|
-
params: { unevaluatedItems }
|
|
50
|
-
});
|
|
45
|
+
return isUnevaluatedItems ||
|
|
46
|
+
context.AddError('unevaluatedItems', schemaPath, instancePath, { unevaluatedItems });
|
|
51
47
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import
|
|
2
|
+
import * as Stack from './_stack.mjs';
|
|
3
3
|
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
export declare function BuildUnevaluatedProperties(stack: Stack, context: BuildContext, schema: Schema.XUnevaluatedProperties, value: string): string;
|
|
5
|
-
export declare function CheckUnevaluatedProperties(stack: Stack, context: CheckContext, schema: Schema.XUnevaluatedProperties, value: Record<PropertyKey, unknown>): boolean;
|
|
6
|
-
export declare function ErrorUnevaluatedProperties(stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XUnevaluatedProperties, value: Record<PropertyKey, unknown>): boolean;
|
|
4
|
+
export declare function BuildUnevaluatedProperties(stack: Stack.XStack, context: BuildContext, schema: Schema.XUnevaluatedProperties, value: string): string;
|
|
5
|
+
export declare function CheckUnevaluatedProperties(stack: Stack.XStack, context: CheckContext, schema: Schema.XUnevaluatedProperties, value: Record<PropertyKey, unknown>): boolean;
|
|
6
|
+
export declare function ErrorUnevaluatedProperties(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XUnevaluatedProperties, value: Record<PropertyKey, unknown>): boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Unique } from './_unique.mjs';
|
|
3
|
-
import {
|
|
4
|
-
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
3
|
+
import { ErrorContext } from './_context.mjs';
|
|
5
4
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
5
|
+
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
6
6
|
// ------------------------------------------------------------------
|
|
7
7
|
// Build
|
|
8
8
|
// ------------------------------------------------------------------
|
|
@@ -35,17 +35,13 @@ export function ErrorUnevaluatedProperties(stack, context, schemaPath, instanceP
|
|
|
35
35
|
const keys = context.GetKeys();
|
|
36
36
|
const unevaluatedProperties = [];
|
|
37
37
|
const isUnevaluatedProperties = G.EveryAll(G.Entries(value), 0, ([key, prop]) => {
|
|
38
|
-
const nextContext = new
|
|
38
|
+
const nextContext = new ErrorContext();
|
|
39
39
|
const isEvaluatedProperty = keys.has(key)
|
|
40
40
|
|| (ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedProperties, prop) && context.AddKey(key));
|
|
41
41
|
if (!isEvaluatedProperty)
|
|
42
42
|
unevaluatedProperties.push(key);
|
|
43
43
|
return isEvaluatedProperty;
|
|
44
44
|
});
|
|
45
|
-
return isUnevaluatedProperties ||
|
|
46
|
-
|
|
47
|
-
schemaPath,
|
|
48
|
-
instancePath,
|
|
49
|
-
params: { unevaluatedProperties }
|
|
50
|
-
});
|
|
45
|
+
return isUnevaluatedProperties ||
|
|
46
|
+
context.AddError('unevaluatedProperties', schemaPath, instancePath, { unevaluatedProperties });
|
|
51
47
|
}
|