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
package/README.md CHANGED
@@ -28,6 +28,7 @@
28
28
  - Supports tsc and @babel/plugin-transform-typescript
29
29
  - Supports customization names of models
30
30
  - Supports external references using [`swagger-parser`](https://github.com/APIDevTools/swagger-parser/)
31
+ - Supports binary request/response generation (`format: binary` -> `Blob`)
31
32
 
32
33
  ## Install
33
34
 
@@ -38,7 +39,7 @@ npm install ts-openapi-codegen --save-dev
38
39
 
39
40
  ## Usage
40
41
 
41
- The CLI tool supports three main commands: `generate`, `check-openapi-config`, and `init-openapi-config`.
42
+ The CLI tool supports six commands: `generate`, `check-config`, `update-config`, `init`, `preview-changes`, and `analyze-diff`.
42
43
 
43
44
  ### Command: `generate`
44
45
 
@@ -65,6 +66,7 @@ openapi generate --input ./spec.json --output ./dist
65
66
  | `--useUnionTypes` | - | boolean | `false` | Use union types instead of enums |
66
67
  | `--excludeCoreServiceFiles` | - | boolean | `false` | Exclude generation of core and service files |
67
68
  | `--request` | - | string | - | Path to custom request file |
69
+ | `--customExecutorPath` | - | string | - | Path to custom `createExecutorAdapter` module |
68
70
  | `--interfacePrefix` | - | string | `I` | Prefix for interface models |
69
71
  | `--enumPrefix` | - | string | `E` | Prefix for enum models |
70
72
  | `--typePrefix` | - | string | `T` | Prefix for type models |
@@ -74,6 +76,10 @@ openapi generate --input ./spec.json --output ./dist
74
76
  | `--logLevel` | `-l` | string | `error` | Logging level: `info`, `warn`, or `error` |
75
77
  | `--logTarget` | `-t` | string | `console` | Logging target: `console` or `file` |
76
78
  | `--validationLibrary` | - | string | `none` | Validation library for schema generation: `none`, `zod`, `joi`, `yup`, or `jsonschema` |
79
+ | `--emptySchemaStrategy` | - | string | `keep` | Strategy for empty schemas: `keep`, `semantic`, or `skip` |
80
+ | `--modelsMode` | - | string | `interfaces` | Models generation mode: `interfaces` or `classes` |
81
+ | `--useHistory` | - | boolean | `false` | Apply diff report annotations during generation |
82
+ | `--diffReport` | - | string | `./openapi-diff-report.json` | Path to diff report JSON |
77
83
 
78
84
  **Examples:**
79
85
  ```bash
@@ -96,38 +102,110 @@ openapi generate \
96
102
  --logLevel info
97
103
  ```
98
104
 
99
- ### Command: `check-openapi-config`
105
+ ### Command: `check-config`
100
106
 
101
107
  Validates the configuration file structure and values.
102
108
 
103
109
  **Usage:**
104
110
  ```bash
105
- openapi check-openapi-config
106
- openapi check-openapi-config --openapi-config ./custom-config.json
111
+ openapi check-config
112
+ openapi check-config --openapi-config ./custom-config.json
107
113
  ```
108
114
 
109
115
  **Options:**
110
116
  - `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
111
117
 
112
- ### Command: `init-openapi-config`
118
+ ### Command: `update-config`
113
119
 
114
- Generates a configuration file template.
120
+ Updates the configuration file to the latest supported schema version.
115
121
 
116
122
  **Usage:**
117
123
  ```bash
118
- # Generate single options template
119
- openapi init-openapi-config
124
+ openapi update-config
125
+ openapi update-config --openapi-config ./custom-config.json
126
+ ```
127
+
128
+ **Options:**
129
+ - `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
120
130
 
121
- # Generate multi-options template
122
- openapi init-openapi-config --type MULTIOPTION
131
+ ### Command: `init`
132
+
133
+ Generates a configuration file template.
134
+
135
+ **Usage:**
136
+ ```bash
137
+ # Generate config using default settings
138
+ openapi init
123
139
 
124
140
  # Custom config file name
125
- openapi init-openapi-config --openapi-config ./my-config.json
141
+ openapi init --openapi-config ./my-config.json
142
+
143
+ # Specify directory with OpenAPI specs
144
+ openapi init --specs-dir ./openapi
126
145
  ```
127
146
 
128
147
  **Options:**
129
148
  - `--openapi-config` / `-ocn` - Path to output configuration file (default: `openapi.config.json`)
130
- - `--type` / `-t` - Template type: `OPTION` (single) or `MULTIOPTION` (multiple) (default: `OPTION`)
149
+ - `--specs-dir` / `-sd` - Directory with OpenAPI specification files (default: `./openapi`)
150
+ - `--request` - Path to custom request file
151
+ - `--useCancelableRequest` - Generate cancelable request handling
152
+ - `--useInteractiveMode` - Enable interactive mode for guided setup
153
+
154
+ ### Command: `preview-changes`
155
+
156
+ Previews differences between already generated code and newly generated output without overwriting your current generated directory.
157
+
158
+ **Usage:**
159
+ ```bash
160
+ openapi preview-changes
161
+ openapi preview-changes --openapi-config ./custom-config.json
162
+ ```
163
+
164
+ **Options:**
165
+ - `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
166
+ - `--generated-dir` / `-gd` - Directory with current generated files (default: `./generated`)
167
+ - `--preview-dir` / `-pd` - Temporary preview generation directory (default: `./.ts-openapi-codegen-preview-changes`)
168
+ - `--diff-dir` / `-dd` - Directory for diff reports (default: `./.ts-openapi-codegen-diff-changes`)
169
+
170
+ ### Command: `analyze-diff`
171
+
172
+ Analyzes differences between two OpenAPI specifications and produces a JSON report.
173
+
174
+ **Usage:**
175
+ ```bash
176
+ openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
177
+ openapi analyze-diff --input ./openapi/spec.yaml --git HEAD~1
178
+ ```
179
+
180
+ **Options:**
181
+ - `--input` / `-i` - Path to current OpenAPI specification file (required)
182
+ - `--compare-with` - Path to previous OpenAPI specification file
183
+ - `--git` - Git ref to read previous specification version from (e.g. `HEAD~1`)
184
+ - `--output-report` - Path to save JSON diff report (default: `./openapi-diff-report.json`)
185
+
186
+ #### Miracles and confirmation
187
+
188
+ The diff report can contain a `miracles` section with detected renames/type-coercions. Only confirmed miracles are applied in generation.
189
+
190
+ **How to confirm miracles:**
191
+ 1. Run `analyze-diff` and open the generated report (default: `./openapi-diff-report.json`).
192
+ 2. Find the entry in `miracles` you want to accept.
193
+ 3. Change `"status": "auto-generated"` to `"status": "confirmed"` and commit the report.
194
+
195
+ Example (excerpt):
196
+ ```json
197
+ {
198
+ "miracles": [
199
+ {
200
+ "oldPath": "$.components.schemas.User.properties.user_name",
201
+ "newPath": "$.components.schemas.User.properties.userName",
202
+ "type": "RENAME",
203
+ "confidence": 0.85,
204
+ "status": "confirmed"
205
+ }
206
+ ]
207
+ }
208
+ ```
131
209
 
132
210
  ### Configuration File
133
211
 
@@ -148,7 +226,23 @@ Instead of passing all options via CLI, you can use a configuration file. Create
148
226
  "useCancelableRequest": false,
149
227
  "sortByRequired": false,
150
228
  "useSeparatedIndexes": false,
151
- "request": "./custom-request.ts"
229
+ "request": "./custom-request.ts",
230
+ "customExecutorPath": "./custom/createExecutorAdapter.ts",
231
+ "modelsMode": "interfaces",
232
+ "useHistory": false,
233
+ "diffReport": "./openapi-diff-report.json",
234
+ "models": {
235
+ "mode": "interfaces"
236
+ },
237
+ "analyze": {
238
+ "useHistory": false,
239
+ "reportPath": "./openapi-diff-report.json"
240
+ },
241
+ "miracles": {
242
+ "enabled": true,
243
+ "confidence": 1,
244
+ "types": ["RENAME", "TYPE_COERCION"]
245
+ }
152
246
  }
153
247
  ```
154
248
 
@@ -199,6 +293,7 @@ Instead of passing all options via CLI, you can use a configuration file. Create
199
293
  | `useUnionTypes` | boolean | `false` | Use union types instead of enums |
200
294
  | `excludeCoreServiceFiles` | boolean | `false` | Exclude core and service files generation |
201
295
  | `request` | string | - | Path to custom request file |
296
+ | `customExecutorPath` | string | - | Path to custom `createExecutorAdapter` module |
202
297
  | `interfacePrefix` | string | `I` | Prefix for interface models |
203
298
  | `enumPrefix` | string | `E` | Prefix for enum models |
204
299
  | `typePrefix` | string | `T` | Prefix for type models |
@@ -207,8 +302,15 @@ Instead of passing all options via CLI, you can use a configuration file. Create
207
302
  | `useSeparatedIndexes` | boolean | `false` | Use separate index files |
208
303
  | `items` | array | - | Array of configurations (for multi-options format) |
209
304
  | `validationLibrary` | string | `none` | Validation library for schema generation: `none`, `zod`, `joi`, `yup`, or `jsonschema` |
305
+ | `emptySchemaStrategy` | string | `keep` | Strategy for empty schemas: `keep`, `semantic`, or `skip` |
306
+ | `modelsMode` | string | `interfaces` | Models generation mode: `interfaces` or `classes` |
307
+ | `useHistory` | boolean | `false` | Apply diff report annotations during generation |
308
+ | `diffReport` | string | `./openapi-diff-report.json` | Path to diff report JSON |
309
+ | `models` | object | - | Models config section (e.g. `mode`) |
310
+ | `analyze` | object | - | Analyze config section (e.g. reportPath, useHistory, ignore) |
311
+ | `miracles` | object | - | Miracles config section (enabled, confidence, types) |
210
312
 
211
- **Note:** You can use the `init-openapi-config` command to generate a template configuration file.
313
+ **Note:** You can use the `init` command to generate a template configuration file.
212
314
 
213
315
  ## Examples
214
316
 
@@ -222,15 +324,31 @@ openapi generate --input ./spec.json --output ./dist
222
324
  **With configuration file:**
223
325
  ```bash
224
326
  # First, create config file
225
- openapi init-openapi-config
327
+ openapi init
226
328
 
227
329
  # Then generate
228
330
  openapi generate
229
331
  ```
230
332
 
333
+ **With DTO models (classes mode):**
334
+ ```bash
335
+ openapi generate --input ./spec.json --output ./dist --modelsMode classes
336
+ ```
337
+
338
+ **Generate diff report:**
339
+ ```bash
340
+ openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
341
+ ```
342
+
231
343
  **Check configuration:**
232
344
  ```bash
233
- openapi check-openapi-config
345
+ openapi check-config
346
+ openapi update-config
347
+ ```
348
+
349
+ **Preview changes before applying:**
350
+ ```bash
351
+ openapi preview-changes
234
352
  ```
235
353
 
236
354
  ### Using NPX
@@ -247,8 +365,10 @@ npx ts-openapi-codegen generate --input ./spec.json --output ./dist
247
365
  "scripts": {
248
366
  "generate": "openapi generate --input ./spec.json --output ./dist",
249
367
  "generate:config": "openapi generate",
250
- "check-config": "openapi check-openapi-config",
251
- "init-config": "openapi init-openapi-config"
368
+ "check-config": "openapi check-config",
369
+ "update-config": "openapi update-config",
370
+ "init-config": "openapi init",
371
+ "preview-changes": "openapi preview-changes"
252
372
  }
253
373
  }
254
374
  ```
@@ -378,6 +498,20 @@ The `--validationLibrary` parameter allows you to generate runtime validation sc
378
498
  - **yup** - Generate Yup validation schemas
379
499
  - **jsonschema** - Generate JSON Schema validation schemas
380
500
 
501
+ When `--useHistory` is enabled and a diff report marks a type change, validators will attempt to coerce values:
502
+ - **Zod** uses `z.coerce.*`
503
+ - **Joi** uses `Joi.alternatives().try(...)`
504
+ - **Yup** uses `.transform(...)`
505
+ - **JSON Schema (AJV)** enables `coerceTypes`
506
+
507
+ ### Models mode `--modelsMode`
508
+
509
+ By default, models are generated as TypeScript interfaces/types. When `--modelsMode classes` is used, the generator produces:
510
+ - `*Raw` interfaces matching the API JSON
511
+ - `*Dto` classes with getters, defaults, recursive constructors, and `toJSON()`
512
+
513
+ The output is consolidated into a single `models.ts` file, and `BaseDto`/`dtoUtils` are emitted in `core`.
514
+
381
515
  Let's say we have the following model:
382
516
 
383
517
  ```json
@@ -630,6 +764,31 @@ const service = new SimpleService(executor);
630
764
  await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
631
765
  ```
632
766
 
767
+ #### Using generated `createClient` with `customExecutorPath` and `executorFactory`
768
+
769
+ If you set `customExecutorPath` in generation config, `createClient.ts` imports your custom
770
+ `createExecutorAdapter` and uses it as the default executor.
771
+
772
+ You can additionally pass `executorFactory` at runtime to wrap/extend this default executor
773
+ (for retry, tracing, metrics, etc.) without changing generated services.
774
+
775
+ ```ts
776
+ import { createClient } from './generated';
777
+
778
+ const client = createClient({
779
+ executorFactory: ({ openApiConfig, createDefaultExecutor }) => {
780
+ const baseExecutor = createDefaultExecutor();
781
+
782
+ return {
783
+ async request<TResponse>(config, options) {
784
+ console.debug('Request to', openApiConfig.BASE, config.path);
785
+ return baseExecutor.request<TResponse>(config, options);
786
+ },
787
+ };
788
+ },
789
+ });
790
+ ```
791
+
633
792
  ### Sorting strategy for function arguments `--sortByRequired`
634
793
  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.
635
794
 
package/README.rus.md CHANGED
@@ -28,6 +28,7 @@
28
28
  - Поддерживает tsc и @babel/plugin-transform-typescript
29
29
  - Поддерживает кастомизацию имен моделей
30
30
  - Поддерживает внешние ссылки с помощью [`swagger-parser`](https://github.com/APIDevTools/swagger-parser/)
31
+ - Поддерживает генерацию бинарных request/response (`format: binary` -> `Blob`)
31
32
 
32
33
  ## Установка
33
34
 
@@ -37,7 +38,7 @@ npm install ts-openapi-codegen --save-dev
37
38
 
38
39
  ## Использование
39
40
 
40
- CLI инструмент поддерживает три основные команды: `generate`, `check-openapi-config`, и `init-openapi-config`.
41
+ CLI инструмент поддерживает шесть команд: `generate`, `check-config`, `update-config`, `init`, `preview-changes` и `analyze-diff`.
41
42
 
42
43
  ### Команда: `generate`
43
44
 
@@ -64,6 +65,7 @@ openapi generate --input ./spec.json --output ./dist
64
65
  | `--useUnionTypes` | - | boolean | `false` | Использовать union типы вместо enums |
65
66
  | `--excludeCoreServiceFiles` | - | boolean | `false` | Исключить генерацию core и сервисных файлов |
66
67
  | `--request` | - | string | - | Путь к пользовательскому файлу запросов |
68
+ | `--customExecutorPath` | - | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
67
69
  | `--interfacePrefix` | - | string | `I` | Префикс для интерфейсов моделей |
68
70
  | `--enumPrefix` | - | string | `E` | Префикс для enum моделей |
69
71
  | `--typePrefix` | - | string | `T` | Префикс для type моделей |
@@ -73,6 +75,10 @@ openapi generate --input ./spec.json --output ./dist
73
75
  | `--logLevel` | `-l` | string | `error` | Уровень логирования: `info`, `warn`, или `error` |
74
76
  | `--logTarget` | `-t` | string | `console` | Цель логирования: `console` или `file` |
75
77
  | `--validationLibrary` | - | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
78
+ | `--emptySchemaStrategy` | - | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
79
+ | `--modelsMode` | - | string | `interfaces` | Режим генерации моделей: `interfaces` или `classes` |
80
+ | `--useHistory` | - | boolean | `false` | Применять diff-отчёт при генерации |
81
+ | `--diffReport` | - | string | `./openapi-diff-report.json` | Путь к diff-отчёту |
76
82
 
77
83
  **Примеры:**
78
84
  ```bash
@@ -95,38 +101,110 @@ openapi generate \
95
101
  --logLevel info
96
102
  ```
97
103
 
98
- ### Команда: `check-openapi-config`
104
+ ### Команда: `check-config`
99
105
 
100
106
  Проверяет структуру и значения файла конфигурации.
101
107
 
102
108
  **Использование:**
103
109
  ```bash
104
- openapi check-openapi-config
105
- openapi check-openapi-config --openapi-config ./custom-config.json
110
+ openapi check-config
111
+ openapi check-config --openapi-config ./custom-config.json
106
112
  ```
107
113
 
108
114
  **Опции:**
109
115
  - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
110
116
 
111
- ### Команда: `init-openapi-config`
117
+ ### Команда: `update-config`
112
118
 
113
- Генерирует шаблон файла конфигурации.
119
+ Обновляет файл конфигурации до последней поддерживаемой версии схемы.
114
120
 
115
121
  **Использование:**
116
122
  ```bash
117
- # Генерация шаблона с одним набором опций
118
- openapi init-openapi-config
123
+ openapi update-config
124
+ openapi update-config --openapi-config ./custom-config.json
125
+ ```
126
+
127
+ **Опции:**
128
+ - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
119
129
 
120
- # Генерация шаблона с несколькими наборами опций
121
- openapi init-openapi-config --type MULTIOPTION
130
+ ### Команда: `init`
131
+
132
+ Генерирует шаблон файла конфигурации.
133
+
134
+ **Использование:**
135
+ ```bash
136
+ # Генерация шаблона с настройками по умолчанию
137
+ openapi init
122
138
 
123
139
  # Пользовательское имя файла конфигурации
124
- openapi init-openapi-config --openapi-config ./my-config.json
140
+ openapi init --openapi-config ./my-config.json
141
+
142
+ # Явно указать директорию со спецификациями OpenAPI
143
+ openapi init --specs-dir ./openapi
125
144
  ```
126
145
 
127
146
  **Опции:**
128
147
  - `--openapi-config` / `-ocn` - Путь к выходному файлу конфигурации (по умолчанию: `openapi.config.json`)
129
- - `--type` / `-t` - Тип шаблона: `OPTION` (одиночный) или `MULTIOPTION` (множественный) (по умолчанию: `OPTION`)
148
+ - `--specs-dir` / `-sd` - Директория с файлами OpenAPI спецификаций (по умолчанию: `./openapi`)
149
+ - `--request` - Путь к пользовательскому request-файлу
150
+ - `--useCancelableRequest` - Включить генерацию cancelable request
151
+ - `--useInteractiveMode` - Включить интерактивный режим настройки
152
+
153
+ ### Команда: `preview-changes`
154
+
155
+ Показывает различия между уже сгенерированным кодом и новым результатом генерации без перезаписи текущей директории generated-кода.
156
+
157
+ **Использование:**
158
+ ```bash
159
+ openapi preview-changes
160
+ openapi preview-changes --openapi-config ./custom-config.json
161
+ ```
162
+
163
+ **Опции:**
164
+ - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
165
+ - `--generated-dir` / `-gd` - Директория с текущим generated-кодом (по умолчанию: `./generated`)
166
+ - `--preview-dir` / `-pd` - Временная директория для preview-генерации (по умолчанию: `./.ts-openapi-codegen-preview-changes`)
167
+ - `--diff-dir` / `-dd` - Директория для diff-отчетов (по умолчанию: `./.ts-openapi-codegen-diff-changes`)
168
+
169
+ ### Команда: `analyze-diff`
170
+
171
+ Анализирует изменения между двумя версиями OpenAPI и формирует JSON‑отчет.
172
+
173
+ **Использование:**
174
+ ```bash
175
+ openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
176
+ openapi analyze-diff --input ./openapi/spec.yaml --git HEAD~1
177
+ ```
178
+
179
+ **Опции:**
180
+ - `--input` / `-i` - Путь к текущей спецификации OpenAPI (обязательно)
181
+ - `--compare-with` - Путь к предыдущей спецификации
182
+ - `--git` - Git ref для чтения предыдущей версии спецификации (например, `HEAD~1`)
183
+ - `--output-report` - Путь для сохранения diff‑отчёта (по умолчанию: `./openapi-diff-report.json`)
184
+
185
+ #### Miracles и подтверждение
186
+
187
+ В diff‑отчёте может быть раздел `miracles` с обнаруженными переименованиями/коэрсингом типов. В генерации применяются только подтверждённые записи.
188
+
189
+ **Как подтверждать чудеса:**
190
+ 1. Запустите `analyze-diff` и откройте отчёт (по умолчанию: `./openapi-diff-report.json`).
191
+ 2. Найдите нужную запись в `miracles`.
192
+ 3. Измените `"status": "auto-generated"` на `"status": "confirmed"` и закоммитьте отчёт.
193
+
194
+ Пример (фрагмент):
195
+ ```json
196
+ {
197
+ "miracles": [
198
+ {
199
+ "oldPath": "$.components.schemas.User.properties.user_name",
200
+ "newPath": "$.components.schemas.User.properties.userName",
201
+ "type": "RENAME",
202
+ "confidence": 0.85,
203
+ "status": "confirmed"
204
+ }
205
+ ]
206
+ }
207
+ ```
130
208
 
131
209
  ### Файл конфигурации
132
210
 
@@ -147,7 +225,23 @@ openapi init-openapi-config --openapi-config ./my-config.json
147
225
  "useCancelableRequest": false,
148
226
  "sortByRequired": false,
149
227
  "useSeparatedIndexes": false,
150
- "request": "./custom-request.ts"
228
+ "request": "./custom-request.ts",
229
+ "customExecutorPath": "./custom/createExecutorAdapter.ts",
230
+ "modelsMode": "interfaces",
231
+ "useHistory": false,
232
+ "diffReport": "./openapi-diff-report.json",
233
+ "models": {
234
+ "mode": "interfaces"
235
+ },
236
+ "analyze": {
237
+ "useHistory": false,
238
+ "reportPath": "./openapi-diff-report.json"
239
+ },
240
+ "miracles": {
241
+ "enabled": true,
242
+ "confidence": 1,
243
+ "types": ["RENAME", "TYPE_COERCION"]
244
+ }
151
245
  }
152
246
  ```
153
247
 
@@ -198,6 +292,7 @@ openapi init-openapi-config --openapi-config ./my-config.json
198
292
  | `useUnionTypes` | boolean | `false` | Использовать union типы вместо enums |
199
293
  | `excludeCoreServiceFiles` | boolean | `false` | Исключить генерацию core и сервисных файлов |
200
294
  | `request` | string | - | Путь к пользовательскому файлу запросов |
295
+ | `customExecutorPath` | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
201
296
  | `interfacePrefix` | string | `I` | Префикс для интерфейсов моделей |
202
297
  | `enumPrefix` | string | `E` | Префикс для enum моделей |
203
298
  | `typePrefix` | string | `T` | Префикс для type моделей |
@@ -206,8 +301,15 @@ openapi init-openapi-config --openapi-config ./my-config.json
206
301
  | `useSeparatedIndexes` | boolean | `false` | Использовать отдельные index файлы |
207
302
  | `items` | array | - | Массив конфигураций (для формата multi-options) |
208
303
  | `validationLibrary` | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
304
+ | `emptySchemaStrategy` | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
305
+ | `modelsMode` | string | `interfaces` | Режим генерации моделей: `interfaces` или `classes` |
306
+ | `useHistory` | boolean | `false` | Применять diff‑отчёт при генерации |
307
+ | `diffReport` | string | `./openapi-diff-report.json` | Путь к diff‑отчёту |
308
+ | `models` | object | - | Секция конфигурации моделей (например, `mode`) |
309
+ | `analyze` | object | - | Секция анализа (например, reportPath, useHistory, ignore) |
310
+ | `miracles` | object | - | Секция чудес (enabled, confidence, types) |
209
311
 
210
- **Примечание:** Вы можете использовать команду `init-openapi-config` для генерации шаблона файла конфигурации.
312
+ **Примечание:** Вы можете использовать команду `init` для генерации шаблона файла конфигурации.
211
313
 
212
314
  ## Примеры
213
315
 
@@ -221,15 +323,31 @@ openapi generate --input ./spec.json --output ./dist
221
323
  **С файлом конфигурации:**
222
324
  ```bash
223
325
  # Сначала создайте файл конфигурации
224
- openapi init-openapi-config
326
+ openapi init
225
327
 
226
328
  # Затем выполните генерацию
227
329
  openapi generate
228
330
  ```
229
331
 
332
+ **С DTO моделями (режим classes):**
333
+ ```bash
334
+ openapi generate --input ./spec.json --output ./dist --modelsMode classes
335
+ ```
336
+
337
+ **Сгенерировать diff‑отчёт:**
338
+ ```bash
339
+ openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
340
+ ```
341
+
230
342
  **Проверка конфигурации:**
231
343
  ```bash
232
- openapi check-openapi-config
344
+ openapi check-config
345
+ openapi update-config
346
+ ```
347
+
348
+ **Предпросмотр изменений перед применением:**
349
+ ```bash
350
+ openapi preview-changes
233
351
  ```
234
352
 
235
353
  ### Использование NPX
@@ -246,8 +364,10 @@ npx ts-openapi-codegen generate --input ./spec.json --output ./dist
246
364
  "scripts": {
247
365
  "generate": "openapi generate --input ./spec.json --output ./dist",
248
366
  "generate:config": "openapi generate",
249
- "check-config": "openapi check-openapi-config",
250
- "init-config": "openapi init-openapi-config"
367
+ "check-config": "openapi check-config",
368
+ "update-config": "openapi update-config",
369
+ "init-config": "openapi init",
370
+ "preview-changes": "openapi preview-changes"
251
371
  }
252
372
  }
253
373
  ```
@@ -377,6 +497,20 @@ const order: Order = {
377
497
  - **yup** - Генерация схем валидации Yup
378
498
  - **jsonschema** - Генерация схем валидации JSON Schema
379
499
 
500
+ Если включен `--useHistory` и в diff‑отчёте есть смена типа, валидаторы будут пытаться выполнять коэрсинг:
501
+ - **Zod** использует `z.coerce.*`
502
+ - **Joi** использует `Joi.alternatives().try(...)`
503
+ - **Yup** использует `.transform(...)`
504
+ - **JSON Schema (AJV)** включает `coerceTypes`
505
+
506
+ ### Режим моделей `--modelsMode`
507
+
508
+ По умолчанию модели генерируются как интерфейсы/типы. При `--modelsMode classes` генератор создаёт:
509
+ - `*Raw` интерфейсы (JSON‑формат API)
510
+ - `*Dto` классы с геттерами, дефолтами, рекурсивными конструкторами и `toJSON()`
511
+
512
+ Вывод консолидируется в один файл `models.ts`, а `BaseDto`/`dtoUtils` добавляются в `core`.
513
+
380
514
  Допустим, у нас есть следующая модель:
381
515
 
382
516
  ```json
@@ -630,6 +764,31 @@ const service = new SimpleService(executor);
630
764
  await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
631
765
  ```
632
766
 
767
+ #### Использование сгенерированного `createClient` с `customExecutorPath` и `executorFactory`
768
+
769
+ Если в конфигурации генерации задан `customExecutorPath`, в `createClient.ts` будет импортирован ваш
770
+ пользовательский `createExecutorAdapter`, и он станет базовым executor по умолчанию.
771
+
772
+ Дополнительно в runtime можно передать `executorFactory`, чтобы обернуть/расширить этот базовый executor
773
+ (retry, tracing, metrics и т.д.) без изменения сгенерированных сервисов.
774
+
775
+ ```ts
776
+ import { createClient } from './generated';
777
+
778
+ const client = createClient({
779
+ executorFactory: ({ openApiConfig, createDefaultExecutor }) => {
780
+ const baseExecutor = createDefaultExecutor();
781
+
782
+ return {
783
+ async request<TResponse>(config, options) {
784
+ console.debug('Request to', openApiConfig.BASE, config.path);
785
+ return baseExecutor.request<TResponse>(config, options);
786
+ },
787
+ };
788
+ },
789
+ });
790
+ ```
791
+
633
792
  ### Стратегия сортировки аргументов функций `--sortByRequired`
634
793
  По умолчанию генератор OpenAPI сортирует параметры сервисных функций согласно упрощенной схеме. Если вам нужна более строгая опция сортировки, используйте флаг `--sortByRequired`. Упрощенная опция сортировки похожа на ту, что использовалась в версии 0.2.3 генератора OpenAPI. Этот флаг позволяет обновиться до новой версии генератора, если вы "застряли" на версии 0.2.3.
635
794
 
@@ -841,6 +1000,3 @@ npm install form-data --save-dev
841
1000
  [stars-image]: https://img.shields.io/github/stars/ozonophore/openapi-codegen.svg
842
1001
  [librariesio-image]: https://img.shields.io/librariesio/github/ozonophore/openapi-codegen
843
1002
  [lines-image]: https://img.shields.io/tokei/lines/github/ozonophore/openapi-codegen
844
-
845
-
846
-
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analyzeDiff.cli.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeDiff.cli.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.ts"],"names":[],"mappings":""}