@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,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjenStruct = void 0;
4
+ const path_1 = require("path");
5
+ const spec_1 = require("@jsii/spec");
6
+ const projen_1 = require("projen");
7
+ const ts_interface_1 = require("./ts-interface");
8
+ const builder_1 = require("../builder");
9
+ /**
10
+ * A component generating a jsii-compatible struct
11
+ */
12
+ class ProjenStruct extends projen_1.Component {
13
+ constructor(tsProject, options) {
14
+ super(tsProject);
15
+ this.tsProject = tsProject;
16
+ this.options = options;
17
+ const fqn = options.fqn ?? `${tsProject.name}.${options.name}`;
18
+ this.builder = builder_1.Struct.fromSpec({
19
+ kind: spec_1.TypeKind.Interface,
20
+ assembly: fqn.split('.').at(0) ?? tsProject.name,
21
+ fqn,
22
+ name: options.name,
23
+ docs: options.docs ?? {
24
+ summary: options.description ?? options.name,
25
+ },
26
+ });
27
+ }
28
+ preSynthesize() {
29
+ const baseDir = this.tsProject.srcdir ?? this.tsProject.outdir;
30
+ const outputFile = this.options.filePath ?? (0, path_1.join)(baseDir, fqnToPath(this.builder.spec.fqn));
31
+ new ts_interface_1.TypeScriptInterfaceFile(this.tsProject, outputFile, this.builder.spec, {
32
+ ...this.options.outputFileOptions,
33
+ importLocations: {
34
+ [this.builder.spec.assembly]: relativeImport(outputFile, baseDir),
35
+ ...this.options.importLocations,
36
+ },
37
+ });
38
+ }
39
+ get spec() {
40
+ return this.builder.spec;
41
+ }
42
+ add(...props) {
43
+ this.builder.add(...props);
44
+ return this;
45
+ }
46
+ mixin(...sources) {
47
+ this.builder.mixin(...sources);
48
+ return this;
49
+ }
50
+ replace(name, replacement) {
51
+ this.builder.replace(name, replacement);
52
+ return this;
53
+ }
54
+ map(callbackfn) {
55
+ this.builder.map(callbackfn);
56
+ return this;
57
+ }
58
+ update(name, update) {
59
+ this.builder.update(name, update);
60
+ return this;
61
+ }
62
+ updateEvery(callbackfn) {
63
+ this.builder.updateEvery(callbackfn);
64
+ return this;
65
+ }
66
+ updateAll(update) {
67
+ this.builder.updateAll(update);
68
+ return this;
69
+ }
70
+ rename(from, to) {
71
+ this.builder.rename(from, to);
72
+ return this;
73
+ }
74
+ allOptional() {
75
+ this.builder.allOptional();
76
+ return this;
77
+ }
78
+ filter(predicate) {
79
+ this.builder.filter(predicate);
80
+ return this;
81
+ }
82
+ only(...keep) {
83
+ this.builder.only(...keep);
84
+ return this;
85
+ }
86
+ omit(...remove) {
87
+ this.builder.omit(...remove);
88
+ return this;
89
+ }
90
+ withoutDeprecated() {
91
+ this.builder.withoutDeprecated();
92
+ return this;
93
+ }
94
+ get properties() {
95
+ return this.builder.properties;
96
+ }
97
+ get fqn() {
98
+ return this.builder.fqn;
99
+ }
100
+ }
101
+ exports.ProjenStruct = ProjenStruct;
102
+ function relativeImport(from, target) {
103
+ const diff = path_1.posix.relative((0, path_1.dirname)(from), target);
104
+ if (!diff) {
105
+ return '.' + path_1.posix.sep;
106
+ }
107
+ return diff + path_1.posix.sep;
108
+ }
109
+ function fqnToPath(fqn) {
110
+ return (0, path_1.join)(...fqn.split('.').slice(1)) + '.ts';
111
+ }
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLXN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vcHJvamVuLXN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEM7QUFFNUMscUNBQXNDO0FBRXRDLG1DQUFtQztBQUVuQyxpREFBeUQ7QUFPekQsd0NBRW9CO0FBOERwQjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGtCQUFTO0lBR3pDLFlBQ1UsU0FBdUMsRUFDdkMsT0FBNEI7UUFFcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSFQsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFJcEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxFQUFFLGVBQVEsQ0FBQyxTQUFTO1lBQ3hCLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSTtZQUNoRCxHQUFHO1lBQ0gsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJO2dCQUNwQixPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsSUFBSTthQUM3QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFR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QWlCLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUEvRkQsb0NBK0ZDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWSxFQUFFLE1BQWM7SUFDbEQsTUFBTSxJQUFJLEdBQUcsWUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEdBQUcsR0FBRyxZQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLElBQUksR0FBRyxZQUFLLENBQUMsR0FBRyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFXO0lBQzVCLE9BQU8sSUFBQSxXQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlybmFtZSwgam9pbiwgcG9zaXggfSBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRG9jcywgUHJvcGVydHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IFR5cGVLaW5kIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgdHlwZSB7IHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdEludGVyZmFjZUZpbGVPcHRpb25zIH0gZnJvbSAnLi90cy1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdEludGVyZmFjZUZpbGUgfSBmcm9tICcuL3RzLWludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEhhc1Byb3BlcnRpZXMsXG4gIElTdHJ1Y3RCdWlsZGVyLFxuICBIYXNGdWxseVF1YWxpZmllZE5hbWUsXG4gIEhhc1N0cnVjdFNwZWMsXG59IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgU3RydWN0LFxufSBmcm9tICcuLi9idWlsZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5TdHJ1Y3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBuZXcgc3RydWN0XG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2Mgc3RyaW5nIGZvciB0aGUgc3RydWN0XG4gICAqXG4gICAqIEp1c3QgZG9lcyB0aGUgc3VtbWFyeVxuICAgKiBJZiB5b3Ugd2FudCB0byBhZGQgYSBmdWxsIGRlc2NyaXB0aW9uLCB1c2UgYGRvY3NgIGluc3RlYWQuXG4gICAqIFRoaXMgd2lsbCBub3QgYmUgdXNlZCBpZiBgZG9jc2AgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3RydWN0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBmb3IgdGhlIHN0cnVjdFxuICAgKlxuICAgKiBVc2UgdGhpcyB0byBhZGQgYSBmdWxsIGRlc2NyaXB0aW9uLlxuICAgKiBJZiB5b3Ugb25seSB3YW50IHRvIGFkZCBhIHN1bW1hcnksIHVzZSBgZGVzY3JpcHRpb25gIGluc3RlYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSwgdXNlIGBkZXNjcmlwdGlvbmAgaWYgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvY3M/OiBEb2NzO1xuICAvKipcbiAgICogVGhlIGZxbiBvZiB0aGUgc3RydWN0XG4gICAqXG4gICAqIFVzZWQgdG8gYXV0by1hZGQgaW1wb3J0cy5cbiAgICogQWxsIHJlZmVyZW5jZWQgdHlwZXMgYXJlIGxvYWRlZCBiYXNlZCBvbiB0aGUgZnFuIGhpZXJhcmNoeS5cbiAgICpcbiAgICogU2VlIGBpbXBvcnRMb2NhdGlvbnNgIGZvciBjdXN0b21pemF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAke3Byb2plY3QubmFtZX0uJHtvcHRpb25zLm5hbWV9YFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xuICAvKipcbiAgICogT3V0cHV0IGZpbGUgcGF0aFxuICAgKiBAZGVmYXVsdCAtIGluc2lkZSBgc3JjZGlyYCBvciBgb3V0ZGlyYCB3aXRoIHRoZSBmcW4gdHVybmVkIGludG8gYSBwYXRoXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBvdXRwdXQgYFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RmlsZU9wdGlvbnM/OiBPbWl0PFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucywgJ2ltcG9ydExvY2F0aW9ucyc+O1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IGdlbmVyYXRpbmcgYSBqc2lpLWNvbXBhdGlibGUgc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5TdHJ1Y3QgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJU3RydWN0QnVpbGRlciwgSGFzUHJvcGVydGllcywgSGFzRnVsbHlRdWFsaWZpZWROYW1lLCBIYXNTdHJ1Y3RTcGVjIHtcbiAgcHJpdmF0ZSBidWlsZGVyOiBTdHJ1Y3Q7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHNQcm9qZWN0OiB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHByaXZhdGUgb3B0aW9uczogUHJvamVuU3RydWN0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIodHNQcm9qZWN0KTtcblxuICAgIGNvbnN0IGZxbiA9IG9wdGlvbnMuZnFuID8/IGAke3RzUHJvamVjdC5uYW1lfS4ke29wdGlvbnMubmFtZX1gO1xuICAgIHRoaXMuYnVpbGRlciA9IFN0cnVjdC5mcm9tU3BlYyh7XG4gICAgICBraW5kOiBUeXBlS2luZC5JbnRlcmZhY2UsXG4gICAgICBhc3NlbWJseTogZnFuLnNwbGl0KCcuJykuYXQoMCkgPz8gdHNQcm9qZWN0Lm5hbWUsXG4gICAgICBmcW4sXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkb2NzOiBvcHRpb25zLmRvY3MgPz8ge1xuICAgICAgICBzdW1tYXJ5OiBvcHRpb25zLmRlc2NyaXB0aW9uID8/IG9wdGlvbnMubmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGJhc2VEaXIgPSB0aGlzLnRzUHJvamVjdC5zcmNkaXIgPz8gdGhpcy50c1Byb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IG91dHB1dEZpbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmZpbGVQYXRoID8/IGpvaW4oYmFzZURpciwgZnFuVG9QYXRoKHRoaXMuYnVpbGRlci5zcGVjLmZxbikpO1xuICAgIG5ldyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSh0aGlzLnRzUHJvamVjdCwgb3V0cHV0RmlsZSwgdGhpcy5idWlsZGVyLnNwZWMsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5vdXRwdXRGaWxlT3B0aW9ucyxcbiAgICAgIGltcG9ydExvY2F0aW9uczoge1xuICAgICAgICBbdGhpcy5idWlsZGVyLnNwZWMuYXNzZW1ibHldOiByZWxhdGl2ZUltcG9ydChvdXRwdXRGaWxlLCBiYXNlRGlyKSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmltcG9ydExvY2F0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRlci5zcGVjO1xuICB9XG4gIGFkZCguLi5wcm9wczogUHJvcGVydHlbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5hZGQoLi4ucHJvcHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG1peGluKC4uLnNvdXJjZXM6IEhhc1Byb3BlcnRpZXNbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5taXhpbiguLi5zb3VyY2VzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZXBsYWNlKG5hbWU6IHN0cmluZywgcmVwbGFjZW1lbnQ6IFByb3BlcnR5KTogSVN0cnVjdEJ1aWxkZXIge1xuICAgIHRoaXMuYnVpbGRlci5yZXBsYWNlKG5hbWUsIHJlcGxhY2VtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBtYXAoY2FsbGJhY2tmbjogKHByb3A6IFByb3BlcnR5KSA9PiBQcm9wZXJ0eSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5tYXAoY2FsbGJhY2tmbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci51cGRhdGUobmFtZSwgdXBkYXRlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUV2ZXJ5KGNhbGxiYWNrZm4pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHVwZGF0ZUFsbCh1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUFsbCh1cGRhdGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJlbmFtZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIucmVuYW1lKGZyb20sIHRvKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBhbGxPcHRpb25hbCgpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuYWxsT3B0aW9uYWwoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBmaWx0ZXIocHJlZGljYXRlOiAocHJvcDogUHJvcGVydHkpID0+IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuZmlsdGVyKHByZWRpY2F0ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb25seSguLi5rZWVwOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbmx5KC4uLmtlZXApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9taXQoLi4ucmVtb3ZlOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbWl0KC4uLnJlbW92ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd2l0aG91dERlcHJlY2F0ZWQoKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLndpdGhvdXREZXByZWNhdGVkKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHVibGljIGdldCBwcm9wZXJ0aWVzKCk6IFByb3BlcnR5W10ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIucHJvcGVydGllcztcbiAgfVxuICBwdWJsaWMgZ2V0IGZxbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIuZnFuO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbGF0aXZlSW1wb3J0KGZyb206IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkaWZmID0gcG9zaXgucmVsYXRpdmUoZGlybmFtZShmcm9tKSwgdGFyZ2V0KTtcbiAgaWYgKCFkaWZmKSB7XG4gICAgcmV0dXJuICcuJyArIHBvc2l4LnNlcDtcbiAgfVxuICByZXR1cm4gZGlmZiArIHBvc2l4LnNlcDtcbn1cblxuZnVuY3Rpb24gZnFuVG9QYXRoKGZxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4oLi4uZnFuLnNwbGl0KCcuJykuc2xpY2UoMSkpICsgJy50cyc7XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import type { InterfaceType } from '@jsii/spec';
2
+ import type { Project, SourceCodeOptions } from 'projen';
3
+ import { TextFile } from 'projen';
4
+ import type { TypeScriptRendererOptions } from '../renderer';
5
+ /**
6
+ * Options for `TypeScriptInterfaceFile`.
7
+ */
8
+ export interface TypeScriptInterfaceFileOptions extends TypeScriptRendererOptions, SourceCodeOptions {
9
+ }
10
+ /**
11
+ * A TypeScript interface rendered from a jsii interface specification
12
+ */
13
+ export declare class TypeScriptInterfaceFile extends TextFile {
14
+ constructor(project: Project, filePath: string, spec: InterfaceType, options?: TypeScriptInterfaceFileOptions);
15
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeScriptInterfaceFile = void 0;
4
+ const projen_1 = require("projen");
5
+ const renderer_1 = require("../renderer");
6
+ /**
7
+ * A TypeScript interface rendered from a jsii interface specification
8
+ */
9
+ class TypeScriptInterfaceFile extends projen_1.TextFile {
10
+ constructor(project, filePath, spec, options = {}) {
11
+ super(project, filePath, options);
12
+ const renderer = new renderer_1.TypeScriptRenderer(options);
13
+ this.addLine(`// ${this.marker}`);
14
+ this.addLine(renderer.renderStructSpec(spec));
15
+ }
16
+ }
17
+ exports.TypeScriptInterfaceFile = TypeScriptInterfaceFile;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi90cy1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUNBQWtDO0FBRWxDLDBDQUFpRDtBQU9qRDs7R0FFRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsaUJBQVE7SUFDbkQsWUFDRSxPQUFnQixFQUNoQixRQUFnQixFQUNoQixJQUFtQixFQUNuQixVQUEwQyxFQUFFO1FBRTVDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sUUFBUSxHQUFHLElBQUksNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBYkQsMERBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEludGVyZmFjZVR5cGUgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgU291cmNlQ29kZU9wdGlvbnMgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zIH0gZnJvbSAnLi4vcmVuZGVyZXInO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFJlbmRlcmVyIH0gZnJvbSAnLi4vcmVuZGVyZXInO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdEludGVyZmFjZUZpbGVPcHRpb25zIGV4dGVuZHMgVHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucywgU291cmNlQ29kZU9wdGlvbnMge31cblxuLyoqXG4gKiBBIFR5cGVTY3JpcHQgaW50ZXJmYWNlIHJlbmRlcmVkIGZyb20gYSBqc2lpIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IFByb2plY3QsXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICAgIG9wdGlvbnM6IFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBUeXBlU2NyaXB0UmVuZGVyZXIob3B0aW9ucyk7XG4gICAgdGhpcy5hZGRMaW5lKGAvLyAke3RoaXMubWFya2VyfWApO1xuICAgIHRoaXMuYWRkTGluZShyZW5kZXJlci5yZW5kZXJTdHJ1Y3RTcGVjKHNwZWMpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ export * from './typescript';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./typescript"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVuZGVyZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdCc7XG4iXX0=
@@ -0,0 +1,53 @@
1
+ import type { InterfaceType, Property } from '@jsii/spec';
2
+ import type { HasStructSpec } from '../builder';
3
+ /**
4
+ * Options for `TypeScriptRenderer`.
5
+ */
6
+ export interface TypeScriptRendererOptions {
7
+ /**
8
+ * The module locations assemblies should be imported from
9
+ *
10
+ * All types are imported from the top-level of the module.
11
+ * This map can be used to overwrite the default import locations.
12
+ *
13
+ * For local imports, the import traverse up a number of levels equivalent to the number of fqn parts of the rendered type.
14
+ * E.g. if the the rendered type is `pkg.interface`, it is assumed to be at the top-level and imports from the same assembly would be from `./`.
15
+ * If the rendered type is `pkg.nested.sub.interface` a local import will be from `../../`.
16
+ *
17
+ * @default - uses the assembly name for external packages
18
+ * local imports traverse up a number of levels equivalent to the number of fqn parts
19
+ */
20
+ readonly importLocations?: Record<string, string>;
21
+ /**
22
+ * Indentation size
23
+ *
24
+ * @default 2
25
+ */
26
+ readonly indent?: number;
27
+ /**
28
+ * Use explicit `type` imports when importing referenced modules.
29
+ *
30
+ * @see https://www.typescriptlang.org/docs/handbook/modules.html#importing-types
31
+ * @default true
32
+ */
33
+ readonly useTypeImports?: boolean;
34
+ }
35
+ /**
36
+ * Jsii to TypeScript renderer
37
+ */
38
+ export declare class TypeScriptRenderer {
39
+ private buffer;
40
+ private options;
41
+ constructor(options?: TypeScriptRendererOptions);
42
+ /**
43
+ * Render something that has a struct spec
44
+ */
45
+ renderStruct(struct: HasStructSpec): string;
46
+ /**
47
+ * Render a jsii InterfaceType spec
48
+ */
49
+ renderStructSpec(spec: InterfaceType): string;
50
+ protected renderImports(modules: Map<string, Set<string>>): void;
51
+ protected renderProperty(p: Property, containingFqn: string): void;
52
+ protected renderDocBlock(lines: string[]): void;
53
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeScriptRenderer = void 0;
4
+ const spec_1 = require("@jsii/spec");
5
+ const private_1 = require("../private");
6
+ /**
7
+ * Jsii to TypeScript renderer
8
+ */
9
+ class TypeScriptRenderer {
10
+ constructor(options = {}) {
11
+ this.options = {
12
+ importLocations: options.importLocations ?? {},
13
+ indent: options.indent ?? 2,
14
+ useTypeImports: options.useTypeImports ?? true,
15
+ };
16
+ this.buffer = new CodeBuffer(' '.repeat(this.options.indent));
17
+ }
18
+ /**
19
+ * Render something that has a struct spec
20
+ */
21
+ renderStruct(struct) {
22
+ return this.renderStructSpec(struct.spec);
23
+ }
24
+ /**
25
+ * Render a jsii InterfaceType spec
26
+ */
27
+ renderStructSpec(spec) {
28
+ this.buffer.flush();
29
+ this.renderImports(extractImports(spec, this.options.importLocations));
30
+ this.buffer.line();
31
+ this.renderDocBlock(docsToLines(spec.docs));
32
+ this.buffer.open(`export interface ${spec.name} {`);
33
+ spec.properties?.forEach((p) => this.renderProperty(p, spec.fqn));
34
+ this.buffer.close('}');
35
+ this.buffer.line();
36
+ return this.buffer.flush().join('\n');
37
+ }
38
+ renderImports(modules) {
39
+ Array.from(modules.keys())
40
+ .sort(private_1.comparePath)
41
+ .forEach((mod) => {
42
+ const imports = Array.from(modules.get(mod)?.values() || []);
43
+ const importStmt = this.options.useTypeImports
44
+ ? 'import type'
45
+ : 'import';
46
+ this.buffer.line(`${importStmt} { ${imports
47
+ .sort(private_1.compareLowerCase)
48
+ .join(', ')} } from '${mod}';`);
49
+ });
50
+ }
51
+ renderProperty(p, containingFqn) {
52
+ const docs = structuredClone(p.docs);
53
+ if (docs) {
54
+ this.renderDocBlock(docsToLines(docs));
55
+ }
56
+ this.buffer.line(`readonly ${p.name}${p.optional ? '?' : ''}: ${typeRefToType(p.type, containingFqn)};`);
57
+ }
58
+ renderDocBlock(lines) {
59
+ if (!lines.length) {
60
+ return;
61
+ }
62
+ this.buffer.line('/**');
63
+ lines.forEach((line) => this.buffer.line(` * ${line}`));
64
+ this.buffer.line(' */');
65
+ }
66
+ }
67
+ exports.TypeScriptRenderer = TypeScriptRenderer;
68
+ class CodeBuffer {
69
+ constructor(indent = ' ') {
70
+ this.indent = indent;
71
+ this.lines = new Array();
72
+ this.indentLevel = 0;
73
+ }
74
+ flush() {
75
+ const current = this.lines;
76
+ this.reset();
77
+ return current;
78
+ }
79
+ line(code) {
80
+ const prefix = this.indent.repeat(this.indentLevel);
81
+ this.lines.push((prefix + (code ?? '')).trimEnd());
82
+ }
83
+ open(code) {
84
+ if (code) {
85
+ this.line(code);
86
+ }
87
+ this.indentLevel++;
88
+ }
89
+ close(code) {
90
+ if (this.indentLevel === 0) {
91
+ throw new Error('Cannot decrease indent level below zero');
92
+ }
93
+ this.indentLevel--;
94
+ if (code) {
95
+ this.line(code);
96
+ }
97
+ }
98
+ reset() {
99
+ this.lines = new Array();
100
+ this.indentLevel = 0;
101
+ }
102
+ }
103
+ function docsToLines(docs) {
104
+ if (!docs) {
105
+ return [];
106
+ }
107
+ const lines = new Array();
108
+ if (docs.summary) {
109
+ lines.push(docs.summary);
110
+ }
111
+ if (docs.remarks) {
112
+ lines.push(...docs.remarks.split('\n'));
113
+ }
114
+ if (docs.default) {
115
+ lines.push(`@default ${docs.default}`);
116
+ }
117
+ if (docs.deprecated) {
118
+ lines.push(`@deprecated ${docs.deprecated}`);
119
+ }
120
+ if (docs.stability) {
121
+ lines.push(`@stability ${docs.stability}`);
122
+ }
123
+ if (docs.custom) {
124
+ Object.entries(docs.custom).forEach((entry) => {
125
+ const [tag, value] = entry;
126
+ lines.push(`@${tag} ${value}`);
127
+ });
128
+ }
129
+ return lines;
130
+ }
131
+ function typeRefToType(t, containingFqn) {
132
+ if ((0, spec_1.isPrimitiveTypeReference)(t)) {
133
+ return t.primitive;
134
+ }
135
+ if ((0, spec_1.isNamedTypeReference)(t)) {
136
+ return t.fqn.split('.').slice(1).join('.');
137
+ }
138
+ if ((0, spec_1.isCollectionTypeReference)(t)) {
139
+ switch (t.collection.kind) {
140
+ case spec_1.CollectionKind.Array:
141
+ return `Array<${typeRefToType(t.collection.elementtype, containingFqn)}>`;
142
+ case spec_1.CollectionKind.Map:
143
+ return `Record<string, ${typeRefToType(t.collection.elementtype, containingFqn)}>`;
144
+ default:
145
+ return 'any';
146
+ }
147
+ }
148
+ if ((0, spec_1.isUnionTypeReference)(t)) {
149
+ return t.union.types
150
+ .map((ut) => typeRefToType(ut, containingFqn))
151
+ .join(' | ');
152
+ }
153
+ return 'any';
154
+ }
155
+ function extractImports(spec, importLocations) {
156
+ const refs = spec.properties?.flatMap((p) => collectFQNs(p.type)) || [];
157
+ return refs.reduce((mods, ref) => {
158
+ const packageName = fqnToImportName(ref, spec.fqn, importLocations);
159
+ const imports = mods.get(packageName) || new Set();
160
+ const importName = ref.split('.').slice(1)[0] || ref;
161
+ return mods.set(packageName, imports.add(importName));
162
+ }, new Map());
163
+ }
164
+ function fqnToImportName(fqn, importingFqn, importLocations) {
165
+ const localAssembly = importingFqn.split('.', 1)[0];
166
+ const importAssembly = fqn.split('.', 1)[0];
167
+ // we have a custom import path
168
+ if (importLocations[importAssembly]) {
169
+ return importLocations[importAssembly];
170
+ }
171
+ // this is the same assembly, try to guess the path to the root
172
+ if (importAssembly === localAssembly) {
173
+ const fqnParts = importingFqn.split('.').length;
174
+ if (fqnParts <= 2) {
175
+ return './';
176
+ }
177
+ return '../'.repeat(fqnParts - 2);
178
+ }
179
+ // regular third party module
180
+ return importAssembly;
181
+ }
182
+ function collectFQNs(t) {
183
+ if ((0, spec_1.isNamedTypeReference)(t)) {
184
+ return [t.fqn];
185
+ }
186
+ if ((0, spec_1.isUnionTypeReference)(t)) {
187
+ return t.union.types.flatMap(collectFQNs);
188
+ }
189
+ if ((0, spec_1.isCollectionTypeReference)(t)) {
190
+ return collectFQNs(t.collection.elementtype);
191
+ }
192
+ return [];
193
+ }
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLHFDQU1vQjtBQUVwQix3Q0FBMkQ7QUFxQzNEOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFJN0IsWUFBbUIsVUFBcUMsRUFBRTtRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUM5QyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzNCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUk7U0FDL0MsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLE1BQXFCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFtQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUks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QUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxDQUFnQjtJQUNuQyxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUF5QixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEb2NzLFxuICBJbnRlcmZhY2VUeXBlLFxuICBQcm9wZXJ0eSxcbiAgVHlwZVJlZmVyZW5jZSxcbn0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQge1xuICBDb2xsZWN0aW9uS2luZCxcbiAgaXNDb2xsZWN0aW9uVHlwZVJlZmVyZW5jZSxcbiAgaXNOYW1lZFR5cGVSZWZlcmVuY2UsXG4gIGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSxcbiAgaXNVbmlvblR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHR5cGUgeyBIYXNTdHJ1Y3RTcGVjIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wYXJlTG93ZXJDYXNlLCBjb21wYXJlUGF0aCB9IGZyb20gJy4uL3ByaXZhdGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBUeXBlU2NyaXB0UmVuZGVyZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBsb2NhdGlvbnMgYXNzZW1ibGllcyBzaG91bGQgYmUgaW1wb3J0ZWQgZnJvbVxuICAgKlxuICAgKiBBbGwgdHlwZXMgYXJlIGltcG9ydGVkIGZyb20gdGhlIHRvcC1sZXZlbCBvZiB0aGUgbW9kdWxlLlxuICAgKiBUaGlzIG1hcCBjYW4gYmUgdXNlZCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgaW1wb3J0IGxvY2F0aW9ucy5cbiAgICpcbiAgICogRm9yIGxvY2FsIGltcG9ydHMsIHRoZSBpbXBvcnQgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHMgb2YgdGhlIHJlbmRlcmVkIHR5cGUuXG4gICAqIEUuZy4gaWYgdGhlIHRoZSByZW5kZXJlZCB0eXBlIGlzIGBwa2cuaW50ZXJmYWNlYCwgaXQgaXMgYXNzdW1lZCB0byBiZSBhdCB0aGUgdG9wLWxldmVsIGFuZCBpbXBvcnRzIGZyb20gdGhlIHNhbWUgYXNzZW1ibHkgd291bGQgYmUgZnJvbSBgLi9gLlxuICAgKiBJZiB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLm5lc3RlZC5zdWIuaW50ZXJmYWNlYCBhIGxvY2FsIGltcG9ydCB3aWxsIGJlIGZyb20gYC4uLy4uL2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgYXNzZW1ibHkgbmFtZSBmb3IgZXh0ZXJuYWwgcGFja2FnZXNcbiAgICogbG9jYWwgaW1wb3J0cyB0cmF2ZXJzZSB1cCBhIG51bWJlciBvZiBsZXZlbHMgZXF1aXZhbGVudCB0byB0aGUgbnVtYmVyIG9mIGZxbiBwYXJ0c1xuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0TG9jYXRpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogSW5kZW50YXRpb24gc2l6ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBpbmRlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFVzZSBleHBsaWNpdCBgdHlwZWAgaW1wb3J0cyB3aGVuIGltcG9ydGluZyByZWZlcmVuY2VkIG1vZHVsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svbW9kdWxlcy5odG1sI2ltcG9ydGluZy10eXBlc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VUeXBlSW1wb3J0cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSnNpaSB0byBUeXBlU2NyaXB0IHJlbmRlcmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0UmVuZGVyZXIge1xuICBwcml2YXRlIGJ1ZmZlcjogQ29kZUJ1ZmZlcjtcbiAgcHJpdmF0ZSBvcHRpb25zOiBSZXF1aXJlZDxUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogVHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgaW1wb3J0TG9jYXRpb25zOiBvcHRpb25zLmltcG9ydExvY2F0aW9ucyA/PyB7fSxcbiAgICAgIGluZGVudDogb3B0aW9ucy5pbmRlbnQgPz8gMixcbiAgICAgIHVzZVR5cGVJbXBvcnRzOiBvcHRpb25zLnVzZVR5cGVJbXBvcnRzID8/IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLmJ1ZmZlciA9IG5ldyBDb2RlQnVmZmVyKCcgJy5yZXBlYXQodGhpcy5vcHRpb25zLmluZGVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBzb21ldGhpbmcgdGhhdCBoYXMgYSBzdHJ1Y3Qgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdChzdHJ1Y3Q6IEhhc1N0cnVjdFNwZWMpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclN0cnVjdFNwZWMoc3RydWN0LnNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGpzaWkgSW50ZXJmYWNlVHlwZSBzcGVjXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyU3RydWN0U3BlYyhzcGVjOiBJbnRlcmZhY2VUeXBlKTogc3RyaW5nIHtcbiAgICB0aGlzLmJ1ZmZlci5mbHVzaCgpO1xuXG4gICAgdGhpcy5yZW5kZXJJbXBvcnRzKGV4dHJhY3RJbXBvcnRzKHNwZWMsIHRoaXMub3B0aW9ucy5pbXBvcnRMb2NhdGlvbnMpKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG4gICAgdGhpcy5yZW5kZXJEb2NCbG9jayhkb2NzVG9MaW5lcyhzcGVjLmRvY3MpKTtcbiAgICB0aGlzLmJ1ZmZlci5vcGVuKGBleHBvcnQgaW50ZXJmYWNlICR7c3BlYy5uYW1lfSB7YCk7XG4gICAgc3BlYy5wcm9wZXJ0aWVzPy5mb3JFYWNoKChwKSA9PiB0aGlzLnJlbmRlclByb3BlcnR5KHAsIHNwZWMuZnFuKSk7XG4gICAgdGhpcy5idWZmZXIuY2xvc2UoJ30nKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG5cbiAgICByZXR1cm4gdGhpcy5idWZmZXIuZmx1c2goKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJbXBvcnRzKG1vZHVsZXM6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+Pikge1xuICAgIEFycmF5LmZyb20obW9kdWxlcy5rZXlzKCkpXG4gICAgICAuc29ydChjb21wYXJlUGF0aClcbiAgICAgIC5mb3JFYWNoKChtb2QpID0+IHtcbiAgICAgICAgY29uc3QgaW1wb3J0cyA9IEFycmF5LmZyb20obW9kdWxlcy5nZXQobW9kKT8udmFsdWVzKCkgfHwgW10pO1xuICAgICAgICBjb25zdCBpbXBvcnRTdG10ID0gdGhpcy5vcHRpb25zLnVzZVR5cGVJbXBvcnRzXG4gICAgICAgICAgPyAnaW1wb3J0IHR5cGUnXG4gICAgICAgICAgOiAnaW1wb3J0JztcbiAgICAgICAgdGhpcy5idWZmZXIubGluZShcbiAgICAgICAgICBgJHtpbXBvcnRTdG10fSB7ICR7aW1wb3J0c1xuICAgICAgICAgICAgLnNvcnQoY29tcGFyZUxvd2VyQ2FzZSlcbiAgICAgICAgICAgIC5qb2luKCcsICcpfSB9IGZyb20gJyR7bW9kfSc7YCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnR5KHA6IFByb3BlcnR5LCBjb250YWluaW5nRnFuOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb2NzID0gc3RydWN0dXJlZENsb25lKHAuZG9jcyk7XG4gICAgaWYgKGRvY3MpIHtcbiAgICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoZG9jcykpO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICBgcmVhZG9ubHkgJHtwLm5hbWV9JHtwLm9wdGlvbmFsID8gJz8nIDogJyd9OiAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgIHAudHlwZSxcbiAgICAgICAgY29udGFpbmluZ0ZxbixcbiAgICAgICl9O2AsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEb2NCbG9jayhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAoIWxpbmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoJy8qKicpO1xuICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHRoaXMuYnVmZmVyLmxpbmUoYCAqICR7bGluZX1gKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgnICovJyk7XG4gIH1cbn1cblxuY2xhc3MgQ29kZUJ1ZmZlciB7XG4gIHByaXZhdGUgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIGluZGVudExldmVsID0gMDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmRlbnQgPSAnICcpIHt9XG5cbiAgcHVibGljIGZsdXNoKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lcztcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHB1YmxpYyBsaW5lKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmluZGVudC5yZXBlYXQodGhpcy5pbmRlbnRMZXZlbCk7XG4gICAgdGhpcy5saW5lcy5wdXNoKChwcmVmaXggKyAoY29kZSA/PyAnJykpLnRyaW1FbmQoKSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb2RlPzogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZGVudExldmVsKys7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoY29kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmluZGVudExldmVsID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWNyZWFzZSBpbmRlbnQgbGV2ZWwgYmVsb3cgemVybycpO1xuICAgIH1cbiAgICB0aGlzLmluZGVudExldmVsLS07XG5cbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5saW5lKGNvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy5pbmRlbnRMZXZlbCA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gZG9jc1RvTGluZXMoZG9jcz86IERvY3MpOiBzdHJpbmdbXSB7XG4gIGlmICghZG9jcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBpZiAoZG9jcy5zdW1tYXJ5KSB7XG4gICAgbGluZXMucHVzaChkb2NzLnN1bW1hcnkpO1xuICB9XG4gIGlmIChkb2NzLnJlbWFya3MpIHtcbiAgICBsaW5lcy5wdXNoKC4uLmRvY3MucmVtYXJrcy5zcGxpdCgnXFxuJykpO1xuICB9XG4gIGlmIChkb2NzLmRlZmF1bHQpIHtcbiAgICBsaW5lcy5wdXNoKGBAZGVmYXVsdCAke2RvY3MuZGVmYXVsdH1gKTtcbiAgfVxuICBpZiAoZG9jcy5kZXByZWNhdGVkKSB7XG4gICAgbGluZXMucHVzaChgQGRlcHJlY2F0ZWQgJHtkb2NzLmRlcHJlY2F0ZWR9YCk7XG4gIH1cbiAgaWYgKGRvY3Muc3RhYmlsaXR5KSB7XG4gICAgbGluZXMucHVzaChgQHN0YWJpbGl0eSAke2RvY3Muc3RhYmlsaXR5fWApO1xuICB9XG4gIGlmIChkb2NzLmN1c3RvbSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRvY3MuY3VzdG9tKS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgW3RhZywgdmFsdWVdID0gZW50cnk7XG4gICAgICBsaW5lcy5wdXNoKGBAJHt0YWd9ICR7dmFsdWV9YCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHR5cGVSZWZUb1R5cGUodDogVHlwZVJlZmVyZW5jZSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnByaW1pdGl2ZTtcbiAgfVxuXG4gIGlmIChpc05hbWVkVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LmZxbi5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgc3dpdGNoICh0LmNvbGxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5BcnJheTpcbiAgICAgICAgcmV0dXJuIGBBcnJheTwke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBjYXNlIENvbGxlY3Rpb25LaW5kLk1hcDpcbiAgICAgICAgcmV0dXJuIGBSZWNvcmQ8c3RyaW5nLCAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgfVxuICB9XG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzXG4gICAgICAubWFwKCh1dCkgPT4gdHlwZVJlZlRvVHlwZSh1dCwgY29udGFpbmluZ0ZxbikpXG4gICAgICAuam9pbignIHwgJyk7XG4gIH1cblxuICByZXR1cm4gJ2FueSc7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbXBvcnRzKFxuICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCByZWZzID0gc3BlYy5wcm9wZXJ0aWVzPy5mbGF0TWFwKChwKSA9PiBjb2xsZWN0RlFOcyhwLnR5cGUpKSB8fCBbXTtcbiAgcmV0dXJuIHJlZnMucmVkdWNlKChtb2RzLCByZWYpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGZxblRvSW1wb3J0TmFtZShyZWYsIHNwZWMuZnFuLCBpbXBvcnRMb2NhdGlvbnMpO1xuICAgIGNvbnN0IGltcG9ydHMgPSBtb2RzLmdldChwYWNrYWdlTmFtZSkgfHwgbmV3IFNldCgpO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSByZWYuc3BsaXQoJy4nKS5zbGljZSgxKVswXSB8fCByZWY7XG4gICAgcmV0dXJuIG1vZHMuc2V0KHBhY2thZ2VOYW1lLCBpbXBvcnRzLmFkZChpbXBvcnROYW1lKSk7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKSk7XG59XG5cbmZ1bmN0aW9uIGZxblRvSW1wb3J0TmFtZShcbiAgZnFuOiBzdHJpbmcsXG4gIGltcG9ydGluZ0Zxbjogc3RyaW5nLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBsb2NhbEFzc2VtYmx5ID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJywgMSlbMF07XG4gIGNvbnN0IGltcG9ydEFzc2VtYmx5ID0gZnFuLnNwbGl0KCcuJywgMSlbMF07XG5cbiAgLy8gd2UgaGF2ZSBhIGN1c3RvbSBpbXBvcnQgcGF0aFxuICBpZiAoaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XSkge1xuICAgIHJldHVybiBpbXBvcnRMb2NhdGlvbnNbaW1wb3J0QXNzZW1ibHldO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhc3NlbWJseSwgdHJ5IHRvIGd1ZXNzIHRoZSBwYXRoIHRvIHRoZSByb290XG4gIGlmIChpbXBvcnRBc3NlbWJseSA9PT0gbG9jYWxBc3NlbWJseSkge1xuICAgIGNvbnN0IGZxblBhcnRzID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJykubGVuZ3RoO1xuICAgIGlmIChmcW5QYXJ0cyA8PSAyKSB7XG4gICAgICByZXR1cm4gJy4vJztcbiAgICB9XG4gICAgcmV0dXJuICcuLi8nLnJlcGVhdChmcW5QYXJ0cyAtIDIpO1xuICB9XG5cbiAgLy8gcmVndWxhciB0aGlyZCBwYXJ0eSBtb2R1bGVcbiAgcmV0dXJuIGltcG9ydEFzc2VtYmx5O1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0RlFOcyh0OiBUeXBlUmVmZXJlbmNlKTogc3RyaW5nW10ge1xuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gW3QuZnFuXTtcbiAgfVxuXG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzLmZsYXRNYXAoY29sbGVjdEZRTnMpO1xuICB9XG5cbiAgaWYgKGlzQ29sbGVjdGlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gY29sbGVjdEZRTnModC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn1cbiJdfQ==
@@ -0,0 +1,116 @@
1
+ {
2
+ "name": "@mrgrain/jsii-struct-builder",
3
+ "description": "Build jsii structs with ease",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git@github.com:mrgrain/jsii-struct-builder.git"
7
+ },
8
+ "scripts": {
9
+ "build": "npx projen build",
10
+ "bump": "npx projen bump",
11
+ "clobber": "npx projen clobber",
12
+ "compile": "npx projen compile",
13
+ "default": "npx projen default",
14
+ "eject": "npx projen eject",
15
+ "eslint": "npx projen eslint",
16
+ "logo": "npx projen logo",
17
+ "package": "npx projen package",
18
+ "post-compile": "npx projen post-compile",
19
+ "post-upgrade": "npx projen post-upgrade",
20
+ "pre-compile": "npx projen pre-compile",
21
+ "release": "npx projen release",
22
+ "test": "npx projen test",
23
+ "test:watch": "npx projen test:watch",
24
+ "unbump": "npx projen unbump",
25
+ "upgrade": "npx projen upgrade",
26
+ "watch": "npx projen watch",
27
+ "projen": "npx projen"
28
+ },
29
+ "author": {
30
+ "name": "Momo Kornher",
31
+ "url": "https://moritzkornher.de",
32
+ "organization": false
33
+ },
34
+ "devDependencies": {
35
+ "@stylistic/eslint-plugin": "^2",
36
+ "@types/jest": "^29.5.14",
37
+ "@types/node": "ts5.8",
38
+ "@typescript-eslint/eslint-plugin": "^8",
39
+ "@typescript-eslint/parser": "^8",
40
+ "commit-and-tag-version": "^12",
41
+ "constructs": "^10.0.0",
42
+ "eslint": "^9",
43
+ "eslint-import-resolver-typescript": "^3.10.1",
44
+ "eslint-plugin-import": "^2.32.0",
45
+ "jest": "^29.7.0",
46
+ "jest-junit": "^16",
47
+ "mrpj": "^0.2.5",
48
+ "projen": "^0.98.4",
49
+ "ts-jest": "^29.4.5",
50
+ "ts-node": "^10.9.2",
51
+ "typescript": "5.8.x"
52
+ },
53
+ "peerDependencies": {
54
+ "projen": "x.x.x"
55
+ },
56
+ "dependencies": {
57
+ "@jsii/spec": "^1.117.0"
58
+ },
59
+ "engines": {
60
+ "node": ">=18"
61
+ },
62
+ "main": "lib/index.js",
63
+ "license": "Apache-2.0",
64
+ "homepage": "https://github.com/mrgrain/jsii-struct-builder",
65
+ "publishConfig": {
66
+ "access": "public"
67
+ },
68
+ "version": "0.7.64",
69
+ "jest": {
70
+ "coverageProvider": "v8",
71
+ "testMatch": [
72
+ "<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
73
+ "<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
74
+ "<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
75
+ "<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
76
+ ],
77
+ "clearMocks": true,
78
+ "collectCoverage": true,
79
+ "coverageReporters": [
80
+ "json",
81
+ "lcov",
82
+ "clover",
83
+ "cobertura",
84
+ "text"
85
+ ],
86
+ "coverageDirectory": "coverage",
87
+ "coveragePathIgnorePatterns": [
88
+ "/node_modules/"
89
+ ],
90
+ "testPathIgnorePatterns": [
91
+ "/node_modules/"
92
+ ],
93
+ "watchPathIgnorePatterns": [
94
+ "/node_modules/"
95
+ ],
96
+ "reporters": [
97
+ "default",
98
+ [
99
+ "jest-junit",
100
+ {
101
+ "outputDirectory": "test-reports"
102
+ }
103
+ ]
104
+ ],
105
+ "transform": {
106
+ "^.+\\.[t]sx?$": [
107
+ "ts-jest",
108
+ {
109
+ "tsconfig": "tsconfig.dev.json"
110
+ }
111
+ ]
112
+ }
113
+ },
114
+ "types": "lib/index.d.ts",
115
+ "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
116
+ }
@@ -0,0 +1,23 @@
1
+ const Ajv = require("ajv")
2
+ const ajv = new Ajv({allErrors: true})
3
+
4
+ const schema = {
5
+ type: "object",
6
+ properties: {
7
+ foo: {type: "string"},
8
+ bar: {type: "number", maximum: 3},
9
+ },
10
+ required: ["foo", "bar"],
11
+ additionalProperties: false,
12
+ }
13
+
14
+ const validate = ajv.compile(schema)
15
+
16
+ test({foo: "abc", bar: 2})
17
+ test({foo: 2, bar: 4})
18
+
19
+ function test(data) {
20
+ const valid = validate(data)
21
+ if (valid) console.log("Valid!")
22
+ else console.log("Invalid: " + ajv.errorsText(validate.errors))
23
+ }
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-2021 Evgeny Poberezkin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+