ts-openapi-codegen 2.1.0-beta.1 → 2.1.0-beta.10

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 (520) hide show
  1. package/README.md +27 -934
  2. package/README.rus.md +27 -934
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +40 -24
  4. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
  5. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
  6. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
  7. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +17 -7
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +17 -7
  9. package/dist/cli/analyzeDiff/analyzeDiff.d.ts +14 -2
  10. package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -1
  11. package/dist/cli/analyzeDiff/analyzeDiff.js +58 -15
  12. package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -3
  13. package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -1
  14. package/dist/cli/analyzeDiff/ciSummary.js +10 -6
  15. package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -22
  16. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  17. package/dist/cli/analyzeDiff/ignoreRules.js +3 -25
  18. package/dist/cli/analyzeDiff/miracles.d.ts +0 -54
  19. package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -1
  20. package/dist/cli/analyzeDiff/miracles.js +1 -219
  21. package/dist/cli/analyzeDiff/specParser.d.ts +0 -13
  22. package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -1
  23. package/dist/cli/analyzeDiff/specParser.js +2 -23
  24. package/dist/cli/analyzeDiff/types.d.ts +0 -42
  25. package/dist/cli/analyzeDiff/types.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
  27. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
  28. package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
  29. package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
  30. package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
  31. package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
  32. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
  33. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
  34. package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
  35. package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
  36. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
  37. package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
  38. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
  39. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
  40. package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
  41. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
  42. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
  43. package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
  44. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
  45. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
  46. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
  47. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
  48. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
  49. package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
  50. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
  51. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
  52. package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
  53. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
  54. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
  55. package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
  56. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
  57. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
  58. package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
  59. package/dist/cli/analyzeUsage/types.d.ts +52 -0
  60. package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
  61. package/dist/cli/analyzeUsage/types.js +2 -0
  62. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
  63. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
  64. package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
  65. package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
  66. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
  67. package/dist/cli/analyzeUsage/utils/report.js +85 -0
  68. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
  69. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
  70. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
  71. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
  72. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
  73. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
  74. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
  75. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  76. package/dist/cli/checkAndUpdateConfig/checkConfig.js +15 -6
  77. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
  78. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  79. package/dist/cli/checkAndUpdateConfig/updateConfig.js +8 -5
  80. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
  81. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
  82. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
  83. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
  84. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
  85. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
  86. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
  87. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
  88. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
  89. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  90. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  91. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
  92. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
  93. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
  94. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
  95. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  96. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  97. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  98. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +18 -9
  99. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +2 -5
  100. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  101. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -20
  102. package/dist/cli/index.js +45 -9
  103. package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
  104. package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
  105. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
  106. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
  107. package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
  108. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
  109. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
  110. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
  111. package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
  112. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  113. package/dist/cli/initOpenApiConfig/init.js +52 -20
  114. package/dist/cli/initOpenApiConfig/initConfig.d.ts +5 -0
  115. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  116. package/dist/cli/initOpenApiConfig/initConfig.js +8 -4
  117. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +3 -2
  118. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  119. package/dist/cli/initOpenApiConfig/initCustomRequest.js +36 -10
  120. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
  121. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
  122. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
  123. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
  124. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
  125. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
  126. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
  127. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
  128. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
  129. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
  130. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  131. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +24 -19
  132. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  133. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
  134. package/dist/cli/interactive/constants.d.ts +0 -4
  135. package/dist/cli/interactive/constants.d.ts.map +1 -1
  136. package/dist/cli/interactive/constants.js +1 -5
  137. package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
  138. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  139. package/dist/cli/previewChanges/previewChanges.js +8 -8
  140. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
  141. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
  142. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
  143. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
  144. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
  145. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
  146. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
  147. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
  148. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
  149. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
  150. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
  151. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
  152. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  153. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  154. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  155. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
  156. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
  157. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
  158. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
  159. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
  160. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
  161. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
  162. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
  163. package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
  164. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
  165. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
  166. package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
  167. package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
  168. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
  169. package/dist/cli/schemas/analyzeUsage.js +41 -0
  170. package/dist/cli/schemas/generate.d.ts +10 -2
  171. package/dist/cli/schemas/generate.d.ts.map +1 -1
  172. package/dist/cli/schemas/generate.js +7 -2
  173. package/dist/cli/schemas/index.d.ts +2 -2
  174. package/dist/cli/schemas/index.d.ts.map +1 -1
  175. package/dist/cli/schemas/index.js +1 -1
  176. package/dist/cli/schemas/init.d.ts +10 -0
  177. package/dist/cli/schemas/init.d.ts.map +1 -1
  178. package/dist/cli/schemas/init.js +3 -1
  179. package/dist/cli/types.d.ts +6 -0
  180. package/dist/cli/types.d.ts.map +1 -0
  181. package/dist/cli/types.js +2 -0
  182. package/dist/common/Consts.d.ts +1 -0
  183. package/dist/common/Consts.d.ts.map +1 -1
  184. package/dist/common/Consts.js +7 -3
  185. package/dist/common/Logger.d.ts.map +1 -1
  186. package/dist/common/Logger.js +3 -3
  187. package/dist/common/LoggerMessages.d.ts +71 -12
  188. package/dist/common/LoggerMessages.d.ts.map +1 -1
  189. package/dist/common/LoggerMessages.js +76 -18
  190. package/dist/common/TEslintFixOptions.d.ts +20 -0
  191. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  192. package/dist/common/TEslintFixOptions.js +15 -0
  193. package/dist/common/TRawOptions.d.ts.map +1 -1
  194. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  195. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  196. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  197. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  198. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  199. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  200. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  201. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  202. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  203. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  204. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  205. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +10 -2
  206. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  207. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +15 -5
  208. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +18 -4
  209. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  210. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  211. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  212. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  213. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  214. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  215. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  216. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  217. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  218. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  219. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  220. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  221. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  222. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  223. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  224. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  225. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +7 -1
  226. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  227. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  228. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  229. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  230. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  231. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  232. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  233. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  234. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
  235. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  236. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  237. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +6 -8
  238. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  239. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  240. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  241. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  242. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  243. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  244. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  245. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  246. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  247. package/dist/common/utils/__tests__/format.test.js +26 -17
  248. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  249. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  250. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  251. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  252. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  253. package/dist/common/utils/codegenTempDir.js +42 -0
  254. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  255. package/dist/common/utils/convertArrayToObject.js +3 -8
  256. package/dist/common/utils/eslintFix.d.ts +48 -4
  257. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  258. package/dist/common/utils/eslintFix.js +121 -15
  259. package/dist/common/utils/format.d.ts +1 -1
  260. package/dist/common/utils/format.d.ts.map +1 -1
  261. package/dist/common/utils/format.js +23 -11
  262. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  263. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  264. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  265. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  266. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  267. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  268. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  269. package/dist/core/Context.d.ts.map +1 -1
  270. package/dist/core/Context.js +2 -6
  271. package/dist/core/OpenApiClient.d.ts +27 -1
  272. package/dist/core/OpenApiClient.d.ts.map +1 -1
  273. package/dist/core/OpenApiClient.js +259 -19
  274. package/dist/core/WriteClient.d.ts +84 -17
  275. package/dist/core/WriteClient.d.ts.map +1 -1
  276. package/dist/core/WriteClient.js +96 -22
  277. package/dist/core/__tests__/WriteClient.test.js +2 -1
  278. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  279. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  280. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  281. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  282. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  283. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  284. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  285. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  286. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  287. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  288. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  289. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  290. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  291. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  292. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -1
  293. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -1
  294. package/dist/core/plugins/loadGeneratorPlugins.js +1 -1
  295. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
  296. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
  297. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
  298. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  299. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
  300. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +8 -3
  301. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  302. package/dist/core/semanticDiff/semanticDiffReportSchema.js +139 -56
  303. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  304. package/dist/core/types/Consts.js +1 -1
  305. package/dist/core/types/DiffReport.model.d.ts +101 -0
  306. package/dist/core/types/DiffReport.model.d.ts.map +1 -0
  307. package/dist/core/types/DiffReport.model.js +5 -0
  308. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  309. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  310. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  311. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  312. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  313. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  314. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  315. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  316. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  317. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  318. package/dist/core/types/base/Templates.model.d.ts +1 -0
  319. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  320. package/dist/core/types/shared/Client.model.d.ts +1 -1
  321. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  322. package/dist/core/types/shared/Model.model.d.ts +37 -1
  323. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  324. package/dist/core/utils/GenerationCache.d.ts +18 -0
  325. package/dist/core/utils/GenerationCache.d.ts.map +1 -0
  326. package/dist/core/utils/GenerationCache.js +41 -0
  327. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  328. package/dist/core/utils/__mocks__/templates.js +1 -0
  329. package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
  330. package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
  331. package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
  332. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
  333. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
  334. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
  335. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
  336. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
  337. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
  338. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
  339. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
  340. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
  341. package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
  342. package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
  343. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  344. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  345. package/dist/core/utils/__tests__/prepareDtoModels.test.js +168 -1
  346. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  347. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
  348. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
  349. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
  350. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
  351. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
  352. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
  353. package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
  354. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  355. package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
  356. package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
  357. package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
  358. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
  359. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
  360. package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
  361. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
  362. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
  363. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
  364. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
  365. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
  366. package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
  367. package/dist/core/utils/adapters/index.d.ts +3 -0
  368. package/dist/core/utils/adapters/index.d.ts.map +1 -0
  369. package/dist/core/utils/adapters/index.js +6 -0
  370. package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
  371. package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
  372. package/dist/core/utils/adapters/semanticToStructural.js +36 -0
  373. package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
  374. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  375. package/dist/core/utils/applyDiffReportToClient.js +189 -109
  376. package/dist/core/utils/areEqual.d.ts +1 -1
  377. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
  378. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
  379. package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
  380. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
  381. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
  382. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
  383. package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
  384. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  385. package/dist/core/utils/getOpenApiSpec.js +6 -0
  386. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  387. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  388. package/dist/core/utils/getOperationResults.d.ts +1 -1
  389. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  390. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  391. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  392. package/dist/core/utils/loadDiffReport.d.ts +11 -30
  393. package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
  394. package/dist/core/utils/loadDiffReport.js +75 -9
  395. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
  396. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
  397. package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
  398. package/dist/core/utils/modelHelpers.d.ts +13 -5
  399. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  400. package/dist/core/utils/modelHelpers.js +28 -23
  401. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  402. package/dist/core/utils/normalizeString.js +1 -5
  403. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  404. package/dist/core/utils/postProcessServiceImports.js +1 -3
  405. package/dist/core/utils/precompileTemplates.js +4 -2
  406. package/dist/core/utils/prepareAlias.d.ts +1 -1
  407. package/dist/core/utils/prepareDtoModels.d.ts +5 -0
  408. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  409. package/dist/core/utils/prepareDtoModels.js +57 -20
  410. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  411. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  412. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  413. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  414. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  415. package/dist/core/utils/registerHandlebarTemplates.js +2 -0
  416. package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
  417. package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
  418. package/dist/core/utils/resolveClassesModeTypes.js +77 -0
  419. package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
  420. package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
  421. package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
  422. package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
  423. package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
  424. package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
  425. package/dist/core/utils/serviceHelpers.d.ts +6 -7
  426. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  427. package/dist/core/utils/serviceHelpers.js +8 -25
  428. package/dist/core/utils/sortModelByName.d.ts +1 -1
  429. package/dist/core/utils/validateRawOptions.js +2 -2
  430. package/dist/core/utils/writeClientCore.d.ts +2 -0
  431. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  432. package/dist/core/utils/writeClientCore.js +43 -21
  433. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  434. package/dist/core/utils/writeClientCoreIndex.js +14 -4
  435. package/dist/core/utils/writeClientExecutor.d.ts +1 -3
  436. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  437. package/dist/core/utils/writeClientExecutor.js +6 -11
  438. package/dist/core/utils/writeClientFullIndex.js +4 -4
  439. package/dist/core/utils/writeClientModels.d.ts +1 -2
  440. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  441. package/dist/core/utils/writeClientModels.js +14 -16
  442. package/dist/core/utils/writeClientModelsIndex.d.ts +1 -1
  443. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  444. package/dist/core/utils/writeClientModelsIndex.js +14 -4
  445. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  446. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  447. package/dist/core/utils/writeClientSchemas.js +9 -14
  448. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
  449. package/dist/core/utils/writeClientSchemasIndex.js +14 -4
  450. package/dist/core/utils/writeClientServices.d.ts +15 -16
  451. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  452. package/dist/core/utils/writeClientServices.js +12 -19
  453. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
  454. package/dist/core/utils/writeClientServicesIndex.js +14 -4
  455. package/dist/core/utils/writeClientSimpleIndex.js +4 -4
  456. package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
  457. package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
  458. package/dist/core/utils/writeFileIfChanged.js +22 -0
  459. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
  460. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
  461. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
  462. package/dist/templatesCompiled/cli/customRequest.js +7 -7
  463. package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
  464. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  465. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
  466. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  467. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
  468. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
  469. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
  470. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
  471. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
  472. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
  473. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
  474. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  475. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
  476. package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
  477. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  478. package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
  479. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  480. package/dist/templatesCompiled/client/exportClient.js +9 -45
  481. package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
  482. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
  483. package/dist/templatesCompiled/client/exportModels.js +96 -49
  484. package/dist/templatesCompiled/client/exportService.d.ts +13 -10
  485. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  486. package/dist/templatesCompiled/client/exportService.js +95 -67
  487. package/dist/templatesCompiled/client/indexCore.js +4 -4
  488. package/dist/templatesCompiled/client/indexFull.js +8 -8
  489. package/dist/templatesCompiled/client/indexSimple.js +2 -2
  490. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  491. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  492. package/dist/templatesCompiled/client/partials/header.js +11 -2
  493. package/dist/test/helpers/silenceLoggers.d.ts +11 -0
  494. package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
  495. package/dist/test/helpers/silenceLoggers.js +88 -0
  496. package/package.json +132 -136
  497. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
  498. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
  499. package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
  500. package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
  501. package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
  502. package/dist/cli/analyzeDiff/diffEngine.js +0 -209
  503. package/dist/cli/analyzeDiff/logLegacyReport.d.ts +0 -6
  504. package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +0 -1
  505. package/dist/cli/analyzeDiff/logLegacyReport.js +0 -29
  506. package/dist/cli/analyzeDiff/report.d.ts +0 -3
  507. package/dist/cli/analyzeDiff/report.d.ts.map +0 -1
  508. package/dist/cli/analyzeDiff/report.js +0 -7
  509. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +0 -6
  510. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +0 -1
  511. package/dist/cli/analyzeDiff/writeLegacyReport.js +0 -21
  512. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
  513. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
  514. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
  515. package/dist/common/utils/normalizeObject.d.ts +0 -2
  516. package/dist/common/utils/normalizeObject.d.ts.map +0 -1
  517. package/dist/common/utils/normalizeObject.js +0 -63
  518. package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
  519. package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
  520. package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpenApiClient = void 0;
4
+ const fs_1 = require("fs");
4
5
  const Consts_1 = require("../common/Consts");
5
6
  const Logger_1 = require("../common/Logger");
6
7
  const LoggerMessages_1 = require("../common/LoggerMessages");
8
+ const TEslintFixOptions_1 = require("../common/TEslintFixOptions");
9
+ const eslintFix_1 = require("../common/utils/eslintFix");
7
10
  const fileSystemHelpers_1 = require("../common/utils/fileSystemHelpers");
8
11
  const pathHelpers_1 = require("../common/utils/pathHelpers");
9
12
  const Parser_1 = require("./api/v2/Parser");
@@ -16,6 +19,7 @@ const EmptySchemaStrategy_enum_1 = require("./types/enums/EmptySchemaStrategy.en
16
19
  const ModelsMode_enum_1 = require("./types/enums/ModelsMode.enum");
17
20
  const ValidationLibrary_enum_1 = require("./types/enums/ValidationLibrary.enum");
18
21
  const applyDiffReportToClient_1 = require("./utils/applyDiffReportToClient");
22
+ const GenerationCache_1 = require("./utils/GenerationCache");
19
23
  const getOpenApiSpec_1 = require("./utils/getOpenApiSpec");
20
24
  const getOpenApiVersion_1 = require("./utils/getOpenApiVersion");
21
25
  const getOutputPaths_1 = require("./utils/getOutputPaths");
@@ -23,9 +27,18 @@ const loadDiffReport_1 = require("./utils/loadDiffReport");
23
27
  const postProcessClient_1 = require("./utils/postProcessClient");
24
28
  const prepareDtoModels_1 = require("./utils/prepareDtoModels");
25
29
  const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates");
30
+ const resolveClassesModeTypes_1 = require("./utils/resolveClassesModeTypes");
26
31
  const WriteClient_1 = require("./WriteClient");
32
+ /**
33
+ * Оркестратор генерации OpenAPI-клиента: парсинг спецификации, применение diff-отчёта и запись артефактов.
34
+ */
27
35
  class OpenApiClient {
36
+ static CACHE_FINGERPRINT_VERSION = 1;
37
+ static DEFAULT_CACHE_FILENAME = '.openapi-codegen-cache.json';
28
38
  _writeClient = null;
39
+ /** ESLint paths from top-level rawOptions (not per items[] entry). */
40
+ eslintFixOptions = {};
41
+ /** Экземпляр WriteClient для записи сгенерированных файлов. */
29
42
  get writeClient() {
30
43
  if (!this._writeClient) {
31
44
  throw new Error('WriteClient must be initialized');
@@ -64,6 +77,11 @@ class OpenApiClient {
64
77
  strictOpenapi: rawOptions.strictOpenapi,
65
78
  reportFile: rawOptions.reportFile,
66
79
  governanceConfig: rawOptions.governanceConfig,
80
+ cache: rawOptions.cache,
81
+ cachePath: rawOptions.cachePath,
82
+ cacheStrategy: rawOptions.cacheStrategy,
83
+ cacheDebug: rawOptions.cacheDebug,
84
+ prettierConfigPath: rawOptions.prettierConfigPath,
67
85
  }));
68
86
  }
69
87
  else {
@@ -100,6 +118,11 @@ class OpenApiClient {
100
118
  strictOpenapi: rawOptions.strictOpenapi,
101
119
  reportFile: rawOptions.reportFile,
102
120
  governanceConfig: rawOptions.governanceConfig,
121
+ cache: rawOptions.cache,
122
+ cachePath: rawOptions.cachePath,
123
+ cacheStrategy: rawOptions.cacheStrategy,
124
+ cacheDebug: rawOptions.cacheDebug,
125
+ prettierConfigPath: rawOptions.prettierConfigPath,
103
126
  },
104
127
  ];
105
128
  }
@@ -138,18 +161,57 @@ class OpenApiClient {
138
161
  miracles: item.miracles || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.miracles,
139
162
  strictOpenapi: item.strictOpenapi ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.strictOpenapi,
140
163
  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,
164
+ prettierConfigPath: item.prettierConfigPath ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.prettierConfigPath,
143
165
  governanceConfig: item.governanceConfig || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.governanceConfig,
166
+ cache: item.cache ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cache,
167
+ cachePath: item.cachePath || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cachePath,
168
+ cacheStrategy: item.cacheStrategy ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cacheStrategy,
169
+ cacheDebug: item.cacheDebug ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cacheDebug,
144
170
  };
145
171
  }
146
- async cleanOutputDirectories(option) {
147
- const outputDirs = [option.output, option.outputCore, option.outputSchemas, option.outputModels, option.outputServices];
148
- for (const dir of outputDirs) {
149
- if (dir) {
150
- await fileSystemHelpers_1.fileSystemHelpers.rmdir(dir);
172
+ getOutputRoots(items) {
173
+ const roots = new Set();
174
+ for (const item of items) {
175
+ const outputDirs = [item.output, item.outputCore, item.outputSchemas, item.outputModels, item.outputServices];
176
+ for (const dir of outputDirs) {
177
+ if (dir) {
178
+ roots.add((0, pathHelpers_1.resolveHelper)(process.cwd(), dir));
179
+ }
151
180
  }
152
181
  }
182
+ return Array.from(roots);
183
+ }
184
+ async cleanupStaleOutputs(items) {
185
+ const outputRoots = this.getOutputRoots(items);
186
+ const expectedFiles = this.writeClient.getExpectedOutputFiles();
187
+ for (const root of outputRoots) {
188
+ await this.removeStaleFilesInDirectory(root, expectedFiles);
189
+ }
190
+ }
191
+ async removeStaleFilesInDirectory(path, expectedFiles) {
192
+ const stats = await fs_1.promises.stat(path).catch(() => null);
193
+ if (!stats) {
194
+ return false;
195
+ }
196
+ if (stats.isFile()) {
197
+ if (!expectedFiles.has(path)) {
198
+ await fileSystemHelpers_1.fileSystemHelpers.rmdir(path);
199
+ return false;
200
+ }
201
+ return true;
202
+ }
203
+ const entries = await fs_1.promises.readdir(path);
204
+ let hasAnyFile = false;
205
+ for (const entry of entries) {
206
+ const childPath = (0, pathHelpers_1.resolveHelper)(path, entry);
207
+ const childHasFiles = await this.removeStaleFilesInDirectory(childPath, expectedFiles);
208
+ hasAnyFile = hasAnyFile || childHasFiles;
209
+ }
210
+ if (!hasAnyFile) {
211
+ await fileSystemHelpers_1.fileSystemHelpers.rmdir(path);
212
+ return false;
213
+ }
214
+ return true;
153
215
  }
154
216
  async generateCodeForItems(items) {
155
217
  if (items.length === 0) {
@@ -158,12 +220,27 @@ class OpenApiClient {
158
220
  this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.STARTED(items.length));
159
221
  try {
160
222
  const start = process.hrtime.bigint();
161
- for (const option of items) {
162
- await this.cleanOutputDirectories(option);
223
+ const cacheEnabled = items[0]?.cache === true;
224
+ const generationCaches = new Map();
225
+ if (!cacheEnabled) {
226
+ this.warnOnSharedOutputsWithoutCache(items);
227
+ }
228
+ else {
229
+ for (const outputRoot of this.getUniqueResolvedOutputs(items)) {
230
+ const sampleItem = items.find(item => this.resolveOutputRoot(item.output) === outputRoot);
231
+ if (!sampleItem) {
232
+ continue;
233
+ }
234
+ const cachePath = this.resolveCachePathForOutput(sampleItem.output, sampleItem.cachePath);
235
+ const generationCache = new GenerationCache_1.GenerationCache(cachePath);
236
+ await generationCache.load();
237
+ generationCaches.set(outputRoot, generationCache);
238
+ }
163
239
  }
164
240
  for (const option of items) {
165
241
  const fileStart = process.hrtime.bigint();
166
- await this.generateSingle(option);
242
+ const generationCache = cacheEnabled ? (generationCaches.get(this.resolveOutputRoot(option.output)) ?? null) : null;
243
+ await this.generateSingle(option, generationCache);
167
244
  const fileEnd = process.hrtime.bigint();
168
245
  const fileDurationInSeconds = Number(fileEnd - fileStart) / 1e9;
169
246
  this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.DURATION_FOR_FILE(option.input, fileDurationInSeconds.toFixed(3)));
@@ -174,6 +251,15 @@ class OpenApiClient {
174
251
  else {
175
252
  await this.writeClient.combineAndWrite();
176
253
  }
254
+ await this.cleanupStaleOutputs(items);
255
+ if (cacheEnabled) {
256
+ for (const generationCache of generationCaches.values()) {
257
+ await generationCache.save();
258
+ }
259
+ }
260
+ const writeStats = this.writeClient.getWriteStats();
261
+ this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.WRITE_STATS(writeStats.written, writeStats.unchanged));
262
+ await this.runBatchEslintFixIfEnabled();
177
263
  this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.FINISHED);
178
264
  const end = process.hrtime.bigint();
179
265
  const durationInSeconds = Number(end - start) / 1e9;
@@ -185,8 +271,34 @@ class OpenApiClient {
185
271
  }
186
272
  this.writeClient.logger.shutdownLogger();
187
273
  }
188
- async generateSingle(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;
274
+ getUniqueResolvedOutputs(items) {
275
+ return Array.from(new Set(items.map(item => this.resolveOutputRoot(item.output))));
276
+ }
277
+ resolveOutputRoot(output) {
278
+ return (0, pathHelpers_1.resolveHelper)(process.cwd(), output);
279
+ }
280
+ resolveCachePathForOutput(output, cachePath) {
281
+ if (cachePath.startsWith('/') || /^[A-Za-z]:[\\/]/.test(cachePath)) {
282
+ return cachePath;
283
+ }
284
+ return (0, pathHelpers_1.resolveHelper)(this.resolveOutputRoot(output), cachePath || OpenApiClient.DEFAULT_CACHE_FILENAME);
285
+ }
286
+ warnOnSharedOutputsWithoutCache(items) {
287
+ const countByOutput = new Map();
288
+ for (const item of items) {
289
+ const output = this.resolveOutputRoot(item.output);
290
+ countByOutput.set(output, (countByOutput.get(output) ?? 0) + 1);
291
+ }
292
+ const duplicatedOutputs = Array.from(countByOutput.entries())
293
+ .filter(([, count]) => count > 1)
294
+ .map(([output]) => output);
295
+ if (duplicatedOutputs.length === 0) {
296
+ return;
297
+ }
298
+ this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_SHARED_OUTPUT_WARNING(duplicatedOutputs.map(output => `- ${output}`).join('\n')));
299
+ }
300
+ async generateSingle(item, generationCache) {
301
+ 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, prettierConfigPath, governanceConfig, } = item;
190
302
  const outputPaths = (0, getOutputPaths_1.getOutputPaths)({
191
303
  output,
192
304
  outputCore,
@@ -195,6 +307,28 @@ class OpenApiClient {
195
307
  outputSchemas,
196
308
  });
197
309
  const absoluteInput = (0, pathHelpers_1.resolveHelper)(process.cwd(), input);
310
+ const cacheKey = this.getCacheKey(item, absoluteInput);
311
+ const cacheFingerprint = await this.getCacheFingerprint(item, absoluteInput);
312
+ const useEntityCache = item.cache && item.cacheStrategy === 'entity' && generationCache !== null;
313
+ if (useEntityCache) {
314
+ const cachedEntry = generationCache.get(cacheKey);
315
+ if (cachedEntry && cachedEntry.fingerprint === cacheFingerprint) {
316
+ const allFilesExist = await this.filesExist(cachedEntry.files);
317
+ if (allFilesExist) {
318
+ for (const filePath of cachedEntry.files) {
319
+ this.writeClient.registerOutputFile(filePath);
320
+ }
321
+ if (item.cacheDebug) {
322
+ this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_HIT(input));
323
+ }
324
+ return;
325
+ }
326
+ }
327
+ if (item.cacheDebug) {
328
+ this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_MISS(input));
329
+ }
330
+ }
331
+ const knownFilesBefore = new Set(this.writeClient.getExpectedOutputFilesArray());
198
332
  const generatorPlugins = await (0, loadGeneratorPlugins_1.loadGeneratorPlugins)(plugins);
199
333
  const context = new Context_1.Context({
200
334
  input: absoluteInput,
@@ -214,7 +348,7 @@ class OpenApiClient {
214
348
  governanceConfig: governancePolicy,
215
349
  });
216
350
  const reportPath = await (0, validateOpenApiStrict_1.writeOpenApiStrictReport)(strictReport, reportFile);
217
- this.writeClient.logger.forceInfo(`Strict OpenAPI report created: ${reportPath}`);
351
+ this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.STRICT_REPORT_CREATED(reportPath));
218
352
  if (strictReport.summary.errors > 0) {
219
353
  throw new Error(`Strict OpenAPI validation failed with ${strictReport.summary.errors} error(s). Report: ${reportPath}`);
220
354
  }
@@ -225,12 +359,17 @@ class OpenApiClient {
225
359
  useUnionTypes,
226
360
  useOptions,
227
361
  validationLibrary,
362
+ useBatchEslintFix: Boolean(this.eslintFixOptions.tsconfigPath && this.eslintFixOptions.eslintConfigPath),
228
363
  });
229
364
  const diffReportData = await this.loadDiffReportIfNeeded({
230
365
  useHistory,
231
366
  diffReport,
232
367
  inputPath: absoluteInput,
233
368
  });
369
+ if (useHistory && !diffReportData) {
370
+ const reportPath = diffReport || Consts_1.DEFAULT_ANALYZE_DIFF_REPORT_PATH;
371
+ this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.USE_HISTORY_NO_REPORT(reportPath));
372
+ }
234
373
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.DEFINING_VERSION);
235
374
  switch (openApiVersion) {
236
375
  case getOpenApiVersion_1.OpenApiVersion.V2: {
@@ -245,7 +384,7 @@ class OpenApiClient {
245
384
  context,
246
385
  });
247
386
  const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
248
- const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
387
+ const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, resolveClassesModeTypes_1.resolveClassesModeTypes)((0, prepareDtoModels_1.prepareDtoModels)(clientFinal)) : clientFinal;
249
388
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V2);
250
389
  await this.writeClient.writeClient({
251
390
  client: clientPrepared,
@@ -262,8 +401,7 @@ class OpenApiClient {
262
401
  validationLibrary,
263
402
  emptySchemaStrategy,
264
403
  modelsMode,
265
- useProjectPrettier,
266
- useEslintFix,
404
+ prettierConfigPath,
267
405
  });
268
406
  break;
269
407
  }
@@ -279,7 +417,7 @@ class OpenApiClient {
279
417
  context,
280
418
  });
281
419
  const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
282
- const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
420
+ const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, resolveClassesModeTypes_1.resolveClassesModeTypes)((0, prepareDtoModels_1.prepareDtoModels)(clientFinal)) : clientFinal;
283
421
  this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V3);
284
422
  await this.writeClient.writeClient({
285
423
  client: clientPrepared,
@@ -296,12 +434,108 @@ class OpenApiClient {
296
434
  validationLibrary,
297
435
  emptySchemaStrategy,
298
436
  modelsMode,
299
- useProjectPrettier,
300
- useEslintFix,
437
+ prettierConfigPath,
301
438
  });
302
439
  break;
303
440
  }
304
441
  }
442
+ const generatedFiles = this.writeClient.getExpectedOutputFilesArray().filter(filePath => !knownFilesBefore.has(filePath));
443
+ if (item.cache && generationCache) {
444
+ generationCache.set({
445
+ key: cacheKey,
446
+ fingerprint: cacheFingerprint,
447
+ files: generatedFiles,
448
+ updatedAt: Date.now(),
449
+ });
450
+ }
451
+ }
452
+ getCacheKey(item, absoluteInput) {
453
+ return GenerationCache_1.GenerationCache.hash(JSON.stringify({
454
+ input: absoluteInput,
455
+ output: item.output,
456
+ outputCore: item.outputCore,
457
+ outputServices: item.outputServices,
458
+ outputModels: item.outputModels,
459
+ outputSchemas: item.outputSchemas,
460
+ }));
461
+ }
462
+ async getCacheFingerprint(item, absoluteInput) {
463
+ const specContent = await fileSystemHelpers_1.fileSystemHelpers.readFile(absoluteInput, 'utf8');
464
+ const fingerprint = {
465
+ cacheFingerprintVersion: OpenApiClient.CACHE_FINGERPRINT_VERSION,
466
+ generatorVersion: process.env.npm_package_version || 'dev',
467
+ specHash: GenerationCache_1.GenerationCache.hash(specContent),
468
+ options: {
469
+ httpClient: item.httpClient,
470
+ useOptions: item.useOptions,
471
+ useUnionTypes: item.useUnionTypes,
472
+ includeSchemasFiles: item.includeSchemasFiles,
473
+ excludeCoreServiceFiles: item.excludeCoreServiceFiles,
474
+ request: item.request,
475
+ plugins: item.plugins,
476
+ customExecutorPath: item.customExecutorPath,
477
+ interfacePrefix: item.interfacePrefix,
478
+ enumPrefix: item.enumPrefix,
479
+ typePrefix: item.typePrefix,
480
+ useCancelableRequest: item.useCancelableRequest,
481
+ sortByRequired: item.sortByRequired,
482
+ useSeparatedIndexes: item.useSeparatedIndexes,
483
+ validationLibrary: item.validationLibrary,
484
+ emptySchemaStrategy: item.emptySchemaStrategy,
485
+ useHistory: item.useHistory,
486
+ diffReport: item.diffReport,
487
+ modelsMode: item.modelsMode,
488
+ strictOpenapi: item.strictOpenapi,
489
+ },
490
+ };
491
+ return GenerationCache_1.GenerationCache.hash(JSON.stringify(fingerprint));
492
+ }
493
+ async filesExist(paths) {
494
+ for (const filePath of paths) {
495
+ const exists = await fileSystemHelpers_1.fileSystemHelpers.exists(filePath);
496
+ if (!exists) {
497
+ return false;
498
+ }
499
+ }
500
+ return true;
501
+ }
502
+ /**
503
+ * Runs batch ESLint fix after combineAndWrite / combineAndWrightSimple when both paths are set.
504
+ * Warns and skips when only one path is provided; always clears the WriteClient lint registry.
505
+ */
506
+ async runBatchEslintFixIfEnabled() {
507
+ const opts = this.eslintFixOptions;
508
+ const hasTsconfig = !!opts.tsconfigPath;
509
+ const hasEslintConfig = !!opts.eslintConfigPath;
510
+ if (!hasTsconfig && !hasEslintConfig) {
511
+ this.writeClient.clearLintTargets();
512
+ return;
513
+ }
514
+ if (!hasTsconfig || !hasEslintConfig) {
515
+ this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_PATHS_MISSING);
516
+ this.writeClient.clearLintTargets();
517
+ return;
518
+ }
519
+ try {
520
+ const { files, includeGlobs } = this.writeClient.getLintTargets();
521
+ if (files.length === 0) {
522
+ return;
523
+ }
524
+ const fixStart = process.hrtime.bigint();
525
+ this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_STARTED);
526
+ await (0, eslintFix_1.eslintFixBatch)({
527
+ files,
528
+ includeGlobs,
529
+ tsconfigPath: opts.tsconfigPath,
530
+ eslintConfigPath: opts.eslintConfigPath,
531
+ });
532
+ const fixEnd = process.hrtime.bigint();
533
+ const durationInSeconds = Number(fixEnd - fixStart) / 1e9;
534
+ this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_FINISHED(durationInSeconds.toFixed(3)));
535
+ }
536
+ finally {
537
+ this.writeClient.clearLintTargets();
538
+ }
305
539
  }
306
540
  async loadDiffReportIfNeeded(params) {
307
541
  return (0, loadDiffReport_1.loadDiffReport)({
@@ -321,8 +555,13 @@ class OpenApiClient {
321
555
  openApiVersion: params.openApiVersion,
322
556
  diffReport: params.diffReport,
323
557
  prefix: params.context.prefix,
558
+ context: params.context,
324
559
  });
325
560
  }
561
+ /**
562
+ * Запускает генерацию клиента по опциям CLI или конфигурации.
563
+ * @param rawOptions сырые опции генерации
564
+ */
326
565
  async generate(rawOptions) {
327
566
  const logger = new Logger_1.Logger({
328
567
  level: rawOptions.logLevel ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.logLevel,
@@ -330,6 +569,7 @@ class OpenApiClient {
330
569
  logOutput: rawOptions.logTarget ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.logTarget,
331
570
  });
332
571
  this._writeClient = new WriteClient_1.WriteClient(logger);
572
+ this.eslintFixOptions = (0, TEslintFixOptions_1.extractEslintFixOptions)(rawOptions);
333
573
  const items = this.normalizeOptions(rawOptions).map(item => this.addDefaultValues(item));
334
574
  await this.generateCodeForItems(items);
335
575
  }
@@ -18,18 +18,25 @@ import { writeClientSchemasIndex } from './utils/writeClientSchemasIndex';
18
18
  import { writeClientServices } from './utils/writeClientServices';
19
19
  import { writeClientServicesIndex } from './utils/writeClientServicesIndex';
20
20
  import { writeClientSimpleIndex } from './utils/writeClientSimpleIndex';
21
+ import { WriteFileIfChangedResult } from './utils/writeFileIfChanged';
21
22
  /**
22
- * @param client Client object with all the models, services, etc.
23
- * @param templates Templates wrapper with all loaded Handlebars templates
24
- * @param outputPaths The relative location of the output directory
25
- * @param httpClient The selected httpClient (fetch, xhr or node)
26
- * @param useOptions Use options or arguments functions
27
- * @param useUnionTypes Use union types instead of enums
28
- * @param excludeCoreServiceFiles The generation of the core and services is excluded
29
- * @param request: Path to custom request file
30
- * @param useCancelableRequest Use cancelable request type.
31
- * @param useSeparatedIndexes Use separate index files for the core, models, schemas, and services
32
- * @param validationLibrary Validation library to use for schema validation
23
+ * Параметры записи OpenAPI-клиента на диск.
24
+ * @property client клиент со всеми моделями и сервисами
25
+ * @property templates загруженные Handlebars-шаблоны
26
+ * @property outputPaths относительные пути выходных директорий
27
+ * @property httpClient выбранный HTTP-клиент
28
+ * @property useOptions использовать options-функции вместо аргументов
29
+ * @property useUnionTypes использовать union types вместо enum
30
+ * @property excludeCoreServiceFiles исключить генерацию core и services
31
+ * @property [request] путь к кастомному request-файлу
32
+ * @property [customExecutorPath] путь к кастомному executor
33
+ * @property [useCancelableRequest] использовать cancelable request type
34
+ * @property [useSeparatedIndexes] писать отдельные index-файлы для core, models, schemas и services
35
+ * @property [validationLibrary] библиотека валидации схем
36
+ * @property emptySchemaStrategy стратегия обработки пустых схем
37
+ * @property [modelsMode] режим генерации моделей
38
+ * @property [useProjectPrettier] форматировать через Prettier проекта
39
+ * @property [useEslintFix] применять ESLint fix к сгенерированным файлам
33
40
  */
34
41
  type TWriteClientProps = {
35
42
  client: Client;
@@ -46,32 +53,81 @@ type TWriteClientProps = {
46
53
  validationLibrary?: ValidationLibrary;
47
54
  emptySchemaStrategy: EmptySchemaStrategy;
48
55
  modelsMode?: ModelsMode;
49
- useProjectPrettier?: boolean;
50
- useEslintFix?: boolean;
56
+ prettierConfigPath?: string;
51
57
  };
52
58
  type TAPIClientGeneratorConfig = Omit<TWriteClientProps, 'httpClient' | 'useOptions' | 'request' | 'useCancelableRequest' | 'useSeparatedIndexes'> & {
53
59
  schemaModels: Model[];
54
60
  };
55
61
  /**
56
- * The client which is writing all items and keep the parameters to write index file
62
+ * Клиент записи сгенерированных артефактов и сборки index-файлов.
57
63
  */
58
64
  export declare class WriteClient {
59
65
  private config;
66
+ private expectedOutputFiles;
67
+ private writeStats;
68
+ /** Absolute paths of generated model/service files for batch ESLint. */
69
+ private lintTargetFiles;
70
+ /** Output directory globs for the temporary tsconfig include. */
71
+ private lintIncludeGlobs;
60
72
  private _logger;
73
+ /**
74
+ * @param [logger] логгер записи клиента
75
+ */
61
76
  constructor(logger?: Logger);
62
77
  /**
63
- * Write our OpenAPI client, using the given templates at the given output
78
+ * Записывает OpenAPI-клиент по шаблонам в выходные директории.
79
+ * @param options параметры записи клиента
64
80
  */
65
81
  writeClient(options: TWriteClientProps): Promise<void>;
66
82
  private writeModelsAndFinalize;
67
83
  /**
68
- * Method keeps all options that is need to create index file
69
- * @param config
84
+ * Сохраняет конфигурацию генератора для последующей сборки index-файла.
85
+ * @param config конфигурация генератора клиента
70
86
  */
71
87
  buildClientGeneratorConfigMap(config: TAPIClientGeneratorConfig): void;
88
+ /** Собирает и записывает полный index клиента. */
72
89
  combineAndWrite(): Promise<void>;
90
+ /** Собирает и записывает упрощённый index клиента. */
73
91
  combineAndWrightSimple(): Promise<void>;
92
+ /** Логгер записи клиента. */
74
93
  get logger(): Logger;
94
+ /**
95
+ * Записывает выходной файл, если содержимое изменилось.
96
+ * @param filePath путь к файлу
97
+ * @param content содержимое файла
98
+ * @returns результат записи: written или unchanged
99
+ */
100
+ writeOutputFile(filePath: string, content: string): Promise<WriteFileIfChangedResult>;
101
+ /**
102
+ * Регистрирует ожидаемый выходной файл без записи содержимого.
103
+ * @param filePath путь к файлу
104
+ */
105
+ registerOutputFile(filePath: string): void;
106
+ /** Возвращает множество ожидаемых выходных файлов. */
107
+ getExpectedOutputFiles(): Set<string>;
108
+ /** Возвращает список ожидаемых выходных файлов. */
109
+ getExpectedOutputFilesArray(): string[];
110
+ /** Возвращает статистику записи файлов. */
111
+ getWriteStats(): {
112
+ written: number;
113
+ unchanged: number;
114
+ };
115
+ /**
116
+ * Registers a generated file for the post-generation batch ESLint pass.
117
+ *
118
+ * @param filePath - Written file path (absolute or relative to cwd).
119
+ * @param outputRoot - Models or services output directory used to build a narrow tsconfig glob.
120
+ */
121
+ registerLintTarget(filePath: string, outputRoot: string): void;
122
+ /**
123
+ * Returns collected lint targets after all writeClient* calls.
124
+ */
125
+ getLintTargets(): {
126
+ files: string[];
127
+ includeGlobs: string[];
128
+ };
129
+ /** Clears the lint registry after batch ESLint finishes or is skipped. */
130
+ clearLintTargets(): void;
75
131
  private buildSimpleClientIndexMap;
76
132
  private buildClientIndexMap;
77
133
  private finalizeAndWrite;
@@ -82,16 +138,27 @@ export declare class WriteClient {
82
138
  private isSameModel;
83
139
  private isSameShema;
84
140
  private isSomeService;
141
+ /** Делегирует запись core-части клиента. */
85
142
  writeClientCore: typeof writeClientCore;
143
+ /** Делегирует запись index core-части. */
86
144
  writeClientCoreIndex: typeof writeClientCoreIndex;
145
+ /** Делегирует запись полного index клиента. */
87
146
  writeClientFullIndex: typeof writeClientFullIndex;
147
+ /** Делегирует запись моделей клиента. */
88
148
  writeClientModels: typeof writeClientModels;
149
+ /** Делегирует запись index моделей. */
89
150
  writeClientModelsIndex: typeof writeClientModelsIndex;
151
+ /** Делегирует запись схем клиента. */
90
152
  writeClientSchemas: typeof writeClientSchemas;
153
+ /** Делегирует запись index схем. */
91
154
  writeClientSchemasIndex: typeof writeClientSchemasIndex;
155
+ /** Делегирует запись сервисов клиента. */
92
156
  writeClientServices: typeof writeClientServices;
157
+ /** Делегирует запись index сервисов. */
93
158
  writeClientServicesIndex: typeof writeClientServicesIndex;
159
+ /** Делегирует запись упрощённого index клиента. */
94
160
  writeClientSimpleIndex: typeof writeClientSimpleIndex;
161
+ /** Делегирует запись executor клиента. */
95
162
  writeClientExecutor: typeof writeClientExecutor;
96
163
  }
97
164
  export {};
@@ -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":"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"}