@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
@@ -1,81 +1,17 @@
1
1
  /**
2
- * Determines whether two file paths represent different locations (import required).
2
+ * Whether two workspace paths name different files, so a symbol from one
3
+ * must be imported into the other.
3
4
  *
4
- * This utility function normalizes two file paths and compares them to determine
5
- * if they represent different files. It's used throughout the SKMTC system to
6
- * decide when import statements are needed - if two paths are different, an
7
- * import is required to access symbols from one file in another.
5
+ * Both are canonicalized with {@link normalizeWorkspacePath}, so every
6
+ * spelling of one file compares equal: `@/`, `./`, the bare form, and
7
+ * Windows separators. Throws, as that does, for a path that cannot name a
8
+ * file below `basePath` (a `..` segment, a Windows drive path).
8
9
  *
9
- * The function handles path normalization to ensure consistent comparisons
10
- * across different operating systems and path formats (handling './' vs absolute
11
- * paths, different separators, etc.).
12
- *
13
- * @param pathOne - The first file path to compare
14
- * @param pathTwo - The second file path to compare
15
- * @returns `true` if the paths are different (import needed), `false` if they're the same file
16
- *
17
- * @example Basic path comparison
18
- * ```typescript
19
- * import { isImported } from '@skmtc/core';
20
- *
21
- * // Same file, no import needed
22
- * console.log(isImported('./src/user.ts', './src/user.ts')); // false
23
- *
24
- * // Different files, import needed
25
- * console.log(isImported('./src/user.ts', './src/product.ts')); // true
26
- * ```
27
- *
28
- * @example Path normalization handling
29
- * ```typescript
30
- * // These all represent the same file after normalization
31
- * console.log(isImported('./src/user.ts', 'src/user.ts')); // false
32
- * console.log(isImported('src/./user.ts', 'src/user.ts')); // false
33
- * console.log(isImported('src/models/../user.ts', 'src/user.ts')); // false
34
- * ```
35
- *
36
- * @example Usage in import decision logic
10
+ * @example
37
11
  * ```typescript
38
- * class FileGenerator {
39
- * addImportIfNeeded(
40
- * sourceFile: string,
41
- * targetFile: string,
42
- * importName: string
43
- * ) {
44
- * if (isImported(sourceFile, targetFile)) {
45
- * // Files are different, add import
46
- * this.addImport(sourceFile, targetFile, importName);
47
- * console.log(`Added import: ${importName} from ${targetFile}`);
48
- * } else {
49
- * // Same file, no import needed
50
- * console.log(`No import needed - same file: ${sourceFile}`);
51
- * }
52
- * }
53
- * }
54
- * ```
55
- *
56
- * @example Cross-platform path handling
57
- * ```typescript
58
- * // Works consistently across platforms
59
- * const windowsPath = 'src\\models\\user.ts';
60
- * const unixPath = 'src/models/user.ts';
61
- *
62
- * console.log(isImported(windowsPath, unixPath)); // false (same file)
63
- * ```
64
- *
65
- * @example In generator context
66
- * ```typescript
67
- * class ModelGenerator {
68
- * generateModel(modelPath: string, referencePath: string) {
69
- * const definition = this.createModelDefinition();
70
- *
71
- * if (isImported(modelPath, referencePath)) {
72
- * // Need to import the referenced model
73
- * definition.addImport(referencePath, 'ReferencedModel');
74
- * }
75
- *
76
- * return definition;
77
- * }
78
- * }
12
+ * isImported('@/src/user.ts', './src/user.ts') // false — one file
13
+ * isImported('src\\user.ts', 'src/user.ts') // false — one file
14
+ * isImported('@/src/user.ts', '@/src/product.ts') // true
79
15
  * ```
80
16
  */
81
17
  export declare const isImported: (pathOne: string, pathTwo: string) => boolean;
@@ -1,88 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isImported = void 0;
4
- const normalize_js_1 = require("../deps/jsr.io/@std/path/1.1.6/normalize.js");
4
+ const normalizeWorkspacePath_js_1 = require("./normalizeWorkspacePath.js");
5
5
  /**
6
- * Determines whether two file paths represent different locations (import required).
6
+ * Whether two workspace paths name different files, so a symbol from one
7
+ * must be imported into the other.
7
8
  *
8
- * This utility function normalizes two file paths and compares them to determine
9
- * if they represent different files. It's used throughout the SKMTC system to
10
- * decide when import statements are needed - if two paths are different, an
11
- * import is required to access symbols from one file in another.
9
+ * Both are canonicalized with {@link normalizeWorkspacePath}, so every
10
+ * spelling of one file compares equal: `@/`, `./`, the bare form, and
11
+ * Windows separators. Throws, as that does, for a path that cannot name a
12
+ * file below `basePath` (a `..` segment, a Windows drive path).
12
13
  *
13
- * The function handles path normalization to ensure consistent comparisons
14
- * across different operating systems and path formats (handling './' vs absolute
15
- * paths, different separators, etc.).
16
- *
17
- * @param pathOne - The first file path to compare
18
- * @param pathTwo - The second file path to compare
19
- * @returns `true` if the paths are different (import needed), `false` if they're the same file
20
- *
21
- * @example Basic path comparison
22
- * ```typescript
23
- * import { isImported } from '@skmtc/core';
24
- *
25
- * // Same file, no import needed
26
- * console.log(isImported('./src/user.ts', './src/user.ts')); // false
27
- *
28
- * // Different files, import needed
29
- * console.log(isImported('./src/user.ts', './src/product.ts')); // true
30
- * ```
31
- *
32
- * @example Path normalization handling
33
- * ```typescript
34
- * // These all represent the same file after normalization
35
- * console.log(isImported('./src/user.ts', 'src/user.ts')); // false
36
- * console.log(isImported('src/./user.ts', 'src/user.ts')); // false
37
- * console.log(isImported('src/models/../user.ts', 'src/user.ts')); // false
38
- * ```
39
- *
40
- * @example Usage in import decision logic
14
+ * @example
41
15
  * ```typescript
42
- * class FileGenerator {
43
- * addImportIfNeeded(
44
- * sourceFile: string,
45
- * targetFile: string,
46
- * importName: string
47
- * ) {
48
- * if (isImported(sourceFile, targetFile)) {
49
- * // Files are different, add import
50
- * this.addImport(sourceFile, targetFile, importName);
51
- * console.log(`Added import: ${importName} from ${targetFile}`);
52
- * } else {
53
- * // Same file, no import needed
54
- * console.log(`No import needed - same file: ${sourceFile}`);
55
- * }
56
- * }
57
- * }
58
- * ```
59
- *
60
- * @example Cross-platform path handling
61
- * ```typescript
62
- * // Works consistently across platforms
63
- * const windowsPath = 'src\\models\\user.ts';
64
- * const unixPath = 'src/models/user.ts';
65
- *
66
- * console.log(isImported(windowsPath, unixPath)); // false (same file)
67
- * ```
68
- *
69
- * @example In generator context
70
- * ```typescript
71
- * class ModelGenerator {
72
- * generateModel(modelPath: string, referencePath: string) {
73
- * const definition = this.createModelDefinition();
74
- *
75
- * if (isImported(modelPath, referencePath)) {
76
- * // Need to import the referenced model
77
- * definition.addImport(referencePath, 'ReferencedModel');
78
- * }
79
- *
80
- * return definition;
81
- * }
82
- * }
16
+ * isImported('@/src/user.ts', './src/user.ts') // false — one file
17
+ * isImported('src\\user.ts', 'src/user.ts') // false — one file
18
+ * isImported('@/src/user.ts', '@/src/product.ts') // true
83
19
  * ```
84
20
  */
85
21
  const isImported = (pathOne, pathTwo) => {
86
- return (0, normalize_js_1.normalize)(pathOne) !== (0, normalize_js_1.normalize)(pathTwo);
22
+ return (0, normalizeWorkspacePath_js_1.normalizeWorkspacePath)(pathOne) !== (0, normalizeWorkspacePath_js_1.normalizeWorkspacePath)(pathTwo);
87
23
  };
88
24
  exports.isImported = isImported;
@@ -4,7 +4,7 @@ import type { Method } from '../types/Method.js';
4
4
  * Determines the endpoint type based on HTTP method.
5
5
  *
6
6
  * @param operation - The OpenAPI operation to analyze
7
- * @returns 'query' for GET operations, 'mutation' for all others
7
+ * @returns 'query' for GET and QUERY operations, 'mutation' for all others
8
8
  *
9
9
  * @example
10
10
  * ```typescript
@@ -67,6 +67,7 @@ export declare const toArgsName: (operation: OasOperation) => string;
67
67
  * console.log(toMethodVerb('put')); // 'Update'
68
68
  * console.log(toMethodVerb('get')); // 'get'
69
69
  * console.log(toMethodVerb('delete')); // 'delete'
70
+ * console.log(toMethodVerb('query')); // 'Query'
70
71
  * ```
71
72
  */
72
73
  export declare const toMethodVerb: (method: Method) => string;
@@ -6,7 +6,7 @@ const strings_js_1 = require("./strings.js");
6
6
  * Determines the endpoint type based on HTTP method.
7
7
  *
8
8
  * @param operation - The OpenAPI operation to analyze
9
- * @returns 'query' for GET operations, 'mutation' for all others
9
+ * @returns 'query' for GET and QUERY operations, 'mutation' for all others
10
10
  *
11
11
  * @example
12
12
  * ```typescript
@@ -18,7 +18,8 @@ const strings_js_1 = require("./strings.js");
18
18
  * ```
19
19
  */
20
20
  const toEndpointType = (operation) => {
21
- return operation.method === 'get' ? 'query' : 'mutation';
21
+ // QUERY is safe and idempotent, like GET.
22
+ return operation.method === 'get' || operation.method === 'query' ? 'query' : 'mutation';
22
23
  };
23
24
  exports.toEndpointType = toEndpointType;
24
25
  /**
@@ -85,6 +86,7 @@ exports.toArgsName = toArgsName;
85
86
  * console.log(toMethodVerb('put')); // 'Update'
86
87
  * console.log(toMethodVerb('get')); // 'get'
87
88
  * console.log(toMethodVerb('delete')); // 'delete'
89
+ * console.log(toMethodVerb('query')); // 'Query'
88
90
  * ```
89
91
  */
90
92
  const toMethodVerb = (method) => {
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Options for {@link normalizeWorkspacePath} and {@link toNormalizedWorkspacePath}.
3
+ */
4
+ export type NormalizeWorkspacePathOptions = {
5
+ /** Names the generator in the error when the path is rejected. */
6
+ generatorId?: string;
7
+ };
8
+ /**
9
+ * Whether a path contains a `..` parent-reference segment. `..` is a parent
10
+ * reference only as a whole segment — a directory name that merely contains
11
+ * dots is not flagged.
12
+ */
13
+ export declare const hasParentSegment: (path: string) => boolean;
14
+ /**
15
+ * Whether a path is absolute on either host: a POSIX root, a Windows drive
16
+ * (`C:\`, `C:/`) or a UNC share. Checked on every host, so a client.json
17
+ * written on Windows is rejected the same way on Linux.
18
+ */
19
+ export declare const isAbsolutePath: (path: string) => boolean;
20
+ /**
21
+ * Whether `path` is spelled from the workspace root — `@/`, `./`, a bare
22
+ * leading `/`, or their Windows forms. An artifact path, never a bare
23
+ * module specifier such as `zod` or `@tanstack/query`.
24
+ */
25
+ export declare const hasWorkspaceAnchor: (path: string) => boolean;
26
+ /**
27
+ * Whether `path` can name a file below `basePath`: not a Windows drive or
28
+ * UNC path, no `..` segment, and not `basePath` itself. The non-throwing
29
+ * form of {@link normalizeWorkspacePath}'s checks, for schema validation
30
+ * and for comparing a module specifier against a file path.
31
+ */
32
+ export declare const isValidWorkspacePath: (path: string) => boolean;
33
+ /**
34
+ * The path relative to `basePath`, normalized and with no anchor:
35
+ * what {@link normalizeWorkspacePath} writes after `@/`, and what
36
+ * {@link toResolvedArtifactPath} joins onto `basePath`.
37
+ *
38
+ * Throws when the path cannot name a file below `basePath`: a Windows
39
+ * drive or UNC path, a `..` segment (checked as a whole segment before
40
+ * normalization, so it is never resolved), or a path naming `basePath`
41
+ * itself (`@/`, `@`, `./`, `.`, `/`, ``).
42
+ */
43
+ export declare const toNormalizedWorkspacePath: (path: string, { generatorId }?: NormalizeWorkspacePathOptions) => string;
44
+ /**
45
+ * The one spelling of a workspace path — an export path or a destination
46
+ * path: `@/` followed by a POSIX path relative to `basePath`.
47
+ *
48
+ * A workspace path is a logical path inside the workspace, never a
49
+ * filesystem path, so it reads the same on every host. A generator may
50
+ * return one as `@/types/User.ts`, `./types/User.ts`, `/types/User.ts`,
51
+ * `types/User.ts`, or with Windows separators; the engine stores this form
52
+ * and nothing else, so file-map keys, import modules and the ejected lookup
53
+ * always agree. The result is a fixed point.
54
+ *
55
+ * Throws in the cases {@link toNormalizedWorkspacePath} throws.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * normalizeWorkspacePath('@\\types\\User.ts') // '@/types/User.ts'
60
+ * normalizeWorkspacePath('./types/User.ts') // '@/types/User.ts'
61
+ * normalizeWorkspacePath('../User.ts') // throws
62
+ * ```
63
+ */
64
+ export declare const normalizeWorkspacePath: (path: string, options?: NormalizeWorkspacePathOptions) => string;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeWorkspacePath = exports.toNormalizedWorkspacePath = exports.isValidWorkspacePath = exports.hasWorkspaceAnchor = exports.isAbsolutePath = exports.hasParentSegment = void 0;
4
+ const normalize_js_1 = require("../deps/jsr.io/@std/path/1.1.6/posix/normalize.js");
5
+ const is_absolute_js_1 = require("../deps/jsr.io/@std/path/1.1.6/posix/is_absolute.js");
6
+ const is_absolute_js_2 = require("../deps/jsr.io/@std/path/1.1.6/windows/is_absolute.js");
7
+ const toWorkspacePath_js_1 = require("./toWorkspacePath.js");
8
+ /**
9
+ * Whether a path contains a `..` parent-reference segment. `..` is a parent
10
+ * reference only as a whole segment — a directory name that merely contains
11
+ * dots is not flagged.
12
+ */
13
+ const hasParentSegment = (path) => path.split(/[/\\]/).some(segment => segment === '..');
14
+ exports.hasParentSegment = hasParentSegment;
15
+ /**
16
+ * Whether a path is absolute on either host: a POSIX root, a Windows drive
17
+ * (`C:\`, `C:/`) or a UNC share. Checked on every host, so a client.json
18
+ * written on Windows is rejected the same way on Linux.
19
+ */
20
+ const isAbsolutePath = (path) => (0, is_absolute_js_1.isAbsolute)(path.replaceAll('\\', '/')) || (0, is_absolute_js_2.isAbsolute)(path);
21
+ exports.isAbsolutePath = isAbsolutePath;
22
+ /**
23
+ * A Windows drive path (`C:\`, `C:/`) or a UNC path (`\\server\share`):
24
+ * the two absolute forms that can never be relative to `basePath`. A bare
25
+ * leading `/` is not one — it is an anchor spelling of the workspace root.
26
+ */
27
+ const isDriveOrUncPath = (path) => /^[A-Za-z]:[\\/]/.test(path) || path.startsWith('\\\\');
28
+ /**
29
+ * Whether `path` is spelled from the workspace root — `@/`, `./`, a bare
30
+ * leading `/`, or their Windows forms. An artifact path, never a bare
31
+ * module specifier such as `zod` or `@tanstack/query`.
32
+ */
33
+ const hasWorkspaceAnchor = (path) => /^(@[\\/]|\.[\\/]|[\\/])/.test(path);
34
+ exports.hasWorkspaceAnchor = hasWorkspaceAnchor;
35
+ /**
36
+ * Whether `path` can name a file below `basePath`: not a Windows drive or
37
+ * UNC path, no `..` segment, and not `basePath` itself. The non-throwing
38
+ * form of {@link normalizeWorkspacePath}'s checks, for schema validation
39
+ * and for comparing a module specifier against a file path.
40
+ */
41
+ const isValidWorkspacePath = (path) => !isDriveOrUncPath(path) && !(0, exports.hasParentSegment)(path) && toBody(path) !== '';
42
+ exports.isValidWorkspacePath = isValidWorkspacePath;
43
+ /**
44
+ * The path relative to `basePath`, normalized and with no anchor:
45
+ * what {@link normalizeWorkspacePath} writes after `@/`, and what
46
+ * {@link toResolvedArtifactPath} joins onto `basePath`.
47
+ *
48
+ * Throws when the path cannot name a file below `basePath`: a Windows
49
+ * drive or UNC path, a `..` segment (checked as a whole segment before
50
+ * normalization, so it is never resolved), or a path naming `basePath`
51
+ * itself (`@/`, `@`, `./`, `.`, `/`, ``).
52
+ */
53
+ const toNormalizedWorkspacePath = (path, { generatorId } = {}) => {
54
+ const reject = (reason) => {
55
+ const source = generatorId ? ` returned by generator '${generatorId}'` : '';
56
+ throw new Error(`Path '${path}'${source} ${reason}`);
57
+ };
58
+ if (isDriveOrUncPath(path)) {
59
+ return reject('is a Windows drive or UNC path; a workspace path is relative to basePath');
60
+ }
61
+ if ((0, exports.hasParentSegment)(path)) {
62
+ return reject('contains a ".." segment; a workspace path is a forward path below basePath');
63
+ }
64
+ const body = toBody(path);
65
+ if (body === '') {
66
+ return reject('names basePath itself; a workspace path names a file below it');
67
+ }
68
+ return body;
69
+ };
70
+ exports.toNormalizedWorkspacePath = toNormalizedWorkspacePath;
71
+ /**
72
+ * The one spelling of a workspace path — an export path or a destination
73
+ * path: `@/` followed by a POSIX path relative to `basePath`.
74
+ *
75
+ * A workspace path is a logical path inside the workspace, never a
76
+ * filesystem path, so it reads the same on every host. A generator may
77
+ * return one as `@/types/User.ts`, `./types/User.ts`, `/types/User.ts`,
78
+ * `types/User.ts`, or with Windows separators; the engine stores this form
79
+ * and nothing else, so file-map keys, import modules and the ejected lookup
80
+ * always agree. The result is a fixed point.
81
+ *
82
+ * Throws in the cases {@link toNormalizedWorkspacePath} throws.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * normalizeWorkspacePath('@\\types\\User.ts') // '@/types/User.ts'
87
+ * normalizeWorkspacePath('./types/User.ts') // '@/types/User.ts'
88
+ * normalizeWorkspacePath('../User.ts') // throws
89
+ * ```
90
+ */
91
+ const normalizeWorkspacePath = (path, options = {}) => `@/${(0, exports.toNormalizedWorkspacePath)(path, options)}`;
92
+ exports.normalizeWorkspacePath = normalizeWorkspacePath;
93
+ /**
94
+ * Separator swap, then every anchor spelling goes (`@/`, `./`, a leading
95
+ * `/` — {@link toWorkspacePath}), then POSIX normalize of what is left so
96
+ * `@//x` and `@/./x` collapse. The anchor goes first so normalize can
97
+ * never fold it into a name (`@/.` is the root, not a file called `@`).
98
+ * The root in any spelling is the empty string.
99
+ */
100
+ const toBody = (path) => {
101
+ const stripped = (0, toWorkspacePath_js_1.toWorkspacePath)(path.replaceAll('\\', '/'));
102
+ if (stripped === '') {
103
+ return '';
104
+ }
105
+ const normalized = (0, normalize_js_1.normalize)(stripped);
106
+ return normalized === '.' ? '' : normalized;
107
+ };
@@ -2,9 +2,11 @@
2
2
  * Resolves an artifact's destination path onto `basePath`.
3
3
  *
4
4
  * `destinationPath` is a workspace path in any spelling
5
- * ({@link toWorkspacePath}) — `@/models/User.ts` as a generator wrote it,
6
- * or `./models/User.ts` — and is always joined onto `basePath`; there is no
7
- * absolute-path escape.
5
+ * ({@link toNormalizedWorkspacePath}) — `@/models/User.ts` as a generator
6
+ * wrote it, `./models/User.ts`, or with Windows separators — and is always
7
+ * joined onto `basePath` with forward slashes, so the artifact key reads
8
+ * the same on every host. A `..` segment or an absolute path is refused:
9
+ * every artifact lands below `basePath`, whoever writes it.
8
10
  *
9
11
  * @module toResolvedArtifactPath
10
12
  */
@@ -22,8 +24,9 @@ type ToResolvedArtifactPathArgs = {
22
24
  destinationPath: string;
23
25
  };
24
26
  /**
25
- * Joins `destinationPath` (canonicalized) onto `basePath`, or onto `./` when
26
- * `basePath` is undefined.
27
+ * Joins `destinationPath` (canonicalized) onto `basePath`, or onto the
28
+ * workspace root when `basePath` is undefined. Throws when
29
+ * `destinationPath` cannot name a file below `basePath`.
27
30
  *
28
31
  * @example
29
32
  * ```typescript
@@ -5,18 +5,22 @@ exports.toResolvedArtifactPath = void 0;
5
5
  * Resolves an artifact's destination path onto `basePath`.
6
6
  *
7
7
  * `destinationPath` is a workspace path in any spelling
8
- * ({@link toWorkspacePath}) — `@/models/User.ts` as a generator wrote it,
9
- * or `./models/User.ts` — and is always joined onto `basePath`; there is no
10
- * absolute-path escape.
8
+ * ({@link toNormalizedWorkspacePath}) — `@/models/User.ts` as a generator
9
+ * wrote it, `./models/User.ts`, or with Windows separators — and is always
10
+ * joined onto `basePath` with forward slashes, so the artifact key reads
11
+ * the same on every host. A `..` segment or an absolute path is refused:
12
+ * every artifact lands below `basePath`, whoever writes it.
11
13
  *
12
14
  * @module toResolvedArtifactPath
13
15
  */
14
16
  require("../_dnt.polyfills.js");
15
- const join_js_1 = require("../deps/jsr.io/@std/path/1.1.6/join.js");
17
+ const join_js_1 = require("../deps/jsr.io/@std/path/1.1.6/posix/join.js");
18
+ const normalizeWorkspacePath_js_1 = require("./normalizeWorkspacePath.js");
16
19
  const toWorkspacePath_js_1 = require("./toWorkspacePath.js");
17
20
  /**
18
- * Joins `destinationPath` (canonicalized) onto `basePath`, or onto `./` when
19
- * `basePath` is undefined.
21
+ * Joins `destinationPath` (canonicalized) onto `basePath`, or onto the
22
+ * workspace root when `basePath` is undefined. Throws when
23
+ * `destinationPath` cannot name a file below `basePath`.
20
24
  *
21
25
  * @example
22
26
  * ```typescript
@@ -27,6 +31,6 @@ const toWorkspacePath_js_1 = require("./toWorkspacePath.js");
27
31
  * ```
28
32
  */
29
33
  const toResolvedArtifactPath = ({ basePath, destinationPath }) => {
30
- return (0, join_js_1.join)(basePath ?? './', (0, toWorkspacePath_js_1.toWorkspacePath)(destinationPath));
34
+ return (0, join_js_1.join)((0, toWorkspacePath_js_1.toWorkspacePath)(basePath ?? ''), (0, normalizeWorkspacePath_js_1.toNormalizedWorkspacePath)(destinationPath));
31
35
  };
32
36
  exports.toResolvedArtifactPath = toResolvedArtifactPath;
@@ -7,9 +7,9 @@
7
7
  * config and examples write it as `./`, and std `normalize` — applied to
8
8
  * `File.path` by the drivers — strips `./` but leaves `@/` alone. Anything
9
9
  * that compares paths from more than one of those sources (package matching,
10
- * on-disk resolution) must see all spellings as equal: every leading `@/` or
11
- * `./` goes, a trailing `/` goes, a Windows `\` is a `/`, and the workspace
12
- * root itself (`@/`, `./`, `.`, ``) is the empty string. The result is a fixed
10
+ * on-disk resolution) must see all spellings as equal: every leading `@/`,
11
+ * `./` or bare `/` goes, a trailing `/` goes, a Windows `\` is a `/`, and the
12
+ * workspace root itself (`@/`, `@`, `./`, `.`, `/`, ``) is the empty string. The result is a fixed
13
13
  * point: canonicalizing it again changes nothing.
14
14
  *
15
15
  * The `@/` stripped here is Skmtc's **workspace root** — the prefix
@@ -10,9 +10,9 @@ exports.isUnderRoot = exports.toWorkspacePath = void 0;
10
10
  * config and examples write it as `./`, and std `normalize` — applied to
11
11
  * `File.path` by the drivers — strips `./` but leaves `@/` alone. Anything
12
12
  * that compares paths from more than one of those sources (package matching,
13
- * on-disk resolution) must see all spellings as equal: every leading `@/` or
14
- * `./` goes, a trailing `/` goes, a Windows `\` is a `/`, and the workspace
15
- * root itself (`@/`, `./`, `.`, ``) is the empty string. The result is a fixed
13
+ * on-disk resolution) must see all spellings as equal: every leading `@/`,
14
+ * `./` or bare `/` goes, a trailing `/` goes, a Windows `\` is a `/`, and the
15
+ * workspace root itself (`@/`, `@`, `./`, `.`, `/`, ``) is the empty string. The result is a fixed
16
16
  * point: canonicalizing it again changes nothing.
17
17
  *
18
18
  * The `@/` stripped here is Skmtc's **workspace root** — the prefix
@@ -32,9 +32,9 @@ exports.isUnderRoot = exports.toWorkspacePath = void 0;
32
32
  const toWorkspacePath = (path) => {
33
33
  const withoutAnchor = path
34
34
  .replaceAll('\\', '/')
35
- .replace(/^(?:@\/|\.\/)+/, '')
35
+ .replace(/^(?:@\/|\.\/|\/)+/, '')
36
36
  .replace(/\/+$/, '');
37
- return withoutAnchor === '.' ? '' : withoutAnchor;
37
+ return withoutAnchor === '.' || withoutAnchor === '@' ? '' : withoutAnchor;
38
38
  };
39
39
  exports.toWorkspacePath = toWorkspacePath;
40
40
  /**
package/script/mod.d.ts CHANGED
@@ -118,6 +118,7 @@ export * from './helpers/strings.js';
118
118
  export * from './helpers/parseModuleName.js';
119
119
  export * from './helpers/toResolvedArtifactPath.js';
120
120
  export * from './helpers/toWorkspacePath.js';
121
+ export * from './helpers/normalizeWorkspacePath.js';
121
122
  export * from './helpers/matchPackage.js';
122
123
  export * from './helpers/withVariant.js';
123
124
  export * from './helpers/toVariantList.js';
package/script/mod.js CHANGED
@@ -134,6 +134,7 @@ __exportStar(require("./helpers/strings.js"), exports);
134
134
  __exportStar(require("./helpers/parseModuleName.js"), exports);
135
135
  __exportStar(require("./helpers/toResolvedArtifactPath.js"), exports);
136
136
  __exportStar(require("./helpers/toWorkspacePath.js"), exports);
137
+ __exportStar(require("./helpers/normalizeWorkspacePath.js"), exports);
137
138
  __exportStar(require("./helpers/matchPackage.js"), exports);
138
139
  __exportStar(require("./helpers/withVariant.js"), exports);
139
140
  __exportStar(require("./helpers/toVariantList.js"), exports);
@@ -2,10 +2,13 @@ import "../../_dnt.polyfills.js";
2
2
  export type DiscriminatorFields = {
3
3
  propertyName: string;
4
4
  mapping?: Record<string, string>;
5
+ /** Schema to use when the discriminating value has no mapping entry (OpenAPI 3.2) */
6
+ defaultMapping?: string;
5
7
  };
6
8
  export declare class OasDiscriminator {
7
9
  oasType: 'discriminator';
8
10
  propertyName: string;
9
11
  mapping?: Record<string, string>;
12
+ defaultMapping?: string;
10
13
  constructor(fields: DiscriminatorFields);
11
14
  }
@@ -22,8 +22,15 @@ class OasDiscriminator {
22
22
  writable: true,
23
23
  value: void 0
24
24
  });
25
+ Object.defineProperty(this, "defaultMapping", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
25
31
  this.propertyName = fields.propertyName;
26
32
  this.mapping = fields.mapping;
33
+ this.defaultMapping = fields.defaultMapping;
27
34
  }
28
35
  }
29
36
  exports.OasDiscriminator = OasDiscriminator;
@@ -20,6 +20,11 @@ import type { OasExternalDocs } from '../externalDocs/ExternalDocs.js';
20
20
  export type DocumentFields = {
21
21
  /** OpenAPI specification version (e.g., '3.0.0', '3.1.0') */
22
22
  openapi: string;
23
+ /**
24
+ * The document's own URI (OpenAPI 3.2 `$self`). Stored only: reference
25
+ * resolution does not use it.
26
+ */
27
+ $self?: string | undefined;
23
28
  /** API metadata including title, version, description */
24
29
  info: OasInfo;
25
30
  /** Array of server objects providing connectivity information */
@@ -215,6 +220,8 @@ export declare class OasDocument {
215
220
  set fields(fields: DocumentFields);
216
221
  /** OpenAPI specification version */
217
222
  get openapi(): string;
223
+ /** The document's own URI (OpenAPI 3.2 `$self`) */
224
+ get $self(): string | undefined;
218
225
  /** API metadata */
219
226
  get info(): OasInfo;
220
227
  get servers(): OasServer[] | undefined;
@@ -228,6 +228,13 @@ class OasDocument {
228
228
  }
229
229
  return __classPrivateFieldGet(this, _OasDocument_fields, "f").openapi;
230
230
  }
231
+ /** The document's own URI (OpenAPI 3.2 `$self`) */
232
+ get $self() {
233
+ if (!__classPrivateFieldGet(this, _OasDocument_fields, "f")) {
234
+ throw new Error(`Accessing '$self' before fields are set`);
235
+ }
236
+ return __classPrivateFieldGet(this, _OasDocument_fields, "f").$self;
237
+ }
231
238
  /** API metadata */
232
239
  get info() {
233
240
  if (!__classPrivateFieldGet(this, _OasDocument_fields, "f")) {
@@ -314,6 +321,7 @@ class OasDocument {
314
321
  toJSON() {
315
322
  return {
316
323
  openapi: this.openapi,
324
+ ...(this.$self !== undefined ? { $self: this.$self } : {}),
317
325
  info: this.info,
318
326
  servers: this.servers,
319
327
  operations: this.operations,
@@ -11,6 +11,10 @@ export type ExampleFields = {
11
11
  description?: string;
12
12
  /** The example value — absent when the example is given as an `externalValue` */
13
13
  value?: unknown;
14
+ /** The example as data that is valid against its schema (OpenAPI 3.2) */
15
+ dataValue?: unknown;
16
+ /** The example in its serialized form (OpenAPI 3.2) */
17
+ serializedValue?: string;
14
18
  /** The external value of the example */
15
19
  externalValue?: string;
16
20
  /** Custom extension fields (x-* properties) */
@@ -23,6 +27,8 @@ export declare class OasExample {
23
27
  summary?: string;
24
28
  description?: string;
25
29
  value?: unknown;
30
+ dataValue?: unknown;
31
+ serializedValue?: string;
26
32
  externalValue?: string;
27
33
  extensionFields?: Record<string, unknown>;
28
34
  constructor(fields: ExampleFields);
@@ -31,5 +37,8 @@ export declare class OasExample {
31
37
  /** Returns itself */
32
38
  resolve(): OasExample;
33
39
  resolveOnce(): OasExample;
34
- toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ExampleObject;
40
+ toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ExampleObject & {
41
+ dataValue?: unknown;
42
+ serializedValue?: string;
43
+ };
35
44
  }