@nikovirtala/projen-constructs 0.2.111 → 0.2.113

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 (548) hide show
  1. package/.jsii +4 -4
  2. package/lib/components/bundle-lambda-function-code.js +3 -3
  3. package/lib/components/colima.js +1 -1
  4. package/lib/components/homebrew.js +1 -1
  5. package/lib/components/lambda-function-construct-generator.js +1 -1
  6. package/lib/components/localstack.js +1 -1
  7. package/lib/components/mise.js +1 -1
  8. package/lib/components/typedoc.js +1 -1
  9. package/lib/components/vitest.js +1 -1
  10. package/lib/project-generator.js +1 -1
  11. package/lib/projects/awscdk-construct-library.generated.js +1 -1
  12. package/lib/projects/awscdk-typescript-app.generated.js +1 -1
  13. package/lib/projects/jsii.generated.js +1 -1
  14. package/lib/projects/typescript.generated.js +1 -1
  15. package/node_modules/@jsii/spec/jest.config.mjs +4 -1
  16. package/node_modules/@jsii/spec/lib/format-errors.d.ts +3 -0
  17. package/node_modules/@jsii/spec/lib/format-errors.js +12 -0
  18. package/node_modules/@jsii/spec/lib/redirect.js +5 -11
  19. package/node_modules/@jsii/spec/lib/validate-assembly.js +5 -11
  20. package/node_modules/@jsii/spec/lib/validators.js +43 -0
  21. package/node_modules/@jsii/spec/package.json +5 -7
  22. package/package.json +7 -7
  23. package/node_modules/ajv/.runkit_example.js +0 -23
  24. package/node_modules/ajv/LICENSE +0 -22
  25. package/node_modules/ajv/README.md +0 -207
  26. package/node_modules/ajv/dist/2019.d.ts +0 -19
  27. package/node_modules/ajv/dist/2019.js +0 -61
  28. package/node_modules/ajv/dist/2019.js.map +0 -1
  29. package/node_modules/ajv/dist/2020.d.ts +0 -19
  30. package/node_modules/ajv/dist/2020.js +0 -55
  31. package/node_modules/ajv/dist/2020.js.map +0 -1
  32. package/node_modules/ajv/dist/ajv.d.ts +0 -18
  33. package/node_modules/ajv/dist/ajv.js +0 -50
  34. package/node_modules/ajv/dist/ajv.js.map +0 -1
  35. package/node_modules/ajv/dist/compile/codegen/code.d.ts +0 -40
  36. package/node_modules/ajv/dist/compile/codegen/code.js +0 -156
  37. package/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
  38. package/node_modules/ajv/dist/compile/codegen/index.d.ts +0 -79
  39. package/node_modules/ajv/dist/compile/codegen/index.js +0 -697
  40. package/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
  41. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +0 -79
  42. package/node_modules/ajv/dist/compile/codegen/scope.js +0 -143
  43. package/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
  44. package/node_modules/ajv/dist/compile/errors.d.ts +0 -13
  45. package/node_modules/ajv/dist/compile/errors.js +0 -123
  46. package/node_modules/ajv/dist/compile/errors.js.map +0 -1
  47. package/node_modules/ajv/dist/compile/index.d.ts +0 -80
  48. package/node_modules/ajv/dist/compile/index.js +0 -242
  49. package/node_modules/ajv/dist/compile/index.js.map +0 -1
  50. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +0 -4
  51. package/node_modules/ajv/dist/compile/jtd/parse.js +0 -350
  52. package/node_modules/ajv/dist/compile/jtd/parse.js.map +0 -1
  53. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +0 -4
  54. package/node_modules/ajv/dist/compile/jtd/serialize.js +0 -229
  55. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +0 -1
  56. package/node_modules/ajv/dist/compile/jtd/types.d.ts +0 -6
  57. package/node_modules/ajv/dist/compile/jtd/types.js +0 -14
  58. package/node_modules/ajv/dist/compile/jtd/types.js.map +0 -1
  59. package/node_modules/ajv/dist/compile/names.d.ts +0 -20
  60. package/node_modules/ajv/dist/compile/names.js +0 -28
  61. package/node_modules/ajv/dist/compile/names.js.map +0 -1
  62. package/node_modules/ajv/dist/compile/ref_error.d.ts +0 -6
  63. package/node_modules/ajv/dist/compile/ref_error.js +0 -12
  64. package/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
  65. package/node_modules/ajv/dist/compile/resolve.d.ts +0 -12
  66. package/node_modules/ajv/dist/compile/resolve.js +0 -155
  67. package/node_modules/ajv/dist/compile/resolve.js.map +0 -1
  68. package/node_modules/ajv/dist/compile/rules.d.ts +0 -28
  69. package/node_modules/ajv/dist/compile/rules.js +0 -26
  70. package/node_modules/ajv/dist/compile/rules.js.map +0 -1
  71. package/node_modules/ajv/dist/compile/util.d.ts +0 -40
  72. package/node_modules/ajv/dist/compile/util.js +0 -178
  73. package/node_modules/ajv/dist/compile/util.js.map +0 -1
  74. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +0 -6
  75. package/node_modules/ajv/dist/compile/validate/applicability.js +0 -19
  76. package/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
  77. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +0 -4
  78. package/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -50
  79. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
  80. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +0 -17
  81. package/node_modules/ajv/dist/compile/validate/dataType.js +0 -203
  82. package/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
  83. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +0 -2
  84. package/node_modules/ajv/dist/compile/validate/defaults.js +0 -35
  85. package/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
  86. package/node_modules/ajv/dist/compile/validate/index.d.ts +0 -42
  87. package/node_modules/ajv/dist/compile/validate/index.js +0 -520
  88. package/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
  89. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +0 -8
  90. package/node_modules/ajv/dist/compile/validate/keyword.js +0 -124
  91. package/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
  92. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +0 -47
  93. package/node_modules/ajv/dist/compile/validate/subschema.js +0 -81
  94. package/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
  95. package/node_modules/ajv/dist/core.d.ts +0 -173
  96. package/node_modules/ajv/dist/core.js +0 -618
  97. package/node_modules/ajv/dist/core.js.map +0 -1
  98. package/node_modules/ajv/dist/jtd.d.ts +0 -47
  99. package/node_modules/ajv/dist/jtd.js +0 -72
  100. package/node_modules/ajv/dist/jtd.js.map +0 -1
  101. package/node_modules/ajv/dist/refs/data.json +0 -13
  102. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +0 -2
  103. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +0 -28
  104. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +0 -1
  105. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +0 -53
  106. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +0 -17
  107. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +0 -57
  108. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +0 -14
  109. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +0 -37
  110. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +0 -90
  111. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +0 -39
  112. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +0 -2
  113. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +0 -30
  114. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +0 -1
  115. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +0 -48
  116. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +0 -17
  117. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +0 -51
  118. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +0 -14
  119. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +0 -37
  120. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +0 -15
  121. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +0 -90
  122. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +0 -55
  123. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +0 -137
  124. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +0 -151
  125. package/node_modules/ajv/dist/refs/json-schema-secure.json +0 -88
  126. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +0 -3
  127. package/node_modules/ajv/dist/refs/jtd-schema.js +0 -118
  128. package/node_modules/ajv/dist/refs/jtd-schema.js.map +0 -1
  129. package/node_modules/ajv/dist/runtime/equal.d.ts +0 -6
  130. package/node_modules/ajv/dist/runtime/equal.js +0 -7
  131. package/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  132. package/node_modules/ajv/dist/runtime/parseJson.d.ts +0 -18
  133. package/node_modules/ajv/dist/runtime/parseJson.js +0 -185
  134. package/node_modules/ajv/dist/runtime/parseJson.js.map +0 -1
  135. package/node_modules/ajv/dist/runtime/quote.d.ts +0 -5
  136. package/node_modules/ajv/dist/runtime/quote.js +0 -30
  137. package/node_modules/ajv/dist/runtime/quote.js.map +0 -1
  138. package/node_modules/ajv/dist/runtime/re2.d.ts +0 -6
  139. package/node_modules/ajv/dist/runtime/re2.js +0 -6
  140. package/node_modules/ajv/dist/runtime/re2.js.map +0 -1
  141. package/node_modules/ajv/dist/runtime/timestamp.d.ts +0 -5
  142. package/node_modules/ajv/dist/runtime/timestamp.js +0 -42
  143. package/node_modules/ajv/dist/runtime/timestamp.js.map +0 -1
  144. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +0 -5
  145. package/node_modules/ajv/dist/runtime/ucs2length.js +0 -24
  146. package/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  147. package/node_modules/ajv/dist/runtime/uri.d.ts +0 -6
  148. package/node_modules/ajv/dist/runtime/uri.js +0 -6
  149. package/node_modules/ajv/dist/runtime/uri.js.map +0 -1
  150. package/node_modules/ajv/dist/runtime/validation_error.d.ts +0 -7
  151. package/node_modules/ajv/dist/runtime/validation_error.js +0 -11
  152. package/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
  153. package/node_modules/ajv/dist/standalone/index.d.ts +0 -6
  154. package/node_modules/ajv/dist/standalone/index.js +0 -90
  155. package/node_modules/ajv/dist/standalone/index.js.map +0 -1
  156. package/node_modules/ajv/dist/standalone/instance.d.ts +0 -12
  157. package/node_modules/ajv/dist/standalone/instance.js +0 -35
  158. package/node_modules/ajv/dist/standalone/instance.js.map +0 -1
  159. package/node_modules/ajv/dist/types/index.d.ts +0 -183
  160. package/node_modules/ajv/dist/types/index.js +0 -3
  161. package/node_modules/ajv/dist/types/index.js.map +0 -1
  162. package/node_modules/ajv/dist/types/json-schema.d.ts +0 -125
  163. package/node_modules/ajv/dist/types/json-schema.js +0 -3
  164. package/node_modules/ajv/dist/types/json-schema.js.map +0 -1
  165. package/node_modules/ajv/dist/types/jtd-schema.d.ts +0 -174
  166. package/node_modules/ajv/dist/types/jtd-schema.js +0 -3
  167. package/node_modules/ajv/dist/types/jtd-schema.js.map +0 -1
  168. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +0 -8
  169. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -49
  170. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
  171. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +0 -6
  172. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -106
  173. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
  174. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +0 -3
  175. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -23
  176. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
  177. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +0 -4
  178. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -12
  179. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
  180. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +0 -7
  181. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -95
  182. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
  183. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +0 -21
  184. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -85
  185. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
  186. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +0 -3
  187. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +0 -11
  188. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +0 -1
  189. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +0 -6
  190. package/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -66
  191. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
  192. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +0 -13
  193. package/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -44
  194. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
  195. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +0 -5
  196. package/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -52
  197. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
  198. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +0 -6
  199. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -30
  200. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
  201. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +0 -4
  202. package/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -26
  203. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
  204. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +0 -6
  205. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -60
  206. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
  207. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +0 -3
  208. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -75
  209. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
  210. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +0 -3
  211. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -12
  212. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
  213. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +0 -3
  214. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -54
  215. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
  216. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +0 -6
  217. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -38
  218. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
  219. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +0 -3
  220. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -13
  221. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
  222. package/node_modules/ajv/dist/vocabularies/code.d.ts +0 -17
  223. package/node_modules/ajv/dist/vocabularies/code.js +0 -131
  224. package/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
  225. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +0 -3
  226. package/node_modules/ajv/dist/vocabularies/core/id.js +0 -10
  227. package/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
  228. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +0 -3
  229. package/node_modules/ajv/dist/vocabularies/core/index.js +0 -16
  230. package/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
  231. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +0 -8
  232. package/node_modules/ajv/dist/vocabularies/core/ref.js +0 -122
  233. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
  234. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +0 -5
  235. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -104
  236. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
  237. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +0 -10
  238. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -9
  239. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
  240. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +0 -3
  241. package/node_modules/ajv/dist/vocabularies/draft2020.js +0 -23
  242. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +0 -1
  243. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +0 -3
  244. package/node_modules/ajv/dist/vocabularies/draft7.js +0 -17
  245. package/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
  246. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +0 -5
  247. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +0 -30
  248. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +0 -1
  249. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +0 -5
  250. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +0 -51
  251. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +0 -1
  252. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +0 -3
  253. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +0 -9
  254. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +0 -1
  255. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +0 -3
  256. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +0 -16
  257. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +0 -1
  258. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +0 -3
  259. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +0 -10
  260. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +0 -1
  261. package/node_modules/ajv/dist/vocabularies/errors.d.ts +0 -9
  262. package/node_modules/ajv/dist/vocabularies/errors.js +0 -3
  263. package/node_modules/ajv/dist/vocabularies/errors.js.map +0 -1
  264. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +0 -8
  265. package/node_modules/ajv/dist/vocabularies/format/format.js +0 -92
  266. package/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
  267. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +0 -3
  268. package/node_modules/ajv/dist/vocabularies/format/index.js +0 -6
  269. package/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
  270. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +0 -6
  271. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +0 -71
  272. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +0 -1
  273. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +0 -5
  274. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +0 -24
  275. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +0 -1
  276. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +0 -6
  277. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +0 -43
  278. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +0 -1
  279. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +0 -9
  280. package/node_modules/ajv/dist/vocabularies/jtd/error.js +0 -20
  281. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +0 -1
  282. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +0 -10
  283. package/node_modules/ajv/dist/vocabularies/jtd/index.js +0 -29
  284. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +0 -1
  285. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +0 -5
  286. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +0 -25
  287. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +0 -1
  288. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +0 -4
  289. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +0 -22
  290. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +0 -1
  291. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +0 -3
  292. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +0 -15
  293. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +0 -1
  294. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +0 -22
  295. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +0 -149
  296. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +0 -1
  297. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +0 -4
  298. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +0 -67
  299. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +0 -1
  300. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +0 -10
  301. package/node_modules/ajv/dist/vocabularies/jtd/type.js +0 -69
  302. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +0 -1
  303. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +0 -3
  304. package/node_modules/ajv/dist/vocabularies/jtd/union.js +0 -12
  305. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +0 -1
  306. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +0 -5
  307. package/node_modules/ajv/dist/vocabularies/jtd/values.js +0 -51
  308. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +0 -1
  309. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +0 -3
  310. package/node_modules/ajv/dist/vocabularies/metadata.js +0 -18
  311. package/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
  312. package/node_modules/ajv/dist/vocabularies/next.d.ts +0 -3
  313. package/node_modules/ajv/dist/vocabularies/next.js +0 -8
  314. package/node_modules/ajv/dist/vocabularies/next.js.map +0 -1
  315. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +0 -3
  316. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +0 -7
  317. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +0 -1
  318. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +0 -6
  319. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +0 -40
  320. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +0 -1
  321. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +0 -6
  322. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +0 -65
  323. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +0 -1
  324. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +0 -6
  325. package/node_modules/ajv/dist/vocabularies/validation/const.js +0 -25
  326. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
  327. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +0 -5
  328. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +0 -12
  329. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +0 -1
  330. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +0 -8
  331. package/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -48
  332. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
  333. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +0 -16
  334. package/node_modules/ajv/dist/vocabularies/validation/index.js +0 -33
  335. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
  336. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +0 -3
  337. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +0 -15
  338. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +0 -1
  339. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +0 -3
  340. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -24
  341. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
  342. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +0 -3
  343. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -27
  344. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
  345. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +0 -11
  346. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -27
  347. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
  348. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +0 -3
  349. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -24
  350. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
  351. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +0 -8
  352. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -26
  353. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
  354. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +0 -8
  355. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -24
  356. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
  357. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +0 -8
  358. package/node_modules/ajv/dist/vocabularies/validation/required.js +0 -79
  359. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
  360. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +0 -9
  361. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -64
  362. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
  363. package/node_modules/ajv/lib/2019.ts +0 -81
  364. package/node_modules/ajv/lib/2020.ts +0 -75
  365. package/node_modules/ajv/lib/ajv.ts +0 -70
  366. package/node_modules/ajv/lib/compile/codegen/code.ts +0 -169
  367. package/node_modules/ajv/lib/compile/codegen/index.ts +0 -852
  368. package/node_modules/ajv/lib/compile/codegen/scope.ts +0 -215
  369. package/node_modules/ajv/lib/compile/errors.ts +0 -184
  370. package/node_modules/ajv/lib/compile/index.ts +0 -324
  371. package/node_modules/ajv/lib/compile/jtd/parse.ts +0 -411
  372. package/node_modules/ajv/lib/compile/jtd/serialize.ts +0 -266
  373. package/node_modules/ajv/lib/compile/jtd/types.ts +0 -16
  374. package/node_modules/ajv/lib/compile/names.ts +0 -27
  375. package/node_modules/ajv/lib/compile/ref_error.ts +0 -13
  376. package/node_modules/ajv/lib/compile/resolve.ts +0 -149
  377. package/node_modules/ajv/lib/compile/rules.ts +0 -50
  378. package/node_modules/ajv/lib/compile/util.ts +0 -213
  379. package/node_modules/ajv/lib/compile/validate/applicability.ts +0 -22
  380. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +0 -47
  381. package/node_modules/ajv/lib/compile/validate/dataType.ts +0 -230
  382. package/node_modules/ajv/lib/compile/validate/defaults.ts +0 -32
  383. package/node_modules/ajv/lib/compile/validate/index.ts +0 -582
  384. package/node_modules/ajv/lib/compile/validate/keyword.ts +0 -171
  385. package/node_modules/ajv/lib/compile/validate/subschema.ts +0 -135
  386. package/node_modules/ajv/lib/core.ts +0 -891
  387. package/node_modules/ajv/lib/jtd.ts +0 -132
  388. package/node_modules/ajv/lib/refs/data.json +0 -13
  389. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +0 -28
  390. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +0 -53
  391. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +0 -17
  392. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +0 -57
  393. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +0 -14
  394. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +0 -37
  395. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +0 -90
  396. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +0 -39
  397. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +0 -30
  398. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +0 -48
  399. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +0 -17
  400. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +0 -51
  401. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +0 -14
  402. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +0 -37
  403. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +0 -15
  404. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +0 -90
  405. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +0 -55
  406. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -137
  407. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -151
  408. package/node_modules/ajv/lib/refs/json-schema-secure.json +0 -88
  409. package/node_modules/ajv/lib/refs/jtd-schema.ts +0 -130
  410. package/node_modules/ajv/lib/runtime/equal.ts +0 -7
  411. package/node_modules/ajv/lib/runtime/parseJson.ts +0 -177
  412. package/node_modules/ajv/lib/runtime/quote.ts +0 -31
  413. package/node_modules/ajv/lib/runtime/re2.ts +0 -6
  414. package/node_modules/ajv/lib/runtime/timestamp.ts +0 -46
  415. package/node_modules/ajv/lib/runtime/ucs2length.ts +0 -20
  416. package/node_modules/ajv/lib/runtime/uri.ts +0 -6
  417. package/node_modules/ajv/lib/runtime/validation_error.ts +0 -13
  418. package/node_modules/ajv/lib/standalone/index.ts +0 -100
  419. package/node_modules/ajv/lib/standalone/instance.ts +0 -36
  420. package/node_modules/ajv/lib/types/index.ts +0 -244
  421. package/node_modules/ajv/lib/types/json-schema.ts +0 -187
  422. package/node_modules/ajv/lib/types/jtd-schema.ts +0 -273
  423. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +0 -56
  424. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +0 -118
  425. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +0 -22
  426. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +0 -14
  427. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +0 -109
  428. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +0 -112
  429. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +0 -11
  430. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +0 -80
  431. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +0 -53
  432. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +0 -59
  433. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +0 -36
  434. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +0 -38
  435. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +0 -82
  436. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +0 -91
  437. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +0 -12
  438. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +0 -57
  439. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +0 -50
  440. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +0 -13
  441. package/node_modules/ajv/lib/vocabularies/code.ts +0 -168
  442. package/node_modules/ajv/lib/vocabularies/core/id.ts +0 -10
  443. package/node_modules/ajv/lib/vocabularies/core/index.ts +0 -16
  444. package/node_modules/ajv/lib/vocabularies/core/ref.ts +0 -129
  445. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +0 -113
  446. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +0 -12
  447. package/node_modules/ajv/lib/vocabularies/draft2020.ts +0 -23
  448. package/node_modules/ajv/lib/vocabularies/draft7.ts +0 -17
  449. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +0 -31
  450. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +0 -51
  451. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +0 -9
  452. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +0 -14
  453. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +0 -10
  454. package/node_modules/ajv/lib/vocabularies/errors.ts +0 -18
  455. package/node_modules/ajv/lib/vocabularies/format/format.ts +0 -120
  456. package/node_modules/ajv/lib/vocabularies/format/index.ts +0 -6
  457. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +0 -89
  458. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +0 -32
  459. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +0 -45
  460. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +0 -23
  461. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +0 -37
  462. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +0 -24
  463. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +0 -21
  464. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +0 -15
  465. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +0 -184
  466. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +0 -76
  467. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +0 -75
  468. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +0 -12
  469. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +0 -58
  470. package/node_modules/ajv/lib/vocabularies/metadata.ts +0 -17
  471. package/node_modules/ajv/lib/vocabularies/next.ts +0 -8
  472. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +0 -7
  473. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +0 -47
  474. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +0 -85
  475. package/node_modules/ajv/lib/vocabularies/validation/const.ts +0 -28
  476. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +0 -23
  477. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +0 -54
  478. package/node_modules/ajv/lib/vocabularies/validation/index.ts +0 -49
  479. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +0 -16
  480. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +0 -26
  481. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +0 -30
  482. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +0 -42
  483. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +0 -26
  484. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +0 -34
  485. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +0 -28
  486. package/node_modules/ajv/lib/vocabularies/validation/required.ts +0 -98
  487. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +0 -79
  488. package/node_modules/ajv/package.json +0 -126
  489. package/node_modules/fast-deep-equal/LICENSE +0 -21
  490. package/node_modules/fast-deep-equal/README.md +0 -96
  491. package/node_modules/fast-deep-equal/es6/index.d.ts +0 -2
  492. package/node_modules/fast-deep-equal/es6/index.js +0 -72
  493. package/node_modules/fast-deep-equal/es6/react.d.ts +0 -2
  494. package/node_modules/fast-deep-equal/es6/react.js +0 -79
  495. package/node_modules/fast-deep-equal/index.d.ts +0 -4
  496. package/node_modules/fast-deep-equal/index.js +0 -46
  497. package/node_modules/fast-deep-equal/package.json +0 -61
  498. package/node_modules/fast-deep-equal/react.d.ts +0 -2
  499. package/node_modules/fast-deep-equal/react.js +0 -53
  500. package/node_modules/fast-uri/.gitattributes +0 -2
  501. package/node_modules/fast-uri/.github/.stale.yml +0 -21
  502. package/node_modules/fast-uri/.github/dependabot.yml +0 -13
  503. package/node_modules/fast-uri/.github/tests_checker.yml +0 -8
  504. package/node_modules/fast-uri/.github/workflows/ci.yml +0 -101
  505. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +0 -24
  506. package/node_modules/fast-uri/LICENSE +0 -32
  507. package/node_modules/fast-uri/README.md +0 -143
  508. package/node_modules/fast-uri/benchmark/benchmark.mjs +0 -159
  509. package/node_modules/fast-uri/benchmark/equal.mjs +0 -51
  510. package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +0 -22
  511. package/node_modules/fast-uri/benchmark/package.json +0 -17
  512. package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +0 -24
  513. package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +0 -65
  514. package/node_modules/fast-uri/eslint.config.js +0 -6
  515. package/node_modules/fast-uri/index.js +0 -340
  516. package/node_modules/fast-uri/lib/schemes.js +0 -267
  517. package/node_modules/fast-uri/lib/utils.js +0 -336
  518. package/node_modules/fast-uri/package.json +0 -69
  519. package/node_modules/fast-uri/test/ajv.test.js +0 -43
  520. package/node_modules/fast-uri/test/equal.test.js +0 -108
  521. package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +0 -501
  522. package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +0 -120
  523. package/node_modules/fast-uri/test/parse.test.js +0 -318
  524. package/node_modules/fast-uri/test/resolve.test.js +0 -78
  525. package/node_modules/fast-uri/test/rfc-3986.test.js +0 -90
  526. package/node_modules/fast-uri/test/serialize.test.js +0 -151
  527. package/node_modules/fast-uri/test/uri-js-compatibility.test.js +0 -33
  528. package/node_modules/fast-uri/test/uri-js.test.js +0 -912
  529. package/node_modules/fast-uri/test/util.test.js +0 -38
  530. package/node_modules/fast-uri/tsconfig.json +0 -9
  531. package/node_modules/fast-uri/types/index.d.ts +0 -60
  532. package/node_modules/fast-uri/types/index.test-d.ts +0 -17
  533. package/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  534. package/node_modules/json-schema-traverse/.github/FUNDING.yml +0 -2
  535. package/node_modules/json-schema-traverse/.github/workflows/build.yml +0 -28
  536. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +0 -27
  537. package/node_modules/json-schema-traverse/LICENSE +0 -21
  538. package/node_modules/json-schema-traverse/README.md +0 -95
  539. package/node_modules/json-schema-traverse/index.d.ts +0 -40
  540. package/node_modules/json-schema-traverse/index.js +0 -93
  541. package/node_modules/json-schema-traverse/package.json +0 -43
  542. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  543. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  544. package/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
  545. package/node_modules/require-from-string/index.js +0 -34
  546. package/node_modules/require-from-string/license +0 -21
  547. package/node_modules/require-from-string/package.json +0 -28
  548. package/node_modules/require-from-string/readme.md +0 -56
@@ -1,582 +0,0 @@
1
- import type {
2
- AddedKeywordDefinition,
3
- AnySchema,
4
- AnySchemaObject,
5
- KeywordErrorCxt,
6
- KeywordCxtParams,
7
- } from "../../types"
8
- import type {SchemaCxt, SchemaObjCxt} from ".."
9
- import type {InstanceOptions} from "../../core"
10
- import {boolOrEmptySchema, topBoolOrEmptySchema} from "./boolSchema"
11
- import {coerceAndCheckDataType, getSchemaTypes} from "./dataType"
12
- import {shouldUseGroup, shouldUseRule} from "./applicability"
13
- import {checkDataType, checkDataTypes, reportTypeError, DataType} from "./dataType"
14
- import {assignDefaults} from "./defaults"
15
- import {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from "./keyword"
16
- import {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from "./subschema"
17
- import {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from "../codegen"
18
- import N from "../names"
19
- import {resolveUrl} from "../resolve"
20
- import {
21
- schemaRefOrVal,
22
- schemaHasRulesButRef,
23
- checkUnknownRules,
24
- checkStrictMode,
25
- unescapeJsonPointer,
26
- mergeEvaluated,
27
- } from "../util"
28
- import type {JSONType, Rule, RuleGroup} from "../rules"
29
- import {
30
- ErrorPaths,
31
- reportError,
32
- reportExtraError,
33
- resetErrorsCount,
34
- keyword$DataError,
35
- } from "../errors"
36
-
37
- // schema compilation - generates validation function, subschemaCode (below) is used for subschemas
38
- export function validateFunctionCode(it: SchemaCxt): void {
39
- if (isSchemaObj(it)) {
40
- checkKeywords(it)
41
- if (schemaCxtHasRules(it)) {
42
- topSchemaObjCode(it)
43
- return
44
- }
45
- }
46
- validateFunction(it, () => topBoolOrEmptySchema(it))
47
- }
48
-
49
- function validateFunction(
50
- {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,
51
- body: Block
52
- ): void {
53
- if (opts.code.es5) {
54
- gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {
55
- gen.code(_`"use strict"; ${funcSourceUrl(schema, opts)}`)
56
- destructureValCxtES5(gen, opts)
57
- gen.code(body)
58
- })
59
- } else {
60
- gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>
61
- gen.code(funcSourceUrl(schema, opts)).code(body)
62
- )
63
- }
64
- }
65
-
66
- function destructureValCxt(opts: InstanceOptions): Code {
67
- return _`{${N.instancePath}="", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${
68
- N.data
69
- }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`
70
- }
71
-
72
- function destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {
73
- gen.if(
74
- N.valCxt,
75
- () => {
76
- gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)
77
- gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)
78
- gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)
79
- gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)
80
- if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)
81
- },
82
- () => {
83
- gen.var(N.instancePath, _`""`)
84
- gen.var(N.parentData, _`undefined`)
85
- gen.var(N.parentDataProperty, _`undefined`)
86
- gen.var(N.rootData, N.data)
87
- if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)
88
- }
89
- )
90
- }
91
-
92
- function topSchemaObjCode(it: SchemaObjCxt): void {
93
- const {schema, opts, gen} = it
94
- validateFunction(it, () => {
95
- if (opts.$comment && schema.$comment) commentKeyword(it)
96
- checkNoDefault(it)
97
- gen.let(N.vErrors, null)
98
- gen.let(N.errors, 0)
99
- if (opts.unevaluated) resetEvaluated(it)
100
- typeAndKeywords(it)
101
- returnResults(it)
102
- })
103
- return
104
- }
105
-
106
- function resetEvaluated(it: SchemaObjCxt): void {
107
- // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated
108
- const {gen, validateName} = it
109
- it.evaluated = gen.const("evaluated", _`${validateName}.evaluated`)
110
- gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))
111
- gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))
112
- }
113
-
114
- function funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {
115
- const schId = typeof schema == "object" && schema[opts.schemaId]
116
- return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil
117
- }
118
-
119
- // schema compilation - this function is used recursively to generate code for sub-schemas
120
- function subschemaCode(it: SchemaCxt, valid: Name): void {
121
- if (isSchemaObj(it)) {
122
- checkKeywords(it)
123
- if (schemaCxtHasRules(it)) {
124
- subSchemaObjCode(it, valid)
125
- return
126
- }
127
- }
128
- boolOrEmptySchema(it, valid)
129
- }
130
-
131
- function schemaCxtHasRules({schema, self}: SchemaCxt): boolean {
132
- if (typeof schema == "boolean") return !schema
133
- for (const key in schema) if (self.RULES.all[key]) return true
134
- return false
135
- }
136
-
137
- function isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {
138
- return typeof it.schema != "boolean"
139
- }
140
-
141
- function subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {
142
- const {schema, gen, opts} = it
143
- if (opts.$comment && schema.$comment) commentKeyword(it)
144
- updateContext(it)
145
- checkAsyncSchema(it)
146
- const errsCount = gen.const("_errs", N.errors)
147
- typeAndKeywords(it, errsCount)
148
- // TODO var
149
- gen.var(valid, _`${errsCount} === ${N.errors}`)
150
- }
151
-
152
- function checkKeywords(it: SchemaObjCxt): void {
153
- checkUnknownRules(it)
154
- checkRefsAndKeywords(it)
155
- }
156
-
157
- function typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {
158
- if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)
159
- const types = getSchemaTypes(it.schema)
160
- const checkedTypes = coerceAndCheckDataType(it, types)
161
- schemaKeywords(it, types, !checkedTypes, errsCount)
162
- }
163
-
164
- function checkRefsAndKeywords(it: SchemaObjCxt): void {
165
- const {schema, errSchemaPath, opts, self} = it
166
- if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {
167
- self.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`)
168
- }
169
- }
170
-
171
- function checkNoDefault(it: SchemaObjCxt): void {
172
- const {schema, opts} = it
173
- if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {
174
- checkStrictMode(it, "default is ignored in the schema root")
175
- }
176
- }
177
-
178
- function updateContext(it: SchemaObjCxt): void {
179
- const schId = it.schema[it.opts.schemaId]
180
- if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)
181
- }
182
-
183
- function checkAsyncSchema(it: SchemaObjCxt): void {
184
- if (it.schema.$async && !it.schemaEnv.$async) throw new Error("async schema in sync schema")
185
- }
186
-
187
- function commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {
188
- const msg = schema.$comment
189
- if (opts.$comment === true) {
190
- gen.code(_`${N.self}.logger.log(${msg})`)
191
- } else if (typeof opts.$comment == "function") {
192
- const schemaPath = str`${errSchemaPath}/$comment`
193
- const rootName = gen.scopeValue("root", {ref: schemaEnv.root})
194
- gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)
195
- }
196
- }
197
-
198
- function returnResults(it: SchemaCxt): void {
199
- const {gen, schemaEnv, validateName, ValidationError, opts} = it
200
- if (schemaEnv.$async) {
201
- // TODO assign unevaluated
202
- gen.if(
203
- _`${N.errors} === 0`,
204
- () => gen.return(N.data),
205
- () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)
206
- )
207
- } else {
208
- gen.assign(_`${validateName}.errors`, N.vErrors)
209
- if (opts.unevaluated) assignEvaluated(it)
210
- gen.return(_`${N.errors} === 0`)
211
- }
212
- }
213
-
214
- function assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {
215
- if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)
216
- if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)
217
- }
218
-
219
- function schemaKeywords(
220
- it: SchemaObjCxt,
221
- types: JSONType[],
222
- typeErrors: boolean,
223
- errsCount?: Name
224
- ): void {
225
- const {gen, schema, data, allErrors, opts, self} = it
226
- const {RULES} = self
227
- if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {
228
- gen.block(() => keywordCode(it, "$ref", (RULES.all.$ref as Rule).definition)) // TODO typecast
229
- return
230
- }
231
- if (!opts.jtd) checkStrictTypes(it, types)
232
- gen.block(() => {
233
- for (const group of RULES.rules) groupKeywords(group)
234
- groupKeywords(RULES.post)
235
- })
236
-
237
- function groupKeywords(group: RuleGroup): void {
238
- if (!shouldUseGroup(schema, group)) return
239
- if (group.type) {
240
- gen.if(checkDataType(group.type, data, opts.strictNumbers))
241
- iterateKeywords(it, group)
242
- if (types.length === 1 && types[0] === group.type && typeErrors) {
243
- gen.else()
244
- reportTypeError(it)
245
- }
246
- gen.endIf()
247
- } else {
248
- iterateKeywords(it, group)
249
- }
250
- // TODO make it "ok" call?
251
- if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)
252
- }
253
- }
254
-
255
- function iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {
256
- const {
257
- gen,
258
- schema,
259
- opts: {useDefaults},
260
- } = it
261
- if (useDefaults) assignDefaults(it, group.type)
262
- gen.block(() => {
263
- for (const rule of group.rules) {
264
- if (shouldUseRule(schema, rule)) {
265
- keywordCode(it, rule.keyword, rule.definition, group.type)
266
- }
267
- }
268
- })
269
- }
270
-
271
- function checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {
272
- if (it.schemaEnv.meta || !it.opts.strictTypes) return
273
- checkContextTypes(it, types)
274
- if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)
275
- checkKeywordTypes(it, it.dataTypes)
276
- }
277
-
278
- function checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {
279
- if (!types.length) return
280
- if (!it.dataTypes.length) {
281
- it.dataTypes = types
282
- return
283
- }
284
- types.forEach((t) => {
285
- if (!includesType(it.dataTypes, t)) {
286
- strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`)
287
- }
288
- })
289
- narrowSchemaTypes(it, types)
290
- }
291
-
292
- function checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {
293
- if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) {
294
- strictTypesError(it, "use allowUnionTypes to allow union type keyword")
295
- }
296
- }
297
-
298
- function checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {
299
- const rules = it.self.RULES.all
300
- for (const keyword in rules) {
301
- const rule = rules[keyword]
302
- if (typeof rule == "object" && shouldUseRule(it.schema, rule)) {
303
- const {type} = rule.definition
304
- if (type.length && !type.some((t) => hasApplicableType(ts, t))) {
305
- strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`)
306
- }
307
- }
308
- }
309
- }
310
-
311
- function hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {
312
- return schTs.includes(kwdT) || (kwdT === "number" && schTs.includes("integer"))
313
- }
314
-
315
- function includesType(ts: JSONType[], t: JSONType): boolean {
316
- return ts.includes(t) || (t === "integer" && ts.includes("number"))
317
- }
318
-
319
- function narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {
320
- const ts: JSONType[] = []
321
- for (const t of it.dataTypes) {
322
- if (includesType(withTypes, t)) ts.push(t)
323
- else if (withTypes.includes("integer") && t === "number") ts.push("integer")
324
- }
325
- it.dataTypes = ts
326
- }
327
-
328
- function strictTypesError(it: SchemaObjCxt, msg: string): void {
329
- const schemaPath = it.schemaEnv.baseId + it.errSchemaPath
330
- msg += ` at "${schemaPath}" (strictTypes)`
331
- checkStrictMode(it, msg, it.opts.strictTypes)
332
- }
333
-
334
- export class KeywordCxt implements KeywordErrorCxt {
335
- readonly gen: CodeGen
336
- readonly allErrors?: boolean
337
- readonly keyword: string
338
- readonly data: Name // Name referencing the current level of the data instance
339
- readonly $data?: string | false
340
- schema: any // keyword value in the schema
341
- readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value
342
- readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)
343
- readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema
344
- readonly parentSchema: AnySchemaObject
345
- readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,
346
- // requires option trackErrors in keyword definition
347
- params: KeywordCxtParams // object to pass parameters to error messages from keyword code
348
- readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)
349
- readonly def: AddedKeywordDefinition
350
-
351
- constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {
352
- validateKeywordUsage(it, def, keyword)
353
- this.gen = it.gen
354
- this.allErrors = it.allErrors
355
- this.keyword = keyword
356
- this.data = it.data
357
- this.schema = it.schema[keyword]
358
- this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data
359
- this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)
360
- this.schemaType = def.schemaType
361
- this.parentSchema = it.schema
362
- this.params = {}
363
- this.it = it
364
- this.def = def
365
-
366
- if (this.$data) {
367
- this.schemaCode = it.gen.const("vSchema", getData(this.$data, it))
368
- } else {
369
- this.schemaCode = this.schemaValue
370
- if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {
371
- throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)
372
- }
373
- }
374
-
375
- if ("code" in def ? def.trackErrors : def.errors !== false) {
376
- this.errsCount = it.gen.const("_errs", N.errors)
377
- }
378
- }
379
-
380
- result(condition: Code, successAction?: () => void, failAction?: () => void): void {
381
- this.failResult(not(condition), successAction, failAction)
382
- }
383
-
384
- failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {
385
- this.gen.if(condition)
386
- if (failAction) failAction()
387
- else this.error()
388
- if (successAction) {
389
- this.gen.else()
390
- successAction()
391
- if (this.allErrors) this.gen.endIf()
392
- } else {
393
- if (this.allErrors) this.gen.endIf()
394
- else this.gen.else()
395
- }
396
- }
397
-
398
- pass(condition: Code, failAction?: () => void): void {
399
- this.failResult(not(condition), undefined, failAction)
400
- }
401
-
402
- fail(condition?: Code): void {
403
- if (condition === undefined) {
404
- this.error()
405
- if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize
406
- return
407
- }
408
- this.gen.if(condition)
409
- this.error()
410
- if (this.allErrors) this.gen.endIf()
411
- else this.gen.else()
412
- }
413
-
414
- fail$data(condition: Code): void {
415
- if (!this.$data) return this.fail(condition)
416
- const {schemaCode} = this
417
- this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)
418
- }
419
-
420
- error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {
421
- if (errorParams) {
422
- this.setParams(errorParams)
423
- this._error(append, errorPaths)
424
- this.setParams({})
425
- return
426
- }
427
- this._error(append, errorPaths)
428
- }
429
-
430
- private _error(append?: boolean, errorPaths?: ErrorPaths): void {
431
- ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)
432
- }
433
-
434
- $dataError(): void {
435
- reportError(this, this.def.$dataError || keyword$DataError)
436
- }
437
-
438
- reset(): void {
439
- if (this.errsCount === undefined) throw new Error('add "trackErrors" to keyword definition')
440
- resetErrorsCount(this.gen, this.errsCount)
441
- }
442
-
443
- ok(cond: Code | boolean): void {
444
- if (!this.allErrors) this.gen.if(cond)
445
- }
446
-
447
- setParams(obj: KeywordCxtParams, assign?: true): void {
448
- if (assign) Object.assign(this.params, obj)
449
- else this.params = obj
450
- }
451
-
452
- block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {
453
- this.gen.block(() => {
454
- this.check$data(valid, $dataValid)
455
- codeBlock()
456
- })
457
- }
458
-
459
- check$data(valid: Name = nil, $dataValid: Code = nil): void {
460
- if (!this.$data) return
461
- const {gen, schemaCode, schemaType, def} = this
462
- gen.if(or(_`${schemaCode} === undefined`, $dataValid))
463
- if (valid !== nil) gen.assign(valid, true)
464
- if (schemaType.length || def.validateSchema) {
465
- gen.elseIf(this.invalid$data())
466
- this.$dataError()
467
- if (valid !== nil) gen.assign(valid, false)
468
- }
469
- gen.else()
470
- }
471
-
472
- invalid$data(): Code {
473
- const {gen, schemaCode, schemaType, def, it} = this
474
- return or(wrong$DataType(), invalid$DataSchema())
475
-
476
- function wrong$DataType(): Code {
477
- if (schemaType.length) {
478
- /* istanbul ignore if */
479
- if (!(schemaCode instanceof Name)) throw new Error("ajv implementation error")
480
- const st = Array.isArray(schemaType) ? schemaType : [schemaType]
481
- return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`
482
- }
483
- return nil
484
- }
485
-
486
- function invalid$DataSchema(): Code {
487
- if (def.validateSchema) {
488
- const validateSchemaRef = gen.scopeValue("validate$data", {ref: def.validateSchema}) // TODO value.code for standalone
489
- return _`!${validateSchemaRef}(${schemaCode})`
490
- }
491
- return nil
492
- }
493
- }
494
-
495
- subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {
496
- const subschema = getSubschema(this.it, appl)
497
- extendSubschemaData(subschema, this.it, appl)
498
- extendSubschemaMode(subschema, appl)
499
- const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}
500
- subschemaCode(nextContext, valid)
501
- return nextContext
502
- }
503
-
504
- mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {
505
- const {it, gen} = this
506
- if (!it.opts.unevaluated) return
507
- if (it.props !== true && schemaCxt.props !== undefined) {
508
- it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)
509
- }
510
- if (it.items !== true && schemaCxt.items !== undefined) {
511
- it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)
512
- }
513
- }
514
-
515
- mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {
516
- const {it, gen} = this
517
- if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {
518
- gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))
519
- return true
520
- }
521
- }
522
- }
523
-
524
- function keywordCode(
525
- it: SchemaObjCxt,
526
- keyword: string,
527
- def: AddedKeywordDefinition,
528
- ruleType?: JSONType
529
- ): void {
530
- const cxt = new KeywordCxt(it, def, keyword)
531
- if ("code" in def) {
532
- def.code(cxt, ruleType)
533
- } else if (cxt.$data && def.validate) {
534
- funcKeywordCode(cxt, def)
535
- } else if ("macro" in def) {
536
- macroKeywordCode(cxt, def)
537
- } else if (def.compile || def.validate) {
538
- funcKeywordCode(cxt, def)
539
- }
540
- }
541
-
542
- const JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/
543
- const RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/
544
- export function getData(
545
- $data: string,
546
- {dataLevel, dataNames, dataPathArr}: SchemaCxt
547
- ): Code | number {
548
- let jsonPointer
549
- let data: Code
550
- if ($data === "") return N.rootData
551
- if ($data[0] === "/") {
552
- if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)
553
- jsonPointer = $data
554
- data = N.rootData
555
- } else {
556
- const matches = RELATIVE_JSON_POINTER.exec($data)
557
- if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)
558
- const up: number = +matches[1]
559
- jsonPointer = matches[2]
560
- if (jsonPointer === "#") {
561
- if (up >= dataLevel) throw new Error(errorMsg("property/index", up))
562
- return dataPathArr[dataLevel - up]
563
- }
564
- if (up > dataLevel) throw new Error(errorMsg("data", up))
565
- data = dataNames[dataLevel - up]
566
- if (!jsonPointer) return data
567
- }
568
-
569
- let expr = data
570
- const segments = jsonPointer.split("/")
571
- for (const segment of segments) {
572
- if (segment) {
573
- data = _`${data}${getProperty(unescapeJsonPointer(segment))}`
574
- expr = _`${expr} && ${data}`
575
- }
576
- }
577
- return expr
578
-
579
- function errorMsg(pointerType: string, up: number): string {
580
- return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`
581
- }
582
- }