1
|
{{# def.definitions }}
|
2
|
|
3
|
{{## def._error:_rule:
|
4
|
{{ 'istanbul ignore else'; }}
|
5
|
{{? it.createErrors !== false }}
|
6
|
{
|
7
|
keyword: '{{= $errorKeyword || _rule }}'
|
8
|
, dataPath: (dataPath || '') + {{= it.errorPath }}
|
9
|
, schemaPath: {{=it.util.toQuotedString($errSchemaPath)}}
|
10
|
, params: {{# def._errorParams[_rule] }}
|
11
|
{{? it.opts.messages !== false }}
|
12
|
, message: {{# def._errorMessages[_rule] }}
|
13
|
{{?}}
|
14
|
{{? it.opts.verbose }}
|
15
|
, schema: {{# def._errorSchemas[_rule] }}
|
16
|
, parentSchema: validate.schema{{=it.schemaPath}}
|
17
|
, data: {{=$data}}
|
18
|
{{?}}
|
19
|
}
|
20
|
{{??}}
|
21
|
{}
|
22
|
{{?}}
|
23
|
#}}
|
24
|
|
25
|
|
26
|
{{## def._addError:_rule:
|
27
|
if (vErrors === null) vErrors = [err];
|
28
|
else vErrors.push(err);
|
29
|
errors++;
|
30
|
#}}
|
31
|
|
32
|
|
33
|
{{## def.addError:_rule:
|
34
|
var err = {{# def._error:_rule }};
|
35
|
{{# def._addError:_rule }}
|
36
|
#}}
|
37
|
|
38
|
|
39
|
{{## def.error:_rule:
|
40
|
{{# def.beginDefOut}}
|
41
|
{{# def._error:_rule }}
|
42
|
{{# def.storeDefOut:__err }}
|
43
|
|
44
|
{{? !it.compositeRule && $breakOnError }}
|
45
|
{{ 'istanbul ignore if'; }}
|
46
|
{{? it.async }}
|
47
|
throw new ValidationError([{{=__err}}]);
|
48
|
{{??}}
|
49
|
validate.errors = [{{=__err}}];
|
50
|
return false;
|
51
|
{{?}}
|
52
|
{{??}}
|
53
|
var err = {{=__err}};
|
54
|
{{# def._addError:_rule }}
|
55
|
{{?}}
|
56
|
#}}
|
57
|
|
58
|
|
59
|
{{## def.extraError:_rule:
|
60
|
{{# def.addError:_rule}}
|
61
|
{{? !it.compositeRule && $breakOnError }}
|
62
|
{{ 'istanbul ignore if'; }}
|
63
|
{{? it.async }}
|
64
|
throw new ValidationError(vErrors);
|
65
|
{{??}}
|
66
|
validate.errors = vErrors;
|
67
|
return false;
|
68
|
{{?}}
|
69
|
{{?}}
|
70
|
#}}
|
71
|
|
72
|
|
73
|
{{## def.checkError:_rule:
|
74
|
if (!{{=$valid}}) {
|
75
|
{{# def.error:_rule }}
|
76
|
}
|
77
|
#}}
|
78
|
|
79
|
|
80
|
{{## def.resetErrors:
|
81
|
errors = {{=$errs}};
|
82
|
if (vErrors !== null) {
|
83
|
if ({{=$errs}}) vErrors.length = {{=$errs}};
|
84
|
else vErrors = null;
|
85
|
}
|
86
|
#}}
|
87
|
|
88
|
|
89
|
{{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}}
|
90
|
{{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schemaValue}}'{{?}}#}}
|
91
|
{{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}}
|
92
|
|
93
|
{{## def._errorMessages = {
|
94
|
'false schema': "'boolean schema is false'",
|
95
|
$ref: "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'",
|
96
|
additionalItems: "'should NOT have more than {{=$schema.length}} items'",
|
97
|
additionalProperties: "'{{? it.opts._errorDataPathProperty }}is an invalid additional property{{??}}should NOT have additional properties{{?}}'",
|
98
|
anyOf: "'should match some schema in anyOf'",
|
99
|
const: "'should be equal to constant'",
|
100
|
contains: "'should contain a valid item'",
|
101
|
dependencies: "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'",
|
102
|
'enum': "'should be equal to one of the allowed values'",
|
103
|
format: "'should match format \"{{#def.concatSchemaEQ}}\"'",
|
104
|
'if': "'should match \"' + {{=$ifClause}} + '\" schema'",
|
105
|
_limit: "'should be {{=$opStr}} {{#def.appendSchema}}",
|
106
|
_exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'",
|
107
|
_limitItems: "'should NOT have {{?$keyword=='maxItems'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} items'",
|
108
|
_limitLength: "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'",
|
109
|
_limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} properties'",
|
110
|
multipleOf: "'should be multiple of {{#def.appendSchema}}",
|
111
|
not: "'should NOT be valid'",
|
112
|
oneOf: "'should match exactly one schema in oneOf'",
|
113
|
pattern: "'should match pattern \"{{#def.concatSchemaEQ}}\"'",
|
114
|
propertyNames: "'property name \\'{{=$invalidName}}\\' is invalid'",
|
115
|
required: "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'",
|
116
|
type: "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'",
|
117
|
uniqueItems: "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'",
|
118
|
custom: "'should pass \"{{=$rule.keyword}}\" keyword validation'",
|
119
|
patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''",
|
120
|
switch: "'should pass \"switch\" keyword validation'",
|
121
|
_formatLimit: "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'",
|
122
|
_formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'"
|
123
|
} #}}
|
124
|
|
125
|
|
126
|
{{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}}
|
127
|
{{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
|
128
|
|
129
|
{{## def._errorSchemas = {
|
130
|
'false schema': "false",
|
131
|
$ref: "{{=it.util.toQuotedString($schema)}}",
|
132
|
additionalItems: "false",
|
133
|
additionalProperties: "false",
|
134
|
anyOf: "validate.schema{{=$schemaPath}}",
|
135
|
const: "validate.schema{{=$schemaPath}}",
|
136
|
contains: "validate.schema{{=$schemaPath}}",
|
137
|
dependencies: "validate.schema{{=$schemaPath}}",
|
138
|
'enum': "validate.schema{{=$schemaPath}}",
|
139
|
format: "{{#def.schemaRefOrQS}}",
|
140
|
'if': "validate.schema{{=$schemaPath}}",
|
141
|
_limit: "{{#def.schemaRefOrVal}}",
|
142
|
_exclusiveLimit: "validate.schema{{=$schemaPath}}",
|
143
|
_limitItems: "{{#def.schemaRefOrVal}}",
|
144
|
_limitLength: "{{#def.schemaRefOrVal}}",
|
145
|
_limitProperties:"{{#def.schemaRefOrVal}}",
|
146
|
multipleOf: "{{#def.schemaRefOrVal}}",
|
147
|
not: "validate.schema{{=$schemaPath}}",
|
148
|
oneOf: "validate.schema{{=$schemaPath}}",
|
149
|
pattern: "{{#def.schemaRefOrQS}}",
|
150
|
propertyNames: "validate.schema{{=$schemaPath}}",
|
151
|
required: "validate.schema{{=$schemaPath}}",
|
152
|
type: "validate.schema{{=$schemaPath}}",
|
153
|
uniqueItems: "{{#def.schemaRefOrVal}}",
|
154
|
custom: "validate.schema{{=$schemaPath}}",
|
155
|
patternRequired: "validate.schema{{=$schemaPath}}",
|
156
|
switch: "validate.schema{{=$schemaPath}}",
|
157
|
_formatLimit: "{{#def.schemaRefOrQS}}",
|
158
|
_formatExclusiveLimit: "validate.schema{{=$schemaPath}}"
|
159
|
} #}}
|
160
|
|
161
|
|
162
|
{{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
|
163
|
|
164
|
{{## def._errorParams = {
|
165
|
'false schema': "{}",
|
166
|
$ref: "{ ref: '{{=it.util.escapeQuotes($schema)}}' }",
|
167
|
additionalItems: "{ limit: {{=$schema.length}} }",
|
168
|
additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }",
|
169
|
anyOf: "{}",
|
170
|
const: "{ allowedValue: schema{{=$lvl}} }",
|
171
|
contains: "{}",
|
172
|
dependencies: "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }",
|
173
|
'enum': "{ allowedValues: schema{{=$lvl}} }",
|
174
|
format: "{ format: {{#def.schemaValueQS}} }",
|
175
|
'if': "{ failingKeyword: {{=$ifClause}} }",
|
176
|
_limit: "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }",
|
177
|
_exclusiveLimit: "{}",
|
178
|
_limitItems: "{ limit: {{=$schemaValue}} }",
|
179
|
_limitLength: "{ limit: {{=$schemaValue}} }",
|
180
|
_limitProperties:"{ limit: {{=$schemaValue}} }",
|
181
|
multipleOf: "{ multipleOf: {{=$schemaValue}} }",
|
182
|
not: "{}",
|
183
|
oneOf: "{ passingSchemas: {{=$passingSchemas}} }",
|
184
|
pattern: "{ pattern: {{#def.schemaValueQS}} }",
|
185
|
propertyNames: "{ propertyName: '{{=$invalidName}}' }",
|
186
|
required: "{ missingProperty: '{{=$missingProperty}}' }",
|
187
|
type: "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }",
|
188
|
uniqueItems: "{ i: i, j: j }",
|
189
|
custom: "{ keyword: '{{=$rule.keyword}}' }",
|
190
|
patternRequired: "{ missingPattern: '{{=$missingPattern}}' }",
|
191
|
switch: "{ caseIndex: {{=$caseIndex}} }",
|
192
|
_formatLimit: "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }",
|
193
|
_formatExclusiveLimit: "{}"
|
194
|
} #}}
|