@skmtc/core 0.28.7 → 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 (427) hide show
  1. package/esm/_dnt.polyfills.d.ts +11 -0
  2. package/esm/_dnt.polyfills.js +14 -0
  3. package/esm/context/GenerateContext.js +16 -16
  4. package/esm/context/ParseContext.js +9 -1
  5. package/esm/context/RenderContext.d.ts +7 -7
  6. package/esm/context/RenderContext.js +17 -12
  7. package/esm/context/generateTypes.d.ts +2 -2
  8. package/esm/context/generateTypes.js +3 -1
  9. package/esm/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.d.ts +16 -0
  10. package/esm/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.js +23 -0
  11. package/esm/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.d.ts +16 -0
  12. package/esm/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.js +38 -0
  13. package/esm/dsl/GeneratorKeys.d.ts +2 -2
  14. package/esm/dsl/GeneratorKeys.js +6 -3
  15. package/esm/dsl/model/ModelDriver.js +4 -3
  16. package/esm/dsl/operation/gql/GqlOperationDriver.js +4 -3
  17. package/esm/dsl/operation/oas/OasOperationDriver.js +4 -3
  18. package/esm/dsl/webhook/WebhookDriver.js +4 -3
  19. package/esm/helpers/applyGeneratedSuffix.js +1 -1
  20. package/esm/helpers/isImported.d.ts +10 -74
  21. package/esm/helpers/isImported.js +12 -76
  22. package/esm/helpers/naming.d.ts +2 -1
  23. package/esm/helpers/naming.js +4 -2
  24. package/esm/helpers/normalizeWorkspacePath.d.ts +64 -0
  25. package/esm/helpers/normalizeWorkspacePath.js +98 -0
  26. package/esm/helpers/toResolvedArtifactPath.d.ts +8 -5
  27. package/esm/helpers/toResolvedArtifactPath.js +11 -7
  28. package/esm/helpers/toWorkspacePath.d.ts +3 -3
  29. package/esm/helpers/toWorkspacePath.js +5 -5
  30. package/esm/mod.d.ts +1 -0
  31. package/esm/mod.js +1 -0
  32. package/esm/oas/discriminator/Discriminator.d.ts +3 -0
  33. package/esm/oas/discriminator/Discriminator.js +7 -0
  34. package/esm/oas/document/Document.d.ts +7 -0
  35. package/esm/oas/document/Document.js +8 -0
  36. package/esm/oas/example/Example.d.ts +10 -1
  37. package/esm/oas/example/Example.js +16 -0
  38. package/esm/oas/mediaType/MediaType.d.ts +12 -0
  39. package/esm/oas/mediaType/MediaType.js +24 -0
  40. package/esm/oas/parameter/Parameter.d.ts +2 -1
  41. package/esm/oas/parameter/Parameter.js +5 -2
  42. package/esm/oas/parameter/parameter-types.d.ts +10 -2
  43. package/esm/oas/parameter/parameter-types.js +3 -1
  44. package/esm/oas/response/Response.d.ts +6 -1
  45. package/esm/oas/response/Response.js +8 -0
  46. package/esm/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  47. package/esm/oas/securitySchemes/SecurityScheme.js +46 -1
  48. package/esm/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  49. package/esm/oas/server/Server.d.ts +8 -2
  50. package/esm/oas/server/Server.js +10 -1
  51. package/esm/oas/tag/Tag.d.ts +9 -0
  52. package/esm/oas/tag/Tag.js +9 -0
  53. package/esm/parse/toOasDialect.d.ts +8 -7
  54. package/esm/parse/toOasDialect.js +4 -2
  55. package/esm/parse/v3-0/methods.d.ts +11 -0
  56. package/esm/parse/v3-0/methods.js +16 -0
  57. package/esm/parse/v3-0/operation/toOperationsV3.js +5 -5
  58. package/esm/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  59. package/esm/parse/v3-0/parameter/toParameterV3.js +17 -3
  60. package/esm/parse/v3-0/securitySchemes/toSecuritySchemes.js +50 -38
  61. package/esm/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  62. package/esm/parse/v3-1/methods.d.ts +11 -0
  63. package/esm/parse/v3-1/methods.js +16 -0
  64. package/esm/parse/v3-1/operation/toOperationsV3.js +5 -5
  65. package/esm/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  66. package/esm/parse/v3-1/parameter/toParameterV3.js +17 -3
  67. package/esm/parse/v3-1/securitySchemes/toSecuritySchemes.js +50 -38
  68. package/esm/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  69. package/esm/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  70. package/esm/parse/v3-2/_helpers/parseDefault.js +39 -0
  71. package/esm/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  72. package/esm/parse/v3-2/_helpers/parseEnum.js +23 -0
  73. package/esm/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  74. package/esm/parse/v3-2/_helpers/parseExample.js +37 -0
  75. package/esm/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  76. package/esm/parse/v3-2/_helpers/parseNullable.js +140 -0
  77. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  78. package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +9 -0
  79. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  80. package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +5 -0
  81. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  82. package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.js +11 -0
  83. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  84. package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.js +5 -0
  85. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  86. package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +11 -0
  87. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  88. package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +5 -0
  89. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  90. package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.js +5 -0
  91. package/esm/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  92. package/esm/parse/v3-2/_merge-all-of/cross-product.js +3 -0
  93. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  94. package/esm/parse/v3-2/_merge-all-of/decompose-intersection.js +27 -0
  95. package/esm/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  96. package/esm/parse/v3-2/_merge-all-of/decompose-union.js +69 -0
  97. package/esm/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  98. package/esm/parse/v3-2/_merge-all-of/generic-merge.js +12 -0
  99. package/esm/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  100. package/esm/parse/v3-2/_merge-all-of/is-equal.js +19 -0
  101. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  102. package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.js +44 -0
  103. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  104. package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +7 -0
  105. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  106. package/esm/parse/v3-2/_merge-all-of/merge-enum-values.js +32 -0
  107. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  108. package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.js +41 -0
  109. package/esm/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  110. package/esm/parse/v3-2/_merge-all-of/merge-intersection.js +16 -0
  111. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  112. package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.js +41 -0
  113. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  114. package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.js +28 -0
  115. package/esm/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  116. package/esm/parse/v3-2/_merge-all-of/merge-properties.js +25 -0
  117. package/esm/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  118. package/esm/parse/v3-2/_merge-all-of/merge-required.js +10 -0
  119. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  120. package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.js +55 -0
  121. package/esm/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  122. package/esm/parse/v3-2/_merge-all-of/merge-union.js +53 -0
  123. package/esm/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  124. package/esm/parse/v3-2/_merge-all-of/merge.js +155 -0
  125. package/esm/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  126. package/esm/parse/v3-2/_merge-all-of/nullable-merge.js +12 -0
  127. package/esm/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  128. package/esm/parse/v3-2/_merge-all-of/types.js +2 -0
  129. package/esm/parse/v3-2/array/toArray.d.ts +80 -0
  130. package/esm/parse/v3-2/array/toArray.js +165 -0
  131. package/esm/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  132. package/esm/parse/v3-2/boolean/toBoolean.js +139 -0
  133. package/esm/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  134. package/esm/parse/v3-2/components/toComponentsV3.js +43 -0
  135. package/esm/parse/v3-2/contact/toContactV3.d.ts +5 -0
  136. package/esm/parse/v3-2/contact/toContactV3.js +18 -0
  137. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  138. package/esm/parse/v3-2/discriminator/toDiscriminatorV3.js +21 -0
  139. package/esm/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  140. package/esm/parse/v3-2/document/toDocumentFieldsV3.js +33 -0
  141. package/esm/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  142. package/esm/parse/v3-2/example/toExamplesV3.js +143 -0
  143. package/esm/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  144. package/esm/parse/v3-2/externalDocs/toExternalDocs.js +15 -0
  145. package/esm/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  146. package/esm/parse/v3-2/header/toHeadersV3.js +47 -0
  147. package/esm/parse/v3-2/info/toInfoV3.d.ts +10 -0
  148. package/esm/parse/v3-2/info/toInfoV3.js +23 -0
  149. package/esm/parse/v3-2/integer/toInteger.d.ts +21 -0
  150. package/esm/parse/v3-2/integer/toInteger.js +115 -0
  151. package/esm/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  152. package/esm/parse/v3-2/license/toLicenseV3.js +17 -0
  153. package/esm/parse/v3-2/link/toLinksV3.d.ts +16 -0
  154. package/esm/parse/v3-2/link/toLinksV3.js +40 -0
  155. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  156. package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.js +375 -0
  157. package/esm/parse/v3-2/methods.d.ts +17 -0
  158. package/esm/parse/v3-2/methods.js +21 -0
  159. package/esm/parse/v3-2/number/toNumber.d.ts +10 -0
  160. package/esm/parse/v3-2/number/toNumber.js +115 -0
  161. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  162. package/esm/parse/v3-2/object/toAdditionalPropertiesV3.js +10 -0
  163. package/esm/parse/v3-2/object/toObject.d.ts +10 -0
  164. package/esm/parse/v3-2/object/toObject.js +90 -0
  165. package/esm/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  166. package/esm/parse/v3-2/operation/toOperationsV3.js +129 -0
  167. package/esm/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  168. package/esm/parse/v3-2/parameter/toParameterV3.js +152 -0
  169. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  170. package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.js +39 -0
  171. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  172. package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +34 -0
  173. package/esm/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  174. package/esm/parse/v3-2/pathItem/toPathItemV3.js +45 -0
  175. package/esm/parse/v3-2/ref/toRefV31.d.ts +19 -0
  176. package/esm/parse/v3-2/ref/toRefV31.js +10 -0
  177. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  178. package/esm/parse/v3-2/requestBody/toRequestBodiesV3.js +44 -0
  179. package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
  180. package/esm/parse/v3-2/response/toResponseV3.js +56 -0
  181. package/esm/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  182. package/esm/parse/v3-2/schema/toSchemasV3.js +511 -0
  183. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  184. package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.js +9 -0
  185. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  186. package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.js +152 -0
  187. package/esm/parse/v3-2/server/toServerV3.d.ts +26 -0
  188. package/esm/parse/v3-2/server/toServerV3.js +31 -0
  189. package/esm/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  190. package/esm/parse/v3-2/serverVariable/toServerVariableV3.js +30 -0
  191. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  192. package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +25 -0
  193. package/esm/parse/v3-2/string/toString.d.ts +146 -0
  194. package/esm/parse/v3-2/string/toString.js +211 -0
  195. package/esm/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  196. package/esm/parse/v3-2/tag/toTagsV3.js +78 -0
  197. package/esm/parse/v3-2/union/toUnion.d.ts +12 -0
  198. package/esm/parse/v3-2/union/toUnion.js +68 -0
  199. package/esm/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  200. package/esm/parse/v3-2/unknown/toUnknown.js +19 -0
  201. package/esm/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  202. package/esm/parse/v3-2/webhook/toWebhooksV3.js +139 -0
  203. package/esm/types/Method.d.ts +7 -4
  204. package/esm/types/Method.js +17 -4
  205. package/esm/types/Preview.d.ts +2 -1
  206. package/esm/types/Settings.js +6 -8
  207. package/esm/types/SkmtcDocument.d.ts +6 -6
  208. package/package.json +1 -1
  209. package/script/_dnt.polyfills.d.ts +11 -0
  210. package/script/_dnt.polyfills.js +14 -0
  211. package/script/context/GenerateContext.js +16 -16
  212. package/script/context/ParseContext.js +9 -1
  213. package/script/context/RenderContext.d.ts +7 -7
  214. package/script/context/RenderContext.js +17 -12
  215. package/script/context/generateTypes.d.ts +2 -2
  216. package/script/context/generateTypes.js +3 -1
  217. package/script/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.d.ts +16 -0
  218. package/script/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.js +26 -0
  219. package/script/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.d.ts +16 -0
  220. package/script/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.js +41 -0
  221. package/script/dsl/GeneratorKeys.d.ts +2 -2
  222. package/script/dsl/GeneratorKeys.js +6 -3
  223. package/script/dsl/model/ModelDriver.js +4 -3
  224. package/script/dsl/operation/gql/GqlOperationDriver.js +4 -3
  225. package/script/dsl/operation/oas/OasOperationDriver.js +4 -3
  226. package/script/dsl/webhook/WebhookDriver.js +4 -3
  227. package/script/helpers/applyGeneratedSuffix.js +1 -1
  228. package/script/helpers/isImported.d.ts +10 -74
  229. package/script/helpers/isImported.js +12 -76
  230. package/script/helpers/naming.d.ts +2 -1
  231. package/script/helpers/naming.js +4 -2
  232. package/script/helpers/normalizeWorkspacePath.d.ts +64 -0
  233. package/script/helpers/normalizeWorkspacePath.js +107 -0
  234. package/script/helpers/toResolvedArtifactPath.d.ts +8 -5
  235. package/script/helpers/toResolvedArtifactPath.js +11 -7
  236. package/script/helpers/toWorkspacePath.d.ts +3 -3
  237. package/script/helpers/toWorkspacePath.js +5 -5
  238. package/script/mod.d.ts +1 -0
  239. package/script/mod.js +1 -0
  240. package/script/oas/discriminator/Discriminator.d.ts +3 -0
  241. package/script/oas/discriminator/Discriminator.js +7 -0
  242. package/script/oas/document/Document.d.ts +7 -0
  243. package/script/oas/document/Document.js +8 -0
  244. package/script/oas/example/Example.d.ts +10 -1
  245. package/script/oas/example/Example.js +16 -0
  246. package/script/oas/mediaType/MediaType.d.ts +12 -0
  247. package/script/oas/mediaType/MediaType.js +24 -0
  248. package/script/oas/parameter/Parameter.d.ts +2 -1
  249. package/script/oas/parameter/Parameter.js +5 -2
  250. package/script/oas/parameter/parameter-types.d.ts +10 -2
  251. package/script/oas/parameter/parameter-types.js +3 -1
  252. package/script/oas/response/Response.d.ts +6 -1
  253. package/script/oas/response/Response.js +8 -0
  254. package/script/oas/securitySchemes/SecurityScheme.d.ts +47 -4
  255. package/script/oas/securitySchemes/SecurityScheme.js +46 -1
  256. package/script/oas/securitySchemes/security-scheme-types.d.ts +21 -0
  257. package/script/oas/server/Server.d.ts +8 -2
  258. package/script/oas/server/Server.js +10 -1
  259. package/script/oas/tag/Tag.d.ts +9 -0
  260. package/script/oas/tag/Tag.js +9 -0
  261. package/script/parse/toOasDialect.d.ts +8 -7
  262. package/script/parse/toOasDialect.js +4 -2
  263. package/script/parse/v3-0/methods.d.ts +11 -0
  264. package/script/parse/v3-0/methods.js +20 -0
  265. package/script/parse/v3-0/operation/toOperationsV3.js +5 -5
  266. package/script/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
  267. package/script/parse/v3-0/parameter/toParameterV3.js +17 -3
  268. package/script/parse/v3-0/securitySchemes/toSecuritySchemes.js +49 -37
  269. package/script/parse/v3-0/webhook/toWebhooksV3.js +5 -5
  270. package/script/parse/v3-1/methods.d.ts +11 -0
  271. package/script/parse/v3-1/methods.js +20 -0
  272. package/script/parse/v3-1/operation/toOperationsV3.js +5 -5
  273. package/script/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
  274. package/script/parse/v3-1/parameter/toParameterV3.js +17 -3
  275. package/script/parse/v3-1/securitySchemes/toSecuritySchemes.js +49 -37
  276. package/script/parse/v3-1/webhook/toWebhooksV3.js +5 -5
  277. package/script/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
  278. package/script/parse/v3-2/_helpers/parseDefault.js +43 -0
  279. package/script/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
  280. package/script/parse/v3-2/_helpers/parseEnum.js +27 -0
  281. package/script/parse/v3-2/_helpers/parseExample.d.ts +41 -0
  282. package/script/parse/v3-2/_helpers/parseExample.js +41 -0
  283. package/script/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
  284. package/script/parse/v3-2/_helpers/parseNullable.js +144 -0
  285. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
  286. package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +13 -0
  287. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
  288. package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +9 -0
  289. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
  290. package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.js +15 -0
  291. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
  292. package/script/parse/v3-2/_merge-all-of/check-format-conflicts.js +9 -0
  293. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
  294. package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +15 -0
  295. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
  296. package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +9 -0
  297. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
  298. package/script/parse/v3-2/_merge-all-of/check-type-conflicts.js +9 -0
  299. package/script/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
  300. package/script/parse/v3-2/_merge-all-of/cross-product.js +7 -0
  301. package/script/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
  302. package/script/parse/v3-2/_merge-all-of/decompose-intersection.js +31 -0
  303. package/script/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
  304. package/script/parse/v3-2/_merge-all-of/decompose-union.js +73 -0
  305. package/script/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
  306. package/script/parse/v3-2/_merge-all-of/generic-merge.js +16 -0
  307. package/script/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
  308. package/script/parse/v3-2/_merge-all-of/is-equal.js +23 -0
  309. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
  310. package/script/parse/v3-2/_merge-all-of/merge-array-constraints.js +80 -0
  311. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
  312. package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +43 -0
  313. package/script/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
  314. package/script/parse/v3-2/_merge-all-of/merge-enum-values.js +68 -0
  315. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
  316. package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.js +77 -0
  317. package/script/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
  318. package/script/parse/v3-2/_merge-all-of/merge-intersection.js +20 -0
  319. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
  320. package/script/parse/v3-2/_merge-all-of/merge-number-constraints.js +77 -0
  321. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
  322. package/script/parse/v3-2/_merge-all-of/merge-object-constraints.js +65 -0
  323. package/script/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
  324. package/script/parse/v3-2/_merge-all-of/merge-properties.js +29 -0
  325. package/script/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
  326. package/script/parse/v3-2/_merge-all-of/merge-required.js +15 -0
  327. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
  328. package/script/parse/v3-2/_merge-all-of/merge-string-constraints.js +91 -0
  329. package/script/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
  330. package/script/parse/v3-2/_merge-all-of/merge-union.js +58 -0
  331. package/script/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
  332. package/script/parse/v3-2/_merge-all-of/merge.js +159 -0
  333. package/script/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
  334. package/script/parse/v3-2/_merge-all-of/nullable-merge.js +17 -0
  335. package/script/parse/v3-2/_merge-all-of/types.d.ts +14 -0
  336. package/script/parse/v3-2/_merge-all-of/types.js +38 -0
  337. package/script/parse/v3-2/array/toArray.d.ts +80 -0
  338. package/script/parse/v3-2/array/toArray.js +203 -0
  339. package/script/parse/v3-2/boolean/toBoolean.d.ts +78 -0
  340. package/script/parse/v3-2/boolean/toBoolean.js +177 -0
  341. package/script/parse/v3-2/components/toComponentsV3.d.ts +14 -0
  342. package/script/parse/v3-2/components/toComponentsV3.js +47 -0
  343. package/script/parse/v3-2/contact/toContactV3.d.ts +5 -0
  344. package/script/parse/v3-2/contact/toContactV3.js +22 -0
  345. package/script/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
  346. package/script/parse/v3-2/discriminator/toDiscriminatorV3.js +25 -0
  347. package/script/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
  348. package/script/parse/v3-2/document/toDocumentFieldsV3.js +37 -0
  349. package/script/parse/v3-2/example/toExamplesV3.d.ts +77 -0
  350. package/script/parse/v3-2/example/toExamplesV3.js +149 -0
  351. package/script/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
  352. package/script/parse/v3-2/externalDocs/toExternalDocs.js +52 -0
  353. package/script/parse/v3-2/header/toHeadersV3.d.ts +18 -0
  354. package/script/parse/v3-2/header/toHeadersV3.js +51 -0
  355. package/script/parse/v3-2/info/toInfoV3.d.ts +10 -0
  356. package/script/parse/v3-2/info/toInfoV3.js +27 -0
  357. package/script/parse/v3-2/integer/toInteger.d.ts +21 -0
  358. package/script/parse/v3-2/integer/toInteger.js +153 -0
  359. package/script/parse/v3-2/license/toLicenseV3.d.ts +5 -0
  360. package/script/parse/v3-2/license/toLicenseV3.js +21 -0
  361. package/script/parse/v3-2/link/toLinksV3.d.ts +16 -0
  362. package/script/parse/v3-2/link/toLinksV3.js +44 -0
  363. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
  364. package/script/parse/v3-2/mediaType/toMediaTypeItemV3.js +381 -0
  365. package/script/parse/v3-2/methods.d.ts +17 -0
  366. package/script/parse/v3-2/methods.js +25 -0
  367. package/script/parse/v3-2/number/toNumber.d.ts +10 -0
  368. package/script/parse/v3-2/number/toNumber.js +152 -0
  369. package/script/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
  370. package/script/parse/v3-2/object/toAdditionalPropertiesV3.js +14 -0
  371. package/script/parse/v3-2/object/toObject.d.ts +10 -0
  372. package/script/parse/v3-2/object/toObject.js +94 -0
  373. package/script/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
  374. package/script/parse/v3-2/operation/toOperationsV3.js +134 -0
  375. package/script/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
  376. package/script/parse/v3-2/parameter/toParameterV3.js +191 -0
  377. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
  378. package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.js +43 -0
  379. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
  380. package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +38 -0
  381. package/script/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
  382. package/script/parse/v3-2/pathItem/toPathItemV3.js +50 -0
  383. package/script/parse/v3-2/ref/toRefV31.d.ts +19 -0
  384. package/script/parse/v3-2/ref/toRefV31.js +14 -0
  385. package/script/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
  386. package/script/parse/v3-2/requestBody/toRequestBodiesV3.js +49 -0
  387. package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
  388. package/script/parse/v3-2/response/toResponseV3.js +62 -0
  389. package/script/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
  390. package/script/parse/v3-2/schema/toSchemasV3.js +518 -0
  391. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
  392. package/script/parse/v3-2/securityRequirement/toSecurityRequirement.js +13 -0
  393. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
  394. package/script/parse/v3-2/securitySchemes/toSecuritySchemes.js +189 -0
  395. package/script/parse/v3-2/server/toServerV3.d.ts +26 -0
  396. package/script/parse/v3-2/server/toServerV3.js +37 -0
  397. package/script/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
  398. package/script/parse/v3-2/serverVariable/toServerVariableV3.js +36 -0
  399. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
  400. package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +30 -0
  401. package/script/parse/v3-2/string/toString.d.ts +146 -0
  402. package/script/parse/v3-2/string/toString.js +249 -0
  403. package/script/parse/v3-2/tag/toTagsV3.d.ts +22 -0
  404. package/script/parse/v3-2/tag/toTagsV3.js +83 -0
  405. package/script/parse/v3-2/union/toUnion.d.ts +12 -0
  406. package/script/parse/v3-2/union/toUnion.js +72 -0
  407. package/script/parse/v3-2/unknown/toUnknown.d.ts +10 -0
  408. package/script/parse/v3-2/unknown/toUnknown.js +23 -0
  409. package/script/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
  410. package/script/parse/v3-2/webhook/toWebhooksV3.js +144 -0
  411. package/script/types/Method.d.ts +7 -4
  412. package/script/types/Method.js +17 -4
  413. package/script/types/Preview.d.ts +2 -1
  414. package/script/types/Settings.js +7 -9
  415. package/script/types/SkmtcDocument.d.ts +6 -6
  416. package/esm/deps/jsr.io/@std/path/1.1.6/extname.d.ts +0 -24
  417. package/esm/deps/jsr.io/@std/path/1.1.6/extname.js +0 -31
  418. package/esm/deps/jsr.io/@std/path/1.1.6/normalize.d.ts +0 -25
  419. package/esm/deps/jsr.io/@std/path/1.1.6/normalize.js +0 -32
  420. package/esm/deps/jsr.io/@std/path/1.1.6/windows/extname.d.ts +0 -17
  421. package/esm/deps/jsr.io/@std/path/1.1.6/windows/extname.js +0 -83
  422. package/script/deps/jsr.io/@std/path/1.1.6/extname.d.ts +0 -24
  423. package/script/deps/jsr.io/@std/path/1.1.6/extname.js +0 -34
  424. package/script/deps/jsr.io/@std/path/1.1.6/normalize.d.ts +0 -25
  425. package/script/deps/jsr.io/@std/path/1.1.6/normalize.js +0 -35
  426. package/script/deps/jsr.io/@std/path/1.1.6/windows/extname.d.ts +0 -17
  427. package/script/deps/jsr.io/@std/path/1.1.6/windows/extname.js +0 -86
@@ -0,0 +1,518 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toOptionalSchemaV3 = exports.toSchemaV3 = exports.toOptionalSchemasV3 = exports.toSchemasV3 = void 0;
4
+ const toRefV31_js_1 = require("../ref/toRefV31.js");
5
+ const refFns_js_1 = require("../../../helpers/refFns.js");
6
+ const toArray_js_1 = require("../array/toArray.js");
7
+ const toObject_js_1 = require("../object/toObject.js");
8
+ const toInteger_js_1 = require("../integer/toInteger.js");
9
+ const toNumber_js_1 = require("../number/toNumber.js");
10
+ const toBoolean_js_1 = require("../boolean/toBoolean.js");
11
+ const toString_js_1 = require("../string/toString.js");
12
+ const toUnknown_js_1 = require("../unknown/toUnknown.js");
13
+ const toUnion_js_1 = require("../union/toUnion.js");
14
+ const refFns_js_2 = require("../../../helpers/refFns.js");
15
+ const merge_intersection_js_1 = require("../_merge-all-of/merge-intersection.js");
16
+ const merge_union_js_1 = require("../_merge-all-of/merge-union.js");
17
+ const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
18
+ const toSchemasV3 = ({ schemas, stackTrail, context }) => {
19
+ const output = {};
20
+ const entries = Object.entries(schemas);
21
+ for (const [key, schema] of entries) {
22
+ const value = (0, tryParseAt_js_1.tryParseAt)({
23
+ stackTrail,
24
+ key,
25
+ context,
26
+ type: 'INVALID_SCHEMA',
27
+ parent: schema,
28
+ fn: st => (0, exports.toSchemaV3)({ schema, stackTrail: st, context })
29
+ });
30
+ if (value !== undefined) {
31
+ output[key] = value;
32
+ }
33
+ }
34
+ return output;
35
+ };
36
+ exports.toSchemasV3 = toSchemasV3;
37
+ const toOptionalSchemasV3 = ({ schemas, stackTrail, context }) => {
38
+ if (!schemas) {
39
+ return undefined;
40
+ }
41
+ return (0, exports.toSchemasV3)({ schemas, stackTrail, context });
42
+ };
43
+ exports.toOptionalSchemasV3 = toOptionalSchemasV3;
44
+ /**
45
+ * OpenAPI 3.1 lets a schema's `type` be an ARRAY (e.g. `['string', 'null']`),
46
+ * which the shared IR — modelling a single `type` plus a `nullable` flag —
47
+ * does not. Normalize the array form into shapes the rest of the dispatcher
48
+ * already understands:
49
+ *
50
+ * - `['T', 'null']` (one non-null type) → `{ type: 'T', nullable: true }`
51
+ * - `['T1', 'T2', …]` (several non-null) → a `oneOf` of the bare types,
52
+ * i.e. the 3.1 multi-type union. 3.0 cannot express this — it is the
53
+ * CASE-2 gap where the v3-0 parser degrades to OasUnknown.
54
+ * - `['null']` (only null) → left unchanged → OasUnknown,
55
+ * since there is no first-class OasNull IR node yet (a documented gap).
56
+ *
57
+ * The hoisted `nullable` flag is the IR's representation of nullability; the
58
+ * leaf parsers read it via `parseNullable`. A non-array `type` passes through.
59
+ */
60
+ const normalizeTypeArray = (schema) => {
61
+ const rawType = schema.type;
62
+ if (!Array.isArray(rawType)) {
63
+ return schema;
64
+ }
65
+ const members = rawType.filter(member => member !== 'null');
66
+ const nullable = rawType.length !== members.length || schema.nullable;
67
+ // Only `null` (`type: ['null']`): no OasNull node yet — fall through.
68
+ if (members.length === 0) {
69
+ return schema;
70
+ }
71
+ // Several non-null types: a 3.1 multi-type union. Model it as a `oneOf`
72
+ // of the bare types and let the oneOf branch build the OasUnion.
73
+ if (members.length > 1) {
74
+ const { type: _type, ...rest } = schema;
75
+ return { ...rest, nullable, oneOf: members.map(member => ({ type: member })) };
76
+ }
77
+ // Exactly one non-null type: dispatch as that type, carrying nullability.
78
+ switch (members[0]) {
79
+ case 'object':
80
+ case 'integer':
81
+ case 'number':
82
+ case 'boolean':
83
+ case 'string':
84
+ return { ...schema, type: members[0], nullable };
85
+ case 'array':
86
+ return 'items' in schema ? { ...schema, type: members[0], nullable } : schema;
87
+ default:
88
+ return schema;
89
+ }
90
+ };
91
+ /**
92
+ * OpenAPI 3.1 `const: X` is the single-value form of `enum` (3.0 expresses a
93
+ * literal as a one-element `enum`). Rewrite it so the existing enum-aware leaf
94
+ * parsers handle it; matches down-convert's `convertConstToEnum`, so a 3.0
95
+ * `enum:[X]` and a 3.1 `const:X` land on the same IR.
96
+ */
97
+ const normalizeConst = (schema) => {
98
+ if (!('const' in schema)) {
99
+ return schema;
100
+ }
101
+ // `const` is a 3.1 keyword the 3.0-typed SchemaObject does not model; read
102
+ // it via an annotated destructure rather than a cast.
103
+ const { const: constValue, ...rest } = schema;
104
+ return { ...rest, enum: [constValue] };
105
+ };
106
+ /**
107
+ * OpenAPI 3.1 schemas carry `examples` (an array, JSON Schema 2020-12); 3.0
108
+ * and the IR use a single `example`. Adopt the first array element as the IR
109
+ * `example` when no singular `example` is set, and drop the array. Matches
110
+ * down-convert's `convertJsonSchemaExamples`.
111
+ */
112
+ const normalizeExamples = (schema) => {
113
+ if ('example' in schema || !('examples' in schema)) {
114
+ return schema;
115
+ }
116
+ // `examples` is a 3.1 keyword the 3.0-typed SchemaObject does not model.
117
+ const { examples, ...rest } = schema;
118
+ if (!Array.isArray(examples) || examples.length === 0) {
119
+ return rest;
120
+ }
121
+ return { ...rest, example: examples[0] };
122
+ };
123
+ /**
124
+ * OpenAPI 3.1 expresses exclusive bounds as NUMBERS (`exclusiveMinimum: 5`
125
+ * means "> 5"); the shared IR (and 3.0) model them as a boolean flag paired
126
+ * with `minimum`/`maximum`. Convert the numeric form so the number/integer
127
+ * leaves validate. Matches down-convert's `convertExclusiveMinMax`, so a 3.0
128
+ * `{minimum:5, exclusiveMinimum:true}` and a 3.1 `{exclusiveMinimum:5}` land
129
+ * on the same IR.
130
+ */
131
+ const normalizeExclusiveBounds = (schema) => {
132
+ // `exclusiveMinimum`/`exclusiveMaximum` are 3.0-typed boolean here; in 3.1
133
+ // they arrive as numbers, so read them loosely.
134
+ const exclusiveMinimum = schema.exclusiveMinimum;
135
+ const exclusiveMaximum = schema.exclusiveMaximum;
136
+ if (typeof exclusiveMinimum !== 'number' && typeof exclusiveMaximum !== 'number') {
137
+ return schema;
138
+ }
139
+ const next = { ...schema };
140
+ if (typeof exclusiveMinimum === 'number') {
141
+ next.minimum = exclusiveMinimum;
142
+ next.exclusiveMinimum = true;
143
+ }
144
+ if (typeof exclusiveMaximum === 'number') {
145
+ next.maximum = exclusiveMaximum;
146
+ next.exclusiveMaximum = true;
147
+ }
148
+ return next;
149
+ };
150
+ /**
151
+ * OpenAPI 3.1 / JSON Schema 2020-12 expresses a binary string payload with
152
+ * `contentMediaType: 'application/octet-stream'` and base64 with
153
+ * `contentEncoding: 'base64'`; the shared IR (and 3.0) carry these as a string
154
+ * `format` (`binary` / `byte`, both in the format allow-list). Map them so the
155
+ * format reaches the IR. Mirrors down-convert's
156
+ * `convertJsonSchemaContentMediaType` / `convertJsonSchemaContentEncoding`:
157
+ * string schemas only, and a pre-existing (conflicting) `format` wins — the
158
+ * content keyword is dropped, not overwritten. Without this, retiring
159
+ * down-convert would silently lose the `format` signal on 3.1 binary uploads.
160
+ */
161
+ const normalizeContentFormat = (schema) => {
162
+ if (schema.type !== 'string') {
163
+ return schema;
164
+ }
165
+ // `contentMediaType`/`contentEncoding` are 3.1 keywords the 3.0-typed
166
+ // SchemaObject does not model; read them loosely.
167
+ const view = schema;
168
+ const derivedFormat = view.contentMediaType === 'application/octet-stream'
169
+ ? 'binary'
170
+ : view.contentEncoding === 'base64'
171
+ ? 'byte'
172
+ : undefined;
173
+ if (derivedFormat === undefined) {
174
+ return schema;
175
+ }
176
+ const { contentMediaType: _contentMediaType, contentEncoding: _contentEncoding, ...rest } = view;
177
+ return 'format' in rest ? rest : { ...rest, format: derivedFormat };
178
+ };
179
+ /**
180
+ * Map the 3.1-only schema-shape encodings onto the shared IR shape before
181
+ * dispatching: type arrays, `const`, `examples[]`, numeric exclusive bounds,
182
+ * and binary/base64 content keywords. Each step returns its input unchanged
183
+ * when it does not apply, so the composed result is referentially equal to
184
+ * `schema` when nothing matched — letting the dispatcher re-dispatch only when
185
+ * needed.
186
+ */
187
+ const normalizeSchemaShape = (schema) => {
188
+ return normalizeExclusiveBounds(normalizeExamples(normalizeConst(normalizeContentFormat(normalizeTypeArray(schema)))));
189
+ };
190
+ /**
191
+ * Is this a 3.1 `{ type: 'null' }` schema member? (`'null'` is a 3.1 type
192
+ * literal the 3.0-typed SchemaObject does not model, so read it loosely.)
193
+ */
194
+ const isNullTypeSchema = (member) => {
195
+ if ((0, refFns_js_1.isRef)(member)) {
196
+ return false;
197
+ }
198
+ const type = member.type;
199
+ return type === 'null';
200
+ };
201
+ /**
202
+ * Split `oneOf`/`anyOf` members into the non-null members plus whether a
203
+ * `{ type: 'null' }` member was present. In 3.1 that null member is how a
204
+ * union expresses nullability (3.0 used the hoisted `nullable` keyword);
205
+ * folding it into a flag lets the collapse/union logic stay unchanged.
206
+ */
207
+ const partitionNullMember = (members) => {
208
+ const nonNull = members.filter(member => !isNullTypeSchema(member));
209
+ return { members: nonNull, nullable: nonNull.length !== members.length };
210
+ };
211
+ /**
212
+ * Collapse a single-member `oneOf`/`anyOf` into its surviving member.
213
+ *
214
+ * The wrapper's sibling keywords must ride into the member rather than
215
+ * being discarded. The critical one is `nullable`: the 3.1 idiom
216
+ * `oneOf:[{type:'string'},{type:'null'}]` ("string or null") has its
217
+ * `{type:'null'}` member folded out by `partitionNullMember` above, leaving
218
+ * `oneOf:[{type:'string'}]` + `nullable:true` on the wrapper. Re-dispatching
219
+ * `members[0]` alone would drop the wrapper (`...value`) and silently turn
220
+ * `string | null` back into a non-nullable `string`.
221
+ * `description`/`title`/`readOnly`/... ride along the same way.
222
+ *
223
+ * Precedence: the member is the more specific schema, so it wins direct
224
+ * conflicts (`{ ...value, ...member }`). `nullable` is the exception — it
225
+ * OR-ins, because a nullable wrapper makes the whole schema nullable even
226
+ * when the member itself is not.
227
+ *
228
+ * A ref member only reaches here when the wrapper carries no `nullable`
229
+ * (the nullable-ref case stamps `nullable` on the OasRef node at the call
230
+ * site, via `toRefV31`). Any other wrapper siblings on a bare `$ref` are
231
+ * ignored per 3.0 ref semantics, so the ref is returned untouched.
232
+ */
233
+ const collapseSingleMember = (value, member) => {
234
+ if ((0, refFns_js_1.isRef)(member)) {
235
+ return member;
236
+ }
237
+ const merged = { ...value, ...member };
238
+ if (value.nullable || member.nullable) {
239
+ merged.nullable = true;
240
+ }
241
+ return merged;
242
+ };
243
+ const toSchemaV3 = ({ schema, stackTrail, context }) => {
244
+ if ((0, refFns_js_1.isRef)(schema)) {
245
+ return (0, toRefV31_js_1.toRefV31)({ ref: schema, refType: 'schema', stackTrail, context });
246
+ }
247
+ // OpenAPI `not` has no faithful TypeScript representation: a generated type
248
+ // that ignored it would *widen* the contract (accepting shapes the schema
249
+ // forbids). Refuse the schema rather than emit a type that lies. The throw
250
+ // is isolated by `tryParseAt` into an `INVALID_SCHEMA` issue, and consumers
251
+ // of this schema are pruned via `removeErroredItems` (INVALID_DEPENDENCY_REF).
252
+ if ('not' in schema) {
253
+ throw new Error('Schema uses unsupported "not" keyword');
254
+ }
255
+ const normalized = normalizeSchemaShape(schema);
256
+ if (normalized !== schema) {
257
+ return (0, exports.toSchemaV3)({ schema: normalized, stackTrail, context });
258
+ }
259
+ if ('allOf' in schema && Array.isArray(schema.allOf)) {
260
+ return stackTrail.trace('allOf', st => {
261
+ // A single-member allOf collapses to its sole member — the value must
262
+ // satisfy exactly that one schema. When the member is a `$ref`, keep it
263
+ // LAZY (as an OasRef) rather than resolving + merging its target: a
264
+ // `{ allOf: [{$ref: self}], nullable: true }` (a nullable reference
265
+ // written as a one-member allOf — common in real specs) is
266
+ // self-referential, and eagerly resolving it would not terminate. The
267
+ // ref resolves at use time like every other ref. Mirrors the
268
+ // single-member oneOf/anyOf handling below.
269
+ const { allOf, ...value } = schema;
270
+ const members = allOf ?? [];
271
+ if (members.length === 1) {
272
+ const [member] = members;
273
+ if ((0, refFns_js_1.isRef)(member) && value.nullable) {
274
+ return (0, toRefV31_js_1.toRefV31)({
275
+ ref: member,
276
+ refType: 'schema',
277
+ nullable: true,
278
+ stackTrail: st,
279
+ context
280
+ });
281
+ }
282
+ return (0, exports.toSchemaV3)({
283
+ schema: collapseSingleMember(value, member),
284
+ stackTrail: st,
285
+ context
286
+ });
287
+ }
288
+ const merged = (0, merge_intersection_js_1.mergeIntersection)({
289
+ schema,
290
+ getRef: (0, refFns_js_2.toGetRef)(context.documentObject)
291
+ });
292
+ return (0, exports.toSchemaV3)({ schema: merged, stackTrail: st, context });
293
+ });
294
+ }
295
+ if ('oneOf' in schema && Array.isArray(schema.oneOf)) {
296
+ return stackTrail.trace('oneOf', st => {
297
+ // 3.1: a `{ type: 'null' }` member makes the union nullable. Fold it
298
+ // into a `nullable` flag the collapse/union logic already understands.
299
+ const { members: oneOfWithoutNull, nullable: hasNullMember } = partitionNullMember(schema.oneOf ?? []);
300
+ const withoutNull = hasNullMember
301
+ ? { ...schema, oneOf: oneOfWithoutNull, nullable: true }
302
+ : schema;
303
+ const merged = (0, merge_union_js_1.mergeUnion)({
304
+ schema: withoutNull,
305
+ getRef: (0, refFns_js_2.toGetRef)(context.documentObject),
306
+ groupType: 'oneOf'
307
+ });
308
+ if (!('oneOf' in merged) || !Array.isArray(merged.oneOf)) {
309
+ throw new Error('Missing "oneOf" array');
310
+ }
311
+ const { oneOf: members, ...value } = merged;
312
+ if (members.length === 0) {
313
+ throw new Error('"oneOf" array is empty');
314
+ }
315
+ if (members.length === 1) {
316
+ const [soleMember] = members;
317
+ // A 3.1 nullable reference `oneOf:[{$ref},{type:'null'}]` becomes a
318
+ // single `$ref` member + `nullable:true` once the null member above
319
+ // is folded out. Nullability here is a *use-site* property — the same
320
+ // refName may be referenced nullable at one site and not another — so
321
+ // it rides the OasRef node itself, NOT the shared referent and NOT a
322
+ // synthetic union. Generators read `ref.nullable` and render
323
+ // `Foo | null`; `ModelDriver` builds the un-nullable shared `Foo` from
324
+ // the refName. See
325
+ // notes/openapi-3.1-webhooks-and-parser-architecture.md §3.4.
326
+ if ((0, refFns_js_1.isRef)(soleMember) && value.nullable) {
327
+ return (0, toRefV31_js_1.toRefV31)({
328
+ ref: soleMember,
329
+ refType: 'schema',
330
+ nullable: true,
331
+ stackTrail: st,
332
+ context
333
+ });
334
+ }
335
+ return (0, exports.toSchemaV3)({
336
+ schema: collapseSingleMember(value, soleMember),
337
+ stackTrail: st,
338
+ context
339
+ });
340
+ }
341
+ return (0, toUnion_js_1.toUnion)({ value, members, parentType: 'oneOf', stackTrail: st, context });
342
+ });
343
+ }
344
+ if ('anyOf' in schema && Array.isArray(schema.anyOf)) {
345
+ return stackTrail.trace('anyOf', st => {
346
+ // deno-lint-ignore ban-ts-comment
347
+ // @ts-expect-error
348
+ if (schema['x-expansionResources'] && Array.isArray(schema.anyOf)) {
349
+ const { anyOf, ...value } = schema;
350
+ return (0, toUnion_js_1.toUnion)({ value, members: anyOf, parentType: 'anyOf', stackTrail: st, context });
351
+ }
352
+ // 3.1: a `{ type: 'null' }` member makes the union nullable (mirrors
353
+ // the oneOf branch above).
354
+ const { members: anyOfWithoutNull, nullable: hasNullMember } = partitionNullMember(schema.anyOf ?? []);
355
+ const withoutNull = hasNullMember
356
+ ? { ...schema, anyOf: anyOfWithoutNull, nullable: true }
357
+ : schema;
358
+ const merged = (0, merge_union_js_1.mergeUnion)({
359
+ schema: withoutNull,
360
+ getRef: (0, refFns_js_2.toGetRef)(context.documentObject),
361
+ groupType: 'anyOf'
362
+ });
363
+ if (!('anyOf' in merged) || !Array.isArray(merged.anyOf)) {
364
+ throw new Error('Missing "anyOf" array');
365
+ }
366
+ const { anyOf: members, ...value } = merged;
367
+ if (members.length === 0) {
368
+ throw new Error('"anyOf" array is empty');
369
+ }
370
+ if (members.length === 1) {
371
+ const [soleMember] = members;
372
+ // See the oneOf branch: a single `$ref` carrying a hoisted `nullable`
373
+ // sets `nullable` on the OasRef node itself.
374
+ if ((0, refFns_js_1.isRef)(soleMember) && value.nullable) {
375
+ return (0, toRefV31_js_1.toRefV31)({
376
+ ref: soleMember,
377
+ refType: 'schema',
378
+ nullable: true,
379
+ stackTrail: st,
380
+ context
381
+ });
382
+ }
383
+ return (0, exports.toSchemaV3)({
384
+ schema: collapseSingleMember(value, soleMember),
385
+ stackTrail: st,
386
+ context
387
+ });
388
+ }
389
+ return (0, toUnion_js_1.toUnion)({ value, members, parentType: 'anyOf', stackTrail: st, context });
390
+ });
391
+ }
392
+ if ('type' in schema) {
393
+ switch (schema.type) {
394
+ case 'object':
395
+ return (0, toObject_js_1.toObject)({ value: schema, stackTrail, context });
396
+ case 'array':
397
+ return (0, toArray_js_1.toArray)({ value: schema, stackTrail, context });
398
+ case 'integer':
399
+ return (0, toInteger_js_1.toInteger)({ value: schema, stackTrail, context });
400
+ case 'number':
401
+ return (0, toNumber_js_1.toNumber)({ value: schema, stackTrail, context });
402
+ case 'boolean':
403
+ return (0, toBoolean_js_1.toBoolean)({ value: schema, stackTrail, context });
404
+ case 'string':
405
+ return (0, toString_js_1.toString)({ value: schema, stackTrail, context });
406
+ }
407
+ }
408
+ // Otherwise cases
409
+ if (possibleObject(schema)) {
410
+ // In 3.1 `type` is optional, so a schema with `properties` and no `type`
411
+ // is a normal, valid object schema — inferring `object` is the expected
412
+ // reading, not a deviation, so it is silent. (The v3-0 parser keeps the
413
+ // MISSING_OBJECT_TYPE warning: 3.0 requires `type`, so its absence there
414
+ // is a real signal.)
415
+ return (0, toObject_js_1.toObject)({
416
+ value: {
417
+ ...schema,
418
+ type: 'object'
419
+ },
420
+ stackTrail,
421
+ context
422
+ });
423
+ }
424
+ if (possibleArray(schema)) {
425
+ context.logIssueNoKey({
426
+ level: 'warning',
427
+ message: 'Object has "items" property, but is missing type="array" property',
428
+ parent: schema,
429
+ stackTrail,
430
+ type: 'MISSING_ARRAY_TYPE'
431
+ });
432
+ return (0, toArray_js_1.toArray)({
433
+ value: {
434
+ ...schema,
435
+ type: 'array'
436
+ // Adding cast here since {} is a valid value for items
437
+ },
438
+ stackTrail,
439
+ context
440
+ });
441
+ }
442
+ if (possibleBoolean(schema)) {
443
+ context.logIssueNoKey({
444
+ level: 'warning',
445
+ message: 'Object has a boolean "default" or "example" property, but is missing type="boolean" property',
446
+ parent: schema,
447
+ stackTrail,
448
+ type: 'MISSING_BOOLEAN_TYPE'
449
+ });
450
+ return (0, toBoolean_js_1.toBoolean)({
451
+ value: {
452
+ ...schema,
453
+ type: 'boolean'
454
+ },
455
+ stackTrail,
456
+ context
457
+ });
458
+ }
459
+ if (possibleString(schema)) {
460
+ context.logIssueNoKey({
461
+ level: 'warning',
462
+ message: 'Object has a string "default" or "example" property, but is missing type="string" property',
463
+ parent: schema,
464
+ stackTrail,
465
+ type: 'MISSING_STRING_TYPE'
466
+ });
467
+ return (0, toString_js_1.toString)({
468
+ value: {
469
+ ...schema,
470
+ type: 'string'
471
+ },
472
+ stackTrail,
473
+ context
474
+ });
475
+ }
476
+ return (0, toUnknown_js_1.toUnknown)({ value: schema, stackTrail, context });
477
+ };
478
+ exports.toSchemaV3 = toSchemaV3;
479
+ const possibleString = (value) => {
480
+ return (value &&
481
+ typeof value === 'object' &&
482
+ (('default' in value && typeof value.default === 'string') ||
483
+ ('example' in value && typeof value.example === 'string') ||
484
+ ('enum' in value &&
485
+ Array.isArray(value.enum) &&
486
+ value.enum.every(item => typeof item === 'string')) ||
487
+ ('format' in value &&
488
+ typeof value.format === 'string' &&
489
+ ['date', 'date-time', 'binary', 'byte'].includes(value.format))));
490
+ };
491
+ const possibleBoolean = (value) => {
492
+ return (value &&
493
+ typeof value === 'object' &&
494
+ (('default' in value && typeof value.default === 'boolean') ||
495
+ ('example' in value && typeof value.example === 'boolean')));
496
+ };
497
+ const possibleArray = (value) => {
498
+ return (value &&
499
+ typeof value === 'object' &&
500
+ 'items' in value &&
501
+ value.items &&
502
+ typeof value.items === 'object' &&
503
+ value.items);
504
+ };
505
+ const possibleObject = (value) => {
506
+ return (value &&
507
+ typeof value === 'object' &&
508
+ 'properties' in value &&
509
+ typeof value.properties === 'object' &&
510
+ value.properties);
511
+ };
512
+ const toOptionalSchemaV3 = ({ schema, stackTrail, context }) => {
513
+ if (!schema) {
514
+ return undefined;
515
+ }
516
+ return (0, exports.toSchemaV3)({ schema, stackTrail, context });
517
+ };
518
+ exports.toOptionalSchemaV3 = toOptionalSchemaV3;
@@ -0,0 +1,9 @@
1
+ import type { ParseContextType } from '../../../context/parseTypes.js';
2
+ import { OasSecurityRequirement } from '../../../oas/securityRequirement/SecurityRequirement.js';
3
+ import type { StackTrail } from '../../../context/StackTrail.js';
4
+ export type ToSecurityRequirementsV3Args = {
5
+ security: Record<string, string[]>[] | undefined;
6
+ stackTrail: StackTrail;
7
+ context: ParseContextType;
8
+ };
9
+ export declare const toSecurityRequirementsV3: ({ security, stackTrail, context }: ToSecurityRequirementsV3Args) => OasSecurityRequirement[] | undefined;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSecurityRequirementsV3 = void 0;
4
+ const SecurityRequirement_js_1 = require("../../../oas/securityRequirement/SecurityRequirement.js");
5
+ const toSecurityRequirementsV3 = ({ security, stackTrail, context }) => {
6
+ if (!security) {
7
+ return undefined;
8
+ }
9
+ return security.map(requirement => {
10
+ return new SecurityRequirement_js_1.OasSecurityRequirement({ requirement }, context.oasDocument);
11
+ });
12
+ };
13
+ exports.toSecurityRequirementsV3 = toSecurityRequirementsV3;
@@ -0,0 +1,17 @@
1
+ import type { OpenAPIV3 } from 'openapi-types';
2
+ import type { ParseContextType } from '../../../context/parseTypes.js';
3
+ import type { OasSecurityScheme } from '../../../oas/securitySchemes/SecurityScheme.js';
4
+ import type { OasRef } from '../../../oas/ref/Ref.js';
5
+ import type { StackTrail } from '../../../context/StackTrail.js';
6
+ export type ToSecuritySchemesArgs = {
7
+ securitySchemes: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SecuritySchemeObject> | undefined;
8
+ stackTrail: StackTrail;
9
+ context: ParseContextType;
10
+ };
11
+ export declare const toSecuritySchemesV3: ({ securitySchemes, stackTrail, context }: ToSecuritySchemesArgs) => // 'http' | 'apiKey' | 'oauth2' | 'openIdConnect'
12
+ Record<string, OasSecurityScheme | OasRef<"securityScheme">> | undefined;
13
+ export type ToSecuritySchemeV3Args = {
14
+ securityScheme: OpenAPIV3.ReferenceObject | OpenAPIV3.SecuritySchemeObject;
15
+ stackTrail: StackTrail;
16
+ context: ParseContextType;
17
+ };