@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,249 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.toParsedString = exports.toString = void 0;
37
+ const String_js_1 = require("../../../oas/string/String.js");
38
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
39
+ const string_types_js_1 = require("../../../oas/string/string-types.js");
40
+ const v = __importStar(require("valibot"));
41
+ const parseNullable_js_1 = require("../_helpers/parseNullable.js");
42
+ const parseEnum_js_1 = require("../_helpers/parseEnum.js");
43
+ const parseExample_js_1 = require("../_helpers/parseExample.js");
44
+ const parseDefault_js_1 = require("../_helpers/parseDefault.js");
45
+ /**
46
+ * Transforms an OpenAPI v3 string schema object into an internal OAS string representation.
47
+ *
48
+ * This function processes OpenAPI string schemas by extracting and parsing nullable values,
49
+ * examples, enumerations, and default values. It handles the complete transformation from
50
+ * raw OpenAPI JSON to the SKMTC internal string representation with proper validation
51
+ * of string formats and constraints.
52
+ *
53
+ * The transformation follows a pipeline approach:
54
+ * 1. Parse nullable flag and extract base value
55
+ * 2. Parse example values with nullable support
56
+ * 3. Parse enumeration constraints
57
+ * 4. Parse default values
58
+ * 5. Create final OasString instance with format validation
59
+ *
60
+ * @param args - Transformation arguments
61
+ * @param args.context - Parse context providing utilities and tracing
62
+ * @param args.value - The OpenAPI v3 string schema object to transform
63
+ * @returns Transformed OAS string object with parsed properties
64
+ *
65
+ * @example Basic string transformation
66
+ * ```typescript
67
+ * import { toString } from '@skmtc/core';
68
+ *
69
+ * const openApiString = {
70
+ * type: 'string',
71
+ * format: 'email',
72
+ * maxLength: 255,
73
+ * pattern: '^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$'
74
+ * };
75
+ *
76
+ * const oasString = toString({
77
+ * context: parseContext,
78
+ * value: openApiString
79
+ * });
80
+ *
81
+ * console.log(oasString.format); // 'email'
82
+ * console.log(oasString.maxLength); // 255
83
+ * ```
84
+ *
85
+ * @example String with nullable and enums
86
+ * ```typescript
87
+ * const statusString = {
88
+ * type: 'string',
89
+ * nullable: true,
90
+ * enum: ['active', 'inactive', 'pending', null],
91
+ * default: 'active',
92
+ * example: 'pending'
93
+ * };
94
+ *
95
+ * const oasString = toString({
96
+ * context: parseContext,
97
+ * value: statusString
98
+ * });
99
+ *
100
+ * console.log(oasString.nullable); // true
101
+ * console.log(oasString.enums); // ['active', 'inactive', 'pending', null]
102
+ * ```
103
+ */
104
+ const toString = ({ context, value, stackTrail }) => {
105
+ if (value.type === 'string' && Object.keys(value).length === 1) {
106
+ return context.withStackTrail(stackTrail, () => new String_js_1.OasString({}, context));
107
+ }
108
+ const { nullable, value: valueWithoutNullable } = (0, parseNullable_js_1.parseNullable)({
109
+ value,
110
+ context,
111
+ stackTrail
112
+ });
113
+ const { example: unparsedExample, ...valueWithoutExample } = valueWithoutNullable;
114
+ const example = (0, parseExample_js_1.parseExample)({
115
+ value: unparsedExample,
116
+ context,
117
+ parent: valueWithoutNullable,
118
+ nullable,
119
+ check: isString,
120
+ toMessage: item => `Removed invalid example. Expected "string", got: ${item}`,
121
+ stackTrail
122
+ });
123
+ const { enum: unparsedEnums, ...valueWithoutEnums } = valueWithoutExample;
124
+ const enums = (0, parseEnum_js_1.parseEnum)({
125
+ value: unparsedEnums,
126
+ nullable,
127
+ parent: valueWithoutExample,
128
+ context,
129
+ check: isString,
130
+ toMessage: item => `Removed invalid enum. Expected "string", got: ${item}`,
131
+ stackTrail
132
+ });
133
+ const { default: unparsedDefaultValue, ...valueWithoutDefault } = valueWithoutEnums;
134
+ const defaultValue = (0, parseDefault_js_1.parseDefault)({
135
+ value: unparsedDefaultValue,
136
+ context,
137
+ parent: valueWithoutEnums,
138
+ nullable,
139
+ check: isString,
140
+ toMessage: item => `Removed invalid default. Expected "string", got: ${item}`,
141
+ stackTrail
142
+ });
143
+ return (0, exports.toParsedString)({
144
+ context,
145
+ nullable,
146
+ example,
147
+ enums,
148
+ defaultValue,
149
+ value: valueWithoutDefault,
150
+ stackTrail
151
+ });
152
+ };
153
+ exports.toString = toString;
154
+ /**
155
+ * Creates an OAS string instance from pre-parsed string schema components.
156
+ *
157
+ * This function is the final step in the string transformation pipeline, taking
158
+ * already-parsed nullable, example, enum, and default values and combining them
159
+ * with the remaining string properties to create the complete OasString instance.
160
+ *
161
+ * The function handles format validation against known OpenAPI string formats,
162
+ * length constraints parsing, pattern validation, and specification extension
163
+ * processing. It logs warnings for unrecognized formats while still preserving
164
+ * them in the output.
165
+ *
166
+ * @template Nullable - Boolean type indicating if the string can be null
167
+ * @param args - Pre-parsed string components
168
+ * @param args.context - Parse context for tracing and issue logging
169
+ * @param args.nullable - Parsed nullable flag
170
+ * @param args.example - Parsed example value (type-safe with nullable)
171
+ * @param args.enums - Parsed enumeration constraints (type-safe with nullable)
172
+ * @param args.defaultValue - Parsed default value (type-safe with nullable)
173
+ * @param args.value - OpenAPI string object without parsed fields
174
+ * @returns Complete OAS string instance with all properties and validation
175
+ *
176
+ * @example Date-time string with validation
177
+ * ```typescript
178
+ * const dateTimeString = toParsedString({
179
+ * context: parseContext,
180
+ * nullable: false,
181
+ * example: '2023-12-25T10:00:00Z',
182
+ * enums: undefined,
183
+ * defaultValue: undefined,
184
+ * value: {
185
+ * type: 'string',
186
+ * format: 'date-time',
187
+ * title: 'Event Date',
188
+ * description: 'When the event occurs'
189
+ * }
190
+ * });
191
+ *
192
+ * console.log(dateTimeString.format); // 'date-time'
193
+ * ```
194
+ *
195
+ * @example String with custom format (generates warning)
196
+ * ```typescript
197
+ * const customFormatString = toParsedString({
198
+ * context: parseContext,
199
+ * nullable: false,
200
+ * example: 'ABC123',
201
+ * enums: undefined,
202
+ * defaultValue: undefined,
203
+ * value: {
204
+ * type: 'string',
205
+ * format: 'custom-id', // Unknown format, will log warning
206
+ * pattern: '^[A-Z]{3}[0-9]{3}$'
207
+ * }
208
+ * });
209
+ *
210
+ * // Logs: "Unexpected format: custom-id"
211
+ * console.log(customFormatString.format); // 'custom-id' (still preserved)
212
+ * ```
213
+ */
214
+ const toParsedString = ({ context, nullable, example, enums, defaultValue, value, stackTrail }) => {
215
+ if (!v.is(string_types_js_1.oasStringData, value)) {
216
+ v.parse(string_types_js_1.oasStringData, value);
217
+ }
218
+ const { type: _type, title, description, format, maxLength, minLength, pattern, readOnly, writeOnly, deprecated, ...skipped } = value;
219
+ const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
220
+ skipped,
221
+ parent: value,
222
+ context,
223
+ stackTrail,
224
+ parentType: 'schema:string'
225
+ });
226
+ // `format` is an open vocabulary — custom string formats (e.g. `decimal`,
227
+ // `utc_datetime`) are spec-legal. The value is preserved on the OasString
228
+ // below, so an unrecognised format is passed through, not warned.
229
+ return context.withStackTrail(stackTrail, () => new String_js_1.OasString({
230
+ title,
231
+ description,
232
+ enums,
233
+ nullable,
234
+ example,
235
+ format,
236
+ maxLength,
237
+ minLength,
238
+ pattern,
239
+ readOnly,
240
+ writeOnly,
241
+ default: defaultValue,
242
+ extensionFields,
243
+ deprecated
244
+ }, context));
245
+ };
246
+ exports.toParsedString = toParsedString;
247
+ const isString = (value) => {
248
+ return typeof value === 'string';
249
+ };
@@ -0,0 +1,22 @@
1
+ import type { OpenAPIV3 } from 'openapi-types';
2
+ import type { ParseContextType } from '../../../context/parseTypes.js';
3
+ import { OasTag } from '../../../oas/tag/Tag.js';
4
+ import type { StackTrail } from '../../../context/StackTrail.js';
5
+ /** A 3.2 Tag Object: the 3.0 shape plus `summary`, `parent` and `kind`. */
6
+ export type TagObjectV32 = OpenAPIV3.TagObject & {
7
+ summary?: string;
8
+ parent?: string;
9
+ kind?: string;
10
+ };
11
+ export type ToTagsV3Args = {
12
+ tags: TagObjectV32[] | undefined;
13
+ stackTrail: StackTrail;
14
+ context: ParseContextType;
15
+ };
16
+ export declare const toTagsV3: ({ tags, stackTrail, context }: ToTagsV3Args) => OasTag[] | undefined;
17
+ export type ToTagV3Args = {
18
+ tag: TagObjectV32;
19
+ stackTrail: StackTrail;
20
+ context: ParseContextType;
21
+ };
22
+ export declare const toTagV3: ({ tag, stackTrail, context }: ToTagV3Args) => OasTag;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTagV3 = exports.toTagsV3 = void 0;
4
+ const Tag_js_1 = require("../../../oas/tag/Tag.js");
5
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
6
+ const toExternalDocs_js_1 = require("../externalDocs/toExternalDocs.js");
7
+ const toTagsV3 = ({ tags, stackTrail, context }) => {
8
+ if (!tags) {
9
+ return undefined;
10
+ }
11
+ const parents = new Map(tags.map(({ name, parent }) => [name, parent]));
12
+ return tags.map(tag => {
13
+ const parentError = toParentError({ name: tag.name, parent: tag.parent, parents });
14
+ if (!parentError) {
15
+ return (0, exports.toTagV3)({ tag, stackTrail, context });
16
+ }
17
+ context.logIssue({
18
+ key: 'parent',
19
+ level: 'warning',
20
+ message: `Tag '${tag.name}' ${parentError}; dropping 'parent'`,
21
+ parent: tag,
22
+ stackTrail,
23
+ type: 'INVALID_TAG_PARENT'
24
+ });
25
+ return (0, exports.toTagV3)({ tag: { ...tag, parent: undefined }, stackTrail, context });
26
+ });
27
+ };
28
+ exports.toTagsV3 = toTagsV3;
29
+ /** Describes why the tag's `parent` is invalid, or returns undefined when it is valid. */
30
+ const toParentError = ({ name, parent, parents }) => {
31
+ if (parent === undefined) {
32
+ return undefined;
33
+ }
34
+ if (!parents.has(parent)) {
35
+ return `names parent '${parent}', which is not a tag`;
36
+ }
37
+ if (leadsBackTo({ name, current: parent, parents, visited: new Set() })) {
38
+ return `is in a parent cycle through '${parent}'`;
39
+ }
40
+ return undefined;
41
+ };
42
+ /** Follows the parent chain from `current` and reports whether it reaches `name`. */
43
+ const leadsBackTo = ({ name, current, parents, visited }) => {
44
+ if (current === undefined) {
45
+ return false;
46
+ }
47
+ if (current === name) {
48
+ return true;
49
+ }
50
+ // The chain loops without reaching `name`: the cycle is above this tag, and
51
+ // the tags in it report it.
52
+ if (visited.has(current)) {
53
+ return false;
54
+ }
55
+ return leadsBackTo({
56
+ name,
57
+ current: parents.get(current),
58
+ parents,
59
+ visited: new Set([...visited, current])
60
+ });
61
+ };
62
+ const toTagV3 = ({ tag, stackTrail, context }) => {
63
+ const { name, description, summary, parent, kind, externalDocs, ...skipped } = tag;
64
+ const parsedExternalDocs = stackTrail.trace('externalDocs', st => (0, toExternalDocs_js_1.toExternalDocs)({ externalDocs, stackTrail: st, context }));
65
+ const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
66
+ skipped,
67
+ parent: tag,
68
+ context,
69
+ stackTrail,
70
+ parentType: 'tag'
71
+ });
72
+ const fields = {
73
+ name,
74
+ description,
75
+ summary,
76
+ parent,
77
+ kind,
78
+ externalDocs: parsedExternalDocs,
79
+ extensionFields
80
+ };
81
+ return new Tag_js_1.OasTag(fields);
82
+ };
83
+ exports.toTagV3 = toTagV3;
@@ -0,0 +1,12 @@
1
+ import type { OpenAPIV3 } from 'openapi-types';
2
+ import type { ParseContextType } from '../../../context/parseTypes.js';
3
+ import { OasUnion } from '../../../oas/union/Union.js';
4
+ import type { StackTrail } from '../../../context/StackTrail.js';
5
+ export type ToUnionArgs = {
6
+ value: OpenAPIV3.SchemaObject;
7
+ members: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[];
8
+ parentType: 'anyOf' | 'oneOf';
9
+ stackTrail: StackTrail;
10
+ context: ParseContextType;
11
+ };
12
+ export declare const toUnion: ({ value, members, parentType, stackTrail, context }: ToUnionArgs) => OasUnion;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toUnion = void 0;
4
+ const Union_js_1 = require("../../../oas/union/Union.js");
5
+ const toDiscriminatorV3_js_1 = require("../discriminator/toDiscriminatorV3.js");
6
+ const toSchemasV3_js_1 = require("../schema/toSchemasV3.js");
7
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
8
+ const parseNullable_js_1 = require("../_helpers/parseNullable.js");
9
+ const parseExample_js_1 = require("../_helpers/parseExample.js");
10
+ const parseDefault_js_1 = require("../_helpers/parseDefault.js");
11
+ const toExternalDocs_js_1 = require("../externalDocs/toExternalDocs.js");
12
+ const toUnion = ({ value, members, parentType, stackTrail, context }) => {
13
+ const { nullable, value: valueWithoutNullable } = (0, parseNullable_js_1.parseNullable)({
14
+ value,
15
+ context,
16
+ stackTrail
17
+ });
18
+ const { discriminator, title, description, externalDocs, example: unparsedExample, default: unparsedDefaultValue, ...skipped } = valueWithoutNullable;
19
+ const example = (0, parseExample_js_1.parseExample)({
20
+ value: unparsedExample,
21
+ context,
22
+ parent: value,
23
+ nullable,
24
+ check: isPresent,
25
+ toMessage: item => `Removed invalid example. Expected a non-null value, got: ${item}`,
26
+ stackTrail
27
+ });
28
+ const defaultValue = (0, parseDefault_js_1.parseDefault)({
29
+ value: unparsedDefaultValue,
30
+ context,
31
+ parent: value,
32
+ nullable,
33
+ check: isPresent,
34
+ toMessage: item => `Removed invalid default. Expected a non-null value, got: ${item}`,
35
+ stackTrail
36
+ });
37
+ const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
38
+ skipped,
39
+ parent: value,
40
+ context,
41
+ stackTrail,
42
+ parentType: `schema:${parentType}`
43
+ });
44
+ const discriminatorParsed = stackTrail.trace('discriminator', st => (0, toDiscriminatorV3_js_1.toDiscriminatorV3)({ discriminator, stackTrail: st, context }));
45
+ const membersParsed = members.reduce((acc, item, index) => {
46
+ if (item === undefined || item === null) {
47
+ return acc;
48
+ }
49
+ return [
50
+ ...acc,
51
+ stackTrail.trace(`${index}`, st => (0, toSchemasV3_js_1.toSchemaV3)({ schema: item, stackTrail: st, context }))
52
+ ];
53
+ }, []);
54
+ return context.withStackTrail(stackTrail, () => new Union_js_1.OasUnion({
55
+ title,
56
+ description,
57
+ externalDocs: stackTrail.trace('externalDocs', st => (0, toExternalDocs_js_1.toExternalDocs)({ externalDocs, stackTrail: st, context })),
58
+ nullable,
59
+ default: defaultValue,
60
+ discriminator: discriminatorParsed,
61
+ members: membersParsed,
62
+ example,
63
+ extensionFields
64
+ }, context));
65
+ };
66
+ exports.toUnion = toUnion;
67
+ // A union (anyOf/oneOf) value may match any of its members, so the most we
68
+ // can validate without resolving members is that a present default/example
69
+ // is not a bare `null` on a non-nullable schema.
70
+ const isPresent = (value) => {
71
+ return value !== null && value !== undefined;
72
+ };
@@ -0,0 +1,10 @@
1
+ import type { OpenAPIV3 } from 'openapi-types';
2
+ import type { ParseContextType } from '../../../context/parseTypes.js';
3
+ import { OasUnknown } from '../../../oas/unknown/Unknown.js';
4
+ import type { StackTrail } from '../../../context/StackTrail.js';
5
+ export type ToUnknownArgs = {
6
+ value: OpenAPIV3.SchemaObject;
7
+ stackTrail: StackTrail;
8
+ context: ParseContextType;
9
+ };
10
+ export declare const toUnknown: ({ value, stackTrail, context }: ToUnknownArgs) => OasUnknown;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toUnknown = void 0;
4
+ const Unknown_js_1 = require("../../../oas/unknown/Unknown.js");
5
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
6
+ const toUnknown = ({ value, stackTrail, context }) => {
7
+ const { type: _type, title, description, example, nullable, ...skipped } = value;
8
+ const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
9
+ skipped,
10
+ parent: value,
11
+ context,
12
+ stackTrail,
13
+ parentType: 'schema:unknown'
14
+ });
15
+ return context.withStackTrail(stackTrail, () => new Unknown_js_1.OasUnknown({
16
+ title,
17
+ description,
18
+ nullable,
19
+ extensionFields,
20
+ example
21
+ }, context));
22
+ };
23
+ exports.toUnknown = toUnknown;
@@ -0,0 +1,48 @@
1
+ import type { OpenAPIV3 } from 'openapi-types';
2
+ import type { Method } from '../../../types/Method.js';
3
+ import type { ParseContextType } from '../../../context/parseTypes.js';
4
+ import { OasWebhook } from '../../../oas/webhook/Webhook.js';
5
+ import type { OasPathItem } from '../../../oas/pathItem/PathItem.js';
6
+ import type { StackTrail } from '../../../context/StackTrail.js';
7
+ /**
8
+ * The 3.1 `webhooks` object: a map of webhook NAME → PathItem, identical
9
+ * in shape to `paths` but keyed by name rather than URL path. Inline
10
+ * PathItems only — a webhook PathItem `$ref` is a 3.1 edge case not yet
11
+ * handled (see the arc note §5 Refs).
12
+ */
13
+ export type WebhooksObject = Record<string, OpenAPIV3.PathItemObject>;
14
+ type WebhookInfo = {
15
+ method: Method;
16
+ name: string;
17
+ pathItem: OasPathItem | undefined;
18
+ };
19
+ export type ToWebhookV3Args = {
20
+ operation: OpenAPIV3.OperationObject;
21
+ webhookInfo: WebhookInfo;
22
+ stackTrail: StackTrail;
23
+ context: ParseContextType;
24
+ };
25
+ /**
26
+ * Parses a single webhook Operation Object into an {@link OasWebhook}.
27
+ *
28
+ * Mirrors `toOperationV3` and reuses the same leaf field parsers
29
+ * (`toParameterListV3` / `toRequestBodyV3` / `toResponsesV3` / …) — the
30
+ * inner Operation Object is structurally identical. Only the orchestration
31
+ * is duplicated (the dialect-shaped glue), and the output is an
32
+ * `OasWebhook` carrying a `name`, not an `OasOperation` carrying a `path`.
33
+ */
34
+ export declare const toWebhookV3: ({ operation, webhookInfo, stackTrail, context }: ToWebhookV3Args) => OasWebhook;
35
+ export type ToWebhooksV3Args = {
36
+ webhooks: WebhooksObject | undefined;
37
+ stackTrail: StackTrail;
38
+ context: ParseContextType;
39
+ };
40
+ /**
41
+ * Flattens the 3.1 `webhooks` map into `OasWebhook[]`, mirroring
42
+ * `toOperationsV3`'s `paths` → `OasOperation[]` flattening. Returns `[]`
43
+ * when no `webhooks` object is present (the common 3.0 / no-webhook case).
44
+ * The stack trail nests `webhooks` → `<name>` → `<method>` so
45
+ * `OasDocument.removeItem` can locate a webhook by name.
46
+ */
47
+ export declare const toWebhooksV3: ({ webhooks, stackTrail, context }: ToWebhooksV3Args) => OasWebhook[];
48
+ export {};
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toWebhooksV3 = exports.toWebhookV3 = void 0;
4
+ const toRequestBodiesV3_js_1 = require("../requestBody/toRequestBodiesV3.js");
5
+ const toResponseV3_js_1 = require("../response/toResponseV3.js");
6
+ const toParameterV3_js_1 = require("../parameter/toParameterV3.js");
7
+ const Webhook_js_1 = require("../../../oas/webhook/Webhook.js");
8
+ const toPathItemV3_js_1 = require("../pathItem/toPathItemV3.js");
9
+ const methods_js_1 = require("../methods.js");
10
+ const dropAdditionalOperationsV3_js_1 = require("../pathItem/dropAdditionalOperationsV3.js");
11
+ const warnQuerystringConflictsV3_js_1 = require("../parameter/warnQuerystringConflictsV3.js");
12
+ const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
13
+ const toSecurityRequirement_js_1 = require("../securityRequirement/toSecurityRequirement.js");
14
+ const toExternalDocs_js_1 = require("../externalDocs/toExternalDocs.js");
15
+ const toServerV3_js_1 = require("../server/toServerV3.js");
16
+ /**
17
+ * Parses a single webhook Operation Object into an {@link OasWebhook}.
18
+ *
19
+ * Mirrors `toOperationV3` and reuses the same leaf field parsers
20
+ * (`toParameterListV3` / `toRequestBodyV3` / `toResponsesV3` / …) — the
21
+ * inner Operation Object is structurally identical. Only the orchestration
22
+ * is duplicated (the dialect-shaped glue), and the output is an
23
+ * `OasWebhook` carrying a `name`, not an `OasOperation` carrying a `path`.
24
+ */
25
+ const toWebhookV3 = ({ operation, webhookInfo, stackTrail, context }) => {
26
+ const { method, name, pathItem } = webhookInfo;
27
+ const { operationId, tags, summary, description, parameters, requestBody, responses, deprecated, security, externalDocs, servers, ...skipped } = operation;
28
+ const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
29
+ skipped,
30
+ parent: operation,
31
+ context,
32
+ stackTrail,
33
+ parentType: 'operation'
34
+ });
35
+ const parsedParameters = stackTrail.trace('parameters', st => (0, toParameterV3_js_1.toParameterListV3)({ parameters, stackTrail: st, context }));
36
+ (0, warnQuerystringConflictsV3_js_1.warnQuerystringConflictsV3)({ parameters: parsedParameters, pathItem, stackTrail, context });
37
+ const parsedRequestBody = stackTrail.trace('requestBody', st => (0, toRequestBodiesV3_js_1.toRequestBodyV3)({ requestBody, stackTrail: st, context }));
38
+ const parsedResponses = stackTrail.trace('responses', st => (0, toResponseV3_js_1.toResponsesV3)({ responses, stackTrail: st, context }));
39
+ const parsedSecurity = stackTrail.trace('security', st => (0, toSecurityRequirement_js_1.toSecurityRequirementsV3)({ security, stackTrail: st, context }));
40
+ const parsedExternalDocs = stackTrail.trace('externalDocs', st => (0, toExternalDocs_js_1.toExternalDocs)({ externalDocs, stackTrail: st, context }));
41
+ const parsedServers = stackTrail.trace('servers', st => (0, toServerV3_js_1.toOptionalServersV3)({ servers, stackTrail: st, context }));
42
+ return context.withStackTrail(stackTrail, () => new Webhook_js_1.OasWebhook({
43
+ pathItem,
44
+ name,
45
+ method,
46
+ operationId,
47
+ summary,
48
+ tags,
49
+ description,
50
+ parameters: parsedParameters,
51
+ requestBody: parsedRequestBody,
52
+ responses: parsedResponses,
53
+ deprecated,
54
+ security: parsedSecurity,
55
+ externalDocs: parsedExternalDocs,
56
+ servers: parsedServers,
57
+ extensionFields
58
+ }, context));
59
+ };
60
+ exports.toWebhookV3 = toWebhookV3;
61
+ /**
62
+ * Flattens the 3.1 `webhooks` map into `OasWebhook[]`, mirroring
63
+ * `toOperationsV3`'s `paths` → `OasOperation[]` flattening. Returns `[]`
64
+ * when no `webhooks` object is present (the common 3.0 / no-webhook case).
65
+ * The stack trail nests `webhooks` → `<name>` → `<method>` so
66
+ * `OasDocument.removeItem` can locate a webhook by name.
67
+ */
68
+ const toWebhooksV3 = ({ webhooks, stackTrail, context }) => {
69
+ if (!webhooks) {
70
+ return [];
71
+ }
72
+ return Object.entries(webhooks).flatMap(([name, pathItem]) => {
73
+ return stackTrail.trace(name, nameStack => {
74
+ if (!pathItem) {
75
+ return [];
76
+ }
77
+ const fixedFields = (0, dropAdditionalOperationsV3_js_1.dropAdditionalOperationsV3)({ pathItem, stackTrail: nameStack, context });
78
+ const cleaned = Object.entries(fixedFields).reduce(({ rest, methodObject }, [key, operation]) => {
79
+ const method = (0, methods_js_1.toPathItemMethod)(key);
80
+ if (method) {
81
+ const { [method]: _deleted, ...remaining } = rest;
82
+ return {
83
+ rest: remaining,
84
+ methodObject: {
85
+ ...methodObject,
86
+ [method]: operation
87
+ }
88
+ };
89
+ }
90
+ return { rest, methodObject };
91
+ }, {
92
+ rest: fixedFields,
93
+ methodObject: {}
94
+ });
95
+ const pathItemResult = (0, toPathItemV3_js_1.toPathItemResultV3)({
96
+ pathItem: cleaned.rest,
97
+ stackTrail: nameStack,
98
+ context
99
+ });
100
+ if (!pathItemResult.valid) {
101
+ return [];
102
+ }
103
+ const pathItemObject = pathItemResult.pathItem;
104
+ return Object.entries(cleaned.methodObject)
105
+ .map(([method, operation]) => {
106
+ // Use `nameStack` (the trail with the webhook name already
107
+ // pushed) so downstream traces record webhooks:<name>:<method>:…
108
+ // — the trail `OasDocument.removeItem` matches a webhook on.
109
+ return nameStack.trace(method, st => {
110
+ if (!operation) {
111
+ return;
112
+ }
113
+ try {
114
+ return (0, exports.toWebhookV3)({
115
+ operation,
116
+ webhookInfo: {
117
+ method: method,
118
+ name,
119
+ pathItem: pathItemObject
120
+ },
121
+ stackTrail: st,
122
+ context
123
+ });
124
+ }
125
+ catch (error) {
126
+ const normalized = error instanceof Error ? error : new Error(String(error));
127
+ context.logIssue({
128
+ key: method,
129
+ parent: operation,
130
+ level: 'error',
131
+ message: normalized.message,
132
+ cause: normalized,
133
+ stackTrail: st,
134
+ type: 'INVALID_OPERATION'
135
+ });
136
+ return undefined;
137
+ }
138
+ });
139
+ })
140
+ .filter((item) => Boolean(item));
141
+ });
142
+ });
143
+ };
144
+ exports.toWebhooksV3 = toWebhooksV3;