@alexlit/lint-kit 117.3.1 → 117.4.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 (159) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/package.json +5 -9
  3. package/packages/config-eslint/plugins/no-await-in-promise.js +1 -1
  4. package/packages/config-eslint/utils/create-config.js +3 -3
  5. package/scripts/.config.sh +1 -1
  6. package/packages/config-eslint/node_modules/@eslint/eslintrc/LICENSE +0 -19
  7. package/packages/config-eslint/node_modules/@eslint/eslintrc/README.md +0 -126
  8. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +0 -79
  9. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/environments.js +0 -215
  10. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +0 -1143
  11. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +0 -1
  12. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +0 -4371
  13. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +0 -1
  14. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +0 -532
  15. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +0 -510
  16. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +0 -124
  17. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +0 -145
  18. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +0 -238
  19. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +0 -19
  20. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +0 -225
  21. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +0 -1155
  22. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +0 -318
  23. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +0 -29
  24. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index.js +0 -58
  25. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +0 -191
  26. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +0 -135
  27. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +0 -370
  28. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +0 -63
  29. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +0 -96
  30. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +0 -42
  31. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +0 -149
  32. package/packages/config-eslint/node_modules/@eslint/eslintrc/package.json +0 -82
  33. package/packages/config-eslint/node_modules/@eslint/eslintrc/universal.js +0 -9
  34. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
  35. package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
  36. package/packages/config-eslint/node_modules/ajv/README.md +0 -1497
  37. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7189
  38. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
  39. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
  40. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -397
  41. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
  42. package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
  43. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
  44. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
  45. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
  46. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
  47. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -387
  48. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
  49. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
  50. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  51. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  52. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
  53. package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
  54. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
  57. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
  58. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
  59. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
  60. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
  61. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
  62. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
  63. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
  64. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
  65. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
  66. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
  67. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
  68. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
  69. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
  70. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
  71. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
  72. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
  73. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
  74. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
  75. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
  76. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
  77. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
  78. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -14
  79. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
  80. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
  81. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
  82. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
  83. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
  84. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
  85. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
  86. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
  87. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
  88. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
  89. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
  90. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
  91. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
  92. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
  93. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
  94. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
  95. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
  96. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
  97. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
  98. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
  99. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
  100. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
  101. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
  102. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
  103. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
  104. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
  105. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -75
  106. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
  107. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
  108. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
  109. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
  110. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
  111. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
  112. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
  113. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
  114. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
  115. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
  116. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
  117. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
  118. package/packages/config-eslint/node_modules/ajv/package.json +0 -106
  119. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  120. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
  121. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
  122. package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
  123. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
  124. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
  125. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
  126. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +0 -201
  127. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +0 -105
  128. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +0 -384
  129. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +0 -27
  130. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +0 -16
  131. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +0 -12
  132. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +0 -65
  133. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +0 -315
  134. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +0 -74
  135. package/packages/config-eslint/node_modules/espree/LICENSE +0 -25
  136. package/packages/config-eslint/node_modules/espree/README.md +0 -244
  137. package/packages/config-eslint/node_modules/espree/dist/espree.cjs +0 -883
  138. package/packages/config-eslint/node_modules/espree/espree.js +0 -177
  139. package/packages/config-eslint/node_modules/espree/lib/espree.js +0 -349
  140. package/packages/config-eslint/node_modules/espree/lib/features.js +0 -27
  141. package/packages/config-eslint/node_modules/espree/lib/options.js +0 -123
  142. package/packages/config-eslint/node_modules/espree/lib/token-translator.js +0 -263
  143. package/packages/config-eslint/node_modules/espree/lib/version.js +0 -3
  144. package/packages/config-eslint/node_modules/espree/package.json +0 -86
  145. package/packages/config-eslint/node_modules/globals/globals.json +0 -1998
  146. package/packages/config-eslint/node_modules/globals/index.d.ts +0 -2077
  147. package/packages/config-eslint/node_modules/globals/index.js +0 -2
  148. package/packages/config-eslint/node_modules/globals/license +0 -9
  149. package/packages/config-eslint/node_modules/globals/package.json +0 -58
  150. package/packages/config-eslint/node_modules/globals/readme.md +0 -44
  151. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  152. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
  153. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
  154. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
  155. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
  156. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
  157. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  158. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  159. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
@@ -1,142 +0,0 @@
1
- 'use strict';
2
-
3
- var util = require('./util');
4
-
5
- var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
6
- var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];
7
- var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
8
- var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;
9
- var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
10
- var URIREF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
11
- // uri-template: https://tools.ietf.org/html/rfc6570
12
- var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
13
- // For the source: https://gist.github.com/dperini/729294
14
- // For test cases: https://mathiasbynens.be/demo/url-regex
15
- // @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.
16
- // var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
17
- var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;
18
- var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
19
- var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
20
- var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
21
- var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
22
-
23
-
24
- module.exports = formats;
25
-
26
- function formats(mode) {
27
- mode = mode == 'full' ? 'full' : 'fast';
28
- return util.copy(formats[mode]);
29
- }
30
-
31
-
32
- formats.fast = {
33
- // date: http://tools.ietf.org/html/rfc3339#section-5.6
34
- date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
35
- // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
36
- time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,
37
- 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,
38
- // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
39
- uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
40
- 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
41
- 'uri-template': URITEMPLATE,
42
- url: URL,
43
- // email (sources from jsen validator):
44
- // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
45
- // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
46
- email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
47
- hostname: HOSTNAME,
48
- // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
49
- ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
50
- // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
51
- ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
52
- regex: regex,
53
- // uuid: http://tools.ietf.org/html/rfc4122
54
- uuid: UUID,
55
- // JSON-pointer: https://tools.ietf.org/html/rfc6901
56
- // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
57
- 'json-pointer': JSON_POINTER,
58
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
59
- // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
60
- 'relative-json-pointer': RELATIVE_JSON_POINTER
61
- };
62
-
63
-
64
- formats.full = {
65
- date: date,
66
- time: time,
67
- 'date-time': date_time,
68
- uri: uri,
69
- 'uri-reference': URIREF,
70
- 'uri-template': URITEMPLATE,
71
- url: URL,
72
- email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
73
- hostname: HOSTNAME,
74
- ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
75
- ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
76
- regex: regex,
77
- uuid: UUID,
78
- 'json-pointer': JSON_POINTER,
79
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
80
- 'relative-json-pointer': RELATIVE_JSON_POINTER
81
- };
82
-
83
-
84
- function isLeapYear(year) {
85
- // https://tools.ietf.org/html/rfc3339#appendix-C
86
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
87
- }
88
-
89
-
90
- function date(str) {
91
- // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
92
- var matches = str.match(DATE);
93
- if (!matches) return false;
94
-
95
- var year = +matches[1];
96
- var month = +matches[2];
97
- var day = +matches[3];
98
-
99
- return month >= 1 && month <= 12 && day >= 1 &&
100
- day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);
101
- }
102
-
103
-
104
- function time(str, full) {
105
- var matches = str.match(TIME);
106
- if (!matches) return false;
107
-
108
- var hour = matches[1];
109
- var minute = matches[2];
110
- var second = matches[3];
111
- var timeZone = matches[5];
112
- return ((hour <= 23 && minute <= 59 && second <= 59) ||
113
- (hour == 23 && minute == 59 && second == 60)) &&
114
- (!full || timeZone);
115
- }
116
-
117
-
118
- var DATE_TIME_SEPARATOR = /t|\s/i;
119
- function date_time(str) {
120
- // http://tools.ietf.org/html/rfc3339#section-5.6
121
- var dateTime = str.split(DATE_TIME_SEPARATOR);
122
- return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
123
- }
124
-
125
-
126
- var NOT_URI_FRAGMENT = /\/|:/;
127
- function uri(str) {
128
- // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
129
- return NOT_URI_FRAGMENT.test(str) && URI.test(str);
130
- }
131
-
132
-
133
- var Z_ANCHOR = /[^\\]\\Z/;
134
- function regex(str) {
135
- if (Z_ANCHOR.test(str)) return false;
136
- try {
137
- new RegExp(str);
138
- return true;
139
- } catch(e) {
140
- return false;
141
- }
142
- }
@@ -1,387 +0,0 @@
1
- 'use strict';
2
-
3
- var resolve = require('./resolve')
4
- , util = require('./util')
5
- , errorClasses = require('./error_classes')
6
- , stableStringify = require('fast-json-stable-stringify');
7
-
8
- var validateGenerator = require('../dotjs/validate');
9
-
10
- /**
11
- * Functions below are used inside compiled validations function
12
- */
13
-
14
- var ucs2length = util.ucs2length;
15
- var equal = require('fast-deep-equal');
16
-
17
- // this error is thrown by async schemas to return validation errors via exception
18
- var ValidationError = errorClasses.Validation;
19
-
20
- module.exports = compile;
21
-
22
-
23
- /**
24
- * Compiles schema to validation function
25
- * @this Ajv
26
- * @param {Object} schema schema object
27
- * @param {Object} root object with information about the root schema for this schema
28
- * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
29
- * @param {String} baseId base ID for IDs in the schema
30
- * @return {Function} validation function
31
- */
32
- function compile(schema, root, localRefs, baseId) {
33
- /* jshint validthis: true, evil: true */
34
- /* eslint no-shadow: 0 */
35
- var self = this
36
- , opts = this._opts
37
- , refVal = [ undefined ]
38
- , refs = {}
39
- , patterns = []
40
- , patternsHash = {}
41
- , defaults = []
42
- , defaultsHash = {}
43
- , customRules = [];
44
-
45
- root = root || { schema: schema, refVal: refVal, refs: refs };
46
-
47
- var c = checkCompiling.call(this, schema, root, baseId);
48
- var compilation = this._compilations[c.index];
49
- if (c.compiling) return (compilation.callValidate = callValidate);
50
-
51
- var formats = this._formats;
52
- var RULES = this.RULES;
53
-
54
- try {
55
- var v = localCompile(schema, root, localRefs, baseId);
56
- compilation.validate = v;
57
- var cv = compilation.callValidate;
58
- if (cv) {
59
- cv.schema = v.schema;
60
- cv.errors = null;
61
- cv.refs = v.refs;
62
- cv.refVal = v.refVal;
63
- cv.root = v.root;
64
- cv.$async = v.$async;
65
- if (opts.sourceCode) cv.source = v.source;
66
- }
67
- return v;
68
- } finally {
69
- endCompiling.call(this, schema, root, baseId);
70
- }
71
-
72
- /* @this {*} - custom context, see passContext option */
73
- function callValidate() {
74
- /* jshint validthis: true */
75
- var validate = compilation.validate;
76
- var result = validate.apply(this, arguments);
77
- callValidate.errors = validate.errors;
78
- return result;
79
- }
80
-
81
- function localCompile(_schema, _root, localRefs, baseId) {
82
- var isRoot = !_root || (_root && _root.schema == _schema);
83
- if (_root.schema != root.schema)
84
- return compile.call(self, _schema, _root, localRefs, baseId);
85
-
86
- var $async = _schema.$async === true;
87
-
88
- var sourceCode = validateGenerator({
89
- isTop: true,
90
- schema: _schema,
91
- isRoot: isRoot,
92
- baseId: baseId,
93
- root: _root,
94
- schemaPath: '',
95
- errSchemaPath: '#',
96
- errorPath: '""',
97
- MissingRefError: errorClasses.MissingRef,
98
- RULES: RULES,
99
- validate: validateGenerator,
100
- util: util,
101
- resolve: resolve,
102
- resolveRef: resolveRef,
103
- usePattern: usePattern,
104
- useDefault: useDefault,
105
- useCustomRule: useCustomRule,
106
- opts: opts,
107
- formats: formats,
108
- logger: self.logger,
109
- self: self
110
- });
111
-
112
- sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
113
- + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
114
- + sourceCode;
115
-
116
- if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);
117
- // console.log('\n\n\n *** \n', JSON.stringify(sourceCode));
118
- var validate;
119
- try {
120
- var makeValidate = new Function(
121
- 'self',
122
- 'RULES',
123
- 'formats',
124
- 'root',
125
- 'refVal',
126
- 'defaults',
127
- 'customRules',
128
- 'equal',
129
- 'ucs2length',
130
- 'ValidationError',
131
- sourceCode
132
- );
133
-
134
- validate = makeValidate(
135
- self,
136
- RULES,
137
- formats,
138
- root,
139
- refVal,
140
- defaults,
141
- customRules,
142
- equal,
143
- ucs2length,
144
- ValidationError
145
- );
146
-
147
- refVal[0] = validate;
148
- } catch(e) {
149
- self.logger.error('Error compiling schema, function code:', sourceCode);
150
- throw e;
151
- }
152
-
153
- validate.schema = _schema;
154
- validate.errors = null;
155
- validate.refs = refs;
156
- validate.refVal = refVal;
157
- validate.root = isRoot ? validate : _root;
158
- if ($async) validate.$async = true;
159
- if (opts.sourceCode === true) {
160
- validate.source = {
161
- code: sourceCode,
162
- patterns: patterns,
163
- defaults: defaults
164
- };
165
- }
166
-
167
- return validate;
168
- }
169
-
170
- function resolveRef(baseId, ref, isRoot) {
171
- ref = resolve.url(baseId, ref);
172
- var refIndex = refs[ref];
173
- var _refVal, refCode;
174
- if (refIndex !== undefined) {
175
- _refVal = refVal[refIndex];
176
- refCode = 'refVal[' + refIndex + ']';
177
- return resolvedRef(_refVal, refCode);
178
- }
179
- if (!isRoot && root.refs) {
180
- var rootRefId = root.refs[ref];
181
- if (rootRefId !== undefined) {
182
- _refVal = root.refVal[rootRefId];
183
- refCode = addLocalRef(ref, _refVal);
184
- return resolvedRef(_refVal, refCode);
185
- }
186
- }
187
-
188
- refCode = addLocalRef(ref);
189
- var v = resolve.call(self, localCompile, root, ref);
190
- if (v === undefined) {
191
- var localSchema = localRefs && localRefs[ref];
192
- if (localSchema) {
193
- v = resolve.inlineRef(localSchema, opts.inlineRefs)
194
- ? localSchema
195
- : compile.call(self, localSchema, root, localRefs, baseId);
196
- }
197
- }
198
-
199
- if (v === undefined) {
200
- removeLocalRef(ref);
201
- } else {
202
- replaceLocalRef(ref, v);
203
- return resolvedRef(v, refCode);
204
- }
205
- }
206
-
207
- function addLocalRef(ref, v) {
208
- var refId = refVal.length;
209
- refVal[refId] = v;
210
- refs[ref] = refId;
211
- return 'refVal' + refId;
212
- }
213
-
214
- function removeLocalRef(ref) {
215
- delete refs[ref];
216
- }
217
-
218
- function replaceLocalRef(ref, v) {
219
- var refId = refs[ref];
220
- refVal[refId] = v;
221
- }
222
-
223
- function resolvedRef(refVal, code) {
224
- return typeof refVal == 'object' || typeof refVal == 'boolean'
225
- ? { code: code, schema: refVal, inline: true }
226
- : { code: code, $async: refVal && !!refVal.$async };
227
- }
228
-
229
- function usePattern(regexStr) {
230
- var index = patternsHash[regexStr];
231
- if (index === undefined) {
232
- index = patternsHash[regexStr] = patterns.length;
233
- patterns[index] = regexStr;
234
- }
235
- return 'pattern' + index;
236
- }
237
-
238
- function useDefault(value) {
239
- switch (typeof value) {
240
- case 'boolean':
241
- case 'number':
242
- return '' + value;
243
- case 'string':
244
- return util.toQuotedString(value);
245
- case 'object':
246
- if (value === null) return 'null';
247
- var valueStr = stableStringify(value);
248
- var index = defaultsHash[valueStr];
249
- if (index === undefined) {
250
- index = defaultsHash[valueStr] = defaults.length;
251
- defaults[index] = value;
252
- }
253
- return 'default' + index;
254
- }
255
- }
256
-
257
- function useCustomRule(rule, schema, parentSchema, it) {
258
- if (self._opts.validateSchema !== false) {
259
- var deps = rule.definition.dependencies;
260
- if (deps && !deps.every(function(keyword) {
261
- return Object.prototype.hasOwnProperty.call(parentSchema, keyword);
262
- }))
263
- throw new Error('parent schema must have all required keywords: ' + deps.join(','));
264
-
265
- var validateSchema = rule.definition.validateSchema;
266
- if (validateSchema) {
267
- var valid = validateSchema(schema);
268
- if (!valid) {
269
- var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
270
- if (self._opts.validateSchema == 'log') self.logger.error(message);
271
- else throw new Error(message);
272
- }
273
- }
274
- }
275
-
276
- var compile = rule.definition.compile
277
- , inline = rule.definition.inline
278
- , macro = rule.definition.macro;
279
-
280
- var validate;
281
- if (compile) {
282
- validate = compile.call(self, schema, parentSchema, it);
283
- } else if (macro) {
284
- validate = macro.call(self, schema, parentSchema, it);
285
- if (opts.validateSchema !== false) self.validateSchema(validate, true);
286
- } else if (inline) {
287
- validate = inline.call(self, it, rule.keyword, schema, parentSchema);
288
- } else {
289
- validate = rule.definition.validate;
290
- if (!validate) return;
291
- }
292
-
293
- if (validate === undefined)
294
- throw new Error('custom keyword "' + rule.keyword + '"failed to compile');
295
-
296
- var index = customRules.length;
297
- customRules[index] = validate;
298
-
299
- return {
300
- code: 'customRule' + index,
301
- validate: validate
302
- };
303
- }
304
- }
305
-
306
-
307
- /**
308
- * Checks if the schema is currently compiled
309
- * @this Ajv
310
- * @param {Object} schema schema to compile
311
- * @param {Object} root root object
312
- * @param {String} baseId base schema ID
313
- * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
314
- */
315
- function checkCompiling(schema, root, baseId) {
316
- /* jshint validthis: true */
317
- var index = compIndex.call(this, schema, root, baseId);
318
- if (index >= 0) return { index: index, compiling: true };
319
- index = this._compilations.length;
320
- this._compilations[index] = {
321
- schema: schema,
322
- root: root,
323
- baseId: baseId
324
- };
325
- return { index: index, compiling: false };
326
- }
327
-
328
-
329
- /**
330
- * Removes the schema from the currently compiled list
331
- * @this Ajv
332
- * @param {Object} schema schema to compile
333
- * @param {Object} root root object
334
- * @param {String} baseId base schema ID
335
- */
336
- function endCompiling(schema, root, baseId) {
337
- /* jshint validthis: true */
338
- var i = compIndex.call(this, schema, root, baseId);
339
- if (i >= 0) this._compilations.splice(i, 1);
340
- }
341
-
342
-
343
- /**
344
- * Index of schema compilation in the currently compiled list
345
- * @this Ajv
346
- * @param {Object} schema schema to compile
347
- * @param {Object} root root object
348
- * @param {String} baseId base schema ID
349
- * @return {Integer} compilation index
350
- */
351
- function compIndex(schema, root, baseId) {
352
- /* jshint validthis: true */
353
- for (var i=0; i<this._compilations.length; i++) {
354
- var c = this._compilations[i];
355
- if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
356
- }
357
- return -1;
358
- }
359
-
360
-
361
- function patternCode(i, patterns) {
362
- return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
363
- }
364
-
365
-
366
- function defaultCode(i) {
367
- return 'var default' + i + ' = defaults[' + i + '];';
368
- }
369
-
370
-
371
- function refValCode(i, refVal) {
372
- return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
373
- }
374
-
375
-
376
- function customRuleCode(i) {
377
- return 'var customRule' + i + ' = customRules[' + i + '];';
378
- }
379
-
380
-
381
- function vars(arr, statement) {
382
- if (!arr.length) return '';
383
- var code = '';
384
- for (var i=0; i<arr.length; i++)
385
- code += statement(i, arr);
386
- return code;
387
- }