ts-openapi-codegen 2.0.0-beta.8 → 2.0.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 (370) hide show
  1. package/README.md +88 -18
  2. package/README.rus.md +88 -21
  3. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
  4. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  5. package/dist/cli/checkAndUpdateConfig/checkConfig.js +14 -6
  6. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
  7. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  8. package/dist/cli/checkAndUpdateConfig/updateConfig.js +13 -5
  9. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  10. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +5 -0
  11. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  12. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -13
  13. package/dist/cli/index.js +10 -8
  14. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  15. package/dist/cli/initOpenApiConfig/init.js +5 -13
  16. package/dist/cli/initOpenApiConfig/initConfig.js +3 -3
  17. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  18. package/dist/cli/previewChanges/previewChanges.js +119 -28
  19. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  20. package/dist/cli/previewChanges/utils/updateOutputPaths.js +6 -0
  21. package/dist/cli/schemas/base.d.ts +6 -1
  22. package/dist/cli/schemas/base.d.ts.map +1 -1
  23. package/dist/cli/schemas/base.js +10 -6
  24. package/dist/cli/schemas/checkConfig.d.ts +1 -1
  25. package/dist/cli/schemas/generate.d.ts +1 -25
  26. package/dist/cli/schemas/generate.d.ts.map +1 -1
  27. package/dist/cli/schemas/generate.js +21 -32
  28. package/dist/cli/schemas/index.d.ts +2 -1
  29. package/dist/cli/schemas/index.d.ts.map +1 -1
  30. package/dist/cli/schemas/index.js +1 -0
  31. package/dist/cli/schemas/init.d.ts +5 -5
  32. package/dist/cli/schemas/init.d.ts.map +1 -1
  33. package/dist/cli/schemas/init.js +4 -5
  34. package/dist/cli/schemas/previewChanges.d.ts +9 -0
  35. package/dist/cli/schemas/previewChanges.d.ts.map +1 -0
  36. package/dist/cli/schemas/previewChanges.js +11 -0
  37. package/dist/cli/schemas/updateConfig.d.ts +1 -1
  38. package/dist/common/Consts.d.ts +2 -0
  39. package/dist/common/Consts.d.ts.map +1 -1
  40. package/dist/common/Consts.js +8 -2
  41. package/dist/common/LoggerMessages.d.ts +1 -0
  42. package/dist/common/LoggerMessages.d.ts.map +1 -1
  43. package/dist/common/LoggerMessages.js +2 -1
  44. package/dist/common/TRawOptions.d.ts +1 -1
  45. package/dist/common/TRawOptions.d.ts.map +1 -1
  46. package/dist/common/Validation/formatZodError.d.ts +10 -0
  47. package/dist/common/Validation/formatZodError.d.ts.map +1 -0
  48. package/dist/{cli/validation/errorFormatter.js → common/Validation/formatZodError.js} +14 -13
  49. package/dist/common/Validation/index.d.ts +3 -0
  50. package/dist/common/Validation/index.d.ts.map +1 -0
  51. package/dist/{cli/validation → common/Validation}/index.js +2 -2
  52. package/dist/{cli/validation/validateCLIOptions.d.ts → common/Validation/validateZodOptions.d.ts} +4 -4
  53. package/dist/common/Validation/validateZodOptions.d.ts.map +1 -0
  54. package/dist/{cli/validation/validateCLIOptions.js → common/Validation/validateZodOptions.js} +7 -10
  55. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts +1 -1
  56. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  57. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +14 -4
  58. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts +6 -1
  59. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  60. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +8 -14
  61. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +28 -0
  62. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -0
  63. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +25 -0
  64. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +36 -6
  65. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  66. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +33 -37
  67. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +37 -6
  68. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  69. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +30 -37
  70. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +40 -0
  71. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -0
  72. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.js +36 -0
  73. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +42 -0
  74. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -0
  75. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +38 -0
  76. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +192 -0
  77. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -0
  78. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +27 -0
  79. package/dist/common/VersionedSchema/CommonSchemas.d.ts +61 -30
  80. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  81. package/dist/common/VersionedSchema/CommonSchemas.js +56 -73
  82. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +25 -5
  83. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
  84. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.js +34 -17
  85. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +25 -5
  86. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
  87. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +28 -19
  88. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +25 -1
  89. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  90. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +29 -2
  91. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +25 -5
  92. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
  93. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +30 -14
  94. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +23 -5
  95. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  96. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.js +33 -18
  97. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts +3 -2
  98. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts.map +1 -1
  99. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.js +18 -11
  100. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +22 -5
  101. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  102. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.js +30 -12
  103. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +22 -5
  104. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
  105. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.js +27 -13
  106. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +22 -1
  107. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
  108. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +28 -2
  109. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +22 -5
  110. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
  111. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.js +31 -12
  112. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts +3 -2
  113. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts.map +1 -1
  114. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.js +15 -9
  115. package/dist/common/VersionedSchema/Types.d.ts +5 -5
  116. package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
  117. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts +16 -0
  118. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -0
  119. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +104 -0
  120. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts +2 -0
  121. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts.map +1 -0
  122. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +185 -0
  123. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts +2 -0
  124. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts.map +1 -0
  125. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +40 -0
  126. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts +2 -0
  127. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts.map +1 -0
  128. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +93 -0
  129. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts +12 -0
  130. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -0
  131. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.js +13 -0
  132. package/dist/common/VersionedSchema/Utils/compareShapes.d.ts +16 -0
  133. package/dist/common/VersionedSchema/Utils/compareShapes.d.ts.map +1 -0
  134. package/dist/common/VersionedSchema/Utils/compareShapes.js +30 -0
  135. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +6 -1
  136. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  137. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +70 -25
  138. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +2 -2
  139. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -1
  140. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +15 -7
  141. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +3 -3
  142. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts.map +1 -1
  143. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +17 -4
  144. package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.d.ts.map +1 -1
  145. package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.js +19 -2
  146. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +12 -1
  147. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  148. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +41 -22
  149. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +4 -0
  150. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -0
  151. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.js +43 -0
  152. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +4 -0
  153. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +1 -0
  154. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +21 -0
  155. package/dist/common/utils/__tests__/convertArrayToObject.test.js +64 -169
  156. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  157. package/dist/common/utils/convertArrayToObject.js +51 -14
  158. package/dist/core/Context.d.ts +6 -5
  159. package/dist/core/Context.d.ts.map +1 -1
  160. package/dist/core/Context.js +69 -26
  161. package/dist/core/OpenApiClient.d.ts.map +1 -1
  162. package/dist/core/OpenApiClient.js +24 -9
  163. package/dist/core/WriteClient.d.ts +8 -1
  164. package/dist/core/WriteClient.d.ts.map +1 -1
  165. package/dist/core/WriteClient.js +48 -7
  166. package/dist/core/__tests__/WriteClient.test.js +2 -0
  167. package/dist/core/api/v2/Parser.d.ts +1 -1
  168. package/dist/core/api/v2/Parser.d.ts.map +1 -1
  169. package/dist/core/api/v2/Parser.js +2 -2
  170. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  171. package/dist/core/api/v2/parser/getModel.js +2 -5
  172. package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
  173. package/dist/core/api/v2/parser/getModelProperties.js +1 -3
  174. package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
  175. package/dist/core/api/v2/parser/getModels.js +1 -2
  176. package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
  177. package/dist/core/api/v2/parser/getOperationParameter.js +2 -5
  178. package/dist/core/api/v2/parser/getOperationParameters.js +1 -1
  179. package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
  180. package/dist/core/api/v2/parser/getOperationResponse.js +1 -3
  181. package/dist/core/api/v2/parser/getOperationResponses.js +1 -1
  182. package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
  183. package/dist/core/api/v2/parser/getServices.js +4 -3
  184. package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
  185. package/dist/core/api/v2/parser/getType.js +4 -3
  186. package/dist/core/api/v3/Parser.d.ts +1 -1
  187. package/dist/core/api/v3/Parser.d.ts.map +1 -1
  188. package/dist/core/api/v3/Parser.js +2 -2
  189. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  190. package/dist/core/api/v3/parser/getModel.js +2 -5
  191. package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
  192. package/dist/core/api/v3/parser/getModelProperties.js +1 -3
  193. package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
  194. package/dist/core/api/v3/parser/getModels.js +1 -2
  195. package/dist/core/api/v3/parser/getOperation.js +1 -1
  196. package/dist/core/api/v3/parser/getOperationParameter.d.ts.map +1 -1
  197. package/dist/core/api/v3/parser/getOperationParameter.js +2 -5
  198. package/dist/core/api/v3/parser/getOperationParameters.js +1 -1
  199. package/dist/core/api/v3/parser/getOperationRequestBody.d.ts.map +1 -1
  200. package/dist/core/api/v3/parser/getOperationRequestBody.js +1 -3
  201. package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
  202. package/dist/core/api/v3/parser/getOperationResponse.js +1 -3
  203. package/dist/core/api/v3/parser/getOperationResponses.js +1 -1
  204. package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
  205. package/dist/core/api/v3/parser/getServices.js +4 -3
  206. package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
  207. package/dist/core/api/v3/parser/getType.js +4 -3
  208. package/dist/core/index.d.ts.map +1 -1
  209. package/dist/core/index.js +2 -0
  210. package/dist/core/types/base/Templates.model.d.ts +1 -1
  211. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  212. package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts +6 -0
  213. package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts.map +1 -0
  214. package/dist/core/types/enums/EmptySchemaStrategy.enum.js +9 -0
  215. package/dist/core/utils/__tests__/getRelativeModelPath.test.js +9 -3
  216. package/dist/core/utils/__tests__/isSubdirectory.test.js +2 -2
  217. package/dist/core/utils/__tests__/modelHelpers.test.d.ts +2 -0
  218. package/dist/core/utils/__tests__/modelHelpers.test.d.ts.map +1 -0
  219. package/dist/core/utils/__tests__/modelHelpers.test.js +151 -0
  220. package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts +2 -0
  221. package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts.map +1 -0
  222. package/dist/core/utils/__tests__/postProcessModelImports.test.js +67 -0
  223. package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts +2 -0
  224. package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts.map +1 -0
  225. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +26 -0
  226. package/dist/core/utils/__tests__/resolveRefPath.test.d.ts +2 -0
  227. package/dist/core/utils/__tests__/resolveRefPath.test.d.ts.map +1 -0
  228. package/dist/core/utils/__tests__/resolveRefPath.test.js +22 -0
  229. package/dist/core/utils/__tests__/serviceHelpers.test.d.ts +2 -0
  230. package/dist/core/utils/__tests__/serviceHelpers.test.d.ts.map +1 -0
  231. package/dist/core/utils/__tests__/serviceHelpers.test.js +121 -0
  232. package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts +2 -0
  233. package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts.map +1 -0
  234. package/dist/core/utils/__tests__/writeClientExecutor.test.js +20 -0
  235. package/dist/core/utils/__tests__/writeClientSchemas.test.js +2 -0
  236. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  237. package/dist/core/utils/getOpenApiSpec.js +14 -1
  238. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  239. package/dist/core/utils/modelHelpers.js +37 -3
  240. package/dist/core/utils/postProcessModelImports.d.ts.map +1 -1
  241. package/dist/core/utils/postProcessModelImports.js +14 -1
  242. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  243. package/dist/core/utils/postProcessServiceImports.js +1 -2
  244. package/dist/core/utils/precompileTemplates.js +1 -0
  245. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  246. package/dist/core/utils/registerHandlebarHelpers.js +25 -0
  247. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  248. package/dist/core/utils/registerHandlebarTemplates.js +42 -41
  249. package/dist/core/utils/resolveRefPath.d.ts.map +1 -1
  250. package/dist/core/utils/resolveRefPath.js +1 -4
  251. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  252. package/dist/core/utils/serviceHelpers.js +32 -6
  253. package/dist/core/utils/validateRawOptions.d.ts +3 -0
  254. package/dist/core/utils/validateRawOptions.d.ts.map +1 -0
  255. package/dist/core/utils/validateRawOptions.js +15 -0
  256. package/dist/core/utils/writeClientExecutor.d.ts +4 -1
  257. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  258. package/dist/core/utils/writeClientExecutor.js +17 -2
  259. package/dist/core/utils/writeClientSchemas.d.ts +4 -1
  260. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  261. package/dist/core/utils/writeClientSchemas.js +11 -2
  262. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  263. package/dist/templatesCompiled/client/core/ApiResult.js +1 -1
  264. package/dist/templatesCompiled/client/core/axios/request.js +3 -3
  265. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +2 -0
  266. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  267. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +13 -8
  268. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +1 -1
  269. package/dist/templatesCompiled/client/core/fetch/request.js +3 -3
  270. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  271. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  272. package/dist/templatesCompiled/client/core/node/request.js +3 -3
  273. package/dist/templatesCompiled/client/core/xhr/request.js +3 -3
  274. package/dist/templatesCompiled/client/exportClient.d.ts +4 -0
  275. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  276. package/dist/templatesCompiled/client/exportClient.js +51 -13
  277. package/dist/templatesCompiled/client/exportSchema.d.ts +5 -1
  278. package/dist/templatesCompiled/client/exportSchema.d.ts.map +1 -1
  279. package/dist/templatesCompiled/client/exportSchema.js +37 -7
  280. package/dist/templatesCompiled/client/exportService.d.ts +2 -0
  281. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  282. package/dist/templatesCompiled/client/exportService.js +71 -31
  283. package/dist/templatesCompiled/client/indexFull.d.ts +1 -0
  284. package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
  285. package/dist/templatesCompiled/client/indexFull.js +4 -1
  286. package/dist/templatesCompiled/client/indexSimple.d.ts +1 -0
  287. package/dist/templatesCompiled/client/indexSimple.d.ts.map +1 -1
  288. package/dist/templatesCompiled/client/indexSimple.js +4 -1
  289. package/dist/templatesCompiled/client/joi/exportSchema.js +5 -5
  290. package/dist/templatesCompiled/client/joi/partials/joiSchema.js +7 -7
  291. package/dist/templatesCompiled/client/joi/partials/joiSchemaComposition.js +4 -4
  292. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts +5 -3
  293. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts.map +1 -1
  294. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.js +39 -12
  295. package/dist/templatesCompiled/client/jsonschema/exportSchema.js +5 -5
  296. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchema.js +7 -7
  297. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaArray.js +5 -5
  298. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaComposition.js +2 -2
  299. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaDictionary.js +5 -5
  300. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts +3 -1
  301. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts.map +1 -1
  302. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.js +45 -15
  303. package/dist/templatesCompiled/client/partials/exportComposition.d.ts +2 -0
  304. package/dist/templatesCompiled/client/partials/exportComposition.d.ts.map +1 -1
  305. package/dist/templatesCompiled/client/partials/exportComposition.js +17 -9
  306. package/dist/templatesCompiled/client/yup/exportSchema.js +3 -3
  307. package/dist/templatesCompiled/client/yup/partials/yupSchema.js +7 -7
  308. package/dist/templatesCompiled/client/yup/partials/yupSchemaComposition.js +4 -4
  309. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts +5 -3
  310. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts.map +1 -1
  311. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.js +39 -12
  312. package/dist/templatesCompiled/client/zod/exportSchema.js +3 -3
  313. package/dist/templatesCompiled/client/zod/partials/zodSchema.js +7 -7
  314. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts +5 -6
  315. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts.map +1 -1
  316. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.js +14 -28
  317. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts +3 -0
  318. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts.map +1 -1
  319. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.js +32 -8
  320. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts +3 -4
  321. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts.map +1 -1
  322. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.js +9 -23
  323. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts +4 -2
  324. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts.map +1 -1
  325. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.js +18 -7
  326. package/package.json +2 -2
  327. package/dist/cli/validation/errorFormatter.d.ts +0 -6
  328. package/dist/cli/validation/errorFormatter.d.ts.map +0 -1
  329. package/dist/cli/validation/index.d.ts +0 -3
  330. package/dist/cli/validation/index.d.ts.map +0 -1
  331. package/dist/cli/validation/validateCLIOptions.d.ts.map +0 -1
  332. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts +0 -6
  333. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts.map +0 -1
  334. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.js +0 -7
  335. package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts +0 -6
  336. package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts.map +0 -1
  337. package/dist/common/VersionedSchema/Utils/joiHandlers.js +0 -59
  338. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts +0 -3
  339. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts.map +0 -1
  340. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.js +0 -12
  341. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts +0 -3
  342. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts.map +0 -1
  343. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.js +0 -31
  344. package/dist/common/defaultOptions.d.ts +0 -3
  345. package/dist/common/defaultOptions.d.ts.map +0 -1
  346. package/dist/common/defaultOptions.js +0 -28
  347. package/dist/common/schemas/configSchemas.d.ts +0 -91
  348. package/dist/common/schemas/configSchemas.d.ts.map +0 -1
  349. package/dist/common/schemas/configSchemas.js +0 -131
  350. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts +0 -19
  351. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
  352. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.js +0 -14
  353. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts +0 -2
  354. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
  355. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.js +0 -38
  356. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts +0 -2
  357. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
  358. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.js +0 -20
  359. package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts +0 -2
  360. package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
  361. package/dist/common/utils/__tests__/mergeObjectSchemas.test.js +0 -35
  362. package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts +0 -2
  363. package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
  364. package/dist/common/utils/__tests__/migrationForMultiOptions.test.js +0 -112
  365. package/dist/common/utils/__tests__/migrationForOptions.test.d.ts +0 -2
  366. package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +0 -1
  367. package/dist/common/utils/__tests__/migrationForOptions.test.js +0 -56
  368. package/dist/core/utils/advancedDeduplicatePath.d.ts +0 -5
  369. package/dist/core/utils/advancedDeduplicatePath.d.ts.map +0 -1
  370. package/dist/core/utils/advancedDeduplicatePath.js +0 -29
@@ -7,67 +7,71 @@ const node_assert_1 = __importDefault(require("node:assert"));
7
7
  const node_test_1 = require("node:test");
8
8
  const convertArrayToObject_1 = require("../convertArrayToObject");
9
9
  (0, node_test_1.describe)('@unit: convertArrayToObject', () => {
10
- (0, node_test_1.test)('Empty array', () => {
11
- const input = [];
12
- const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
13
- const expected = {
10
+ (0, node_test_1.test)('returns default shape for null', () => {
11
+ const result = (0, convertArrayToObject_1.convertArrayToObject)(null);
12
+ node_assert_1.default.deepStrictEqual(result, {
14
13
  items: [],
15
14
  excludeCoreServiceFiles: undefined,
16
15
  request: undefined,
16
+ customExecutorPath: undefined,
17
17
  useOptions: undefined,
18
18
  useCancelableRequest: undefined,
19
- };
20
- node_assert_1.default.deepStrictEqual(result, expected);
19
+ });
20
+ });
21
+ (0, node_test_1.test)('returns default shape for empty array', () => {
22
+ const result = (0, convertArrayToObject_1.convertArrayToObject)([]);
23
+ node_assert_1.default.deepStrictEqual(result, {
24
+ items: [],
25
+ excludeCoreServiceFiles: undefined,
26
+ request: undefined,
27
+ customExecutorPath: undefined,
28
+ useOptions: undefined,
29
+ useCancelableRequest: undefined,
30
+ });
31
+ });
32
+ (0, node_test_1.test)('passes through object config unchanged', () => {
33
+ const input = { input: './spec.json', output: './generated', httpClient: 'axios' };
34
+ const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
35
+ node_assert_1.default.strictEqual(result, input);
21
36
  });
22
- (0, node_test_1.test)('An array with one element', () => {
37
+ (0, node_test_1.test)('converts legacy array and keeps per-item request/customExecutorPath', () => {
23
38
  const input = [
24
39
  {
25
40
  input: 'url1',
26
41
  output: 'res1',
27
- exportCore: true,
28
42
  request: 'req1',
43
+ customExecutorPath: 'exec-1',
44
+ httpClient: 'axios',
45
+ useOptions: true,
46
+ },
47
+ {
48
+ input: 'url2',
49
+ output: 'res2',
50
+ request: 'req2',
51
+ customExecutorPath: 'exec-2',
52
+ httpClient: 'axios',
29
53
  useOptions: true,
30
54
  },
31
55
  ];
32
- const expected = {
33
- enumPrefix: undefined,
56
+ const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
57
+ node_assert_1.default.deepStrictEqual(result, {
58
+ httpClient: 'axios',
59
+ useOptions: true,
60
+ useUnionTypes: undefined,
34
61
  excludeCoreServiceFiles: undefined,
35
- httpClient: undefined,
62
+ includeSchemasFiles: undefined,
36
63
  interfacePrefix: undefined,
37
- items: [
38
- {
39
- input: 'url1',
40
- output: 'res1',
41
- outputCore: undefined,
42
- outputServices: undefined,
43
- outputModels: undefined,
44
- outputSchemas: undefined,
45
- },
46
- ],
64
+ enumPrefix: undefined,
65
+ typePrefix: undefined,
66
+ useCancelableRequest: undefined,
47
67
  logLevel: undefined,
48
68
  logTarget: undefined,
49
- request: 'req1',
50
69
  sortByRequired: undefined,
51
- typePrefix: undefined,
52
- useCancelableRequest: undefined,
53
- useOptions: true,
54
70
  useSeparatedIndexes: undefined,
55
- useUnionTypes: undefined,
56
- validationLibrary: undefined
57
- };
58
- const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
59
- node_assert_1.default.deepStrictEqual(result, expected);
60
- });
61
- (0, node_test_1.test)('Multiple elements with the same outer margins', () => {
62
- const input = [
63
- { input: 'url1', output: 'res1', exportCore: true, request: 'req1', useOptions: true },
64
- { input: 'url2', output: 'res2', exportCore: true, request: 'req1', useOptions: true },
65
- ];
66
- const expected = {
67
- enumPrefix: undefined,
68
- excludeCoreServiceFiles: undefined,
69
- httpClient: undefined,
70
- interfacePrefix: undefined,
71
+ validationLibrary: undefined,
72
+ emptySchemaStrategy: undefined,
73
+ request: undefined,
74
+ customExecutorPath: undefined,
71
75
  items: [
72
76
  {
73
77
  input: 'url1',
@@ -76,6 +80,8 @@ const convertArrayToObject_1 = require("../convertArrayToObject");
76
80
  outputServices: undefined,
77
81
  outputModels: undefined,
78
82
  outputSchemas: undefined,
83
+ request: 'req1',
84
+ customExecutorPath: 'exec-1',
79
85
  },
80
86
  {
81
87
  input: 'url2',
@@ -84,146 +90,35 @@ const convertArrayToObject_1 = require("../convertArrayToObject");
84
90
  outputServices: undefined,
85
91
  outputModels: undefined,
86
92
  outputSchemas: undefined,
93
+ request: 'req2',
94
+ customExecutorPath: 'exec-2',
87
95
  },
88
96
  ],
89
- logLevel: undefined,
90
- logTarget: undefined,
91
- request: 'req1',
92
- sortByRequired: undefined,
93
- typePrefix: undefined,
94
- useCancelableRequest: undefined,
95
- useOptions: true,
96
- useSeparatedIndexes: undefined,
97
- useUnionTypes: undefined,
98
- validationLibrary: undefined
99
- };
100
- const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
101
- node_assert_1.default.deepStrictEqual(result, expected);
97
+ });
102
98
  });
103
- (0, node_test_1.test)('Multiple elements with different external margins', () => {
99
+ (0, node_test_1.test)('promotes request/customExecutorPath to root when they are equal for all items', () => {
104
100
  const input = [
105
- { input: 'url1', output: 'res1', exportCore: true, request: 'req1', useOptions: true },
106
- { input: 'url2', output: 'res2', exportCore: false, request: 'req2', useOptions: false },
101
+ { input: 'url1', output: 'res1', request: 'req', customExecutorPath: 'exec' },
102
+ { input: 'url2', output: 'res2', request: 'req', customExecutorPath: 'exec' },
107
103
  ];
108
- const expected = {
109
- enumPrefix: undefined,
110
- excludeCoreServiceFiles: undefined,
111
- httpClient: undefined,
112
- interfacePrefix: undefined,
113
- items: [
114
- {
115
- input: 'url1',
116
- output: 'res1',
117
- outputCore: undefined,
118
- outputServices: undefined,
119
- outputModels: undefined,
120
- outputSchemas: undefined,
121
- },
122
- {
123
- input: 'url2',
124
- output: 'res2',
125
- outputCore: undefined,
126
- outputServices: undefined,
127
- outputModels: undefined,
128
- outputSchemas: undefined,
129
- },
130
- ],
131
- logLevel: undefined,
132
- logTarget: undefined,
133
- request: 'req1',
134
- sortByRequired: undefined,
135
- typePrefix: undefined,
136
- useCancelableRequest: undefined,
137
- useOptions: true,
138
- useSeparatedIndexes: undefined,
139
- useUnionTypes: undefined,
140
- validationLibrary: undefined
141
- };
142
104
  const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
143
- node_assert_1.default.deepStrictEqual(result, expected);
105
+ node_assert_1.default.strictEqual(result.request, 'req');
106
+ node_assert_1.default.strictEqual(result.customExecutorPath, 'exec');
144
107
  });
145
- (0, node_test_1.test)('No optional fields', () => {
108
+ (0, node_test_1.test)('supports legacy "client" alias by normalizing it to httpClient', () => {
146
109
  const input = [
147
- { input: 'url1', output: 'res1' },
148
- { input: 'url2', output: 'res2' },
110
+ { input: 'url1', output: 'res1', client: 'axios', useOptions: true },
111
+ { input: 'url2', output: 'res2', client: 'axios', useOptions: true },
149
112
  ];
150
- const expected = {
151
- enumPrefix: undefined,
152
- excludeCoreServiceFiles: undefined,
153
- httpClient: undefined,
154
- interfacePrefix: undefined,
155
- items: [
156
- {
157
- input: 'url1',
158
- output: 'res1',
159
- outputCore: undefined,
160
- outputServices: undefined,
161
- outputModels: undefined,
162
- outputSchemas: undefined,
163
- },
164
- {
165
- input: 'url2',
166
- output: 'res2',
167
- outputCore: undefined,
168
- outputServices: undefined,
169
- outputModels: undefined,
170
- outputSchemas: undefined,
171
- },
172
- ],
173
- logLevel: undefined,
174
- logTarget: undefined,
175
- request: undefined,
176
- sortByRequired: undefined,
177
- typePrefix: undefined,
178
- useCancelableRequest: undefined,
179
- useOptions: undefined,
180
- useSeparatedIndexes: undefined,
181
- useUnionTypes: undefined,
182
- validationLibrary: undefined
183
- };
184
113
  const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
185
- node_assert_1.default.deepStrictEqual(result, expected);
114
+ node_assert_1.default.strictEqual(result.httpClient, 'axios');
115
+ node_assert_1.default.strictEqual(result.useOptions, true);
186
116
  });
187
- (0, node_test_1.test)('Mixed presence of optional fields', () => {
117
+ (0, node_test_1.test)('throws on conflicting root-driven fields', () => {
188
118
  const input = [
189
- { input: 'url1', output: 'res1', exportCore: true },
190
- { input: 'url2', output: 'res2', request: 'req2' },
119
+ { input: 'url1', output: 'res1', useOptions: true },
120
+ { input: 'url2', output: 'res2', useOptions: false },
191
121
  ];
192
- const expected = {
193
- enumPrefix: undefined,
194
- excludeCoreServiceFiles: undefined,
195
- httpClient: undefined,
196
- interfacePrefix: undefined,
197
- items: [
198
- {
199
- input: 'url1',
200
- output: 'res1',
201
- outputCore: undefined,
202
- outputServices: undefined,
203
- outputModels: undefined,
204
- outputSchemas: undefined,
205
- },
206
- {
207
- input: 'url2',
208
- output: 'res2',
209
- outputCore: undefined,
210
- outputServices: undefined,
211
- outputModels: undefined,
212
- outputSchemas: undefined,
213
- },
214
- ],
215
- logLevel: undefined,
216
- logTarget: undefined,
217
- request: undefined,
218
- sortByRequired: undefined,
219
- typePrefix: undefined,
220
- useCancelableRequest: undefined,
221
- useOptions: undefined,
222
- useSeparatedIndexes: undefined,
223
- useUnionTypes: undefined,
224
- validationLibrary: undefined
225
- };
226
- const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
227
- node_assert_1.default.deepStrictEqual(result, expected);
122
+ node_assert_1.default.throws(() => (0, convertArrayToObject_1.convertArrayToObject)(input), /conflicting "useOptions" values/);
228
123
  });
229
124
  });
@@ -1 +1 @@
1
- {"version":3,"file":"convertArrayToObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/convertArrayToObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA2DxH"}
1
+ {"version":3,"file":"convertArrayToObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/convertArrayToObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6GxH"}
@@ -6,6 +6,7 @@ function convertArrayToObject(optionsArr) {
6
6
  items: [],
7
7
  excludeCoreServiceFiles: undefined,
8
8
  request: undefined,
9
+ customExecutorPath: undefined,
9
10
  useOptions: undefined,
10
11
  useCancelableRequest: undefined,
11
12
  };
@@ -16,21 +17,12 @@ function convertArrayToObject(optionsArr) {
16
17
  if (optionsArr.length === 0) {
17
18
  return emptyResult;
18
19
  }
19
- const items = optionsArr.map(item => ({
20
- input: item.input,
21
- output: item.output,
22
- outputCore: item.outputCore,
23
- outputServices: item.outputServices,
24
- outputModels: item.outputModels,
25
- outputSchemas: item.outputSchemas,
26
- }));
27
- const firstItem = optionsArr[0];
28
- const fieldsToExtract = [
20
+ const rootDrivenFields = [
29
21
  'httpClient',
30
22
  'useOptions',
31
23
  'useUnionTypes',
32
24
  'excludeCoreServiceFiles',
33
- 'request',
25
+ 'includeSchemasFiles',
34
26
  'interfacePrefix',
35
27
  'enumPrefix',
36
28
  'typePrefix',
@@ -40,13 +32,58 @@ function convertArrayToObject(optionsArr) {
40
32
  'sortByRequired',
41
33
  'useSeparatedIndexes',
42
34
  'validationLibrary',
35
+ 'emptySchemaStrategy',
43
36
  ];
44
- const extractedFields = fieldsToExtract.reduce((acc, field) => ({
37
+ const getNormalizedFieldValue = (item, field) => {
38
+ if (field === 'httpClient') {
39
+ return item.httpClient ?? item.client;
40
+ }
41
+ return item[field];
42
+ };
43
+ const getRootValueOrThrow = (field) => {
44
+ const definedValues = optionsArr
45
+ .map(item => getNormalizedFieldValue(item, field))
46
+ .filter(value => value !== undefined);
47
+ if (definedValues.length === 0) {
48
+ return undefined;
49
+ }
50
+ const firstValue = definedValues[0];
51
+ const hasConflict = definedValues.some(value => value !== firstValue);
52
+ if (hasConflict) {
53
+ throw new Error(`Legacy array config has conflicting "${field}" values. ` +
54
+ `This option must have the same value for all array items.`);
55
+ }
56
+ return firstValue;
57
+ };
58
+ const getCommonOptionalRootValue = (field) => {
59
+ const definedValues = optionsArr
60
+ .map(item => item[field])
61
+ .filter(value => value !== undefined);
62
+ if (definedValues.length === 0) {
63
+ return undefined;
64
+ }
65
+ const firstValue = definedValues[0];
66
+ const hasConflict = definedValues.some(value => value !== firstValue);
67
+ return hasConflict ? undefined : firstValue;
68
+ };
69
+ const items = optionsArr.map(item => ({
70
+ input: item.input,
71
+ output: item.output,
72
+ outputCore: item.outputCore,
73
+ outputServices: item.outputServices,
74
+ outputModels: item.outputModels,
75
+ outputSchemas: item.outputSchemas,
76
+ request: item.request,
77
+ customExecutorPath: item.customExecutorPath,
78
+ }));
79
+ const extractedRootFields = rootDrivenFields.reduce((acc, field) => ({
45
80
  ...acc,
46
- [field]: firstItem[field],
81
+ [field]: getRootValueOrThrow(field),
47
82
  }), {});
48
83
  return {
49
- ...extractedFields,
84
+ ...extractedRootFields,
85
+ request: getCommonOptionalRootValue('request'),
86
+ customExecutorPath: getCommonOptionalRootValue('customExecutorPath'),
50
87
  items,
51
88
  };
52
89
  }
@@ -33,28 +33,29 @@ export declare class Context {
33
33
  prefix: PrefixArtifacts;
34
34
  private _sortByRequired;
35
35
  private specRoot;
36
+ private entryFile?;
36
37
  private virtualFiles;
37
38
  constructor({ input, output, prefix, sortByRequired }: TContextProps);
38
39
  addRefs(refs: RefsLike): Context;
39
40
  values(...types: string[]): Record<string, any>;
40
- get($ref: string): JSONSchema4Type | JSONSchema6Type | JSONSchema7Type;
41
+ get($ref: string, parentSourceFile?: string): JSONSchema4Type | JSONSchema6Type | JSONSchema7Type;
41
42
  paths(...types: string[]): string[];
42
- exists($ref: string): boolean;
43
+ exists($ref: string, parentSourceFile?: string): boolean;
43
44
  fileName(): string;
44
45
  get output(): OutputPaths;
45
46
  get sortByRequired(): boolean;
46
47
  get root(): $Root | undefined;
47
48
  private canonicalizeRef;
48
49
  private mapSourceToOutput;
49
- private registerRef;
50
- private walkSchema;
50
+ private walkSchemaForFragments;
51
51
  initializeVirtualFileMap(rootSchema: unknown, entryFile: string): void;
52
52
  getVirtualFiles(): VirtualFileMap;
53
53
  getAllCanonicalRefs(): string[];
54
- resolveCanonicalRef(canonicalRef: string): {
54
+ resolveCanonicalRef(canonicalRef: string, parentSourceFile?: string): {
55
55
  outputFile: string;
56
56
  fragment?: string;
57
57
  } | undefined;
58
+ private normalizeRefForLookup;
58
59
  }
59
60
  export {};
60
61
  //# sourceMappingURL=Context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIhF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAKhD,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,QAAQ,GAAG;IACZ,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;IAC7E,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;CACvC,CAAC;AAEF,UAAU,WAAW;IACjB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,KAAK,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAc;IACtB,MAAM,EAAE,eAAe,CAI5B;IAEF,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,YAAY,CAA6B;gBAErC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa;IAmB7D,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKhC,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAO/C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe;IAOtE,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAOnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAO7B,QAAQ,IAAI,MAAM;IAOzB,IAAW,MAAM,gBAKhB;IAED,IAAW,cAAc,YAExB;IAED,IAAW,IAAI,IAAI,KAAK,GAAG,SAAS,CAEnC;IAED,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAiBX,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAiB/D,eAAe,IAAI,cAAc;IAIjC,mBAAmB,IAAI,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,YAAY,EAAE,MAAM,GACzC;QACI,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GACD,SAAS;CAYlB"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIhF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMhD,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,QAAQ,GAAG;IACZ,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;IAC7E,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;CACvC,CAAC;AAEF,UAAU,WAAW;IACjB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,KAAK,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAc;IACtB,MAAM,EAAE,eAAe,CAI5B;IAEF,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA6B;gBAErC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa;IAmB7D,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKhC,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAO/C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe;IAQjG,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAOnC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;IAQxD,QAAQ,IAAI,MAAM;IAOzB,IAAW,MAAM,gBAKhB;IAED,IAAW,cAAc,YAExB;IAED,IAAW,IAAI,IAAI,KAAK,GAAG,SAAS,CAEnC;IAED,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,sBAAsB;IA+BvB,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAuC/D,eAAe,IAAI,cAAc;IAIjC,mBAAmB,IAAI,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GACpE;QACI,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GACD,SAAS;IAef,OAAO,CAAC,qBAAqB;CAyBhC"}
@@ -5,6 +5,7 @@ const path_1 = require("path");
5
5
  const pathHelpers_1 = require("../common/utils/pathHelpers");
6
6
  const getFileName_1 = require("./utils/getFileName");
7
7
  const isString_1 = require("./utils/isString");
8
+ const normalizeRef_1 = require("./utils/normalizeRef");
8
9
  const parseRef_1 = require("./utils/parseRef");
9
10
  /**
10
11
  * A Context wich can share a data between methods
@@ -20,6 +21,7 @@ class Context {
20
21
  };
21
22
  _sortByRequired = false;
22
23
  specRoot;
24
+ entryFile;
23
25
  virtualFiles = new Map();
24
26
  constructor({ input, output, prefix, sortByRequired }) {
25
27
  this._output = output;
@@ -48,11 +50,12 @@ class Context {
48
50
  }
49
51
  return this._refs.values(...types);
50
52
  }
51
- get($ref) {
53
+ get($ref, parentSourceFile) {
52
54
  if (!this._refs) {
53
55
  throw new Error('Context must be initialized');
54
56
  }
55
- return this._refs.get($ref);
57
+ const normalizedRef = this.normalizeRefForLookup($ref, parentSourceFile);
58
+ return this._refs.get(normalizedRef);
56
59
  }
57
60
  paths(...types) {
58
61
  if (!this._refs) {
@@ -60,11 +63,12 @@ class Context {
60
63
  }
61
64
  return this._refs.paths(...types);
62
65
  }
63
- exists($ref) {
66
+ exists($ref, parentSourceFile) {
64
67
  if (!this._refs) {
65
68
  throw new Error('Context must be initialized');
66
69
  }
67
- return this._refs.exists($ref);
70
+ const normalizedRef = this.normalizeRefForLookup($ref, parentSourceFile);
71
+ return this._refs.exists(normalizedRef);
68
72
  }
69
73
  fileName() {
70
74
  if (!this._root) {
@@ -107,38 +111,36 @@ class Context {
107
111
  const baseName = (0, path_1.basename)(relative).replace(/\.(yaml|yml|json)$/i, '.ts');
108
112
  return (0, pathHelpers_1.resolveHelper)(this.output.outputModels, dir, baseName);
109
113
  }
110
- registerRef(ref, parentSourceFile) {
111
- const { sourceFile, fragment } = this.canonicalizeRef(ref, parentSourceFile);
112
- let entry = this.virtualFiles.get(sourceFile);
113
- if (!entry) {
114
- entry = {
115
- sourceFile,
116
- outputFile: this.mapSourceToOutput(sourceFile),
117
- fragments: new Set(),
118
- };
119
- this.virtualFiles.set(sourceFile, entry);
120
- }
121
- if (fragment) {
122
- entry.fragments.add(fragment);
123
- }
124
- }
125
- walkSchema(obj, parentSourceFile) {
114
+ walkSchemaForFragments(obj, parentSourceFile) {
126
115
  if (!obj || typeof obj !== 'object')
127
116
  return;
128
117
  if (typeof obj.$ref === 'string') {
129
- this.registerRef(obj.$ref, parentSourceFile);
118
+ const { sourceFile, fragment } = this.canonicalizeRef(obj.$ref, parentSourceFile);
119
+ let entry = this.virtualFiles.get(sourceFile);
120
+ if (!entry) {
121
+ entry = {
122
+ sourceFile,
123
+ outputFile: this.mapSourceToOutput(sourceFile),
124
+ fragments: new Set(),
125
+ };
126
+ this.virtualFiles.set(sourceFile, entry);
127
+ }
128
+ if (fragment) {
129
+ entry.fragments.add(fragment);
130
+ }
130
131
  }
131
132
  if (Array.isArray(obj)) {
132
- obj.forEach(item => this.walkSchema(item, parentSourceFile));
133
+ obj.forEach(item => this.walkSchemaForFragments(item, parentSourceFile));
133
134
  return;
134
135
  }
135
136
  for (const value of Object.values(obj)) {
136
- this.walkSchema(value, parentSourceFile);
137
+ this.walkSchemaForFragments(value, parentSourceFile);
137
138
  }
138
139
  }
139
140
  initializeVirtualFileMap(rootSchema, entryFile) {
140
141
  this.specRoot = (0, pathHelpers_1.normalizeHelper)((0, pathHelpers_1.dirNameHelper)(entryFile));
141
142
  const normalizedEntry = (0, pathHelpers_1.normalizeHelper)(entryFile);
143
+ this.entryFile = normalizedEntry;
142
144
  // Гарантируем, что entry файл тоже есть в карте
143
145
  if (!this.virtualFiles.has(normalizedEntry)) {
144
146
  this.virtualFiles.set(normalizedEntry, {
@@ -147,7 +149,26 @@ class Context {
147
149
  fragments: new Set(),
148
150
  });
149
151
  }
150
- this.walkSchema(rootSchema, normalizedEntry);
152
+ // 🔴 Вместо ручного обхода, использовать resolved.paths() от SwaggerParser
153
+ // это даст нам все файлы, которые парсер разрешил
154
+ const allPaths = this._refs?.paths() || [];
155
+ for (const refPath of allPaths) {
156
+ const normalizedPath = (0, pathHelpers_1.normalizeHelper)(refPath);
157
+ if (!this.virtualFiles.has(normalizedPath)) {
158
+ this.virtualFiles.set(normalizedPath, {
159
+ sourceFile: normalizedPath,
160
+ outputFile: this.mapSourceToOutput(normalizedPath),
161
+ fragments: new Set(),
162
+ });
163
+ }
164
+ }
165
+ // Обходим каждый файл чтобы найти $ref с фрагментами (#)
166
+ for (const [sourceFile] of this.virtualFiles) {
167
+ const schema = this._refs?.get(sourceFile);
168
+ if (schema && typeof schema === 'object') {
169
+ this.walkSchemaForFragments(schema, sourceFile);
170
+ }
171
+ }
151
172
  }
152
173
  getVirtualFiles() {
153
174
  return this.virtualFiles;
@@ -166,8 +187,9 @@ class Context {
166
187
  }
167
188
  return result;
168
189
  }
169
- resolveCanonicalRef(canonicalRef) {
170
- const parsed = (0, parseRef_1.parseRef)(canonicalRef);
190
+ resolveCanonicalRef(canonicalRef, parentSourceFile) {
191
+ const normalizedRef = this.normalizeRefForLookup(canonicalRef, parentSourceFile);
192
+ const parsed = (0, parseRef_1.parseRef)(normalizedRef);
171
193
  const sourceFile = (0, pathHelpers_1.normalizeHelper)(parsed.filePath ?? '');
172
194
  const file = this.virtualFiles.get(sourceFile);
173
195
  if (!file)
@@ -177,5 +199,26 @@ class Context {
177
199
  fragment: parsed.fragment,
178
200
  };
179
201
  }
202
+ normalizeRefForLookup(ref, parentSourceFile) {
203
+ if (!ref)
204
+ return ref;
205
+ // Prefer explicit parent if provided
206
+ if (parentSourceFile) {
207
+ const normalizedParent = (0, path_1.isAbsolute)(parentSourceFile)
208
+ ? parentSourceFile
209
+ : (0, pathHelpers_1.resolveHelper)(this.specRoot, parentSourceFile);
210
+ return (0, normalizeRef_1.normalizeRef)(ref, normalizedParent);
211
+ }
212
+ // If we can fall back to entry file, normalize relative refs against it
213
+ if (this.entryFile) {
214
+ const parsed = (0, parseRef_1.parseRef)(ref);
215
+ if (parsed.type === parseRef_1.RefType.LOCAL_FRAGMENT ||
216
+ parsed.type === parseRef_1.RefType.EXTERNAL_FILE ||
217
+ parsed.type === parseRef_1.RefType.EXTERNAL_FILE_FRAGMENT) {
218
+ return (0, normalizeRef_1.normalizeRef)(ref, this.entryFile);
219
+ }
220
+ }
221
+ return ref;
222
+ }
180
223
  }
181
224
  exports.Context = Context;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AAetF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,aAAa;IACtB,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAgDxB,OAAO,CAAC,gBAAgB;YAyBV,sBAAsB;YAUtB,oBAAoB;YAmCpB,cAAc;IAkFtB,QAAQ,CAAC,UAAU,EAAE,WAAW;CAWzC"}
1
+ {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AAgBtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,aAAa;IACtB,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,gBAAgB;YA4BV,sBAAsB;YAUtB,oBAAoB;YAmCpB,cAAc;IAwFtB,QAAQ,CAAC,UAAU,EAAE,WAAW;CAWzC"}