ts-openapi-codegen 2.0.0-beta.7 → 2.0.0-beta.9

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 (281) hide show
  1. package/README.md +104 -0
  2. package/README.rus.md +104 -0
  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/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  10. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +4 -5
  11. package/dist/cli/index.js +5 -5
  12. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  13. package/dist/cli/initOpenApiConfig/init.js +5 -13
  14. package/dist/cli/initOpenApiConfig/initConfig.js +3 -3
  15. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  16. package/dist/cli/previewChanges/previewChanges.js +12 -5
  17. package/dist/cli/schemas/base.d.ts +6 -1
  18. package/dist/cli/schemas/base.d.ts.map +1 -1
  19. package/dist/cli/schemas/base.js +10 -6
  20. package/dist/cli/schemas/checkConfig.d.ts +1 -1
  21. package/dist/cli/schemas/generate.d.ts +1 -25
  22. package/dist/cli/schemas/generate.d.ts.map +1 -1
  23. package/dist/cli/schemas/generate.js +21 -32
  24. package/dist/cli/schemas/index.d.ts +2 -1
  25. package/dist/cli/schemas/index.d.ts.map +1 -1
  26. package/dist/cli/schemas/index.js +1 -0
  27. package/dist/cli/schemas/init.d.ts +5 -5
  28. package/dist/cli/schemas/init.d.ts.map +1 -1
  29. package/dist/cli/schemas/init.js +4 -5
  30. package/dist/cli/schemas/previewChanges.d.ts +9 -0
  31. package/dist/cli/schemas/previewChanges.d.ts.map +1 -0
  32. package/dist/cli/schemas/previewChanges.js +11 -0
  33. package/dist/cli/schemas/updateConfig.d.ts +1 -1
  34. package/dist/common/Consts.d.ts +2 -0
  35. package/dist/common/Consts.d.ts.map +1 -1
  36. package/dist/common/Consts.js +4 -1
  37. package/dist/common/LoggerMessages.js +1 -1
  38. package/dist/common/TRawOptions.d.ts +1 -1
  39. package/dist/common/TRawOptions.d.ts.map +1 -1
  40. package/dist/common/Validation/formatZodError.d.ts +10 -0
  41. package/dist/common/Validation/formatZodError.d.ts.map +1 -0
  42. package/dist/{cli/validation/errorFormatter.js → common/Validation/formatZodError.js} +14 -13
  43. package/dist/common/Validation/index.d.ts +3 -0
  44. package/dist/common/Validation/index.d.ts.map +1 -0
  45. package/dist/{cli/validation → common/Validation}/index.js +2 -2
  46. package/dist/{cli/validation/validateCLIOptions.d.ts → common/Validation/validateZodOptions.d.ts} +4 -4
  47. package/dist/common/Validation/validateZodOptions.d.ts.map +1 -0
  48. package/dist/{cli/validation/validateCLIOptions.js → common/Validation/validateZodOptions.js} +7 -10
  49. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts +6 -1
  50. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  51. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +8 -14
  52. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +28 -0
  53. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -0
  54. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +25 -0
  55. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +36 -6
  56. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  57. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +33 -37
  58. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +37 -6
  59. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  60. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +30 -37
  61. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +40 -0
  62. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -0
  63. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.js +36 -0
  64. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +65 -0
  65. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -0
  66. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +31 -0
  67. package/dist/common/VersionedSchema/CommonSchemas.d.ts +53 -30
  68. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  69. package/dist/common/VersionedSchema/CommonSchemas.js +47 -72
  70. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +25 -5
  71. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
  72. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.js +34 -17
  73. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +25 -5
  74. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
  75. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +28 -19
  76. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +25 -1
  77. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  78. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +29 -2
  79. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +25 -5
  80. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
  81. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +30 -14
  82. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +23 -5
  83. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  84. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.js +33 -18
  85. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts +3 -2
  86. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts.map +1 -1
  87. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.js +18 -11
  88. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +22 -5
  89. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  90. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.js +30 -12
  91. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +22 -5
  92. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
  93. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.js +27 -13
  94. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +22 -1
  95. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
  96. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +28 -2
  97. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +22 -5
  98. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
  99. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.js +31 -12
  100. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts +3 -2
  101. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts.map +1 -1
  102. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.js +15 -9
  103. package/dist/common/VersionedSchema/Types.d.ts +5 -5
  104. package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
  105. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts +16 -0
  106. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -0
  107. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +85 -0
  108. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts +2 -0
  109. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts.map +1 -0
  110. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +23 -0
  111. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts +2 -0
  112. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts.map +1 -0
  113. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +75 -0
  114. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts +12 -0
  115. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -0
  116. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.js +13 -0
  117. package/dist/common/VersionedSchema/Utils/compareShapes.d.ts +16 -0
  118. package/dist/common/VersionedSchema/Utils/compareShapes.d.ts.map +1 -0
  119. package/dist/common/VersionedSchema/Utils/compareShapes.js +30 -0
  120. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +2 -1
  121. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  122. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +5 -5
  123. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +2 -2
  124. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -1
  125. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +15 -7
  126. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +2 -2
  127. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts.map +1 -1
  128. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +16 -3
  129. package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.d.ts.map +1 -1
  130. package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.js +19 -2
  131. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +2 -1
  132. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  133. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +10 -9
  134. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +4 -0
  135. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -0
  136. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.js +43 -0
  137. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +4 -0
  138. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +1 -0
  139. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +21 -0
  140. package/dist/core/Context.d.ts +6 -5
  141. package/dist/core/Context.d.ts.map +1 -1
  142. package/dist/core/Context.js +69 -26
  143. package/dist/core/OpenApiClient.d.ts.map +1 -1
  144. package/dist/core/OpenApiClient.js +12 -8
  145. package/dist/core/WriteClient.d.ts.map +1 -1
  146. package/dist/core/WriteClient.js +4 -0
  147. package/dist/core/__tests__/WriteClient.test.js +3 -0
  148. package/dist/core/api/v2/Parser.d.ts +1 -1
  149. package/dist/core/api/v2/Parser.d.ts.map +1 -1
  150. package/dist/core/api/v2/Parser.js +2 -2
  151. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  152. package/dist/core/api/v2/parser/getModel.js +2 -5
  153. package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
  154. package/dist/core/api/v2/parser/getModelProperties.js +1 -3
  155. package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
  156. package/dist/core/api/v2/parser/getModels.js +1 -2
  157. package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
  158. package/dist/core/api/v2/parser/getOperationParameter.js +2 -5
  159. package/dist/core/api/v2/parser/getOperationParameters.js +1 -1
  160. package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
  161. package/dist/core/api/v2/parser/getOperationResponse.js +1 -3
  162. package/dist/core/api/v2/parser/getOperationResponses.js +1 -1
  163. package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
  164. package/dist/core/api/v2/parser/getServices.js +4 -3
  165. package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
  166. package/dist/core/api/v2/parser/getType.js +2 -2
  167. package/dist/core/api/v3/Parser.d.ts +1 -1
  168. package/dist/core/api/v3/Parser.d.ts.map +1 -1
  169. package/dist/core/api/v3/Parser.js +2 -2
  170. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  171. package/dist/core/api/v3/parser/getModel.js +2 -5
  172. package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
  173. package/dist/core/api/v3/parser/getModelProperties.js +1 -3
  174. package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
  175. package/dist/core/api/v3/parser/getModels.js +1 -2
  176. package/dist/core/api/v3/parser/getOperation.js +1 -1
  177. package/dist/core/api/v3/parser/getOperationParameter.d.ts.map +1 -1
  178. package/dist/core/api/v3/parser/getOperationParameter.js +2 -5
  179. package/dist/core/api/v3/parser/getOperationParameters.js +1 -1
  180. package/dist/core/api/v3/parser/getOperationRequestBody.d.ts.map +1 -1
  181. package/dist/core/api/v3/parser/getOperationRequestBody.js +1 -3
  182. package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
  183. package/dist/core/api/v3/parser/getOperationResponse.js +1 -3
  184. package/dist/core/api/v3/parser/getOperationResponses.js +1 -1
  185. package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
  186. package/dist/core/api/v3/parser/getServices.js +4 -3
  187. package/dist/core/api/v3/parser/getType.js +2 -2
  188. package/dist/core/index.d.ts.map +1 -1
  189. package/dist/core/index.js +2 -0
  190. package/dist/core/types/base/Templates.model.d.ts +3 -0
  191. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  192. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  193. package/dist/core/utils/__mocks__/templates.js +3 -0
  194. package/dist/core/utils/__tests__/isSubdirectory.test.js +2 -2
  195. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  196. package/dist/core/utils/registerHandlebarTemplates.js +9 -3
  197. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  198. package/dist/core/utils/serviceHelpers.js +32 -6
  199. package/dist/core/utils/validateRawOptions.d.ts +3 -0
  200. package/dist/core/utils/validateRawOptions.d.ts.map +1 -0
  201. package/dist/core/utils/validateRawOptions.js +15 -0
  202. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  203. package/dist/core/utils/writeClientCore.js +5 -3
  204. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  205. package/dist/templatesCompiled/client/core/CancelablePromise.d.ts +1 -0
  206. package/dist/templatesCompiled/client/core/CancelablePromise.d.ts.map +1 -1
  207. package/dist/templatesCompiled/client/core/CancelablePromise.js +9 -2
  208. package/dist/templatesCompiled/client/core/HttpStatusCode.d.ts +1 -0
  209. package/dist/templatesCompiled/client/core/HttpStatusCode.d.ts.map +1 -1
  210. package/dist/templatesCompiled/client/core/HttpStatusCode.js +9 -2
  211. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -0
  212. package/dist/templatesCompiled/client/core/{createExecutorAdapter.js → executor/createExecutorAdapter.js} +3 -3
  213. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +8 -0
  214. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -0
  215. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +18 -0
  216. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.d.ts +8 -0
  217. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.d.ts.map +1 -0
  218. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +18 -0
  219. package/dist/templatesCompiled/client/core/{request-executor.d.ts → interceptors/interceptors.d.ts} +2 -1
  220. package/dist/templatesCompiled/client/core/interceptors/interceptors.d.ts.map +1 -0
  221. package/dist/templatesCompiled/client/core/interceptors/interceptors.js +18 -0
  222. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.d.ts +8 -0
  223. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.d.ts.map +1 -0
  224. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +18 -0
  225. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  226. package/dist/templatesCompiled/client/exportClient.js +14 -10
  227. package/dist/templatesCompiled/client/exportService.js +1 -1
  228. package/dist/templatesCompiled/client/indexCore.js +2 -2
  229. package/dist/templatesCompiled/client/indexFull.js +2 -2
  230. package/dist/templatesCompiled/client/partials/exportComposition.d.ts +2 -0
  231. package/dist/templatesCompiled/client/partials/exportComposition.d.ts.map +1 -1
  232. package/dist/templatesCompiled/client/partials/exportComposition.js +17 -9
  233. package/package.json +1 -1
  234. package/dist/cli/validation/errorFormatter.d.ts +0 -6
  235. package/dist/cli/validation/errorFormatter.d.ts.map +0 -1
  236. package/dist/cli/validation/index.d.ts +0 -3
  237. package/dist/cli/validation/index.d.ts.map +0 -1
  238. package/dist/cli/validation/validateCLIOptions.d.ts.map +0 -1
  239. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts +0 -6
  240. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts.map +0 -1
  241. package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.js +0 -7
  242. package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts +0 -6
  243. package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts.map +0 -1
  244. package/dist/common/VersionedSchema/Utils/joiHandlers.js +0 -59
  245. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts +0 -3
  246. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts.map +0 -1
  247. package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.js +0 -12
  248. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts +0 -3
  249. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts.map +0 -1
  250. package/dist/common/VersionedSchema/Utils/traverseObjectStructure.js +0 -31
  251. package/dist/common/schemas/configSchemas.d.ts +0 -91
  252. package/dist/common/schemas/configSchemas.d.ts.map +0 -1
  253. package/dist/common/schemas/configSchemas.js +0 -131
  254. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts +0 -19
  255. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
  256. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.js +0 -14
  257. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts +0 -2
  258. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
  259. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.js +0 -38
  260. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts +0 -2
  261. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
  262. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.js +0 -20
  263. package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts +0 -2
  264. package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
  265. package/dist/common/utils/__tests__/mergeObjectSchemas.test.js +0 -35
  266. package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts +0 -2
  267. package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
  268. package/dist/common/utils/__tests__/migrationForMultiOptions.test.js +0 -112
  269. package/dist/common/utils/__tests__/migrationForOptions.test.d.ts +0 -2
  270. package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +0 -1
  271. package/dist/common/utils/__tests__/migrationForOptions.test.js +0 -56
  272. package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts +0 -2
  273. package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts.map +0 -1
  274. package/dist/core/utils/__tests__/getRelativeModelPath.test.js +0 -21
  275. package/dist/core/utils/getRelativeModelPath.d.ts +0 -9
  276. package/dist/core/utils/getRelativeModelPath.d.ts.map +0 -1
  277. package/dist/core/utils/getRelativeModelPath.js +0 -37
  278. package/dist/templatesCompiled/client/core/createExecutorAdapter.d.ts.map +0 -1
  279. package/dist/templatesCompiled/client/core/request-executor.d.ts.map +0 -1
  280. package/dist/templatesCompiled/client/core/request-executor.js +0 -11
  281. /package/dist/templatesCompiled/client/core/{createExecutorAdapter.d.ts → executor/createExecutorAdapter.d.ts} +0 -0
package/README.md CHANGED
@@ -526,6 +526,110 @@ export function request<T>(config: TOpenAPIConfig, options: ApiRequestOptions):
526
526
  }
527
527
  ```
528
528
 
529
+ ### RequestExecutor
530
+
531
+ Starting from version **2.0.0** the generated services use the `RequestExecutor` interface
532
+ instead of direct calls to the `request` core function.
533
+
534
+ The `RequestExecutor` is a single HTTP logic integration point responsible for executing requests
535
+ and extending client behavior. It allows you to:
536
+ - use any transport (fetch/axios/xhr/custom);
537
+ - Centrally handle requests, responses, and errors;
538
+ - expand the client's behavior without changing the generated services.
539
+
540
+ #### Interceptors
541
+
542
+ `RequestExecutor` supports **interceptors**, which allow you to implement additional
543
+ logic at different stages of the request lifecycle.:
544
+
545
+ - `onRequest` — modification of the request before sending (headers, auth, logging);
546
+ - `onResponse` — processing successful responses;
547
+ - `onError` — centralized error handling.
548
+
549
+ Interceptors are applied at the executor level and are automatically used by all
550
+ generated services.
551
+
552
+ ```ts
553
+ import { createClient } from './generated';
554
+
555
+ const client = createClient({
556
+ interceptors: {
557
+ onRequest: [
558
+ (config) => ({
559
+ ...config,
560
+ headers: {
561
+ ...config.headers,
562
+ Authorization: 'Bearer token',
563
+ },
564
+ }),
565
+ ],
566
+ onError: [
567
+ (error) => {
568
+ console.error(error);
569
+ throw error;
570
+ },
571
+ ],
572
+ },
573
+ });
574
+ ```
575
+
576
+ #### Custom implementation of RequestExecutor with interceptors
577
+
578
+ A custom `RequestExecutor` can be used together with interceptors.
579
+ In this case, the executor is responsible only for the transport and execution of the request,
580
+ while the interceptors are responsible for the extensible business logic (authorization, logging, error handling).
581
+
582
+ ```ts
583
+ import type { RequestExecutor, RequestConfig } from './generated/core/executor/requestExecutor';
584
+ import { withInterceptors } from './generated/core/interceptors/withInterceptors';
585
+ import { SimpleService } from './generated/services/SimpleService';
586
+
587
+ interface MyCustomOptions {
588
+ timeout?: number;
589
+ }
590
+
591
+ const baseExecutor: RequestExecutor<MyCustomOptions> = {
592
+ async request<T>(config: RequestConfig, options?: MyCustomOptions): Promise<T> {
593
+ const response = await fetch(config.url, {
594
+ method: config.method,
595
+ headers: config.headers,
596
+ body: config.body ? JSON.stringify(config.body) : undefined,
597
+ signal: options?.timeout
598
+ ? AbortSignal.timeout(options.timeout)
599
+ : undefined,
600
+ });
601
+
602
+ if (!response.ok) {
603
+ throw new Error(`Request failed: ${response.status}`);
604
+ }
605
+
606
+ return response.json();
607
+ },
608
+ };
609
+
610
+ // Wrapping the executor interceptors
611
+ const executor = withInterceptors(baseExecutor, {
612
+ onRequest: [
613
+ (config) => ({
614
+ ...config,
615
+ headers: {
616
+ ...config.headers,
617
+ Authorization: 'Bearer token',
618
+ },
619
+ }),
620
+ ],
621
+ onError: [
622
+ (error) => {
623
+ console.error(error);
624
+ throw error;
625
+ },
626
+ ],
627
+ });
628
+
629
+ const service = new SimpleService(executor);
630
+ await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
631
+ ```
632
+
529
633
  ### Sorting strategy for function arguments `--sortByRequired`
530
634
  By default, the OpenAPI generator sorts the parameters of service functions according to a simplified scheme. If you need a more strict sorting option, then you need to use the `--sortByRequired` flag. The simplified sorting option is similar to the one used in version 0.2.3 of the OpenAPI generator. This flag allows you to upgrade to a new version of the generator if you are "stuck" on version 0.2.3.
531
635
 
package/README.rus.md CHANGED
@@ -526,6 +526,110 @@ export function request<T>(config: TOpenAPIConfig, options: ApiRequestOptions):
526
526
  }
527
527
  ```
528
528
 
529
+ ### RequestExecutor
530
+
531
+ Начиная с версии **2.0.0**, сгенерированные сервисы используют интерфейс `RequestExecutor`
532
+ вместо прямых вызовов core-функции `request`.
533
+
534
+ `RequestExecutor` — это единая точка интеграции HTTP-логики, отвечающая за выполнение запросов
535
+ и расширение поведения клиента. Он позволяет:
536
+ - использовать любой транспорт (fetch / axios / xhr / custom);
537
+ - централизованно обрабатывать запросы, ответы и ошибки;
538
+ - расширять поведение клиента без изменения сгенерированных сервисов.
539
+
540
+ #### Interceptors
541
+
542
+ `RequestExecutor` поддерживает **interceptors**, которые позволяют внедрять дополнительную
543
+ логику на разных этапах жизненного цикла запроса:
544
+
545
+ - `onRequest` — модификация запроса перед отправкой (headers, auth, логирование);
546
+ - `onResponse` — обработка успешных ответов;
547
+ - `onError` — централизованная обработка ошибок.
548
+
549
+ Interceptors применяются на уровне executor’а и автоматически используются всеми
550
+ сгенерированными сервисами.
551
+
552
+ ```ts
553
+ import { createClient } from './generated';
554
+
555
+ const client = createClient({
556
+ interceptors: {
557
+ onRequest: [
558
+ (config) => ({
559
+ ...config,
560
+ headers: {
561
+ ...config.headers,
562
+ Authorization: 'Bearer token',
563
+ },
564
+ }),
565
+ ],
566
+ onError: [
567
+ (error) => {
568
+ console.error(error);
569
+ throw error;
570
+ },
571
+ ],
572
+ },
573
+ });
574
+ ```
575
+
576
+ #### Пользовательская реализация RequestExecutor с interceptors
577
+
578
+ Пользовательский `RequestExecutor` может быть использован вместе с interceptors.
579
+ В этом случае executor отвечает только за транспорт и выполнение запроса,
580
+ а interceptors — за расширяемую бизнес-логику (авторизация, логирование, обработка ошибок).
581
+
582
+ ```ts
583
+ import type { RequestExecutor, RequestConfig } from './generated/core/executor/requestExecutor';
584
+ import { withInterceptors } from './generated/core/interceptors/withInterceptors';
585
+ import { SimpleService } from './generated/services/SimpleService';
586
+
587
+ interface MyCustomOptions {
588
+ timeout?: number;
589
+ }
590
+
591
+ const baseExecutor: RequestExecutor<MyCustomOptions> = {
592
+ async request<T>(config: RequestConfig, options?: MyCustomOptions): Promise<T> {
593
+ const response = await fetch(config.url, {
594
+ method: config.method,
595
+ headers: config.headers,
596
+ body: config.body ? JSON.stringify(config.body) : undefined,
597
+ signal: options?.timeout
598
+ ? AbortSignal.timeout(options.timeout)
599
+ : undefined,
600
+ });
601
+
602
+ if (!response.ok) {
603
+ throw new Error(`Request failed: ${response.status}`);
604
+ }
605
+
606
+ return response.json();
607
+ },
608
+ };
609
+
610
+ // Оборачиваем executor interceptors
611
+ const executor = withInterceptors(baseExecutor, {
612
+ onRequest: [
613
+ (config) => ({
614
+ ...config,
615
+ headers: {
616
+ ...config.headers,
617
+ Authorization: 'Bearer token',
618
+ },
619
+ }),
620
+ ],
621
+ onError: [
622
+ (error) => {
623
+ console.error(error);
624
+ throw error;
625
+ },
626
+ ],
627
+ });
628
+
629
+ const service = new SimpleService(executor);
630
+ await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
631
+ ```
632
+
529
633
  ### Стратегия сортировки аргументов функций `--sortByRequired`
530
634
  По умолчанию генератор OpenAPI сортирует параметры сервисных функций согласно упрощенной схеме. Если вам нужна более строгая опция сортировки, используйте флаг `--sortByRequired`. Упрощенная опция сортировки похожа на ту, что использовалась в версии 0.2.3 генератора OpenAPI. Этот флаг позволяет обновиться до новой версии генератора, если вы "застряли" на версии 0.2.3.
531
635
 
@@ -1,3 +1,4 @@
1
+ import { OptionValues } from 'commander';
1
2
  /**
2
3
  * Проверяет конфигурационный файл на корректность и актуальность.
3
4
  * Если обнаружены проблемы, предлагает действия для их исправления.
@@ -8,5 +9,5 @@
8
9
  * @example
9
10
  * await checkConfig('./openapi-config.json');
10
11
  */
11
- export declare function checkConfig(configPath: string): Promise<void>;
12
+ export declare function checkConfig(options: OptionValues): Promise<void>;
12
13
  //# sourceMappingURL=checkConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCnE"}
1
+ {"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CtE"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkConfig = checkConfig;
4
4
  const Consts_1 = require("../../common/Consts");
5
5
  const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
6
+ const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
7
+ const schemas_1 = require("../schemas");
6
8
  const constants_1 = require("./constants");
7
9
  const selectConfigAction_1 = require("./utils/selectConfigAction");
8
10
  const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfigData");
@@ -16,20 +18,26 @@ const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfig
16
18
  * @example
17
19
  * await checkConfig('./openapi-config.json');
18
20
  */
19
- async function checkConfig(configPath) {
20
- const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(configPath);
21
+ async function checkConfig(options) {
22
+ const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.checkConfigOptionsSchema, options);
23
+ if (!validationResult.success) {
24
+ Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
25
+ process.exit(1);
26
+ }
27
+ const validatedOptions = validationResult.data;
28
+ const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
21
29
  if (!configData) {
22
- Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${configPath}`);
30
+ Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${validatedOptions.openapiConfig || ''}`);
23
31
  return;
24
32
  }
25
33
  try {
26
34
  const { isActualConfigVersion, hasDefaultValues, migratedData } = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(configData);
27
- Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_VALID(configPath));
35
+ Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_VALID(validatedOptions.openapiConfig || ''));
28
36
  // Если версия не актуальна, предложить обновление
29
37
  if (!isActualConfigVersion) {
30
38
  await (0, selectConfigAction_1.selectConfigAction)({
31
39
  migratedData,
32
- configPath,
40
+ configPath: validatedOptions.openapiConfig || '',
33
41
  warningMessage: 'Ваша версия конфигурации устарела и нуждается в обновлении.',
34
42
  actionChoices: constants_1.ACTION_FOR_CONFIG_DATA_OPTIONS,
35
43
  });
@@ -39,7 +47,7 @@ async function checkConfig(configPath) {
39
47
  if (hasDefaultValues) {
40
48
  await (0, selectConfigAction_1.selectConfigAction)({
41
49
  migratedData,
42
- configPath,
50
+ configPath: validatedOptions.openapiConfig || '',
43
51
  warningMessage: 'В вашей конфигурации есть значения по умолчанию, которые можно удалить.',
44
52
  actionChoices: constants_1.ACTION_FOR_CONFIG_DATA_OPTIONS,
45
53
  });
@@ -1,3 +1,4 @@
1
+ import { OptionValues } from 'commander';
1
2
  /**
2
3
  * Обновляет конфигурационный файл до актуальной версии.
3
4
  * Выполняет миграцию данных при необходимости.
@@ -8,5 +9,5 @@
8
9
  * @example
9
10
  * await updateConfig('./openapi-config.json');
10
11
  */
11
- export declare function updateConfig(configPath: string): Promise<void>;
12
+ export declare function updateConfig(options: OptionValues): Promise<void>;
12
13
  //# sourceMappingURL=updateConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/updateConfig.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpE"}
1
+ {"version":3,"file":"updateConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/updateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvE"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateConfig = updateConfig;
4
4
  const Consts_1 = require("../../common/Consts");
5
5
  const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
6
+ const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
7
+ const schemas_1 = require("../schemas");
6
8
  const constants_1 = require("./constants");
7
9
  const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfigData");
8
10
  const writeConfigFile_1 = require("./utils/writeConfigFile");
@@ -16,21 +18,27 @@ const writeConfigFile_1 = require("./utils/writeConfigFile");
16
18
  * @example
17
19
  * await updateConfig('./openapi-config.json');
18
20
  */
19
- async function updateConfig(configPath) {
20
- const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(configPath);
21
+ async function updateConfig(options) {
22
+ const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.updateConfigOptionsSchema, options);
23
+ if (!validationResult.success) {
24
+ Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
25
+ process.exit(1);
26
+ }
27
+ const validatedOptions = validationResult.data;
28
+ const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
21
29
  if (!configData) {
22
- Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${configPath}`);
30
+ Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${validatedOptions.openapiConfig}`);
23
31
  return;
24
32
  }
25
33
  try {
26
34
  const { isActualConfigVersion, migratedData } = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(configData);
27
35
  if (isActualConfigVersion) {
28
- Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_UP_TO_DATE(configPath));
36
+ Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_UP_TO_DATE(validatedOptions.openapiConfig || ''));
29
37
  }
30
38
  else {
31
39
  await (0, writeConfigFile_1.writeConfigFile)({
32
40
  data: migratedData,
33
- configPath,
41
+ configPath: validatedOptions.openapiConfig || '',
34
42
  isUpdating: true,
35
43
  });
36
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAgBzC;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DhF"}
1
+ {"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAgBzC;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DhF"}
@@ -40,12 +40,12 @@ const Enums_1 = require("../../common/Enums");
40
40
  const LoggerMessages_1 = require("../../common/LoggerMessages");
41
41
  const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject");
42
42
  const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
43
+ const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
43
44
  const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
44
45
  const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
45
46
  const migrateDataToLatestSchemaVersion_1 = require("../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
46
47
  const OpenAPI = __importStar(require("../../core"));
47
- const generate_1 = require("../schemas/generate");
48
- const validation_1 = require("../validation");
48
+ const schemas_1 = require("../schemas");
49
49
  /**
50
50
  * Запускает генерацию OpenAPI клиента
51
51
  * Поддерживает как конфиг-файл, так и параметры из CLI
@@ -53,13 +53,12 @@ const validation_1 = require("../validation");
53
53
  async function generateOpenApiClient(options) {
54
54
  const { openapiConfig, ...clientOptions } = options;
55
55
  try {
56
- // Валидация опций через Zod
57
- const validationResult = (0, validation_1.validateCLIOptions)(generate_1.generateOptionsSchema, {
56
+ const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.generateOptionsSchema, {
58
57
  openapiConfig,
59
58
  ...clientOptions,
60
59
  });
61
60
  if (!validationResult.success) {
62
- Consts_1.APP_LOGGER.error(validationResult.error);
61
+ Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
63
62
  process.exit(1);
64
63
  }
65
64
  const validatedOptions = validationResult.data;
package/dist/cli/index.js CHANGED
@@ -89,7 +89,7 @@ program
89
89
  await updateNotifier.checkAndNotify();
90
90
  })
91
91
  .action(async (options) => {
92
- await (0, updateConfig_1.updateConfig)(options.openapiConfig);
92
+ await (0, updateConfig_1.updateConfig)(options);
93
93
  });
94
94
  /**
95
95
  * init - Команда для инициализации конфигурационного файла
@@ -116,10 +116,10 @@ program
116
116
  .command('preview-changes')
117
117
  .description('Preview changes that will be made to generated code before applying them')
118
118
  .addHelpText('before', (0, utils_1.getCLIName)(APP_NAME))
119
- .option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
120
- .option('-gd, --generated-dir <value>', 'Directory with previously generated code (default: "generated")', './generated')
121
- .option('-pd, --preview-dir <value>', 'Temporary directory for preview generation (default: "generated-preview")', './generated-preview')
122
- .option('-dd, --diff-dir <value>', 'Directory to save diff files (default: "generated-diff")', './generated-diff')
119
+ .option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options (default: "openapi.config.json")', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
120
+ .option('-gd, --generated-dir <value>', 'Directory with previously generated code (default: "generated")', Consts_1.DEFAULT_OUTPUT_API_DIR)
121
+ .option('-pd, --preview-dir <value>', 'Temporary directory for preview generation (default: ".ts-openapi-codegen-preview-changes)', Consts_1.DEFAULT_PREVIEW_CHANGES_DIR)
122
+ .option('-dd, --diff-dir <value>', 'Directory to save diff files (default: ".ts-openapi-codegen-diff-changes")', Consts_1.DEFAULT_DIFF_CHANGES_DIR)
123
123
  .hook('preAction', async () => {
124
124
  await updateNotifier.checkAndNotify();
125
125
  })
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,iBAmD/C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,iBA4C/C"}
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const Consts_1 = require("../../common/Consts");
5
+ const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
5
6
  const confirmDialog_1 = require("../interactive/confirmDialog");
6
7
  const schemas_1 = require("../schemas");
7
- const validation_1 = require("../validation");
8
8
  const initConfig_1 = require("./initConfig");
9
9
  const initCustomRequest_1 = require("./initCustomRequest");
10
10
  const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates");
@@ -12,20 +12,12 @@ const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates
12
12
  * Фнукция изначальной настройки файлов конфигурации для последующего запуска генератора
13
13
  */
14
14
  async function init(options) {
15
- let validatedOptions;
16
- try {
17
- // Валидация опций через Zod
18
- const validationResult = (0, validation_1.validateCLIOptions)(schemas_1.initOptionsSchema, options);
19
- if (!validationResult.success) {
20
- Consts_1.APP_LOGGER.error(validationResult.error);
21
- process.exit(1);
22
- }
23
- validatedOptions = validationResult.data;
24
- }
25
- catch (error) {
26
- Consts_1.APP_LOGGER.error(error.message);
15
+ const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.initOptionsSchema, options);
16
+ if (!validationResult.success) {
17
+ Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
27
18
  process.exit(1);
28
19
  }
20
+ const validatedOptions = validationResult.data;
29
21
  const templates = (0, registerHandlebarTemplates_1.registerHandlebarTemplates)();
30
22
  if (validatedOptions.useInteractiveMode) {
31
23
  const shouldInitConfig = await (0, confirmDialog_1.confirmDialog)({
@@ -16,7 +16,7 @@ const writeConfigFile_1 = require("./utils/writeConfigFile");
16
16
  * Инициализирует файл конфигурации OpenAPI
17
17
  */
18
18
  async function initConfig(params) {
19
- const configPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), params.openapiConfig);
19
+ const configPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), params.openapiConfig || '');
20
20
  const configExists = await fileSystemHelpers_1.fileSystemHelpers.exists(configPath);
21
21
  // Шаг 3: Проверка существования файла конфигурации
22
22
  if (configExists) {
@@ -29,7 +29,7 @@ async function initConfig(params) {
29
29
  return;
30
30
  }
31
31
  }
32
- const currentSpecsDir = params.specsDir;
32
+ const currentSpecsDir = params.specsDir || '';
33
33
  // Шаг 4: Формирование файла конфигурации
34
34
  // Поиск файлов спецификаций
35
35
  let specFiles = [];
@@ -98,5 +98,5 @@ async function initConfig(params) {
98
98
  config = (0, buildConfig_1.buildExampleConfig)(useMultiOption, customRequest, perSpecRequest);
99
99
  }
100
100
  // Записываем конфигурацию на диск
101
- await (0, writeConfigFile_1.writeConfigFile)(params.openapiConfig, config, params.templates);
101
+ await (0, writeConfigFile_1.writeConfigFile)(params.openapiConfig || '', config, params.templates);
102
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA0BzC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0IzE"}
1
+ {"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA4BzC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiJzE"}
@@ -40,10 +40,12 @@ const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject"
40
40
  const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
41
41
  const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
42
42
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
43
+ const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
43
44
  const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
44
45
  const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
45
46
  const migrateDataToLatestSchemaVersion_1 = require("../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
46
47
  const OpenAPI = __importStar(require("../../core"));
48
+ const schemas_1 = require("../schemas");
47
49
  const compareFiles_1 = require("./utils/compareFiles");
48
50
  const formatDiff_1 = require("./utils/formatDiff");
49
51
  const isDirectoryEmpty_1 = require("./utils/isDirectoryEmpty");
@@ -55,10 +57,15 @@ const updateOutputPaths_1 = require("./utils/updateOutputPaths");
55
57
  * TODO: Добавить проверку опций команды перед выполнением
56
58
  */
57
59
  async function previewChanges(options) {
58
- const { openapiConfig, generatedDir = 'generated', previewDir = 'generated-preview', diffDir = 'generated-diff' } = options;
59
- const resolvedGeneratedDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), generatedDir);
60
- const resolvedPreviewDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), previewDir);
61
- const resolvedDiffDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), diffDir);
60
+ const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.previewChangesSchema, options);
61
+ if (!validationResult.success) {
62
+ Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
63
+ process.exit(1);
64
+ }
65
+ const { openapiConfig, generatedDir, previewDir, diffDir } = validationResult.data;
66
+ const resolvedGeneratedDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), generatedDir || '');
67
+ const resolvedPreviewDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), previewDir || '');
68
+ const resolvedDiffDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), diffDir || '');
62
69
  let previewDirCreated = false;
63
70
  try {
64
71
  // 1. Проверка директории со сгенерированным кодом
@@ -89,7 +96,7 @@ async function previewChanges(options) {
89
96
  }
90
97
  // 4. Обновление путей output для генерации в preview директорию
91
98
  const migratedValue = migratedOptions.value;
92
- const previewOptions = (0, updateOutputPaths_1.updateOutputPaths)(migratedValue, previewDir, generatedDir);
99
+ const previewOptions = (0, updateOutputPaths_1.updateOutputPaths)(migratedValue, previewDir || '', generatedDir || '');
93
100
  // 5. Генерация кода в preview директорию
94
101
  Consts_1.APP_LOGGER.info(`Generating code to preview directory: ${previewDir}`);
95
102
  await OpenAPI.generate(previewOptions);
@@ -1,11 +1,16 @@
1
1
  import { z } from 'zod';
2
2
  import { ELogLevel, ELogOutput } from '../../common/Enums';
3
3
  import { HttpClient } from '../../core/types/enums/HttpClient.enum';
4
+ /**
5
+ * Преобразует пустые строки в undefined для опциональных полей
6
+ * Это нужно, потому что Commander.js передает пустые строки для опций без значений
7
+ */
8
+ export declare const emptyStringToUndefined: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
4
9
  /**
5
10
  * Базовая схема с общими опциями для всех команд
6
11
  */
7
12
  export declare const baseCLIOptionsSchema: z.ZodObject<{
8
- openapiConfig: z.ZodDefault<z.ZodOptional<z.ZodString>>;
13
+ openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
9
14
  }, z.core.$strip>;
10
15
  export type BaseCLIOptions = z.infer<typeof baseCLIOptionsSchema>;
11
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,8BAA2B,CAAC;AACzD,eAAO,MAAM,cAAc,6BAA0B,CAAC;AACtD,eAAO,MAAM,eAAe,8BAA2B,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yEAAoF,CAAC;AAExH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,8BAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,6BAAoB,CAAC;AAChD,eAAO,MAAM,eAAe,8BAAqB,CAAC"}
@@ -1,19 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logTargetSchema = exports.logLevelSchema = exports.httpClientSchema = exports.baseCLIOptionsSchema = void 0;
3
+ exports.logTargetSchema = exports.logLevelSchema = exports.httpClientSchema = exports.baseCLIOptionsSchema = exports.emptyStringToUndefined = void 0;
4
4
  const zod_1 = require("zod");
5
- const Consts_1 = require("../../common/Consts");
6
5
  const Enums_1 = require("../../common/Enums");
7
6
  const HttpClient_enum_1 = require("../../core/types/enums/HttpClient.enum");
7
+ /**
8
+ * Преобразует пустые строки в undefined для опциональных полей
9
+ * Это нужно, потому что Commander.js передает пустые строки для опций без значений
10
+ */
11
+ exports.emptyStringToUndefined = zod_1.z.preprocess(val => (val === '' ? undefined : val), zod_1.z.string().min(1).optional());
8
12
  /**
9
13
  * Базовая схема с общими опциями для всех команд
10
14
  */
11
15
  exports.baseCLIOptionsSchema = zod_1.z.object({
12
- openapiConfig: zod_1.z.string().optional().default(Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME),
16
+ openapiConfig: exports.emptyStringToUndefined,
13
17
  });
14
18
  /**
15
19
  * Enum схемы для типизированных значений
16
20
  */
17
- exports.httpClientSchema = zod_1.z.nativeEnum(HttpClient_enum_1.HttpClient);
18
- exports.logLevelSchema = zod_1.z.nativeEnum(Enums_1.ELogLevel);
19
- exports.logTargetSchema = zod_1.z.nativeEnum(Enums_1.ELogOutput);
21
+ exports.httpClientSchema = zod_1.z.enum(HttpClient_enum_1.HttpClient);
22
+ exports.logLevelSchema = zod_1.z.enum(Enums_1.ELogLevel);
23
+ exports.logTargetSchema = zod_1.z.enum(Enums_1.ELogOutput);
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  export declare const checkConfigOptionsSchema: z.ZodObject<{
3
- openapiConfig: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3
+ openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
4
4
  }, z.core.$strip>;
5
5
  export type CheckConfigOptions = z.infer<typeof checkConfigOptionsSchema>;
6
6
  //# sourceMappingURL=checkConfig.d.ts.map
@@ -1,32 +1,8 @@
1
1
  import { z } from 'zod';
2
- /**
3
- * Схема для команды generate
4
- * Основана на baseFlatOptionsSchema, но с добавлением:
5
- * - openapiConfig (из baseCLIOptionsSchema)
6
- * - опциональными input/output (валидируются условно)
7
- */
8
2
  export declare const generateOptionsSchema: z.ZodObject<{
9
- openapiConfig: z.ZodDefault<z.ZodOptional<z.ZodString>>;
10
- outputCore: z.ZodOptional<z.ZodString>;
11
- outputServices: z.ZodOptional<z.ZodString>;
12
- outputModels: z.ZodOptional<z.ZodString>;
13
- outputSchemas: z.ZodOptional<z.ZodString>;
14
- interfacePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
15
- enumPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
16
- typePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
17
- httpClient: z.ZodOptional<z.ZodEnum<typeof import("../..").HttpClient>>;
18
- useOptions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
19
- useUnionTypes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
20
- excludeCoreServiceFiles: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
21
- request: z.ZodOptional<z.ZodString>;
22
- useCancelableRequest: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
23
- logLevel: z.ZodOptional<z.ZodEnum<typeof import("../../common/Enums").ELogLevel>>;
24
- logTarget: z.ZodOptional<z.ZodEnum<typeof import("../../common/Enums").ELogOutput>>;
25
- sortByRequired: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
26
- useSeparatedIndexes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
27
- validationLibrary: z.ZodOptional<z.ZodEnum<typeof import("../../core/types/enums/ValidationLibrary.enum").ValidationLibrary>>;
28
3
  input: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
29
4
  output: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
5
+ openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
30
6
  }, z.core.$strip>;
31
7
  export type GenerateOptions = z.infer<typeof generateOptionsSchema>;
32
8
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;iBAwC5B,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;iBA2C5B,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}