ts-openapi-codegen 2.1.0-beta.7 → 2.1.0-beta.8

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 (232) hide show
  1. package/README.md +3 -0
  2. package/README.rus.md +3 -0
  3. package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -6
  4. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  5. package/dist/cli/analyzeDiff/ignoreRules.js +2 -3
  6. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +2 -2
  7. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -1
  8. package/dist/cli/analyzeUsage/analyzeUsage.js +10 -12
  9. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +1 -1
  10. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -1
  11. package/dist/cli/analyzeUsage/core/ProjectContext.js +5 -10
  12. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -1
  13. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +2 -2
  14. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -1
  15. package/dist/cli/analyzeUsage/rules/ClientRule.js +19 -21
  16. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +2 -2
  17. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -1
  18. package/dist/cli/analyzeUsage/rules/CoverageRule.js +16 -24
  19. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -1
  20. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +4 -1
  21. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +2 -2
  22. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -1
  23. package/dist/cli/analyzeUsage/rules/ImportRule.js +9 -11
  24. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +2 -2
  25. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/rules/ModelRule.js +4 -8
  27. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +2 -2
  28. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -1
  29. package/dist/cli/analyzeUsage/rules/SchemaRule.js +8 -10
  30. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +2 -2
  31. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -1
  32. package/dist/cli/analyzeUsage/rules/ServiceRule.js +17 -23
  33. package/dist/cli/analyzeUsage/types.d.ts +4 -4
  34. package/dist/cli/analyzeUsage/types.d.ts.map +1 -1
  35. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -1
  36. package/dist/cli/analyzeUsage/utils/report.d.ts +1 -1
  37. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -1
  38. package/dist/cli/analyzeUsage/utils/report.js +8 -8
  39. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  40. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  41. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +1 -1
  42. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  43. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  44. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  45. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  46. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +9 -1
  47. package/dist/cli/index.js +3 -2
  48. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +2 -8
  49. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  50. package/dist/cli/interactive/constants.d.ts +0 -4
  51. package/dist/cli/interactive/constants.d.ts.map +1 -1
  52. package/dist/cli/interactive/constants.js +1 -5
  53. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  54. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  55. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  56. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  57. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -1
  58. package/dist/cli/schemas/analyzeUsage.js +4 -1
  59. package/dist/cli/schemas/generate.d.ts +3 -2
  60. package/dist/cli/schemas/generate.d.ts.map +1 -1
  61. package/dist/cli/schemas/generate.js +3 -2
  62. package/dist/common/Consts.d.ts.map +1 -1
  63. package/dist/common/Consts.js +1 -2
  64. package/dist/common/Logger.d.ts.map +1 -1
  65. package/dist/common/Logger.js +1 -1
  66. package/dist/common/LoggerMessages.d.ts +10 -3
  67. package/dist/common/LoggerMessages.d.ts.map +1 -1
  68. package/dist/common/LoggerMessages.js +14 -7
  69. package/dist/common/TEslintFixOptions.d.ts +20 -0
  70. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  71. package/dist/common/TEslintFixOptions.js +15 -0
  72. package/dist/common/TRawOptions.d.ts.map +1 -1
  73. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  74. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  75. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  76. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  77. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  78. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  79. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  80. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  81. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  82. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  83. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  84. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +3 -2
  85. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  86. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +10 -4
  87. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +4 -4
  88. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  89. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  90. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  91. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  92. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  93. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  94. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  95. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  96. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  97. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  98. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  99. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  100. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  101. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  102. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  103. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  104. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +3 -2
  105. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  106. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  107. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  108. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  109. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  110. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  111. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  112. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  113. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +1 -3
  114. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  115. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  116. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +1 -3
  117. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  118. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  119. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  120. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  121. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  122. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  123. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  124. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  125. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  126. package/dist/common/utils/__tests__/format.test.js +26 -17
  127. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  128. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  129. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  130. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  131. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  132. package/dist/common/utils/codegenTempDir.js +42 -0
  133. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  134. package/dist/common/utils/convertArrayToObject.js +3 -8
  135. package/dist/common/utils/eslintFix.d.ts +48 -4
  136. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  137. package/dist/common/utils/eslintFix.js +121 -15
  138. package/dist/common/utils/format.d.ts +1 -1
  139. package/dist/common/utils/format.d.ts.map +1 -1
  140. package/dist/common/utils/format.js +23 -11
  141. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  142. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  143. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  144. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  145. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  146. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  147. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  148. package/dist/core/Context.d.ts.map +1 -1
  149. package/dist/core/Context.js +2 -6
  150. package/dist/core/OpenApiClient.d.ts +7 -0
  151. package/dist/core/OpenApiClient.d.ts.map +1 -1
  152. package/dist/core/OpenApiClient.js +52 -8
  153. package/dist/core/WriteClient.d.ts +21 -2
  154. package/dist/core/WriteClient.d.ts.map +1 -1
  155. package/dist/core/WriteClient.js +36 -14
  156. package/dist/core/__tests__/WriteClient.test.js +1 -1
  157. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  158. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  159. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  160. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  161. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  162. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  163. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  164. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  165. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  166. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  167. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  168. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  169. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  170. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  171. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +7 -21
  172. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  173. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +0 -2
  174. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  175. package/dist/core/semanticDiff/semanticDiffReportSchema.js +3 -9
  176. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  177. package/dist/core/types/Consts.js +1 -1
  178. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  179. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  180. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  181. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  182. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  183. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  184. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  185. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  186. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  187. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  188. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  189. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  190. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  191. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  192. package/dist/core/utils/appendUniqueLinesToFile.js +1 -1
  193. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  194. package/dist/core/utils/applyDiffReportToClient.js +2 -2
  195. package/dist/core/utils/areEqual.d.ts +1 -1
  196. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  197. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  198. package/dist/core/utils/getOperationResults.d.ts +1 -1
  199. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  200. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  201. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  202. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  203. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  204. package/dist/core/utils/normalizeString.js +1 -5
  205. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  206. package/dist/core/utils/postProcessServiceImports.js +1 -3
  207. package/dist/core/utils/precompileTemplates.js +1 -0
  208. package/dist/core/utils/prepareAlias.d.ts +1 -1
  209. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  210. package/dist/core/utils/prepareDtoModels.js +1 -1
  211. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  212. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  213. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  214. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  215. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  216. package/dist/core/utils/sortModelByName.d.ts +1 -1
  217. package/dist/core/utils/writeClientExecutor.d.ts +1 -2
  218. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  219. package/dist/core/utils/writeClientExecutor.js +2 -6
  220. package/dist/core/utils/writeClientModels.d.ts +1 -2
  221. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  222. package/dist/core/utils/writeClientModels.js +4 -6
  223. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  224. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  225. package/dist/core/utils/writeClientSchemas.js +2 -7
  226. package/dist/core/utils/writeClientServices.d.ts +1 -2
  227. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  228. package/dist/core/utils/writeClientServices.js +3 -6
  229. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  230. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  231. package/dist/templatesCompiled/client/partials/header.js +11 -2
  232. package/package.json +132 -136
@@ -21,14 +21,14 @@ class ServiceRule {
21
21
  if (!contract.services[serviceName])
22
22
  continue;
23
23
  stats.usedMethods.add(`${serviceName}.${methodName}`);
24
- const methodContract = contract.services[serviceName].find((m) => m.name === methodName);
24
+ const methodContract = contract.services[serviceName].find(m => m.name === methodName);
25
25
  if (!methodContract) {
26
- const suggestion = (0, fuzzy_1.findBestMatch)(methodName, contract.services[serviceName].map((m) => m.name));
26
+ const suggestion = (0, fuzzy_1.findBestMatch)(methodName, contract.services[serviceName].map(m => m.name));
27
27
  findings.push({
28
- id: "SERVICE_METHOD_NOT_FOUND",
29
- category: suggestion ? "RENAMED_SYMBOL" : "MISSING_EXPORT",
30
- severity: "ERROR",
31
- message: `Method "${serviceName}.${methodName}" was not found in the generated API.${suggestion ? ` Did you mean "${serviceName}.${suggestion}"?` : ""}`,
28
+ id: 'SERVICE_METHOD_NOT_FOUND',
29
+ category: suggestion ? 'RENAMED_SYMBOL' : 'MISSING_EXPORT',
30
+ severity: 'ERROR',
31
+ message: `Method "${serviceName}.${methodName}" was not found in the generated API.${suggestion ? ` Did you mean "${serviceName}.${suggestion}"?` : ''}`,
32
32
  file: file.getFilePath(),
33
33
  line: call.getStartLineNumber(),
34
34
  context: { suggestion },
@@ -39,18 +39,14 @@ class ServiceRule {
39
39
  const serviceDecl = contract.sourceFile
40
40
  .getExportedDeclarations()
41
41
  .get(serviceName)
42
- ?.find((d) => ts_morph_1.Node.isClassDeclaration(d));
43
- const methodDecl = serviceDecl && ts_morph_1.Node.isClassDeclaration(serviceDecl)
44
- ? serviceDecl.getMethod(methodName)
45
- : undefined;
46
- const requiredParams = methodDecl
47
- ? methodDecl.getParameters().filter((p) => !p.isOptional())
48
- : methodContract.params.filter((p) => !p.isOptional);
42
+ ?.find(d => ts_morph_1.Node.isClassDeclaration(d));
43
+ const methodDecl = serviceDecl && ts_morph_1.Node.isClassDeclaration(serviceDecl) ? serviceDecl.getMethod(methodName) : undefined;
44
+ const requiredParams = methodDecl ? methodDecl.getParameters().filter(p => !p.isOptional()) : methodContract.params.filter(p => !p.isOptional);
49
45
  if (args.length < requiredParams.length) {
50
46
  findings.push({
51
- id: "SERVICE_ARGUMENTS_COUNT_MISMATCH",
52
- category: "TYPE_MISMATCH",
53
- severity: "ERROR",
47
+ id: 'SERVICE_ARGUMENTS_COUNT_MISMATCH',
48
+ category: 'TYPE_MISMATCH',
49
+ severity: 'ERROR',
54
50
  message: `Method ${serviceName}.${methodName} expects at least ${requiredParams.length} arguments, but got ${args.length}.`,
55
51
  file: file.getFilePath(),
56
52
  line: call.getStartLineNumber(),
@@ -64,9 +60,9 @@ class ServiceRule {
64
60
  const providedType = checker.getTypeAtLocation(args[i]);
65
61
  if (!providedType.isAssignableTo(expectedType)) {
66
62
  findings.push({
67
- id: "SERVICE_ARGUMENT_TYPE_MISMATCH",
68
- category: "TYPE_MISMATCH",
69
- severity: "ERROR",
63
+ id: 'SERVICE_ARGUMENT_TYPE_MISMATCH',
64
+ category: 'TYPE_MISMATCH',
65
+ severity: 'ERROR',
70
66
  message: `Argument #${i + 1} type mismatch in ${serviceName}.${methodName}. Expected ${expectedType.getText()}, got ${providedType.getText()}.`,
71
67
  file: file.getFilePath(),
72
68
  line: args[i].getStartLineNumber(),
@@ -81,10 +77,8 @@ class ServiceRule {
81
77
  const exportedDecl = contract.sourceFile
82
78
  .getExportedDeclarations()
83
79
  .get(serviceName)
84
- ?.find((d) => ts_morph_1.Node.isClassDeclaration(d));
85
- const method = exportedDecl && ts_morph_1.Node.isClassDeclaration(exportedDecl)
86
- ? exportedDecl.getMethod(methodName)
87
- : undefined;
80
+ ?.find(d => ts_morph_1.Node.isClassDeclaration(d));
81
+ const method = exportedDecl && ts_morph_1.Node.isClassDeclaration(exportedDecl) ? exportedDecl.getMethod(methodName) : undefined;
88
82
  const param = method?.getParameters()[paramIndex];
89
83
  return param?.getType();
90
84
  }
@@ -1,5 +1,5 @@
1
- import type { SourceFile } from "ts-morph";
2
- import type { ProjectContext } from "./core/ProjectContext";
1
+ import type { SourceFile } from 'ts-morph';
2
+ import type { ProjectContext } from './core/ProjectContext';
3
3
  export interface MethodMetadata {
4
4
  name: string;
5
5
  params: {
@@ -17,8 +17,8 @@ export interface Contract {
17
17
  }
18
18
  export interface Finding {
19
19
  id: string;
20
- severity: "ERROR" | "WARNING";
21
- category: "INVALID_IMPORT" | "MISSING_EXPORT" | "RENAMED_SYMBOL" | "TYPE_MISMATCH" | "UNUSED" | "CONFIG" | "USAGE";
20
+ severity: 'ERROR' | 'WARNING';
21
+ category: 'INVALID_IMPORT' | 'MISSING_EXPORT' | 'RENAMED_SYMBOL' | 'TYPE_MISMATCH' | 'UNUSED' | 'CONFIG' | 'USAGE';
22
22
  message: string;
23
23
  file: string;
24
24
  line: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeUsage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,EACJ,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,WAAW,IAAI;IACjB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACxF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeUsage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnH,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IAClB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,WAAW,IAAI;IACjB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACxF"}
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzy.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeUsage/utils/fuzzy.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,SAAI,GACd,MAAM,GAAG,IAAI,CAaf"}
1
+ {"version":3,"file":"fuzzy.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeUsage/utils/fuzzy.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,MAAM,GAAG,IAAI,CAa7F"}
@@ -1,4 +1,4 @@
1
- import type { CoverageReport, Finding, Stats } from "../types";
1
+ import type { CoverageReport, Finding, Stats } from '../types';
2
2
  export declare class Reporter {
3
3
  /**
4
4
  * Выводит сводную таблицу и результаты в консоль
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeUsage/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE9D,qBAAa,QAAQ;IACnB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IA8BzE;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,cAAc,GACvB,IAAI;IAwBP;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,cAAc;CA0BtE"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeUsage/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE/D,qBAAa,QAAQ;IACjB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAwBzE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAwB5F;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,cAAc;CAyBxE"}
@@ -11,18 +11,18 @@ class Reporter {
11
11
  * Выводит сводную таблицу и результаты в консоль
12
12
  */
13
13
  static renderConsole(findings, coverage) {
14
- console.log("\n📊 API Coverage:");
14
+ console.log('\n📊 API Coverage:');
15
15
  console.log(` Methods: ${coverage.methods.used}/${coverage.methods.total} (${coverage.methods.percent})`);
16
16
  console.log(` Schemas: ${coverage.schemas.used}/${coverage.schemas.total} (${coverage.schemas.percent})`);
17
17
  console.log(` Models: ${coverage.models.used}/${coverage.models.total} (${coverage.models.percent})`);
18
18
  if (findings.length === 0) {
19
- console.log("\n✅ No mismatches found. Project is in sync.");
19
+ console.log('\n✅ No mismatches found. Project is in sync.');
20
20
  return;
21
21
  }
22
- console.log("\n⚠️ Findings:");
22
+ console.log('\n⚠️ Findings:');
23
23
  // Форматируем данные для console.table
24
- const tableData = findings.map((f) => ({
25
- Status: f.severity === "ERROR" ? "🔴 ERROR" : "🟡 WARN",
24
+ const tableData = findings.map(f => ({
25
+ Status: f.severity === 'ERROR' ? '🔴 ERROR' : '🟡 WARN',
26
26
  Category: f.category,
27
27
  Location: `${path_1.default.basename(f.file)}:${f.line}`,
28
28
  Message: f.message,
@@ -37,8 +37,8 @@ class Reporter {
37
37
  timestamp: new Date().toISOString(),
38
38
  summary: {
39
39
  totalIssues: findings.length,
40
- errors: findings.filter((f) => f.severity === "ERROR").length,
41
- warnings: findings.filter((f) => f.severity === "WARNING").length,
40
+ errors: findings.filter(f => f.severity === 'ERROR').length,
41
+ warnings: findings.filter(f => f.severity === 'WARNING').length,
42
42
  },
43
43
  categories: findings.reduce((acc, finding) => {
44
44
  acc[finding.category] = (acc[finding.category] || 0) + 1;
@@ -62,7 +62,7 @@ class Reporter {
62
62
  const totalMethods = Object.values(contract.services).flat().length;
63
63
  const totalSchemas = contract.schemas.length;
64
64
  const totalModels = contract.models.length;
65
- const getPercent = (used, total) => total > 0 ? ((used / total) * 100).toFixed(2) + "%" : "0%";
65
+ const getPercent = (used, total) => (total > 0 ? ((used / total) * 100).toFixed(2) + '%' : '0%');
66
66
  return {
67
67
  methods: {
68
68
  total: totalMethods,
@@ -1 +1 @@
1
- {"version":3,"file":"removeDefaultConfigValues.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAWrB"}
1
+ {"version":3,"file":"removeDefaultConfigValues.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAW9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateAndMigrateConfigData.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AA6BnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,uBAAuB,CAmC7H"}
1
+ {"version":3,"file":"validateAndMigrateConfigData.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AA2BnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,uBAAuB,CAmC7H"}
@@ -19,7 +19,7 @@ const omitUndefinedValues = (data) => {
19
19
  continue;
20
20
  }
21
21
  if (Array.isArray(value)) {
22
- result[key] = value.map(item => item && typeof item === 'object' && !Array.isArray(item) ? omitUndefinedValues(item) : item);
22
+ result[key] = value.map(item => (item && typeof item === 'object' && !Array.isArray(item) ? omitUndefinedValues(item) : item));
23
23
  continue;
24
24
  }
25
25
  if (value && typeof value === 'object') {
@@ -29,6 +29,6 @@ interface IWriteConfigFileOptions {
29
29
  * isUpdating: false,
30
30
  * });
31
31
  */
32
- export declare function writeConfigFile({ data, configPath, isUpdating, }: IWriteConfigFileOptions): Promise<void>;
32
+ export declare function writeConfigFile({ data, configPath, isUpdating }: IWriteConfigFileOptions): Promise<void>;
33
33
  export {};
34
34
  //# sourceMappingURL=writeConfigFile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeConfigFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/writeConfigFile.ts"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC7B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,EAClC,IAAI,EACJ,UAAU,EACV,UAAU,GACb,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzC"}
1
+ {"version":3,"file":"writeConfigFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/writeConfigFile.ts"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC7B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9G"}
@@ -27,7 +27,7 @@ const writeExampleConfigFile_1 = require("./writeExampleConfigFile");
27
27
  * isUpdating: false,
28
28
  * });
29
29
  */
30
- async function writeConfigFile({ data, configPath, isUpdating, }) {
30
+ async function writeConfigFile({ data, configPath, isUpdating }) {
31
31
  const preparedData = await (0, prepareConfigData_1.prepareConfigData)(data);
32
32
  if (!preparedData) {
33
33
  throw new Error('Failed to prepare configuration data for writing');
@@ -1 +1 @@
1
- {"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAezC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAY5C;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmG5F"}
1
+ {"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAezC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAY5C;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2G5F"}
@@ -90,7 +90,12 @@ async function generateOpenApiClient(options) {
90
90
  await Consts_1.APP_LOGGER.shutdownLoggerAsync();
91
91
  return { success: false, error: directOptionsValidationResult.errors.join('\n') };
92
92
  }
93
- await OpenAPI.generate(directOptionsValidationResult.data);
93
+ await OpenAPI.generate({
94
+ ...directOptionsValidationResult.data,
95
+ prettierConfigPath: validatedOptions.prettierConfigPath,
96
+ tsconfigPath: validatedOptions.tsconfigPath,
97
+ eslintConfigPath: validatedOptions.eslintConfigPath,
98
+ });
94
99
  await Consts_1.APP_LOGGER.shutdownLoggerAsync();
95
100
  return { success: true };
96
101
  }
@@ -131,6 +136,9 @@ async function generateOpenApiClient(options) {
131
136
  cachePath: validatedOptions.cachePath ?? value.cachePath,
132
137
  cacheStrategy: validatedOptions.cacheStrategy ?? value.cacheStrategy,
133
138
  cacheDebug: validatedOptions.cacheDebug ?? value.cacheDebug,
139
+ prettierConfigPath: validatedOptions.prettierConfigPath ?? value.prettierConfigPath,
140
+ tsconfigPath: validatedOptions.tsconfigPath ?? value.tsconfigPath,
141
+ eslintConfigPath: validatedOptions.eslintConfigPath ?? value.eslintConfigPath,
134
142
  };
135
143
  await OpenAPI.generate(mergedOptions);
136
144
  await Consts_1.APP_LOGGER.shutdownLoggerAsync();
package/dist/cli/index.js CHANGED
@@ -76,8 +76,9 @@ program
76
76
  .option('--governance-config <value>', 'Path to governance rules JSON config file')
77
77
  .addOption(new commander_1.Option('--validationLibrary <value>', 'Validation library to use for schema validation').choices([...Object.values(ValidationLibrary_enum_1.ValidationLibrary)]).default(ValidationLibrary_enum_1.ValidationLibrary.NONE))
78
78
  .addOption(new commander_1.Option('--emptySchemaStrategy <value>', 'How to handle empty generated schemas').choices([...Object.values(EmptySchemaStrategy_enum_1.EmptySchemaStrategy)]).default(EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP))
79
- .option('--useProjectPrettier', 'Use project Prettier config for formatting generated code (default: false)')
80
- .option('--useEslintFix', 'Run ESLint --fix on generated files after writing (default: false)')
79
+ .option('--prettierConfigPath <value>', 'Path to Prettier config file for formatting generated code')
80
+ .option('--tsconfigPath <value>', 'Path to project tsconfig.json for batch ESLint fix (requires --eslintConfigPath)')
81
+ .option('--eslintConfigPath <value>', 'Path to project ESLint config for batch ESLint fix (requires --tsconfigPath)')
81
82
  .option('--cache', 'Enable generation cache (default: disabled)')
82
83
  .option('--cachePath <value>', 'Path to generation cache file relative to output directory (default: .openapi-codegen-cache.json)')
83
84
  .addOption(new commander_1.Option('--cacheStrategy <value>', 'Cache strategy').choices(['content', 'entity']).default('entity'))
@@ -13,10 +13,7 @@ const createMockSpec = (relativePath = './test/spec.yml') => ({
13
13
  });
14
14
  (0, node_test_1.describe)('@unit: buildConfig', () => {
15
15
  (0, node_test_1.test)('creates items array for multiple specs in multi-option mode', async () => {
16
- const validatedSpecs = [
17
- createMockSpec('./api/v1.yml'),
18
- createMockSpec('./api/v2.yml'),
19
- ];
16
+ const validatedSpecs = [createMockSpec('./api/v1.yml'), createMockSpec('./api/v2.yml')];
20
17
  const result = await (0, buildConfig_1.buildConfig)(validatedSpecs, true);
21
18
  node_assert_1.default.strictEqual(result.items?.length, 2);
22
19
  node_assert_1.default.strictEqual(result.items?.[0].input, './api/v1.yml');
@@ -55,10 +52,7 @@ const createMockSpec = (relativePath = './test/spec.yml') => ({
55
52
  node_assert_1.default.strictEqual(result.diffReport, Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.diffReport);
56
53
  });
57
54
  (0, node_test_1.test)('uses first spec for flat config', async () => {
58
- const validatedSpecs = [
59
- createMockSpec('./api/v1.yml'),
60
- createMockSpec('./api/v2.yml'),
61
- ];
55
+ const validatedSpecs = [createMockSpec('./api/v1.yml'), createMockSpec('./api/v2.yml')];
62
56
  const result = await (0, buildConfig_1.buildConfig)(validatedSpecs, false);
63
57
  node_assert_1.default.strictEqual(result.input, './api/v1.yml');
64
58
  node_assert_1.default.strictEqual(result.output, Consts_1.DEFAULT_OUTPUT_API_DIR);
@@ -1 +1 @@
1
- {"version":3,"file":"registerHandlebarTemplates.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/utils/registerHandlebarTemplates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,wBAAgB,0BAA0B,IAAI,YAAY,CAUzD"}
1
+ {"version":3,"file":"registerHandlebarTemplates.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/utils/registerHandlebarTemplates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,wBAAgB,0BAA0B,IAAI,YAAY,CAUzD"}
@@ -1,7 +1,3 @@
1
1
  import { EConfigType, EnquirerSelectChoice } from './types';
2
2
  export declare const OPEN_API_CONFIG_SELECT_OPTIONS: EnquirerSelectChoice<EConfigType>[];
3
- export declare const DIALOG_MESSAGES: {
4
- readonly OPERATION_CANCELLED: "The operation was canceled by the user.";
5
- readonly SELECTION_CANCELLED: "The choice is canceled.";
6
- };
7
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAC,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE3D,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,CAAC,WAAW,CAAC,EAgB7E,CAAC;AAEF,eAAO,MAAM,eAAe;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE5D,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,CAAC,WAAW,CAAC,EAgB7E,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DIALOG_MESSAGES = exports.OPEN_API_CONFIG_SELECT_OPTIONS = void 0;
3
+ exports.OPEN_API_CONFIG_SELECT_OPTIONS = void 0;
4
4
  const types_1 = require("./types");
5
5
  exports.OPEN_API_CONFIG_SELECT_OPTIONS = [
6
6
  {
@@ -19,7 +19,3 @@ exports.OPEN_API_CONFIG_SELECT_OPTIONS = [
19
19
  hint: 'Do not create a configuration file',
20
20
  },
21
21
  ];
22
- exports.DIALOG_MESSAGES = {
23
- OPERATION_CANCELLED: 'The operation was canceled by the user.',
24
- SELECTION_CANCELLED: 'The choice is canceled.',
25
- };
@@ -1 +1 @@
1
- {"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiBzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoG5C;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoNrF"}
1
+ {"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiBzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiG5C;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+LrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatDiff.d.ts","sourceRoot":"","sources":["../../../../src/cli/previewChanges/utils/formatDiff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,EACxC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GACzB,MAAM,CAyBR"}
1
+ {"version":3,"file":"formatDiff.d.ts","sourceRoot":"","sources":["../../../../src/cli/previewChanges/utils/formatDiff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAyBvH"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateOutputPaths.d.ts","sourceRoot":"","sources":["../../../../src/cli/previewChanges/utils/updateOutputPaths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACrB,WAAW,CA6Ib"}
1
+ {"version":3,"file":"updateOutputPaths.d.ts","sourceRoot":"","sources":["../../../../src/cli/previewChanges/utils/updateOutputPaths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAiH7G"}
@@ -52,9 +52,7 @@ function updateOutputPaths(options, previewDir, generatedDir) {
52
52
  relativeCore = relativeCore.substring(2);
53
53
  }
54
54
  // Если относительный путь пустой, используем стандартное имя 'core'
55
- result.outputCore = relativeCore && relativeCore !== '' && relativeCore !== './'
56
- ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeCore)
57
- : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'core');
55
+ result.outputCore = relativeCore && relativeCore !== '' && relativeCore !== './' ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeCore) : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'core');
58
56
  }
59
57
  if (oldOutputServices) {
60
58
  const resolvedOldServices = (0, pathHelpers_1.resolveHelper)(process.cwd(), oldOutputServices);
@@ -62,9 +60,8 @@ function updateOutputPaths(options, previewDir, generatedDir) {
62
60
  if (relativeServices.startsWith('./')) {
63
61
  relativeServices = relativeServices.substring(2);
64
62
  }
65
- result.outputServices = relativeServices && relativeServices !== '' && relativeServices !== './'
66
- ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeServices)
67
- : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'services');
63
+ result.outputServices =
64
+ relativeServices && relativeServices !== '' && relativeServices !== './' ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeServices) : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'services');
68
65
  }
69
66
  if (oldOutputModels) {
70
67
  const resolvedOldModels = (0, pathHelpers_1.resolveHelper)(process.cwd(), oldOutputModels);
@@ -72,9 +69,7 @@ function updateOutputPaths(options, previewDir, generatedDir) {
72
69
  if (relativeModels.startsWith('./')) {
73
70
  relativeModels = relativeModels.substring(2);
74
71
  }
75
- result.outputModels = relativeModels && relativeModels !== '' && relativeModels !== './'
76
- ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeModels)
77
- : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'models');
72
+ result.outputModels = relativeModels && relativeModels !== '' && relativeModels !== './' ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeModels) : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'models');
78
73
  }
79
74
  if (oldOutputSchemas) {
80
75
  const resolvedOldSchemas = (0, pathHelpers_1.resolveHelper)(process.cwd(), oldOutputSchemas);
@@ -82,9 +77,7 @@ function updateOutputPaths(options, previewDir, generatedDir) {
82
77
  if (relativeSchemas.startsWith('./')) {
83
78
  relativeSchemas = relativeSchemas.substring(2);
84
79
  }
85
- result.outputSchemas = relativeSchemas && relativeSchemas !== '' && relativeSchemas !== './'
86
- ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeSchemas)
87
- : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'schemas');
80
+ result.outputSchemas = relativeSchemas && relativeSchemas !== '' && relativeSchemas !== './' ? (0, pathHelpers_1.joinHelper)(resolvedNewOutput, relativeSchemas) : (0, pathHelpers_1.joinHelper)(resolvedNewOutput, 'schemas');
88
81
  }
89
82
  return result;
90
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeUsage.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/analyzeUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,yBAAyB;;;;;;;;;iBA+BhC,CAAC;AAEP,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"analyzeUsage.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/analyzeUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,yBAAyB;;;;;;;;;iBAkChC,CAAC;AAEP,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -25,7 +25,10 @@ exports.analyzeUsageOptionsSchema = zod_1.z
25
25
  });
26
26
  }
27
27
  if (data.failOn && data.failOn !== 'none') {
28
- for (const category of data.failOn.split(',').map(item => item.trim()).filter(Boolean)) {
28
+ for (const category of data.failOn
29
+ .split(',')
30
+ .map(item => item.trim())
31
+ .filter(Boolean)) {
29
32
  if (!failOnCategorySchema.safeParse(category).success) {
30
33
  ctx.addIssue({
31
34
  code: 'custom',
@@ -8,8 +8,9 @@ export declare const generateOptionsSchema: z.ZodObject<{
8
8
  modelsMode: z.ZodOptional<z.ZodEnum<typeof ModelsMode>>;
9
9
  strictOpenapi: z.ZodOptional<z.ZodBoolean>;
10
10
  reportFile: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
11
- useProjectPrettier: z.ZodOptional<z.ZodBoolean>;
12
- useEslintFix: z.ZodOptional<z.ZodBoolean>;
11
+ prettierConfigPath: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
12
+ tsconfigPath: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
13
+ eslintConfigPath: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
13
14
  governanceConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
14
15
  cache: z.ZodOptional<z.ZodBoolean>;
15
16
  cachePath: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAuD5B,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;iBAwD5B,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -14,8 +14,9 @@ exports.generateOptionsSchema = zod_1.z
14
14
  modelsMode: zod_1.z.enum(ModelsMode_enum_1.ModelsMode).optional(),
15
15
  strictOpenapi: zod_1.z.boolean().optional(),
16
16
  reportFile: base_1.emptyStringToUndefined,
17
- useProjectPrettier: zod_1.z.boolean().optional(),
18
- useEslintFix: zod_1.z.boolean().optional(),
17
+ prettierConfigPath: base_1.emptyStringToUndefined,
18
+ tsconfigPath: base_1.emptyStringToUndefined,
19
+ eslintConfigPath: base_1.emptyStringToUndefined,
19
20
  governanceConfig: base_1.emptyStringToUndefined,
20
21
  cache: zod_1.z.boolean().optional(),
21
22
  cachePath: base_1.emptyStringToUndefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Consts.d.ts","sourceRoot":"","sources":["../../src/common/Consts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,EAAE,kBAwC3C,CAAC;AAEF,eAAO,MAAM,UAAU,QAIrB,CAAC;AAEH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,eAAO,MAAM,2BAA2B,4BAA4B,CAAA;AAEpE,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AAEpD,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AAEnF,eAAO,MAAM,wBAAwB,uCAAuC,CAAC"}
1
+ {"version":3,"file":"Consts.d.ts","sourceRoot":"","sources":["../../src/common/Consts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,EAAE,kBAuC3C,CAAC;AAEF,eAAO,MAAM,UAAU,QAIrB,CAAC;AAEH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AAEpD,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AAEnF,eAAO,MAAM,wBAAwB,uCAAuC,CAAC"}
@@ -43,13 +43,12 @@ exports.COMMON_DEFAULT_OPTIONS_VALUES = {
43
43
  miracles: {},
44
44
  strictOpenapi: false,
45
45
  reportFile: './openapi-report.json',
46
- useProjectPrettier: false,
47
- useEslintFix: false,
48
46
  governanceConfig: '',
49
47
  cache: false,
50
48
  cachePath: '.openapi-codegen-cache.json',
51
49
  cacheStrategy: 'entity',
52
50
  cacheDebug: false,
51
+ prettierConfigPath: '',
53
52
  };
54
53
  exports.APP_LOGGER = new Logger_1.Logger({
55
54
  level: Enums_1.ELogLevel.INFO,
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/common/Logger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAiD,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGnG,UAAU,aAAa;IACnB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,mDAAmD;IACnD,sDAAsD;IACtD,MAAM,CAAC,EAAE;QACL,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,EAAE,aAAa;IAkF3B,QAAQ,CAAC,KAAK,EAAE,SAAS;IAKzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAI7C,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAelD,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAO5C,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,SAAS,CAAC,OAAO,EAAE,MAAM;IAOzB,cAAc,IAAI,IAAI;IAe7B;;;;OAIG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBpD"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/common/Logger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAiD,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGnG,UAAU,aAAa;IACnB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,mDAAmD;IACnD,sDAAsD;IACtD,MAAM,CAAC,EAAE;QACL,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,EAAE,aAAa;IA4E3B,QAAQ,CAAC,KAAK,EAAE,SAAS;IAKzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAI7C,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAelD,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAO5C,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,SAAS,CAAC,OAAO,EAAE,MAAM;IAOzB,cAAc,IAAI,IAAI;IAe7B;;;;OAIG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBpD"}
@@ -16,7 +16,7 @@ class Logger {
16
16
  _instanceId;
17
17
  _disableColors;
18
18
  constructor(options) {
19
- const { instanceId, level, logOutput, rotate = { datePattern: 'YYYY-MM-DD', maxSize: '20m', maxFiles: '14d' }, disableColors = false, } = options;
19
+ const { instanceId, level, logOutput, rotate = { datePattern: 'YYYY-MM-DD', maxSize: '20m', maxFiles: '14d' }, disableColors = false } = options;
20
20
  this._currentLevel = level;
21
21
  this._instanceId = instanceId;
22
22
  this._disableColors = disableColors;
@@ -203,12 +203,19 @@ export declare const LOGGER_MESSAGES: {
203
203
  readonly OPENAPI_SCHEMA_MIGRATED: "To perform OpenAPI generation, it was necessary to migrate the schema of your data to the current one. To update the configuration in the file, use the command `npm openapi-codegen-cli update-config`";
204
204
  };
205
205
  readonly FORMATTING: {
206
- readonly PRETTIER_PROJECT_CONFIG_RESOLVED: (filePath: string) => string;
207
- readonly PRETTIER_PROJECT_CONFIG_NOT_FOUND: "No project Prettier config found, falling back to built-in options";
206
+ readonly PRETTIER_CONFIG_RESOLVED: (filePath: string) => string;
207
+ readonly PRETTIER_CONFIG_NOT_FOUND: (configPath: string) => string;
208
208
  readonly PRETTIER_FORMAT_FAILED: (file: string, error: string) => string;
209
- readonly ESLINT_NOT_INSTALLED: "ESLint is not installed in this project. Skipping --useEslintFix.";
209
+ readonly ESLINT_NOT_INSTALLED: "ESLint is not installed in this project. Skipping batch ESLint fix.";
210
210
  readonly ESLINT_FIX_FAILED: (file: string, error: string) => string;
211
211
  readonly ESLINT_FIX_APPLIED: (file: string) => string;
212
+ readonly ESLINT_PATHS_MISSING: "Batch ESLint fix requires both tsconfigPath and eslintConfigPath. Skipping batch ESLint fix.";
213
+ readonly ESLINT_BATCH_STARTED: "Batch ESLint fix started for generated models and services";
214
+ readonly ESLINT_BATCH_FINISHED: (durationSec: string) => string;
215
+ readonly ESLINT_BATCH_COMPLETED: (reportPath: string) => string;
216
+ readonly ESLINT_BATCH_COMPLETED_WITH_ISSUES: (errors: number, warnings: number, reportPath: string) => string;
217
+ readonly ESLINT_BATCH_FAILED: (error: string) => string;
218
+ readonly ESLINT_BATCH_CHUNK_FAILED: (error: string) => string;
212
219
  };
213
220
  };
214
221
  //# sourceMappingURL=LoggerMessages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoggerMessages.d.ts","sourceRoot":"","sources":["../../src/common/LoggerMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoggerMessages.d.ts","sourceRoot":"","sources":["../../src/common/LoggerMessages.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,8 @@ exports.LOGGER_ERROR_RECOMMENDATIONS = {
29
29
  PREVIEW_DIR_EMPTY: 'Сначала выполните генерацию клиента, чтобы появились файлы для сравнения, или укажите другую директорию для превью. Если каталог должен существовать, проверьте правильность пути.',
30
30
  PREVIEW_CLEANUP_FAILED: 'Проверьте права доступа к директории превью и отсутствует ли блокировка файлов сторонними процессами. При необходимости очистите каталог вручную и повторите команду.',
31
31
  SPEC_FILES_FIND_ERROR: 'Проверьте корректность маски поиска и доступ к файловой системе. Убедитесь, что у вас есть права чтения для директории со спецификациями.',
32
- PRETTIER_FORMAT_FAILED: 'Проверьте синтаксис сгенерированного фрагмента и настройки Prettier (включая опцию useProjectPrettier). При необходимости отключите useProjectPrettier или поправьте .prettierrc.',
33
- ESLINT_FIX_FAILED: 'Проверьте, что путь к файлу корректен, ESLint и конфигурация проекта в порядке, и что файл доступен для чтения/записи. При необходимости отключите useEslintFix.',
32
+ PRETTIER_FORMAT_FAILED: 'Проверьте синтаксис сгенерированного фрагмента и настройки Prettier (включая опцию prettierConfigPath). При необходимости укажите корректный путь к конфигу или поправьте файл конфигурации.',
33
+ ESLINT_FIX_FAILED: 'Проверьте, что пути tsconfigPath и eslintConfigPath корректны, ESLint установлен в проекте, и что сгенерированные файлы доступны для чтения и записи.',
34
34
  };
35
35
  exports.LOGGER_MESSAGES = {
36
36
  // ========== Generation Messages (OpenApiClient) ==========
@@ -71,8 +71,7 @@ exports.LOGGER_MESSAGES = {
71
71
  CONFIG_EXISTS_INTERACTIVE_DISABLED: (path) => `Configuration file already exists and interactive mode is disabled: ${path}`,
72
72
  CONFIG_LEFT_UNCHANGED: 'Configuration file left unchanged.',
73
73
  CONFIG_CREATED: (path) => `Configuration file created: ${path}`,
74
- EXAMPLE_CONFIG_CREATED: (path) => `Example configuration generated and written to: ${path}\n` +
75
- 'You can use it as a template for your actual configuration.',
74
+ EXAMPLE_CONFIG_CREATED: (path) => `Example configuration generated and written to: ${path}\n` + 'You can use it as a template for your actual configuration.',
76
75
  CONFIG_GENERATION_CANCELLED: 'Configuration file generation cancelled.',
77
76
  SPEC_FILES_FIND_ERROR: (error) => `Error finding spec files: ${error}`,
78
77
  NO_SPEC_FILES_FOUND: (directory) => `No spec files found in directory: ${directory}`,
@@ -120,6 +119,7 @@ exports.LOGGER_MESSAGES = {
120
119
  CLEANUP_PREVIEW_DIR: (dir) => `Cleaning up preview directory: ${dir}`,
121
120
  CLEANUP_PREVIEW_FAILED: (error) => `Failed to cleanup preview directory: ${error}`,
122
121
  },
122
+ // ========== Analyze Diff Messages ==========
123
123
  ANALYZE_DIFF: {
124
124
  INPUT_REQUIRED: '"--input" option is required for analyze-diff command',
125
125
  HISTORY_SKIPPED: 'History analysis skipped: no base spec provided (use --compare-with or --git)',
@@ -193,11 +193,18 @@ exports.LOGGER_MESSAGES = {
193
193
  },
194
194
  // ========== Formatting Messages ==========
195
195
  FORMATTING: {
196
- PRETTIER_PROJECT_CONFIG_RESOLVED: (filePath) => `Prettier config resolved from: ${filePath}`,
197
- PRETTIER_PROJECT_CONFIG_NOT_FOUND: 'No project Prettier config found, falling back to built-in options',
196
+ PRETTIER_CONFIG_RESOLVED: (filePath) => `Prettier config resolved from: ${filePath}`,
197
+ PRETTIER_CONFIG_NOT_FOUND: (configPath) => `Prettier config not found at "${configPath}", falling back to built-in options`,
198
198
  PRETTIER_FORMAT_FAILED: (file, error) => `Prettier formatting failed for "${file}": ${error}`,
199
- ESLINT_NOT_INSTALLED: 'ESLint is not installed in this project. Skipping --useEslintFix.',
199
+ ESLINT_NOT_INSTALLED: 'ESLint is not installed in this project. Skipping batch ESLint fix.',
200
200
  ESLINT_FIX_FAILED: (file, error) => `ESLint fix failed for "${file}": ${error}`,
201
201
  ESLINT_FIX_APPLIED: (file) => `ESLint fix applied: ${file}`,
202
+ ESLINT_PATHS_MISSING: 'Batch ESLint fix requires both tsconfigPath and eslintConfigPath. Skipping batch ESLint fix.',
203
+ ESLINT_BATCH_STARTED: 'Batch ESLint fix started for generated models and services',
204
+ ESLINT_BATCH_FINISHED: (durationSec) => `Batch ESLint fix completed in ${durationSec} sec`,
205
+ ESLINT_BATCH_COMPLETED: (reportPath) => `Batch ESLint fix completed. Report: ${reportPath}`,
206
+ ESLINT_BATCH_COMPLETED_WITH_ISSUES: (errors, warnings, reportPath) => `Batch ESLint fix completed with ${errors} error(s) and ${warnings} warning(s). Report: ${reportPath}`,
207
+ ESLINT_BATCH_FAILED: (error) => `Batch ESLint fix failed: ${error}`,
208
+ ESLINT_BATCH_CHUNK_FAILED: (error) => `Batch ESLint fix chunk failed: ${error}`,
202
209
  },
203
210
  };
@@ -0,0 +1,20 @@
1
+ import { TRawOptions } from './TRawOptions';
2
+ /**
3
+ * Top-level ESLint fix options read once from TRawOptions.
4
+ * Not propagated into per-item TFlatOptions.
5
+ * Batch ESLint runs when both paths are set.
6
+ */
7
+ export type TEslintFixOptions = {
8
+ /** Path to the host project's tsconfig.json. */
9
+ tsconfigPath?: string;
10
+ /** Path to the host project's ESLint config. */
11
+ eslintConfigPath?: string;
12
+ };
13
+ /**
14
+ * Extracts ESLint fix settings from raw generator options (root config only).
15
+ *
16
+ * @param raw - Validated unified options before per-item normalization.
17
+ * @returns Resolved ESLint fix options for OpenApiClient.
18
+ */
19
+ export declare function extractEslintFixOptions(raw: TRawOptions): TEslintFixOptions;
20
+ //# sourceMappingURL=TEslintFixOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TEslintFixOptions.d.ts","sourceRoot":"","sources":["../../src/common/TEslintFixOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAK3E"}