ts-openapi-codegen 2.0.0-beta.9 → 2.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/README.md +177 -18
  2. package/README.rus.md +177 -21
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts +2 -0
  4. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts.map +1 -0
  5. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +365 -0
  6. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts +2 -0
  7. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts.map +1 -0
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +142 -0
  9. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts +2 -0
  10. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts.map +1 -0
  11. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +137 -0
  12. package/dist/cli/analyzeDiff/analyzeDiff.d.ts +17 -0
  13. package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -0
  14. package/dist/cli/analyzeDiff/analyzeDiff.js +105 -0
  15. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +17 -0
  16. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +1 -0
  17. package/dist/cli/analyzeDiff/buildLegacyReport.js +54 -0
  18. package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -0
  19. package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -0
  20. package/dist/cli/analyzeDiff/ciSummary.js +20 -0
  21. package/dist/cli/analyzeDiff/diffEngine.d.ts +54 -0
  22. package/dist/cli/analyzeDiff/diffEngine.d.ts.map +1 -0
  23. package/dist/cli/analyzeDiff/diffEngine.js +209 -0
  24. package/dist/cli/analyzeDiff/ignoreRules.d.ts +33 -0
  25. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -0
  26. package/dist/cli/analyzeDiff/ignoreRules.js +93 -0
  27. package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts +10 -0
  28. package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts.map +1 -0
  29. package/dist/cli/analyzeDiff/ignoreSemanticChanges.js +84 -0
  30. package/dist/cli/analyzeDiff/logLegacyReport.d.ts +6 -0
  31. package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +1 -0
  32. package/dist/cli/analyzeDiff/logLegacyReport.js +29 -0
  33. package/dist/cli/analyzeDiff/miracles.d.ts +89 -0
  34. package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -0
  35. package/dist/cli/analyzeDiff/miracles.js +325 -0
  36. package/dist/cli/analyzeDiff/pluginPaths.d.ts +5 -0
  37. package/dist/cli/analyzeDiff/pluginPaths.d.ts.map +1 -0
  38. package/dist/cli/analyzeDiff/pluginPaths.js +13 -0
  39. package/dist/cli/analyzeDiff/report.d.ts +3 -0
  40. package/dist/cli/analyzeDiff/report.d.ts.map +1 -0
  41. package/dist/cli/analyzeDiff/report.js +7 -0
  42. package/dist/cli/analyzeDiff/semanticDiffContext.d.ts +6 -0
  43. package/dist/cli/analyzeDiff/semanticDiffContext.d.ts.map +1 -0
  44. package/dist/cli/analyzeDiff/semanticDiffContext.js +16 -0
  45. package/dist/cli/analyzeDiff/specParser.d.ts +22 -0
  46. package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -0
  47. package/dist/cli/analyzeDiff/specParser.js +80 -0
  48. package/dist/cli/analyzeDiff/types.d.ts +61 -0
  49. package/dist/cli/analyzeDiff/types.d.ts.map +1 -0
  50. package/dist/cli/analyzeDiff/types.js +2 -0
  51. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +6 -0
  52. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +1 -0
  53. package/dist/cli/analyzeDiff/writeLegacyReport.js +21 -0
  54. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  55. package/dist/cli/checkAndUpdateConfig/checkConfig.js +13 -8
  56. package/dist/cli/checkAndUpdateConfig/constants.d.ts +0 -9
  57. package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -1
  58. package/dist/cli/checkAndUpdateConfig/constants.js +1 -10
  59. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  60. package/dist/cli/checkAndUpdateConfig/updateConfig.js +11 -7
  61. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -1
  62. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +6 -3
  63. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -1
  64. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +3 -2
  65. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  66. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +5 -0
  67. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -1
  68. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +2 -2
  69. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts +2 -0
  70. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts.map +1 -0
  71. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +152 -0
  72. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +6 -2
  73. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  74. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +70 -22
  75. package/dist/cli/index.js +62 -5
  76. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  77. package/dist/cli/initOpenApiConfig/init.js +19 -6
  78. package/dist/cli/initOpenApiConfig/initConfig.d.ts +1 -0
  79. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  80. package/dist/cli/initOpenApiConfig/initConfig.js +47 -24
  81. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +8 -1
  82. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  83. package/dist/cli/initOpenApiConfig/initCustomRequest.js +40 -8
  84. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  85. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +60 -0
  86. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.d.ts.map +1 -1
  87. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.js +2 -1
  88. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.d.ts.map +1 -1
  89. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.js +2 -1
  90. package/dist/cli/interactive/confirmDialog.d.ts.map +1 -1
  91. package/dist/cli/interactive/confirmDialog.js +3 -2
  92. package/dist/cli/interactive/constants.d.ts +2 -2
  93. package/dist/cli/interactive/constants.js +8 -8
  94. package/dist/cli/interactive/selectDialog.d.ts.map +1 -1
  95. package/dist/cli/interactive/selectDialog.js +11 -6
  96. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  97. package/dist/cli/previewChanges/previewChanges.js +151 -39
  98. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  99. package/dist/cli/previewChanges/utils/updateOutputPaths.js +6 -0
  100. package/dist/cli/schemas/analyzeDiff.d.ts +14 -0
  101. package/dist/cli/schemas/analyzeDiff.d.ts.map +1 -0
  102. package/dist/cli/schemas/analyzeDiff.js +28 -0
  103. package/dist/cli/schemas/generate.d.ts +9 -0
  104. package/dist/cli/schemas/generate.d.ts.map +1 -1
  105. package/dist/cli/schemas/generate.js +9 -0
  106. package/dist/cli/schemas/index.d.ts +3 -1
  107. package/dist/cli/schemas/index.d.ts.map +1 -1
  108. package/dist/cli/schemas/index.js +2 -0
  109. package/dist/common/Consts.d.ts +1 -0
  110. package/dist/common/Consts.d.ts.map +1 -1
  111. package/dist/common/Consts.js +19 -2
  112. package/dist/common/Logger.d.ts +20 -1
  113. package/dist/common/Logger.d.ts.map +1 -1
  114. package/dist/common/Logger.js +70 -9
  115. package/dist/common/LoggerMessages.d.ts +136 -33
  116. package/dist/common/LoggerMessages.d.ts.map +1 -1
  117. package/dist/common/LoggerMessages.js +119 -45
  118. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts +1 -1
  119. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  120. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +20 -4
  121. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +4 -0
  122. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  123. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +10 -2
  124. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  125. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +10 -2
  126. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  127. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +10 -2
  128. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -1
  129. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +77 -0
  130. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -0
  131. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +41 -0
  132. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +79 -0
  133. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -0
  134. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +19 -0
  135. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +326 -28
  136. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  137. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +15 -17
  138. package/dist/common/VersionedSchema/CommonSchemas.d.ts +52 -4
  139. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  140. package/dist/common/VersionedSchema/CommonSchemas.js +48 -7
  141. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +6 -2
  142. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
  143. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +4 -0
  144. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
  145. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +4 -0
  146. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  147. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +6 -2
  148. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
  149. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +6 -2
  150. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  151. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +6 -2
  152. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  153. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +4 -0
  154. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
  155. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +4 -0
  156. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
  157. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +6 -2
  158. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
  159. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  160. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +40 -1
  161. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts +2 -0
  162. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts.map +1 -0
  163. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +185 -0
  164. package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +20 -3
  165. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +19 -1
  166. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +4 -0
  167. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  168. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +68 -23
  169. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +1 -1
  170. package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +1 -1
  171. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +10 -0
  172. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  173. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +34 -15
  174. package/dist/common/__tests__/Logger.test.d.ts +2 -0
  175. package/dist/common/__tests__/Logger.test.d.ts.map +1 -0
  176. package/dist/common/__tests__/Logger.test.js +100 -0
  177. package/dist/common/utils/__tests__/convertArrayToObject.test.js +67 -169
  178. package/dist/common/utils/__tests__/eslintFix.test.d.ts +2 -0
  179. package/dist/common/utils/__tests__/eslintFix.test.d.ts.map +1 -0
  180. package/dist/common/utils/__tests__/eslintFix.test.js +134 -0
  181. package/dist/common/utils/__tests__/format.test.d.ts +2 -0
  182. package/dist/common/utils/__tests__/format.test.d.ts.map +1 -0
  183. package/dist/common/utils/__tests__/format.test.js +90 -0
  184. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  185. package/dist/common/utils/convertArrayToObject.js +54 -14
  186. package/dist/common/utils/eslintFix.d.ts +7 -0
  187. package/dist/common/utils/eslintFix.d.ts.map +1 -0
  188. package/dist/common/utils/eslintFix.js +78 -0
  189. package/dist/common/utils/format.d.ts +1 -1
  190. package/dist/common/utils/format.d.ts.map +1 -1
  191. package/dist/common/utils/format.js +39 -15
  192. package/dist/common/utils/jsonPath.d.ts +5 -0
  193. package/dist/common/utils/jsonPath.d.ts.map +1 -0
  194. package/dist/common/utils/jsonPath.js +27 -0
  195. package/dist/common/utils/normalizeObject.d.ts +2 -0
  196. package/dist/common/utils/normalizeObject.d.ts.map +1 -0
  197. package/dist/common/utils/normalizeObject.js +63 -0
  198. package/dist/core/Context.d.ts +8 -1
  199. package/dist/core/Context.d.ts.map +1 -1
  200. package/dist/core/Context.js +23 -4
  201. package/dist/core/OpenApiClient.d.ts +2 -0
  202. package/dist/core/OpenApiClient.d.ts.map +1 -1
  203. package/dist/core/OpenApiClient.js +127 -6
  204. package/dist/core/WriteClient.d.ts +12 -1
  205. package/dist/core/WriteClient.d.ts.map +1 -1
  206. package/dist/core/WriteClient.js +83 -8
  207. package/dist/core/__tests__/WriteClient.test.js +6 -1
  208. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts +2 -0
  209. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts.map +1 -0
  210. package/dist/core/api/v2/parser/__tests__/getModel.test.js +34 -0
  211. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  212. package/dist/core/api/v2/parser/getModel.js +6 -1
  213. package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
  214. package/dist/core/api/v2/parser/getOperation.js +2 -0
  215. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  216. package/dist/core/api/v2/parser/getOperationResponses.js +9 -1
  217. package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
  218. package/dist/core/api/v2/parser/getType.js +2 -1
  219. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts +2 -0
  220. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts.map +1 -1
  221. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts +2 -0
  222. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts.map +1 -0
  223. package/dist/core/api/v3/parser/__tests__/getContent.test.js +65 -0
  224. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts +2 -0
  225. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts.map +1 -0
  226. package/dist/core/api/v3/parser/__tests__/getModel.test.js +34 -0
  227. package/dist/core/api/v3/parser/getContent.d.ts.map +1 -1
  228. package/dist/core/api/v3/parser/getContent.js +21 -11
  229. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  230. package/dist/core/api/v3/parser/getModel.js +6 -1
  231. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  232. package/dist/core/api/v3/parser/getOperation.js +2 -0
  233. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  234. package/dist/core/api/v3/parser/getOperationResponses.js +9 -1
  235. package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
  236. package/dist/core/api/v3/parser/getType.js +2 -1
  237. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts +2 -0
  238. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts.map +1 -1
  239. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts +2 -0
  240. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts.map +1 -0
  241. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.js +100 -0
  242. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts +2 -0
  243. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts.map +1 -0
  244. package/dist/core/governance/__tests__/loadGovernanceConfig.test.js +71 -0
  245. package/dist/core/governance/evaluateGovernanceRules.d.ts +42 -0
  246. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -0
  247. package/dist/core/governance/evaluateGovernanceRules.js +134 -0
  248. package/dist/core/governance/governanceConfigSchema.d.ts +4 -0
  249. package/dist/core/governance/governanceConfigSchema.d.ts.map +1 -0
  250. package/dist/core/governance/governanceConfigSchema.js +39 -0
  251. package/dist/core/governance/loadGovernanceConfig.d.ts +7 -0
  252. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -0
  253. package/dist/core/governance/loadGovernanceConfig.js +60 -0
  254. package/dist/core/index.d.ts +3 -0
  255. package/dist/core/index.d.ts.map +1 -1
  256. package/dist/core/index.js +4 -2
  257. package/dist/core/plugins/GeneratorPlugin.model.d.ts +42 -0
  258. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -0
  259. package/dist/core/plugins/GeneratorPlugin.model.js +2 -0
  260. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts +2 -0
  261. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts.map +1 -0
  262. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.js +115 -0
  263. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts +2 -0
  264. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts.map +1 -0
  265. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.js +62 -0
  266. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts +28 -0
  267. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -0
  268. package/dist/core/plugins/applySemanticDiffPluginHooks.js +160 -0
  269. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts +6 -0
  270. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts.map +1 -0
  271. package/dist/core/plugins/builtins/xTypescriptTypePlugin.js +13 -0
  272. package/dist/core/plugins/getBuiltinPlugins.d.ts +6 -0
  273. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -0
  274. package/dist/core/plugins/getBuiltinPlugins.js +10 -0
  275. package/dist/core/plugins/index.d.ts +4 -0
  276. package/dist/core/plugins/index.d.ts.map +1 -0
  277. package/dist/core/plugins/index.js +5 -0
  278. package/dist/core/plugins/loadGeneratorPlugins.d.ts +6 -0
  279. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -0
  280. package/dist/core/plugins/loadGeneratorPlugins.js +94 -0
  281. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts +2 -0
  282. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts.map +1 -0
  283. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +537 -0
  284. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts +2 -0
  285. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts.map +1 -0
  286. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +66 -0
  287. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +45 -0
  288. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -0
  289. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +640 -0
  290. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +11 -0
  291. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -0
  292. package/dist/core/semanticDiff/semanticDiffReportSchema.js +132 -0
  293. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts +2 -0
  294. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts.map +1 -0
  295. package/dist/core/strict/__tests__/validateOpenApiStrict.test.js +156 -0
  296. package/dist/core/strict/validateOpenApiStrict.d.ts +43 -0
  297. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -0
  298. package/dist/core/strict/validateOpenApiStrict.js +253 -0
  299. package/dist/core/types/base/ClientArtifacts.model.d.ts +2 -0
  300. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  301. package/dist/core/types/base/Templates.model.d.ts +4 -1
  302. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  303. package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts +6 -0
  304. package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts.map +1 -0
  305. package/dist/core/types/enums/EmptySchemaStrategy.enum.js +9 -0
  306. package/dist/core/types/enums/ModelsMode.enum.d.ts +5 -0
  307. package/dist/core/types/enums/ModelsMode.enum.d.ts.map +1 -0
  308. package/dist/core/types/enums/ModelsMode.enum.js +8 -0
  309. package/dist/core/types/shared/Client.model.d.ts +2 -0
  310. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  311. package/dist/core/types/shared/DiffInfo.model.d.ts +13 -0
  312. package/dist/core/types/shared/DiffInfo.model.d.ts.map +1 -0
  313. package/dist/core/types/shared/DiffInfo.model.js +2 -0
  314. package/dist/core/types/shared/Miracle.model.d.ts +13 -0
  315. package/dist/core/types/shared/Miracle.model.d.ts.map +1 -0
  316. package/dist/core/types/shared/Miracle.model.js +2 -0
  317. package/dist/core/types/shared/Model.model.d.ts +23 -0
  318. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  319. package/dist/core/types/shared/Operation.model.d.ts +5 -0
  320. package/dist/core/types/shared/Operation.model.d.ts.map +1 -1
  321. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  322. package/dist/core/utils/__mocks__/templates.js +9 -0
  323. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts +2 -0
  324. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts.map +1 -0
  325. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +108 -0
  326. package/dist/core/utils/__tests__/getMappedType.test.js +2 -0
  327. package/dist/core/utils/__tests__/getOperationResponseCode.test.js +7 -2
  328. package/dist/core/utils/__tests__/getOperationResults.test.d.ts +2 -0
  329. package/dist/core/utils/__tests__/getOperationResults.test.d.ts.map +1 -0
  330. package/dist/core/utils/__tests__/getOperationResults.test.js +43 -0
  331. package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts +2 -0
  332. package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts.map +1 -0
  333. package/dist/core/utils/__tests__/getRelativeModelPath.test.js +27 -0
  334. package/dist/core/utils/__tests__/modelHelpers.test.d.ts +2 -0
  335. package/dist/core/utils/__tests__/modelHelpers.test.d.ts.map +1 -0
  336. package/dist/core/utils/__tests__/modelHelpers.test.js +151 -0
  337. package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts +2 -0
  338. package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts.map +1 -0
  339. package/dist/core/utils/__tests__/postProcessModelImports.test.js +67 -0
  340. package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts +2 -0
  341. package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts.map +1 -0
  342. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +26 -0
  343. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts +2 -0
  344. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts.map +1 -0
  345. package/dist/core/utils/__tests__/prepareDtoModels.test.js +116 -0
  346. package/dist/core/utils/__tests__/resolveRefPath.test.d.ts +2 -0
  347. package/dist/core/utils/__tests__/resolveRefPath.test.d.ts.map +1 -0
  348. package/dist/core/utils/__tests__/resolveRefPath.test.js +22 -0
  349. package/dist/core/utils/__tests__/serviceHelpers.test.d.ts +2 -0
  350. package/dist/core/utils/__tests__/serviceHelpers.test.d.ts.map +1 -0
  351. package/dist/core/utils/__tests__/serviceHelpers.test.js +122 -0
  352. package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts +2 -0
  353. package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts.map +1 -0
  354. package/dist/core/utils/__tests__/writeClientExecutor.test.js +20 -0
  355. package/dist/core/utils/__tests__/writeClientModels.test.js +50 -0
  356. package/dist/core/utils/__tests__/writeClientSchemas.test.js +2 -0
  357. package/dist/core/utils/applyDiffReportToClient.d.ts +14 -0
  358. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -0
  359. package/dist/core/utils/applyDiffReportToClient.js +367 -0
  360. package/dist/core/utils/getMappedType.d.ts.map +1 -1
  361. package/dist/core/utils/getMappedType.js +2 -0
  362. package/dist/core/utils/getOperationResponseCode.d.ts.map +1 -1
  363. package/dist/core/utils/getOperationResponseCode.js +10 -8
  364. package/dist/core/utils/getRelativeModelPath.d.ts +9 -0
  365. package/dist/core/utils/getRelativeModelPath.d.ts.map +1 -0
  366. package/dist/core/utils/getRelativeModelPath.js +37 -0
  367. package/dist/core/utils/loadDiffReport.d.ts +39 -0
  368. package/dist/core/utils/loadDiffReport.d.ts.map +1 -0
  369. package/dist/core/utils/loadDiffReport.js +51 -0
  370. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  371. package/dist/core/utils/modelHelpers.js +37 -3
  372. package/dist/core/utils/postProcessModelImports.d.ts.map +1 -1
  373. package/dist/core/utils/postProcessModelImports.js +14 -1
  374. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  375. package/dist/core/utils/postProcessServiceImports.js +1 -2
  376. package/dist/core/utils/precompileTemplates.js +1 -0
  377. package/dist/core/utils/prepareDtoModels.d.ts +3 -0
  378. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -0
  379. package/dist/core/utils/prepareDtoModels.js +189 -0
  380. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  381. package/dist/core/utils/registerHandlebarHelpers.js +29 -1
  382. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  383. package/dist/core/utils/registerHandlebarTemplates.js +48 -41
  384. package/dist/core/utils/resolveRefPath.d.ts.map +1 -1
  385. package/dist/core/utils/resolveRefPath.js +1 -4
  386. package/dist/core/utils/validateRawOptions.d.ts +1 -1
  387. package/dist/core/utils/validateRawOptions.d.ts.map +1 -1
  388. package/dist/core/utils/validateRawOptions.js +4 -2
  389. package/dist/core/utils/writeClientCore.d.ts +2 -0
  390. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  391. package/dist/core/utils/writeClientCore.js +6 -1
  392. package/dist/core/utils/writeClientCoreIndex.d.ts +1 -0
  393. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  394. package/dist/core/utils/writeClientCoreIndex.js +2 -2
  395. package/dist/core/utils/writeClientExecutor.d.ts +6 -1
  396. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  397. package/dist/core/utils/writeClientExecutor.js +22 -3
  398. package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
  399. package/dist/core/utils/writeClientFullIndex.js +3 -1
  400. package/dist/core/utils/writeClientModels.d.ts +6 -0
  401. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  402. package/dist/core/utils/writeClientModels.js +24 -3
  403. package/dist/core/utils/writeClientModelsIndex.d.ts +2 -0
  404. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  405. package/dist/core/utils/writeClientModelsIndex.js +2 -2
  406. package/dist/core/utils/writeClientSchemas.d.ts +6 -1
  407. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  408. package/dist/core/utils/writeClientSchemas.js +16 -3
  409. package/dist/core/utils/writeClientServices.d.ts +2 -0
  410. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  411. package/dist/core/utils/writeClientServices.js +6 -2
  412. package/dist/templatesCompiled/cli/openApiConfig.d.ts +4 -1
  413. package/dist/templatesCompiled/cli/openApiConfig.d.ts.map +1 -1
  414. package/dist/templatesCompiled/cli/openApiConfig.js +88 -37
  415. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  416. package/dist/templatesCompiled/client/core/ApiRequestOptions.js +1 -1
  417. package/dist/templatesCompiled/client/core/ApiResult.js +1 -1
  418. package/dist/templatesCompiled/client/core/BaseDto.d.ts +8 -0
  419. package/dist/templatesCompiled/client/core/BaseDto.d.ts.map +1 -0
  420. package/dist/templatesCompiled/client/core/BaseDto.js +18 -0
  421. package/dist/templatesCompiled/client/core/axios/getResponseBody.js +1 -1
  422. package/dist/templatesCompiled/client/core/axios/request.js +3 -3
  423. package/dist/templatesCompiled/client/core/axios/sendRequest.js +4 -4
  424. package/dist/templatesCompiled/client/core/dtoUtils.d.ts +8 -0
  425. package/dist/templatesCompiled/client/core/dtoUtils.d.ts.map +1 -0
  426. package/dist/templatesCompiled/client/core/dtoUtils.js +18 -0
  427. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +2 -0
  428. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  429. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +13 -8
  430. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +1 -1
  431. package/dist/templatesCompiled/client/core/fetch/getResponseBody.js +1 -1
  432. package/dist/templatesCompiled/client/core/fetch/request.js +3 -3
  433. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  434. package/dist/templatesCompiled/client/core/functions/isBinary.js +1 -1
  435. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  436. package/dist/templatesCompiled/client/core/node/getResponseBody.js +1 -1
  437. package/dist/templatesCompiled/client/core/node/request.js +3 -3
  438. package/dist/templatesCompiled/client/core/xhr/getResponseBody.js +1 -1
  439. package/dist/templatesCompiled/client/core/xhr/request.js +3 -3
  440. package/dist/templatesCompiled/client/core/xhr/sendRequest.js +4 -4
  441. package/dist/templatesCompiled/client/exportClient.d.ts +4 -0
  442. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  443. package/dist/templatesCompiled/client/exportClient.js +51 -13
  444. package/dist/templatesCompiled/client/exportModels.d.ts +34 -0
  445. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -0
  446. package/dist/templatesCompiled/client/exportModels.js +280 -0
  447. package/dist/templatesCompiled/client/exportSchema.d.ts +5 -1
  448. package/dist/templatesCompiled/client/exportSchema.d.ts.map +1 -1
  449. package/dist/templatesCompiled/client/exportSchema.js +37 -7
  450. package/dist/templatesCompiled/client/exportService.d.ts +9 -4
  451. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  452. package/dist/templatesCompiled/client/exportService.js +96 -37
  453. package/dist/templatesCompiled/client/indexCore.d.ts +3 -1
  454. package/dist/templatesCompiled/client/indexCore.d.ts.map +1 -1
  455. package/dist/templatesCompiled/client/indexCore.js +13 -2
  456. package/dist/templatesCompiled/client/indexFull.d.ts +10 -7
  457. package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
  458. package/dist/templatesCompiled/client/indexFull.js +54 -33
  459. package/dist/templatesCompiled/client/indexModels.d.ts +7 -5
  460. package/dist/templatesCompiled/client/indexModels.d.ts.map +1 -1
  461. package/dist/templatesCompiled/client/indexModels.js +27 -18
  462. package/dist/templatesCompiled/client/indexSimple.d.ts +1 -0
  463. package/dist/templatesCompiled/client/indexSimple.d.ts.map +1 -1
  464. package/dist/templatesCompiled/client/indexSimple.js +4 -1
  465. package/dist/templatesCompiled/client/joi/exportSchema.js +5 -5
  466. package/dist/templatesCompiled/client/joi/partials/joiSchema.js +7 -7
  467. package/dist/templatesCompiled/client/joi/partials/joiSchemaComposition.js +4 -4
  468. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts +27 -19
  469. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts.map +1 -1
  470. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.js +144 -63
  471. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts +5 -3
  472. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts.map +1 -1
  473. package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.js +39 -12
  474. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts +1 -0
  475. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts.map +1 -1
  476. package/dist/templatesCompiled/client/jsonschema/exportSchema.js +21 -17
  477. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchema.js +7 -7
  478. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaArray.js +5 -5
  479. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaComposition.js +2 -2
  480. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaDictionary.js +5 -5
  481. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts +3 -1
  482. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts.map +1 -1
  483. package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.js +45 -15
  484. package/dist/templatesCompiled/client/partials/exportInterface.d.ts +13 -5
  485. package/dist/templatesCompiled/client/partials/exportInterface.d.ts.map +1 -1
  486. package/dist/templatesCompiled/client/partials/exportInterface.js +91 -21
  487. package/dist/templatesCompiled/client/partials/result.d.ts +6 -4
  488. package/dist/templatesCompiled/client/partials/result.d.ts.map +1 -1
  489. package/dist/templatesCompiled/client/partials/result.js +16 -6
  490. package/dist/templatesCompiled/client/partials/serviceOption.d.ts +1 -0
  491. package/dist/templatesCompiled/client/partials/serviceOption.d.ts.map +1 -1
  492. package/dist/templatesCompiled/client/partials/serviceOption.js +11 -4
  493. package/dist/templatesCompiled/client/yup/exportSchema.js +3 -3
  494. package/dist/templatesCompiled/client/yup/partials/yupSchema.js +7 -7
  495. package/dist/templatesCompiled/client/yup/partials/yupSchemaComposition.js +4 -4
  496. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts +22 -16
  497. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts.map +1 -1
  498. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.js +72 -60
  499. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts +5 -3
  500. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts.map +1 -1
  501. package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.js +39 -12
  502. package/dist/templatesCompiled/client/zod/exportSchema.js +3 -3
  503. package/dist/templatesCompiled/client/zod/partials/zodSchema.js +7 -7
  504. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts +5 -6
  505. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts.map +1 -1
  506. package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.js +14 -28
  507. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts +3 -0
  508. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts.map +1 -1
  509. package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.js +32 -8
  510. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts +3 -4
  511. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts.map +1 -1
  512. package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.js +9 -23
  513. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts +27 -19
  514. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts.map +1 -1
  515. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.js +77 -61
  516. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts +4 -2
  517. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts.map +1 -1
  518. package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.js +18 -7
  519. package/package.json +8 -6
  520. package/dist/common/defaultOptions.d.ts +0 -3
  521. package/dist/common/defaultOptions.d.ts.map +0 -1
  522. package/dist/common/defaultOptions.js +0 -28
  523. package/dist/core/utils/advancedDeduplicatePath.d.ts +0 -5
  524. package/dist/core/utils/advancedDeduplicatePath.d.ts.map +0 -1
  525. package/dist/core/utils/advancedDeduplicatePath.js +0 -29
@@ -1,7 +1,11 @@
1
1
  import { OptionValues } from 'commander';
2
2
  /**
3
- * Запускает генерацию OpenAPI клиента
4
- * Поддерживает как конфиг-файл, так и параметры из CLI
3
+ * Runs OpenAPI client generation and returns a process exit code.
4
+ * Does not call `process.exit` safe for in-process unit tests.
5
+ */
6
+ export declare function runGenerateOpenApiClient(options: OptionValues): Promise<number>;
7
+ /**
8
+ * CLI entry: runs generation and terminates the process with the resulting exit code.
5
9
  */
6
10
  export declare function generateOpenApiClient(options: OptionValues): Promise<void>;
7
11
  //# sourceMappingURL=generateOpenApiClient.d.ts.map
@@ -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,CA6DhF"}
1
+ {"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA0BzC;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA+FrF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF"}
@@ -33,9 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runGenerateOpenApiClient = runGenerateOpenApiClient;
36
37
  exports.generateOpenApiClient = generateOpenApiClient;
37
38
  const Consts_1 = require("../../common/Consts");
38
- const defaultOptions_1 = require("../../common/defaultOptions");
39
39
  const Enums_1 = require("../../common/Enums");
40
40
  const LoggerMessages_1 = require("../../common/LoggerMessages");
41
41
  const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject");
@@ -43,14 +43,24 @@ const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
43
43
  const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
44
44
  const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
45
45
  const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
46
+ const UnifiedVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas");
46
47
  const migrateDataToLatestSchemaVersion_1 = require("../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
47
48
  const OpenAPI = __importStar(require("../../core"));
48
49
  const schemas_1 = require("../schemas");
50
+ const generateCliFlatSchema = UnifiedVersionedSchemas_1.flatOptionsSchema.strict().superRefine((data, ctx) => {
51
+ if (data.excludeCoreServiceFiles === true && data.request) {
52
+ ctx.addIssue({
53
+ code: 'custom',
54
+ message: '"request" can only be used when "excludeCoreServiceFiles" is false',
55
+ path: ['request'],
56
+ });
57
+ }
58
+ });
49
59
  /**
50
- * Запускает генерацию OpenAPI клиента
51
- * Поддерживает как конфиг-файл, так и параметры из CLI
60
+ * Runs OpenAPI client generation and returns a process exit code.
61
+ * Does not call `process.exit` safe for in-process unit tests.
52
62
  */
53
- async function generateOpenApiClient(options) {
63
+ async function runGenerateOpenApiClient(options) {
54
64
  const { openapiConfig, ...clientOptions } = options;
55
65
  try {
56
66
  const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.generateOptionsSchema, {
@@ -58,32 +68,46 @@ async function generateOpenApiClient(options) {
58
68
  ...clientOptions,
59
69
  });
60
70
  if (!validationResult.success) {
61
- Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
62
- process.exit(1);
71
+ Consts_1.APP_LOGGER.errorWithHint({
72
+ code: 'NO_OPTIONS_PROVIDED',
73
+ message: LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(validationResult.errors.join('\n')),
74
+ });
75
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
76
+ return 1;
63
77
  }
64
78
  const validatedOptions = validationResult.data;
65
- // Если есть минимальные опции (input и output), используем их
66
79
  const hasMinimumRequiredOptions = !!validatedOptions.input && !!validatedOptions.output;
67
80
  if (hasMinimumRequiredOptions) {
68
- // Используем старую Joi валидацию для обратной совместимости
69
- // В будущем можно заменить на Zod
70
- const { error: defaultValuesError, value } = defaultOptions_1.defaultOptions.validate({
81
+ const directOptionsValidationResult = (0, validateZodOptions_1.validateZodOptions)(generateCliFlatSchema, {
71
82
  input: validatedOptions.input,
72
83
  output: validatedOptions.output,
73
84
  ...clientOptions,
74
85
  });
75
- if (defaultValuesError) {
76
- await OpenAPI.generate(value);
77
- process.exit(0);
86
+ if (!directOptionsValidationResult.success) {
87
+ Consts_1.APP_LOGGER.errorWithHint({
88
+ code: 'NO_OPTIONS_PROVIDED',
89
+ message: LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(directOptionsValidationResult.errors.join('\n')),
90
+ });
91
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
92
+ return 1;
78
93
  }
94
+ await OpenAPI.generate(directOptionsValidationResult.data);
95
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
96
+ return 0;
79
97
  }
80
98
  const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
81
99
  if (!configData) {
82
- Consts_1.APP_LOGGER.error(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING);
83
- process.exit(1);
100
+ Consts_1.APP_LOGGER.errorWithHint({
101
+ code: validatedOptions.openapiConfig ? 'CONFIG_FILE_NOT_FOUND_AT' : 'CONFIG_FILE_MISSING',
102
+ message: `${LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING}\n${LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING_HINT}`,
103
+ });
104
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
105
+ return 1;
106
+ }
107
+ if (Array.isArray(configData)) {
108
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.ARRAY_DEPRECATED);
84
109
  }
85
110
  const preparedOptions = (0, convertArrayToObject_1.convertArrayToObject)(configData);
86
- // Use unified migration system for all schema types
87
111
  const migratedOptions = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
88
112
  rawInput: preparedOptions,
89
113
  migrationPlans: AllMigrationPlans_1.allMigrationPlans,
@@ -91,15 +115,39 @@ async function generateOpenApiClient(options) {
91
115
  migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
92
116
  });
93
117
  if (!migratedOptions) {
94
- Consts_1.APP_LOGGER.error(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONVERSION_FAILED);
95
- process.exit(1);
118
+ Consts_1.APP_LOGGER.errorWithHint({
119
+ code: 'NO_VALID_SPEC_FILES_FOUND',
120
+ message: LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONVERSION_FAILED,
121
+ });
122
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
123
+ return 1;
96
124
  }
97
125
  const { value } = migratedOptions;
98
- await OpenAPI.generate(value);
99
- process.exit(0);
126
+ const mergedOptions = {
127
+ ...value,
128
+ strictOpenapi: validatedOptions.strictOpenapi ?? value.strictOpenapi,
129
+ reportFile: validatedOptions.reportFile ?? value.reportFile,
130
+ governanceConfig: validatedOptions.governanceConfig ?? value.governanceConfig,
131
+ };
132
+ await OpenAPI.generate(mergedOptions);
133
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
134
+ return 0;
100
135
  }
101
136
  catch (error) {
102
- Consts_1.APP_LOGGER.error(error.message);
103
- process.exit(1);
137
+ const message = error instanceof Error ? error.message : String(error);
138
+ Consts_1.APP_LOGGER.errorWithHint({
139
+ code: 'SPEC_FILES_FIND_ERROR',
140
+ message: LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(message),
141
+ error,
142
+ });
143
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
144
+ return 1;
104
145
  }
105
146
  }
147
+ /**
148
+ * CLI entry: runs generation and terminates the process with the resulting exit code.
149
+ */
150
+ async function generateOpenApiClient(options) {
151
+ const exitCode = await runGenerateOpenApiClient(options);
152
+ process.exit(exitCode);
153
+ }
package/dist/cli/index.js CHANGED
@@ -8,10 +8,14 @@ const commander_1 = require("commander");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const Consts_1 = require("../common/Consts");
10
10
  const Enums_1 = require("../common/Enums");
11
+ const LoggerMessages_1 = require("../common/LoggerMessages");
11
12
  const UpdateNotifier_1 = require("../common/UpdateNotifier");
12
13
  const pathHelpers_1 = require("../common/utils/pathHelpers");
14
+ const EmptySchemaStrategy_enum_1 = require("../core/types/enums/EmptySchemaStrategy.enum");
13
15
  const HttpClient_enum_1 = require("../core/types/enums/HttpClient.enum");
16
+ const ModelsMode_enum_1 = require("../core/types/enums/ModelsMode.enum");
14
17
  const ValidationLibrary_enum_1 = require("../core/types/enums/ValidationLibrary.enum");
18
+ const analyzeDiff_1 = require("./analyzeDiff/analyzeDiff");
15
19
  const checkConfig_1 = require("./checkAndUpdateConfig/checkConfig");
16
20
  const updateConfig_1 = require("./checkAndUpdateConfig/updateConfig");
17
21
  const generateOpenApiClient_1 = require("./generateOpenApiClient/generateOpenApiClient");
@@ -46,8 +50,12 @@ program
46
50
  .addOption(new commander_1.Option('-c, --httpClient <value>', 'HTTP client to generate').choices([...Object.values(HttpClient_enum_1.HttpClient)]).default(HttpClient_enum_1.HttpClient.FETCH))
47
51
  .option('--useOptions', 'Use options instead of arguments (default: false)')
48
52
  .option('--useUnionTypes', 'Use union types instead of enums (default: false)')
53
+ .option('--useHistory', 'Apply diff report annotations during generation (default: false)')
54
+ .option('--diffReport <value>', 'Path to a diff report JSON file')
55
+ .addOption(new commander_1.Option('--modelsMode <value>', 'Models generation mode').choices([...Object.values(ModelsMode_enum_1.ModelsMode)]).default(ModelsMode_enum_1.ModelsMode.INTERFACES))
49
56
  .option('--excludeCoreServiceFiles', 'The generation of the core and services is excluded (default: false)')
50
57
  .option('--request <value>', 'Path to custom request file')
58
+ .option('--customExecutorPath <value>', 'Path to custom createExecutorAdapter module')
51
59
  .option('--interfacePrefix <value>', 'Prefix for interface model(default: "I")', 'I')
52
60
  .option('--enumPrefix <value>', 'Prefix for enum model(default: "E")', 'E')
53
61
  .option('--typePrefix <value>', 'Prefix for type model(default: "T")', 'T')
@@ -56,7 +64,13 @@ program
56
64
  .addOption(new commander_1.Option('-t, --logTarget <target>', 'Target of logging').choices([...Object.values(Enums_1.ELogOutput)]).default(Enums_1.ELogOutput.CONSOLE))
57
65
  .option('-s, --sortByRequired', 'Property sorting strategy: simplified or extended')
58
66
  .option('--useSeparatedIndexes', 'Use separate index files for the core, models, schemas, and services.')
67
+ .option('--strict-openapi', 'Enable strict OpenAPI diagnostics report and fail generation when strict errors are found')
68
+ .option('--report-file <value>', 'Path to strict OpenAPI diagnostics report JSON file', './openapi-report.json')
69
+ .option('--governance-config <value>', 'Path to governance rules JSON config file')
59
70
  .addOption(new commander_1.Option('--validationLibrary <value>', 'Validation library to use for schema validation').choices([...Object.values(ValidationLibrary_enum_1.ValidationLibrary)]).default(ValidationLibrary_enum_1.ValidationLibrary.NONE))
71
+ .addOption(new commander_1.Option('--emptySchemaStrategy <value>', 'How to handle empty generated schemas').choices([...Object.values(EmptySchemaStrategy_enum_1.EmptySchemaStrategy)]).default(EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP))
72
+ .option('--useProjectPrettier', 'Use project Prettier config for formatting generated code (default: false)')
73
+ .option('--useEslintFix', 'Run ESLint --fix on generated files after writing (default: false)')
60
74
  .hook('preAction', async () => {
61
75
  await updateNotifier.checkAndNotify();
62
76
  })
@@ -75,7 +89,7 @@ program
75
89
  await updateNotifier.checkAndNotify();
76
90
  })
77
91
  .action(async (options) => {
78
- await (0, checkConfig_1.checkConfig)(options.openapiConfig);
92
+ await (0, checkConfig_1.checkConfig)(options);
79
93
  });
80
94
  /**
81
95
  * update - Команда для обновления конфигурационного файла
@@ -126,18 +140,61 @@ program
126
140
  .action(async (options) => {
127
141
  await (0, previewChanges_1.previewChanges)(options);
128
142
  });
143
+ /**
144
+ * analyze-diff - Команда для анализа изменений между двумя версиями OpenAPI спецификации
145
+ *
146
+ * @example Как использовать сейчас
147
+ * Сравнение с явным старым файлом:
148
+ * openapi-codegen-cli analyze-diff \
149
+ * --input ./openapi/current.yaml \
150
+ * --compare-with ./openapi/previous.yaml \
151
+ * --output-report ./openapi-diff-report.json
152
+ *
153
+ * Сравнение с версией из Git:
154
+ * openapi-codegen-cli analyze-diff \
155
+ * --input openapi/spec.yaml \
156
+ * --git HEAD~1
157
+ */
158
+ program
159
+ .command('analyze-diff')
160
+ .description('Analyzes differences between two OpenAPI specifications and produces a JSON report')
161
+ .addHelpText('before', (0, utils_1.getCLIName)(APP_NAME))
162
+ .addHelpText('after', [
163
+ '',
164
+ 'Base source resolution:',
165
+ ' 1) --compare-with has priority over --git when both are provided.',
166
+ ' 2) --git is used only when --compare-with is not provided.',
167
+ ' 3) when neither is provided, analyze-diff is skipped with exit code 0.',
168
+ ].join('\n'))
169
+ .option('-i, --input <value>', 'Path to current OpenAPI specification file (required)')
170
+ .option('--compare-with <value>', 'Path to previous OpenAPI specification file (overrides --git when both are provided)')
171
+ .option('--git <ref>', 'Git ref to read previous specification version from (used when --compare-with is not set)')
172
+ .option('--output-report <value>', 'Path to save JSON diff report')
173
+ .option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options (default: "openapi.config.json")', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
174
+ .option('--governance-config <value>', 'Path to governance rules JSON config file')
175
+ .option('--strict-plugin-mode', 'Fail when plugin hook execution throws')
176
+ .option('--ci', 'Exit with code 1 when governance errors are found')
177
+ .option('--allow-breaking', 'Allow breaking changes in governance checks')
178
+ .hook('preAction', async () => {
179
+ await updateNotifier.checkAndNotify();
180
+ })
181
+ .action(async (options) => {
182
+ const result = await (0, analyzeDiff_1.analyzeDiff)(options);
183
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
184
+ process.exit((0, analyzeDiff_1.toAnalyzeDiffExitCode)(result));
185
+ });
129
186
  program.exitOverride();
130
- // TODO: Включить позже!
131
- // program.showSuggestionAfterError(false);
187
+ program.showSuggestionAfterError(false);
132
188
  // Парсирование аргументов с обработкой ошибок
133
189
  try {
134
190
  program.parse(process.argv);
135
191
  }
136
192
  catch (error) {
137
- if (error.code === 'commander.unknownOption') {
193
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'commander.unknownOption') {
138
194
  const errorMessage = error?.message ?? '';
139
195
  if (errorMessage) {
140
- Consts_1.APP_LOGGER.error(errorMessage);
196
+ Consts_1.APP_LOGGER.error(LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(errorMessage));
197
+ void Consts_1.APP_LOGGER.shutdownLoggerAsync().then(() => process.exit(1));
141
198
  }
142
199
  }
143
200
  }
@@ -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,iBA4C/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;AAWzC;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,iBAwD/C"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const Consts_1 = require("../../common/Consts");
5
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
5
6
  const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
6
7
  const confirmDialog_1 = require("../interactive/confirmDialog");
7
8
  const schemas_1 = require("../schemas");
@@ -14,31 +15,37 @@ const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates
14
15
  async function init(options) {
15
16
  const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.initOptionsSchema, options);
16
17
  if (!validationResult.success) {
17
- Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
18
+ Consts_1.APP_LOGGER.error(LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(validationResult.errors.join('\n')));
19
+ await Consts_1.APP_LOGGER.shutdownLoggerAsync();
18
20
  process.exit(1);
19
21
  }
20
22
  const validatedOptions = validationResult.data;
21
23
  const templates = (0, registerHandlebarTemplates_1.registerHandlebarTemplates)();
22
24
  if (validatedOptions.useInteractiveMode) {
23
25
  const shouldInitConfig = await (0, confirmDialog_1.confirmDialog)({
24
- message: 'Желаете сформировать конфигурационный файл для быстрого запуска генератора?',
26
+ message: 'Would you like to create a configuration file for quick start of the generator?',
25
27
  initial: false,
26
28
  });
27
29
  if (shouldInitConfig) {
28
- // TODO: генерация по шаблону!
29
30
  await (0, initConfig_1.initConfig)({
30
31
  openapiConfig: validatedOptions.openapiConfig,
31
32
  request: validatedOptions.request,
32
33
  specsDir: validatedOptions.specsDir,
33
34
  templates,
35
+ useInteractiveMode: validatedOptions.useInteractiveMode,
34
36
  });
35
37
  }
36
38
  const shouldInitCustomRequest = await (0, confirmDialog_1.confirmDialog)({
37
- message: 'Желаете сформировать файл с пользовательским вариантом обработки запросов?',
39
+ message: 'Would you like to create a file with a custom request processing option?',
38
40
  initial: false,
39
41
  });
40
42
  if (shouldInitCustomRequest) {
41
- await (0, initCustomRequest_1.initCustomRequest)(templates, validatedOptions?.useCancelableRequest);
43
+ await (0, initCustomRequest_1.initCustomRequest)({
44
+ templates,
45
+ useCancelableRequest: validatedOptions?.useCancelableRequest,
46
+ customRequestPath: validatedOptions.request,
47
+ useInteractiveMode: validatedOptions.useInteractiveMode,
48
+ });
42
49
  }
43
50
  }
44
51
  else {
@@ -47,7 +54,13 @@ async function init(options) {
47
54
  request: validatedOptions.request,
48
55
  specsDir: validatedOptions.specsDir,
49
56
  templates,
57
+ useInteractiveMode: validatedOptions.useInteractiveMode,
58
+ });
59
+ await (0, initCustomRequest_1.initCustomRequest)({
60
+ templates,
61
+ useCancelableRequest: validatedOptions?.useCancelableRequest,
62
+ customRequestPath: validatedOptions.request,
63
+ useInteractiveMode: validatedOptions.useInteractiveMode,
50
64
  });
51
- await (0, initCustomRequest_1.initCustomRequest)(templates, validatedOptions?.useCancelableRequest);
52
65
  }
53
66
  }
@@ -2,6 +2,7 @@ import { InitOptions } from '../schemas';
2
2
  import { CLITemplates } from './Types';
3
3
  type InitConfigParams = Pick<InitOptions, 'openapiConfig' | 'specsDir' | 'request'> & {
4
4
  templates: CLITemplates;
5
+ useInteractiveMode?: boolean;
5
6
  };
6
7
  /**
7
8
  * Инициализирует файл конфигурации OpenAPI
@@ -1 +1 @@
1
- {"version":3,"file":"initConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/initConfig.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,KAAK,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAClF,SAAS,EAAE,YAAY,CAAC;CAC3B,CAAA;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGxE"}
1
+ {"version":3,"file":"initConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/initConfig.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,KAAK,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAClF,SAAS,EAAE,YAAY,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HxE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initConfig = initConfig;
4
4
  const Consts_1 = require("../../common/Consts");
5
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
5
6
  const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
6
7
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
7
8
  const confirmDialog_1 = require("../interactive/confirmDialog");
@@ -16,16 +17,22 @@ const writeConfigFile_1 = require("./utils/writeConfigFile");
16
17
  * Инициализирует файл конфигурации OpenAPI
17
18
  */
18
19
  async function initConfig(params) {
20
+ const useInteractiveMode = params.useInteractiveMode === true;
19
21
  const configPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), params.openapiConfig || '');
20
22
  const configExists = await fileSystemHelpers_1.fileSystemHelpers.exists(configPath);
21
23
  // Шаг 3: Проверка существования файла конфигурации
22
24
  if (configExists) {
25
+ if (!useInteractiveMode) {
26
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONFIG_EXISTS_INTERACTIVE_DISABLED(configPath));
27
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONFIG_LEFT_UNCHANGED);
28
+ return;
29
+ }
23
30
  const shouldRegenerate = await (0, confirmDialog_1.confirmDialog)({
24
31
  message: 'Configuration file already exists. Do you want to regenerate it?',
25
32
  initial: false,
26
33
  });
27
34
  if (!shouldRegenerate) {
28
- Consts_1.APP_LOGGER.info('Configuration file left unchanged.');
35
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONFIG_LEFT_UNCHANGED);
29
36
  return;
30
37
  }
31
38
  }
@@ -37,10 +44,10 @@ async function initConfig(params) {
37
44
  specFiles = await (0, findSpecFiles_1.findSpecFiles)(currentSpecsDir);
38
45
  }
39
46
  catch (error) {
40
- Consts_1.APP_LOGGER.warn(`Error finding spec files: ${error instanceof Error ? error.message : String(error)}`);
47
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.SPEC_FILES_FIND_ERROR(error instanceof Error ? error.message : String(error)));
41
48
  }
42
49
  if (specFiles.length === 0) {
43
- Consts_1.APP_LOGGER.warn(`No spec files found in directory: ${currentSpecsDir}`);
50
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.NO_SPEC_FILES_FOUND(currentSpecsDir));
44
51
  }
45
52
  // Валидация файлов
46
53
  const validatedSpecs = await (0, validateSpecFiles_1.validateSpecFiles)(specFiles);
@@ -48,51 +55,67 @@ async function initConfig(params) {
48
55
  let useMultiOption = false;
49
56
  let customRequest;
50
57
  let perSpecRequest = false;
58
+ const hasCustomRequestPath = Boolean(params.request);
51
59
  if (validatedSpecs.length > 0) {
52
60
  // Если найдены валидные спецификации, спрашиваем о типе конфигурации
53
61
  useMultiOption = validatedSpecs.length > 1;
54
- // Спрашиваем про пользовательскую реализацию request
55
- const hasCustomRequest = await (0, confirmDialog_1.confirmDialog)({
56
- message: 'Do you want to use a custom request implementation?',
57
- initial: false,
58
- });
62
+ // В неинтерактивном режиме признак кастомного request определяется наличием --request
63
+ const hasCustomRequest = useInteractiveMode
64
+ ? await (0, confirmDialog_1.confirmDialog)({
65
+ message: 'Do you want to use a custom request implementation?',
66
+ initial: false,
67
+ })
68
+ : hasCustomRequestPath;
59
69
  if (hasCustomRequest) {
60
- if (useMultiOption) {
70
+ if (useMultiOption && useInteractiveMode) {
61
71
  perSpecRequest = await (0, confirmDialog_1.confirmDialog)({
62
72
  message: 'Will each specification have its own request?',
63
73
  initial: false,
64
74
  });
65
75
  }
66
- customRequest = params.request;
76
+ if (!hasCustomRequestPath) {
77
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CUSTOM_REQUEST_MISSING_PATH);
78
+ }
79
+ else {
80
+ customRequest = params.request;
81
+ }
67
82
  }
68
83
  config = await (0, buildConfig_1.buildConfig)(validatedSpecs, useMultiOption, customRequest, perSpecRequest);
69
84
  }
70
85
  else {
71
86
  // Если валидных спецификаций нет, предлагаем создать пример
72
- Consts_1.APP_LOGGER.warn('No valid OpenAPI specification files found.');
73
- const action = await (0, selectDialog_1.selectDialog)({
74
- message: 'What would you like to do?',
75
- choices: constants_1.OPEN_API_CONFIG_SELECT_OPTIONS,
76
- initial: 0,
77
- });
87
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.NO_VALID_SPEC_FILES_FOUND);
88
+ const action = useInteractiveMode
89
+ ? await (0, selectDialog_1.selectDialog)({
90
+ message: 'What would you like to do?',
91
+ choices: constants_1.OPEN_API_CONFIG_SELECT_OPTIONS,
92
+ initial: 0,
93
+ })
94
+ : types_1.EConfigType.FLAT;
78
95
  if (action === types_1.EConfigType.NONE) {
79
- Consts_1.APP_LOGGER.info('Configuration file generation cancelled.');
96
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONFIG_GENERATION_CANCELLED);
80
97
  return;
81
98
  }
82
99
  useMultiOption = action === types_1.EConfigType.MULTI;
83
- // Спрашиваем про пользовательскую реализацию request
84
- const hasCustomRequest = await (0, confirmDialog_1.confirmDialog)({
85
- message: 'Do you want to use a custom request implementation?',
86
- initial: false,
87
- });
100
+ const hasCustomRequest = useInteractiveMode
101
+ ? await (0, confirmDialog_1.confirmDialog)({
102
+ message: 'Do you want to use a custom request implementation?',
103
+ initial: false,
104
+ })
105
+ : hasCustomRequestPath;
88
106
  if (hasCustomRequest) {
89
- if (useMultiOption) {
107
+ if (useMultiOption && useInteractiveMode) {
90
108
  perSpecRequest = await (0, confirmDialog_1.confirmDialog)({
91
109
  message: 'Will each specification have its own request?',
92
110
  initial: false,
93
111
  });
94
112
  }
95
- customRequest = './custom-request.ts';
113
+ if (!hasCustomRequestPath) {
114
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CUSTOM_REQUEST_MISSING_PATH);
115
+ }
116
+ else {
117
+ customRequest = params.request;
118
+ }
96
119
  }
97
120
  // Создаем пример конфигурации
98
121
  config = (0, buildConfig_1.buildExampleConfig)(useMultiOption, customRequest, perSpecRequest);
@@ -1,3 +1,10 @@
1
1
  import { CLITemplates } from './Types';
2
- export declare function initCustomRequest(templates: CLITemplates, useCancelableRequest?: boolean): Promise<void>;
2
+ type InitCustomRequestParams = {
3
+ templates: CLITemplates;
4
+ useCancelableRequest?: boolean;
5
+ customRequestPath?: string;
6
+ useInteractiveMode?: boolean;
7
+ };
8
+ export declare function initCustomRequest(params: InitCustomRequestParams): Promise<void>;
9
+ export {};
3
10
  //# sourceMappingURL=initCustomRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initCustomRequest.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/initCustomRequest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,OAAO,iBAkB9F"}
1
+ {"version":3,"file":"initCustomRequest.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/initCustomRequest.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,KAAK,uBAAuB,GAAG;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDtF"}
@@ -1,23 +1,55 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.initCustomRequest = initCustomRequest;
7
+ const path_1 = __importDefault(require("path"));
8
+ const Consts_1 = require("../../common/Consts");
9
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
4
10
  const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
5
11
  const format_1 = require("../../common/utils/format");
6
12
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
7
13
  const confirmDialog_1 = require("../interactive/confirmDialog");
8
- async function initCustomRequest(templates, useCancelableRequest) {
9
- // TODO: Подумать над правильной постановкой вопроса!
10
- const shouldRequestExecutor = await (0, confirmDialog_1.confirmDialog)({
11
- message: 'Желаете сформировать пользовательский обработчик request в новом формате?',
12
- initial: false,
13
- });
14
+ async function initCustomRequest(params) {
15
+ const { templates, useCancelableRequest, customRequestPath, useInteractiveMode } = params;
16
+ if (!customRequestPath) {
17
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CUSTOM_REQUEST.PATH_NOT_PROVIDED);
18
+ return;
19
+ }
20
+ const shouldRequestExecutor = useInteractiveMode
21
+ ? await (0, confirmDialog_1.confirmDialog)({
22
+ message: 'Generate custom request file in executor format?',
23
+ initial: false,
24
+ })
25
+ : false;
14
26
  const artifacts = {
15
27
  useCancelableRequest,
16
28
  };
17
- const customRequestPath = './src/custom/request.ts';
18
29
  const file = (0, pathHelpers_1.resolveHelper)(process.cwd(), customRequestPath);
30
+ const fileDir = path_1.default.dirname(file);
31
+ const fileDirExists = await fileSystemHelpers_1.fileSystemHelpers.exists(fileDir);
32
+ if (!fileDirExists) {
33
+ await fileSystemHelpers_1.fileSystemHelpers.mkdir(fileDir);
34
+ }
35
+ const isFileExists = await fileSystemHelpers_1.fileSystemHelpers.exists(file);
36
+ if (isFileExists) {
37
+ if (!useInteractiveMode) {
38
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CUSTOM_REQUEST.FILE_EXISTS_INTERACTIVE_DISABLED(file));
39
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CUSTOM_REQUEST.FILE_LEFT_UNCHANGED);
40
+ return;
41
+ }
42
+ const shouldOverwrite = await (0, confirmDialog_1.confirmDialog)({
43
+ message: 'Custom request file already exists. Overwrite it?',
44
+ initial: false,
45
+ });
46
+ if (!shouldOverwrite) {
47
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CUSTOM_REQUEST.FILE_LEFT_UNCHANGED);
48
+ return;
49
+ }
50
+ }
19
51
  const templateResult = shouldRequestExecutor ? templates.requestExecutor(artifacts) : templates.request(artifacts);
20
52
  const formattedValue = await (0, format_1.format)(templateResult);
21
53
  await fileSystemHelpers_1.fileSystemHelpers.writeFile(file, formattedValue);
22
- return;
54
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.CUSTOM_REQUEST.FILE_CREATED(file));
23
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildConfig.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/utils/buildConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA8ClK;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAuCzH"}
1
+ {"version":3,"file":"buildConfig.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/utils/buildConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA4ElK;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAqEzH"}