ts-openapi-codegen 2.0.0 → 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 (418) hide show
  1. package/README.md +91 -2
  2. package/README.rus.md +91 -2
  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/writeExampleConfigFile.d.ts.map +1 -1
  66. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +2 -2
  67. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts +2 -0
  68. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts.map +1 -0
  69. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +152 -0
  70. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +6 -2
  71. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  72. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +54 -18
  73. package/dist/cli/index.js +57 -2
  74. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  75. package/dist/cli/initOpenApiConfig/init.js +19 -6
  76. package/dist/cli/initOpenApiConfig/initConfig.d.ts +1 -0
  77. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  78. package/dist/cli/initOpenApiConfig/initConfig.js +47 -24
  79. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +8 -1
  80. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  81. package/dist/cli/initOpenApiConfig/initCustomRequest.js +40 -8
  82. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  83. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +60 -0
  84. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.d.ts.map +1 -1
  85. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.js +2 -1
  86. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.d.ts.map +1 -1
  87. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.js +2 -1
  88. package/dist/cli/interactive/confirmDialog.d.ts.map +1 -1
  89. package/dist/cli/interactive/confirmDialog.js +3 -2
  90. package/dist/cli/interactive/constants.d.ts +2 -2
  91. package/dist/cli/interactive/constants.js +8 -8
  92. package/dist/cli/interactive/selectDialog.d.ts.map +1 -1
  93. package/dist/cli/interactive/selectDialog.js +11 -6
  94. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  95. package/dist/cli/previewChanges/previewChanges.js +45 -17
  96. package/dist/cli/schemas/analyzeDiff.d.ts +14 -0
  97. package/dist/cli/schemas/analyzeDiff.d.ts.map +1 -0
  98. package/dist/cli/schemas/analyzeDiff.js +28 -0
  99. package/dist/cli/schemas/generate.d.ts +9 -0
  100. package/dist/cli/schemas/generate.d.ts.map +1 -1
  101. package/dist/cli/schemas/generate.js +9 -0
  102. package/dist/cli/schemas/index.d.ts +3 -1
  103. package/dist/cli/schemas/index.d.ts.map +1 -1
  104. package/dist/cli/schemas/index.js +2 -0
  105. package/dist/common/Consts.d.ts +1 -0
  106. package/dist/common/Consts.d.ts.map +1 -1
  107. package/dist/common/Consts.js +15 -1
  108. package/dist/common/Logger.d.ts +20 -1
  109. package/dist/common/Logger.d.ts.map +1 -1
  110. package/dist/common/Logger.js +70 -9
  111. package/dist/common/LoggerMessages.d.ts +135 -33
  112. package/dist/common/LoggerMessages.d.ts.map +1 -1
  113. package/dist/common/LoggerMessages.js +118 -45
  114. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  115. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +7 -1
  116. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +4 -0
  117. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  118. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +8 -0
  119. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  120. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +8 -0
  121. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  122. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +8 -0
  123. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -1
  124. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +35 -0
  125. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  126. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +4 -1
  127. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +79 -0
  128. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -0
  129. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +19 -0
  130. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +171 -0
  131. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  132. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +2 -0
  133. package/dist/common/VersionedSchema/CommonSchemas.d.ts +40 -0
  134. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  135. package/dist/common/VersionedSchema/CommonSchemas.js +34 -1
  136. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +4 -0
  137. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
  138. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +4 -0
  139. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
  140. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +4 -0
  141. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  142. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +4 -0
  143. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
  144. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +4 -0
  145. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  146. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +4 -0
  147. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  148. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +4 -0
  149. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
  150. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +4 -0
  151. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
  152. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +4 -0
  153. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
  154. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  155. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +23 -3
  156. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +2 -2
  157. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  158. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +2 -1
  159. package/dist/common/__tests__/Logger.test.d.ts +2 -0
  160. package/dist/common/__tests__/Logger.test.d.ts.map +1 -0
  161. package/dist/common/__tests__/Logger.test.js +100 -0
  162. package/dist/common/utils/__tests__/convertArrayToObject.test.js +3 -0
  163. package/dist/common/utils/__tests__/eslintFix.test.d.ts +2 -0
  164. package/dist/common/utils/__tests__/eslintFix.test.d.ts.map +1 -0
  165. package/dist/common/utils/__tests__/eslintFix.test.js +134 -0
  166. package/dist/common/utils/__tests__/format.test.d.ts +2 -0
  167. package/dist/common/utils/__tests__/format.test.d.ts.map +1 -0
  168. package/dist/common/utils/__tests__/format.test.js +90 -0
  169. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  170. package/dist/common/utils/convertArrayToObject.js +3 -0
  171. package/dist/common/utils/eslintFix.d.ts +7 -0
  172. package/dist/common/utils/eslintFix.d.ts.map +1 -0
  173. package/dist/common/utils/eslintFix.js +78 -0
  174. package/dist/common/utils/format.d.ts +1 -1
  175. package/dist/common/utils/format.d.ts.map +1 -1
  176. package/dist/common/utils/format.js +39 -15
  177. package/dist/common/utils/jsonPath.d.ts +5 -0
  178. package/dist/common/utils/jsonPath.d.ts.map +1 -0
  179. package/dist/common/utils/jsonPath.js +27 -0
  180. package/dist/common/utils/normalizeObject.d.ts +2 -0
  181. package/dist/common/utils/normalizeObject.d.ts.map +1 -0
  182. package/dist/common/utils/normalizeObject.js +63 -0
  183. package/dist/core/Context.d.ts +8 -1
  184. package/dist/core/Context.d.ts.map +1 -1
  185. package/dist/core/Context.js +23 -4
  186. package/dist/core/OpenApiClient.d.ts +2 -0
  187. package/dist/core/OpenApiClient.d.ts.map +1 -1
  188. package/dist/core/OpenApiClient.js +116 -6
  189. package/dist/core/WriteClient.d.ts +4 -0
  190. package/dist/core/WriteClient.d.ts.map +1 -1
  191. package/dist/core/WriteClient.js +38 -4
  192. package/dist/core/__tests__/WriteClient.test.js +4 -1
  193. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts +2 -0
  194. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts.map +1 -0
  195. package/dist/core/api/v2/parser/__tests__/getModel.test.js +34 -0
  196. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  197. package/dist/core/api/v2/parser/getModel.js +6 -1
  198. package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
  199. package/dist/core/api/v2/parser/getOperation.js +2 -0
  200. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  201. package/dist/core/api/v2/parser/getOperationResponses.js +9 -1
  202. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts +2 -0
  203. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts.map +1 -1
  204. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts +2 -0
  205. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts.map +1 -0
  206. package/dist/core/api/v3/parser/__tests__/getContent.test.js +65 -0
  207. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts +2 -0
  208. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts.map +1 -0
  209. package/dist/core/api/v3/parser/__tests__/getModel.test.js +34 -0
  210. package/dist/core/api/v3/parser/getContent.d.ts.map +1 -1
  211. package/dist/core/api/v3/parser/getContent.js +21 -11
  212. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  213. package/dist/core/api/v3/parser/getModel.js +6 -1
  214. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  215. package/dist/core/api/v3/parser/getOperation.js +2 -0
  216. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  217. package/dist/core/api/v3/parser/getOperationResponses.js +9 -1
  218. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts +2 -0
  219. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts.map +1 -1
  220. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts +2 -0
  221. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts.map +1 -0
  222. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.js +100 -0
  223. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts +2 -0
  224. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts.map +1 -0
  225. package/dist/core/governance/__tests__/loadGovernanceConfig.test.js +71 -0
  226. package/dist/core/governance/evaluateGovernanceRules.d.ts +42 -0
  227. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -0
  228. package/dist/core/governance/evaluateGovernanceRules.js +134 -0
  229. package/dist/core/governance/governanceConfigSchema.d.ts +4 -0
  230. package/dist/core/governance/governanceConfigSchema.d.ts.map +1 -0
  231. package/dist/core/governance/governanceConfigSchema.js +39 -0
  232. package/dist/core/governance/loadGovernanceConfig.d.ts +7 -0
  233. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -0
  234. package/dist/core/governance/loadGovernanceConfig.js +60 -0
  235. package/dist/core/index.d.ts +3 -0
  236. package/dist/core/index.d.ts.map +1 -1
  237. package/dist/core/index.js +4 -2
  238. package/dist/core/plugins/GeneratorPlugin.model.d.ts +42 -0
  239. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -0
  240. package/dist/core/plugins/GeneratorPlugin.model.js +2 -0
  241. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts +2 -0
  242. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts.map +1 -0
  243. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.js +115 -0
  244. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts +2 -0
  245. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts.map +1 -0
  246. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.js +62 -0
  247. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts +28 -0
  248. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -0
  249. package/dist/core/plugins/applySemanticDiffPluginHooks.js +160 -0
  250. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts +6 -0
  251. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts.map +1 -0
  252. package/dist/core/plugins/builtins/xTypescriptTypePlugin.js +13 -0
  253. package/dist/core/plugins/getBuiltinPlugins.d.ts +6 -0
  254. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -0
  255. package/dist/core/plugins/getBuiltinPlugins.js +10 -0
  256. package/dist/core/plugins/index.d.ts +4 -0
  257. package/dist/core/plugins/index.d.ts.map +1 -0
  258. package/dist/core/plugins/index.js +5 -0
  259. package/dist/core/plugins/loadGeneratorPlugins.d.ts +6 -0
  260. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -0
  261. package/dist/core/plugins/loadGeneratorPlugins.js +94 -0
  262. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts +2 -0
  263. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts.map +1 -0
  264. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +537 -0
  265. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts +2 -0
  266. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts.map +1 -0
  267. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +66 -0
  268. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +45 -0
  269. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -0
  270. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +640 -0
  271. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +11 -0
  272. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -0
  273. package/dist/core/semanticDiff/semanticDiffReportSchema.js +132 -0
  274. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts +2 -0
  275. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts.map +1 -0
  276. package/dist/core/strict/__tests__/validateOpenApiStrict.test.js +156 -0
  277. package/dist/core/strict/validateOpenApiStrict.d.ts +43 -0
  278. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -0
  279. package/dist/core/strict/validateOpenApiStrict.js +253 -0
  280. package/dist/core/types/base/ClientArtifacts.model.d.ts +2 -0
  281. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  282. package/dist/core/types/base/Templates.model.d.ts +3 -0
  283. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  284. package/dist/core/types/enums/ModelsMode.enum.d.ts +5 -0
  285. package/dist/core/types/enums/ModelsMode.enum.d.ts.map +1 -0
  286. package/dist/core/types/enums/ModelsMode.enum.js +8 -0
  287. package/dist/core/types/shared/Client.model.d.ts +2 -0
  288. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  289. package/dist/core/types/shared/DiffInfo.model.d.ts +13 -0
  290. package/dist/core/types/shared/DiffInfo.model.d.ts.map +1 -0
  291. package/dist/core/types/shared/DiffInfo.model.js +2 -0
  292. package/dist/core/types/shared/Miracle.model.d.ts +13 -0
  293. package/dist/core/types/shared/Miracle.model.d.ts.map +1 -0
  294. package/dist/core/types/shared/Miracle.model.js +2 -0
  295. package/dist/core/types/shared/Model.model.d.ts +23 -0
  296. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  297. package/dist/core/types/shared/Operation.model.d.ts +5 -0
  298. package/dist/core/types/shared/Operation.model.d.ts.map +1 -1
  299. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  300. package/dist/core/utils/__mocks__/templates.js +9 -0
  301. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts +2 -0
  302. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts.map +1 -0
  303. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +108 -0
  304. package/dist/core/utils/__tests__/getMappedType.test.js +2 -0
  305. package/dist/core/utils/__tests__/getOperationResponseCode.test.js +7 -2
  306. package/dist/core/utils/__tests__/getOperationResults.test.d.ts +2 -0
  307. package/dist/core/utils/__tests__/getOperationResults.test.d.ts.map +1 -0
  308. package/dist/core/utils/__tests__/getOperationResults.test.js +43 -0
  309. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts +2 -0
  310. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts.map +1 -0
  311. package/dist/core/utils/__tests__/prepareDtoModels.test.js +116 -0
  312. package/dist/core/utils/__tests__/serviceHelpers.test.js +1 -0
  313. package/dist/core/utils/__tests__/writeClientModels.test.js +50 -0
  314. package/dist/core/utils/applyDiffReportToClient.d.ts +14 -0
  315. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -0
  316. package/dist/core/utils/applyDiffReportToClient.js +367 -0
  317. package/dist/core/utils/getMappedType.d.ts.map +1 -1
  318. package/dist/core/utils/getMappedType.js +2 -0
  319. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  320. package/dist/core/utils/getOpenApiSpec.js +1 -14
  321. package/dist/core/utils/getOperationResponseCode.d.ts.map +1 -1
  322. package/dist/core/utils/getOperationResponseCode.js +10 -8
  323. package/dist/core/utils/loadDiffReport.d.ts +39 -0
  324. package/dist/core/utils/loadDiffReport.d.ts.map +1 -0
  325. package/dist/core/utils/loadDiffReport.js +51 -0
  326. package/dist/core/utils/prepareDtoModels.d.ts +3 -0
  327. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -0
  328. package/dist/core/utils/prepareDtoModels.js +189 -0
  329. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  330. package/dist/core/utils/registerHandlebarHelpers.js +4 -1
  331. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  332. package/dist/core/utils/registerHandlebarTemplates.js +6 -0
  333. package/dist/core/utils/validateRawOptions.d.ts +1 -1
  334. package/dist/core/utils/validateRawOptions.d.ts.map +1 -1
  335. package/dist/core/utils/validateRawOptions.js +4 -2
  336. package/dist/core/utils/writeClientCore.d.ts +2 -0
  337. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  338. package/dist/core/utils/writeClientCore.js +6 -1
  339. package/dist/core/utils/writeClientCoreIndex.d.ts +1 -0
  340. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  341. package/dist/core/utils/writeClientCoreIndex.js +2 -2
  342. package/dist/core/utils/writeClientExecutor.d.ts +2 -0
  343. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  344. package/dist/core/utils/writeClientExecutor.js +6 -2
  345. package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
  346. package/dist/core/utils/writeClientFullIndex.js +3 -1
  347. package/dist/core/utils/writeClientModels.d.ts +6 -0
  348. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  349. package/dist/core/utils/writeClientModels.js +24 -3
  350. package/dist/core/utils/writeClientModelsIndex.d.ts +2 -0
  351. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  352. package/dist/core/utils/writeClientModelsIndex.js +2 -2
  353. package/dist/core/utils/writeClientSchemas.d.ts +2 -0
  354. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  355. package/dist/core/utils/writeClientSchemas.js +6 -2
  356. package/dist/core/utils/writeClientServices.d.ts +2 -0
  357. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  358. package/dist/core/utils/writeClientServices.js +6 -2
  359. package/dist/templatesCompiled/cli/openApiConfig.d.ts +4 -1
  360. package/dist/templatesCompiled/cli/openApiConfig.d.ts.map +1 -1
  361. package/dist/templatesCompiled/cli/openApiConfig.js +88 -37
  362. package/dist/templatesCompiled/client/core/ApiRequestOptions.js +1 -1
  363. package/dist/templatesCompiled/client/core/BaseDto.d.ts +8 -0
  364. package/dist/templatesCompiled/client/core/BaseDto.d.ts.map +1 -0
  365. package/dist/templatesCompiled/client/core/BaseDto.js +18 -0
  366. package/dist/templatesCompiled/client/core/axios/getResponseBody.js +1 -1
  367. package/dist/templatesCompiled/client/core/axios/request.js +2 -2
  368. package/dist/templatesCompiled/client/core/axios/sendRequest.js +4 -4
  369. package/dist/templatesCompiled/client/core/dtoUtils.d.ts +8 -0
  370. package/dist/templatesCompiled/client/core/dtoUtils.d.ts.map +1 -0
  371. package/dist/templatesCompiled/client/core/dtoUtils.js +18 -0
  372. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +2 -2
  373. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +1 -1
  374. package/dist/templatesCompiled/client/core/fetch/getResponseBody.js +1 -1
  375. package/dist/templatesCompiled/client/core/fetch/request.js +2 -2
  376. package/dist/templatesCompiled/client/core/functions/isBinary.js +1 -1
  377. package/dist/templatesCompiled/client/core/node/getResponseBody.js +1 -1
  378. package/dist/templatesCompiled/client/core/node/request.js +2 -2
  379. package/dist/templatesCompiled/client/core/xhr/getResponseBody.js +1 -1
  380. package/dist/templatesCompiled/client/core/xhr/request.js +2 -2
  381. package/dist/templatesCompiled/client/core/xhr/sendRequest.js +4 -4
  382. package/dist/templatesCompiled/client/exportModels.d.ts +34 -0
  383. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -0
  384. package/dist/templatesCompiled/client/exportModels.js +280 -0
  385. package/dist/templatesCompiled/client/exportService.d.ts +7 -4
  386. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  387. package/dist/templatesCompiled/client/exportService.js +52 -33
  388. package/dist/templatesCompiled/client/indexCore.d.ts +3 -1
  389. package/dist/templatesCompiled/client/indexCore.d.ts.map +1 -1
  390. package/dist/templatesCompiled/client/indexCore.js +13 -2
  391. package/dist/templatesCompiled/client/indexFull.d.ts +9 -7
  392. package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
  393. package/dist/templatesCompiled/client/indexFull.js +52 -34
  394. package/dist/templatesCompiled/client/indexModels.d.ts +7 -5
  395. package/dist/templatesCompiled/client/indexModels.d.ts.map +1 -1
  396. package/dist/templatesCompiled/client/indexModels.js +27 -18
  397. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts +27 -19
  398. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts.map +1 -1
  399. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.js +144 -63
  400. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts +1 -0
  401. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts.map +1 -1
  402. package/dist/templatesCompiled/client/jsonschema/exportSchema.js +17 -13
  403. package/dist/templatesCompiled/client/partials/exportInterface.d.ts +13 -5
  404. package/dist/templatesCompiled/client/partials/exportInterface.d.ts.map +1 -1
  405. package/dist/templatesCompiled/client/partials/exportInterface.js +91 -21
  406. package/dist/templatesCompiled/client/partials/result.d.ts +6 -4
  407. package/dist/templatesCompiled/client/partials/result.d.ts.map +1 -1
  408. package/dist/templatesCompiled/client/partials/result.js +16 -6
  409. package/dist/templatesCompiled/client/partials/serviceOption.d.ts +1 -0
  410. package/dist/templatesCompiled/client/partials/serviceOption.d.ts.map +1 -1
  411. package/dist/templatesCompiled/client/partials/serviceOption.js +11 -4
  412. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts +22 -16
  413. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts.map +1 -1
  414. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.js +72 -60
  415. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts +27 -19
  416. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts.map +1 -1
  417. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.js +77 -61
  418. package/package.json +7 -5
@@ -1,3 +1,3 @@
1
1
  import { BuiltInParserName, LiteralUnion } from 'prettier';
2
- export declare function format(input: string, parser?: LiteralUnion<BuiltInParserName>): Promise<string>;
2
+ export declare function format(input: string, parser?: LiteralUnion<BuiltInParserName>, useProjectConfig?: boolean): Promise<string>;
3
3
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA2B,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpF,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBrG"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,YAAY,EAA6C,MAAM,UAAU,CAAC;AAiBhI,wBAAsB,MAAM,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EACxC,gBAAgB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
@@ -2,23 +2,47 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.format = format;
4
4
  const prettier_1 = require("prettier");
5
- async function format(input, parser) {
5
+ const Consts_1 = require("../Consts");
6
+ const LoggerMessages_1 = require("../LoggerMessages");
7
+ const BUILTIN_PRETTIER_OPTIONS = {
8
+ tabWidth: 4,
9
+ printWidth: 120,
10
+ useTabs: false,
11
+ singleQuote: true,
12
+ quoteProps: 'as-needed',
13
+ trailingComma: 'all',
14
+ bracketSpacing: true,
15
+ arrowParens: 'avoid',
16
+ endOfLine: 'auto',
17
+ };
18
+ async function format(input, parser, useProjectConfig) {
19
+ let options = { ...BUILTIN_PRETTIER_OPTIONS, parser: parser ?? 'typescript' };
20
+ if (useProjectConfig) {
21
+ try {
22
+ const resolved = await (0, prettier_1.resolveConfig)(process.cwd(), { useCache: false });
23
+ if (resolved) {
24
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_RESOLVED(process.cwd()));
25
+ options = { ...resolved, parser: parser ?? resolved.parser ?? 'typescript' };
26
+ }
27
+ else {
28
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_NOT_FOUND);
29
+ }
30
+ }
31
+ catch {
32
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_NOT_FOUND);
33
+ }
34
+ }
6
35
  try {
7
- const formatedCode = await (0, prettier_1.format)(input, {
8
- parser: parser ?? 'typescript',
9
- tabWidth: 4,
10
- printWidth: 120,
11
- useTabs: false,
12
- singleQuote: true,
13
- quoteProps: 'as-needed',
14
- trailingComma: 'all',
15
- bracketSpacing: true,
16
- arrowParens: 'avoid',
17
- endOfLine: 'auto',
18
- });
36
+ const formatedCode = await (0, prettier_1.format)(input, options);
19
37
  return formatedCode;
20
38
  }
21
- catch {
22
- throw new Error('Could not to format the value via prettier');
39
+ catch (error) {
40
+ const message = error instanceof Error ? error.message : String(error);
41
+ Consts_1.APP_LOGGER.errorWithHint({
42
+ code: LoggerMessages_1.LOGGER_ERROR_CODES.PRETTIER_FORMAT_FAILED,
43
+ message: LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_FORMAT_FAILED('(generated content)', message),
44
+ error,
45
+ });
46
+ throw new Error(`Could not format the value via prettier: ${message}`);
23
47
  }
24
48
  }
@@ -0,0 +1,5 @@
1
+ type JsonPathSegment = string | number;
2
+ export declare const toJsonPath: (segments: JsonPathSegment[]) => string;
3
+ export declare const parseJsonPath: (path: string) => string[];
4
+ export {};
5
+ //# sourceMappingURL=jsonPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonPath.d.ts","sourceRoot":"","sources":["../../../src/common/utils/jsonPath.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,GAAI,UAAU,eAAe,EAAE,KAAG,MAcxD,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAQlD,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseJsonPath = exports.toJsonPath = void 0;
4
+ const toJsonPath = (segments) => {
5
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
+ // @ts-ignore
7
+ return segments.reduce((path, seg) => {
8
+ const segment = String(seg);
9
+ const needsBrackets = segment.includes('.') || segment.includes('/') || segment.includes('-') || segment.includes('[') || segment.includes(']');
10
+ if (segment === '') {
11
+ return path;
12
+ }
13
+ return path + (needsBrackets ? `['${segment}']` : `.${segment}`);
14
+ }, '$');
15
+ };
16
+ exports.toJsonPath = toJsonPath;
17
+ const JSON_PATH_SEGMENT_REGEX = /\[['"]([^'"]+)['"]\]|\.([A-Za-z0-9_$]+)/g;
18
+ const parseJsonPath = (path) => {
19
+ const segments = [];
20
+ JSON_PATH_SEGMENT_REGEX.lastIndex = 0;
21
+ let match;
22
+ while ((match = JSON_PATH_SEGMENT_REGEX.exec(path)) !== null) {
23
+ segments.push(match[1] ?? match[2]);
24
+ }
25
+ return segments.filter(segment => segment.length > 0);
26
+ };
27
+ exports.parseJsonPath = parseJsonPath;
@@ -0,0 +1,2 @@
1
+ export declare const normalizeObject: (value: any) => any;
2
+ //# sourceMappingURL=normalizeObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/normalizeObject.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,KAAG,GA2B5C,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeObject = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const isPlainObject = (value) => {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ };
8
+ const mergeObjects = (base, next) => {
9
+ const result = { ...base };
10
+ for (const [key, value] of Object.entries(next)) {
11
+ const existing = result[key];
12
+ if (isPlainObject(existing) && isPlainObject(value)) {
13
+ result[key] = mergeObjects(existing, value);
14
+ }
15
+ else {
16
+ result[key] = value;
17
+ }
18
+ }
19
+ return result;
20
+ };
21
+ const expandAllOf = (value) => {
22
+ const allOf = Array.isArray(value.allOf) ? value.allOf : null;
23
+ if (!allOf)
24
+ return value;
25
+ let merged = {};
26
+ for (const item of allOf) {
27
+ if (isPlainObject(item)) {
28
+ merged = mergeObjects(merged, item);
29
+ }
30
+ }
31
+ const rest = {};
32
+ for (const [key, val] of Object.entries(value)) {
33
+ if (key === 'allOf')
34
+ continue;
35
+ rest[key] = val;
36
+ }
37
+ return mergeObjects(merged, rest);
38
+ };
39
+ const normalizeObject = (value) => {
40
+ if (value === null || value === undefined) {
41
+ return value;
42
+ }
43
+ if (Array.isArray(value)) {
44
+ return value.map(item => (0, exports.normalizeObject)(item));
45
+ }
46
+ if (typeof value !== 'object') {
47
+ return value;
48
+ }
49
+ const expanded = expandAllOf(value);
50
+ const entries = Object.entries(expanded).sort(([a], [b]) => {
51
+ if (a < b)
52
+ return -1;
53
+ if (a > b)
54
+ return 1;
55
+ return 0;
56
+ });
57
+ const result = {};
58
+ for (const [key, val] of entries) {
59
+ result[key] = (0, exports.normalizeObject)(val);
60
+ }
61
+ return result;
62
+ };
63
+ exports.normalizeObject = normalizeObject;
@@ -1,4 +1,5 @@
1
1
  import { JSONSchema4Type, JSONSchema6Type, JSONSchema7Type } from 'json-schema';
2
+ import { OpenApiGeneratorPlugin, SchemaTypeOverrideContext } from './plugins/GeneratorPlugin.model';
2
3
  import { OutputPaths } from './types/base/OutputPaths.model';
3
4
  import { PrefixArtifacts } from './types/base/PrefixArtifacts.model';
4
5
  import { $Root } from './types/base/Root.model';
@@ -7,6 +8,7 @@ type TContextProps = {
7
8
  output: OutputPaths;
8
9
  prefix?: PrefixArtifacts;
9
10
  sortByRequired?: boolean;
11
+ plugins?: OpenApiGeneratorPlugin[];
10
12
  };
11
13
  type RefsLike = {
12
14
  values: (...args: any[]) => Record<string, any>;
@@ -32,10 +34,11 @@ export declare class Context {
32
34
  private _output;
33
35
  prefix: PrefixArtifacts;
34
36
  private _sortByRequired;
37
+ private _plugins;
35
38
  private specRoot;
36
39
  private entryFile?;
37
40
  private virtualFiles;
38
- constructor({ input, output, prefix, sortByRequired }: TContextProps);
41
+ constructor({ input, output, prefix, sortByRequired, plugins }: TContextProps);
39
42
  addRefs(refs: RefsLike): Context;
40
43
  values(...types: string[]): Record<string, any>;
41
44
  get($ref: string, parentSourceFile?: string): JSONSchema4Type | JSONSchema6Type | JSONSchema7Type;
@@ -45,6 +48,10 @@ export declare class Context {
45
48
  get output(): OutputPaths;
46
49
  get sortByRequired(): boolean;
47
50
  get root(): $Root | undefined;
51
+ /**
52
+ * Resolves custom type override for schema via registered plugins.
53
+ */
54
+ resolveSchemaTypeOverride(schema: Record<string, any>, context: SchemaTypeOverrideContext): string | undefined;
48
55
  private canonicalizeRef;
49
56
  private mapSourceToOutput;
50
57
  private walkSchemaForFragments;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIhF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMhD,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,QAAQ,GAAG;IACZ,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;IAC7E,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;CACvC,CAAC;AAEF,UAAU,WAAW;IACjB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,KAAK,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAc;IACtB,MAAM,EAAE,eAAe,CAI5B;IAEF,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA6B;gBAErC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa;IAmB7D,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKhC,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAO/C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe;IAQjG,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAOnC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;IAQxD,QAAQ,IAAI,MAAM;IAOzB,IAAW,MAAM,gBAKhB;IAED,IAAW,cAAc,YAExB;IAED,IAAW,IAAI,IAAI,KAAK,GAAG,SAAS,CAEnC;IAED,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,sBAAsB;IA+BvB,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAuC/D,eAAe,IAAI,cAAc;IAIjC,mBAAmB,IAAI,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GACpE;QACI,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GACD,SAAS;IAef,OAAO,CAAC,qBAAqB;CAyBhC"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,11 @@ class Context {
20
20
  type: 'T',
21
21
  };
22
22
  _sortByRequired = false;
23
+ _plugins = [];
23
24
  specRoot;
24
25
  entryFile;
25
26
  virtualFiles = new Map();
26
- constructor({ input, output, prefix, sortByRequired }) {
27
+ constructor({ input, output, prefix, sortByRequired, plugins }) {
27
28
  this._output = output;
28
29
  this._refs = {};
29
30
  if ((0, isString_1.isString)(input)) {
@@ -38,6 +39,7 @@ class Context {
38
39
  if (sortByRequired !== undefined && sortByRequired !== null) {
39
40
  this._sortByRequired = sortByRequired;
40
41
  }
42
+ this._plugins = plugins || [];
41
43
  return this;
42
44
  }
43
45
  addRefs(refs) {
@@ -88,6 +90,18 @@ class Context {
88
90
  get root() {
89
91
  return this._root;
90
92
  }
93
+ /**
94
+ * Resolves custom type override for schema via registered plugins.
95
+ */
96
+ resolveSchemaTypeOverride(schema, context) {
97
+ for (const plugin of this._plugins) {
98
+ const override = plugin.resolveSchemaTypeOverride?.({ schema, context });
99
+ if (typeof override === 'string' && override.trim()) {
100
+ return override.trim();
101
+ }
102
+ }
103
+ return undefined;
104
+ }
91
105
  canonicalizeRef(ref, parentSourceFile) {
92
106
  const parsed = (0, parseRef_1.parseRef)(ref);
93
107
  // LOCAL_FRAGMENT → тот же файл
@@ -164,9 +178,14 @@ class Context {
164
178
  }
165
179
  // Обходим каждый файл чтобы найти $ref с фрагментами (#)
166
180
  for (const [sourceFile] of this.virtualFiles) {
167
- const schema = this._refs?.get(sourceFile);
168
- if (schema && typeof schema === 'object') {
169
- this.walkSchemaForFragments(schema, sourceFile);
181
+ try {
182
+ const schema = this._refs?.get(sourceFile);
183
+ if (schema && typeof schema === 'object') {
184
+ this.walkSchemaForFragments(schema, sourceFile);
185
+ }
186
+ }
187
+ catch {
188
+ // Skip unresolved entries from refs.paths().
170
189
  }
171
190
  }
172
191
  }
@@ -8,6 +8,8 @@ export declare class OpenApiClient {
8
8
  private cleanOutputDirectories;
9
9
  private generateCodeForItems;
10
10
  private generateSingle;
11
+ private loadDiffReportIfNeeded;
12
+ private applyDiffReportIfNeeded;
11
13
  generate(rawOptions: TRawOptions): Promise<void>;
12
14
  }
13
15
  //# sourceMappingURL=OpenApiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AAgBtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,aAAa;IACtB,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,gBAAgB;YA4BV,sBAAsB;YAUtB,oBAAoB;YAmCpB,cAAc;IAwFtB,QAAQ,CAAC,UAAU,EAAE,WAAW;CAWzC"}
1
+ {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AAwBtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,aAAa;IACtB,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAwExB,OAAO,CAAC,gBAAgB;YAwCV,sBAAsB;YAUtB,oBAAoB;YAoCpB,cAAc;YA2Jd,sBAAsB;IASpC,OAAO,CAAC,uBAAuB;IAczB,QAAQ,CAAC,UAAU,EAAE,WAAW;CAWzC"}
@@ -9,12 +9,19 @@ const pathHelpers_1 = require("../common/utils/pathHelpers");
9
9
  const Parser_1 = require("./api/v2/Parser");
10
10
  const Parser_2 = require("./api/v3/Parser");
11
11
  const Context_1 = require("./Context");
12
+ const loadGovernanceConfig_1 = require("./governance/loadGovernanceConfig");
13
+ const loadGeneratorPlugins_1 = require("./plugins/loadGeneratorPlugins");
14
+ const validateOpenApiStrict_1 = require("./strict/validateOpenApiStrict");
12
15
  const EmptySchemaStrategy_enum_1 = require("./types/enums/EmptySchemaStrategy.enum");
16
+ const ModelsMode_enum_1 = require("./types/enums/ModelsMode.enum");
13
17
  const ValidationLibrary_enum_1 = require("./types/enums/ValidationLibrary.enum");
18
+ const applyDiffReportToClient_1 = require("./utils/applyDiffReportToClient");
14
19
  const getOpenApiSpec_1 = require("./utils/getOpenApiSpec");
15
20
  const getOpenApiVersion_1 = require("./utils/getOpenApiVersion");
16
21
  const getOutputPaths_1 = require("./utils/getOutputPaths");
22
+ const loadDiffReport_1 = require("./utils/loadDiffReport");
17
23
  const postProcessClient_1 = require("./utils/postProcessClient");
24
+ const prepareDtoModels_1 = require("./utils/prepareDtoModels");
18
25
  const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates");
19
26
  const WriteClient_1 = require("./WriteClient");
20
27
  class OpenApiClient {
@@ -26,12 +33,16 @@ class OpenApiClient {
26
33
  return this._writeClient;
27
34
  }
28
35
  normalizeOptions(rawOptions) {
36
+ const modelsMode = rawOptions.modelsMode ?? rawOptions.models?.mode;
37
+ const useHistory = rawOptions.useHistory ?? rawOptions.analyze?.useHistory;
38
+ const diffReport = rawOptions.diffReport ?? rawOptions.analyze?.reportPath;
29
39
  if (rawOptions.items && rawOptions.items.length > 0) {
30
40
  // Для items: Наследуем глобальный request, если не переопределён
31
41
  return rawOptions.items.map(item => ({
32
42
  ...item,
33
43
  httpClient: rawOptions.httpClient,
34
44
  request: item.request ?? rawOptions.request, // ?? для fallback на глобальный
45
+ plugins: item.plugins ?? rawOptions.plugins,
35
46
  customExecutorPath: rawOptions.customExecutorPath,
36
47
  useOptions: rawOptions.useOptions,
37
48
  useUnionTypes: rawOptions.useUnionTypes,
@@ -47,6 +58,12 @@ class OpenApiClient {
47
58
  useSeparatedIndexes: rawOptions.useSeparatedIndexes,
48
59
  validationLibrary: rawOptions.validationLibrary,
49
60
  emptySchemaStrategy: rawOptions.emptySchemaStrategy,
61
+ useHistory: item.useHistory ?? useHistory,
62
+ diffReport: item.diffReport ?? diffReport,
63
+ modelsMode: item.modelsMode ?? modelsMode,
64
+ strictOpenapi: rawOptions.strictOpenapi,
65
+ reportFile: rawOptions.reportFile,
66
+ governanceConfig: rawOptions.governanceConfig,
50
67
  }));
51
68
  }
52
69
  else {
@@ -65,6 +82,7 @@ class OpenApiClient {
65
82
  includeSchemasFiles: rawOptions.includeSchemasFiles,
66
83
  excludeCoreServiceFiles: rawOptions.excludeCoreServiceFiles,
67
84
  request: rawOptions.request,
85
+ plugins: rawOptions.plugins,
68
86
  customExecutorPath: rawOptions.customExecutorPath,
69
87
  interfacePrefix: rawOptions.interfacePrefix,
70
88
  enumPrefix: rawOptions.enumPrefix,
@@ -76,6 +94,12 @@ class OpenApiClient {
76
94
  useSeparatedIndexes: rawOptions.useSeparatedIndexes,
77
95
  validationLibrary: rawOptions.validationLibrary,
78
96
  emptySchemaStrategy: rawOptions.emptySchemaStrategy,
97
+ useHistory,
98
+ diffReport,
99
+ modelsMode,
100
+ strictOpenapi: rawOptions.strictOpenapi,
101
+ reportFile: rawOptions.reportFile,
102
+ governanceConfig: rawOptions.governanceConfig,
79
103
  },
80
104
  ];
81
105
  }
@@ -94,6 +118,7 @@ class OpenApiClient {
94
118
  includeSchemasFiles: item.includeSchemasFiles ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.includeSchemasFiles,
95
119
  excludeCoreServiceFiles: item.excludeCoreServiceFiles ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.excludeCoreServiceFiles,
96
120
  request: item.request || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.request,
121
+ plugins: item.plugins || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.plugins,
97
122
  customExecutorPath: item.customExecutorPath || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.customExecutorPath,
98
123
  interfacePrefix: item.interfacePrefix || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.interfacePrefix,
99
124
  enumPrefix: item.enumPrefix || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.enumPrefix,
@@ -105,6 +130,17 @@ class OpenApiClient {
105
130
  useSeparatedIndexes: item.useSeparatedIndexes ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.useSeparatedIndexes,
106
131
  validationLibrary: item.validationLibrary ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.validationLibrary,
107
132
  emptySchemaStrategy: item.emptySchemaStrategy ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.emptySchemaStrategy,
133
+ useHistory: item.useHistory ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.useHistory,
134
+ diffReport: item.diffReport || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.diffReport,
135
+ modelsMode: item.modelsMode ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.modelsMode,
136
+ models: item.models || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.models,
137
+ analyze: item.analyze || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.analyze,
138
+ miracles: item.miracles || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.miracles,
139
+ strictOpenapi: item.strictOpenapi ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.strictOpenapi,
140
+ reportFile: item.reportFile || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.reportFile,
141
+ useProjectPrettier: item.useProjectPrettier ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.useProjectPrettier,
142
+ useEslintFix: item.useEslintFix ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.useEslintFix,
143
+ governanceConfig: item.governanceConfig || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.governanceConfig,
108
144
  };
109
145
  }
110
146
  async cleanOutputDirectories(option) {
@@ -145,11 +181,12 @@ class OpenApiClient {
145
181
  }
146
182
  catch (error) {
147
183
  this.writeClient.logger.error(LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(error.message));
184
+ throw error;
148
185
  }
149
186
  this.writeClient.logger.shutdownLogger();
150
187
  }
151
188
  async generateSingle(item) {
152
- const { input, output, outputCore, outputServices, outputModels, outputSchemas, httpClient, useOptions, useUnionTypes, excludeCoreServiceFiles, request, customExecutorPath, interfacePrefix, enumPrefix, typePrefix, useCancelableRequest, sortByRequired, useSeparatedIndexes, validationLibrary = ValidationLibrary_enum_1.ValidationLibrary.NONE, emptySchemaStrategy = EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP, } = item;
189
+ const { input, output, outputCore, outputServices, outputModels, outputSchemas, httpClient, useOptions, useUnionTypes, excludeCoreServiceFiles, request, plugins, customExecutorPath, interfacePrefix, enumPrefix, typePrefix, useCancelableRequest, sortByRequired, useSeparatedIndexes, validationLibrary = ValidationLibrary_enum_1.ValidationLibrary.NONE, emptySchemaStrategy = EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP, useHistory, diffReport, modelsMode = ModelsMode_enum_1.ModelsMode.INTERFACES, strictOpenapi, reportFile, useProjectPrettier = false, useEslintFix = false, governanceConfig, } = item;
153
190
  const outputPaths = (0, getOutputPaths_1.getOutputPaths)({
154
191
  output,
155
192
  outputCore,
@@ -158,8 +195,30 @@ class OpenApiClient {
158
195
  outputSchemas,
159
196
  });
160
197
  const absoluteInput = (0, pathHelpers_1.resolveHelper)(process.cwd(), input);
161
- const context = new Context_1.Context({ input: absoluteInput, output: outputPaths, prefix: { interface: interfacePrefix, enum: enumPrefix, type: typePrefix }, sortByRequired });
198
+ const generatorPlugins = await (0, loadGeneratorPlugins_1.loadGeneratorPlugins)(plugins);
199
+ const context = new Context_1.Context({
200
+ input: absoluteInput,
201
+ output: outputPaths,
202
+ prefix: { interface: interfacePrefix, enum: enumPrefix, type: typePrefix },
203
+ sortByRequired,
204
+ plugins: generatorPlugins,
205
+ });
162
206
  const openApi = await (0, getOpenApiSpec_1.getOpenApiSpec)(context, absoluteInput);
207
+ if (strictOpenapi) {
208
+ const parserValidationIssues = await (0, validateOpenApiStrict_1.validateWithSwaggerParser)(absoluteInput);
209
+ const governancePolicy = await (0, loadGovernanceConfig_1.loadGovernanceConfig)(governanceConfig);
210
+ const strictReport = (0, validateOpenApiStrict_1.validateOpenApiStrict)({
211
+ openApi,
212
+ context,
213
+ preIssues: parserValidationIssues,
214
+ governanceConfig: governancePolicy,
215
+ });
216
+ const reportPath = await (0, validateOpenApiStrict_1.writeOpenApiStrictReport)(strictReport, reportFile);
217
+ this.writeClient.logger.forceInfo(`Strict OpenAPI report created: ${reportPath}`);
218
+ if (strictReport.summary.errors > 0) {
219
+ throw new Error(`Strict OpenAPI validation failed with ${strictReport.summary.errors} error(s). Report: ${reportPath}`);
220
+ }
221
+ }
163
222
  const openApiVersion = (0, getOpenApiVersion_1.getOpenApiVersion)(openApi);
164
223
  const templates = (0, registerHandlebarTemplates_1.registerHandlebarTemplates)({
165
224
  httpClient,
@@ -167,14 +226,29 @@ class OpenApiClient {
167
226
  useOptions,
168
227
  validationLibrary,
169
228
  });
229
+ const diffReportData = await this.loadDiffReportIfNeeded({
230
+ useHistory,
231
+ diffReport,
232
+ inputPath: absoluteInput,
233
+ });
170
234
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.DEFINING_VERSION);
171
235
  switch (openApiVersion) {
172
236
  case getOpenApiVersion_1.OpenApiVersion.V2: {
173
237
  const client = new Parser_1.Parser(context).parse(openApi);
174
- const clientFinal = (0, postProcessClient_1.postProcessClient)(client);
238
+ const clientWithDiff = this.applyDiffReportIfNeeded({
239
+ client,
240
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
241
+ // @ts-ignore
242
+ openApi,
243
+ openApiVersion,
244
+ diffReport: diffReportData,
245
+ context,
246
+ });
247
+ const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
248
+ const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
175
249
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V2);
176
250
  await this.writeClient.writeClient({
177
- client: clientFinal,
251
+ client: clientPrepared,
178
252
  templates,
179
253
  outputPaths,
180
254
  httpClient,
@@ -187,15 +261,28 @@ class OpenApiClient {
187
261
  useSeparatedIndexes,
188
262
  validationLibrary,
189
263
  emptySchemaStrategy,
264
+ modelsMode,
265
+ useProjectPrettier,
266
+ useEslintFix,
190
267
  });
191
268
  break;
192
269
  }
193
270
  case getOpenApiVersion_1.OpenApiVersion.V3: {
194
271
  const client = new Parser_2.Parser(context).parse(openApi);
195
- const clientFinal = (0, postProcessClient_1.postProcessClient)(client);
272
+ const clientWithDiff = this.applyDiffReportIfNeeded({
273
+ client,
274
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
275
+ // @ts-ignore
276
+ openApi,
277
+ openApiVersion,
278
+ diffReport: diffReportData,
279
+ context,
280
+ });
281
+ const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
282
+ const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
196
283
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V3);
197
284
  await this.writeClient.writeClient({
198
- client: clientFinal,
285
+ client: clientPrepared,
199
286
  templates,
200
287
  outputPaths,
201
288
  httpClient,
@@ -208,11 +295,34 @@ class OpenApiClient {
208
295
  useSeparatedIndexes,
209
296
  validationLibrary,
210
297
  emptySchemaStrategy,
298
+ modelsMode,
299
+ useProjectPrettier,
300
+ useEslintFix,
211
301
  });
212
302
  break;
213
303
  }
214
304
  }
215
305
  }
306
+ async loadDiffReportIfNeeded(params) {
307
+ return (0, loadDiffReport_1.loadDiffReport)({
308
+ useHistory: params.useHistory,
309
+ diffReport: params.diffReport,
310
+ inputPath: params.inputPath,
311
+ logger: this.writeClient.logger,
312
+ });
313
+ }
314
+ applyDiffReportIfNeeded(params) {
315
+ if (!params.diffReport) {
316
+ return params.client;
317
+ }
318
+ return (0, applyDiffReportToClient_1.applyDiffReportToClient)({
319
+ client: params.client,
320
+ openApi: params.openApi,
321
+ openApiVersion: params.openApiVersion,
322
+ diffReport: params.diffReport,
323
+ prefix: params.context.prefix,
324
+ });
325
+ }
216
326
  async generate(rawOptions) {
217
327
  const logger = new Logger_1.Logger({
218
328
  level: rawOptions.logLevel ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.logLevel,
@@ -3,6 +3,7 @@ import { OutputPaths } from './types/base/OutputPaths.model';
3
3
  import { Templates } from './types/base/Templates.model';
4
4
  import { EmptySchemaStrategy } from './types/enums/EmptySchemaStrategy.enum';
5
5
  import { HttpClient } from './types/enums/HttpClient.enum';
6
+ import { ModelsMode } from './types/enums/ModelsMode.enum';
6
7
  import { ValidationLibrary } from './types/enums/ValidationLibrary.enum';
7
8
  import type { Client } from './types/shared/Client.model';
8
9
  import type { Model } from './types/shared/Model.model';
@@ -44,6 +45,9 @@ type TWriteClientProps = {
44
45
  useSeparatedIndexes?: boolean;
45
46
  validationLibrary?: ValidationLibrary;
46
47
  emptySchemaStrategy: EmptySchemaStrategy;
48
+ modelsMode?: ModelsMode;
49
+ useProjectPrettier?: boolean;
50
+ useEslintFix?: boolean;
47
51
  };
48
52
  type TAPIClientGeneratorConfig = Omit<TWriteClientProps, 'httpClient' | 'useOptions' | 'request' | 'useCancelableRequest' | 'useSeparatedIndexes'> & {
49
53
  schemaModels: Model[];
@@ -1 +1 @@
1
- {"version":3,"file":"WriteClient.d.ts","sourceRoot":"","sources":["../../src/core/WriteClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WriteClient.d.ts","sourceRoot":"","sources":["../../src/core/WriteClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM1C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,KAAK,iBAAiB,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,uBAAuB,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAC,GAAG;IACjJ,YAAY,EAAE,KAAK,EAAE,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAuD;IACrE,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAU3B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAuI9C,sBAAsB;IA0DpC;;;OAGG;IACH,6BAA6B,CAAC,MAAM,EAAE,yBAAyB;IAUzD,eAAe;IAKf,sBAAsB;IAK5B,IAAW,MAAM,WAEhB;IAED,OAAO,CAAC,yBAAyB;IAyCjC,OAAO,CAAC,mBAAmB;YAkEb,gBAAgB;YAUhB,uBAAuB;IAMrC,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAId,eAAe,yBAAmB;IAClC,oBAAoB,8BAAwB;IAC5C,oBAAoB,8BAAwB;IAC5C,iBAAiB,2BAAqB;IACtC,sBAAsB,gCAA0B;IAChD,kBAAkB,4BAAsB;IACxC,uBAAuB,iCAA2B;IAClD,mBAAmB,6BAAuB;IAC1C,wBAAwB,kCAA4B;IACpD,sBAAsB,gCAA0B;IAChD,mBAAmB,6BAAuB;CACpD"}