@skmtc/core 0.16.3 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.md +0 -1
  2. package/esm/anchors/buildSidecar.js +1 -1
  3. package/esm/anchors/postPass.d.ts +1 -1
  4. package/esm/anchors/postPass.js +1 -1
  5. package/esm/anchors/sidecar.d.ts +2 -2
  6. package/esm/anchors/sidecar.js +1 -1
  7. package/esm/context/CoreContext.d.ts +7 -1
  8. package/esm/context/CoreContext.d.ts.map +1 -1
  9. package/esm/context/CoreContext.js +17 -11
  10. package/esm/context/GenerateContext.d.ts +28 -7
  11. package/esm/context/GenerateContext.d.ts.map +1 -1
  12. package/esm/context/GenerateContext.js +164 -86
  13. package/esm/context/ParseContext.d.ts +16 -0
  14. package/esm/context/ParseContext.d.ts.map +1 -1
  15. package/esm/context/ParseContext.js +16 -0
  16. package/esm/context/ParseIssue.d.ts +1 -1
  17. package/esm/context/RenderContext.d.ts +2 -6
  18. package/esm/context/RenderContext.d.ts.map +1 -1
  19. package/esm/context/RenderContext.js +4 -14
  20. package/esm/context/generateTypes.d.ts +35 -8
  21. package/esm/context/generateTypes.d.ts.map +1 -1
  22. package/{script/deps/jsr.io/@std/fs/1.0.23 → esm/deps/jsr.io/@std/fs/1.0.24}/exists.d.ts.map +1 -1
  23. package/esm/deps/jsr.io/@std/internal/1.0.14/_os.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@std/internal/1.0.14/_os.js +14 -0
  25. package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.d.ts.map +1 -1
  26. package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  27. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.d.ts.map +1 -1
  28. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.js +1 -1
  29. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.d.ts.map +1 -1
  30. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.js +1 -1
  31. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.d.ts.map +1 -1
  32. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.js +1 -1
  33. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.d.ts.map +1 -1
  34. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.js +1 -1
  35. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.d.ts.map +1 -1
  36. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.js +1 -1
  37. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.d.ts.map +1 -1
  38. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.js +2 -2
  39. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.d.ts.map +1 -1
  40. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.js +2 -2
  41. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.d.ts.map +1 -1
  42. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.js +1 -1
  43. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.d.ts.map +1 -1
  44. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.js +1 -1
  45. package/{script/deps/jsr.io/@std/path/1.1.4 → esm/deps/jsr.io/@std/path/1.1.6}/posix/join.d.ts.map +1 -1
  46. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/join.js +1 -1
  47. package/{script/deps/jsr.io/@std/path/1.1.4 → esm/deps/jsr.io/@std/path/1.1.6}/posix/normalize.d.ts.map +1 -1
  48. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/normalize.js +1 -1
  49. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.d.ts.map +1 -1
  50. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.js +1 -1
  51. package/{script/deps/jsr.io/@std/path/1.1.4 → esm/deps/jsr.io/@std/path/1.1.6}/windows/from_file_url.d.ts.map +1 -1
  52. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/from_file_url.js +1 -1
  53. package/{script/deps/jsr.io/@std/path/1.1.4 → esm/deps/jsr.io/@std/path/1.1.6}/windows/join.d.ts.map +1 -1
  54. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/join.js +1 -1
  55. package/{script/deps/jsr.io/@std/path/1.1.4 → esm/deps/jsr.io/@std/path/1.1.6}/windows/normalize.d.ts.map +1 -1
  56. package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/normalize.js +1 -1
  57. package/esm/dsl/CodeFileBase.d.ts +57 -24
  58. package/esm/dsl/CodeFileBase.d.ts.map +1 -1
  59. package/esm/dsl/CodeFileBase.js +35 -53
  60. package/esm/dsl/FileBase.d.ts +21 -25
  61. package/esm/dsl/FileBase.d.ts.map +1 -1
  62. package/esm/dsl/FileBase.js +20 -29
  63. package/esm/dsl/GeneratorKeys.d.ts +19 -19
  64. package/esm/dsl/GeneratorKeys.d.ts.map +1 -1
  65. package/esm/dsl/GeneratorKeys.js +6 -5
  66. package/esm/dsl/IdentifierBase.d.ts +19 -5
  67. package/esm/dsl/IdentifierBase.d.ts.map +1 -1
  68. package/esm/dsl/IdentifierBase.js +21 -5
  69. package/esm/dsl/IdentifierType.d.ts +8 -14
  70. package/esm/dsl/IdentifierType.d.ts.map +1 -1
  71. package/esm/dsl/Lang.d.ts +18 -38
  72. package/esm/dsl/Lang.d.ts.map +1 -1
  73. package/esm/dsl/MarkdownFile.d.ts +55 -0
  74. package/esm/dsl/MarkdownFile.d.ts.map +1 -0
  75. package/esm/dsl/MarkdownFile.js +58 -0
  76. package/esm/dsl/model/ModelDriver.d.ts +3 -1
  77. package/esm/dsl/model/ModelDriver.d.ts.map +1 -1
  78. package/esm/dsl/model/ModelDriver.js +29 -2
  79. package/esm/dsl/model/toModelEntry.d.ts +24 -14
  80. package/esm/dsl/model/toModelEntry.d.ts.map +1 -1
  81. package/esm/dsl/model/toModelEntry.js +7 -3
  82. package/esm/dsl/model/toModelProjectionBase.d.ts +31 -18
  83. package/esm/dsl/model/toModelProjectionBase.d.ts.map +1 -1
  84. package/esm/dsl/model/toModelProjectionBase.js +3 -3
  85. package/esm/dsl/model/types.d.ts +23 -27
  86. package/esm/dsl/model/types.d.ts.map +1 -1
  87. package/esm/dsl/operation/gql/GqlOperationDriver.d.ts +3 -1
  88. package/esm/dsl/operation/gql/GqlOperationDriver.d.ts.map +1 -1
  89. package/esm/dsl/operation/gql/GqlOperationDriver.js +12 -9
  90. package/esm/dsl/operation/gql/toGqlOperationEntry.d.ts +20 -15
  91. package/esm/dsl/operation/gql/toGqlOperationEntry.d.ts.map +1 -1
  92. package/esm/dsl/operation/gql/toGqlOperationEntry.js +3 -25
  93. package/esm/dsl/operation/gql/toGqlOperationProjectionBase.d.ts +11 -10
  94. package/esm/dsl/operation/gql/toGqlOperationProjectionBase.d.ts.map +1 -1
  95. package/esm/dsl/operation/gql/types.d.ts +1 -28
  96. package/esm/dsl/operation/gql/types.d.ts.map +1 -1
  97. package/esm/dsl/operation/oas/OasOperationDriver.d.ts +3 -1
  98. package/esm/dsl/operation/oas/OasOperationDriver.d.ts.map +1 -1
  99. package/esm/dsl/operation/oas/OasOperationDriver.js +12 -9
  100. package/esm/dsl/operation/oas/toOasOperationEntry.d.ts +21 -17
  101. package/esm/dsl/operation/oas/toOasOperationEntry.d.ts.map +1 -1
  102. package/esm/dsl/operation/oas/toOasOperationEntry.js +3 -32
  103. package/esm/dsl/operation/oas/toOasOperationProjectionBase.d.ts +11 -10
  104. package/esm/dsl/operation/oas/toOasOperationProjectionBase.d.ts.map +1 -1
  105. package/esm/dsl/operation/oas/types.d.ts +1 -38
  106. package/esm/dsl/operation/oas/types.d.ts.map +1 -1
  107. package/esm/dsl/webhook/WebhookDriver.d.ts +3 -1
  108. package/esm/dsl/webhook/WebhookDriver.d.ts.map +1 -1
  109. package/esm/dsl/webhook/WebhookDriver.js +12 -9
  110. package/esm/dsl/webhook/toWebhookEntry.d.ts +21 -16
  111. package/esm/dsl/webhook/toWebhookEntry.d.ts.map +1 -1
  112. package/esm/dsl/webhook/toWebhookEntry.js +3 -32
  113. package/esm/dsl/webhook/toWebhookProjectionBase.d.ts +11 -10
  114. package/esm/dsl/webhook/toWebhookProjectionBase.d.ts.map +1 -1
  115. package/esm/dsl/webhook/types.d.ts +1 -36
  116. package/esm/dsl/webhook/types.d.ts.map +1 -1
  117. package/esm/enrichments/toEnrichmentDescriptor.d.ts +72 -27
  118. package/esm/enrichments/toEnrichmentDescriptor.d.ts.map +1 -1
  119. package/esm/enrichments/toEnrichmentDescriptor.js +57 -31
  120. package/esm/enrichments/validateConfig.d.ts +60 -0
  121. package/esm/enrichments/validateConfig.d.ts.map +1 -0
  122. package/esm/enrichments/validateConfig.js +176 -0
  123. package/esm/helpers/isImported.js +1 -1
  124. package/esm/helpers/toResolvedArtifactPath.js +1 -1
  125. package/esm/mod.d.ts +8 -1
  126. package/esm/mod.d.ts.map +1 -1
  127. package/esm/mod.js +8 -1
  128. package/esm/oas/array/Array.d.ts +2 -0
  129. package/esm/oas/array/Array.d.ts.map +1 -1
  130. package/esm/oas/array/Array.js +4 -0
  131. package/esm/oas/boolean/Boolean.d.ts +3 -1
  132. package/esm/oas/boolean/Boolean.d.ts.map +1 -1
  133. package/esm/oas/boolean/Boolean.js +4 -0
  134. package/esm/oas/components/Components.d.ts +5 -0
  135. package/esm/oas/components/Components.d.ts.map +1 -1
  136. package/esm/oas/components/Components.js +6 -1
  137. package/esm/oas/integer/Integer.d.ts +3 -1
  138. package/esm/oas/integer/Integer.d.ts.map +1 -1
  139. package/esm/oas/integer/Integer.js +4 -0
  140. package/esm/oas/link/Link.d.ts +68 -0
  141. package/esm/oas/link/Link.d.ts.map +1 -0
  142. package/esm/oas/link/Link.js +107 -0
  143. package/esm/oas/number/Number.d.ts +3 -1
  144. package/esm/oas/number/Number.d.ts.map +1 -1
  145. package/esm/oas/number/Number.js +4 -0
  146. package/esm/oas/object/Object.d.ts +9 -0
  147. package/esm/oas/object/Object.d.ts.map +1 -1
  148. package/esm/oas/object/Object.js +14 -0
  149. package/esm/oas/operation/Operation.d.ts +15 -0
  150. package/esm/oas/operation/Operation.d.ts.map +1 -1
  151. package/esm/oas/operation/Operation.js +33 -0
  152. package/esm/oas/ref/Ref.d.ts +23 -1
  153. package/esm/oas/ref/Ref.d.ts.map +1 -1
  154. package/esm/oas/ref/Ref.js +32 -0
  155. package/esm/oas/ref/ref-types.d.ts +18 -1
  156. package/esm/oas/ref/ref-types.d.ts.map +1 -1
  157. package/esm/oas/ref/ref-types.js +12 -1
  158. package/esm/oas/response/Response.d.ts +4 -0
  159. package/esm/oas/response/Response.d.ts.map +1 -1
  160. package/esm/oas/response/Response.js +7 -0
  161. package/esm/oas/schemaPath/traverseSchema.d.ts +31 -0
  162. package/esm/oas/schemaPath/traverseSchema.d.ts.map +1 -0
  163. package/esm/oas/schemaPath/traverseSchema.js +113 -0
  164. package/esm/oas/string/String.d.ts +3 -1
  165. package/esm/oas/string/String.d.ts.map +1 -1
  166. package/esm/oas/string/String.js +4 -0
  167. package/esm/oas/union/Union.d.ts +9 -0
  168. package/esm/oas/union/Union.d.ts.map +1 -1
  169. package/esm/oas/union/Union.js +14 -0
  170. package/esm/oas/unknown/Unknown.d.ts +3 -1
  171. package/esm/oas/unknown/Unknown.d.ts.map +1 -1
  172. package/esm/oas/unknown/Unknown.js +4 -0
  173. package/esm/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
  174. package/esm/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
  175. package/esm/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
  176. package/esm/parse/v3-0/_merge-all-of/merge-union.js +0 -8
  177. package/esm/parse/v3-0/components/toComponentsV3.d.ts.map +1 -1
  178. package/esm/parse/v3-0/components/toComponentsV3.js +3 -1
  179. package/esm/parse/v3-0/link/toLinksV3.d.ts +17 -0
  180. package/esm/parse/v3-0/link/toLinksV3.d.ts.map +1 -0
  181. package/esm/parse/v3-0/link/toLinksV3.js +40 -0
  182. package/esm/parse/v3-0/object/toObject.d.ts.map +1 -1
  183. package/esm/parse/v3-0/object/toObject.js +3 -1
  184. package/esm/parse/v3-0/response/toResponseV3.d.ts.map +1 -1
  185. package/esm/parse/v3-0/response/toResponseV3.js +4 -1
  186. package/esm/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
  187. package/esm/parse/v3-0/schema/toSchemasV3.js +8 -0
  188. package/esm/parse/v3-0/union/toUnion.d.ts.map +1 -1
  189. package/esm/parse/v3-0/union/toUnion.js +3 -1
  190. package/esm/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
  191. package/esm/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
  192. package/esm/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
  193. package/esm/parse/v3-1/_merge-all-of/merge-union.js +0 -8
  194. package/esm/parse/v3-1/components/toComponentsV3.d.ts.map +1 -1
  195. package/esm/parse/v3-1/components/toComponentsV3.js +3 -1
  196. package/esm/parse/v3-1/link/toLinksV3.d.ts +17 -0
  197. package/esm/parse/v3-1/link/toLinksV3.d.ts.map +1 -0
  198. package/esm/parse/v3-1/link/toLinksV3.js +40 -0
  199. package/esm/parse/v3-1/object/toObject.d.ts.map +1 -1
  200. package/esm/parse/v3-1/object/toObject.js +3 -1
  201. package/esm/parse/v3-1/response/toResponseV3.d.ts.map +1 -1
  202. package/esm/parse/v3-1/response/toResponseV3.js +4 -1
  203. package/esm/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
  204. package/esm/parse/v3-1/schema/toSchemasV3.js +8 -0
  205. package/esm/parse/v3-1/union/toUnion.d.ts.map +1 -1
  206. package/esm/parse/v3-1/union/toUnion.js +3 -1
  207. package/esm/run/toArtifacts.d.ts +8 -1
  208. package/esm/run/toArtifacts.d.ts.map +1 -1
  209. package/esm/run/toArtifacts.js +5 -5
  210. package/esm/run/toInspection.d.ts +8 -0
  211. package/esm/run/toInspection.d.ts.map +1 -0
  212. package/esm/run/toInspection.js +78 -0
  213. package/esm/types/Enrichments.d.ts +19 -8
  214. package/esm/types/Enrichments.d.ts.map +1 -1
  215. package/esm/types/Enrichments.js +4 -3
  216. package/esm/types/GeneratorType.d.ts +5 -5
  217. package/esm/types/GeneratorType.d.ts.map +1 -1
  218. package/esm/types/Manifest.d.ts +1 -2
  219. package/esm/types/Manifest.d.ts.map +1 -1
  220. package/esm/types/Manifest.js +1 -2
  221. package/esm/types/ModuleSelect.d.ts +81 -0
  222. package/esm/types/ModuleSelect.d.ts.map +1 -0
  223. package/esm/types/ModuleSelect.js +63 -0
  224. package/esm/types/Preview.d.ts +4 -27
  225. package/esm/types/Preview.d.ts.map +1 -1
  226. package/esm/types/Preview.js +4 -25
  227. package/esm/types/SchemaPath.d.ts +17 -0
  228. package/esm/types/SchemaPath.d.ts.map +1 -0
  229. package/esm/types/SchemaPath.js +9 -0
  230. package/esm/types/Settings.d.ts +24 -3
  231. package/esm/types/Settings.d.ts.map +1 -1
  232. package/esm/types/Settings.js +20 -13
  233. package/esm/types/SkmtcDocument.d.ts +1 -1
  234. package/esm/types/SupportedSubjects.d.ts +1 -1
  235. package/package.json +1 -1
  236. package/script/anchors/buildSidecar.js +1 -1
  237. package/script/anchors/postPass.d.ts +1 -1
  238. package/script/anchors/postPass.js +1 -1
  239. package/script/anchors/sidecar.d.ts +2 -2
  240. package/script/anchors/sidecar.js +1 -1
  241. package/script/context/CoreContext.d.ts +7 -1
  242. package/script/context/CoreContext.d.ts.map +1 -1
  243. package/script/context/CoreContext.js +17 -11
  244. package/script/context/GenerateContext.d.ts +28 -7
  245. package/script/context/GenerateContext.d.ts.map +1 -1
  246. package/script/context/GenerateContext.js +164 -86
  247. package/script/context/ParseContext.d.ts +16 -0
  248. package/script/context/ParseContext.d.ts.map +1 -1
  249. package/script/context/ParseContext.js +16 -0
  250. package/script/context/ParseIssue.d.ts +1 -1
  251. package/script/context/RenderContext.d.ts +2 -6
  252. package/script/context/RenderContext.d.ts.map +1 -1
  253. package/script/context/RenderContext.js +4 -14
  254. package/script/context/generateTypes.d.ts +35 -8
  255. package/script/context/generateTypes.d.ts.map +1 -1
  256. package/{esm/deps/jsr.io/@std/fs/1.0.23 → script/deps/jsr.io/@std/fs/1.0.24}/exists.d.ts.map +1 -1
  257. package/script/deps/jsr.io/@std/internal/1.0.14/_os.d.ts.map +1 -0
  258. package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/_os.js +7 -5
  259. package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.d.ts.map +1 -1
  260. package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  261. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.d.ts.map +1 -1
  262. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.js +1 -1
  263. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.d.ts.map +1 -1
  264. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.js +1 -1
  265. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.d.ts.map +1 -1
  266. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.js +1 -1
  267. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.d.ts.map +1 -1
  268. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.js +1 -1
  269. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.d.ts.map +1 -1
  270. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.js +1 -1
  271. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.d.ts.map +1 -1
  272. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.js +2 -2
  273. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.d.ts.map +1 -1
  274. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.js +2 -2
  275. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.d.ts.map +1 -1
  276. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.js +1 -1
  277. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.d.ts.map +1 -1
  278. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.js +1 -1
  279. package/{esm/deps/jsr.io/@std/path/1.1.4 → script/deps/jsr.io/@std/path/1.1.6}/posix/join.d.ts.map +1 -1
  280. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/join.js +1 -1
  281. package/{esm/deps/jsr.io/@std/path/1.1.4 → script/deps/jsr.io/@std/path/1.1.6}/posix/normalize.d.ts.map +1 -1
  282. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/normalize.js +1 -1
  283. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.d.ts.map +1 -1
  284. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.js +1 -1
  285. package/{esm/deps/jsr.io/@std/path/1.1.4 → script/deps/jsr.io/@std/path/1.1.6}/windows/from_file_url.d.ts.map +1 -1
  286. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/from_file_url.js +1 -1
  287. package/{esm/deps/jsr.io/@std/path/1.1.4 → script/deps/jsr.io/@std/path/1.1.6}/windows/join.d.ts.map +1 -1
  288. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/join.js +1 -1
  289. package/{esm/deps/jsr.io/@std/path/1.1.4 → script/deps/jsr.io/@std/path/1.1.6}/windows/normalize.d.ts.map +1 -1
  290. package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/normalize.js +1 -1
  291. package/script/dsl/CodeFileBase.d.ts +57 -24
  292. package/script/dsl/CodeFileBase.d.ts.map +1 -1
  293. package/script/dsl/CodeFileBase.js +37 -54
  294. package/script/dsl/FileBase.d.ts +21 -25
  295. package/script/dsl/FileBase.d.ts.map +1 -1
  296. package/script/dsl/FileBase.js +20 -29
  297. package/script/dsl/GeneratorKeys.d.ts +19 -19
  298. package/script/dsl/GeneratorKeys.d.ts.map +1 -1
  299. package/script/dsl/GeneratorKeys.js +6 -5
  300. package/script/dsl/IdentifierBase.d.ts +19 -5
  301. package/script/dsl/IdentifierBase.d.ts.map +1 -1
  302. package/script/dsl/IdentifierBase.js +21 -5
  303. package/script/dsl/IdentifierType.d.ts +8 -14
  304. package/script/dsl/IdentifierType.d.ts.map +1 -1
  305. package/script/dsl/Lang.d.ts +18 -38
  306. package/script/dsl/Lang.d.ts.map +1 -1
  307. package/script/dsl/MarkdownFile.d.ts +55 -0
  308. package/script/dsl/MarkdownFile.d.ts.map +1 -0
  309. package/script/dsl/MarkdownFile.js +62 -0
  310. package/script/dsl/model/ModelDriver.d.ts +3 -1
  311. package/script/dsl/model/ModelDriver.d.ts.map +1 -1
  312. package/script/dsl/model/ModelDriver.js +29 -2
  313. package/script/dsl/model/toModelEntry.d.ts +24 -14
  314. package/script/dsl/model/toModelEntry.d.ts.map +1 -1
  315. package/script/dsl/model/toModelEntry.js +7 -3
  316. package/script/dsl/model/toModelProjectionBase.d.ts +31 -18
  317. package/script/dsl/model/toModelProjectionBase.d.ts.map +1 -1
  318. package/script/dsl/model/toModelProjectionBase.js +3 -3
  319. package/script/dsl/model/types.d.ts +23 -27
  320. package/script/dsl/model/types.d.ts.map +1 -1
  321. package/script/dsl/operation/gql/GqlOperationDriver.d.ts +3 -1
  322. package/script/dsl/operation/gql/GqlOperationDriver.d.ts.map +1 -1
  323. package/script/dsl/operation/gql/GqlOperationDriver.js +12 -9
  324. package/script/dsl/operation/gql/toGqlOperationEntry.d.ts +20 -15
  325. package/script/dsl/operation/gql/toGqlOperationEntry.d.ts.map +1 -1
  326. package/script/dsl/operation/gql/toGqlOperationEntry.js +3 -61
  327. package/script/dsl/operation/gql/toGqlOperationProjectionBase.d.ts +11 -10
  328. package/script/dsl/operation/gql/toGqlOperationProjectionBase.d.ts.map +1 -1
  329. package/script/dsl/operation/gql/types.d.ts +1 -28
  330. package/script/dsl/operation/gql/types.d.ts.map +1 -1
  331. package/script/dsl/operation/oas/OasOperationDriver.d.ts +3 -1
  332. package/script/dsl/operation/oas/OasOperationDriver.d.ts.map +1 -1
  333. package/script/dsl/operation/oas/OasOperationDriver.js +12 -9
  334. package/script/dsl/operation/oas/toOasOperationEntry.d.ts +21 -17
  335. package/script/dsl/operation/oas/toOasOperationEntry.d.ts.map +1 -1
  336. package/script/dsl/operation/oas/toOasOperationEntry.js +3 -68
  337. package/script/dsl/operation/oas/toOasOperationProjectionBase.d.ts +11 -10
  338. package/script/dsl/operation/oas/toOasOperationProjectionBase.d.ts.map +1 -1
  339. package/script/dsl/operation/oas/types.d.ts +1 -38
  340. package/script/dsl/operation/oas/types.d.ts.map +1 -1
  341. package/script/dsl/webhook/WebhookDriver.d.ts +3 -1
  342. package/script/dsl/webhook/WebhookDriver.d.ts.map +1 -1
  343. package/script/dsl/webhook/WebhookDriver.js +12 -9
  344. package/script/dsl/webhook/toWebhookEntry.d.ts +21 -16
  345. package/script/dsl/webhook/toWebhookEntry.d.ts.map +1 -1
  346. package/script/dsl/webhook/toWebhookEntry.js +3 -68
  347. package/script/dsl/webhook/toWebhookProjectionBase.d.ts +11 -10
  348. package/script/dsl/webhook/toWebhookProjectionBase.d.ts.map +1 -1
  349. package/script/dsl/webhook/types.d.ts +1 -36
  350. package/script/dsl/webhook/types.d.ts.map +1 -1
  351. package/script/enrichments/toEnrichmentDescriptor.d.ts +72 -27
  352. package/script/enrichments/toEnrichmentDescriptor.d.ts.map +1 -1
  353. package/script/enrichments/toEnrichmentDescriptor.js +57 -31
  354. package/script/enrichments/validateConfig.d.ts +60 -0
  355. package/script/enrichments/validateConfig.d.ts.map +1 -0
  356. package/script/enrichments/validateConfig.js +213 -0
  357. package/script/helpers/isImported.js +1 -1
  358. package/script/helpers/toResolvedArtifactPath.js +1 -1
  359. package/script/mod.d.ts +8 -1
  360. package/script/mod.d.ts.map +1 -1
  361. package/script/mod.js +8 -1
  362. package/script/oas/array/Array.d.ts +2 -0
  363. package/script/oas/array/Array.d.ts.map +1 -1
  364. package/script/oas/array/Array.js +4 -0
  365. package/script/oas/boolean/Boolean.d.ts +3 -1
  366. package/script/oas/boolean/Boolean.d.ts.map +1 -1
  367. package/script/oas/boolean/Boolean.js +4 -0
  368. package/script/oas/components/Components.d.ts +5 -0
  369. package/script/oas/components/Components.d.ts.map +1 -1
  370. package/script/oas/components/Components.js +6 -1
  371. package/script/oas/integer/Integer.d.ts +3 -1
  372. package/script/oas/integer/Integer.d.ts.map +1 -1
  373. package/script/oas/integer/Integer.js +4 -0
  374. package/script/oas/link/Link.d.ts +68 -0
  375. package/script/oas/link/Link.d.ts.map +1 -0
  376. package/script/oas/link/Link.js +111 -0
  377. package/script/oas/number/Number.d.ts +3 -1
  378. package/script/oas/number/Number.d.ts.map +1 -1
  379. package/script/oas/number/Number.js +4 -0
  380. package/script/oas/object/Object.d.ts +9 -0
  381. package/script/oas/object/Object.d.ts.map +1 -1
  382. package/script/oas/object/Object.js +14 -0
  383. package/script/oas/operation/Operation.d.ts +15 -0
  384. package/script/oas/operation/Operation.d.ts.map +1 -1
  385. package/script/oas/operation/Operation.js +33 -0
  386. package/script/oas/ref/Ref.d.ts +23 -1
  387. package/script/oas/ref/Ref.d.ts.map +1 -1
  388. package/script/oas/ref/Ref.js +32 -0
  389. package/script/oas/ref/ref-types.d.ts +18 -1
  390. package/script/oas/ref/ref-types.d.ts.map +1 -1
  391. package/script/oas/ref/ref-types.js +13 -2
  392. package/script/oas/response/Response.d.ts +4 -0
  393. package/script/oas/response/Response.d.ts.map +1 -1
  394. package/script/oas/response/Response.js +7 -0
  395. package/script/oas/schemaPath/traverseSchema.d.ts +31 -0
  396. package/script/oas/schemaPath/traverseSchema.d.ts.map +1 -0
  397. package/script/oas/schemaPath/traverseSchema.js +117 -0
  398. package/script/oas/string/String.d.ts +3 -1
  399. package/script/oas/string/String.d.ts.map +1 -1
  400. package/script/oas/string/String.js +4 -0
  401. package/script/oas/union/Union.d.ts +9 -0
  402. package/script/oas/union/Union.d.ts.map +1 -1
  403. package/script/oas/union/Union.js +14 -0
  404. package/script/oas/unknown/Unknown.d.ts +3 -1
  405. package/script/oas/unknown/Unknown.d.ts.map +1 -1
  406. package/script/oas/unknown/Unknown.js +4 -0
  407. package/script/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
  408. package/script/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
  409. package/script/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
  410. package/script/parse/v3-0/_merge-all-of/merge-union.js +0 -8
  411. package/script/parse/v3-0/components/toComponentsV3.d.ts.map +1 -1
  412. package/script/parse/v3-0/components/toComponentsV3.js +3 -1
  413. package/script/parse/v3-0/link/toLinksV3.d.ts +17 -0
  414. package/script/parse/v3-0/link/toLinksV3.d.ts.map +1 -0
  415. package/script/parse/v3-0/link/toLinksV3.js +44 -0
  416. package/script/parse/v3-0/object/toObject.d.ts.map +1 -1
  417. package/script/parse/v3-0/object/toObject.js +3 -1
  418. package/script/parse/v3-0/response/toResponseV3.d.ts.map +1 -1
  419. package/script/parse/v3-0/response/toResponseV3.js +4 -1
  420. package/script/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
  421. package/script/parse/v3-0/schema/toSchemasV3.js +8 -0
  422. package/script/parse/v3-0/union/toUnion.d.ts.map +1 -1
  423. package/script/parse/v3-0/union/toUnion.js +3 -1
  424. package/script/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
  425. package/script/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
  426. package/script/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
  427. package/script/parse/v3-1/_merge-all-of/merge-union.js +0 -8
  428. package/script/parse/v3-1/components/toComponentsV3.d.ts.map +1 -1
  429. package/script/parse/v3-1/components/toComponentsV3.js +3 -1
  430. package/script/parse/v3-1/link/toLinksV3.d.ts +17 -0
  431. package/script/parse/v3-1/link/toLinksV3.d.ts.map +1 -0
  432. package/script/parse/v3-1/link/toLinksV3.js +44 -0
  433. package/script/parse/v3-1/object/toObject.d.ts.map +1 -1
  434. package/script/parse/v3-1/object/toObject.js +3 -1
  435. package/script/parse/v3-1/response/toResponseV3.d.ts.map +1 -1
  436. package/script/parse/v3-1/response/toResponseV3.js +4 -1
  437. package/script/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
  438. package/script/parse/v3-1/schema/toSchemasV3.js +8 -0
  439. package/script/parse/v3-1/union/toUnion.d.ts.map +1 -1
  440. package/script/parse/v3-1/union/toUnion.js +3 -1
  441. package/script/run/toArtifacts.d.ts +8 -1
  442. package/script/run/toArtifacts.d.ts.map +1 -1
  443. package/script/run/toArtifacts.js +5 -5
  444. package/script/run/toInspection.d.ts +8 -0
  445. package/script/run/toInspection.d.ts.map +1 -0
  446. package/script/run/toInspection.js +82 -0
  447. package/script/types/Enrichments.d.ts +19 -8
  448. package/script/types/Enrichments.d.ts.map +1 -1
  449. package/script/types/Enrichments.js +5 -4
  450. package/script/types/GeneratorType.d.ts +5 -5
  451. package/script/types/GeneratorType.d.ts.map +1 -1
  452. package/script/types/Manifest.d.ts +1 -2
  453. package/script/types/Manifest.d.ts.map +1 -1
  454. package/script/types/Manifest.js +0 -1
  455. package/script/types/ModuleSelect.d.ts +81 -0
  456. package/script/types/ModuleSelect.d.ts.map +1 -0
  457. package/script/types/ModuleSelect.js +101 -0
  458. package/script/types/Preview.d.ts +4 -27
  459. package/script/types/Preview.d.ts.map +1 -1
  460. package/script/types/Preview.js +5 -26
  461. package/script/types/SchemaPath.d.ts +17 -0
  462. package/script/types/SchemaPath.d.ts.map +1 -0
  463. package/script/types/{AccessorPath.js → SchemaPath.js} +7 -7
  464. package/script/types/Settings.d.ts +24 -3
  465. package/script/types/Settings.d.ts.map +1 -1
  466. package/script/types/Settings.js +17 -10
  467. package/script/types/SkmtcDocument.d.ts +1 -1
  468. package/script/types/SupportedSubjects.d.ts +1 -1
  469. package/esm/deps/jsr.io/@std/internal/1.0.13/_os.d.ts.map +0 -1
  470. package/esm/deps/jsr.io/@std/internal/1.0.13/_os.js +0 -12
  471. package/esm/types/AccessorPath.d.ts +0 -17
  472. package/esm/types/AccessorPath.d.ts.map +0 -1
  473. package/esm/types/AccessorPath.js +0 -9
  474. package/script/deps/jsr.io/@std/internal/1.0.13/_os.d.ts.map +0 -1
  475. package/script/types/AccessorPath.d.ts +0 -17
  476. package/script/types/AccessorPath.d.ts.map +0 -1
  477. /package/esm/deps/jsr.io/@std/fs/{1.0.23 → 1.0.24}/exists.d.ts +0 -0
  478. /package/esm/deps/jsr.io/@std/fs/{1.0.23 → 1.0.24}/exists.js +0 -0
  479. /package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/_os.d.ts +0 -0
  480. /package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.d.ts +0 -0
  481. /package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.js +0 -0
  482. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.d.ts +0 -0
  483. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.d.ts +0 -0
  484. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.d.ts +0 -0
  485. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.d.ts +0 -0
  486. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.d.ts +0 -0
  487. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.d.ts +0 -0
  488. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.d.ts +0 -0
  489. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.d.ts +0 -0
  490. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.d.ts +0 -0
  491. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/join.d.ts +0 -0
  492. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/normalize.d.ts +0 -0
  493. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.d.ts +0 -0
  494. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/from_file_url.d.ts +0 -0
  495. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/join.d.ts +0 -0
  496. /package/esm/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/normalize.d.ts +0 -0
  497. /package/script/deps/jsr.io/@std/fs/{1.0.23 → 1.0.24}/exists.d.ts +0 -0
  498. /package/script/deps/jsr.io/@std/fs/{1.0.23 → 1.0.24}/exists.js +0 -0
  499. /package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/_os.d.ts +0 -0
  500. /package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.d.ts +0 -0
  501. /package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/os.js +0 -0
  502. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/assert_path.d.ts +0 -0
  503. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/constants.d.ts +0 -0
  504. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/from_file_url.d.ts +0 -0
  505. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize.d.ts +0 -0
  506. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/_common/normalize_string.d.ts +0 -0
  507. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/join.d.ts +0 -0
  508. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/normalize.d.ts +0 -0
  509. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/_util.d.ts +0 -0
  510. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/from_file_url.d.ts +0 -0
  511. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/join.d.ts +0 -0
  512. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/posix/normalize.d.ts +0 -0
  513. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/_util.d.ts +0 -0
  514. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/from_file_url.d.ts +0 -0
  515. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/join.d.ts +0 -0
  516. /package/script/deps/jsr.io/@std/path/{1.1.4 → 1.1.6}/windows/normalize.d.ts +0 -0
@@ -11,6 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _OasRef_instances, _OasRef_fields, _OasRef_document, _OasRef_resolveOasOnce, _OasRef_resolveGqlOnce;
13
13
  import "../../_dnt.polyfills.js";
14
+ import { traverseSchema } from '../schemaPath/traverseSchema.js';
14
15
  import { toRefName } from '../../helpers/refFns.js';
15
16
  import { OasBase } from '../../types/OasBase.js';
16
17
  const MAX_LOOKUPS = 10;
@@ -33,6 +34,8 @@ function refTypeToPluralPath(refType) {
33
34
  return 'headers';
34
35
  case 'securityScheme':
35
36
  return 'securitySchemes';
37
+ case 'link':
38
+ return 'links';
36
39
  default: {
37
40
  const _exhaustive = refType;
38
41
  throw new Error(`Unhandled ref type: ${_exhaustive}`);
@@ -212,6 +215,33 @@ export class OasRef extends OasBase {
212
215
  toRefName() {
213
216
  return toRefName(__classPrivateFieldGet(this, _OasRef_fields, "f").$ref);
214
217
  }
218
+ /**
219
+ * Narrows this reference to a schema reference.
220
+ *
221
+ * @returns True when this reference points at a schema component.
222
+ */
223
+ isSchemaRef() {
224
+ return this.refType === 'schema';
225
+ }
226
+ /**
227
+ * Navigate an {@link SchemaPath} starting from this reference, resolving it
228
+ * to descend through. See {@link traverseSchema}.
229
+ *
230
+ * Available on every `OasRef` so `.traverse()` works on the common
231
+ * `OasSchema | OasRef<'schema'>` value (an object property, array `items`).
232
+ * Schema paths only describe schemas for now, so it throws for non-schema
233
+ * refs (response/parameter/…); {@link isSchemaRef} narrows `this`, keeping the
234
+ * delegation cast-free.
235
+ *
236
+ * @returns The schema at the path (may be an unresolved `$ref`).
237
+ * @throws Error when called on a non-schema ref.
238
+ */
239
+ traverse(path) {
240
+ if (!this.isSchemaRef()) {
241
+ throw new Error(`Schema path traversal is not yet supported for "${this.refType}" refs (only schema refs)`);
242
+ }
243
+ return traverseSchema(this, path);
244
+ }
215
245
  get $ref() {
216
246
  return __classPrivateFieldGet(this, _OasRef_fields, "f").$ref;
217
247
  }
@@ -269,6 +299,8 @@ _OasRef_fields = new WeakMap(), _OasRef_document = new WeakMap(), _OasRef_instan
269
299
  return c?.headers?.[refName];
270
300
  case 'securityScheme':
271
301
  return c?.securitySchemes?.[refName];
302
+ case 'link':
303
+ return c?.links?.[refName];
272
304
  default: {
273
305
  const _exhaustive = refType;
274
306
  throw new Error(`Unhandled ref type: ${_exhaustive}`);
@@ -131,13 +131,30 @@ export type OasSecuritySchemeRefData = {
131
131
  * Valibot schema for validating security scheme reference data.
132
132
  */
133
133
  export declare const oasSecuritySchemeRefData: v.GenericSchema<OasSecuritySchemeRefData>;
134
+ /**
135
+ * Data type for OpenAPI link reference objects.
136
+ *
137
+ * Represents $ref references to link objects in OpenAPI documents,
138
+ * allowing link definitions to be reused across responses.
139
+ */
140
+ export type OasLinkRefData = {
141
+ oasType: 'ref';
142
+ refType: 'link';
143
+ $ref: string;
144
+ summary?: string;
145
+ description?: string;
146
+ };
147
+ /**
148
+ * Valibot schema for validating link reference data.
149
+ */
150
+ export declare const oasLinkRefData: v.GenericSchema<OasLinkRefData>;
134
151
  /**
135
152
  * Union type representing all possible OpenAPI reference data types.
136
153
  *
137
154
  * Encompasses all supported reference types in the OpenAPI specification,
138
155
  * providing type-safe handling of references to various component types.
139
156
  */
140
- export type OasRefData = OasSchemaRefData | OasResponseRefData | OasParameterRefData | OasExampleRefData | OasRequestBodyRefData | OasHeaderRefData | OasSecuritySchemeRefData;
157
+ export type OasRefData = OasSchemaRefData | OasResponseRefData | OasParameterRefData | OasExampleRefData | OasRequestBodyRefData | OasHeaderRefData | OasSecuritySchemeRefData | OasLinkRefData;
141
158
  /**
142
159
  * Valibot schema for validating any OpenAPI reference data.
143
160
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ref-types.d.ts","sourceRoot":"","sources":["../../../src/oas/ref/ref-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref-types.d.ts","sourceRoot":"","sources":["../../../src/oas/ref/ref-types.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,16 @@ export const oasSecuritySchemeRefData = v.object({
68
68
  refType: v.literal('securityScheme'),
69
69
  $ref: v.string()
70
70
  });
71
+ /**
72
+ * Valibot schema for validating link reference data.
73
+ */
74
+ export const oasLinkRefData = v.object({
75
+ oasType: v.literal('ref'),
76
+ refType: v.literal('link'),
77
+ $ref: v.string(),
78
+ summary: v.optional(v.string()),
79
+ description: v.optional(markdown)
80
+ });
71
81
  // OasPathItemRefData
72
82
  /**
73
83
  * Valibot schema for validating any OpenAPI reference data.
@@ -82,6 +92,7 @@ export const oasRefData = v.union([
82
92
  oasExampleRefData,
83
93
  oasRequestBodyRefData,
84
94
  oasHeaderRefData,
85
- oasSecuritySchemeRefData
95
+ oasSecuritySchemeRefData,
96
+ oasLinkRefData
86
97
  // oasPathItemRefData
87
98
  ]);
@@ -1,5 +1,6 @@
1
1
  import "../../_dnt.polyfills.js";
2
2
  import type { OasHeader } from '../header/Header.js';
3
+ import type { OasLink } from '../link/Link.js';
3
4
  import type { OasMediaType } from '../mediaType/MediaType.js';
4
5
  import type { OasRef } from '../ref/Ref.js';
5
6
  import type { OasSchema } from '../schema/Schema.js';
@@ -15,6 +16,8 @@ export type ResponseFields = {
15
16
  description?: string | undefined;
16
17
  /** Response headers that can be sent */
17
18
  headers?: Record<string, OasHeader | OasRef<'header'>> | undefined;
19
+ /** Design-time links from this response to other operations */
20
+ links?: Record<string, OasLink | OasRef<'link'>> | undefined;
18
21
  /** Response content for different media types */
19
22
  content?: Record<string, OasMediaType> | undefined;
20
23
  /** Custom extension fields (x-* properties) */
@@ -207,6 +210,7 @@ export declare class OasResponse extends OasBase {
207
210
  oasType: 'response';
208
211
  description: string | undefined;
209
212
  headers: Record<string, OasHeader | OasRef<'header'>> | undefined;
213
+ links: Record<string, OasLink | OasRef<'link'>> | undefined;
210
214
  content: Record<string, OasMediaType> | undefined;
211
215
  extensionFields: Record<string, unknown> | undefined;
212
216
  constructor(fields: ResponseFields, context?: ParseContextType);
@@ -1 +1 @@
1
- {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../../src/oas/response/Response.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;IAClE,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IAClD,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsLG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,OAAO,EAAE,UAAU,CAAa;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IACjD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBACxC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQ9D,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC;IAInC,OAAO,IAAI,WAAW;IAItB,WAAW,IAAI,WAAW;IAI1B,QAAQ,CAAC,SAAS,GAAE,MAA2B,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAI1F,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,cAAc;CAqBrE"}
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../../src/oas/response/Response.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;IAClE,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC5D,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IAClD,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsLG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,OAAO,EAAE,UAAU,CAAa;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;IACjE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IACjD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBACxC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAS9D,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC;IAInC,OAAO,IAAI,WAAW;IAItB,WAAW,IAAI,WAAW;IAI1B,QAAQ,CAAC,SAAS,GAAE,MAA2B,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAI1F,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,cAAc;CAqBrE"}
@@ -204,6 +204,12 @@ export class OasResponse extends OasBase {
204
204
  writable: true,
205
205
  value: void 0
206
206
  });
207
+ Object.defineProperty(this, "links", {
208
+ enumerable: true,
209
+ configurable: true,
210
+ writable: true,
211
+ value: void 0
212
+ });
207
213
  Object.defineProperty(this, "content", {
208
214
  enumerable: true,
209
215
  configurable: true,
@@ -218,6 +224,7 @@ export class OasResponse extends OasBase {
218
224
  });
219
225
  this.description = fields.description;
220
226
  this.headers = fields.headers;
227
+ this.links = fields.links;
221
228
  this.content = fields.content;
222
229
  this.extensionFields = fields.extensionFields;
223
230
  }
@@ -0,0 +1,31 @@
1
+ import type { OasSchema } from '../schema/Schema.js';
2
+ import type { OasRef } from '../ref/Ref.js';
3
+ import type { SchemaPath } from '../../types/SchemaPath.js';
4
+ /**
5
+ * Walk an {@link SchemaPath} into a schema, resolving `$ref`s as it descends.
6
+ *
7
+ * The shared engine behind `OasOperation.traverse` and every `OasSchema`
8
+ * variant's `traverse`. A ref — or a `OasSchema | OasRef<'schema'>` union value —
9
+ * is passed straight to this function, which resolves refs itself, so `OasRef`
10
+ * needs no `traverse` method of its own. Navigation rules per segment, keyed by
11
+ * the schema currently under the cursor:
12
+ *
13
+ * - **empty path** → returns `value` unchanged (it may still be a ref — the
14
+ * final value is never force-resolved, so a target's refName survives).
15
+ * - **object** → the segment is a property name; descends into
16
+ * `properties[segment]`.
17
+ * - **array** → the segment must be the literal `'items'`; descends into the
18
+ * element schema.
19
+ * - **union** → the segment selects a member ({@link selectUnionMember}):
20
+ * `'$Circle'` by refName, `'{type:circle}'` by discriminator, `'[0]'` by index.
21
+ *
22
+ * A ref is resolved only when the path needs to descend *through* it. Anything
23
+ * the path cannot navigate throws a descriptive, segment-named error: a missing
24
+ * property, a {@link import('@/dsl/CustomValue.ts').CustomValue} property, a
25
+ * non-`'items'` segment on an array, a union member that doesn't match, or
26
+ * descending into a scalar.
27
+ *
28
+ * @throws Error when a segment cannot be navigated.
29
+ */
30
+ export declare const traverseSchema: (value: OasSchema | OasRef<"schema">, path: SchemaPath) => OasSchema | OasRef<"schema">;
31
+ //# sourceMappingURL=traverseSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseSchema.d.ts","sourceRoot":"","sources":["../../../src/oas/schemaPath/traverseSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,EACnC,MAAM,UAAU,KACf,SAAS,GAAG,MAAM,CAAC,QAAQ,CA+C7B,CAAA"}
@@ -0,0 +1,113 @@
1
+ import { toRefName } from '../../helpers/refFns.js';
2
+ /**
3
+ * Walk an {@link SchemaPath} into a schema, resolving `$ref`s as it descends.
4
+ *
5
+ * The shared engine behind `OasOperation.traverse` and every `OasSchema`
6
+ * variant's `traverse`. A ref — or a `OasSchema | OasRef<'schema'>` union value —
7
+ * is passed straight to this function, which resolves refs itself, so `OasRef`
8
+ * needs no `traverse` method of its own. Navigation rules per segment, keyed by
9
+ * the schema currently under the cursor:
10
+ *
11
+ * - **empty path** → returns `value` unchanged (it may still be a ref — the
12
+ * final value is never force-resolved, so a target's refName survives).
13
+ * - **object** → the segment is a property name; descends into
14
+ * `properties[segment]`.
15
+ * - **array** → the segment must be the literal `'items'`; descends into the
16
+ * element schema.
17
+ * - **union** → the segment selects a member ({@link selectUnionMember}):
18
+ * `'$Circle'` by refName, `'{type:circle}'` by discriminator, `'[0]'` by index.
19
+ *
20
+ * A ref is resolved only when the path needs to descend *through* it. Anything
21
+ * the path cannot navigate throws a descriptive, segment-named error: a missing
22
+ * property, a {@link import('@/dsl/CustomValue.ts').CustomValue} property, a
23
+ * non-`'items'` segment on an array, a union member that doesn't match, or
24
+ * descending into a scalar.
25
+ *
26
+ * @throws Error when a segment cannot be navigated.
27
+ */
28
+ export const traverseSchema = (value, path) => {
29
+ if (path.length === 0) {
30
+ return value;
31
+ }
32
+ // Resolve refs only to descend through them; the final value (path empty,
33
+ // above) is returned as-is.
34
+ const schema = value.isRef() ? value.resolve() : value;
35
+ const [segment, ...rest] = path;
36
+ switch (schema.type) {
37
+ case 'object': {
38
+ const property = schema.properties?.[segment];
39
+ if (!property) {
40
+ throw new Error(`Schema path segment "${segment}" is not a property of the object (available: ${Object.keys(schema.properties ?? {}).join(', ') || 'none'})`);
41
+ }
42
+ if (property.type === 'custom') {
43
+ throw new Error(`Schema path segment "${segment}" is a custom value and cannot be traversed`);
44
+ }
45
+ return traverseSchema(property, rest);
46
+ }
47
+ case 'array': {
48
+ if (segment !== 'items') {
49
+ throw new Error(`Schema path segment "${segment}" cannot traverse an array; use "items" to descend into the element schema`);
50
+ }
51
+ return traverseSchema(schema.items, rest);
52
+ }
53
+ case 'union': {
54
+ return traverseSchema(selectUnionMember(schema, segment), rest);
55
+ }
56
+ default: {
57
+ throw new Error(`Schema path segment "${segment}" cannot traverse a "${schema.type}" schema`);
58
+ }
59
+ }
60
+ };
61
+ /**
62
+ * Pick one member of a union for an {@link SchemaPath} segment. The segment's
63
+ * notation chooses the branching strategy:
64
+ *
65
+ * - `'$Circle'` (`$`-prefixed) → by **member refName** (the schema identity).
66
+ * - `'{type:circle}'` (`{property:value}`) → by **discriminator** — the property
67
+ * must match the union's `discriminator.propertyName`, and the value is looked
68
+ * up in `discriminator.mapping` (or used as an implicit schema name).
69
+ * - `'[0]'` (bracketed) → by **member index** — the fallback for inline/anonymous
70
+ * members that have no refName.
71
+ *
72
+ * A plain (un-prefixed) segment is not a valid union selector.
73
+ *
74
+ * @throws Error when the segment is not a valid selector or selects no member.
75
+ */
76
+ const selectUnionMember = (union, segment) => {
77
+ const indexMatch = segment.match(/^\[(\d+)\]$/);
78
+ if (indexMatch) {
79
+ const index = Number(indexMatch[1]);
80
+ const member = union.members[index];
81
+ if (!member) {
82
+ throw new Error(`Schema path segment "${segment}" is out of range; the union has ${union.members.length} member(s)`);
83
+ }
84
+ return member;
85
+ }
86
+ const discriminatorMatch = segment.match(/^\{([^:]+):(.+)\}$/);
87
+ if (discriminatorMatch) {
88
+ const [, propertyName, value] = discriminatorMatch;
89
+ if (!union.discriminator) {
90
+ throw new Error(`Schema path segment "${segment}" needs a discriminated union, but this union has no discriminator`);
91
+ }
92
+ if (union.discriminator.propertyName !== propertyName) {
93
+ throw new Error(`Schema path segment "${segment}" discriminates on "${propertyName}", but this union's discriminator is "${union.discriminator.propertyName}"`);
94
+ }
95
+ const mapped = union.discriminator.mapping?.[value];
96
+ const targetRefName = mapped ? toRefName(mapped) : value;
97
+ const member = findMemberByRefName(union, targetRefName);
98
+ if (!member) {
99
+ throw new Error(`Schema path segment "${segment}" does not resolve to a union member via the discriminator`);
100
+ }
101
+ return member;
102
+ }
103
+ if (segment.startsWith('$')) {
104
+ const member = findMemberByRefName(union, segment.slice(1));
105
+ if (!member) {
106
+ const refNames = union.members.filter(member => member.isRef()).map(member => member.toRefName());
107
+ throw new Error(`Schema path segment "${segment}" does not match a union member refName (available: ${refNames.map(name => `$${name}`).join(', ') || 'none — use "[index]" for inline members'})`);
108
+ }
109
+ return member;
110
+ }
111
+ throw new Error(`Schema path segment "${segment}" is not a valid union selector; use "$RefName", "{discriminator:value}", or "[index]"`);
112
+ };
113
+ const findMemberByRefName = (union, refName) => union.members.find(member => member.isRef() && member.toRefName() === refName);
@@ -1,6 +1,7 @@
1
1
  import "../../_dnt.polyfills.js";
2
+ import type { SchemaPath } from '../../types/SchemaPath.js';
2
3
  import type { OasRef } from '../ref/Ref.js';
3
- import type { ToJsonSchemaOptions } from '../schema/Schema.js';
4
+ import type { OasSchema, ToJsonSchemaOptions } from '../schema/Schema.js';
4
5
  import type { OpenAPIV3 } from 'openapi-types';
5
6
  import { OasBase } from '../../types/OasBase.js';
6
7
  import type { ParseContextType } from '../../context/parseTypes.js';
@@ -103,6 +104,7 @@ export declare class OasString<Nullable extends boolean | undefined = boolean |
103
104
  deprecated: boolean | undefined;
104
105
  constructor(fields?: StringFields<Nullable>, context?: ParseContextType);
105
106
  isRef(): this is OasRef<'schema'>;
107
+ traverse(path: SchemaPath): OasSchema | OasRef<'schema'>;
106
108
  resolve(): OasString<Nullable>;
107
109
  resolveOnce(): OasString<Nullable>;
108
110
  toJsonSchema(options?: ToJsonSchemaOptions): OpenAPIV3.NonArraySchemaObject;
@@ -1 +1 @@
1
- {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/oas/string/String.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/oas/string/String.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import "../../_dnt.polyfills.js";
2
+ import { traverseSchema } from '../schemaPath/traverseSchema.js';
2
3
  import { OasBase } from '../../types/OasBase.js';
3
4
  export class OasString extends OasBase {
4
5
  constructor(fields = {}, context) {
@@ -162,6 +163,9 @@ export class OasString extends OasBase {
162
163
  isRef() {
163
164
  return false;
164
165
  }
166
+ traverse(path) {
167
+ return traverseSchema(this, path);
168
+ }
165
169
  resolve() {
166
170
  return this;
167
171
  }
@@ -1,4 +1,6 @@
1
+ import type { SchemaPath } from '../../types/SchemaPath.js';
1
2
  import type { OasDiscriminator } from '../discriminator/Discriminator.js';
3
+ import type { OasExternalDocs } from '../externalDocs/ExternalDocs.js';
2
4
  import type { OasSchema } from '../schema/Schema.js';
3
5
  import type { OasRef } from '../ref/Ref.js';
4
6
  import type { ToJsonSchemaOptions } from '../schema/Schema.js';
@@ -13,6 +15,8 @@ export type UnionFields = {
13
15
  title?: string;
14
16
  /** A description of the union type */
15
17
  description?: string;
18
+ /** External documentation for the union type */
19
+ externalDocs?: OasExternalDocs | undefined;
16
20
  /** Whether the union value can be null */
17
21
  nullable?: boolean;
18
22
  /** Discriminator object for creating tagged unions */
@@ -156,6 +160,10 @@ export declare class OasUnion extends OasBase {
156
160
  * A description of the union.
157
161
  */
158
162
  description: string | undefined;
163
+ /**
164
+ * External documentation for the union.
165
+ */
166
+ externalDocs: OasExternalDocs | undefined;
159
167
  /**
160
168
  * Indicates whether value can be null.
161
169
  */
@@ -180,6 +188,7 @@ export declare class OasUnion extends OasBase {
180
188
  default?: unknown;
181
189
  constructor(fields: UnionFields, context?: ParseContextType);
182
190
  isRef(): this is OasRef<'schema'>;
191
+ traverse(path: SchemaPath): OasSchema | OasRef<'schema'>;
183
192
  resolve(): OasUnion;
184
193
  resolveOnce(): OasUnion;
185
194
  toJsonSchema(options: ToJsonSchemaOptions): OpenAPIV3.NonArraySchemaObject;
@@ -1 +1 @@
1
- {"version":3,"file":"Union.d.ts","sourceRoot":"","sources":["../../../src/oas/union/Union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sDAAsD;IACtD,OAAO,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IACzC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;;OAGG;IACH,OAAO,EAAG,QAAQ,CAAS;IAC3B;;OAEG;IACH,IAAI,EAAG,OAAO,CAAS;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B;;OAEG;IACH,aAAa,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC3C;;OAEG;IACH,OAAO,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IAEzC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;gBAEL,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAY3D,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;IAIjC,OAAO,IAAI,QAAQ;IAInB,WAAW,IAAI,QAAQ;IAIvB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,oBAAoB;CAU3E"}
1
+ {"version":3,"file":"Union.d.ts","sourceRoot":"","sources":["../../../src/oas/union/Union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,YAAY,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IAC1C,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sDAAsD;IACtD,OAAO,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IACzC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;;OAGG;IACH,OAAO,EAAG,QAAQ,CAAS;IAC3B;;OAEG;IACH,IAAI,EAAG,OAAO,CAAS;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;OAEG;IACH,YAAY,EAAE,eAAe,GAAG,SAAS,CAAA;IACzC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B;;OAEG;IACH,aAAa,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC3C;;OAEG;IACH,OAAO,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IAEzC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;gBAEL,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAa3D,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;IAIjC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAIxD,OAAO,IAAI,QAAQ;IAInB,WAAW,IAAI,QAAQ;IAIvB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,oBAAoB;CAU3E"}
@@ -1,3 +1,4 @@
1
+ import { traverseSchema } from '../schemaPath/traverseSchema.js';
1
2
  import { OasBase } from '../../types/OasBase.js';
2
3
  /**
3
4
  * Represents a union type schema in the OpenAPI Specification.
@@ -151,6 +152,15 @@ export class OasUnion extends OasBase {
151
152
  writable: true,
152
153
  value: void 0
153
154
  });
155
+ /**
156
+ * External documentation for the union.
157
+ */
158
+ Object.defineProperty(this, "externalDocs", {
159
+ enumerable: true,
160
+ configurable: true,
161
+ writable: true,
162
+ value: void 0
163
+ });
154
164
  /**
155
165
  * Indicates whether value can be null.
156
166
  */
@@ -205,6 +215,7 @@ export class OasUnion extends OasBase {
205
215
  });
206
216
  this.title = fields.title;
207
217
  this.description = fields.description;
218
+ this.externalDocs = fields.externalDocs;
208
219
  this.nullable = fields.nullable;
209
220
  this.discriminator = fields.discriminator;
210
221
  this.members = fields.members;
@@ -215,6 +226,9 @@ export class OasUnion extends OasBase {
215
226
  isRef() {
216
227
  return false;
217
228
  }
229
+ traverse(path) {
230
+ return traverseSchema(this, path);
231
+ }
218
232
  resolve() {
219
233
  return this;
220
234
  }
@@ -1,7 +1,8 @@
1
1
  import "../../_dnt.polyfills.js";
2
+ import type { SchemaPath } from '../../types/SchemaPath.js';
2
3
  import type { OpenAPIV3 } from 'openapi-types';
3
4
  import type { OasRef } from '../ref/Ref.js';
4
- import type { ToJsonSchemaOptions } from '../schema/Schema.js';
5
+ import type { OasSchema, ToJsonSchemaOptions } from '../schema/Schema.js';
5
6
  import { OasBase } from '../../types/OasBase.js';
6
7
  import type { ParseContextType } from '../../context/parseTypes.js';
7
8
  export type UnknownFields = {
@@ -44,6 +45,7 @@ export declare class OasUnknown extends OasBase {
44
45
  nullable: boolean | undefined;
45
46
  constructor(fields?: UnknownFields, context?: ParseContextType);
46
47
  isRef(): this is OasRef<'schema'>;
48
+ traverse(path: SchemaPath): OasSchema | OasRef<'schema'>;
47
49
  resolve(): OasUnknown;
48
50
  resolveOnce(): OasUnknown;
49
51
  toJsonSchema(_options?: ToJsonSchemaOptions): OpenAPIV3.NonArraySchemaObject | OpenAPIV3.ArraySchemaObject;
@@ -1 +1 @@
1
- {"version":3,"file":"Unknown.d.ts","sourceRoot":"","sources":["../../../src/oas/unknown/Unknown.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,OAAO;IACrC;;;OAGG;IACH,OAAO,EAAG,QAAQ,CAAS;IAC3B;;OAEG;IACH,IAAI,EAAG,SAAS,CAAS;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,sCAAsC;IACtC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;gBACjB,MAAM,GAAE,aAAkB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IASlE,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;IAIjC,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,UAAU;IAIzB,YAAY,CACV,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,SAAS,CAAC,oBAAoB,GAAG,SAAS,CAAC,iBAAiB;CAOhE"}
1
+ {"version":3,"file":"Unknown.d.ts","sourceRoot":"","sources":["../../../src/oas/unknown/Unknown.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,OAAO;IACrC;;;OAGG;IACH,OAAO,EAAG,QAAQ,CAAS;IAC3B;;OAEG;IACH,IAAI,EAAG,SAAS,CAAS;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,sCAAsC;IACtC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;gBACjB,MAAM,GAAE,aAAkB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IASlE,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;IAIjC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAIxD,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,UAAU;IAIzB,YAAY,CACV,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,SAAS,CAAC,oBAAoB,GAAG,SAAS,CAAC,iBAAiB;CAOhE"}
@@ -1,4 +1,5 @@
1
1
  import "../../_dnt.polyfills.js";
2
+ import { traverseSchema } from '../schemaPath/traverseSchema.js';
2
3
  import { OasBase } from '../../types/OasBase.js';
3
4
  /**
4
5
  * Object representing an unknown type in the OpenAPI Specification.
@@ -77,6 +78,9 @@ export class OasUnknown extends OasBase {
77
78
  isRef() {
78
79
  return false;
79
80
  }
81
+ traverse(path) {
82
+ return traverseSchema(this, path);
83
+ }
80
84
  resolve() {
81
85
  return this;
82
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA6C1E,CAAA"}
1
+ {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA2C1E,CAAA"}
@@ -1,7 +1,6 @@
1
1
  // Convert a schema object into an array of schemas that can be merged iteratively into a new schema
2
2
  export const decomposeUnion = ({ schema, groupType }) => {
3
3
  if (!schema[groupType]) {
4
- console.log('NO GROUP TYPE', JSON.stringify(schema, null, 2));
5
4
  return {
6
5
  beforeExcluded: {},
7
6
  decomposed: [schema],
@@ -38,15 +37,13 @@ export const decomposeUnion = ({ schema, groupType }) => {
38
37
  };
39
38
  return result;
40
39
  };
41
- // Kept on the union (via beforeExcluded/afterExcluded) rather than
42
- // cross-product-merged into each member. Two reasons a key lands here:
43
- // - Union-level metadata: merging it *into* a member resolves `$ref`
44
- // members (to merge the metadata in), losing their names — `toUnion`
45
- // already captures this metadata on the union itself.
46
- // - Non-distributable constraints (`not`): they have no per-member meaning
47
- // and `mergeSchemasOrRefs` cannot merge them, so distributing them throws
48
- // for every member and collapses the union to an empty array. TypeScript
49
- // can't model `not` anyway, so it rides the union wrapper, ignored.
40
+ // Union-level keys: kept on the union (via beforeExcluded/afterExcluded)
41
+ // rather than cross-product-merged into each member. Merging a metadata key
42
+ // *into* a member would resolve `$ref` members (to merge it in), losing their
43
+ // names — `toUnion` already captures these on the union itself.
44
+ // (`not` is deliberately NOT excluded here — it has no faithful TypeScript
45
+ // representation, so a schema using it is refused upstream in `toSchemaV3`
46
+ // rather than silently dropped from the union.)
50
47
  const excludedProperties = [
51
48
  'discriminator',
52
49
  'default',
@@ -57,8 +54,7 @@ const excludedProperties = [
57
54
  'examples',
58
55
  'readOnly',
59
56
  'writeOnly',
60
- 'deprecated',
61
- 'not'
57
+ 'deprecated'
62
58
  ];
63
59
  const exclude = (entries) => {
64
60
  return entries.reduce((acc, [key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAkC1B,CAAA"}
1
+ {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAyB1B,CAAA"}
@@ -42,14 +42,6 @@ export const mergeCrossProduct = ({ first, second, getRef, groupType }) => {
42
42
  }
43
43
  })
44
44
  .filter(item => item !== undefined);
45
- // Defensive floor: when both groups are non-empty the cross product is
46
- // non-empty, so an empty `mergedGroup` means every merge *failed* (an
47
- // unmergeable constraint in `secondGroup`). Keep the un-merged `firstGroup`
48
- // rather than collapsing to an empty union. A genuinely empty input union
49
- // (`anyOf: []` → empty group) is left empty so `toSchemasV3` still throws.
50
- if (mergedGroup.length === 0 && firstGroup.length > 0 && secondGroup.length > 0) {
51
- return { [groupType]: firstGroup };
52
- }
53
45
  return {
54
46
  [groupType]: mergedGroup.flatMap(item => {
55
47
  if (!isRef(item) && Array.isArray(item[groupType])) {
@@ -1 +1 @@
1
- {"version":3,"file":"toComponentsV3.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/components/toComponentsV3.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAIrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAA;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,qCAI5B,kBAAkB,KAAG,aAAa,GAAG,SAoDvC,CAAA"}
1
+ {"version":3,"file":"toComponentsV3.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/components/toComponentsV3.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAIrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAA;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,qCAI5B,kBAAkB,KAAG,aAAa,GAAG,SAsDvC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { toOptionalResponsesV3 } from '../response/toResponseV3.js';
2
2
  import { toHeadersV3 } from '../header/toHeadersV3.js';
3
+ import { toLinksV3 } from '../link/toLinksV3.js';
3
4
  import { toOptionalSchemasV3 } from '../schema/toSchemasV3.js';
4
5
  import { toOptionalParametersV3 } from '../parameter/toParameterV3.js';
5
6
  import { toExamplesV3 } from '../example/toExamplesV3.js';
@@ -11,7 +12,7 @@ export const toComponentsV3 = ({ components, stackTrail, context }) => {
11
12
  if (!components) {
12
13
  return undefined;
13
14
  }
14
- const { schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, ...skipped } = components;
15
+ const { schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, links, ...skipped } = components;
15
16
  const extensionFields = toSpecificationExtensionsV3({
16
17
  skipped,
17
18
  parent: components,
@@ -33,6 +34,7 @@ export const toComponentsV3 = ({ components, stackTrail, context }) => {
33
34
  requestBodies: stackTrail.trace('requestBodies', st => toRequestBodiesV3({ requestBodies, stackTrail: st, context })),
34
35
  headers: stackTrail.trace('headers', st => toHeadersV3({ headers, stackTrail: st, context })),
35
36
  securitySchemes: stackTrail.trace('securitySchemes', st => toSecuritySchemesV3({ securitySchemes, stackTrail: st, context })),
37
+ links: stackTrail.trace('links', st => toLinksV3({ links, stackTrail: st, context })),
36
38
  extensionFields
37
39
  };
38
40
  return new OasComponents(fields);