@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.
Files changed (136) hide show
  1. package/README.md +2 -2
  2. package/build/compile/validator.d.mts +1 -1
  3. package/build/compile/validator.mjs +1 -1
  4. package/build/format/iri.mjs +5 -1
  5. package/build/schema/build.mjs +2 -2
  6. package/build/schema/check.mjs +1 -1
  7. package/build/schema/compile.d.mts +3 -2
  8. package/build/schema/compile.mjs +8 -8
  9. package/build/schema/engine/_context.d.mts +6 -7
  10. package/build/schema/engine/_context.mjs +23 -15
  11. package/build/schema/engine/_functions.d.mts +2 -2
  12. package/build/schema/engine/_functions.mjs +1 -1
  13. package/build/schema/engine/_reducer.d.mts +3 -3
  14. package/build/schema/engine/_refine.d.mts +5 -5
  15. package/build/schema/engine/_refine.mjs +4 -7
  16. package/build/schema/engine/_stack.d.mts +34 -16
  17. package/build/schema/engine/_stack.mjs +148 -104
  18. package/build/schema/engine/additionalItems.d.mts +4 -4
  19. package/build/schema/engine/additionalProperties.d.mts +8 -8
  20. package/build/schema/engine/additionalProperties.mjs +11 -17
  21. package/build/schema/engine/allOf.d.mts +4 -4
  22. package/build/schema/engine/allOf.mjs +3 -3
  23. package/build/schema/engine/anyOf.d.mts +4 -4
  24. package/build/schema/engine/anyOf.mjs +5 -10
  25. package/build/schema/engine/boolean.d.mts +4 -4
  26. package/build/schema/engine/boolean.mjs +2 -6
  27. package/build/schema/engine/const.d.mts +4 -4
  28. package/build/schema/engine/const.mjs +2 -6
  29. package/build/schema/engine/contains.d.mts +4 -4
  30. package/build/schema/engine/contains.mjs +2 -6
  31. package/build/schema/engine/dependencies.d.mts +4 -4
  32. package/build/schema/engine/dependencies.mjs +3 -6
  33. package/build/schema/engine/dependentRequired.d.mts +4 -4
  34. package/build/schema/engine/dependentRequired.mjs +2 -6
  35. package/build/schema/engine/dependentSchemas.d.mts +4 -4
  36. package/build/schema/engine/dynamicRef.d.mts +4 -4
  37. package/build/schema/engine/dynamicRef.mjs +11 -7
  38. package/build/schema/engine/enum.d.mts +4 -4
  39. package/build/schema/engine/enum.mjs +2 -6
  40. package/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  41. package/build/schema/engine/exclusiveMaximum.mjs +2 -6
  42. package/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  43. package/build/schema/engine/exclusiveMinimum.mjs +2 -6
  44. package/build/schema/engine/format.d.mts +4 -4
  45. package/build/schema/engine/format.mjs +2 -6
  46. package/build/schema/engine/if.d.mts +4 -4
  47. package/build/schema/engine/if.mjs +7 -15
  48. package/build/schema/engine/items.d.mts +4 -4
  49. package/build/schema/engine/items.mjs +1 -1
  50. package/build/schema/engine/maxContains.d.mts +4 -4
  51. package/build/schema/engine/maxContains.mjs +2 -6
  52. package/build/schema/engine/maxItems.d.mts +4 -4
  53. package/build/schema/engine/maxItems.mjs +2 -6
  54. package/build/schema/engine/maxLength.d.mts +4 -4
  55. package/build/schema/engine/maxLength.mjs +2 -6
  56. package/build/schema/engine/maxProperties.d.mts +4 -4
  57. package/build/schema/engine/maxProperties.mjs +2 -6
  58. package/build/schema/engine/maximum.d.mts +4 -4
  59. package/build/schema/engine/maximum.mjs +2 -6
  60. package/build/schema/engine/minContains.d.mts +4 -4
  61. package/build/schema/engine/minContains.mjs +2 -6
  62. package/build/schema/engine/minItems.d.mts +5 -5
  63. package/build/schema/engine/minItems.mjs +2 -6
  64. package/build/schema/engine/minLength.d.mts +4 -4
  65. package/build/schema/engine/minLength.mjs +2 -6
  66. package/build/schema/engine/minProperties.d.mts +4 -4
  67. package/build/schema/engine/minProperties.mjs +2 -6
  68. package/build/schema/engine/minimum.d.mts +4 -4
  69. package/build/schema/engine/minimum.mjs +2 -6
  70. package/build/schema/engine/multipleOf.d.mts +4 -4
  71. package/build/schema/engine/multipleOf.mjs +2 -6
  72. package/build/schema/engine/not.d.mts +4 -4
  73. package/build/schema/engine/not.mjs +4 -8
  74. package/build/schema/engine/oneOf.d.mts +4 -4
  75. package/build/schema/engine/oneOf.mjs +6 -11
  76. package/build/schema/engine/pattern.d.mts +4 -4
  77. package/build/schema/engine/pattern.mjs +3 -7
  78. package/build/schema/engine/patternProperties.d.mts +4 -4
  79. package/build/schema/engine/patternProperties.mjs +1 -1
  80. package/build/schema/engine/prefixItems.d.mts +4 -4
  81. package/build/schema/engine/prefixItems.mjs +1 -1
  82. package/build/schema/engine/properties.d.mts +4 -4
  83. package/build/schema/engine/properties.mjs +1 -1
  84. package/build/schema/engine/propertyNames.d.mts +4 -4
  85. package/build/schema/engine/propertyNames.mjs +4 -10
  86. package/build/schema/engine/recursiveRef.d.mts +4 -4
  87. package/build/schema/engine/recursiveRef.mjs +11 -7
  88. package/build/schema/engine/ref.d.mts +4 -4
  89. package/build/schema/engine/ref.mjs +19 -15
  90. package/build/schema/engine/required.d.mts +4 -4
  91. package/build/schema/engine/required.mjs +2 -6
  92. package/build/schema/engine/schema.d.mts +7 -7
  93. package/build/schema/engine/schema.mjs +137 -133
  94. package/build/schema/engine/type.d.mts +4 -4
  95. package/build/schema/engine/type.mjs +2 -6
  96. package/build/schema/engine/unevaluatedItems.d.mts +4 -4
  97. package/build/schema/engine/unevaluatedItems.mjs +5 -9
  98. package/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  99. package/build/schema/engine/unevaluatedProperties.mjs +5 -9
  100. package/build/schema/engine/uniqueItems.d.mts +4 -4
  101. package/build/schema/engine/uniqueItems.mjs +2 -6
  102. package/build/schema/errors.d.mts +2 -2
  103. package/build/schema/errors.mjs +8 -14
  104. package/build/schema/intern/index.d.mts +1 -0
  105. package/build/schema/intern/index.mjs +1 -0
  106. package/build/schema/intern/intern.d.mts +11 -0
  107. package/build/schema/intern/intern.mjs +293 -0
  108. package/build/schema/meta/draft_2019_09.d.mts +2 -0
  109. package/build/schema/meta/draft_2019_09.mjs +288 -0
  110. package/build/schema/meta/draft_2020_12.d.mts +2 -0
  111. package/build/schema/meta/draft_2020_12.mjs +300 -0
  112. package/build/schema/meta/draft_3.d.mts +2 -0
  113. package/build/schema/meta/draft_3.mjs +143 -0
  114. package/build/schema/meta/draft_4.d.mts +2 -0
  115. package/build/schema/meta/draft_4.mjs +149 -0
  116. package/build/schema/meta/draft_6.d.mts +2 -0
  117. package/build/schema/meta/draft_6.mjs +155 -0
  118. package/build/schema/meta/draft_7.d.mts +2 -0
  119. package/build/schema/meta/draft_7.mjs +172 -0
  120. package/build/schema/meta/index.d.mts +2 -0
  121. package/build/schema/meta/index.mjs +2 -0
  122. package/build/schema/meta/meta.d.mts +9 -0
  123. package/build/schema/meta/meta.mjs +15 -0
  124. package/build/schema/meta/schema.d.mts +6 -0
  125. package/build/schema/meta/schema.mjs +1 -0
  126. package/build/schema/parse.d.mts +1 -0
  127. package/build/schema/parse.mjs +10 -5
  128. package/build/schema/resolve/resolve.d.mts +8 -3
  129. package/build/schema/resolve/resolve.mjs +268 -139
  130. package/build/schema/schema.d.mts +2 -0
  131. package/build/schema/schema.mjs +2 -0
  132. package/build/value/errors/errors.d.mts +2 -12
  133. package/build/value/errors/errors.mjs +2 -7
  134. package/changes.json +1 -1
  135. package/package.json +3 -3
  136. 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 { CheckContext, AccumulatedErrorContext } from './_context.mjs';
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 target = stack.Ref(schema) ?? false;
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 target = stack.Ref(schema) ?? false;
35
+ const result = Resolve.Ref(stack, schema);
36
+ const target = result.schema ?? false;
34
37
  const nextContext = new CheckContext();
35
- const result = (Schema.IsSchema(target) && CheckSchema(stack, nextContext, target, value));
36
- if (result)
38
+ const valid = (Schema.IsSchema(target) && CheckSchema(result.stack, nextContext, target, value));
39
+ if (valid)
37
40
  context.Merge([nextContext]);
38
- return result;
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 target = stack.Ref(schema) ?? false;
45
- const nextContext = new AccumulatedErrorContext();
46
- const result = (Schema.IsSchema(target) && ErrorSchema(stack, nextContext, '#', instancePath, target, value));
47
- if (result)
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 (!result)
50
- nextContext.GetErrors().forEach(error => context.AddError(error));
51
- return result;
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 { Stack } from './_stack.mjs';
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 || context.AddError({
27
- keyword: 'required',
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
- export declare function BuildSchemaPushStack(stack: Stack, context: BuildContext, schema: Schema.XSchema, value: string): string;
5
- export declare function BuildSchema(stack: Stack, context: BuildContext, schema: Schema.XSchema, value: string): string;
6
- export declare function CheckSchemaPushStack(stack: Stack, context: CheckContext, schema: Schema.XSchema, value: unknown): boolean;
7
- export declare function CheckSchema(stack: Stack, context: CheckContext, schema: Schema.XSchema, value: unknown): boolean;
8
- export declare function ErrorSchemaPushStack(stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XSchema, value: unknown): boolean;
9
- export declare function ErrorSchema(stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XSchema, value: unknown): boolean;
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
- stack.Push(schema);
136
+ const current = Stack.NextStack(stack, schema);
136
137
  const conditions = [];
137
138
  if (Schema.IsSchemaBoolean(schema))
138
- return BuildSchemaBoolean(stack, context, schema, value);
139
+ return BuildSchemaBoolean(current, context, schema, value);
139
140
  if (Schema.IsType(schema))
140
- conditions.push(BuildType(stack, context, schema, value));
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(stack, context, schema, value));
145
+ constraints.push(BuildRequired(current, context, schema, value));
145
146
  if (Schema.IsAdditionalProperties(schema))
146
- constraints.push(BuildAdditionalProperties(stack, context, schema, value));
147
+ constraints.push(BuildAdditionalProperties(current, context, schema, value));
147
148
  if (Schema.IsDependencies(schema))
148
- constraints.push(BuildDependencies(stack, context, schema, value));
149
+ constraints.push(BuildDependencies(current, context, schema, value));
149
150
  if (Schema.IsDependentRequired(schema))
150
- constraints.push(BuildDependentRequired(stack, context, schema, value));
151
+ constraints.push(BuildDependentRequired(current, context, schema, value));
151
152
  if (Schema.IsDependentSchemas(schema))
152
- constraints.push(BuildDependentSchemas(stack, context, schema, value));
153
+ constraints.push(BuildDependentSchemas(current, context, schema, value));
153
154
  if (Schema.IsPatternProperties(schema))
154
- constraints.push(BuildPatternProperties(stack, context, schema, value));
155
+ constraints.push(BuildPatternProperties(current, context, schema, value));
155
156
  if (Schema.IsProperties(schema))
156
- constraints.push(BuildProperties(stack, context, schema, value));
157
+ constraints.push(BuildProperties(current, context, schema, value));
157
158
  if (Schema.IsPropertyNames(schema))
158
- constraints.push(BuildPropertyNames(stack, context, schema, value));
159
+ constraints.push(BuildPropertyNames(current, context, schema, value));
159
160
  if (Schema.IsMinProperties(schema))
160
- constraints.push(BuildMinProperties(stack, context, schema, value));
161
+ constraints.push(BuildMinProperties(current, context, schema, value));
161
162
  if (Schema.IsMaxProperties(schema))
162
- constraints.push(BuildMaxProperties(stack, context, schema, value));
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(stack, context, schema, value));
171
+ constraints.push(BuildAdditionalItems(current, context, schema, value));
171
172
  if (Schema.IsContains(schema))
172
- constraints.push(BuildContains(stack, context, schema, value));
173
+ constraints.push(BuildContains(current, context, schema, value));
173
174
  if (Schema.IsItems(schema))
174
- constraints.push(BuildItems(stack, context, schema, value));
175
+ constraints.push(BuildItems(current, context, schema, value));
175
176
  if (Schema.IsMaxContains(schema))
176
- constraints.push(BuildMaxContains(stack, context, schema, value));
177
+ constraints.push(BuildMaxContains(current, context, schema, value));
177
178
  if (Schema.IsMaxItems(schema))
178
- constraints.push(BuildMaxItems(stack, context, schema, value));
179
+ constraints.push(BuildMaxItems(current, context, schema, value));
179
180
  if (Schema.IsMinContains(schema))
180
- constraints.push(BuildMinContains(stack, context, schema, value));
181
+ constraints.push(BuildMinContains(current, context, schema, value));
181
182
  if (Schema.IsMinItems(schema))
182
- constraints.push(BuildMinItems(stack, context, schema, value));
183
+ constraints.push(BuildMinItems(current, context, schema, value));
183
184
  if (Schema.IsPrefixItems(schema))
184
- constraints.push(BuildPrefixItems(stack, context, schema, value));
185
+ constraints.push(BuildPrefixItems(current, context, schema, value));
185
186
  if (Schema.IsUniqueItems(schema))
186
- constraints.push(BuildUniqueItems(stack, context, schema, value));
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(stack, context, schema, value));
195
+ constraints.push(BuildMaxLength(current, context, schema, value));
195
196
  if (Schema.IsMinLength(schema))
196
- constraints.push(BuildMinLength(stack, context, schema, value));
197
+ constraints.push(BuildMinLength(current, context, schema, value));
197
198
  if (Schema.IsFormat(schema))
198
- constraints.push(BuildFormat(stack, context, schema, value));
199
+ constraints.push(BuildFormat(current, context, schema, value));
199
200
  if (Schema.IsPattern(schema))
200
- constraints.push(BuildPattern(stack, context, schema, value));
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(stack, context, schema, value));
209
+ constraints.push(BuildExclusiveMaximum(current, context, schema, value));
209
210
  if (Schema.IsExclusiveMinimum(schema))
210
- constraints.push(BuildExclusiveMinimum(stack, context, schema, value));
211
+ constraints.push(BuildExclusiveMinimum(current, context, schema, value));
211
212
  if (Schema.IsMaximum(schema))
212
- constraints.push(BuildMaximum(stack, context, schema, value));
213
+ constraints.push(BuildMaximum(current, context, schema, value));
213
214
  if (Schema.IsMinimum(schema))
214
- constraints.push(BuildMinimum(stack, context, schema, value));
215
+ constraints.push(BuildMinimum(current, context, schema, value));
215
216
  if (Schema.IsMultipleOf(schema))
216
- constraints.push(BuildMultipleOf(stack, context, schema, value));
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(stack, context, schema, value));
223
+ conditions.push(BuildRef(current, context, schema, value));
223
224
  if (Schema.IsRecursiveRef(schema))
224
- conditions.push(BuildRecursiveRef(stack, context, schema, value));
225
+ conditions.push(BuildRecursiveRef(current, context, schema, value));
225
226
  if (Schema.IsDynamicRef(schema))
226
- conditions.push(BuildDynamicRef(stack, context, schema, value));
227
+ conditions.push(BuildDynamicRef(current, context, schema, value));
227
228
  if (Schema.IsConst(schema))
228
- conditions.push(BuildConst(stack, context, schema, value));
229
+ conditions.push(BuildConst(current, context, schema, value));
229
230
  if (Schema.IsEnum(schema))
230
- conditions.push(BuildEnum(stack, context, schema, value));
231
+ conditions.push(BuildEnum(current, context, schema, value));
231
232
  if (Schema.IsIf(schema))
232
- conditions.push(BuildIf(stack, context, schema, value));
233
+ conditions.push(BuildIf(current, context, schema, value));
233
234
  if (Schema.IsNot(schema))
234
- conditions.push(BuildNot(stack, context, schema, value));
235
+ conditions.push(BuildNot(current, context, schema, value));
235
236
  if (Schema.IsAllOf(schema))
236
- conditions.push(BuildAllOf(stack, context, schema, value));
237
+ conditions.push(BuildAllOf(current, context, schema, value));
237
238
  if (Schema.IsAnyOf(schema))
238
- conditions.push(BuildAnyOf(stack, context, schema, value));
239
+ conditions.push(BuildAnyOf(current, context, schema, value));
239
240
  if (Schema.IsOneOf(schema))
240
- conditions.push(BuildOneOf(stack, context, schema, value));
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(stack, context, schema, value)));
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(stack, context, schema, value)));
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(stack, context, schema, value));
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
- stack.Push(schema);
259
- const result = Schema.IsSchemaBoolean(schema) ? CheckSchemaBoolean(stack, context, schema, value) : ((!Schema.IsType(schema) || CheckType(stack, context, schema, value)) &&
260
- (!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(stack, context, schema, value)) &&
261
- (!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(stack, context, schema, value)) &&
262
- (!Schema.IsDependencies(schema) || CheckDependencies(stack, context, schema, value)) &&
263
- (!Schema.IsDependentRequired(schema) || CheckDependentRequired(stack, context, schema, value)) &&
264
- (!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(stack, context, schema, value)) &&
265
- (!Schema.IsPatternProperties(schema) || CheckPatternProperties(stack, context, schema, value)) &&
266
- (!Schema.IsProperties(schema) || CheckProperties(stack, context, schema, value)) &&
267
- (!Schema.IsPropertyNames(schema) || CheckPropertyNames(stack, context, schema, value)) &&
268
- (!Schema.IsMinProperties(schema) || CheckMinProperties(stack, context, schema, value)) &&
269
- (!Schema.IsMaxProperties(schema) || CheckMaxProperties(stack, context, schema, value)))) &&
270
- (!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(stack, context, schema, value)) &&
271
- (!Schema.IsContains(schema) || CheckContains(stack, context, schema, value)) &&
272
- (!Schema.IsItems(schema) || CheckItems(stack, context, schema, value)) &&
273
- (!Schema.IsMaxContains(schema) || CheckMaxContains(stack, context, schema, value)) &&
274
- (!Schema.IsMaxItems(schema) || CheckMaxItems(stack, context, schema, value)) &&
275
- (!Schema.IsMinContains(schema) || CheckMinContains(stack, context, schema, value)) &&
276
- (!Schema.IsMinItems(schema) || CheckMinItems(stack, context, schema, value)) &&
277
- (!Schema.IsPrefixItems(schema) || CheckPrefixItems(stack, context, schema, value)) &&
278
- (!Schema.IsUniqueItems(schema) || CheckUniqueItems(stack, context, schema, value)))) &&
279
- (!G.IsString(value) || ((!Schema.IsMaxLength(schema) || CheckMaxLength(stack, context, schema, value)) &&
280
- (!Schema.IsMinLength(schema) || CheckMinLength(stack, context, schema, value)) &&
281
- (!Schema.IsFormat(schema) || CheckFormat(stack, context, schema, value)) &&
282
- (!Schema.IsPattern(schema) || CheckPattern(stack, context, schema, value)))) &&
283
- (!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(stack, context, schema, value)) &&
284
- (!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(stack, context, schema, value)) &&
285
- (!Schema.IsMaximum(schema) || CheckMaximum(stack, context, schema, value)) &&
286
- (!Schema.IsMinimum(schema) || CheckMinimum(stack, context, schema, value)) &&
287
- (!Schema.IsMultipleOf(schema) || CheckMultipleOf(stack, context, schema, value)))) &&
288
- (!Schema.IsRef(schema) || CheckRef(stack, context, schema, value)) &&
289
- (!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(stack, context, schema, value)) &&
290
- (!Schema.IsDynamicRef(schema) || CheckDynamicRef(stack, context, schema, value)) &&
291
- (!Schema.IsConst(schema) || CheckConst(stack, context, schema, value)) &&
292
- (!Schema.IsEnum(schema) || CheckEnum(stack, context, schema, value)) &&
293
- (!Schema.IsIf(schema) || CheckIf(stack, context, schema, value)) &&
294
- (!Schema.IsNot(schema) || CheckNot(stack, context, schema, value)) &&
295
- (!Schema.IsAllOf(schema) || CheckAllOf(stack, context, schema, value)) &&
296
- (!Schema.IsAnyOf(schema) || CheckAnyOf(stack, context, schema, value)) &&
297
- (!Schema.IsOneOf(schema) || CheckOneOf(stack, context, schema, value)) &&
298
- (!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(stack, context, schema, value))) &&
299
- (!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(stack, context, schema, value))) &&
300
- (!Schema.IsRefine(schema) || CheckRefine(stack, context, schema, value)));
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
- stack.Push(schema);
312
- const result = (Schema.IsSchemaBoolean(schema)) ? ErrorSchemaBoolean(stack, context, schemaPath, instancePath, schema, value) : (!!(+(!Schema.IsType(schema) || ErrorType(stack, context, schemaPath, instancePath, schema, value)) &
313
- +(!(G.IsObject(value) && !G.IsArray(value)) || !!(+(!Schema.IsRequired(schema) || ErrorRequired(stack, context, schemaPath, instancePath, schema, value)) &
314
- +(!Schema.IsAdditionalProperties(schema) || ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value)) &
315
- +(!Schema.IsDependencies(schema) || ErrorDependencies(stack, context, schemaPath, instancePath, schema, value)) &
316
- +(!Schema.IsDependentRequired(schema) || ErrorDependentRequired(stack, context, schemaPath, instancePath, schema, value)) &
317
- +(!Schema.IsDependentSchemas(schema) || ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value)) &
318
- +(!Schema.IsPatternProperties(schema) || ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value)) &
319
- +(!Schema.IsProperties(schema) || ErrorProperties(stack, context, schemaPath, instancePath, schema, value)) &
320
- +(!Schema.IsPropertyNames(schema) || ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value)) &
321
- +(!Schema.IsMinProperties(schema) || ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value)) &
322
- +(!Schema.IsMaxProperties(schema) || ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value)))) &
323
- +(!G.IsArray(value) || !!(+(!Schema.IsAdditionalItems(schema) || ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value)) &
324
- +(!Schema.IsContains(schema) || ErrorContains(stack, context, schemaPath, instancePath, schema, value)) &
325
- +(!Schema.IsItems(schema) || ErrorItems(stack, context, schemaPath, instancePath, schema, value)) &
326
- +(!Schema.IsMaxContains(schema) || ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value)) &
327
- +(!Schema.IsMaxItems(schema) || ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value)) &
328
- +(!Schema.IsMinContains(schema) || ErrorMinContains(stack, context, schemaPath, instancePath, schema, value)) &
329
- +(!Schema.IsMinItems(schema) || ErrorMinItems(stack, context, schemaPath, instancePath, schema, value)) &
330
- +(!Schema.IsPrefixItems(schema) || ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value)) &
331
- +(!Schema.IsUniqueItems(schema) || ErrorUniqueItems(stack, context, schemaPath, instancePath, schema, value)))) &
332
- +(!G.IsString(value) || !!(+(!Schema.IsMaxLength(schema) || ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value)) &
333
- +(!Schema.IsMinLength(schema) || ErrorMinLength(stack, context, schemaPath, instancePath, schema, value)) &
334
- +(!Schema.IsFormat(schema) || ErrorFormat(stack, context, schemaPath, instancePath, schema, value)) &
335
- +(!Schema.IsPattern(schema) || ErrorPattern(stack, context, schemaPath, instancePath, schema, value)))) &
336
- +(!(G.IsNumber(value) || G.IsBigInt(value)) || !!(+(!Schema.IsExclusiveMaximum(schema) || ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value)) &
337
- +(!Schema.IsExclusiveMinimum(schema) || ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value)) &
338
- +(!Schema.IsMaximum(schema) || ErrorMaximum(stack, context, schemaPath, instancePath, schema, value)) &
339
- +(!Schema.IsMinimum(schema) || ErrorMinimum(stack, context, schemaPath, instancePath, schema, value)) &
340
- +(!Schema.IsMultipleOf(schema) || ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value)))) &
341
- +(!Schema.IsRef(schema) || ErrorRef(stack, context, schemaPath, instancePath, schema, value)) &
342
- +(!Schema.IsRecursiveRef(schema) || ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value)) &
343
- +(!Schema.IsDynamicRef(schema) || ErrorDynamicRef(stack, context, schemaPath, instancePath, schema, value)) &
344
- +(!Schema.IsConst(schema) || ErrorConst(stack, context, schemaPath, instancePath, schema, value)) &
345
- +(!Schema.IsEnum(schema) || ErrorEnum(stack, context, schemaPath, instancePath, schema, value)) &
346
- +(!Schema.IsIf(schema) || ErrorIf(stack, context, schemaPath, instancePath, schema, value)) &
347
- +(!Schema.IsNot(schema) || ErrorNot(stack, context, schemaPath, instancePath, schema, value)) &
348
- +(!Schema.IsAllOf(schema) || ErrorAllOf(stack, context, schemaPath, instancePath, schema, value)) &
349
- +(!Schema.IsAnyOf(schema) || ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value)) &
350
- +(!Schema.IsOneOf(schema) || ErrorOneOf(stack, context, schemaPath, instancePath, schema, value)) &
351
- +(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value))) &
352
- +(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value)))) &&
353
- (!Schema.IsRefine(schema) || ErrorRefine(stack, context, schemaPath, instancePath, schema, value)));
354
- stack.Pop(schema);
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 { Stack } from './_stack.mjs';
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 || context.AddError({
65
- keyword: 'type',
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 { Stack } from './_stack.mjs';
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 { AccumulatedErrorContext } from './_context.mjs';
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 AccumulatedErrorContext();
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 || context.AddError({
46
- keyword: 'unevaluatedItems',
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 { Stack } from './_stack.mjs';
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 { AccumulatedErrorContext } from './_context.mjs';
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 AccumulatedErrorContext();
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 || context.AddError({
46
- keyword: 'unevaluatedProperties',
47
- schemaPath,
48
- instancePath,
49
- params: { unevaluatedProperties }
50
- });
45
+ return isUnevaluatedProperties ||
46
+ context.AddError('unevaluatedProperties', schemaPath, instancePath, { unevaluatedProperties });
51
47
  }