@nikovirtala/projen-constructs 0.2.1 → 0.2.3

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 (581) hide show
  1. package/.jsii +3 -2
  2. package/lib/components/typedoc.js +1 -1
  3. package/lib/components/vitest.js +1 -1
  4. package/lib/project-generator.js +1 -1
  5. package/lib/projects/awscdk-construct-library.generated.js +1 -1
  6. package/lib/projects/awscdk-typescript-app.generated.js +1 -1
  7. package/lib/projects/jsii.generated.js +1 -1
  8. package/lib/projects/typescript.generated.js +1 -1
  9. package/node_modules/@jsii/spec/LICENSE +202 -0
  10. package/node_modules/@jsii/spec/NOTICE +2 -0
  11. package/node_modules/@jsii/spec/README.md +13 -0
  12. package/node_modules/@jsii/spec/jest.config.mjs +9 -0
  13. package/node_modules/@jsii/spec/lib/assembly-utils.d.ts +59 -0
  14. package/node_modules/@jsii/spec/lib/assembly-utils.js +158 -0
  15. package/node_modules/@jsii/spec/lib/assembly.d.ts +920 -0
  16. package/node_modules/@jsii/spec/lib/assembly.js +203 -0
  17. package/node_modules/@jsii/spec/lib/configuration.d.ts +147 -0
  18. package/node_modules/@jsii/spec/lib/configuration.js +3 -0
  19. package/node_modules/@jsii/spec/lib/index.d.ts +7 -0
  20. package/node_modules/@jsii/spec/lib/index.js +23 -0
  21. package/node_modules/@jsii/spec/lib/name-tree.d.ts +60 -0
  22. package/node_modules/@jsii/spec/lib/name-tree.js +84 -0
  23. package/node_modules/@jsii/spec/lib/redirect.d.ts +33 -0
  24. package/node_modules/@jsii/spec/lib/redirect.js +46 -0
  25. package/node_modules/@jsii/spec/lib/validate-assembly.d.ts +4 -0
  26. package/node_modules/@jsii/spec/lib/validate-assembly.js +29 -0
  27. package/node_modules/@jsii/spec/package.json +41 -0
  28. package/node_modules/@jsii/spec/schema/assembly-redirect.schema.json +29 -0
  29. package/node_modules/@jsii/spec/schema/jsii-spec.schema.json +1110 -0
  30. package/node_modules/@mrgrain/jsii-struct-builder/LICENSE +202 -0
  31. package/node_modules/@mrgrain/jsii-struct-builder/README.md +387 -0
  32. package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/index.d.ts +1 -0
  33. package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/index.js +18 -0
  34. package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/struct.d.ts +144 -0
  35. package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/struct.js +163 -0
  36. package/node_modules/@mrgrain/jsii-struct-builder/lib/index.d.ts +3 -0
  37. package/node_modules/@mrgrain/jsii-struct-builder/lib/index.js +20 -0
  38. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/assembly.d.ts +2 -0
  39. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/assembly.js +76 -0
  40. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/index.d.ts +2 -0
  41. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/index.js +19 -0
  42. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/utils.d.ts +2 -0
  43. package/node_modules/@mrgrain/jsii-struct-builder/lib/private/utils.js +14 -0
  44. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/index.d.ts +2 -0
  45. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/index.js +19 -0
  46. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/projen-struct.d.ts +90 -0
  47. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/projen-struct.js +112 -0
  48. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/ts-interface.d.ts +15 -0
  49. package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/ts-interface.js +18 -0
  50. package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/index.d.ts +1 -0
  51. package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/index.js +18 -0
  52. package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/typescript.d.ts +53 -0
  53. package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/typescript.js +194 -0
  54. package/node_modules/@mrgrain/jsii-struct-builder/package.json +116 -0
  55. package/node_modules/ajv/.runkit_example.js +23 -0
  56. package/node_modules/ajv/LICENSE +22 -0
  57. package/node_modules/ajv/README.md +207 -0
  58. package/node_modules/ajv/dist/2019.d.ts +19 -0
  59. package/node_modules/ajv/dist/2019.js +61 -0
  60. package/node_modules/ajv/dist/2019.js.map +1 -0
  61. package/node_modules/ajv/dist/2020.d.ts +19 -0
  62. package/node_modules/ajv/dist/2020.js +55 -0
  63. package/node_modules/ajv/dist/2020.js.map +1 -0
  64. package/node_modules/ajv/dist/ajv.d.ts +18 -0
  65. package/node_modules/ajv/dist/ajv.js +50 -0
  66. package/node_modules/ajv/dist/ajv.js.map +1 -0
  67. package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
  68. package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  69. package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  70. package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  71. package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  72. package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  73. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  74. package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  75. package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  76. package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  77. package/node_modules/ajv/dist/compile/errors.js +123 -0
  78. package/node_modules/ajv/dist/compile/errors.js.map +1 -0
  79. package/node_modules/ajv/dist/compile/index.d.ts +80 -0
  80. package/node_modules/ajv/dist/compile/index.js +242 -0
  81. package/node_modules/ajv/dist/compile/index.js.map +1 -0
  82. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  83. package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  84. package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
  85. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  86. package/node_modules/ajv/dist/compile/jtd/serialize.js +229 -0
  87. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
  88. package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  89. package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  90. package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
  91. package/node_modules/ajv/dist/compile/names.d.ts +20 -0
  92. package/node_modules/ajv/dist/compile/names.js +28 -0
  93. package/node_modules/ajv/dist/compile/names.js.map +1 -0
  94. package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
  95. package/node_modules/ajv/dist/compile/ref_error.js +12 -0
  96. package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  97. package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  98. package/node_modules/ajv/dist/compile/resolve.js +155 -0
  99. package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  100. package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  101. package/node_modules/ajv/dist/compile/rules.js +26 -0
  102. package/node_modules/ajv/dist/compile/rules.js.map +1 -0
  103. package/node_modules/ajv/dist/compile/util.d.ts +40 -0
  104. package/node_modules/ajv/dist/compile/util.js +178 -0
  105. package/node_modules/ajv/dist/compile/util.js.map +1 -0
  106. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  107. package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  108. package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  109. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  110. package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  111. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  112. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  113. package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  114. package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  115. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  116. package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  117. package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  118. package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  119. package/node_modules/ajv/dist/compile/validate/index.js +520 -0
  120. package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  121. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  122. package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  123. package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  124. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  125. package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  126. package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  127. package/node_modules/ajv/dist/core.d.ts +173 -0
  128. package/node_modules/ajv/dist/core.js +618 -0
  129. package/node_modules/ajv/dist/core.js.map +1 -0
  130. package/node_modules/ajv/dist/jtd.d.ts +47 -0
  131. package/node_modules/ajv/dist/jtd.js +72 -0
  132. package/node_modules/ajv/dist/jtd.js.map +1 -0
  133. package/node_modules/ajv/dist/refs/data.json +13 -0
  134. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  135. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  136. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
  137. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  138. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  139. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  140. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  141. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  142. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  143. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  144. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  145. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  146. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
  147. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  148. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  149. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  150. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  151. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  152. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  153. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  154. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  155. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  156. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  157. package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  158. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  159. package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  160. package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
  161. package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  162. package/node_modules/ajv/dist/runtime/equal.js +7 -0
  163. package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  164. package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  165. package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
  166. package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
  167. package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  168. package/node_modules/ajv/dist/runtime/quote.js +30 -0
  169. package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
  170. package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  171. package/node_modules/ajv/dist/runtime/re2.js +6 -0
  172. package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
  173. package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  174. package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  175. package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
  176. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  177. package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  178. package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  179. package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
  180. package/node_modules/ajv/dist/runtime/uri.js +6 -0
  181. package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  182. package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  183. package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  184. package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  185. package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  186. package/node_modules/ajv/dist/standalone/index.js +90 -0
  187. package/node_modules/ajv/dist/standalone/index.js.map +1 -0
  188. package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  189. package/node_modules/ajv/dist/standalone/instance.js +35 -0
  190. package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
  191. package/node_modules/ajv/dist/types/index.d.ts +183 -0
  192. package/node_modules/ajv/dist/types/index.js +3 -0
  193. package/node_modules/ajv/dist/types/index.js.map +1 -0
  194. package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
  195. package/node_modules/ajv/dist/types/json-schema.js +3 -0
  196. package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
  197. package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
  198. package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  199. package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
  200. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  201. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  202. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  203. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  204. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  205. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  206. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  207. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  208. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  209. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  210. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  211. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  212. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  213. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  214. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  215. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  216. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  217. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  218. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  219. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  220. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
  221. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  222. package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  223. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  224. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  225. package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  226. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  227. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  228. package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  229. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  230. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  231. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  232. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  233. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  234. package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  235. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  236. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  237. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  238. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  239. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  240. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  241. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  242. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  243. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  244. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  245. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  246. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  247. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  248. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  249. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  250. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  251. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  252. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  253. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  254. package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  255. package/node_modules/ajv/dist/vocabularies/code.js +131 -0
  256. package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  257. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  258. package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  259. package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  260. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  261. package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  262. package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  263. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  264. package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  265. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  266. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  267. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  268. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  269. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  270. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  271. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  272. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  273. package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  274. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
  275. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  276. package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  277. package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  278. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  279. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  280. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
  281. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  282. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  283. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
  284. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  285. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  286. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
  287. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  288. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  289. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
  290. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  291. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  292. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
  293. package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  294. package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  295. package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
  296. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  297. package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  298. package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  299. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  300. package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  301. package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  302. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  303. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  304. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
  305. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  306. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  307. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
  308. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  309. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  310. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
  311. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  312. package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  313. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
  314. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  315. package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  316. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
  317. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  318. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  319. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
  320. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  321. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  322. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
  323. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  324. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  325. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
  326. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  327. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
  328. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
  329. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  330. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
  331. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
  332. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  333. package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  334. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
  335. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  336. package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  337. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
  338. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  339. package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
  340. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
  341. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  342. package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  343. package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  344. package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  345. package/node_modules/ajv/dist/vocabularies/next.js +8 -0
  346. package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
  347. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  348. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  349. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
  350. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  351. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  352. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
  353. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  354. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  355. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
  356. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  357. package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  358. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  359. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  360. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  361. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
  362. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  363. package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  364. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  365. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  366. package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  367. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  368. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  369. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  370. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
  371. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  372. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  373. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  374. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  375. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  376. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  377. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  378. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  379. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  380. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  381. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  382. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  383. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  384. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  385. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  386. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  387. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
  388. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  389. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  390. package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  391. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  392. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  393. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  394. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  395. package/node_modules/ajv/lib/2019.ts +81 -0
  396. package/node_modules/ajv/lib/2020.ts +75 -0
  397. package/node_modules/ajv/lib/ajv.ts +70 -0
  398. package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
  399. package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
  400. package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  401. package/node_modules/ajv/lib/compile/errors.ts +184 -0
  402. package/node_modules/ajv/lib/compile/index.ts +324 -0
  403. package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  404. package/node_modules/ajv/lib/compile/jtd/serialize.ts +266 -0
  405. package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  406. package/node_modules/ajv/lib/compile/names.ts +27 -0
  407. package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
  408. package/node_modules/ajv/lib/compile/resolve.ts +149 -0
  409. package/node_modules/ajv/lib/compile/rules.ts +50 -0
  410. package/node_modules/ajv/lib/compile/util.ts +213 -0
  411. package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  412. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  413. package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
  414. package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  415. package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
  416. package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  417. package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  418. package/node_modules/ajv/lib/core.ts +891 -0
  419. package/node_modules/ajv/lib/jtd.ts +132 -0
  420. package/node_modules/ajv/lib/refs/data.json +13 -0
  421. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  422. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  423. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  424. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  425. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  426. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  427. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  428. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  429. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  430. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  431. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  432. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  433. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  434. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  435. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  436. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  437. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  438. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  439. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  440. package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  441. package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  442. package/node_modules/ajv/lib/runtime/equal.ts +7 -0
  443. package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
  444. package/node_modules/ajv/lib/runtime/quote.ts +31 -0
  445. package/node_modules/ajv/lib/runtime/re2.ts +6 -0
  446. package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  447. package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  448. package/node_modules/ajv/lib/runtime/uri.ts +6 -0
  449. package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  450. package/node_modules/ajv/lib/standalone/index.ts +100 -0
  451. package/node_modules/ajv/lib/standalone/instance.ts +36 -0
  452. package/node_modules/ajv/lib/types/index.ts +244 -0
  453. package/node_modules/ajv/lib/types/json-schema.ts +187 -0
  454. package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
  455. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  456. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  457. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  458. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  459. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  460. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  461. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  462. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  463. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  464. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  465. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  466. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  467. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  468. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  469. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  470. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  471. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  472. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  473. package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  474. package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  475. package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  476. package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  477. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
  478. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  479. package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  480. package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  481. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  482. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  483. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  484. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  485. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  486. package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  487. package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  488. package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  489. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  490. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  491. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  492. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  493. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  494. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  495. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  496. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  497. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
  498. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
  499. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  500. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  501. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
  502. package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  503. package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  504. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  505. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  506. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  507. package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  508. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  509. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
  510. package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  511. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  512. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  513. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  514. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  515. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  516. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  517. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +28 -0
  518. package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  519. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  520. package/node_modules/ajv/package.json +126 -0
  521. package/node_modules/fast-deep-equal/LICENSE +21 -0
  522. package/node_modules/fast-deep-equal/README.md +96 -0
  523. package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
  524. package/node_modules/fast-deep-equal/es6/index.js +72 -0
  525. package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
  526. package/node_modules/fast-deep-equal/es6/react.js +79 -0
  527. package/node_modules/fast-deep-equal/index.d.ts +4 -0
  528. package/node_modules/fast-deep-equal/index.js +46 -0
  529. package/node_modules/fast-deep-equal/package.json +61 -0
  530. package/node_modules/fast-deep-equal/react.d.ts +2 -0
  531. package/node_modules/fast-deep-equal/react.js +53 -0
  532. package/node_modules/fast-uri/.gitattributes +2 -0
  533. package/node_modules/fast-uri/.github/.stale.yml +21 -0
  534. package/node_modules/fast-uri/.github/dependabot.yml +13 -0
  535. package/node_modules/fast-uri/.github/tests_checker.yml +8 -0
  536. package/node_modules/fast-uri/.github/workflows/ci.yml +101 -0
  537. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
  538. package/node_modules/fast-uri/LICENSE +32 -0
  539. package/node_modules/fast-uri/README.md +143 -0
  540. package/node_modules/fast-uri/benchmark/benchmark.mjs +159 -0
  541. package/node_modules/fast-uri/benchmark/equal.mjs +51 -0
  542. package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +22 -0
  543. package/node_modules/fast-uri/benchmark/package.json +17 -0
  544. package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +24 -0
  545. package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +65 -0
  546. package/node_modules/fast-uri/eslint.config.js +6 -0
  547. package/node_modules/fast-uri/index.js +340 -0
  548. package/node_modules/fast-uri/lib/schemes.js +267 -0
  549. package/node_modules/fast-uri/lib/utils.js +336 -0
  550. package/node_modules/fast-uri/package.json +69 -0
  551. package/node_modules/fast-uri/test/ajv.test.js +43 -0
  552. package/node_modules/fast-uri/test/equal.test.js +108 -0
  553. package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +501 -0
  554. package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +120 -0
  555. package/node_modules/fast-uri/test/parse.test.js +318 -0
  556. package/node_modules/fast-uri/test/resolve.test.js +78 -0
  557. package/node_modules/fast-uri/test/rfc-3986.test.js +90 -0
  558. package/node_modules/fast-uri/test/serialize.test.js +151 -0
  559. package/node_modules/fast-uri/test/uri-js-compatibility.test.js +33 -0
  560. package/node_modules/fast-uri/test/uri-js.test.js +912 -0
  561. package/node_modules/fast-uri/test/util.test.js +38 -0
  562. package/node_modules/fast-uri/tsconfig.json +9 -0
  563. package/node_modules/fast-uri/types/index.d.ts +60 -0
  564. package/node_modules/fast-uri/types/index.test-d.ts +17 -0
  565. package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  566. package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
  567. package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
  568. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
  569. package/node_modules/json-schema-traverse/LICENSE +21 -0
  570. package/node_modules/json-schema-traverse/README.md +95 -0
  571. package/node_modules/json-schema-traverse/index.d.ts +40 -0
  572. package/node_modules/json-schema-traverse/index.js +93 -0
  573. package/node_modules/json-schema-traverse/package.json +43 -0
  574. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  575. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  576. package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  577. package/node_modules/require-from-string/index.js +34 -0
  578. package/node_modules/require-from-string/license +21 -0
  579. package/node_modules/require-from-string/package.json +28 -0
  580. package/node_modules/require-from-string/readme.md +56 -0
  581. package/package.json +3 -2
@@ -0,0 +1,891 @@
1
+ export {
2
+ Format,
3
+ FormatDefinition,
4
+ AsyncFormatDefinition,
5
+ KeywordDefinition,
6
+ KeywordErrorDefinition,
7
+ CodeKeywordDefinition,
8
+ MacroKeywordDefinition,
9
+ FuncKeywordDefinition,
10
+ Vocabulary,
11
+ Schema,
12
+ SchemaObject,
13
+ AnySchemaObject,
14
+ AsyncSchema,
15
+ AnySchema,
16
+ ValidateFunction,
17
+ AsyncValidateFunction,
18
+ AnyValidateFunction,
19
+ ErrorObject,
20
+ ErrorNoParams,
21
+ } from "./types"
22
+
23
+ export {SchemaCxt, SchemaObjCxt} from "./compile"
24
+ export interface Plugin<Opts> {
25
+ (ajv: Ajv, options?: Opts): Ajv
26
+ [prop: string]: any
27
+ }
28
+
29
+ export {KeywordCxt} from "./compile/validate"
30
+ export {DefinedError} from "./vocabularies/errors"
31
+ export {JSONType} from "./compile/rules"
32
+ export {JSONSchemaType} from "./types/json-schema"
33
+ export {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from "./types/jtd-schema"
34
+ export {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from "./compile/codegen"
35
+
36
+ import type {
37
+ Schema,
38
+ AnySchema,
39
+ AnySchemaObject,
40
+ SchemaObject,
41
+ AsyncSchema,
42
+ Vocabulary,
43
+ KeywordDefinition,
44
+ AddedKeywordDefinition,
45
+ AnyValidateFunction,
46
+ ValidateFunction,
47
+ AsyncValidateFunction,
48
+ ErrorObject,
49
+ Format,
50
+ AddedFormat,
51
+ RegExpEngine,
52
+ UriResolver,
53
+ } from "./types"
54
+ import type {JSONSchemaType} from "./types/json-schema"
55
+ import type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from "./types/jtd-schema"
56
+ import ValidationError from "./runtime/validation_error"
57
+ import MissingRefError from "./compile/ref_error"
58
+ import {getRules, ValidationRules, Rule, RuleGroup, JSONType} from "./compile/rules"
59
+ import {SchemaEnv, compileSchema, resolveSchema} from "./compile"
60
+ import {Code, ValueScope} from "./compile/codegen"
61
+ import {normalizeId, getSchemaRefs} from "./compile/resolve"
62
+ import {getJSONTypes} from "./compile/validate/dataType"
63
+ import {eachItem} from "./compile/util"
64
+ import * as $dataRefSchema from "./refs/data.json"
65
+
66
+ import DefaultUriResolver from "./runtime/uri"
67
+
68
+ const defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)
69
+ defaultRegExp.code = "new RegExp"
70
+
71
+ const META_IGNORE_OPTIONS: (keyof Options)[] = ["removeAdditional", "useDefaults", "coerceTypes"]
72
+ const EXT_SCOPE_NAMES = new Set([
73
+ "validate",
74
+ "serialize",
75
+ "parse",
76
+ "wrapper",
77
+ "root",
78
+ "schema",
79
+ "keyword",
80
+ "pattern",
81
+ "formats",
82
+ "validate$data",
83
+ "func",
84
+ "obj",
85
+ "Error",
86
+ ])
87
+
88
+ export type Options = CurrentOptions & DeprecatedOptions
89
+
90
+ export interface CurrentOptions {
91
+ // strict mode options (NEW)
92
+ strict?: boolean | "log"
93
+ strictSchema?: boolean | "log"
94
+ strictNumbers?: boolean | "log"
95
+ strictTypes?: boolean | "log"
96
+ strictTuples?: boolean | "log"
97
+ strictRequired?: boolean | "log"
98
+ allowMatchingProperties?: boolean // disables a strict mode restriction
99
+ allowUnionTypes?: boolean
100
+ validateFormats?: boolean
101
+ // validation and reporting options:
102
+ $data?: boolean
103
+ allErrors?: boolean
104
+ verbose?: boolean
105
+ discriminator?: boolean
106
+ unicodeRegExp?: boolean
107
+ timestamp?: "string" | "date" // JTD only
108
+ parseDate?: boolean // JTD only
109
+ allowDate?: boolean // JTD only
110
+ $comment?:
111
+ | true
112
+ | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)
113
+ formats?: {[Name in string]?: Format}
114
+ keywords?: Vocabulary
115
+ schemas?: AnySchema[] | {[Key in string]?: AnySchema}
116
+ logger?: Logger | false
117
+ loadSchema?: (uri: string) => Promise<AnySchemaObject>
118
+ // options to modify validated data:
119
+ removeAdditional?: boolean | "all" | "failing"
120
+ useDefaults?: boolean | "empty"
121
+ coerceTypes?: boolean | "array"
122
+ // advanced options:
123
+ next?: boolean // NEW
124
+ unevaluated?: boolean // NEW
125
+ dynamicRef?: boolean // NEW
126
+ schemaId?: "id" | "$id"
127
+ jtd?: boolean // NEW
128
+ meta?: SchemaObject | boolean
129
+ defaultMeta?: string | AnySchemaObject
130
+ validateSchema?: boolean | "log"
131
+ addUsedSchema?: boolean
132
+ inlineRefs?: boolean | number
133
+ passContext?: boolean
134
+ loopRequired?: number
135
+ loopEnum?: number // NEW
136
+ ownProperties?: boolean
137
+ multipleOfPrecision?: number
138
+ int32range?: boolean // JTD only
139
+ messages?: boolean
140
+ code?: CodeOptions // NEW
141
+ uriResolver?: UriResolver
142
+ }
143
+
144
+ export interface CodeOptions {
145
+ es5?: boolean
146
+ esm?: boolean
147
+ lines?: boolean
148
+ optimize?: boolean | number
149
+ formats?: Code // code to require (or construct) map of available formats - for standalone code
150
+ source?: boolean
151
+ process?: (code: string, schema?: SchemaEnv) => string
152
+ regExp?: RegExpEngine
153
+ }
154
+
155
+ interface InstanceCodeOptions extends CodeOptions {
156
+ regExp: RegExpEngine
157
+ optimize: number
158
+ }
159
+
160
+ interface DeprecatedOptions {
161
+ /** @deprecated */
162
+ ignoreKeywordsWithRef?: boolean
163
+ /** @deprecated */
164
+ jsPropertySyntax?: boolean // added instead of jsonPointers
165
+ /** @deprecated */
166
+ unicode?: boolean
167
+ }
168
+
169
+ interface RemovedOptions {
170
+ format?: boolean
171
+ errorDataPath?: "object" | "property"
172
+ nullable?: boolean // "nullable" keyword is supported by default
173
+ jsonPointers?: boolean
174
+ extendRefs?: true | "ignore" | "fail"
175
+ missingRefs?: true | "ignore" | "fail"
176
+ processCode?: (code: string, schema?: SchemaEnv) => string
177
+ sourceCode?: boolean
178
+ strictDefaults?: boolean
179
+ strictKeywords?: boolean
180
+ uniqueItems?: boolean
181
+ unknownFormats?: true | string[] | "ignore"
182
+ cache?: any
183
+ serialize?: (schema: AnySchema) => unknown
184
+ ajvErrors?: boolean
185
+ }
186
+
187
+ type OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {
188
+ [K in keyof T]-?: string | undefined
189
+ }
190
+
191
+ const removedOptions: OptionsInfo<RemovedOptions> = {
192
+ errorDataPath: "",
193
+ format: "`validateFormats: false` can be used instead.",
194
+ nullable: '"nullable" keyword is supported by default.',
195
+ jsonPointers: "Deprecated jsPropertySyntax can be used instead.",
196
+ extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.",
197
+ missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.",
198
+ processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`",
199
+ sourceCode: "Use option `code: {source: true}`",
200
+ strictDefaults: "It is default now, see option `strict`.",
201
+ strictKeywords: "It is default now, see option `strict`.",
202
+ uniqueItems: '"uniqueItems" keyword is always validated.',
203
+ unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",
204
+ cache: "Map is used as cache, schema object as key.",
205
+ serialize: "Map is used as cache, schema object as key.",
206
+ ajvErrors: "It is default now.",
207
+ }
208
+
209
+ const deprecatedOptions: OptionsInfo<DeprecatedOptions> = {
210
+ ignoreKeywordsWithRef: "",
211
+ jsPropertySyntax: "",
212
+ unicode: '"minLength"/"maxLength" account for unicode characters by default.',
213
+ }
214
+
215
+ type RequiredInstanceOptions = {
216
+ [K in
217
+ | "strictSchema"
218
+ | "strictNumbers"
219
+ | "strictTypes"
220
+ | "strictTuples"
221
+ | "strictRequired"
222
+ | "inlineRefs"
223
+ | "loopRequired"
224
+ | "loopEnum"
225
+ | "meta"
226
+ | "messages"
227
+ | "schemaId"
228
+ | "addUsedSchema"
229
+ | "validateSchema"
230
+ | "validateFormats"
231
+ | "int32range"
232
+ | "unicodeRegExp"
233
+ | "uriResolver"]: NonNullable<Options[K]>
234
+ } & {code: InstanceCodeOptions}
235
+
236
+ export type InstanceOptions = Options & RequiredInstanceOptions
237
+
238
+ const MAX_EXPRESSION = 200
239
+
240
+ // eslint-disable-next-line complexity
241
+ function requiredOptions(o: Options): RequiredInstanceOptions {
242
+ const s = o.strict
243
+ const _optz = o.code?.optimize
244
+ const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0
245
+ const regExp = o.code?.regExp ?? defaultRegExp
246
+ const uriResolver = o.uriResolver ?? DefaultUriResolver
247
+ return {
248
+ strictSchema: o.strictSchema ?? s ?? true,
249
+ strictNumbers: o.strictNumbers ?? s ?? true,
250
+ strictTypes: o.strictTypes ?? s ?? "log",
251
+ strictTuples: o.strictTuples ?? s ?? "log",
252
+ strictRequired: o.strictRequired ?? s ?? false,
253
+ code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},
254
+ loopRequired: o.loopRequired ?? MAX_EXPRESSION,
255
+ loopEnum: o.loopEnum ?? MAX_EXPRESSION,
256
+ meta: o.meta ?? true,
257
+ messages: o.messages ?? true,
258
+ inlineRefs: o.inlineRefs ?? true,
259
+ schemaId: o.schemaId ?? "$id",
260
+ addUsedSchema: o.addUsedSchema ?? true,
261
+ validateSchema: o.validateSchema ?? true,
262
+ validateFormats: o.validateFormats ?? true,
263
+ unicodeRegExp: o.unicodeRegExp ?? true,
264
+ int32range: o.int32range ?? true,
265
+ uriResolver: uriResolver,
266
+ }
267
+ }
268
+
269
+ export interface Logger {
270
+ log(...args: unknown[]): unknown
271
+ warn(...args: unknown[]): unknown
272
+ error(...args: unknown[]): unknown
273
+ }
274
+
275
+ export default class Ajv {
276
+ opts: InstanceOptions
277
+ errors?: ErrorObject[] | null // errors from the last validation
278
+ logger: Logger
279
+ // shared external scope values for compiled functions
280
+ readonly scope: ValueScope
281
+ readonly schemas: {[Key in string]?: SchemaEnv} = {}
282
+ readonly refs: {[Ref in string]?: SchemaEnv | string} = {}
283
+ readonly formats: {[Name in string]?: AddedFormat} = {}
284
+ readonly RULES: ValidationRules
285
+ readonly _compilations: Set<SchemaEnv> = new Set()
286
+ private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}
287
+ private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()
288
+ private readonly _metaOpts: InstanceOptions
289
+
290
+ static ValidationError = ValidationError
291
+ static MissingRefError = MissingRefError
292
+
293
+ constructor(opts: Options = {}) {
294
+ opts = this.opts = {...opts, ...requiredOptions(opts)}
295
+ const {es5, lines} = this.opts.code
296
+
297
+ this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})
298
+ this.logger = getLogger(opts.logger)
299
+ const formatOpt = opts.validateFormats
300
+ opts.validateFormats = false
301
+
302
+ this.RULES = getRules()
303
+ checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED")
304
+ checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn")
305
+ this._metaOpts = getMetaSchemaOptions.call(this)
306
+
307
+ if (opts.formats) addInitialFormats.call(this)
308
+ this._addVocabularies()
309
+ this._addDefaultMetaSchema()
310
+ if (opts.keywords) addInitialKeywords.call(this, opts.keywords)
311
+ if (typeof opts.meta == "object") this.addMetaSchema(opts.meta)
312
+ addInitialSchemas.call(this)
313
+ opts.validateFormats = formatOpt
314
+ }
315
+
316
+ _addVocabularies(): void {
317
+ this.addKeyword("$async")
318
+ }
319
+
320
+ _addDefaultMetaSchema(): void {
321
+ const {$data, meta, schemaId} = this.opts
322
+ let _dataRefSchema: SchemaObject = $dataRefSchema
323
+ if (schemaId === "id") {
324
+ _dataRefSchema = {...$dataRefSchema}
325
+ _dataRefSchema.id = _dataRefSchema.$id
326
+ delete _dataRefSchema.$id
327
+ }
328
+ if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)
329
+ }
330
+
331
+ defaultMeta(): string | AnySchemaObject | undefined {
332
+ const {meta, schemaId} = this.opts
333
+ return (this.opts.defaultMeta = typeof meta == "object" ? meta[schemaId] || meta : undefined)
334
+ }
335
+
336
+ // Validate data using schema
337
+ // AnySchema will be compiled and cached using schema itself as a key for Map
338
+ validate(schema: Schema | string, data: unknown): boolean
339
+ validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>
340
+ validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T
341
+ // Separated for type inference to work
342
+ // eslint-disable-next-line @typescript-eslint/unified-signatures
343
+ validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T
344
+ // This overload is only intended for typescript inference, the first
345
+ // argument prevents manual type annotation from matching this overload
346
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
347
+ validate<N extends never, T extends SomeJTDSchemaType>(
348
+ schema: T,
349
+ data: unknown
350
+ ): data is JTDDataType<T>
351
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
352
+ validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>
353
+ validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>
354
+ validate<T>(
355
+ schemaKeyRef: AnySchema | string, // key, ref or schema object
356
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
357
+ data: unknown | T // to be validated
358
+ ): boolean | Promise<T> {
359
+ let v: AnyValidateFunction | undefined
360
+ if (typeof schemaKeyRef == "string") {
361
+ v = this.getSchema<T>(schemaKeyRef)
362
+ if (!v) throw new Error(`no schema with key or ref "${schemaKeyRef}"`)
363
+ } else {
364
+ v = this.compile<T>(schemaKeyRef)
365
+ }
366
+
367
+ const valid = v(data)
368
+ if (!("$async" in v)) this.errors = v.errors
369
+ return valid
370
+ }
371
+
372
+ // Create validation function for passed schema
373
+ // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.
374
+ compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>
375
+ // Separated for type inference to work
376
+ // eslint-disable-next-line @typescript-eslint/unified-signatures
377
+ compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>
378
+ // This overload is only intended for typescript inference, the first
379
+ // argument prevents manual type annotation from matching this overload
380
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
381
+ compile<N extends never, T extends SomeJTDSchemaType>(
382
+ schema: T,
383
+ _meta?: boolean
384
+ ): ValidateFunction<JTDDataType<T>>
385
+ compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>
386
+ compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>
387
+ compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {
388
+ const sch = this._addSchema(schema, _meta)
389
+ return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>
390
+ }
391
+
392
+ // Creates validating function for passed schema with asynchronous loading of missing schemas.
393
+ // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.
394
+ // TODO allow passing schema URI
395
+ // meta - optional true to compile meta-schema
396
+ compileAsync<T = unknown>(
397
+ schema: SchemaObject | JSONSchemaType<T>,
398
+ _meta?: boolean
399
+ ): Promise<ValidateFunction<T>>
400
+ // Separated for type inference to work
401
+ // eslint-disable-next-line @typescript-eslint/unified-signatures
402
+ compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>
403
+ compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>
404
+ // eslint-disable-next-line @typescript-eslint/unified-signatures
405
+ compileAsync<T = unknown>(
406
+ schema: AnySchemaObject,
407
+ meta?: boolean
408
+ ): Promise<AnyValidateFunction<T>>
409
+ compileAsync<T = unknown>(
410
+ schema: AnySchemaObject,
411
+ meta?: boolean
412
+ ): Promise<AnyValidateFunction<T>> {
413
+ if (typeof this.opts.loadSchema != "function") {
414
+ throw new Error("options.loadSchema should be a function")
415
+ }
416
+ const {loadSchema} = this.opts
417
+ return runCompileAsync.call(this, schema, meta)
418
+
419
+ async function runCompileAsync(
420
+ this: Ajv,
421
+ _schema: AnySchemaObject,
422
+ _meta?: boolean
423
+ ): Promise<AnyValidateFunction> {
424
+ await loadMetaSchema.call(this, _schema.$schema)
425
+ const sch = this._addSchema(_schema, _meta)
426
+ return sch.validate || _compileAsync.call(this, sch)
427
+ }
428
+
429
+ async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {
430
+ if ($ref && !this.getSchema($ref)) {
431
+ await runCompileAsync.call(this, {$ref}, true)
432
+ }
433
+ }
434
+
435
+ async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {
436
+ try {
437
+ return this._compileSchemaEnv(sch)
438
+ } catch (e) {
439
+ if (!(e instanceof MissingRefError)) throw e
440
+ checkLoaded.call(this, e)
441
+ await loadMissingSchema.call(this, e.missingSchema)
442
+ return _compileAsync.call(this, sch)
443
+ }
444
+ }
445
+
446
+ function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {
447
+ if (this.refs[ref]) {
448
+ throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)
449
+ }
450
+ }
451
+
452
+ async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {
453
+ const _schema = await _loadSchema.call(this, ref)
454
+ if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)
455
+ if (!this.refs[ref]) this.addSchema(_schema, ref, meta)
456
+ }
457
+
458
+ async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {
459
+ const p = this._loading[ref]
460
+ if (p) return p
461
+ try {
462
+ return await (this._loading[ref] = loadSchema(ref))
463
+ } finally {
464
+ delete this._loading[ref]
465
+ }
466
+ }
467
+ }
468
+
469
+ // Adds schema to the instance
470
+ addSchema(
471
+ schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored
472
+ key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
473
+ _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
474
+ _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.
475
+ ): Ajv {
476
+ if (Array.isArray(schema)) {
477
+ for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)
478
+ return this
479
+ }
480
+ let id: string | undefined
481
+ if (typeof schema === "object") {
482
+ const {schemaId} = this.opts
483
+ id = schema[schemaId]
484
+ if (id !== undefined && typeof id != "string") {
485
+ throw new Error(`schema ${schemaId} must be string`)
486
+ }
487
+ }
488
+ key = normalizeId(key || id)
489
+ this._checkUnique(key)
490
+ this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)
491
+ return this
492
+ }
493
+
494
+ // Add schema that will be used to validate other schemas
495
+ // options in META_IGNORE_OPTIONS are alway set to false
496
+ addMetaSchema(
497
+ schema: AnySchemaObject,
498
+ key?: string, // schema key
499
+ _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema
500
+ ): Ajv {
501
+ this.addSchema(schema, key, true, _validateSchema)
502
+ return this
503
+ }
504
+
505
+ // Validate schema against its meta-schema
506
+ validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {
507
+ if (typeof schema == "boolean") return true
508
+ let $schema: string | AnySchemaObject | undefined
509
+ $schema = schema.$schema
510
+ if ($schema !== undefined && typeof $schema != "string") {
511
+ throw new Error("$schema must be a string")
512
+ }
513
+ $schema = $schema || this.opts.defaultMeta || this.defaultMeta()
514
+ if (!$schema) {
515
+ this.logger.warn("meta-schema not available")
516
+ this.errors = null
517
+ return true
518
+ }
519
+ const valid = this.validate($schema, schema)
520
+ if (!valid && throwOrLogError) {
521
+ const message = "schema is invalid: " + this.errorsText()
522
+ if (this.opts.validateSchema === "log") this.logger.error(message)
523
+ else throw new Error(message)
524
+ }
525
+ return valid
526
+ }
527
+
528
+ // Get compiled schema by `key` or `ref`.
529
+ // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)
530
+ getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {
531
+ let sch
532
+ while (typeof (sch = getSchEnv.call(this, keyRef)) == "string") keyRef = sch
533
+ if (sch === undefined) {
534
+ const {schemaId} = this.opts
535
+ const root = new SchemaEnv({schema: {}, schemaId})
536
+ sch = resolveSchema.call(this, root, keyRef)
537
+ if (!sch) return
538
+ this.refs[keyRef] = sch
539
+ }
540
+ return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined
541
+ }
542
+
543
+ // Remove cached schema(s).
544
+ // If no parameter is passed all schemas but meta-schemas are removed.
545
+ // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
546
+ // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
547
+ removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {
548
+ if (schemaKeyRef instanceof RegExp) {
549
+ this._removeAllSchemas(this.schemas, schemaKeyRef)
550
+ this._removeAllSchemas(this.refs, schemaKeyRef)
551
+ return this
552
+ }
553
+ switch (typeof schemaKeyRef) {
554
+ case "undefined":
555
+ this._removeAllSchemas(this.schemas)
556
+ this._removeAllSchemas(this.refs)
557
+ this._cache.clear()
558
+ return this
559
+ case "string": {
560
+ const sch = getSchEnv.call(this, schemaKeyRef)
561
+ if (typeof sch == "object") this._cache.delete(sch.schema)
562
+ delete this.schemas[schemaKeyRef]
563
+ delete this.refs[schemaKeyRef]
564
+ return this
565
+ }
566
+ case "object": {
567
+ const cacheKey = schemaKeyRef
568
+ this._cache.delete(cacheKey)
569
+ let id = schemaKeyRef[this.opts.schemaId]
570
+ if (id) {
571
+ id = normalizeId(id)
572
+ delete this.schemas[id]
573
+ delete this.refs[id]
574
+ }
575
+ return this
576
+ }
577
+ default:
578
+ throw new Error("ajv.removeSchema: invalid parameter")
579
+ }
580
+ }
581
+
582
+ // add "vocabulary" - a collection of keywords
583
+ addVocabulary(definitions: Vocabulary): Ajv {
584
+ for (const def of definitions) this.addKeyword(def)
585
+ return this
586
+ }
587
+
588
+ addKeyword(
589
+ kwdOrDef: string | KeywordDefinition,
590
+ def?: KeywordDefinition // deprecated
591
+ ): Ajv {
592
+ let keyword: string | string[]
593
+ if (typeof kwdOrDef == "string") {
594
+ keyword = kwdOrDef
595
+ if (typeof def == "object") {
596
+ this.logger.warn("these parameters are deprecated, see docs for addKeyword")
597
+ def.keyword = keyword
598
+ }
599
+ } else if (typeof kwdOrDef == "object" && def === undefined) {
600
+ def = kwdOrDef
601
+ keyword = def.keyword
602
+ if (Array.isArray(keyword) && !keyword.length) {
603
+ throw new Error("addKeywords: keyword must be string or non-empty array")
604
+ }
605
+ } else {
606
+ throw new Error("invalid addKeywords parameters")
607
+ }
608
+
609
+ checkKeyword.call(this, keyword, def)
610
+ if (!def) {
611
+ eachItem(keyword, (kwd) => addRule.call(this, kwd))
612
+ return this
613
+ }
614
+ keywordMetaschema.call(this, def)
615
+ const definition: AddedKeywordDefinition = {
616
+ ...def,
617
+ type: getJSONTypes(def.type),
618
+ schemaType: getJSONTypes(def.schemaType),
619
+ }
620
+ eachItem(
621
+ keyword,
622
+ definition.type.length === 0
623
+ ? (k) => addRule.call(this, k, definition)
624
+ : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))
625
+ )
626
+ return this
627
+ }
628
+
629
+ getKeyword(keyword: string): AddedKeywordDefinition | boolean {
630
+ const rule = this.RULES.all[keyword]
631
+ return typeof rule == "object" ? rule.definition : !!rule
632
+ }
633
+
634
+ // Remove keyword
635
+ removeKeyword(keyword: string): Ajv {
636
+ // TODO return type should be Ajv
637
+ const {RULES} = this
638
+ delete RULES.keywords[keyword]
639
+ delete RULES.all[keyword]
640
+ for (const group of RULES.rules) {
641
+ const i = group.rules.findIndex((rule) => rule.keyword === keyword)
642
+ if (i >= 0) group.rules.splice(i, 1)
643
+ }
644
+ return this
645
+ }
646
+
647
+ // Add format
648
+ addFormat(name: string, format: Format): Ajv {
649
+ if (typeof format == "string") format = new RegExp(format)
650
+ this.formats[name] = format
651
+ return this
652
+ }
653
+
654
+ errorsText(
655
+ errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors
656
+ {separator = ", ", dataVar = "data"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`
657
+ ): string {
658
+ if (!errors || errors.length === 0) return "No errors"
659
+ return errors
660
+ .map((e) => `${dataVar}${e.instancePath} ${e.message}`)
661
+ .reduce((text, msg) => text + separator + msg)
662
+ }
663
+
664
+ $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {
665
+ const rules = this.RULES.all
666
+ metaSchema = JSON.parse(JSON.stringify(metaSchema))
667
+ for (const jsonPointer of keywordsJsonPointers) {
668
+ const segments = jsonPointer.split("/").slice(1) // first segment is an empty string
669
+ let keywords = metaSchema
670
+ for (const seg of segments) keywords = keywords[seg] as AnySchemaObject
671
+
672
+ for (const key in rules) {
673
+ const rule = rules[key]
674
+ if (typeof rule != "object") continue
675
+ const {$data} = rule.definition
676
+ const schema = keywords[key] as AnySchemaObject | undefined
677
+ if ($data && schema) keywords[key] = schemaOrData(schema)
678
+ }
679
+ }
680
+
681
+ return metaSchema
682
+ }
683
+
684
+ private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {
685
+ for (const keyRef in schemas) {
686
+ const sch = schemas[keyRef]
687
+ if (!regex || regex.test(keyRef)) {
688
+ if (typeof sch == "string") {
689
+ delete schemas[keyRef]
690
+ } else if (sch && !sch.meta) {
691
+ this._cache.delete(sch.schema)
692
+ delete schemas[keyRef]
693
+ }
694
+ }
695
+ }
696
+ }
697
+
698
+ _addSchema(
699
+ schema: AnySchema,
700
+ meta?: boolean,
701
+ baseId?: string,
702
+ validateSchema = this.opts.validateSchema,
703
+ addSchema = this.opts.addUsedSchema
704
+ ): SchemaEnv {
705
+ let id: string | undefined
706
+ const {schemaId} = this.opts
707
+ if (typeof schema == "object") {
708
+ id = schema[schemaId]
709
+ } else {
710
+ if (this.opts.jtd) throw new Error("schema must be object")
711
+ else if (typeof schema != "boolean") throw new Error("schema must be object or boolean")
712
+ }
713
+ let sch = this._cache.get(schema)
714
+ if (sch !== undefined) return sch
715
+
716
+ baseId = normalizeId(id || baseId)
717
+ const localRefs = getSchemaRefs.call(this, schema, baseId)
718
+ sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})
719
+ this._cache.set(sch.schema, sch)
720
+ if (addSchema && !baseId.startsWith("#")) {
721
+ // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)
722
+ if (baseId) this._checkUnique(baseId)
723
+ this.refs[baseId] = sch
724
+ }
725
+ if (validateSchema) this.validateSchema(schema, true)
726
+ return sch
727
+ }
728
+
729
+ private _checkUnique(id: string): void {
730
+ if (this.schemas[id] || this.refs[id]) {
731
+ throw new Error(`schema with key or id "${id}" already exists`)
732
+ }
733
+ }
734
+
735
+ private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {
736
+ if (sch.meta) this._compileMetaSchema(sch)
737
+ else compileSchema.call(this, sch)
738
+
739
+ /* istanbul ignore if */
740
+ if (!sch.validate) throw new Error("ajv implementation error")
741
+ return sch.validate
742
+ }
743
+
744
+ private _compileMetaSchema(sch: SchemaEnv): void {
745
+ const currentOpts = this.opts
746
+ this.opts = this._metaOpts
747
+ try {
748
+ compileSchema.call(this, sch)
749
+ } finally {
750
+ this.opts = currentOpts
751
+ }
752
+ }
753
+ }
754
+
755
+ export interface ErrorsTextOptions {
756
+ separator?: string
757
+ dataVar?: string
758
+ }
759
+
760
+ function checkOptions(
761
+ this: Ajv,
762
+ checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,
763
+ options: Options & RemovedOptions,
764
+ msg: string,
765
+ log: "warn" | "error" = "error"
766
+ ): void {
767
+ for (const key in checkOpts) {
768
+ const opt = key as keyof typeof checkOpts
769
+ if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)
770
+ }
771
+ }
772
+
773
+ function getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {
774
+ keyRef = normalizeId(keyRef) // TODO tests fail without this line
775
+ return this.schemas[keyRef] || this.refs[keyRef]
776
+ }
777
+
778
+ function addInitialSchemas(this: Ajv): void {
779
+ const optsSchemas = this.opts.schemas
780
+ if (!optsSchemas) return
781
+ if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)
782
+ else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)
783
+ }
784
+
785
+ function addInitialFormats(this: Ajv): void {
786
+ for (const name in this.opts.formats) {
787
+ const format = this.opts.formats[name]
788
+ if (format) this.addFormat(name, format)
789
+ }
790
+ }
791
+
792
+ function addInitialKeywords(
793
+ this: Ajv,
794
+ defs: Vocabulary | {[K in string]?: KeywordDefinition}
795
+ ): void {
796
+ if (Array.isArray(defs)) {
797
+ this.addVocabulary(defs)
798
+ return
799
+ }
800
+ this.logger.warn("keywords option as map is deprecated, pass array")
801
+ for (const keyword in defs) {
802
+ const def = defs[keyword] as KeywordDefinition
803
+ if (!def.keyword) def.keyword = keyword
804
+ this.addKeyword(def)
805
+ }
806
+ }
807
+
808
+ function getMetaSchemaOptions(this: Ajv): InstanceOptions {
809
+ const metaOpts = {...this.opts}
810
+ for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]
811
+ return metaOpts
812
+ }
813
+
814
+ const noLogs = {log() {}, warn() {}, error() {}}
815
+
816
+ function getLogger(logger?: Partial<Logger> | false): Logger {
817
+ if (logger === false) return noLogs
818
+ if (logger === undefined) return console
819
+ if (logger.log && logger.warn && logger.error) return logger as Logger
820
+ throw new Error("logger must implement log, warn and error methods")
821
+ }
822
+
823
+ const KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i
824
+
825
+ function checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {
826
+ const {RULES} = this
827
+ eachItem(keyword, (kwd) => {
828
+ if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)
829
+ if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)
830
+ })
831
+ if (!def) return
832
+ if (def.$data && !("code" in def || "validate" in def)) {
833
+ throw new Error('$data keyword must have "code" or "validate" function')
834
+ }
835
+ }
836
+
837
+ function addRule(
838
+ this: Ajv,
839
+ keyword: string,
840
+ definition?: AddedKeywordDefinition,
841
+ dataType?: JSONType
842
+ ): void {
843
+ const post = definition?.post
844
+ if (dataType && post) throw new Error('keyword with "post" flag cannot have "type"')
845
+ const {RULES} = this
846
+ let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)
847
+ if (!ruleGroup) {
848
+ ruleGroup = {type: dataType, rules: []}
849
+ RULES.rules.push(ruleGroup)
850
+ }
851
+ RULES.keywords[keyword] = true
852
+ if (!definition) return
853
+
854
+ const rule: Rule = {
855
+ keyword,
856
+ definition: {
857
+ ...definition,
858
+ type: getJSONTypes(definition.type),
859
+ schemaType: getJSONTypes(definition.schemaType),
860
+ },
861
+ }
862
+ if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)
863
+ else ruleGroup.rules.push(rule)
864
+ RULES.all[keyword] = rule
865
+ definition.implements?.forEach((kwd) => this.addKeyword(kwd))
866
+ }
867
+
868
+ function addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {
869
+ const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)
870
+ if (i >= 0) {
871
+ ruleGroup.rules.splice(i, 0, rule)
872
+ } else {
873
+ ruleGroup.rules.push(rule)
874
+ this.logger.warn(`rule ${before} is not defined`)
875
+ }
876
+ }
877
+
878
+ function keywordMetaschema(this: Ajv, def: KeywordDefinition): void {
879
+ let {metaSchema} = def
880
+ if (metaSchema === undefined) return
881
+ if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)
882
+ def.validateSchema = this.compile(metaSchema, true)
883
+ }
884
+
885
+ const $dataRef = {
886
+ $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
887
+ }
888
+
889
+ function schemaOrData(schema: AnySchema): AnySchemaObject {
890
+ return {anyOf: [schema, $dataRef]}
891
+ }