@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,244 @@
1
+ import {URIComponent} from "fast-uri"
2
+ import type {CodeGen, Code, Name, ScopeValueSets, ValueScopeName} from "../compile/codegen"
3
+ import type {SchemaEnv, SchemaCxt, SchemaObjCxt} from "../compile"
4
+ import type {JSONType} from "../compile/rules"
5
+ import type {KeywordCxt} from "../compile/validate"
6
+ import type Ajv from "../core"
7
+
8
+ interface _SchemaObject {
9
+ id?: string
10
+ $id?: string
11
+ $schema?: string
12
+ [x: string]: any // TODO
13
+ }
14
+
15
+ export interface SchemaObject extends _SchemaObject {
16
+ id?: string
17
+ $id?: string
18
+ $schema?: string
19
+ $async?: false
20
+ [x: string]: any // TODO
21
+ }
22
+
23
+ export interface AsyncSchema extends _SchemaObject {
24
+ $async: true
25
+ }
26
+
27
+ export type AnySchemaObject = SchemaObject | AsyncSchema
28
+
29
+ export type Schema = SchemaObject | boolean
30
+
31
+ export type AnySchema = Schema | AsyncSchema
32
+
33
+ export type SchemaMap = {[Key in string]?: AnySchema}
34
+
35
+ export interface SourceCode {
36
+ validateName: ValueScopeName
37
+ validateCode: string
38
+ scopeValues: ScopeValueSets
39
+ evaluated?: Code
40
+ }
41
+
42
+ export interface DataValidationCxt<T extends string | number = string | number> {
43
+ instancePath: string
44
+ parentData: {[K in T]: any} // object or array
45
+ parentDataProperty: T // string or number
46
+ rootData: Record<string, any> | any[]
47
+ dynamicAnchors: {[Ref in string]?: ValidateFunction}
48
+ }
49
+
50
+ export interface ValidateFunction<T = unknown> {
51
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
52
+ (this: Ajv | any, data: any, dataCxt?: DataValidationCxt): data is T
53
+ errors?: null | ErrorObject[]
54
+ evaluated?: Evaluated
55
+ schema: AnySchema
56
+ schemaEnv: SchemaEnv
57
+ source?: SourceCode
58
+ }
59
+
60
+ export interface JTDParser<T = unknown> {
61
+ (json: string): T | undefined
62
+ message?: string
63
+ position?: number
64
+ }
65
+
66
+ export type EvaluatedProperties = {[K in string]?: true} | true
67
+
68
+ export type EvaluatedItems = number | true
69
+
70
+ export interface Evaluated {
71
+ // determined at compile time if staticProps/Items is true
72
+ props?: EvaluatedProperties
73
+ items?: EvaluatedItems
74
+ // whether props/items determined at compile time
75
+ dynamicProps: boolean
76
+ dynamicItems: boolean
77
+ }
78
+
79
+ export interface AsyncValidateFunction<T = unknown> extends ValidateFunction<T> {
80
+ (...args: Parameters<ValidateFunction<T>>): Promise<T>
81
+ $async: true
82
+ }
83
+
84
+ export type AnyValidateFunction<T = any> = ValidateFunction<T> | AsyncValidateFunction<T>
85
+
86
+ export interface ErrorObject<K extends string = string, P = Record<string, any>, S = unknown> {
87
+ keyword: K
88
+ instancePath: string
89
+ schemaPath: string
90
+ params: P
91
+ // Added to validation errors of "propertyNames" keyword schema
92
+ propertyName?: string
93
+ // Excluded if option `messages` set to false.
94
+ message?: string
95
+ // These are added with the `verbose` option.
96
+ schema?: S
97
+ parentSchema?: AnySchemaObject
98
+ data?: unknown
99
+ }
100
+
101
+ export type ErrorNoParams<K extends string, S = unknown> = ErrorObject<K, Record<string, never>, S>
102
+
103
+ interface _KeywordDef {
104
+ keyword: string | string[]
105
+ type?: JSONType | JSONType[] // data types that keyword applies to
106
+ schemaType?: JSONType | JSONType[] // allowed type(s) of keyword value in the schema
107
+ allowUndefined?: boolean // used for keywords that can be invoked by other keywords, not being present in the schema
108
+ $data?: boolean // keyword supports [$data reference](../../docs/guide/combining-schemas.md#data-reference)
109
+ implements?: string[] // other schema keywords that this keyword implements
110
+ before?: string // keyword should be executed before this keyword (should be applicable to the same type)
111
+ post?: boolean // keyword should be executed after other keywords without post flag
112
+ metaSchema?: AnySchemaObject // meta-schema for keyword schema value - it is better to use schemaType where applicable
113
+ validateSchema?: AnyValidateFunction // compiled keyword metaSchema - should not be passed
114
+ dependencies?: string[] // keywords that must be present in the same schema
115
+ error?: KeywordErrorDefinition
116
+ $dataError?: KeywordErrorDefinition
117
+ }
118
+
119
+ export interface CodeKeywordDefinition extends _KeywordDef {
120
+ code: (cxt: KeywordCxt, ruleType?: string) => void
121
+ trackErrors?: boolean
122
+ }
123
+
124
+ export type MacroKeywordFunc = (
125
+ schema: any,
126
+ parentSchema: AnySchemaObject,
127
+ it: SchemaCxt
128
+ ) => AnySchema
129
+
130
+ export type CompileKeywordFunc = (
131
+ schema: any,
132
+ parentSchema: AnySchemaObject,
133
+ it: SchemaObjCxt
134
+ ) => DataValidateFunction
135
+
136
+ export interface DataValidateFunction {
137
+ (...args: Parameters<ValidateFunction>): boolean | Promise<any>
138
+ errors?: Partial<ErrorObject>[]
139
+ }
140
+
141
+ export interface SchemaValidateFunction {
142
+ (
143
+ schema: any,
144
+ data: any,
145
+ parentSchema?: AnySchemaObject,
146
+ dataCxt?: DataValidationCxt
147
+ ): boolean | Promise<any>
148
+ errors?: Partial<ErrorObject>[]
149
+ }
150
+
151
+ export interface FuncKeywordDefinition extends _KeywordDef {
152
+ validate?: SchemaValidateFunction | DataValidateFunction
153
+ compile?: CompileKeywordFunc
154
+ // schema: false makes validate not to expect schema (DataValidateFunction)
155
+ schema?: boolean // requires "validate"
156
+ modifying?: boolean
157
+ async?: boolean
158
+ valid?: boolean
159
+ errors?: boolean | "full"
160
+ }
161
+
162
+ export interface MacroKeywordDefinition extends FuncKeywordDefinition {
163
+ macro: MacroKeywordFunc
164
+ }
165
+
166
+ export type KeywordDefinition =
167
+ | CodeKeywordDefinition
168
+ | FuncKeywordDefinition
169
+ | MacroKeywordDefinition
170
+
171
+ export type AddedKeywordDefinition = KeywordDefinition & {
172
+ type: JSONType[]
173
+ schemaType: JSONType[]
174
+ }
175
+
176
+ export interface KeywordErrorDefinition {
177
+ message: string | Code | ((cxt: KeywordErrorCxt) => string | Code)
178
+ params?: Code | ((cxt: KeywordErrorCxt) => Code)
179
+ }
180
+
181
+ export type Vocabulary = (KeywordDefinition | string)[]
182
+
183
+ export interface KeywordErrorCxt {
184
+ gen: CodeGen
185
+ keyword: string
186
+ data: Name
187
+ $data?: string | false
188
+ schema: any // TODO
189
+ parentSchema?: AnySchemaObject
190
+ schemaCode: Code | number | boolean
191
+ schemaValue: Code | number | boolean
192
+ schemaType?: JSONType[]
193
+ errsCount?: Name
194
+ params: KeywordCxtParams
195
+ it: SchemaCxt
196
+ }
197
+
198
+ export type KeywordCxtParams = {[P in string]?: Code | string | number}
199
+
200
+ export type FormatValidator<T extends string | number> = (data: T) => boolean
201
+
202
+ export type FormatCompare<T extends string | number> = (data1: T, data2: T) => number | undefined
203
+
204
+ export type AsyncFormatValidator<T extends string | number> = (data: T) => Promise<boolean>
205
+
206
+ export interface FormatDefinition<T extends string | number> {
207
+ type?: T extends string ? "string" | undefined : "number"
208
+ validate: FormatValidator<T> | (T extends string ? string | RegExp : never)
209
+ async?: false | undefined
210
+ compare?: FormatCompare<T>
211
+ }
212
+
213
+ export interface AsyncFormatDefinition<T extends string | number> {
214
+ type?: T extends string ? "string" | undefined : "number"
215
+ validate: AsyncFormatValidator<T>
216
+ async: true
217
+ compare?: FormatCompare<T>
218
+ }
219
+
220
+ export type AddedFormat =
221
+ | true
222
+ | RegExp
223
+ | FormatValidator<string>
224
+ | FormatDefinition<string>
225
+ | FormatDefinition<number>
226
+ | AsyncFormatDefinition<string>
227
+ | AsyncFormatDefinition<number>
228
+
229
+ export type Format = AddedFormat | string
230
+
231
+ export interface RegExpEngine {
232
+ (pattern: string, u: string): RegExpLike
233
+ code: string
234
+ }
235
+
236
+ export interface RegExpLike {
237
+ test: (s: string) => boolean
238
+ }
239
+
240
+ export interface UriResolver {
241
+ parse(uri: string): URIComponent
242
+ resolve(base: string, path: string): string
243
+ serialize(component: URIComponent): string
244
+ }
@@ -0,0 +1,187 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-interface */
2
+ type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null
3
+ ? `strictNullChecks must be true in tsconfig to use ${Name}`
4
+ : Type
5
+
6
+ type UnionToIntersection<U> = (U extends any ? (_: U) => void : never) extends (_: infer I) => void
7
+ ? I
8
+ : never
9
+
10
+ export type SomeJSONSchema = UncheckedJSONSchemaType<Known, true>
11
+
12
+ type UncheckedPartialSchema<T> = Partial<UncheckedJSONSchemaType<T, true>>
13
+
14
+ export type PartialSchema<T> = StrictNullChecksWrapper<"PartialSchema", UncheckedPartialSchema<T>>
15
+
16
+ type JSONType<T extends string, IsPartial extends boolean> = IsPartial extends true
17
+ ? T | undefined
18
+ : T
19
+
20
+ interface NumberKeywords {
21
+ minimum?: number
22
+ maximum?: number
23
+ exclusiveMinimum?: number
24
+ exclusiveMaximum?: number
25
+ multipleOf?: number
26
+ format?: string
27
+ }
28
+
29
+ interface StringKeywords {
30
+ minLength?: number
31
+ maxLength?: number
32
+ pattern?: string
33
+ format?: string
34
+ }
35
+
36
+ type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (
37
+ | // these two unions allow arbitrary unions of types
38
+ {
39
+ anyOf: readonly UncheckedJSONSchemaType<T, IsPartial>[]
40
+ }
41
+ | {
42
+ oneOf: readonly UncheckedJSONSchemaType<T, IsPartial>[]
43
+ }
44
+ // this union allows for { type: (primitive)[] } style schemas
45
+ | ({
46
+ type: readonly (T extends number
47
+ ? JSONType<"number" | "integer", IsPartial>
48
+ : T extends string
49
+ ? JSONType<"string", IsPartial>
50
+ : T extends boolean
51
+ ? JSONType<"boolean", IsPartial>
52
+ : never)[]
53
+ } & UnionToIntersection<
54
+ T extends number
55
+ ? NumberKeywords
56
+ : T extends string
57
+ ? StringKeywords
58
+ : T extends boolean
59
+ ? // eslint-disable-next-line @typescript-eslint/ban-types
60
+ {}
61
+ : never
62
+ >)
63
+ // this covers "normal" types; it's last so typescript looks to it first for errors
64
+ | ((T extends number
65
+ ? {
66
+ type: JSONType<"number" | "integer", IsPartial>
67
+ } & NumberKeywords
68
+ : T extends string
69
+ ? {
70
+ type: JSONType<"string", IsPartial>
71
+ } & StringKeywords
72
+ : T extends boolean
73
+ ? {
74
+ type: JSONType<"boolean", IsPartial>
75
+ }
76
+ : T extends readonly [any, ...any[]]
77
+ ? {
78
+ // JSON AnySchema for tuple
79
+ type: JSONType<"array", IsPartial>
80
+ items: {
81
+ readonly [K in keyof T]-?: UncheckedJSONSchemaType<T[K], false> & Nullable<T[K]>
82
+ } & {length: T["length"]}
83
+ minItems: T["length"]
84
+ } & ({maxItems: T["length"]} | {additionalItems: false})
85
+ : T extends readonly any[]
86
+ ? {
87
+ type: JSONType<"array", IsPartial>
88
+ items: UncheckedJSONSchemaType<T[0], false>
89
+ contains?: UncheckedPartialSchema<T[0]>
90
+ minItems?: number
91
+ maxItems?: number
92
+ minContains?: number
93
+ maxContains?: number
94
+ uniqueItems?: true
95
+ additionalItems?: never
96
+ }
97
+ : T extends Record<string, any>
98
+ ? {
99
+ // JSON AnySchema for records and dictionaries
100
+ // "required" is not optional because it is often forgotten
101
+ // "properties" are optional for more concise dictionary schemas
102
+ // "patternProperties" and can be only used with interfaces that have string index
103
+ type: JSONType<"object", IsPartial>
104
+ additionalProperties?: boolean | UncheckedJSONSchemaType<T[string], false>
105
+ unevaluatedProperties?: boolean | UncheckedJSONSchemaType<T[string], false>
106
+ properties?: IsPartial extends true
107
+ ? Partial<UncheckedPropertiesSchema<T>>
108
+ : UncheckedPropertiesSchema<T>
109
+ patternProperties?: Record<string, UncheckedJSONSchemaType<T[string], false>>
110
+ propertyNames?: Omit<UncheckedJSONSchemaType<string, false>, "type"> & {type?: "string"}
111
+ dependencies?: {[K in keyof T]?: readonly (keyof T)[] | UncheckedPartialSchema<T>}
112
+ dependentRequired?: {[K in keyof T]?: readonly (keyof T)[]}
113
+ dependentSchemas?: {[K in keyof T]?: UncheckedPartialSchema<T>}
114
+ minProperties?: number
115
+ maxProperties?: number
116
+ } & (IsPartial extends true // "required" is not necessary if it's a non-partial type with no required keys // are listed it only asserts that optional cannot be listed. // "required" type does not guarantee that all required properties
117
+ ? {required: readonly (keyof T)[]}
118
+ : [UncheckedRequiredMembers<T>] extends [never]
119
+ ? {required?: readonly UncheckedRequiredMembers<T>[]}
120
+ : {required: readonly UncheckedRequiredMembers<T>[]})
121
+ : T extends null
122
+ ? {
123
+ type: JSONType<"null", IsPartial>
124
+ nullable: true
125
+ }
126
+ : never) & {
127
+ allOf?: readonly UncheckedPartialSchema<T>[]
128
+ anyOf?: readonly UncheckedPartialSchema<T>[]
129
+ oneOf?: readonly UncheckedPartialSchema<T>[]
130
+ if?: UncheckedPartialSchema<T>
131
+ then?: UncheckedPartialSchema<T>
132
+ else?: UncheckedPartialSchema<T>
133
+ not?: UncheckedPartialSchema<T>
134
+ })
135
+ ) & {
136
+ [keyword: string]: any
137
+ $id?: string
138
+ $ref?: string
139
+ $defs?: Record<string, UncheckedJSONSchemaType<Known, true>>
140
+ definitions?: Record<string, UncheckedJSONSchemaType<Known, true>>
141
+ }
142
+
143
+ export type JSONSchemaType<T> = StrictNullChecksWrapper<
144
+ "JSONSchemaType",
145
+ UncheckedJSONSchemaType<T, false>
146
+ >
147
+
148
+ type Known =
149
+ | {[key: string]: Known}
150
+ | [Known, ...Known[]]
151
+ | Known[]
152
+ | number
153
+ | string
154
+ | boolean
155
+ | null
156
+
157
+ type UncheckedPropertiesSchema<T> = {
158
+ [K in keyof T]-?: (UncheckedJSONSchemaType<T[K], false> & Nullable<T[K]>) | {$ref: string}
159
+ }
160
+
161
+ export type PropertiesSchema<T> = StrictNullChecksWrapper<
162
+ "PropertiesSchema",
163
+ UncheckedPropertiesSchema<T>
164
+ >
165
+
166
+ type UncheckedRequiredMembers<T> = {
167
+ [K in keyof T]-?: undefined extends T[K] ? never : K
168
+ }[keyof T]
169
+
170
+ export type RequiredMembers<T> = StrictNullChecksWrapper<
171
+ "RequiredMembers",
172
+ UncheckedRequiredMembers<T>
173
+ >
174
+
175
+ type Nullable<T> = undefined extends T
176
+ ? {
177
+ nullable: true
178
+ const?: null // any non-null value would fail `const: null`, `null` would fail any other value in const
179
+ enum?: readonly (T | null)[] // `null` must be explicitly included in "enum" for `null` to pass
180
+ default?: T | null
181
+ }
182
+ : {
183
+ nullable?: false
184
+ const?: T
185
+ enum?: readonly T[]
186
+ default?: T
187
+ }
@@ -0,0 +1,273 @@
1
+ /** numeric strings */
2
+ type NumberType = "float32" | "float64" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32"
3
+
4
+ /** string strings */
5
+ type StringType = "string" | "timestamp"
6
+
7
+ /** Generic JTD Schema without inference of the represented type */
8
+ export type SomeJTDSchemaType = (
9
+ | // ref
10
+ {ref: string}
11
+ // primitives
12
+ | {type: NumberType | StringType | "boolean"}
13
+ // enum
14
+ | {enum: string[]}
15
+ // elements
16
+ | {elements: SomeJTDSchemaType}
17
+ // values
18
+ | {values: SomeJTDSchemaType}
19
+ // properties
20
+ | {
21
+ properties: Record<string, SomeJTDSchemaType>
22
+ optionalProperties?: Record<string, SomeJTDSchemaType>
23
+ additionalProperties?: boolean
24
+ }
25
+ | {
26
+ properties?: Record<string, SomeJTDSchemaType>
27
+ optionalProperties: Record<string, SomeJTDSchemaType>
28
+ additionalProperties?: boolean
29
+ }
30
+ // discriminator
31
+ | {discriminator: string; mapping: Record<string, SomeJTDSchemaType>}
32
+ // empty
33
+ // NOTE see the end of
34
+ // https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
35
+ // eslint-disable-next-line @typescript-eslint/ban-types
36
+ | {}
37
+ ) & {
38
+ nullable?: boolean
39
+ metadata?: Record<string, unknown>
40
+ definitions?: Record<string, SomeJTDSchemaType>
41
+ }
42
+
43
+ /** required keys of an object, not undefined */
44
+ type RequiredKeys<T> = {
45
+ [K in keyof T]-?: undefined extends T[K] ? never : K
46
+ }[keyof T]
47
+
48
+ /** optional or undifined-able keys of an object */
49
+ type OptionalKeys<T> = {
50
+ [K in keyof T]-?: undefined extends T[K] ? K : never
51
+ }[keyof T]
52
+
53
+ /** type is true if T is a union type */
54
+ type IsUnion_<T, U extends T = T> = false extends (
55
+ T extends unknown ? ([U] extends [T] ? false : true) : never
56
+ )
57
+ ? false
58
+ : true
59
+ type IsUnion<T> = IsUnion_<T>
60
+
61
+ /** type is true if T is identically E */
62
+ type TypeEquality<T, E> = [T] extends [E] ? ([E] extends [T] ? true : false) : false
63
+
64
+ /** type is true if T or null is identically E or null*/
65
+ type NullTypeEquality<T, E> = TypeEquality<T | null, E | null>
66
+
67
+ /** gets only the string literals of a type or null if a type isn't a string literal */
68
+ type EnumString<T> = [T] extends [never]
69
+ ? null
70
+ : T extends string
71
+ ? string extends T
72
+ ? null
73
+ : T
74
+ : null
75
+
76
+ /** true if type is a union of string literals */
77
+ type IsEnum<T> = null extends EnumString<T> ? false : true
78
+
79
+ /** true only if all types are array types (not tuples) */
80
+ // NOTE relies on the fact that tuples don't have an index at 0.5, but arrays
81
+ // have an index at every number
82
+ type IsElements<T> = false extends IsUnion<T>
83
+ ? [T] extends [readonly unknown[]]
84
+ ? undefined extends T[0.5]
85
+ ? false
86
+ : true
87
+ : false
88
+ : false
89
+
90
+ /** true if the the type is a values type */
91
+ type IsValues<T> = false extends IsUnion<T> ? TypeEquality<keyof T, string> : false
92
+
93
+ /** true if type is a properties type and Union is false, or type is a discriminator type and Union is true */
94
+ type IsRecord<T, Union extends boolean> = Union extends IsUnion<T>
95
+ ? null extends EnumString<keyof T>
96
+ ? false
97
+ : true
98
+ : false
99
+
100
+ /** true if type represents an empty record */
101
+ type IsEmptyRecord<T> = [T] extends [Record<string, never>]
102
+ ? [T] extends [never]
103
+ ? false
104
+ : true
105
+ : false
106
+
107
+ /** actual schema */
108
+ export type JTDSchemaType<T, D extends Record<string, unknown> = Record<string, never>> = (
109
+ | // refs - where null wasn't specified, must match exactly
110
+ (null extends EnumString<keyof D>
111
+ ? never
112
+ :
113
+ | ({[K in keyof D]: [T] extends [D[K]] ? {ref: K} : never}[keyof D] & {nullable?: false})
114
+ // nulled refs - if ref is nullable and nullable is specified, then it can
115
+ // match either null or non-null definitions
116
+ | (null extends T
117
+ ? {
118
+ [K in keyof D]: [Exclude<T, null>] extends [Exclude<D[K], null>]
119
+ ? {ref: K}
120
+ : never
121
+ }[keyof D] & {nullable: true}
122
+ : never))
123
+ // empty - empty schemas also treat nullable differently in that it's now fully ignored
124
+ | (unknown extends T ? {nullable?: boolean} : never)
125
+ // all other types // numbers - only accepts the type number
126
+ | ((true extends NullTypeEquality<T, number>
127
+ ? {type: NumberType}
128
+ : // booleans - accepts the type boolean
129
+ true extends NullTypeEquality<T, boolean>
130
+ ? {type: "boolean"}
131
+ : // strings - only accepts the type string
132
+ true extends NullTypeEquality<T, string>
133
+ ? {type: StringType}
134
+ : // strings - only accepts the type Date
135
+ true extends NullTypeEquality<T, Date>
136
+ ? {type: "timestamp"}
137
+ : // enums - only accepts union of string literals
138
+ // TODO we can't actually check that everything in the union was specified
139
+ true extends IsEnum<Exclude<T, null>>
140
+ ? {enum: EnumString<Exclude<T, null>>[]}
141
+ : // arrays - only accepts arrays, could be array of unions to be resolved later
142
+ true extends IsElements<Exclude<T, null>>
143
+ ? T extends readonly (infer E)[]
144
+ ? {
145
+ elements: JTDSchemaType<E, D>
146
+ }
147
+ : never
148
+ : // empty properties
149
+ true extends IsEmptyRecord<Exclude<T, null>>
150
+ ?
151
+ | {properties: Record<string, never>; optionalProperties?: Record<string, never>}
152
+ | {optionalProperties: Record<string, never>}
153
+ : // values
154
+ true extends IsValues<Exclude<T, null>>
155
+ ? T extends Record<string, infer V>
156
+ ? {
157
+ values: JTDSchemaType<V, D>
158
+ }
159
+ : never
160
+ : // properties
161
+ true extends IsRecord<Exclude<T, null>, false>
162
+ ? ([RequiredKeys<Exclude<T, null>>] extends [never]
163
+ ? {
164
+ properties?: Record<string, never>
165
+ }
166
+ : {
167
+ properties: {[K in RequiredKeys<T>]: JTDSchemaType<T[K], D>}
168
+ }) &
169
+ ([OptionalKeys<Exclude<T, null>>] extends [never]
170
+ ? {
171
+ optionalProperties?: Record<string, never>
172
+ }
173
+ : {
174
+ optionalProperties: {
175
+ [K in OptionalKeys<T>]: JTDSchemaType<Exclude<T[K], undefined>, D>
176
+ }
177
+ }) & {
178
+ additionalProperties?: boolean
179
+ }
180
+ : // discriminator
181
+ true extends IsRecord<Exclude<T, null>, true>
182
+ ? {
183
+ [K in keyof Exclude<T, null>]-?: Exclude<T, null>[K] extends string
184
+ ? {
185
+ discriminator: K
186
+ mapping: {
187
+ // TODO currently allows descriminator to be present in schema
188
+ [M in Exclude<T, null>[K]]: JTDSchemaType<
189
+ Omit<T extends Record<K, M> ? T : never, K>,
190
+ D
191
+ >
192
+ }
193
+ }
194
+ : never
195
+ }[keyof Exclude<T, null>]
196
+ : never) &
197
+ (null extends T
198
+ ? {
199
+ nullable: true
200
+ }
201
+ : {nullable?: false}))
202
+ ) & {
203
+ // extra properties
204
+ metadata?: Record<string, unknown>
205
+ // TODO these should only be allowed at the top level
206
+ definitions?: {[K in keyof D]: JTDSchemaType<D[K], D>}
207
+ }
208
+
209
+ type JTDDataDef<S, D extends Record<string, unknown>> =
210
+ | // ref
211
+ (S extends {ref: string}
212
+ ? D extends {[K in S["ref"]]: infer V}
213
+ ? JTDDataDef<V, D>
214
+ : never
215
+ : // type
216
+ S extends {type: NumberType}
217
+ ? number
218
+ : S extends {type: "boolean"}
219
+ ? boolean
220
+ : S extends {type: "string"}
221
+ ? string
222
+ : S extends {type: "timestamp"}
223
+ ? string | Date
224
+ : // enum
225
+ S extends {enum: readonly (infer E)[]}
226
+ ? string extends E
227
+ ? never
228
+ : [E] extends [string]
229
+ ? E
230
+ : never
231
+ : // elements
232
+ S extends {elements: infer E}
233
+ ? JTDDataDef<E, D>[]
234
+ : // properties
235
+ S extends {
236
+ properties: Record<string, unknown>
237
+ optionalProperties?: Record<string, unknown>
238
+ additionalProperties?: boolean
239
+ }
240
+ ? {-readonly [K in keyof S["properties"]]-?: JTDDataDef<S["properties"][K], D>} & {
241
+ -readonly [K in keyof S["optionalProperties"]]+?: JTDDataDef<
242
+ S["optionalProperties"][K],
243
+ D
244
+ >
245
+ } & ([S["additionalProperties"]] extends [true] ? Record<string, unknown> : unknown)
246
+ : S extends {
247
+ properties?: Record<string, unknown>
248
+ optionalProperties: Record<string, unknown>
249
+ additionalProperties?: boolean
250
+ }
251
+ ? {-readonly [K in keyof S["properties"]]-?: JTDDataDef<S["properties"][K], D>} & {
252
+ -readonly [K in keyof S["optionalProperties"]]+?: JTDDataDef<
253
+ S["optionalProperties"][K],
254
+ D
255
+ >
256
+ } & ([S["additionalProperties"]] extends [true] ? Record<string, unknown> : unknown)
257
+ : // values
258
+ S extends {values: infer V}
259
+ ? Record<string, JTDDataDef<V, D>>
260
+ : // discriminator
261
+ S extends {discriminator: infer M; mapping: Record<string, unknown>}
262
+ ? [M] extends [string]
263
+ ? {
264
+ [K in keyof S["mapping"]]: JTDDataDef<S["mapping"][K], D> & {[KM in M]: K}
265
+ }[keyof S["mapping"]]
266
+ : never
267
+ : // empty
268
+ unknown)
269
+ | (S extends {nullable: true} ? null : never)
270
+
271
+ export type JTDDataType<S> = S extends {definitions: Record<string, unknown>}
272
+ ? JTDDataDef<S, S["definitions"]>
273
+ : JTDDataDef<S, Record<string, never>>