@skmtc/core 0.29.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/esm/_dnt.polyfills.d.ts +11 -0
  2. package/esm/_dnt.polyfills.js +14 -0
  3. package/esm/context/ParseContext.js +9 -1
  4. package/esm/context/generateTypes.d.ts +14 -2
  5. package/esm/context/generateTypes.js +5 -1
  6. package/esm/dsl/GeneratorKeys.d.ts +2 -2
  7. package/esm/dsl/GeneratorKeys.js +6 -3
  8. package/esm/helpers/naming.d.ts +2 -1
  9. package/esm/helpers/naming.js +4 -2
  10. package/esm/mod.d.ts +1 -0
  11. package/esm/mod.js +1 -0
  12. package/esm/oas/discriminator/Discriminator.d.ts +3 -0
  13. package/esm/oas/discriminator/Discriminator.js +7 -0
  14. package/esm/oas/document/Document.d.ts +7 -0
  15. package/esm/oas/document/Document.js +8 -0
  16. package/esm/oas/example/Example.d.ts +10 -1
  17. package/esm/oas/example/Example.js +16 -0
  18. package/esm/oas/header/Header.d.ts +4 -2
  19. package/esm/oas/header/Header.js +12 -5
  20. package/esm/oas/mediaType/MediaType.d.ts +12 -0
  21. package/esm/oas/mediaType/MediaType.js +24 -0
  22. package/esm/oas/mediaType/jsonMediaType.d.ts +50 -0
  23. package/esm/oas/mediaType/jsonMediaType.js +64 -0
  24. package/esm/oas/mediaType/toContentSchema.d.ts +8 -0
  25. package/esm/oas/mediaType/toContentSchema.js +6 -0
  26. package/esm/oas/operation/Operation.d.ts +10 -2
  27. package/esm/oas/operation/Operation.js +20 -7
  28. package/esm/oas/parameter/Parameter.d.ts +3 -2
  29. package/esm/oas/parameter/Parameter.js +11 -5
  30. package/esm/oas/parameter/parameter-types.d.ts +10 -2
  31. package/esm/oas/parameter/parameter-types.js +3 -1
  32. package/esm/oas/requestBody/RequestBody.d.ts +11 -0
  33. package/esm/oas/requestBody/RequestBody.js +16 -2
  34. package/esm/oas/response/Response.d.ts +17 -1
  35. package/esm/oas/response/Response.js +24 -2
  36. package/esm/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  37. package/esm/oas/securitySchemes/SecurityScheme.js +46 -1
  38. package/esm/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  39. package/esm/oas/server/Server.d.ts +8 -2
  40. package/esm/oas/server/Server.js +10 -1
  41. package/esm/oas/tag/Tag.d.ts +9 -0
  42. package/esm/oas/tag/Tag.js +9 -0
  43. package/esm/oas/webhook/Webhook.d.ts +4 -4
  44. package/esm/oas/webhook/Webhook.js +6 -6
  45. package/esm/parse/logBodyMediaTypes.d.ts +27 -0
  46. package/esm/parse/logBodyMediaTypes.js +50 -0
  47. package/esm/parse/toOasDialect.d.ts +8 -7
  48. package/esm/parse/toOasDialect.js +4 -2
  49. package/esm/parse/v3-0/methods.d.ts +11 -0
  50. package/esm/parse/v3-0/methods.js +16 -0
  51. package/esm/parse/v3-0/operation/toOperationsV3.js +5 -5
  52. package/esm/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  53. package/esm/parse/v3-0/parameter/toParameterV3.js +17 -3
  54. package/esm/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
  55. package/esm/parse/v3-0/response/toResponseV3.js +4 -1
  56. package/esm/parse/v3-0/securitySchemes/toSecuritySchemes.js +50 -38
  57. package/esm/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  58. package/esm/parse/v3-1/methods.d.ts +11 -0
  59. package/esm/parse/v3-1/methods.js +16 -0
  60. package/esm/parse/v3-1/operation/toOperationsV3.js +5 -5
  61. package/esm/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  62. package/esm/parse/v3-1/parameter/toParameterV3.js +17 -3
  63. package/esm/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
  64. package/esm/parse/v3-1/response/toResponseV3.js +4 -1
  65. package/esm/parse/v3-1/securitySchemes/toSecuritySchemes.js +50 -38
  66. package/esm/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  67. package/esm/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  68. package/esm/parse/v3-2/_helpers/parseDefault.js +39 -0
  69. package/esm/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  70. package/esm/parse/v3-2/_helpers/parseEnum.js +23 -0
  71. package/esm/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  72. package/esm/parse/v3-2/_helpers/parseExample.js +37 -0
  73. package/esm/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  74. package/esm/parse/v3-2/_helpers/parseNullable.js +140 -0
  75. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  76. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +9 -0
  77. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  78. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +5 -0
  79. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  80. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.js +11 -0
  81. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  82. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.js +5 -0
  83. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  84. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +11 -0
  85. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  86. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +5 -0
  87. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  88. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.js +5 -0
  89. package/esm/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  90. package/esm/parse/v3-2/_merge-all-of/cross-product.js +3 -0
  91. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  92. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.js +27 -0
  93. package/esm/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  94. package/esm/parse/v3-2/_merge-all-of/decompose-union.js +69 -0
  95. package/esm/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  96. package/esm/parse/v3-2/_merge-all-of/generic-merge.js +12 -0
  97. package/esm/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  98. package/esm/parse/v3-2/_merge-all-of/is-equal.js +19 -0
  99. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  100. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.js +44 -0
  101. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  102. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +7 -0
  103. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  104. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.js +32 -0
  105. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  106. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.js +41 -0
  107. package/esm/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  108. package/esm/parse/v3-2/_merge-all-of/merge-intersection.js +16 -0
  109. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  110. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.js +41 -0
  111. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  112. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.js +28 -0
  113. package/esm/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  114. package/esm/parse/v3-2/_merge-all-of/merge-properties.js +25 -0
  115. package/esm/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  116. package/esm/parse/v3-2/_merge-all-of/merge-required.js +10 -0
  117. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  118. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.js +55 -0
  119. package/esm/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  120. package/esm/parse/v3-2/_merge-all-of/merge-union.js +53 -0
  121. package/esm/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  122. package/esm/parse/v3-2/_merge-all-of/merge.js +155 -0
  123. package/esm/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  124. package/esm/parse/v3-2/_merge-all-of/nullable-merge.js +12 -0
  125. package/esm/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  126. package/esm/parse/v3-2/_merge-all-of/types.js +2 -0
  127. package/esm/parse/v3-2/array/toArray.d.ts +80 -0
  128. package/esm/parse/v3-2/array/toArray.js +165 -0
  129. package/esm/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  130. package/esm/parse/v3-2/boolean/toBoolean.js +139 -0
  131. package/esm/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  132. package/esm/parse/v3-2/components/toComponentsV3.js +43 -0
  133. package/esm/parse/v3-2/contact/toContactV3.d.ts +5 -0
  134. package/esm/parse/v3-2/contact/toContactV3.js +18 -0
  135. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  136. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.js +21 -0
  137. package/esm/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  138. package/esm/parse/v3-2/document/toDocumentFieldsV3.js +33 -0
  139. package/esm/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  140. package/esm/parse/v3-2/example/toExamplesV3.js +143 -0
  141. package/esm/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  142. package/esm/parse/v3-2/externalDocs/toExternalDocs.js +15 -0
  143. package/esm/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  144. package/esm/parse/v3-2/header/toHeadersV3.js +47 -0
  145. package/esm/parse/v3-2/info/toInfoV3.d.ts +10 -0
  146. package/esm/parse/v3-2/info/toInfoV3.js +23 -0
  147. package/esm/parse/v3-2/integer/toInteger.d.ts +21 -0
  148. package/esm/parse/v3-2/integer/toInteger.js +115 -0
  149. package/esm/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  150. package/esm/parse/v3-2/license/toLicenseV3.js +17 -0
  151. package/esm/parse/v3-2/link/toLinksV3.d.ts +16 -0
  152. package/esm/parse/v3-2/link/toLinksV3.js +40 -0
  153. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  154. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.js +375 -0
  155. package/esm/parse/v3-2/methods.d.ts +17 -0
  156. package/esm/parse/v3-2/methods.js +21 -0
  157. package/esm/parse/v3-2/number/toNumber.d.ts +10 -0
  158. package/esm/parse/v3-2/number/toNumber.js +115 -0
  159. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  160. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.js +10 -0
  161. package/esm/parse/v3-2/object/toObject.d.ts +10 -0
  162. package/esm/parse/v3-2/object/toObject.js +90 -0
  163. package/esm/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  164. package/esm/parse/v3-2/operation/toOperationsV3.js +129 -0
  165. package/esm/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  166. package/esm/parse/v3-2/parameter/toParameterV3.js +152 -0
  167. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  168. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.js +39 -0
  169. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  170. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +34 -0
  171. package/esm/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  172. package/esm/parse/v3-2/pathItem/toPathItemV3.js +45 -0
  173. package/esm/parse/v3-2/ref/toRefV31.d.ts +19 -0
  174. package/esm/parse/v3-2/ref/toRefV31.js +10 -0
  175. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  176. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.js +47 -0
  177. package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
  178. package/esm/parse/v3-2/response/toResponseV3.js +59 -0
  179. package/esm/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  180. package/esm/parse/v3-2/schema/toSchemasV3.js +511 -0
  181. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  182. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.js +9 -0
  183. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  184. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.js +152 -0
  185. package/esm/parse/v3-2/server/toServerV3.d.ts +26 -0
  186. package/esm/parse/v3-2/server/toServerV3.js +31 -0
  187. package/esm/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  188. package/esm/parse/v3-2/serverVariable/toServerVariableV3.js +30 -0
  189. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  190. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +25 -0
  191. package/esm/parse/v3-2/string/toString.d.ts +146 -0
  192. package/esm/parse/v3-2/string/toString.js +211 -0
  193. package/esm/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  194. package/esm/parse/v3-2/tag/toTagsV3.js +78 -0
  195. package/esm/parse/v3-2/union/toUnion.d.ts +12 -0
  196. package/esm/parse/v3-2/union/toUnion.js +68 -0
  197. package/esm/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  198. package/esm/parse/v3-2/unknown/toUnknown.js +19 -0
  199. package/esm/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  200. package/esm/parse/v3-2/webhook/toWebhooksV3.js +139 -0
  201. package/esm/types/Method.d.ts +7 -4
  202. package/esm/types/Method.js +17 -4
  203. package/esm/types/Preview.d.ts +2 -1
  204. package/esm/types/SkmtcDocument.d.ts +6 -6
  205. package/package.json +1 -1
  206. package/script/_dnt.polyfills.d.ts +11 -0
  207. package/script/_dnt.polyfills.js +14 -0
  208. package/script/context/ParseContext.js +9 -1
  209. package/script/context/generateTypes.d.ts +14 -2
  210. package/script/context/generateTypes.js +5 -1
  211. package/script/dsl/GeneratorKeys.d.ts +2 -2
  212. package/script/dsl/GeneratorKeys.js +6 -3
  213. package/script/helpers/naming.d.ts +2 -1
  214. package/script/helpers/naming.js +4 -2
  215. package/script/mod.d.ts +1 -0
  216. package/script/mod.js +1 -0
  217. package/script/oas/discriminator/Discriminator.d.ts +3 -0
  218. package/script/oas/discriminator/Discriminator.js +7 -0
  219. package/script/oas/document/Document.d.ts +7 -0
  220. package/script/oas/document/Document.js +8 -0
  221. package/script/oas/example/Example.d.ts +10 -1
  222. package/script/oas/example/Example.js +16 -0
  223. package/script/oas/header/Header.d.ts +4 -2
  224. package/script/oas/header/Header.js +12 -5
  225. package/script/oas/mediaType/MediaType.d.ts +12 -0
  226. package/script/oas/mediaType/MediaType.js +24 -0
  227. package/script/oas/mediaType/jsonMediaType.d.ts +50 -0
  228. package/script/oas/mediaType/jsonMediaType.js +71 -0
  229. package/script/oas/mediaType/toContentSchema.d.ts +8 -0
  230. package/script/oas/mediaType/toContentSchema.js +10 -0
  231. package/script/oas/operation/Operation.d.ts +10 -2
  232. package/script/oas/operation/Operation.js +20 -7
  233. package/script/oas/parameter/Parameter.d.ts +3 -2
  234. package/script/oas/parameter/Parameter.js +11 -5
  235. package/script/oas/parameter/parameter-types.d.ts +10 -2
  236. package/script/oas/parameter/parameter-types.js +3 -1
  237. package/script/oas/requestBody/RequestBody.d.ts +11 -0
  238. package/script/oas/requestBody/RequestBody.js +16 -2
  239. package/script/oas/response/Response.d.ts +17 -1
  240. package/script/oas/response/Response.js +24 -2
  241. package/script/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  242. package/script/oas/securitySchemes/SecurityScheme.js +46 -1
  243. package/script/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  244. package/script/oas/server/Server.d.ts +8 -2
  245. package/script/oas/server/Server.js +10 -1
  246. package/script/oas/tag/Tag.d.ts +9 -0
  247. package/script/oas/tag/Tag.js +9 -0
  248. package/script/oas/webhook/Webhook.d.ts +4 -4
  249. package/script/oas/webhook/Webhook.js +6 -6
  250. package/script/parse/logBodyMediaTypes.d.ts +27 -0
  251. package/script/parse/logBodyMediaTypes.js +54 -0
  252. package/script/parse/toOasDialect.d.ts +8 -7
  253. package/script/parse/toOasDialect.js +4 -2
  254. package/script/parse/v3-0/methods.d.ts +11 -0
  255. package/script/parse/v3-0/methods.js +20 -0
  256. package/script/parse/v3-0/operation/toOperationsV3.js +5 -5
  257. package/script/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  258. package/script/parse/v3-0/parameter/toParameterV3.js +17 -3
  259. package/script/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
  260. package/script/parse/v3-0/response/toResponseV3.js +4 -1
  261. package/script/parse/v3-0/securitySchemes/toSecuritySchemes.js +49 -37
  262. package/script/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  263. package/script/parse/v3-1/methods.d.ts +11 -0
  264. package/script/parse/v3-1/methods.js +20 -0
  265. package/script/parse/v3-1/operation/toOperationsV3.js +5 -5
  266. package/script/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  267. package/script/parse/v3-1/parameter/toParameterV3.js +17 -3
  268. package/script/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
  269. package/script/parse/v3-1/response/toResponseV3.js +4 -1
  270. package/script/parse/v3-1/securitySchemes/toSecuritySchemes.js +49 -37
  271. package/script/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  272. package/script/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  273. package/script/parse/v3-2/_helpers/parseDefault.js +43 -0
  274. package/script/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  275. package/script/parse/v3-2/_helpers/parseEnum.js +27 -0
  276. package/script/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  277. package/script/parse/v3-2/_helpers/parseExample.js +41 -0
  278. package/script/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  279. package/script/parse/v3-2/_helpers/parseNullable.js +144 -0
  280. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  281. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +13 -0
  282. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  283. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +9 -0
  284. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  285. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.js +15 -0
  286. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  287. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.js +9 -0
  288. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  289. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +15 -0
  290. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  291. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +9 -0
  292. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  293. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.js +9 -0
  294. package/script/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  295. package/script/parse/v3-2/_merge-all-of/cross-product.js +7 -0
  296. package/script/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  297. package/script/parse/v3-2/_merge-all-of/decompose-intersection.js +31 -0
  298. package/script/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  299. package/script/parse/v3-2/_merge-all-of/decompose-union.js +73 -0
  300. package/script/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  301. package/script/parse/v3-2/_merge-all-of/generic-merge.js +16 -0
  302. package/script/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  303. package/script/parse/v3-2/_merge-all-of/is-equal.js +23 -0
  304. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  305. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.js +80 -0
  306. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  307. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +43 -0
  308. package/script/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  309. package/script/parse/v3-2/_merge-all-of/merge-enum-values.js +68 -0
  310. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  311. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.js +77 -0
  312. package/script/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  313. package/script/parse/v3-2/_merge-all-of/merge-intersection.js +20 -0
  314. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  315. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.js +77 -0
  316. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  317. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.js +65 -0
  318. package/script/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  319. package/script/parse/v3-2/_merge-all-of/merge-properties.js +29 -0
  320. package/script/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  321. package/script/parse/v3-2/_merge-all-of/merge-required.js +15 -0
  322. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  323. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.js +91 -0
  324. package/script/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  325. package/script/parse/v3-2/_merge-all-of/merge-union.js +58 -0
  326. package/script/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  327. package/script/parse/v3-2/_merge-all-of/merge.js +159 -0
  328. package/script/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  329. package/script/parse/v3-2/_merge-all-of/nullable-merge.js +17 -0
  330. package/script/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  331. package/script/parse/v3-2/_merge-all-of/types.js +38 -0
  332. package/script/parse/v3-2/array/toArray.d.ts +80 -0
  333. package/script/parse/v3-2/array/toArray.js +203 -0
  334. package/script/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  335. package/script/parse/v3-2/boolean/toBoolean.js +177 -0
  336. package/script/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  337. package/script/parse/v3-2/components/toComponentsV3.js +47 -0
  338. package/script/parse/v3-2/contact/toContactV3.d.ts +5 -0
  339. package/script/parse/v3-2/contact/toContactV3.js +22 -0
  340. package/script/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  341. package/script/parse/v3-2/discriminator/toDiscriminatorV3.js +25 -0
  342. package/script/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  343. package/script/parse/v3-2/document/toDocumentFieldsV3.js +37 -0
  344. package/script/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  345. package/script/parse/v3-2/example/toExamplesV3.js +149 -0
  346. package/script/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  347. package/script/parse/v3-2/externalDocs/toExternalDocs.js +52 -0
  348. package/script/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  349. package/script/parse/v3-2/header/toHeadersV3.js +51 -0
  350. package/script/parse/v3-2/info/toInfoV3.d.ts +10 -0
  351. package/script/parse/v3-2/info/toInfoV3.js +27 -0
  352. package/script/parse/v3-2/integer/toInteger.d.ts +21 -0
  353. package/script/parse/v3-2/integer/toInteger.js +153 -0
  354. package/script/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  355. package/script/parse/v3-2/license/toLicenseV3.js +21 -0
  356. package/script/parse/v3-2/link/toLinksV3.d.ts +16 -0
  357. package/script/parse/v3-2/link/toLinksV3.js +44 -0
  358. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  359. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.js +381 -0
  360. package/script/parse/v3-2/methods.d.ts +17 -0
  361. package/script/parse/v3-2/methods.js +25 -0
  362. package/script/parse/v3-2/number/toNumber.d.ts +10 -0
  363. package/script/parse/v3-2/number/toNumber.js +152 -0
  364. package/script/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  365. package/script/parse/v3-2/object/toAdditionalPropertiesV3.js +14 -0
  366. package/script/parse/v3-2/object/toObject.d.ts +10 -0
  367. package/script/parse/v3-2/object/toObject.js +94 -0
  368. package/script/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  369. package/script/parse/v3-2/operation/toOperationsV3.js +134 -0
  370. package/script/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  371. package/script/parse/v3-2/parameter/toParameterV3.js +191 -0
  372. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  373. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.js +43 -0
  374. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  375. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +38 -0
  376. package/script/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  377. package/script/parse/v3-2/pathItem/toPathItemV3.js +50 -0
  378. package/script/parse/v3-2/ref/toRefV31.d.ts +19 -0
  379. package/script/parse/v3-2/ref/toRefV31.js +14 -0
  380. package/script/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  381. package/script/parse/v3-2/requestBody/toRequestBodiesV3.js +52 -0
  382. package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
  383. package/script/parse/v3-2/response/toResponseV3.js +65 -0
  384. package/script/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  385. package/script/parse/v3-2/schema/toSchemasV3.js +518 -0
  386. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  387. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.js +13 -0
  388. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  389. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.js +189 -0
  390. package/script/parse/v3-2/server/toServerV3.d.ts +26 -0
  391. package/script/parse/v3-2/server/toServerV3.js +37 -0
  392. package/script/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  393. package/script/parse/v3-2/serverVariable/toServerVariableV3.js +36 -0
  394. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  395. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +30 -0
  396. package/script/parse/v3-2/string/toString.d.ts +146 -0
  397. package/script/parse/v3-2/string/toString.js +249 -0
  398. package/script/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  399. package/script/parse/v3-2/tag/toTagsV3.js +83 -0
  400. package/script/parse/v3-2/union/toUnion.d.ts +12 -0
  401. package/script/parse/v3-2/union/toUnion.js +72 -0
  402. package/script/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  403. package/script/parse/v3-2/unknown/toUnknown.js +23 -0
  404. package/script/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  405. package/script/parse/v3-2/webhook/toWebhooksV3.js +144 -0
  406. package/script/types/Method.d.ts +7 -4
  407. package/script/types/Method.js +17 -4
  408. package/script/types/Preview.d.ts +2 -1
  409. package/script/types/SkmtcDocument.d.ts +6 -6
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logBodyMediaTypes = void 0;
4
+ const jsonMediaType_js_1 = require("../oas/mediaType/jsonMediaType.js");
5
+ /**
6
+ * Log at most one issue for a parsed response or request body, from the same
7
+ * choice the lookups make (`toJsonContent`), so the issue and the lookup
8
+ * cannot disagree. Called after the body is built, so a body that fails to
9
+ * parse logs nothing.
10
+ *
11
+ * - `WILDCARD_MEDIA_TYPE` (`warning`): the body is read from `*\/*` as JSON,
12
+ * though the document does not say its format.
13
+ * - `NO_JSON_MEDIA_TYPE` (`debug`): no lookup reads the body, and its keys
14
+ * include a range (`*\/*` with a scalar schema, `application/*`), so its
15
+ * format is unknown.
16
+ *
17
+ * A body with only specific non-JSON types (`multipart/form-data`,
18
+ * `application/octet-stream`, `text/plain`) logs nothing: that is a normal
19
+ * text, form or binary body.
20
+ */
21
+ const logBodyMediaTypes = ({ content, stackTrail, context }) => {
22
+ const mediaTypes = Object.keys(content ?? {});
23
+ if (mediaTypes.length === 0) {
24
+ return;
25
+ }
26
+ const listed = mediaTypes.map(mediaType => `"${mediaType}"`).join(', ');
27
+ // `parent` is only the keys: the issue log serializes it on every issue.
28
+ const parent = { mediaTypes };
29
+ const chosen = (0, jsonMediaType_js_1.toJsonContent)(content);
30
+ if (chosen !== undefined) {
31
+ if ((0, jsonMediaType_js_1.isAnyMediaType)(chosen.mediaType)) {
32
+ context.logIssue({
33
+ key: 'content',
34
+ level: 'warning',
35
+ type: 'WILDCARD_MEDIA_TYPE',
36
+ message: `Content has no JSON media type (${listed}), so the body is read from "*/*" as JSON although the document does not say its format`,
37
+ parent,
38
+ stackTrail
39
+ });
40
+ }
41
+ return;
42
+ }
43
+ if (mediaTypes.some(mediaType => (0, jsonMediaType_js_1.toMediaTypeEssence)(mediaType).includes('*'))) {
44
+ context.logIssue({
45
+ key: 'content',
46
+ level: 'debug',
47
+ type: 'NO_JSON_MEDIA_TYPE',
48
+ message: `Content names only a media type range or non-JSON types (${listed}), so no lookup without a media type reads its schema`,
49
+ parent,
50
+ stackTrail
51
+ });
52
+ }
53
+ };
54
+ exports.logBodyMediaTypes = logBodyMediaTypes;
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * The OpenAPI dialects SKMTC parses natively. Each has its own complete
3
- * parser tree (`core/parse/v3-0`, `core/parse/v3-1`); this module is the
4
- * ONLY place a document's version is examined. Once a dialect is chosen
5
- * the matching parser runs top-to-bottom and never re-checks the version,
6
- * so a 3.0 document can never reach a line of 3.1 logic (or vice versa) —
7
- * there is no downstream version branch to get wrong.
3
+ * parser tree (`core/parse/v3-0`, `core/parse/v3-1`, `core/parse/v3-2`);
4
+ * this module is the ONLY place a document's version is examined. Once a
5
+ * dialect is chosen the matching parser runs top-to-bottom and never
6
+ * re-checks the version, so a 3.0 document can never reach a line of 3.1
7
+ * logic (or vice versa) — there is no downstream version branch to get
8
+ * wrong.
8
9
  */
9
- export type OasDialect = '3.0' | '3.1';
10
+ export type OasDialect = '3.0' | '3.1' | '3.2';
10
11
  /**
11
12
  * Map an OpenAPI document's `openapi` version string to its parser
12
13
  * dialect.
@@ -15,7 +16,7 @@ export type OasDialect = '3.0' | '3.1';
15
16
  * precondition failure — there is no sensible parser to pick — so it throws
16
17
  * rather than silently defaulting to one dialect and masking the error. A
17
18
  * loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
18
- * non-3.1 value (a typo, `3.2`, `4.0`, a missing field) into 3.0 unnoticed;
19
+ * non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
19
20
  * that is the footgun this avoids. Mirrors `@skmtc/convert`'s
20
21
  * `toV3Document`, which likewise throws on an unrecognized version.
21
22
  *
@@ -9,7 +9,7 @@ exports.toOasDialect = void 0;
9
9
  * precondition failure — there is no sensible parser to pick — so it throws
10
10
  * rather than silently defaulting to one dialect and masking the error. A
11
11
  * loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
12
- * non-3.1 value (a typo, `3.2`, `4.0`, a missing field) into 3.0 unnoticed;
12
+ * non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
13
13
  * that is the footgun this avoids. Mirrors `@skmtc/convert`'s
14
14
  * `toV3Document`, which likewise throws on an unrecognized version.
15
15
  *
@@ -21,6 +21,8 @@ const toOasDialect = (openapi) => {
21
21
  return '3.0';
22
22
  if (openapi?.startsWith('3.1'))
23
23
  return '3.1';
24
- throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x or 3.1.x`);
24
+ if (openapi?.startsWith('3.2'))
25
+ return '3.2';
26
+ throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x, 3.1.x or 3.2.x`);
25
27
  };
26
28
  exports.toOasDialect = toOasDialect;
@@ -0,0 +1,11 @@
1
+ import type { Method } from '../../types/Method.js';
2
+ /**
3
+ * A path item field that holds an Operation Object in OpenAPI 3.0. A
4
+ * `query` key is not one of them: it stays a skipped field.
5
+ */
6
+ export type PathItemMethod = Exclude<Method, 'query'>;
7
+ export declare const pathItemMethods: readonly PathItemMethod[];
8
+ /**
9
+ * Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
10
+ */
11
+ export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPathItemMethod = exports.pathItemMethods = void 0;
4
+ exports.pathItemMethods = [
5
+ 'get',
6
+ 'put',
7
+ 'post',
8
+ 'delete',
9
+ 'options',
10
+ 'head',
11
+ 'patch',
12
+ 'trace'
13
+ ];
14
+ /**
15
+ * Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
16
+ */
17
+ const toPathItemMethod = (key) => {
18
+ return exports.pathItemMethods.find(method => method === key);
19
+ };
20
+ exports.toPathItemMethod = toPathItemMethod;
@@ -6,7 +6,7 @@ const toResponseV3_js_1 = require("../response/toResponseV3.js");
6
6
  const toParameterV3_js_1 = require("../parameter/toParameterV3.js");
7
7
  const Operation_js_1 = require("../../../oas/operation/Operation.js");
8
8
  const toPathItemV3_js_1 = require("../pathItem/toPathItemV3.js");
9
- const Method_js_1 = require("../../../types/Method.js");
9
+ const methods_js_1 = require("../methods.js");
10
10
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
11
11
  const toSecurityRequirement_js_1 = require("../securityRequirement/toSecurityRequirement.js");
12
12
  const isEmpty_js_1 = require("../../../helpers/isEmpty.js");
@@ -58,14 +58,14 @@ const toOperationsV3 = ({ paths, stackTrail, context }) => {
58
58
  return [];
59
59
  }
60
60
  const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
61
- const isMethod = Method_js_1.methodValues.includes(key);
62
- if (isMethod) {
63
- const { [key]: _deleted, ...remaining } = rest;
61
+ const method = (0, methods_js_1.toPathItemMethod)(key);
62
+ if (method) {
63
+ const { [method]: _deleted, ...remaining } = rest;
64
64
  return {
65
65
  rest: remaining,
66
66
  methodObject: {
67
67
  ...methodObject,
68
- [key]: operation
68
+ [method]: operation
69
69
  }
70
70
  };
71
71
  }
@@ -1,9 +1,10 @@
1
1
  import type { ParseContextType } from '../../../context/parseTypes.js';
2
- import { type OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
2
+ import type { OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
3
3
  import type { OpenAPIV3 } from 'openapi-types';
4
4
  import { OasParameter } from '../../../oas/parameter/Parameter.js';
5
5
  import type { OasRef } from '../../../oas/ref/Ref.js';
6
6
  import type { StackTrail } from '../../../context/StackTrail.js';
7
+ type ParameterLocation = Exclude<OasParameterLocation, 'querystring'>;
7
8
  export type ToParameterListV3Args = {
8
9
  parameters: (OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject)[] | undefined;
9
10
  stackTrail: StackTrail;
@@ -29,7 +30,7 @@ export type ToParameterV3Args = {
29
30
  };
30
31
  export type ToStyleArgs = {
31
32
  style: string | undefined;
32
- location: OasParameterLocation;
33
+ location: ParameterLocation;
33
34
  stackTrail: StackTrail;
34
35
  };
35
36
  export type ToExplodeArgs = {
@@ -37,3 +38,4 @@ export type ToExplodeArgs = {
37
38
  style: string | undefined;
38
39
  stackTrail: StackTrail;
39
40
  };
41
+ export {};
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.toOptionalParametersV3 = exports.toParametersV3 = exports.toParameterListV3 = void 0;
37
37
  const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
38
38
  const refFns_js_1 = require("../../../helpers/refFns.js");
39
- const parameter_types_js_1 = require("../../../oas/parameter/parameter-types.js");
40
39
  const toExamplesV3_js_1 = require("../example/toExamplesV3.js");
41
40
  const toRefV31_js_1 = require("../ref/toRefV31.js");
42
41
  const toSchemasV3_js_1 = require("../schema/toSchemasV3.js");
@@ -44,6 +43,21 @@ const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
44
43
  const Parameter_js_1 = require("../../../oas/parameter/Parameter.js");
45
44
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
46
45
  const v = __importStar(require("valibot"));
46
+ const parameterLocation = v.enum({
47
+ query: 'query',
48
+ header: 'header',
49
+ path: 'path',
50
+ cookie: 'cookie'
51
+ });
52
+ const parameterStyle = v.enum({
53
+ matrix: 'matrix',
54
+ label: 'label',
55
+ form: 'form',
56
+ simple: 'simple',
57
+ spaceDelimited: 'spaceDelimited',
58
+ pipeDelimited: 'pipeDelimited',
59
+ deepObject: 'deepObject'
60
+ });
47
61
  const toParameterListV3 = ({ parameters, stackTrail, context }) => {
48
62
  if (!parameters) {
49
63
  return undefined;
@@ -91,7 +105,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
91
105
  stackTrail,
92
106
  parentType: 'parameter'
93
107
  });
94
- const parsedLocation = v.parse(parameter_types_js_1.oasParameterLocation, location);
108
+ const parsedLocation = v.parse(parameterLocation, location);
95
109
  if (parsedLocation === 'path' && !required) {
96
110
  console.warn(`Path parameters must be required`);
97
111
  }
@@ -121,7 +135,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
121
135
  return context.withStackTrail(stackTrail, () => new Parameter_js_1.OasParameter(fields, context));
122
136
  };
123
137
  const toStyle = ({ style, location, stackTrail }) => {
124
- const parsed = v.parse(v.optional(parameter_types_js_1.oasParameterStyle), style);
138
+ const parsed = v.parse(v.optional(parameterStyle), style);
125
139
  if (parsed !== undefined) {
126
140
  return parsed;
127
141
  }
@@ -6,6 +6,7 @@ const toRefV31_js_1 = require("../ref/toRefV31.js");
6
6
  const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
7
7
  const RequestBody_js_1 = require("../../../oas/requestBody/RequestBody.js");
8
8
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
9
+ const logBodyMediaTypes_js_1 = require("../../logBodyMediaTypes.js");
9
10
  const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
10
11
  if (!requestBody) {
11
12
  return undefined;
@@ -29,7 +30,9 @@ const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
29
30
  required,
30
31
  extensionFields
31
32
  };
32
- return context.withStackTrail(stackTrail, () => new RequestBody_js_1.OasRequestBody(fields, context));
33
+ const parsed = context.withStackTrail(stackTrail, () => new RequestBody_js_1.OasRequestBody(fields, context));
34
+ (0, logBodyMediaTypes_js_1.logBodyMediaTypes)({ content: fields.content, stackTrail, context });
35
+ return parsed;
33
36
  };
34
37
  exports.toRequestBodyV3 = toRequestBodyV3;
35
38
  const toRequestBodiesV3 = ({ requestBodies, stackTrail, context }) => {
@@ -9,6 +9,7 @@ const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
9
9
  const Response_js_1 = require("../../../oas/response/Response.js");
10
10
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
11
11
  const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
12
+ const logBodyMediaTypes_js_1 = require("../../logBodyMediaTypes.js");
12
13
  const toResponsesV3 = ({ responses, stackTrail, context }) => {
13
14
  const output = {};
14
15
  const entries = Object.entries(responses);
@@ -50,12 +51,14 @@ const toResponseV3 = ({ response, stackTrail, context }) => {
50
51
  const parsedHeaders = stackTrail.trace('headers', st => (0, toHeadersV3_js_1.toHeadersV3)({ headers, stackTrail: st, context }));
51
52
  const parsedLinks = stackTrail.trace('links', st => (0, toLinksV3_js_1.toLinksV3)({ links, stackTrail: st, context }));
52
53
  const parsedContent = stackTrail.trace('content', st => (0, toMediaTypeItemV3_js_1.toOptionalMediaTypeItemsV3)({ content, stackTrail: st, context }));
53
- return context.withStackTrail(stackTrail, () => new Response_js_1.OasResponse({
54
+ const parsed = context.withStackTrail(stackTrail, () => new Response_js_1.OasResponse({
54
55
  description,
55
56
  headers: parsedHeaders,
56
57
  links: parsedLinks,
57
58
  content: parsedContent,
58
59
  extensionFields
59
60
  }, context));
61
+ (0, logBodyMediaTypes_js_1.logBodyMediaTypes)({ content: parsedContent, stackTrail, context });
62
+ return parsed;
60
63
  };
61
64
  exports.toResponseV3 = toResponseV3;
@@ -39,8 +39,8 @@ const v = __importStar(require("valibot"));
39
39
  const security_scheme_types_js_1 = require("../../../oas/securitySchemes/security-scheme-types.js");
40
40
  const toRefV31_js_1 = require("../ref/toRefV31.js");
41
41
  const refFns_js_1 = require("../../../helpers/refFns.js");
42
- const isEmpty_js_1 = require("../../../helpers/isEmpty.js");
43
42
  const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
43
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
44
44
  const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) => {
45
45
  if (!securitySchemes) {
46
46
  return undefined;
@@ -64,21 +64,29 @@ const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) => {
64
64
  return output;
65
65
  };
66
66
  exports.toSecuritySchemesV3 = toSecuritySchemesV3;
67
+ /**
68
+ * Log the keys of `value` that `known` does not name as skipped fields.
69
+ * `v.parse` on a `v.object` schema strips unknown keys, so they are read
70
+ * off the raw object. `x-` extensions are not logged.
71
+ */
72
+ const logSkippedKeys = ({ value, known, parentType, stackTrail, context }) => {
73
+ const skipped = Object.fromEntries(Object.entries(value).filter(([key]) => !Object.hasOwn(known, key)));
74
+ (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({ skipped, parent: value, parentType, stackTrail, context });
75
+ };
67
76
  const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
68
77
  if ((0, refFns_js_1.isRef)(securityScheme)) {
69
78
  return (0, toRefV31_js_1.toRefV31)({ ref: securityScheme, refType: 'securityScheme', stackTrail, context });
70
79
  }
71
80
  switch (securityScheme.type) {
72
81
  case 'http': {
73
- const { type: _type, description, scheme, bearerFormat, ...skipped } = v.parse(security_scheme_types_js_1.oasHttpSecuritySchemeData, securityScheme);
74
- if (!(0, isEmpty_js_1.isEmpty)(skipped)) {
75
- context.logSkippedFields({
76
- skipped,
77
- parent: securityScheme,
78
- stackTrail,
79
- parentType: 'securityScheme:http'
80
- });
81
- }
82
+ const { description, scheme, bearerFormat } = v.parse(security_scheme_types_js_1.oasHttpSecuritySchemeData, securityScheme);
83
+ logSkippedKeys({
84
+ value: securityScheme,
85
+ known: security_scheme_types_js_1.oasHttpSecuritySchemeData.entries,
86
+ parentType: 'securityScheme:http',
87
+ stackTrail,
88
+ context
89
+ });
82
90
  return new SecurityScheme_js_1.OasHttpSecurityScheme({
83
91
  description,
84
92
  scheme,
@@ -86,15 +94,14 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
86
94
  });
87
95
  }
88
96
  case 'apiKey': {
89
- const { type: _type, in: location, description, name, ...skipped } = v.parse(security_scheme_types_js_1.oasApiKeySecuritySchemeData, securityScheme);
90
- if (!(0, isEmpty_js_1.isEmpty)(skipped)) {
91
- context.logSkippedFields({
92
- skipped,
93
- parent: securityScheme,
94
- stackTrail,
95
- parentType: 'securityScheme:apiKey'
96
- });
97
- }
97
+ const { in: location, description, name } = v.parse(security_scheme_types_js_1.oasApiKeySecuritySchemeData, securityScheme);
98
+ logSkippedKeys({
99
+ value: securityScheme,
100
+ known: security_scheme_types_js_1.oasApiKeySecuritySchemeData.entries,
101
+ parentType: 'securityScheme:apiKey',
102
+ stackTrail,
103
+ context
104
+ });
98
105
  return new SecurityScheme_js_1.OasApiKeySecurityScheme({
99
106
  description,
100
107
  name,
@@ -102,30 +109,35 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
102
109
  });
103
110
  }
104
111
  case 'oauth2': {
105
- const { type: _type, flows, description, ...skipped } = v.parse(security_scheme_types_js_1.oasOAuth2SecuritySchemeData, securityScheme);
106
- if (!(0, isEmpty_js_1.isEmpty)(skipped)) {
107
- context.logSkippedFields({
108
- skipped,
109
- parent: securityScheme,
110
- stackTrail,
111
- parentType: 'securityScheme:oauth2'
112
- });
113
- }
112
+ const { flows, description } = v.parse(security_scheme_types_js_1.oasOAuth2SecuritySchemeData, securityScheme);
113
+ logSkippedKeys({
114
+ value: securityScheme,
115
+ known: security_scheme_types_js_1.oasOAuth2SecuritySchemeData.entries,
116
+ parentType: 'securityScheme:oauth2',
117
+ stackTrail,
118
+ context
119
+ });
120
+ stackTrail.trace('flows', st => logSkippedKeys({
121
+ value: securityScheme.flows,
122
+ known: security_scheme_types_js_1.oasOAuth2FlowsData.entries,
123
+ parentType: 'oauthFlows',
124
+ stackTrail: st,
125
+ context
126
+ }));
114
127
  return new SecurityScheme_js_1.OasOAuth2SecurityScheme({
115
128
  description,
116
129
  flows
117
130
  });
118
131
  }
119
132
  case 'openIdConnect': {
120
- const { type: _type, description, openIdConnectUrl, ...skipped } = v.parse(security_scheme_types_js_1.oasOpenIdSecuritySchemeData, securityScheme);
121
- if (!(0, isEmpty_js_1.isEmpty)(skipped)) {
122
- context.logSkippedFields({
123
- skipped,
124
- parent: securityScheme,
125
- stackTrail,
126
- parentType: 'securityScheme:openIdConnect'
127
- });
128
- }
133
+ const { description, openIdConnectUrl } = v.parse(security_scheme_types_js_1.oasOpenIdSecuritySchemeData, securityScheme);
134
+ logSkippedKeys({
135
+ value: securityScheme,
136
+ known: security_scheme_types_js_1.oasOpenIdSecuritySchemeData.entries,
137
+ parentType: 'securityScheme:openIdConnect',
138
+ stackTrail,
139
+ context
140
+ });
129
141
  return new SecurityScheme_js_1.OasOpenIdSecurityScheme({
130
142
  description,
131
143
  openIdConnectUrl
@@ -6,7 +6,7 @@ const toResponseV3_js_1 = require("../response/toResponseV3.js");
6
6
  const toParameterV3_js_1 = require("../parameter/toParameterV3.js");
7
7
  const Webhook_js_1 = require("../../../oas/webhook/Webhook.js");
8
8
  const toPathItemV3_js_1 = require("../pathItem/toPathItemV3.js");
9
- const Method_js_1 = require("../../../types/Method.js");
9
+ const methods_js_1 = require("../methods.js");
10
10
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
11
11
  const toSecurityRequirement_js_1 = require("../securityRequirement/toSecurityRequirement.js");
12
12
  const isEmpty_js_1 = require("../../../helpers/isEmpty.js");
@@ -73,14 +73,14 @@ const toWebhooksV3 = ({ webhooks, stackTrail, context }) => {
73
73
  return [];
74
74
  }
75
75
  const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
76
- const isMethod = Method_js_1.methodValues.includes(key);
77
- if (isMethod) {
78
- const { [key]: _deleted, ...remaining } = rest;
76
+ const method = (0, methods_js_1.toPathItemMethod)(key);
77
+ if (method) {
78
+ const { [method]: _deleted, ...remaining } = rest;
79
79
  return {
80
80
  rest: remaining,
81
81
  methodObject: {
82
82
  ...methodObject,
83
- [key]: operation
83
+ [method]: operation
84
84
  }
85
85
  };
86
86
  }
@@ -0,0 +1,11 @@
1
+ import type { Method } from '../../types/Method.js';
2
+ /**
3
+ * A path item field that holds an Operation Object in OpenAPI 3.1. A
4
+ * `query` key is not one of them: it stays a skipped field.
5
+ */
6
+ export type PathItemMethod = Exclude<Method, 'query'>;
7
+ export declare const pathItemMethods: readonly PathItemMethod[];
8
+ /**
9
+ * Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
10
+ */
11
+ export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPathItemMethod = exports.pathItemMethods = void 0;
4
+ exports.pathItemMethods = [
5
+ 'get',
6
+ 'put',
7
+ 'post',
8
+ 'delete',
9
+ 'options',
10
+ 'head',
11
+ 'patch',
12
+ 'trace'
13
+ ];
14
+ /**
15
+ * Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
16
+ */
17
+ const toPathItemMethod = (key) => {
18
+ return exports.pathItemMethods.find(method => method === key);
19
+ };
20
+ exports.toPathItemMethod = toPathItemMethod;
@@ -6,7 +6,7 @@ const toResponseV3_js_1 = require("../response/toResponseV3.js");
6
6
  const toParameterV3_js_1 = require("../parameter/toParameterV3.js");
7
7
  const Operation_js_1 = require("../../../oas/operation/Operation.js");
8
8
  const toPathItemV3_js_1 = require("../pathItem/toPathItemV3.js");
9
- const Method_js_1 = require("../../../types/Method.js");
9
+ const methods_js_1 = require("../methods.js");
10
10
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
11
11
  const toSecurityRequirement_js_1 = require("../securityRequirement/toSecurityRequirement.js");
12
12
  const isEmpty_js_1 = require("../../../helpers/isEmpty.js");
@@ -61,14 +61,14 @@ const toOperationsV3 = ({ paths, stackTrail, context }) => {
61
61
  return [];
62
62
  }
63
63
  const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
64
- const isMethod = Method_js_1.methodValues.includes(key);
65
- if (isMethod) {
66
- const { [key]: _deleted, ...remaining } = rest;
64
+ const method = (0, methods_js_1.toPathItemMethod)(key);
65
+ if (method) {
66
+ const { [method]: _deleted, ...remaining } = rest;
67
67
  return {
68
68
  rest: remaining,
69
69
  methodObject: {
70
70
  ...methodObject,
71
- [key]: operation
71
+ [method]: operation
72
72
  }
73
73
  };
74
74
  }
@@ -1,9 +1,10 @@
1
1
  import type { ParseContextType } from '../../../context/parseTypes.js';
2
- import { type OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
2
+ import type { OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
3
3
  import type { OpenAPIV3 } from 'openapi-types';
4
4
  import { OasParameter } from '../../../oas/parameter/Parameter.js';
5
5
  import type { OasRef } from '../../../oas/ref/Ref.js';
6
6
  import type { StackTrail } from '../../../context/StackTrail.js';
7
+ type ParameterLocation = Exclude<OasParameterLocation, 'querystring'>;
7
8
  export type ToParameterListV3Args = {
8
9
  parameters: (OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject)[] | undefined;
9
10
  stackTrail: StackTrail;
@@ -29,7 +30,7 @@ export type ToParameterV3Args = {
29
30
  };
30
31
  export type ToStyleArgs = {
31
32
  style: string | undefined;
32
- location: OasParameterLocation;
33
+ location: ParameterLocation;
33
34
  stackTrail: StackTrail;
34
35
  };
35
36
  export type ToExplodeArgs = {
@@ -37,3 +38,4 @@ export type ToExplodeArgs = {
37
38
  style: string | undefined;
38
39
  stackTrail: StackTrail;
39
40
  };
41
+ export {};
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.toOptionalParametersV3 = exports.toParametersV3 = exports.toParameterListV3 = void 0;
37
37
  const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
38
38
  const refFns_js_1 = require("../../../helpers/refFns.js");
39
- const parameter_types_js_1 = require("../../../oas/parameter/parameter-types.js");
40
39
  const toExamplesV3_js_1 = require("../example/toExamplesV3.js");
41
40
  const toRefV31_js_1 = require("../ref/toRefV31.js");
42
41
  const toSchemasV3_js_1 = require("../schema/toSchemasV3.js");
@@ -44,6 +43,21 @@ const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
44
43
  const Parameter_js_1 = require("../../../oas/parameter/Parameter.js");
45
44
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
46
45
  const v = __importStar(require("valibot"));
46
+ const parameterLocation = v.enum({
47
+ query: 'query',
48
+ header: 'header',
49
+ path: 'path',
50
+ cookie: 'cookie'
51
+ });
52
+ const parameterStyle = v.enum({
53
+ matrix: 'matrix',
54
+ label: 'label',
55
+ form: 'form',
56
+ simple: 'simple',
57
+ spaceDelimited: 'spaceDelimited',
58
+ pipeDelimited: 'pipeDelimited',
59
+ deepObject: 'deepObject'
60
+ });
47
61
  const toParameterListV3 = ({ parameters, stackTrail, context }) => {
48
62
  if (!parameters) {
49
63
  return undefined;
@@ -91,7 +105,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
91
105
  stackTrail,
92
106
  parentType: 'parameter'
93
107
  });
94
- const parsedLocation = v.parse(parameter_types_js_1.oasParameterLocation, location);
108
+ const parsedLocation = v.parse(parameterLocation, location);
95
109
  if (parsedLocation === 'path' && !required) {
96
110
  console.warn(`Path parameters must be required`);
97
111
  }
@@ -121,7 +135,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
121
135
  return context.withStackTrail(stackTrail, () => new Parameter_js_1.OasParameter(fields, context));
122
136
  };
123
137
  const toStyle = ({ style, location, stackTrail }) => {
124
- const parsed = v.parse(v.optional(parameter_types_js_1.oasParameterStyle), style);
138
+ const parsed = v.parse(v.optional(parameterStyle), style);
125
139
  if (parsed !== undefined) {
126
140
  return parsed;
127
141
  }
@@ -6,6 +6,7 @@ const toRefV31_js_1 = require("../ref/toRefV31.js");
6
6
  const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
7
7
  const RequestBody_js_1 = require("../../../oas/requestBody/RequestBody.js");
8
8
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
9
+ const logBodyMediaTypes_js_1 = require("../../logBodyMediaTypes.js");
9
10
  const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
10
11
  if (!requestBody) {
11
12
  return undefined;
@@ -29,7 +30,9 @@ const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
29
30
  required,
30
31
  extensionFields
31
32
  };
32
- return context.withStackTrail(stackTrail, () => new RequestBody_js_1.OasRequestBody(fields, context));
33
+ const parsed = context.withStackTrail(stackTrail, () => new RequestBody_js_1.OasRequestBody(fields, context));
34
+ (0, logBodyMediaTypes_js_1.logBodyMediaTypes)({ content: fields.content, stackTrail, context });
35
+ return parsed;
33
36
  };
34
37
  exports.toRequestBodyV3 = toRequestBodyV3;
35
38
  const toRequestBodiesV3 = ({ requestBodies, stackTrail, context }) => {
@@ -9,6 +9,7 @@ const toMediaTypeItemV3_js_1 = require("../mediaType/toMediaTypeItemV3.js");
9
9
  const Response_js_1 = require("../../../oas/response/Response.js");
10
10
  const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
11
11
  const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
12
+ const logBodyMediaTypes_js_1 = require("../../logBodyMediaTypes.js");
12
13
  const toResponsesV3 = ({ responses, stackTrail, context }) => {
13
14
  const output = {};
14
15
  const entries = Object.entries(responses);
@@ -50,12 +51,14 @@ const toResponseV3 = ({ response, stackTrail, context }) => {
50
51
  const parsedHeaders = stackTrail.trace('headers', st => (0, toHeadersV3_js_1.toHeadersV3)({ headers, stackTrail: st, context }));
51
52
  const parsedLinks = stackTrail.trace('links', st => (0, toLinksV3_js_1.toLinksV3)({ links, stackTrail: st, context }));
52
53
  const parsedContent = stackTrail.trace('content', st => (0, toMediaTypeItemV3_js_1.toOptionalMediaTypeItemsV3)({ content, stackTrail: st, context }));
53
- return context.withStackTrail(stackTrail, () => new Response_js_1.OasResponse({
54
+ const parsed = context.withStackTrail(stackTrail, () => new Response_js_1.OasResponse({
54
55
  description,
55
56
  headers: parsedHeaders,
56
57
  links: parsedLinks,
57
58
  content: parsedContent,
58
59
  extensionFields
59
60
  }, context));
61
+ (0, logBodyMediaTypes_js_1.logBodyMediaTypes)({ content: parsedContent, stackTrail, context });
62
+ return parsed;
60
63
  };
61
64
  exports.toResponseV3 = toResponseV3;