@skmtc/core 0.29.0 → 0.30.1

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 (369) 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 +2 -2
  5. package/esm/context/generateTypes.js +3 -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/oas/discriminator/Discriminator.d.ts +3 -0
  11. package/esm/oas/discriminator/Discriminator.js +7 -0
  12. package/esm/oas/document/Document.d.ts +7 -0
  13. package/esm/oas/document/Document.js +8 -0
  14. package/esm/oas/example/Example.d.ts +10 -1
  15. package/esm/oas/example/Example.js +16 -0
  16. package/esm/oas/mediaType/MediaType.d.ts +12 -0
  17. package/esm/oas/mediaType/MediaType.js +24 -0
  18. package/esm/oas/parameter/Parameter.d.ts +2 -1
  19. package/esm/oas/parameter/Parameter.js +5 -2
  20. package/esm/oas/parameter/parameter-types.d.ts +10 -2
  21. package/esm/oas/parameter/parameter-types.js +3 -1
  22. package/esm/oas/response/Response.d.ts +6 -1
  23. package/esm/oas/response/Response.js +8 -0
  24. package/esm/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  25. package/esm/oas/securitySchemes/SecurityScheme.js +46 -1
  26. package/esm/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  27. package/esm/oas/server/Server.d.ts +8 -2
  28. package/esm/oas/server/Server.js +10 -1
  29. package/esm/oas/tag/Tag.d.ts +9 -0
  30. package/esm/oas/tag/Tag.js +9 -0
  31. package/esm/parse/toOasDialect.d.ts +8 -7
  32. package/esm/parse/toOasDialect.js +4 -2
  33. package/esm/parse/v3-0/methods.d.ts +11 -0
  34. package/esm/parse/v3-0/methods.js +16 -0
  35. package/esm/parse/v3-0/operation/toOperationsV3.js +5 -5
  36. package/esm/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  37. package/esm/parse/v3-0/parameter/toParameterV3.js +17 -3
  38. package/esm/parse/v3-0/securitySchemes/toSecuritySchemes.js +50 -38
  39. package/esm/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  40. package/esm/parse/v3-1/methods.d.ts +11 -0
  41. package/esm/parse/v3-1/methods.js +16 -0
  42. package/esm/parse/v3-1/operation/toOperationsV3.js +5 -5
  43. package/esm/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  44. package/esm/parse/v3-1/parameter/toParameterV3.js +17 -3
  45. package/esm/parse/v3-1/securitySchemes/toSecuritySchemes.js +50 -38
  46. package/esm/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  47. package/esm/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  48. package/esm/parse/v3-2/_helpers/parseDefault.js +39 -0
  49. package/esm/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  50. package/esm/parse/v3-2/_helpers/parseEnum.js +23 -0
  51. package/esm/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  52. package/esm/parse/v3-2/_helpers/parseExample.js +37 -0
  53. package/esm/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  54. package/esm/parse/v3-2/_helpers/parseNullable.js +140 -0
  55. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  56. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +9 -0
  57. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  58. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +5 -0
  59. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  60. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.js +11 -0
  61. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  62. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.js +5 -0
  63. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  64. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +11 -0
  65. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  66. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +5 -0
  67. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  68. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.js +5 -0
  69. package/esm/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  70. package/esm/parse/v3-2/_merge-all-of/cross-product.js +3 -0
  71. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  72. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.js +27 -0
  73. package/esm/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  74. package/esm/parse/v3-2/_merge-all-of/decompose-union.js +69 -0
  75. package/esm/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  76. package/esm/parse/v3-2/_merge-all-of/generic-merge.js +12 -0
  77. package/esm/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  78. package/esm/parse/v3-2/_merge-all-of/is-equal.js +19 -0
  79. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  80. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.js +44 -0
  81. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  82. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +7 -0
  83. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  84. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.js +32 -0
  85. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  86. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.js +41 -0
  87. package/esm/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  88. package/esm/parse/v3-2/_merge-all-of/merge-intersection.js +16 -0
  89. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  90. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.js +41 -0
  91. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  92. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.js +28 -0
  93. package/esm/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  94. package/esm/parse/v3-2/_merge-all-of/merge-properties.js +25 -0
  95. package/esm/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  96. package/esm/parse/v3-2/_merge-all-of/merge-required.js +10 -0
  97. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  98. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.js +55 -0
  99. package/esm/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  100. package/esm/parse/v3-2/_merge-all-of/merge-union.js +53 -0
  101. package/esm/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  102. package/esm/parse/v3-2/_merge-all-of/merge.js +155 -0
  103. package/esm/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  104. package/esm/parse/v3-2/_merge-all-of/nullable-merge.js +12 -0
  105. package/esm/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  106. package/esm/parse/v3-2/_merge-all-of/types.js +2 -0
  107. package/esm/parse/v3-2/array/toArray.d.ts +80 -0
  108. package/esm/parse/v3-2/array/toArray.js +165 -0
  109. package/esm/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  110. package/esm/parse/v3-2/boolean/toBoolean.js +139 -0
  111. package/esm/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  112. package/esm/parse/v3-2/components/toComponentsV3.js +43 -0
  113. package/esm/parse/v3-2/contact/toContactV3.d.ts +5 -0
  114. package/esm/parse/v3-2/contact/toContactV3.js +18 -0
  115. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  116. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.js +21 -0
  117. package/esm/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  118. package/esm/parse/v3-2/document/toDocumentFieldsV3.js +33 -0
  119. package/esm/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  120. package/esm/parse/v3-2/example/toExamplesV3.js +143 -0
  121. package/esm/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  122. package/esm/parse/v3-2/externalDocs/toExternalDocs.js +15 -0
  123. package/esm/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  124. package/esm/parse/v3-2/header/toHeadersV3.js +47 -0
  125. package/esm/parse/v3-2/info/toInfoV3.d.ts +10 -0
  126. package/esm/parse/v3-2/info/toInfoV3.js +23 -0
  127. package/esm/parse/v3-2/integer/toInteger.d.ts +21 -0
  128. package/esm/parse/v3-2/integer/toInteger.js +115 -0
  129. package/esm/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  130. package/esm/parse/v3-2/license/toLicenseV3.js +17 -0
  131. package/esm/parse/v3-2/link/toLinksV3.d.ts +16 -0
  132. package/esm/parse/v3-2/link/toLinksV3.js +40 -0
  133. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  134. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.js +375 -0
  135. package/esm/parse/v3-2/methods.d.ts +17 -0
  136. package/esm/parse/v3-2/methods.js +21 -0
  137. package/esm/parse/v3-2/number/toNumber.d.ts +10 -0
  138. package/esm/parse/v3-2/number/toNumber.js +115 -0
  139. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  140. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.js +10 -0
  141. package/esm/parse/v3-2/object/toObject.d.ts +10 -0
  142. package/esm/parse/v3-2/object/toObject.js +90 -0
  143. package/esm/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  144. package/esm/parse/v3-2/operation/toOperationsV3.js +129 -0
  145. package/esm/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  146. package/esm/parse/v3-2/parameter/toParameterV3.js +152 -0
  147. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  148. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.js +39 -0
  149. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  150. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +34 -0
  151. package/esm/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  152. package/esm/parse/v3-2/pathItem/toPathItemV3.js +45 -0
  153. package/esm/parse/v3-2/ref/toRefV31.d.ts +19 -0
  154. package/esm/parse/v3-2/ref/toRefV31.js +10 -0
  155. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  156. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.js +44 -0
  157. package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
  158. package/esm/parse/v3-2/response/toResponseV3.js +56 -0
  159. package/esm/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  160. package/esm/parse/v3-2/schema/toSchemasV3.js +511 -0
  161. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  162. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.js +9 -0
  163. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  164. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.js +152 -0
  165. package/esm/parse/v3-2/server/toServerV3.d.ts +26 -0
  166. package/esm/parse/v3-2/server/toServerV3.js +31 -0
  167. package/esm/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  168. package/esm/parse/v3-2/serverVariable/toServerVariableV3.js +30 -0
  169. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  170. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +25 -0
  171. package/esm/parse/v3-2/string/toString.d.ts +146 -0
  172. package/esm/parse/v3-2/string/toString.js +211 -0
  173. package/esm/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  174. package/esm/parse/v3-2/tag/toTagsV3.js +78 -0
  175. package/esm/parse/v3-2/union/toUnion.d.ts +12 -0
  176. package/esm/parse/v3-2/union/toUnion.js +68 -0
  177. package/esm/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  178. package/esm/parse/v3-2/unknown/toUnknown.js +19 -0
  179. package/esm/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  180. package/esm/parse/v3-2/webhook/toWebhooksV3.js +139 -0
  181. package/esm/types/Method.d.ts +7 -4
  182. package/esm/types/Method.js +17 -4
  183. package/esm/types/Preview.d.ts +2 -1
  184. package/esm/types/SkmtcDocument.d.ts +6 -6
  185. package/package.json +1 -1
  186. package/script/_dnt.polyfills.d.ts +11 -0
  187. package/script/_dnt.polyfills.js +14 -0
  188. package/script/context/ParseContext.js +9 -1
  189. package/script/context/generateTypes.d.ts +2 -2
  190. package/script/context/generateTypes.js +3 -1
  191. package/script/dsl/GeneratorKeys.d.ts +2 -2
  192. package/script/dsl/GeneratorKeys.js +6 -3
  193. package/script/helpers/naming.d.ts +2 -1
  194. package/script/helpers/naming.js +4 -2
  195. package/script/oas/discriminator/Discriminator.d.ts +3 -0
  196. package/script/oas/discriminator/Discriminator.js +7 -0
  197. package/script/oas/document/Document.d.ts +7 -0
  198. package/script/oas/document/Document.js +8 -0
  199. package/script/oas/example/Example.d.ts +10 -1
  200. package/script/oas/example/Example.js +16 -0
  201. package/script/oas/mediaType/MediaType.d.ts +12 -0
  202. package/script/oas/mediaType/MediaType.js +24 -0
  203. package/script/oas/parameter/Parameter.d.ts +2 -1
  204. package/script/oas/parameter/Parameter.js +5 -2
  205. package/script/oas/parameter/parameter-types.d.ts +10 -2
  206. package/script/oas/parameter/parameter-types.js +3 -1
  207. package/script/oas/response/Response.d.ts +6 -1
  208. package/script/oas/response/Response.js +8 -0
  209. package/script/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  210. package/script/oas/securitySchemes/SecurityScheme.js +46 -1
  211. package/script/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  212. package/script/oas/server/Server.d.ts +8 -2
  213. package/script/oas/server/Server.js +10 -1
  214. package/script/oas/tag/Tag.d.ts +9 -0
  215. package/script/oas/tag/Tag.js +9 -0
  216. package/script/parse/toOasDialect.d.ts +8 -7
  217. package/script/parse/toOasDialect.js +4 -2
  218. package/script/parse/v3-0/methods.d.ts +11 -0
  219. package/script/parse/v3-0/methods.js +20 -0
  220. package/script/parse/v3-0/operation/toOperationsV3.js +5 -5
  221. package/script/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  222. package/script/parse/v3-0/parameter/toParameterV3.js +17 -3
  223. package/script/parse/v3-0/securitySchemes/toSecuritySchemes.js +49 -37
  224. package/script/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  225. package/script/parse/v3-1/methods.d.ts +11 -0
  226. package/script/parse/v3-1/methods.js +20 -0
  227. package/script/parse/v3-1/operation/toOperationsV3.js +5 -5
  228. package/script/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  229. package/script/parse/v3-1/parameter/toParameterV3.js +17 -3
  230. package/script/parse/v3-1/securitySchemes/toSecuritySchemes.js +49 -37
  231. package/script/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  232. package/script/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  233. package/script/parse/v3-2/_helpers/parseDefault.js +43 -0
  234. package/script/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  235. package/script/parse/v3-2/_helpers/parseEnum.js +27 -0
  236. package/script/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  237. package/script/parse/v3-2/_helpers/parseExample.js +41 -0
  238. package/script/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  239. package/script/parse/v3-2/_helpers/parseNullable.js +144 -0
  240. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  241. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +13 -0
  242. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  243. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +9 -0
  244. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  245. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.js +15 -0
  246. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  247. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.js +9 -0
  248. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  249. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +15 -0
  250. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  251. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +9 -0
  252. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  253. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.js +9 -0
  254. package/script/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  255. package/script/parse/v3-2/_merge-all-of/cross-product.js +7 -0
  256. package/script/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  257. package/script/parse/v3-2/_merge-all-of/decompose-intersection.js +31 -0
  258. package/script/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  259. package/script/parse/v3-2/_merge-all-of/decompose-union.js +73 -0
  260. package/script/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  261. package/script/parse/v3-2/_merge-all-of/generic-merge.js +16 -0
  262. package/script/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  263. package/script/parse/v3-2/_merge-all-of/is-equal.js +23 -0
  264. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  265. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.js +80 -0
  266. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  267. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +43 -0
  268. package/script/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  269. package/script/parse/v3-2/_merge-all-of/merge-enum-values.js +68 -0
  270. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  271. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.js +77 -0
  272. package/script/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  273. package/script/parse/v3-2/_merge-all-of/merge-intersection.js +20 -0
  274. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  275. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.js +77 -0
  276. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  277. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.js +65 -0
  278. package/script/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  279. package/script/parse/v3-2/_merge-all-of/merge-properties.js +29 -0
  280. package/script/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  281. package/script/parse/v3-2/_merge-all-of/merge-required.js +15 -0
  282. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  283. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.js +91 -0
  284. package/script/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  285. package/script/parse/v3-2/_merge-all-of/merge-union.js +58 -0
  286. package/script/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  287. package/script/parse/v3-2/_merge-all-of/merge.js +159 -0
  288. package/script/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  289. package/script/parse/v3-2/_merge-all-of/nullable-merge.js +17 -0
  290. package/script/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  291. package/script/parse/v3-2/_merge-all-of/types.js +38 -0
  292. package/script/parse/v3-2/array/toArray.d.ts +80 -0
  293. package/script/parse/v3-2/array/toArray.js +203 -0
  294. package/script/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  295. package/script/parse/v3-2/boolean/toBoolean.js +177 -0
  296. package/script/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  297. package/script/parse/v3-2/components/toComponentsV3.js +47 -0
  298. package/script/parse/v3-2/contact/toContactV3.d.ts +5 -0
  299. package/script/parse/v3-2/contact/toContactV3.js +22 -0
  300. package/script/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  301. package/script/parse/v3-2/discriminator/toDiscriminatorV3.js +25 -0
  302. package/script/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  303. package/script/parse/v3-2/document/toDocumentFieldsV3.js +37 -0
  304. package/script/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  305. package/script/parse/v3-2/example/toExamplesV3.js +149 -0
  306. package/script/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  307. package/script/parse/v3-2/externalDocs/toExternalDocs.js +52 -0
  308. package/script/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  309. package/script/parse/v3-2/header/toHeadersV3.js +51 -0
  310. package/script/parse/v3-2/info/toInfoV3.d.ts +10 -0
  311. package/script/parse/v3-2/info/toInfoV3.js +27 -0
  312. package/script/parse/v3-2/integer/toInteger.d.ts +21 -0
  313. package/script/parse/v3-2/integer/toInteger.js +153 -0
  314. package/script/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  315. package/script/parse/v3-2/license/toLicenseV3.js +21 -0
  316. package/script/parse/v3-2/link/toLinksV3.d.ts +16 -0
  317. package/script/parse/v3-2/link/toLinksV3.js +44 -0
  318. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  319. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.js +381 -0
  320. package/script/parse/v3-2/methods.d.ts +17 -0
  321. package/script/parse/v3-2/methods.js +25 -0
  322. package/script/parse/v3-2/number/toNumber.d.ts +10 -0
  323. package/script/parse/v3-2/number/toNumber.js +152 -0
  324. package/script/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  325. package/script/parse/v3-2/object/toAdditionalPropertiesV3.js +14 -0
  326. package/script/parse/v3-2/object/toObject.d.ts +10 -0
  327. package/script/parse/v3-2/object/toObject.js +94 -0
  328. package/script/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  329. package/script/parse/v3-2/operation/toOperationsV3.js +134 -0
  330. package/script/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  331. package/script/parse/v3-2/parameter/toParameterV3.js +191 -0
  332. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  333. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.js +43 -0
  334. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  335. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +38 -0
  336. package/script/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  337. package/script/parse/v3-2/pathItem/toPathItemV3.js +50 -0
  338. package/script/parse/v3-2/ref/toRefV31.d.ts +19 -0
  339. package/script/parse/v3-2/ref/toRefV31.js +14 -0
  340. package/script/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  341. package/script/parse/v3-2/requestBody/toRequestBodiesV3.js +49 -0
  342. package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
  343. package/script/parse/v3-2/response/toResponseV3.js +62 -0
  344. package/script/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  345. package/script/parse/v3-2/schema/toSchemasV3.js +518 -0
  346. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  347. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.js +13 -0
  348. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  349. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.js +189 -0
  350. package/script/parse/v3-2/server/toServerV3.d.ts +26 -0
  351. package/script/parse/v3-2/server/toServerV3.js +37 -0
  352. package/script/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  353. package/script/parse/v3-2/serverVariable/toServerVariableV3.js +36 -0
  354. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  355. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +30 -0
  356. package/script/parse/v3-2/string/toString.d.ts +146 -0
  357. package/script/parse/v3-2/string/toString.js +249 -0
  358. package/script/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  359. package/script/parse/v3-2/tag/toTagsV3.js +83 -0
  360. package/script/parse/v3-2/union/toUnion.d.ts +12 -0
  361. package/script/parse/v3-2/union/toUnion.js +72 -0
  362. package/script/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  363. package/script/parse/v3-2/unknown/toUnknown.js +23 -0
  364. package/script/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  365. package/script/parse/v3-2/webhook/toWebhooksV3.js +144 -0
  366. package/script/types/Method.d.ts +7 -4
  367. package/script/types/Method.js +17 -4
  368. package/script/types/Preview.d.ts +2 -1
  369. package/script/types/SkmtcDocument.d.ts +6 -6
@@ -18,6 +18,12 @@ export class OasHttpSecurityScheme {
18
18
  writable: true,
19
19
  value: void 0
20
20
  });
21
+ Object.defineProperty(this, "deprecated", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
21
27
  Object.defineProperty(this, "scheme", {
22
28
  enumerable: true,
23
29
  configurable: true,
@@ -31,6 +37,7 @@ export class OasHttpSecurityScheme {
31
37
  value: void 0
32
38
  });
33
39
  this.description = fields.description;
40
+ this.deprecated = fields.deprecated;
34
41
  this.scheme = fields.scheme;
35
42
  this.bearerFormat = fields.bearerFormat;
36
43
  }
@@ -47,6 +54,7 @@ export class OasHttpSecurityScheme {
47
54
  return {
48
55
  type: 'http',
49
56
  description: this.description,
57
+ ...(this.deprecated === undefined ? {} : { deprecated: this.deprecated }),
50
58
  scheme: this.scheme,
51
59
  bearerFormat: this.bearerFormat
52
60
  };
@@ -72,6 +80,12 @@ export class OasApiKeySecurityScheme {
72
80
  writable: true,
73
81
  value: void 0
74
82
  });
83
+ Object.defineProperty(this, "deprecated", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: void 0
88
+ });
75
89
  Object.defineProperty(this, "name", {
76
90
  enumerable: true,
77
91
  configurable: true,
@@ -85,6 +99,7 @@ export class OasApiKeySecurityScheme {
85
99
  value: void 0
86
100
  });
87
101
  this.description = fields.description;
102
+ this.deprecated = fields.deprecated;
88
103
  this.name = fields.name;
89
104
  this.location = fields.in;
90
105
  }
@@ -100,6 +115,7 @@ export class OasApiKeySecurityScheme {
100
115
  toJsonSchema() {
101
116
  return {
102
117
  type: 'apiKey',
118
+ ...(this.deprecated === undefined ? {} : { deprecated: this.deprecated }),
103
119
  name: this.name,
104
120
  in: this.location
105
121
  };
@@ -125,6 +141,18 @@ export class OasOAuth2SecurityScheme {
125
141
  writable: true,
126
142
  value: void 0
127
143
  });
144
+ Object.defineProperty(this, "deprecated", {
145
+ enumerable: true,
146
+ configurable: true,
147
+ writable: true,
148
+ value: void 0
149
+ });
150
+ Object.defineProperty(this, "oauth2MetadataUrl", {
151
+ enumerable: true,
152
+ configurable: true,
153
+ writable: true,
154
+ value: void 0
155
+ });
128
156
  Object.defineProperty(this, "flows", {
129
157
  enumerable: true,
130
158
  configurable: true,
@@ -132,6 +160,8 @@ export class OasOAuth2SecurityScheme {
132
160
  value: void 0
133
161
  });
134
162
  this.description = fields.description;
163
+ this.deprecated = fields.deprecated;
164
+ this.oauth2MetadataUrl = fields.oauth2MetadataUrl;
135
165
  this.flows = fields.flows;
136
166
  }
137
167
  isRef() {
@@ -147,11 +177,18 @@ export class OasOAuth2SecurityScheme {
147
177
  return {
148
178
  type: 'oauth2',
149
179
  description: this.description,
180
+ ...(this.deprecated === undefined ? {} : { deprecated: this.deprecated }),
181
+ ...(this.oauth2MetadataUrl === undefined
182
+ ? {}
183
+ : { oauth2MetadataUrl: this.oauth2MetadataUrl }),
150
184
  flows: {
151
185
  authorizationCode: this.flows.authorizationCode,
152
186
  clientCredentials: this.flows.clientCredentials,
153
187
  implicit: this.flows.implicit,
154
- password: this.flows.password
188
+ password: this.flows.password,
189
+ ...(this.flows.deviceAuthorization === undefined
190
+ ? {}
191
+ : { deviceAuthorization: this.flows.deviceAuthorization })
155
192
  }
156
193
  };
157
194
  }
@@ -176,6 +213,12 @@ export class OasOpenIdSecurityScheme {
176
213
  writable: true,
177
214
  value: void 0
178
215
  });
216
+ Object.defineProperty(this, "deprecated", {
217
+ enumerable: true,
218
+ configurable: true,
219
+ writable: true,
220
+ value: void 0
221
+ });
179
222
  Object.defineProperty(this, "openIdConnectUrl", {
180
223
  enumerable: true,
181
224
  configurable: true,
@@ -183,6 +226,7 @@ export class OasOpenIdSecurityScheme {
183
226
  value: void 0
184
227
  });
185
228
  this.description = fields.description;
229
+ this.deprecated = fields.deprecated;
186
230
  this.openIdConnectUrl = fields.openIdConnectUrl;
187
231
  }
188
232
  isRef() {
@@ -198,6 +242,7 @@ export class OasOpenIdSecurityScheme {
198
242
  return {
199
243
  type: 'openIdConnect',
200
244
  description: this.description,
245
+ ...(this.deprecated === undefined ? {} : { deprecated: this.deprecated }),
201
246
  openIdConnectUrl: this.openIdConnectUrl
202
247
  };
203
248
  }
@@ -10,6 +10,8 @@ export type OasHttpSecuritySchemeData = {
10
10
  type: 'http';
11
11
  /** Human-readable description of the security scheme */
12
12
  description?: string;
13
+ /** Whether the scheme is deprecated (OpenAPI 3.2) */
14
+ deprecated?: boolean;
13
15
  /** HTTP authorization scheme (e.g., 'basic', 'bearer') */
14
16
  scheme: string;
15
17
  /** Format hint for bearer tokens (e.g., 'JWT') */
@@ -35,6 +37,8 @@ export type OasApiKeySecuritySchemeData = {
35
37
  type: 'apiKey';
36
38
  /** Human-readable description of the security scheme */
37
39
  description?: string;
40
+ /** Whether the scheme is deprecated (OpenAPI 3.2) */
41
+ deprecated?: boolean;
38
42
  /** Name of the header, query parameter, or cookie */
39
43
  name: string;
40
44
  /** Location where the API key should be sent */
@@ -128,11 +132,25 @@ export declare const oasPasswordOAuth2FlowData: v.ObjectSchema<{
128
132
  readonly refreshUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
129
133
  readonly scopes: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
130
134
  }, undefined>;
135
+ /**
136
+ * Data type for the OAuth2 device authorization flow (OpenAPI 3.2).
137
+ */
138
+ export type OasDeviceAuthorizationOAuth2FlowData = {
139
+ /** URL for the OAuth2 device authorization endpoint */
140
+ deviceAuthorizationUrl: string;
141
+ /** URL for the OAuth2 token endpoint */
142
+ tokenUrl: string;
143
+ /** Optional URL for token refresh */
144
+ refreshUrl?: string | undefined;
145
+ /** Available scopes mapped to their descriptions */
146
+ scopes?: Record<string, string> | undefined;
147
+ };
131
148
  export type OasOAuth2FlowsData = {
132
149
  authorizationCode?: OasAuthorizationCodeOAuth2FlowData;
133
150
  clientCredentials?: OasClientCredentialsOAuth2FlowData;
134
151
  implicit?: OasImplicitOAuth2FlowData;
135
152
  password?: OasPasswordOAuth2FlowData;
153
+ deviceAuthorization?: OasDeviceAuthorizationOAuth2FlowData;
136
154
  };
137
155
  export declare const oasOAuth2FlowsData: v.ObjectSchema<{
138
156
  readonly authorizationCode: v.OptionalSchema<v.ObjectSchema<{
@@ -160,6 +178,8 @@ export declare const oasOAuth2FlowsData: v.ObjectSchema<{
160
178
  export type OasOAuth2SecuritySchemeData = {
161
179
  type: 'oauth2';
162
180
  description?: string;
181
+ deprecated?: boolean;
182
+ oauth2MetadataUrl?: string;
163
183
  flows: OasOAuth2FlowsData;
164
184
  };
165
185
  export declare const oasOAuth2SecuritySchemeData: v.ObjectSchema<{
@@ -192,6 +212,7 @@ export declare const oasOAuth2SecuritySchemeData: v.ObjectSchema<{
192
212
  export type OasOpenIdSecuritySchemeData = {
193
213
  type: 'openIdConnect';
194
214
  description?: string;
215
+ deprecated?: boolean;
195
216
  openIdConnectUrl: string;
196
217
  };
197
218
  export declare const oasOpenIdSecuritySchemeData: v.ObjectSchema<{
@@ -10,6 +10,8 @@ import type { OasServerVariable } from '../serverVariable/ServerVariable.js';
10
10
  */
11
11
  export type ServerFields = {
12
12
  description?: string | undefined;
13
+ /** Name that identifies the server (OpenAPI 3.2) */
14
+ name?: string | undefined;
13
15
  url: string;
14
16
  variables?: Record<string, OasServerVariable> | undefined;
15
17
  extensionFields?: Record<string, unknown>;
@@ -54,6 +56,8 @@ export declare class OasServer {
54
56
  oasType: 'server';
55
57
  /** Human-readable description of the server */
56
58
  description: string | undefined;
59
+ /** Name that identifies the server (OpenAPI 3.2) */
60
+ name: string | undefined;
57
61
  /** Server URL with optional variable templating */
58
62
  url: string;
59
63
  /** Variable definitions for URL templating */
@@ -88,7 +92,9 @@ export declare class OasServer {
88
92
  * Converts this OAS server to an OpenAPI v3 JSON schema representation.
89
93
  *
90
94
  * @param _options - Conversion options (currently unused for server objects)
91
- * @returns OpenAPI v3 server object with URL, description, and variables
95
+ * @returns OpenAPI v3 server object with URL, description, variables and, when set, name
92
96
  */
93
- toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ServerObject;
97
+ toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ServerObject & {
98
+ name?: string;
99
+ };
94
100
  }
@@ -55,6 +55,13 @@ export class OasServer {
55
55
  writable: true,
56
56
  value: void 0
57
57
  });
58
+ /** Name that identifies the server (OpenAPI 3.2) */
59
+ Object.defineProperty(this, "name", {
60
+ enumerable: true,
61
+ configurable: true,
62
+ writable: true,
63
+ value: void 0
64
+ });
58
65
  /** Server URL with optional variable templating */
59
66
  Object.defineProperty(this, "url", {
60
67
  enumerable: true,
@@ -77,6 +84,7 @@ export class OasServer {
77
84
  value: void 0
78
85
  });
79
86
  this.description = fields.description;
87
+ this.name = fields.name;
80
88
  this.url = fields.url;
81
89
  this.variables = fields.variables;
82
90
  this.extensionFields = fields.extensionFields;
@@ -109,11 +117,12 @@ export class OasServer {
109
117
  * Converts this OAS server to an OpenAPI v3 JSON schema representation.
110
118
  *
111
119
  * @param _options - Conversion options (currently unused for server objects)
112
- * @returns OpenAPI v3 server object with URL, description, and variables
120
+ * @returns OpenAPI v3 server object with URL, description, variables and, when set, name
113
121
  */
114
122
  toJsonSchema(_options) {
115
123
  return {
116
124
  description: this.description,
125
+ ...(this.name !== undefined ? { name: this.name } : {}),
117
126
  url: this.url,
118
127
  variables: this.variables
119
128
  };
@@ -3,6 +3,12 @@ import type { OasExternalDocs } from '../externalDocs/ExternalDocs.js';
3
3
  export type TagFields = {
4
4
  name: string;
5
5
  description: string | undefined;
6
+ /** Short summary of the tag (OpenAPI 3.2) */
7
+ summary?: string;
8
+ /** Name of the tag this tag nests under (OpenAPI 3.2) */
9
+ parent?: string;
10
+ /** Kind of tag, e.g. `nav`, `badge` or `audience` (OpenAPI 3.2, open registry) */
11
+ kind?: string;
6
12
  externalDocs?: OasExternalDocs;
7
13
  extensionFields?: Record<string, unknown>;
8
14
  };
@@ -12,6 +18,9 @@ export declare class OasTag {
12
18
  constructor(fields: TagFields);
13
19
  get name(): string;
14
20
  get description(): string | undefined;
21
+ get summary(): string | undefined;
22
+ get parent(): string | undefined;
23
+ get kind(): string | undefined;
15
24
  get externalDocs(): OasExternalDocs | undefined;
16
25
  /** Specification Extension fields */
17
26
  get extensionFields(): Record<string, unknown> | undefined;
@@ -28,6 +28,15 @@ export class OasTag {
28
28
  get description() {
29
29
  return __classPrivateFieldGet(this, _OasTag_fields, "f").description;
30
30
  }
31
+ get summary() {
32
+ return __classPrivateFieldGet(this, _OasTag_fields, "f").summary;
33
+ }
34
+ get parent() {
35
+ return __classPrivateFieldGet(this, _OasTag_fields, "f").parent;
36
+ }
37
+ get kind() {
38
+ return __classPrivateFieldGet(this, _OasTag_fields, "f").kind;
39
+ }
31
40
  get externalDocs() {
32
41
  return __classPrivateFieldGet(this, _OasTag_fields, "f").externalDocs;
33
42
  }
@@ -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
  *
@@ -6,7 +6,7 @@
6
6
  * precondition failure — there is no sensible parser to pick — so it throws
7
7
  * rather than silently defaulting to one dialect and masking the error. A
8
8
  * loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
9
- * non-3.1 value (a typo, `3.2`, `4.0`, a missing field) into 3.0 unnoticed;
9
+ * non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
10
10
  * that is the footgun this avoids. Mirrors `@skmtc/convert`'s
11
11
  * `toV3Document`, which likewise throws on an unrecognized version.
12
12
  *
@@ -18,5 +18,7 @@ export const toOasDialect = (openapi) => {
18
18
  return '3.0';
19
19
  if (openapi?.startsWith('3.1'))
20
20
  return '3.1';
21
- throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x or 3.1.x`);
21
+ if (openapi?.startsWith('3.2'))
22
+ return '3.2';
23
+ throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x, 3.1.x or 3.2.x`);
22
24
  };
@@ -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,16 @@
1
+ export const pathItemMethods = [
2
+ 'get',
3
+ 'put',
4
+ 'post',
5
+ 'delete',
6
+ 'options',
7
+ 'head',
8
+ 'patch',
9
+ 'trace'
10
+ ];
11
+ /**
12
+ * Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
13
+ */
14
+ export const toPathItemMethod = (key) => {
15
+ return pathItemMethods.find(method => method === key);
16
+ };
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
3
3
  import { toParameterListV3 } from '../parameter/toParameterV3.js';
4
4
  import { OasOperation } from '../../../oas/operation/Operation.js';
5
5
  import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
6
- import { methodValues } from '../../../types/Method.js';
6
+ import { toPathItemMethod } from '../methods.js';
7
7
  import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
8
8
  import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
9
9
  import { isEmpty } from '../../../helpers/isEmpty.js';
@@ -54,14 +54,14 @@ export const toOperationsV3 = ({ paths, stackTrail, context }) => {
54
54
  return [];
55
55
  }
56
56
  const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
57
- const isMethod = methodValues.includes(key);
58
- if (isMethod) {
59
- const { [key]: _deleted, ...remaining } = rest;
57
+ const method = toPathItemMethod(key);
58
+ if (method) {
59
+ const { [method]: _deleted, ...remaining } = rest;
60
60
  return {
61
61
  rest: remaining,
62
62
  methodObject: {
63
63
  ...methodObject,
64
- [key]: operation
64
+ [method]: operation
65
65
  }
66
66
  };
67
67
  }
@@ -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 {};
@@ -1,6 +1,5 @@
1
1
  import { tryParseAt } from '../../../context/tryParseAt.js';
2
2
  import { isRef } from '../../../helpers/refFns.js';
3
- import { oasParameterLocation, oasParameterStyle } from '../../../oas/parameter/parameter-types.js';
4
3
  import { toExamplesV3 } from '../example/toExamplesV3.js';
5
4
  import { toRefV31 } from '../ref/toRefV31.js';
6
5
  import { toOptionalSchemaV3 } from '../schema/toSchemasV3.js';
@@ -8,6 +7,21 @@ import { toOptionalMediaTypeItemsV3 } from '../mediaType/toMediaTypeItemV3.js';
8
7
  import { OasParameter } from '../../../oas/parameter/Parameter.js';
9
8
  import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
10
9
  import * as v from 'valibot';
10
+ const parameterLocation = v.enum({
11
+ query: 'query',
12
+ header: 'header',
13
+ path: 'path',
14
+ cookie: 'cookie'
15
+ });
16
+ const parameterStyle = v.enum({
17
+ matrix: 'matrix',
18
+ label: 'label',
19
+ form: 'form',
20
+ simple: 'simple',
21
+ spaceDelimited: 'spaceDelimited',
22
+ pipeDelimited: 'pipeDelimited',
23
+ deepObject: 'deepObject'
24
+ });
11
25
  export const toParameterListV3 = ({ parameters, stackTrail, context }) => {
12
26
  if (!parameters) {
13
27
  return undefined;
@@ -52,7 +66,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
52
66
  stackTrail,
53
67
  parentType: 'parameter'
54
68
  });
55
- const parsedLocation = v.parse(oasParameterLocation, location);
69
+ const parsedLocation = v.parse(parameterLocation, location);
56
70
  if (parsedLocation === 'path' && !required) {
57
71
  console.warn(`Path parameters must be required`);
58
72
  }
@@ -82,7 +96,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
82
96
  return context.withStackTrail(stackTrail, () => new OasParameter(fields, context));
83
97
  };
84
98
  const toStyle = ({ style, location, stackTrail }) => {
85
- const parsed = v.parse(v.optional(oasParameterStyle), style);
99
+ const parsed = v.parse(v.optional(parameterStyle), style);
86
100
  if (parsed !== undefined) {
87
101
  return parsed;
88
102
  }
@@ -1,10 +1,10 @@
1
1
  import { OasHttpSecurityScheme, OasApiKeySecurityScheme, OasOAuth2SecurityScheme, OasOpenIdSecurityScheme } from '../../../oas/securitySchemes/SecurityScheme.js';
2
2
  import * as v from 'valibot';
3
- import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
3
+ import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2FlowsData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
4
4
  import { toRefV31 } from '../ref/toRefV31.js';
5
5
  import { isRef } from '../../../helpers/refFns.js';
6
- import { isEmpty } from '../../../helpers/isEmpty.js';
7
6
  import { tryParseAt } from '../../../context/tryParseAt.js';
7
+ import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
8
8
  export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) => {
9
9
  if (!securitySchemes) {
10
10
  return undefined;
@@ -27,21 +27,29 @@ export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) =>
27
27
  }
28
28
  return output;
29
29
  };
30
+ /**
31
+ * Log the keys of `value` that `known` does not name as skipped fields.
32
+ * `v.parse` on a `v.object` schema strips unknown keys, so they are read
33
+ * off the raw object. `x-` extensions are not logged.
34
+ */
35
+ const logSkippedKeys = ({ value, known, parentType, stackTrail, context }) => {
36
+ const skipped = Object.fromEntries(Object.entries(value).filter(([key]) => !Object.hasOwn(known, key)));
37
+ toSpecificationExtensionsV3({ skipped, parent: value, parentType, stackTrail, context });
38
+ };
30
39
  const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
31
40
  if (isRef(securityScheme)) {
32
41
  return toRefV31({ ref: securityScheme, refType: 'securityScheme', stackTrail, context });
33
42
  }
34
43
  switch (securityScheme.type) {
35
44
  case 'http': {
36
- const { type: _type, description, scheme, bearerFormat, ...skipped } = v.parse(oasHttpSecuritySchemeData, securityScheme);
37
- if (!isEmpty(skipped)) {
38
- context.logSkippedFields({
39
- skipped,
40
- parent: securityScheme,
41
- stackTrail,
42
- parentType: 'securityScheme:http'
43
- });
44
- }
45
+ const { description, scheme, bearerFormat } = v.parse(oasHttpSecuritySchemeData, securityScheme);
46
+ logSkippedKeys({
47
+ value: securityScheme,
48
+ known: oasHttpSecuritySchemeData.entries,
49
+ parentType: 'securityScheme:http',
50
+ stackTrail,
51
+ context
52
+ });
45
53
  return new OasHttpSecurityScheme({
46
54
  description,
47
55
  scheme,
@@ -49,15 +57,14 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
49
57
  });
50
58
  }
51
59
  case 'apiKey': {
52
- const { type: _type, in: location, description, name, ...skipped } = v.parse(oasApiKeySecuritySchemeData, securityScheme);
53
- if (!isEmpty(skipped)) {
54
- context.logSkippedFields({
55
- skipped,
56
- parent: securityScheme,
57
- stackTrail,
58
- parentType: 'securityScheme:apiKey'
59
- });
60
- }
60
+ const { in: location, description, name } = v.parse(oasApiKeySecuritySchemeData, securityScheme);
61
+ logSkippedKeys({
62
+ value: securityScheme,
63
+ known: oasApiKeySecuritySchemeData.entries,
64
+ parentType: 'securityScheme:apiKey',
65
+ stackTrail,
66
+ context
67
+ });
61
68
  return new OasApiKeySecurityScheme({
62
69
  description,
63
70
  name,
@@ -65,30 +72,35 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
65
72
  });
66
73
  }
67
74
  case 'oauth2': {
68
- const { type: _type, flows, description, ...skipped } = v.parse(oasOAuth2SecuritySchemeData, securityScheme);
69
- if (!isEmpty(skipped)) {
70
- context.logSkippedFields({
71
- skipped,
72
- parent: securityScheme,
73
- stackTrail,
74
- parentType: 'securityScheme:oauth2'
75
- });
76
- }
75
+ const { flows, description } = v.parse(oasOAuth2SecuritySchemeData, securityScheme);
76
+ logSkippedKeys({
77
+ value: securityScheme,
78
+ known: oasOAuth2SecuritySchemeData.entries,
79
+ parentType: 'securityScheme:oauth2',
80
+ stackTrail,
81
+ context
82
+ });
83
+ stackTrail.trace('flows', st => logSkippedKeys({
84
+ value: securityScheme.flows,
85
+ known: oasOAuth2FlowsData.entries,
86
+ parentType: 'oauthFlows',
87
+ stackTrail: st,
88
+ context
89
+ }));
77
90
  return new OasOAuth2SecurityScheme({
78
91
  description,
79
92
  flows
80
93
  });
81
94
  }
82
95
  case 'openIdConnect': {
83
- const { type: _type, description, openIdConnectUrl, ...skipped } = v.parse(oasOpenIdSecuritySchemeData, securityScheme);
84
- if (!isEmpty(skipped)) {
85
- context.logSkippedFields({
86
- skipped,
87
- parent: securityScheme,
88
- stackTrail,
89
- parentType: 'securityScheme:openIdConnect'
90
- });
91
- }
96
+ const { description, openIdConnectUrl } = v.parse(oasOpenIdSecuritySchemeData, securityScheme);
97
+ logSkippedKeys({
98
+ value: securityScheme,
99
+ known: oasOpenIdSecuritySchemeData.entries,
100
+ parentType: 'securityScheme:openIdConnect',
101
+ stackTrail,
102
+ context
103
+ });
92
104
  return new OasOpenIdSecurityScheme({
93
105
  description,
94
106
  openIdConnectUrl
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
3
3
  import { toParameterListV3 } from '../parameter/toParameterV3.js';
4
4
  import { OasWebhook } from '../../../oas/webhook/Webhook.js';
5
5
  import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
6
- import { methodValues } from '../../../types/Method.js';
6
+ import { toPathItemMethod } from '../methods.js';
7
7
  import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
8
8
  import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
9
9
  import { isEmpty } from '../../../helpers/isEmpty.js';
@@ -69,14 +69,14 @@ export const toWebhooksV3 = ({ webhooks, stackTrail, context }) => {
69
69
  return [];
70
70
  }
71
71
  const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
72
- const isMethod = methodValues.includes(key);
73
- if (isMethod) {
74
- const { [key]: _deleted, ...remaining } = rest;
72
+ const method = toPathItemMethod(key);
73
+ if (method) {
74
+ const { [method]: _deleted, ...remaining } = rest;
75
75
  return {
76
76
  rest: remaining,
77
77
  methodObject: {
78
78
  ...methodObject,
79
- [key]: operation
79
+ [method]: operation
80
80
  }
81
81
  };
82
82
  }
@@ -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;