@alexlit/lint-kit 117.3.1 → 117.5.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/package.json +1 -1
- package/packages/config-eslint/package.json +7 -11
- package/packages/config-eslint/plugins/no-await-in-promise.js +1 -1
- package/packages/config-eslint/utils/create-config.js +3 -3
- package/packages/config-hooks/package.json +2 -2
- package/scripts/.config.sh +1 -1
- package/packages/config-eslint/node_modules/@eslint/eslintrc/LICENSE +0 -19
- package/packages/config-eslint/node_modules/@eslint/eslintrc/README.md +0 -126
- package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +0 -79
- package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/environments.js +0 -215
- package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +0 -1143
- package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +0 -1
- package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +0 -4371
- package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +0 -1
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +0 -532
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +0 -510
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +0 -124
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +0 -145
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +0 -238
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +0 -19
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +0 -225
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +0 -1155
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +0 -318
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +0 -29
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index.js +0 -58
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +0 -191
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +0 -135
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +0 -370
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +0 -63
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +0 -96
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +0 -42
- package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +0 -149
- package/packages/config-eslint/node_modules/@eslint/eslintrc/package.json +0 -82
- package/packages/config-eslint/node_modules/@eslint/eslintrc/universal.js +0 -9
- package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
- package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
- package/packages/config-eslint/node_modules/ajv/README.md +0 -1497
- package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7189
- package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
- package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
- package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -397
- package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
- package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
- package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
- package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
- package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
- package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
- package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -387
- package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
- package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
- package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
- package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
- package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
- package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
- package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
- package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
- package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
- package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
- package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
- package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
- package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
- package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
- package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
- package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
- package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
- package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
- package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
- package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
- package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
- package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
- package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
- package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
- package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
- package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
- package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
- package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
- package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
- package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
- package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -14
- package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
- package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
- package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
- package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
- package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
- package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -75
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
- package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
- package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
- package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
- package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
- package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
- package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
- package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
- package/packages/config-eslint/node_modules/ajv/package.json +0 -106
- package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
- package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
- package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
- package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
- package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
- package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
- package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
- package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +0 -201
- package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +0 -105
- package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +0 -384
- package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +0 -27
- package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +0 -16
- package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +0 -12
- package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +0 -65
- package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +0 -315
- package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +0 -74
- package/packages/config-eslint/node_modules/espree/LICENSE +0 -25
- package/packages/config-eslint/node_modules/espree/README.md +0 -244
- package/packages/config-eslint/node_modules/espree/dist/espree.cjs +0 -883
- package/packages/config-eslint/node_modules/espree/espree.js +0 -177
- package/packages/config-eslint/node_modules/espree/lib/espree.js +0 -349
- package/packages/config-eslint/node_modules/espree/lib/features.js +0 -27
- package/packages/config-eslint/node_modules/espree/lib/options.js +0 -123
- package/packages/config-eslint/node_modules/espree/lib/token-translator.js +0 -263
- package/packages/config-eslint/node_modules/espree/lib/version.js +0 -3
- package/packages/config-eslint/node_modules/espree/package.json +0 -86
- package/packages/config-eslint/node_modules/globals/globals.json +0 -1998
- package/packages/config-eslint/node_modules/globals/index.d.ts +0 -2077
- package/packages/config-eslint/node_modules/globals/index.js +0 -2
- package/packages/config-eslint/node_modules/globals/license +0 -9
- package/packages/config-eslint/node_modules/globals/package.json +0 -58
- package/packages/config-eslint/node_modules/globals/readme.md +0 -44
- package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
- package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
- package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
- package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
- package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
- package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
- package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
- package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
- package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
{{# def.definitions }}
|
|
2
|
-
{{# def.errors }}
|
|
3
|
-
{{# def.missing }}
|
|
4
|
-
{{# def.setupKeyword }}
|
|
5
|
-
{{# def.$data }}
|
|
6
|
-
|
|
7
|
-
{{ var $vSchema = 'schema' + $lvl; }}
|
|
8
|
-
|
|
9
|
-
{{## def.setupLoop:
|
|
10
|
-
{{? !$isData }}
|
|
11
|
-
var {{=$vSchema}} = validate.schema{{=$schemaPath}};
|
|
12
|
-
{{?}}
|
|
13
|
-
|
|
14
|
-
{{
|
|
15
|
-
var $i = 'i' + $lvl
|
|
16
|
-
, $propertyPath = 'schema' + $lvl + '[' + $i + ']'
|
|
17
|
-
, $missingProperty = '\' + ' + $propertyPath + ' + \'';
|
|
18
|
-
if (it.opts._errorDataPathProperty) {
|
|
19
|
-
it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
|
|
20
|
-
}
|
|
21
|
-
}}
|
|
22
|
-
#}}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
{{## def.isRequiredOwnProperty:
|
|
26
|
-
Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}])
|
|
27
|
-
#}}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{{? !$isData }}
|
|
31
|
-
{{? $schema.length < it.opts.loopRequired &&
|
|
32
|
-
it.schema.properties && Object.keys(it.schema.properties).length }}
|
|
33
|
-
{{ var $required = []; }}
|
|
34
|
-
{{~ $schema:$property }}
|
|
35
|
-
{{ var $propertySch = it.schema.properties[$property]; }}
|
|
36
|
-
{{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
|
|
37
|
-
{{ $required[$required.length] = $property; }}
|
|
38
|
-
{{?}}
|
|
39
|
-
{{~}}
|
|
40
|
-
{{??}}
|
|
41
|
-
{{ var $required = $schema; }}
|
|
42
|
-
{{?}}
|
|
43
|
-
{{?}}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{{? $isData || $required.length }}
|
|
47
|
-
{{
|
|
48
|
-
var $currentErrorPath = it.errorPath
|
|
49
|
-
, $loopRequired = $isData || $required.length >= it.opts.loopRequired
|
|
50
|
-
, $ownProperties = it.opts.ownProperties;
|
|
51
|
-
}}
|
|
52
|
-
|
|
53
|
-
{{? $breakOnError }}
|
|
54
|
-
var missing{{=$lvl}};
|
|
55
|
-
{{? $loopRequired }}
|
|
56
|
-
{{# def.setupLoop }}
|
|
57
|
-
var {{=$valid}} = true;
|
|
58
|
-
|
|
59
|
-
{{?$isData}}{{# def.check$dataIsArray }}{{?}}
|
|
60
|
-
|
|
61
|
-
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
|
|
62
|
-
{{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined
|
|
63
|
-
{{? $ownProperties }}
|
|
64
|
-
&& {{# def.isRequiredOwnProperty }}
|
|
65
|
-
{{?}};
|
|
66
|
-
if (!{{=$valid}}) break;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
{{? $isData }} } {{?}}
|
|
70
|
-
|
|
71
|
-
{{# def.checkError:'required' }}
|
|
72
|
-
else {
|
|
73
|
-
{{??}}
|
|
74
|
-
if ({{# def.checkMissingProperty:$required }}) {
|
|
75
|
-
{{# def.errorMissingProperty:'required' }}
|
|
76
|
-
} else {
|
|
77
|
-
{{?}}
|
|
78
|
-
{{??}}
|
|
79
|
-
{{? $loopRequired }}
|
|
80
|
-
{{# def.setupLoop }}
|
|
81
|
-
{{? $isData }}
|
|
82
|
-
if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
|
|
83
|
-
{{# def.addError:'required' }}
|
|
84
|
-
} else if ({{=$vSchema}} !== undefined) {
|
|
85
|
-
{{?}}
|
|
86
|
-
|
|
87
|
-
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
|
|
88
|
-
if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined
|
|
89
|
-
{{? $ownProperties }}
|
|
90
|
-
|| !{{# def.isRequiredOwnProperty }}
|
|
91
|
-
{{?}}) {
|
|
92
|
-
{{# def.addError:'required' }}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
{{? $isData }} } {{?}}
|
|
97
|
-
{{??}}
|
|
98
|
-
{{~ $required:$propertyKey }}
|
|
99
|
-
{{# def.allErrorsMissingProperty:'required' }}
|
|
100
|
-
{{~}}
|
|
101
|
-
{{?}}
|
|
102
|
-
{{?}}
|
|
103
|
-
|
|
104
|
-
{{ it.errorPath = $currentErrorPath; }}
|
|
105
|
-
|
|
106
|
-
{{?? $breakOnError }}
|
|
107
|
-
if (true) {
|
|
108
|
-
{{?}}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
{{# def.definitions }}
|
|
2
|
-
{{# def.errors }}
|
|
3
|
-
{{# def.setupKeyword }}
|
|
4
|
-
{{# def.$data }}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
{{? ($schema || $isData) && it.opts.uniqueItems !== false }}
|
|
8
|
-
{{? $isData }}
|
|
9
|
-
var {{=$valid}};
|
|
10
|
-
if ({{=$schemaValue}} === false || {{=$schemaValue}} === undefined)
|
|
11
|
-
{{=$valid}} = true;
|
|
12
|
-
else if (typeof {{=$schemaValue}} != 'boolean')
|
|
13
|
-
{{=$valid}} = false;
|
|
14
|
-
else {
|
|
15
|
-
{{?}}
|
|
16
|
-
|
|
17
|
-
var i = {{=$data}}.length
|
|
18
|
-
, {{=$valid}} = true
|
|
19
|
-
, j;
|
|
20
|
-
if (i > 1) {
|
|
21
|
-
{{
|
|
22
|
-
var $itemType = it.schema.items && it.schema.items.type
|
|
23
|
-
, $typeIsArray = Array.isArray($itemType);
|
|
24
|
-
}}
|
|
25
|
-
{{? !$itemType || $itemType == 'object' || $itemType == 'array' ||
|
|
26
|
-
($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0)) }}
|
|
27
|
-
outer:
|
|
28
|
-
for (;i--;) {
|
|
29
|
-
for (j = i; j--;) {
|
|
30
|
-
if (equal({{=$data}}[i], {{=$data}}[j])) {
|
|
31
|
-
{{=$valid}} = false;
|
|
32
|
-
break outer;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
{{??}}
|
|
37
|
-
var itemIndices = {}, item;
|
|
38
|
-
for (;i--;) {
|
|
39
|
-
var item = {{=$data}}[i];
|
|
40
|
-
{{ var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); }}
|
|
41
|
-
if ({{= it.util[$method]($itemType, 'item', it.opts.strictNumbers, true) }}) continue;
|
|
42
|
-
{{? $typeIsArray}}
|
|
43
|
-
if (typeof item == 'string') item = '"' + item;
|
|
44
|
-
{{?}}
|
|
45
|
-
if (typeof itemIndices[item] == 'number') {
|
|
46
|
-
{{=$valid}} = false;
|
|
47
|
-
j = itemIndices[item];
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
itemIndices[item] = i;
|
|
51
|
-
}
|
|
52
|
-
{{?}}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
{{? $isData }} } {{?}}
|
|
56
|
-
|
|
57
|
-
if (!{{=$valid}}) {
|
|
58
|
-
{{# def.error:'uniqueItems' }}
|
|
59
|
-
} {{? $breakOnError }} else { {{?}}
|
|
60
|
-
{{??}}
|
|
61
|
-
{{? $breakOnError }} if (true) { {{?}}
|
|
62
|
-
{{?}}
|
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
{{# def.definitions }}
|
|
2
|
-
{{# def.errors }}
|
|
3
|
-
{{# def.defaults }}
|
|
4
|
-
{{# def.coerce }}
|
|
5
|
-
|
|
6
|
-
{{ /**
|
|
7
|
-
* schema compilation (render) time:
|
|
8
|
-
* it = { schema, RULES, _validate, opts }
|
|
9
|
-
* it.validate - this template function,
|
|
10
|
-
* it is used recursively to generate code for subschemas
|
|
11
|
-
*
|
|
12
|
-
* runtime:
|
|
13
|
-
* "validate" is a variable name to which this function will be assigned
|
|
14
|
-
* validateRef etc. are defined in the parent scope in index.js
|
|
15
|
-
*/ }}
|
|
16
|
-
|
|
17
|
-
{{
|
|
18
|
-
var $async = it.schema.$async === true
|
|
19
|
-
, $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref')
|
|
20
|
-
, $id = it.self._getId(it.schema);
|
|
21
|
-
}}
|
|
22
|
-
|
|
23
|
-
{{
|
|
24
|
-
if (it.opts.strictKeywords) {
|
|
25
|
-
var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
|
|
26
|
-
if ($unknownKwd) {
|
|
27
|
-
var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;
|
|
28
|
-
if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);
|
|
29
|
-
else throw new Error($keywordsMsg);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}}
|
|
33
|
-
|
|
34
|
-
{{? it.isTop }}
|
|
35
|
-
var validate = {{?$async}}{{it.async = true;}}async {{?}}function(data, dataPath, parentData, parentDataProperty, rootData) {
|
|
36
|
-
'use strict';
|
|
37
|
-
{{? $id && (it.opts.sourceCode || it.opts.processCode) }}
|
|
38
|
-
{{= '/\*# sourceURL=' + $id + ' */' }}
|
|
39
|
-
{{?}}
|
|
40
|
-
{{?}}
|
|
41
|
-
|
|
42
|
-
{{? typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref) }}
|
|
43
|
-
{{ var $keyword = 'false schema'; }}
|
|
44
|
-
{{# def.setupKeyword }}
|
|
45
|
-
{{? it.schema === false}}
|
|
46
|
-
{{? it.isTop}}
|
|
47
|
-
{{ $breakOnError = true; }}
|
|
48
|
-
{{??}}
|
|
49
|
-
var {{=$valid}} = false;
|
|
50
|
-
{{?}}
|
|
51
|
-
{{# def.error:'false schema' }}
|
|
52
|
-
{{??}}
|
|
53
|
-
{{? it.isTop}}
|
|
54
|
-
{{? $async }}
|
|
55
|
-
return data;
|
|
56
|
-
{{??}}
|
|
57
|
-
validate.errors = null;
|
|
58
|
-
return true;
|
|
59
|
-
{{?}}
|
|
60
|
-
{{??}}
|
|
61
|
-
var {{=$valid}} = true;
|
|
62
|
-
{{?}}
|
|
63
|
-
{{?}}
|
|
64
|
-
|
|
65
|
-
{{? it.isTop}}
|
|
66
|
-
};
|
|
67
|
-
return validate;
|
|
68
|
-
{{?}}
|
|
69
|
-
|
|
70
|
-
{{ return out; }}
|
|
71
|
-
{{?}}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
{{? it.isTop }}
|
|
75
|
-
{{
|
|
76
|
-
var $top = it.isTop
|
|
77
|
-
, $lvl = it.level = 0
|
|
78
|
-
, $dataLvl = it.dataLevel = 0
|
|
79
|
-
, $data = 'data';
|
|
80
|
-
it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
|
|
81
|
-
it.baseId = it.baseId || it.rootId;
|
|
82
|
-
delete it.isTop;
|
|
83
|
-
|
|
84
|
-
it.dataPathArr = [""];
|
|
85
|
-
|
|
86
|
-
if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
|
|
87
|
-
var $defaultMsg = 'default is ignored in the schema root';
|
|
88
|
-
if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
|
|
89
|
-
else throw new Error($defaultMsg);
|
|
90
|
-
}
|
|
91
|
-
}}
|
|
92
|
-
|
|
93
|
-
var vErrors = null; {{ /* don't edit, used in replace */ }}
|
|
94
|
-
var errors = 0; {{ /* don't edit, used in replace */ }}
|
|
95
|
-
if (rootData === undefined) rootData = data; {{ /* don't edit, used in replace */ }}
|
|
96
|
-
{{??}}
|
|
97
|
-
{{
|
|
98
|
-
var $lvl = it.level
|
|
99
|
-
, $dataLvl = it.dataLevel
|
|
100
|
-
, $data = 'data' + ($dataLvl || '');
|
|
101
|
-
|
|
102
|
-
if ($id) it.baseId = it.resolve.url(it.baseId, $id);
|
|
103
|
-
|
|
104
|
-
if ($async && !it.async) throw new Error('async schema in sync schema');
|
|
105
|
-
}}
|
|
106
|
-
|
|
107
|
-
var errs_{{=$lvl}} = errors;
|
|
108
|
-
{{?}}
|
|
109
|
-
|
|
110
|
-
{{
|
|
111
|
-
var $valid = 'valid' + $lvl
|
|
112
|
-
, $breakOnError = !it.opts.allErrors
|
|
113
|
-
, $closingBraces1 = ''
|
|
114
|
-
, $closingBraces2 = '';
|
|
115
|
-
|
|
116
|
-
var $errorKeyword;
|
|
117
|
-
var $typeSchema = it.schema.type
|
|
118
|
-
, $typeIsArray = Array.isArray($typeSchema);
|
|
119
|
-
|
|
120
|
-
if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
|
|
121
|
-
if ($typeIsArray) {
|
|
122
|
-
if ($typeSchema.indexOf('null') == -1)
|
|
123
|
-
$typeSchema = $typeSchema.concat('null');
|
|
124
|
-
} else if ($typeSchema != 'null') {
|
|
125
|
-
$typeSchema = [$typeSchema, 'null'];
|
|
126
|
-
$typeIsArray = true;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if ($typeIsArray && $typeSchema.length == 1) {
|
|
131
|
-
$typeSchema = $typeSchema[0];
|
|
132
|
-
$typeIsArray = false;
|
|
133
|
-
}
|
|
134
|
-
}}
|
|
135
|
-
|
|
136
|
-
{{## def.checkType:
|
|
137
|
-
{{
|
|
138
|
-
var $schemaPath = it.schemaPath + '.type'
|
|
139
|
-
, $errSchemaPath = it.errSchemaPath + '/type'
|
|
140
|
-
, $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
|
|
141
|
-
}}
|
|
142
|
-
|
|
143
|
-
if ({{= it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) }}) {
|
|
144
|
-
#}}
|
|
145
|
-
|
|
146
|
-
{{? it.schema.$ref && $refKeywords }}
|
|
147
|
-
{{? it.opts.extendRefs == 'fail' }}
|
|
148
|
-
{{ throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); }}
|
|
149
|
-
{{?? it.opts.extendRefs !== true }}
|
|
150
|
-
{{
|
|
151
|
-
$refKeywords = false;
|
|
152
|
-
it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
|
|
153
|
-
}}
|
|
154
|
-
{{?}}
|
|
155
|
-
{{?}}
|
|
156
|
-
|
|
157
|
-
{{? it.schema.$comment && it.opts.$comment }}
|
|
158
|
-
{{= it.RULES.all.$comment.code(it, '$comment') }}
|
|
159
|
-
{{?}}
|
|
160
|
-
|
|
161
|
-
{{? $typeSchema }}
|
|
162
|
-
{{? it.opts.coerceTypes }}
|
|
163
|
-
{{ var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); }}
|
|
164
|
-
{{?}}
|
|
165
|
-
|
|
166
|
-
{{ var $rulesGroup = it.RULES.types[$typeSchema]; }}
|
|
167
|
-
{{? $coerceToTypes || $typeIsArray || $rulesGroup === true ||
|
|
168
|
-
($rulesGroup && !$shouldUseGroup($rulesGroup)) }}
|
|
169
|
-
{{
|
|
170
|
-
var $schemaPath = it.schemaPath + '.type'
|
|
171
|
-
, $errSchemaPath = it.errSchemaPath + '/type';
|
|
172
|
-
}}
|
|
173
|
-
{{# def.checkType }}
|
|
174
|
-
{{? $coerceToTypes }}
|
|
175
|
-
{{# def.coerceType }}
|
|
176
|
-
{{??}}
|
|
177
|
-
{{# def.error:'type' }}
|
|
178
|
-
{{?}}
|
|
179
|
-
}
|
|
180
|
-
{{?}}
|
|
181
|
-
{{?}}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
{{? it.schema.$ref && !$refKeywords }}
|
|
185
|
-
{{= it.RULES.all.$ref.code(it, '$ref') }}
|
|
186
|
-
{{? $breakOnError }}
|
|
187
|
-
}
|
|
188
|
-
if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
|
|
189
|
-
{{ $closingBraces2 += '}'; }}
|
|
190
|
-
{{?}}
|
|
191
|
-
{{??}}
|
|
192
|
-
{{~ it.RULES:$rulesGroup }}
|
|
193
|
-
{{? $shouldUseGroup($rulesGroup) }}
|
|
194
|
-
{{? $rulesGroup.type }}
|
|
195
|
-
if ({{= it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) }}) {
|
|
196
|
-
{{?}}
|
|
197
|
-
{{? it.opts.useDefaults }}
|
|
198
|
-
{{? $rulesGroup.type == 'object' && it.schema.properties }}
|
|
199
|
-
{{# def.defaultProperties }}
|
|
200
|
-
{{?? $rulesGroup.type == 'array' && Array.isArray(it.schema.items) }}
|
|
201
|
-
{{# def.defaultItems }}
|
|
202
|
-
{{?}}
|
|
203
|
-
{{?}}
|
|
204
|
-
{{~ $rulesGroup.rules:$rule }}
|
|
205
|
-
{{? $shouldUseRule($rule) }}
|
|
206
|
-
{{ var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); }}
|
|
207
|
-
{{? $code }}
|
|
208
|
-
{{= $code }}
|
|
209
|
-
{{? $breakOnError }}
|
|
210
|
-
{{ $closingBraces1 += '}'; }}
|
|
211
|
-
{{?}}
|
|
212
|
-
{{?}}
|
|
213
|
-
{{?}}
|
|
214
|
-
{{~}}
|
|
215
|
-
{{? $breakOnError }}
|
|
216
|
-
{{= $closingBraces1 }}
|
|
217
|
-
{{ $closingBraces1 = ''; }}
|
|
218
|
-
{{?}}
|
|
219
|
-
{{? $rulesGroup.type }}
|
|
220
|
-
}
|
|
221
|
-
{{? $typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes }}
|
|
222
|
-
else {
|
|
223
|
-
{{
|
|
224
|
-
var $schemaPath = it.schemaPath + '.type'
|
|
225
|
-
, $errSchemaPath = it.errSchemaPath + '/type';
|
|
226
|
-
}}
|
|
227
|
-
{{# def.error:'type' }}
|
|
228
|
-
}
|
|
229
|
-
{{?}}
|
|
230
|
-
{{?}}
|
|
231
|
-
|
|
232
|
-
{{? $breakOnError }}
|
|
233
|
-
if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
|
|
234
|
-
{{ $closingBraces2 += '}'; }}
|
|
235
|
-
{{?}}
|
|
236
|
-
{{?}}
|
|
237
|
-
{{~}}
|
|
238
|
-
{{?}}
|
|
239
|
-
|
|
240
|
-
{{? $breakOnError }} {{= $closingBraces2 }} {{?}}
|
|
241
|
-
|
|
242
|
-
{{? $top }}
|
|
243
|
-
{{? $async }}
|
|
244
|
-
if (errors === 0) return data; {{ /* don't edit, used in replace */ }}
|
|
245
|
-
else throw new ValidationError(vErrors); {{ /* don't edit, used in replace */ }}
|
|
246
|
-
{{??}}
|
|
247
|
-
validate.errors = vErrors; {{ /* don't edit, used in replace */ }}
|
|
248
|
-
return errors === 0; {{ /* don't edit, used in replace */ }}
|
|
249
|
-
{{?}}
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
return validate;
|
|
253
|
-
{{??}}
|
|
254
|
-
var {{=$valid}} = errors === errs_{{=$lvl}};
|
|
255
|
-
{{?}}
|
|
256
|
-
|
|
257
|
-
{{
|
|
258
|
-
function $shouldUseGroup($rulesGroup) {
|
|
259
|
-
var rules = $rulesGroup.rules;
|
|
260
|
-
for (var i=0; i < rules.length; i++)
|
|
261
|
-
if ($shouldUseRule(rules[i]))
|
|
262
|
-
return true;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
function $shouldUseRule($rule) {
|
|
266
|
-
return it.schema[$rule.keyword] !== undefined ||
|
|
267
|
-
($rule.implements && $ruleImplementsSomeKeyword($rule));
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
function $ruleImplementsSomeKeyword($rule) {
|
|
271
|
-
var impl = $rule.implements;
|
|
272
|
-
for (var i=0; i < impl.length; i++)
|
|
273
|
-
if (it.schema[impl[i]] !== undefined)
|
|
274
|
-
return true;
|
|
275
|
-
}
|
|
276
|
-
}}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
module.exports = function generate__limit(it, $keyword, $ruleType) {
|
|
3
|
-
var out = ' ';
|
|
4
|
-
var $lvl = it.level;
|
|
5
|
-
var $dataLvl = it.dataLevel;
|
|
6
|
-
var $schema = it.schema[$keyword];
|
|
7
|
-
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
|
|
8
|
-
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
|
|
9
|
-
var $breakOnError = !it.opts.allErrors;
|
|
10
|
-
var $errorKeyword;
|
|
11
|
-
var $data = 'data' + ($dataLvl || '');
|
|
12
|
-
var $isData = it.opts.$data && $schema && $schema.$data,
|
|
13
|
-
$schemaValue;
|
|
14
|
-
if ($isData) {
|
|
15
|
-
out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
|
|
16
|
-
$schemaValue = 'schema' + $lvl;
|
|
17
|
-
} else {
|
|
18
|
-
$schemaValue = $schema;
|
|
19
|
-
}
|
|
20
|
-
var $isMax = $keyword == 'maximum',
|
|
21
|
-
$exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
|
|
22
|
-
$schemaExcl = it.schema[$exclusiveKeyword],
|
|
23
|
-
$isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,
|
|
24
|
-
$op = $isMax ? '<' : '>',
|
|
25
|
-
$notOp = $isMax ? '>' : '<',
|
|
26
|
-
$errorKeyword = undefined;
|
|
27
|
-
if (!($isData || typeof $schema == 'number' || $schema === undefined)) {
|
|
28
|
-
throw new Error($keyword + ' must be number');
|
|
29
|
-
}
|
|
30
|
-
if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {
|
|
31
|
-
throw new Error($exclusiveKeyword + ' must be number or boolean');
|
|
32
|
-
}
|
|
33
|
-
if ($isDataExcl) {
|
|
34
|
-
var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
|
|
35
|
-
$exclusive = 'exclusive' + $lvl,
|
|
36
|
-
$exclType = 'exclType' + $lvl,
|
|
37
|
-
$exclIsNumber = 'exclIsNumber' + $lvl,
|
|
38
|
-
$opExpr = 'op' + $lvl,
|
|
39
|
-
$opStr = '\' + ' + $opExpr + ' + \'';
|
|
40
|
-
out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
|
|
41
|
-
$schemaValueExcl = 'schemaExcl' + $lvl;
|
|
42
|
-
out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { ';
|
|
43
|
-
var $errorKeyword = $exclusiveKeyword;
|
|
44
|
-
var $$outStack = $$outStack || [];
|
|
45
|
-
$$outStack.push(out);
|
|
46
|
-
out = ''; /* istanbul ignore else */
|
|
47
|
-
if (it.createErrors !== false) {
|
|
48
|
-
out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
|
|
49
|
-
if (it.opts.messages !== false) {
|
|
50
|
-
out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
|
|
51
|
-
}
|
|
52
|
-
if (it.opts.verbose) {
|
|
53
|
-
out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
|
|
54
|
-
}
|
|
55
|
-
out += ' } ';
|
|
56
|
-
} else {
|
|
57
|
-
out += ' {} ';
|
|
58
|
-
}
|
|
59
|
-
var __err = out;
|
|
60
|
-
out = $$outStack.pop();
|
|
61
|
-
if (!it.compositeRule && $breakOnError) {
|
|
62
|
-
/* istanbul ignore if */
|
|
63
|
-
if (it.async) {
|
|
64
|
-
out += ' throw new ValidationError([' + (__err) + ']); ';
|
|
65
|
-
} else {
|
|
66
|
-
out += ' validate.errors = [' + (__err) + ']; return false; ';
|
|
67
|
-
}
|
|
68
|
-
} else {
|
|
69
|
-
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
|
|
70
|
-
}
|
|
71
|
-
out += ' } else if ( ';
|
|
72
|
-
if ($isData) {
|
|
73
|
-
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
|
|
74
|
-
}
|
|
75
|
-
out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; ';
|
|
76
|
-
if ($schema === undefined) {
|
|
77
|
-
$errorKeyword = $exclusiveKeyword;
|
|
78
|
-
$errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
|
|
79
|
-
$schemaValue = $schemaValueExcl;
|
|
80
|
-
$isData = $isDataExcl;
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
var $exclIsNumber = typeof $schemaExcl == 'number',
|
|
84
|
-
$opStr = $op;
|
|
85
|
-
if ($exclIsNumber && $isData) {
|
|
86
|
-
var $opExpr = '\'' + $opStr + '\'';
|
|
87
|
-
out += ' if ( ';
|
|
88
|
-
if ($isData) {
|
|
89
|
-
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
|
|
90
|
-
}
|
|
91
|
-
out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';
|
|
92
|
-
} else {
|
|
93
|
-
if ($exclIsNumber && $schema === undefined) {
|
|
94
|
-
$exclusive = true;
|
|
95
|
-
$errorKeyword = $exclusiveKeyword;
|
|
96
|
-
$errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
|
|
97
|
-
$schemaValue = $schemaExcl;
|
|
98
|
-
$notOp += '=';
|
|
99
|
-
} else {
|
|
100
|
-
if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
|
|
101
|
-
if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
|
|
102
|
-
$exclusive = true;
|
|
103
|
-
$errorKeyword = $exclusiveKeyword;
|
|
104
|
-
$errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
|
|
105
|
-
$notOp += '=';
|
|
106
|
-
} else {
|
|
107
|
-
$exclusive = false;
|
|
108
|
-
$opStr += '=';
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
var $opExpr = '\'' + $opStr + '\'';
|
|
112
|
-
out += ' if ( ';
|
|
113
|
-
if ($isData) {
|
|
114
|
-
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
|
|
115
|
-
}
|
|
116
|
-
out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
$errorKeyword = $errorKeyword || $keyword;
|
|
120
|
-
var $$outStack = $$outStack || [];
|
|
121
|
-
$$outStack.push(out);
|
|
122
|
-
out = ''; /* istanbul ignore else */
|
|
123
|
-
if (it.createErrors !== false) {
|
|
124
|
-
out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
|
|
125
|
-
if (it.opts.messages !== false) {
|
|
126
|
-
out += ' , message: \'should be ' + ($opStr) + ' ';
|
|
127
|
-
if ($isData) {
|
|
128
|
-
out += '\' + ' + ($schemaValue);
|
|
129
|
-
} else {
|
|
130
|
-
out += '' + ($schemaValue) + '\'';
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
if (it.opts.verbose) {
|
|
134
|
-
out += ' , schema: ';
|
|
135
|
-
if ($isData) {
|
|
136
|
-
out += 'validate.schema' + ($schemaPath);
|
|
137
|
-
} else {
|
|
138
|
-
out += '' + ($schema);
|
|
139
|
-
}
|
|
140
|
-
out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
|
|
141
|
-
}
|
|
142
|
-
out += ' } ';
|
|
143
|
-
} else {
|
|
144
|
-
out += ' {} ';
|
|
145
|
-
}
|
|
146
|
-
var __err = out;
|
|
147
|
-
out = $$outStack.pop();
|
|
148
|
-
if (!it.compositeRule && $breakOnError) {
|
|
149
|
-
/* istanbul ignore if */
|
|
150
|
-
if (it.async) {
|
|
151
|
-
out += ' throw new ValidationError([' + (__err) + ']); ';
|
|
152
|
-
} else {
|
|
153
|
-
out += ' validate.errors = [' + (__err) + ']; return false; ';
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
|
|
157
|
-
}
|
|
158
|
-
out += ' } ';
|
|
159
|
-
if ($breakOnError) {
|
|
160
|
-
out += ' else { ';
|
|
161
|
-
}
|
|
162
|
-
return out;
|
|
163
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
module.exports = function generate__limitItems(it, $keyword, $ruleType) {
|
|
3
|
-
var out = ' ';
|
|
4
|
-
var $lvl = it.level;
|
|
5
|
-
var $dataLvl = it.dataLevel;
|
|
6
|
-
var $schema = it.schema[$keyword];
|
|
7
|
-
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
|
|
8
|
-
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
|
|
9
|
-
var $breakOnError = !it.opts.allErrors;
|
|
10
|
-
var $errorKeyword;
|
|
11
|
-
var $data = 'data' + ($dataLvl || '');
|
|
12
|
-
var $isData = it.opts.$data && $schema && $schema.$data,
|
|
13
|
-
$schemaValue;
|
|
14
|
-
if ($isData) {
|
|
15
|
-
out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
|
|
16
|
-
$schemaValue = 'schema' + $lvl;
|
|
17
|
-
} else {
|
|
18
|
-
$schemaValue = $schema;
|
|
19
|
-
}
|
|
20
|
-
if (!($isData || typeof $schema == 'number')) {
|
|
21
|
-
throw new Error($keyword + ' must be number');
|
|
22
|
-
}
|
|
23
|
-
var $op = $keyword == 'maxItems' ? '>' : '<';
|
|
24
|
-
out += 'if ( ';
|
|
25
|
-
if ($isData) {
|
|
26
|
-
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
|
|
27
|
-
}
|
|
28
|
-
out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
|
|
29
|
-
var $errorKeyword = $keyword;
|
|
30
|
-
var $$outStack = $$outStack || [];
|
|
31
|
-
$$outStack.push(out);
|
|
32
|
-
out = ''; /* istanbul ignore else */
|
|
33
|
-
if (it.createErrors !== false) {
|
|
34
|
-
out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
|
|
35
|
-
if (it.opts.messages !== false) {
|
|
36
|
-
out += ' , message: \'should NOT have ';
|
|
37
|
-
if ($keyword == 'maxItems') {
|
|
38
|
-
out += 'more';
|
|
39
|
-
} else {
|
|
40
|
-
out += 'fewer';
|
|
41
|
-
}
|
|
42
|
-
out += ' than ';
|
|
43
|
-
if ($isData) {
|
|
44
|
-
out += '\' + ' + ($schemaValue) + ' + \'';
|
|
45
|
-
} else {
|
|
46
|
-
out += '' + ($schema);
|
|
47
|
-
}
|
|
48
|
-
out += ' items\' ';
|
|
49
|
-
}
|
|
50
|
-
if (it.opts.verbose) {
|
|
51
|
-
out += ' , schema: ';
|
|
52
|
-
if ($isData) {
|
|
53
|
-
out += 'validate.schema' + ($schemaPath);
|
|
54
|
-
} else {
|
|
55
|
-
out += '' + ($schema);
|
|
56
|
-
}
|
|
57
|
-
out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
|
|
58
|
-
}
|
|
59
|
-
out += ' } ';
|
|
60
|
-
} else {
|
|
61
|
-
out += ' {} ';
|
|
62
|
-
}
|
|
63
|
-
var __err = out;
|
|
64
|
-
out = $$outStack.pop();
|
|
65
|
-
if (!it.compositeRule && $breakOnError) {
|
|
66
|
-
/* istanbul ignore if */
|
|
67
|
-
if (it.async) {
|
|
68
|
-
out += ' throw new ValidationError([' + (__err) + ']); ';
|
|
69
|
-
} else {
|
|
70
|
-
out += ' validate.errors = [' + (__err) + ']; return false; ';
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
73
|
-
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
|
|
74
|
-
}
|
|
75
|
-
out += '} ';
|
|
76
|
-
if ($breakOnError) {
|
|
77
|
-
out += ' else { ';
|
|
78
|
-
}
|
|
79
|
-
return out;
|
|
80
|
-
}
|