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

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 (333) hide show
  1. package/README.md +7 -0
  2. package/README.rus.md +7 -0
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +31 -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 +8 -7
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +8 -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 +56 -13
  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 -6
  16. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  17. package/dist/cli/analyzeDiff/ignoreRules.js +2 -3
  18. package/dist/cli/analyzeDiff/report.d.ts +0 -1
  19. package/dist/cli/analyzeDiff/report.d.ts.map +1 -1
  20. package/dist/cli/analyzeDiff/report.js +1 -3
  21. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +2 -0
  22. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +1 -1
  23. package/dist/cli/analyzeDiff/writeLegacyReport.js +2 -0
  24. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +2 -2
  25. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/analyzeUsage.js +10 -12
  27. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +1 -1
  28. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -1
  29. package/dist/cli/analyzeUsage/core/ProjectContext.js +5 -10
  30. package/dist/cli/analyzeUsage/core/Scanner.d.ts +8 -0
  31. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -1
  32. package/dist/cli/analyzeUsage/core/Scanner.js +10 -0
  33. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +10 -2
  34. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -1
  35. package/dist/cli/analyzeUsage/rules/ClientRule.js +29 -21
  36. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +2 -2
  37. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -1
  38. package/dist/cli/analyzeUsage/rules/CoverageRule.js +16 -24
  39. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -1
  40. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +4 -1
  41. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +2 -2
  42. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -1
  43. package/dist/cli/analyzeUsage/rules/ImportRule.js +9 -11
  44. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +2 -2
  45. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -1
  46. package/dist/cli/analyzeUsage/rules/ModelRule.js +4 -8
  47. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +2 -2
  48. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -1
  49. package/dist/cli/analyzeUsage/rules/SchemaRule.js +8 -10
  50. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +10 -2
  51. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -1
  52. package/dist/cli/analyzeUsage/rules/ServiceRule.js +27 -23
  53. package/dist/cli/analyzeUsage/types.d.ts +4 -4
  54. package/dist/cli/analyzeUsage/types.d.ts.map +1 -1
  55. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -1
  56. package/dist/cli/analyzeUsage/utils/report.d.ts +1 -1
  57. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -1
  58. package/dist/cli/analyzeUsage/utils/report.js +8 -8
  59. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  60. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  61. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +1 -1
  62. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  63. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  64. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  65. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  66. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +9 -1
  67. package/dist/cli/index.js +3 -2
  68. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +2 -8
  69. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  70. package/dist/cli/interactive/constants.d.ts +0 -4
  71. package/dist/cli/interactive/constants.d.ts.map +1 -1
  72. package/dist/cli/interactive/constants.js +1 -5
  73. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  74. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  75. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  76. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  77. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -1
  78. package/dist/cli/schemas/analyzeUsage.js +4 -1
  79. package/dist/cli/schemas/generate.d.ts +3 -2
  80. package/dist/cli/schemas/generate.d.ts.map +1 -1
  81. package/dist/cli/schemas/generate.js +3 -2
  82. package/dist/common/Consts.d.ts.map +1 -1
  83. package/dist/common/Consts.js +1 -2
  84. package/dist/common/Logger.d.ts.map +1 -1
  85. package/dist/common/Logger.js +1 -1
  86. package/dist/common/LoggerMessages.d.ts +15 -3
  87. package/dist/common/LoggerMessages.d.ts.map +1 -1
  88. package/dist/common/LoggerMessages.js +18 -7
  89. package/dist/common/TEslintFixOptions.d.ts +20 -0
  90. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  91. package/dist/common/TEslintFixOptions.js +15 -0
  92. package/dist/common/TRawOptions.d.ts.map +1 -1
  93. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  94. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  95. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  96. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  97. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  98. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  99. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  100. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  101. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  102. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  103. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  104. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +3 -2
  105. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  106. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +10 -4
  107. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +4 -4
  108. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  109. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  110. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  111. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  112. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  113. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  114. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  115. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  116. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  117. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  118. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  119. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  120. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  121. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  122. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  123. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  124. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +3 -2
  125. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  126. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  127. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  128. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  129. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  130. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  131. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  132. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  133. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +1 -3
  134. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  135. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  136. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +1 -3
  137. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  138. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  139. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  140. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  141. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  142. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  143. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  144. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  145. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  146. package/dist/common/utils/__tests__/format.test.js +26 -17
  147. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  148. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  149. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  150. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  151. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  152. package/dist/common/utils/codegenTempDir.js +42 -0
  153. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  154. package/dist/common/utils/convertArrayToObject.js +3 -8
  155. package/dist/common/utils/eslintFix.d.ts +48 -4
  156. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  157. package/dist/common/utils/eslintFix.js +121 -15
  158. package/dist/common/utils/format.d.ts +1 -1
  159. package/dist/common/utils/format.d.ts.map +1 -1
  160. package/dist/common/utils/format.js +23 -11
  161. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  162. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  163. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  164. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  165. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  166. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  167. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  168. package/dist/core/Context.d.ts.map +1 -1
  169. package/dist/core/Context.js +2 -6
  170. package/dist/core/OpenApiClient.d.ts +15 -0
  171. package/dist/core/OpenApiClient.d.ts.map +1 -1
  172. package/dist/core/OpenApiClient.js +68 -10
  173. package/dist/core/WriteClient.d.ts +73 -17
  174. package/dist/core/WriteClient.d.ts.map +1 -1
  175. package/dist/core/WriteClient.js +72 -18
  176. package/dist/core/__tests__/WriteClient.test.js +1 -1
  177. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  178. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  179. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  180. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  181. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  182. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  183. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  184. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  185. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  186. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  187. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  188. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  189. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  190. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  191. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
  192. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
  193. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
  194. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  195. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
  196. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +9 -1
  197. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  198. package/dist/core/semanticDiff/semanticDiffReportSchema.js +137 -53
  199. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  200. package/dist/core/types/Consts.js +1 -1
  201. package/dist/core/types/DiffReport.model.d.ts +101 -0
  202. package/dist/core/types/DiffReport.model.d.ts.map +1 -0
  203. package/dist/core/types/DiffReport.model.js +5 -0
  204. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  205. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  206. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  207. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  208. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  209. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  210. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  211. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  212. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  213. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  214. package/dist/core/types/shared/Model.model.d.ts +36 -0
  215. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  216. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
  217. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
  218. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
  219. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
  220. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
  221. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
  222. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
  223. package/dist/core/utils/__tests__/loadDiffReport.test.js +131 -0
  224. package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
  225. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  226. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  227. package/dist/core/utils/__tests__/prepareDtoModels.test.js +74 -2
  228. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  229. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
  230. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
  231. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
  232. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
  233. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
  234. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
  235. package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
  236. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  237. package/dist/core/utils/__tests__/templateRendering.test.js +71 -0
  238. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
  239. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
  240. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
  241. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
  242. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
  243. package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
  244. package/dist/core/utils/adapters/index.d.ts +4 -0
  245. package/dist/core/utils/adapters/index.d.ts.map +1 -0
  246. package/dist/core/utils/adapters/index.js +8 -0
  247. package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
  248. package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
  249. package/dist/core/utils/adapters/semanticToStructural.js +36 -0
  250. package/dist/core/utils/appendUniqueLinesToFile.js +1 -1
  251. package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
  252. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  253. package/dist/core/utils/applyDiffReportToClient.js +189 -109
  254. package/dist/core/utils/areEqual.d.ts +1 -1
  255. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
  256. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
  257. package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
  258. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
  259. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
  260. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
  261. package/dist/core/utils/getOpenApiSpec.d.ts +18 -0
  262. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  263. package/dist/core/utils/getOpenApiSpec.js +35 -0
  264. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  265. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  266. package/dist/core/utils/getOperationResults.d.ts +1 -1
  267. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  268. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  269. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  270. package/dist/core/utils/loadDiffReport.d.ts +11 -30
  271. package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
  272. package/dist/core/utils/loadDiffReport.js +69 -3
  273. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
  274. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
  275. package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
  276. package/dist/core/utils/modelHelpers.d.ts +13 -5
  277. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  278. package/dist/core/utils/modelHelpers.js +28 -23
  279. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  280. package/dist/core/utils/normalizeString.js +1 -5
  281. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  282. package/dist/core/utils/postProcessServiceImports.js +1 -3
  283. package/dist/core/utils/precompileTemplates.js +1 -0
  284. package/dist/core/utils/prepareAlias.d.ts +1 -1
  285. package/dist/core/utils/prepareDtoModels.d.ts +5 -0
  286. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  287. package/dist/core/utils/prepareDtoModels.js +56 -13
  288. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  289. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  290. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  291. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  292. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  293. package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
  294. package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
  295. package/dist/core/utils/resolveClassesModeTypes.js +77 -0
  296. package/dist/core/utils/semanticChangesToDiffEntries.d.ts +37 -0
  297. package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
  298. package/dist/core/utils/semanticChangesToDiffEntries.js +99 -0
  299. package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
  300. package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
  301. package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
  302. package/dist/core/utils/serviceHelpers.d.ts +6 -7
  303. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  304. package/dist/core/utils/serviceHelpers.js +8 -25
  305. package/dist/core/utils/sortModelByName.d.ts +1 -1
  306. package/dist/core/utils/writeClientExecutor.d.ts +1 -2
  307. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  308. package/dist/core/utils/writeClientExecutor.js +2 -6
  309. package/dist/core/utils/writeClientModels.d.ts +1 -2
  310. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  311. package/dist/core/utils/writeClientModels.js +4 -6
  312. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  313. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  314. package/dist/core/utils/writeClientSchemas.js +2 -7
  315. package/dist/core/utils/writeClientServices.d.ts +15 -16
  316. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  317. package/dist/core/utils/writeClientServices.js +6 -13
  318. package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
  319. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
  320. package/dist/templatesCompiled/client/exportModels.js +96 -49
  321. package/dist/templatesCompiled/client/exportService.d.ts +13 -10
  322. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  323. package/dist/templatesCompiled/client/exportService.js +95 -67
  324. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  325. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  326. package/dist/templatesCompiled/client/partials/header.js +11 -2
  327. package/package.json +130 -136
  328. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
  329. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
  330. package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
  331. package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
  332. package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
  333. package/dist/cli/analyzeDiff/diffEngine.js +0 -209
@@ -33,13 +33,70 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.eslintFix = eslintFix;
36
+ exports.eslintFixBatch = eslintFixBatch;
37
37
  const Consts_1 = require("../Consts");
38
38
  const LoggerMessages_1 = require("../LoggerMessages");
39
- /**
40
- * Dynamically resolves the ESLint module from the user's project.
41
- * Returns null if ESLint is not installed.
42
- */
39
+ const codegenTempDir_1 = require("./codegenTempDir");
40
+ const fileSystemHelpers_1 = require("./fileSystemHelpers");
41
+ const pathHelpers_1 = require("./pathHelpers");
42
+ const prepareTempEslintConfig_1 = require("./prepareTempEslintConfig");
43
+ const prepareTempTsConfig_1 = require("./prepareTempTsConfig");
44
+ const DEFAULT_BATCH_SIZE = 50;
45
+ /** JSON report filename (eslint-fix-report.json) written to the project root after batch ESLint fix. */
46
+ const ESLINT_FIX_REPORT_FILE = 'eslint-fix-report.json';
47
+ function getBatchSize(batchSize) {
48
+ if (batchSize !== undefined && batchSize > 0) {
49
+ return batchSize;
50
+ }
51
+ const fromEnv = Number(process.env.ESLINT_FIX_BATCH_SIZE);
52
+ if (Number.isFinite(fromEnv) && fromEnv > 0) {
53
+ return fromEnv;
54
+ }
55
+ return DEFAULT_BATCH_SIZE;
56
+ }
57
+ function* chunkArray(items, size) {
58
+ for (let index = 0; index < items.length; index += size) {
59
+ yield items.slice(index, index + size);
60
+ }
61
+ }
62
+ function createEmptyReport() {
63
+ return {
64
+ summary: {
65
+ totalFiles: 0,
66
+ errorCount: 0,
67
+ warningCount: 0,
68
+ fixableErrorCount: 0,
69
+ fixableWarningCount: 0,
70
+ },
71
+ files: [],
72
+ };
73
+ }
74
+ function mergeLintResults(report, results) {
75
+ for (const result of results) {
76
+ const messages = [];
77
+ for (const message of result.messages) {
78
+ messages.push({
79
+ filePath: result.filePath,
80
+ ruleId: message.ruleId ?? null,
81
+ line: message.line ?? 0,
82
+ column: message.column ?? 0,
83
+ message: message.message ?? '',
84
+ severity: message.severity ?? 1,
85
+ });
86
+ }
87
+ if (messages.length > 0) {
88
+ report.files.push({
89
+ filePath: result.filePath,
90
+ messages,
91
+ });
92
+ }
93
+ report.summary.totalFiles += 1;
94
+ report.summary.errorCount += result.errorCount ?? 0;
95
+ report.summary.warningCount += result.warningCount ?? 0;
96
+ report.summary.fixableErrorCount += result.fixableErrorCount ?? 0;
97
+ report.summary.fixableWarningCount += result.fixableWarningCount ?? 0;
98
+ }
99
+ }
43
100
  async function tryImportESLint() {
44
101
  try {
45
102
  const mod = await Promise.resolve().then(() => __importStar(require('eslint')));
@@ -49,30 +106,79 @@ async function tryImportESLint() {
49
106
  return null;
50
107
  }
51
108
  }
109
+ async function writeEslintFixReport(report, cwd) {
110
+ const reportPath = (0, pathHelpers_1.resolveHelper)(cwd, ESLINT_FIX_REPORT_FILE);
111
+ await fileSystemHelpers_1.fileSystemHelpers.writeFile(reportPath, `${JSON.stringify(report, null, 2)}\n`);
112
+ return reportPath;
113
+ }
52
114
  /**
53
- * Runs ESLint --fix on the given file using the user's project ESLint config.
54
- * Silently skips if ESLint is not installed.
55
- * Logs an error and re-throws if ESLint fails during the fix.
115
+ * Runs ESLint --fix in memory-safe batches on an explicit file list.
116
+ *
117
+ * Creates temporary configs under .openapi-codegen/, lints in chunks, applies fixes,
118
+ * writes eslint-fix-report.json, then removes temp files. Does not use projectService.
119
+ *
120
+ * @param options - File paths, globs, and host project config paths.
121
+ * @returns Lint report, or null when there are no files or ESLint is not installed.
56
122
  */
57
- async function eslintFix(filePath) {
123
+ async function eslintFixBatch(options) {
124
+ const cwd = options.cwd ?? process.cwd();
125
+ const uniqueFiles = [...new Set(options.files.map(file => (0, pathHelpers_1.resolveHelper)(cwd, file)))].sort();
126
+ if (uniqueFiles.length === 0) {
127
+ return null;
128
+ }
58
129
  const eslintModule = await tryImportESLint();
59
130
  if (!eslintModule) {
60
131
  Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_NOT_INSTALLED);
61
- return;
132
+ return null;
62
133
  }
134
+ const report = createEmptyReport();
135
+ const batchSize = getBatchSize(options.batchSize);
63
136
  try {
64
- const eslint = new eslintModule.ESLint({ fix: true });
65
- const results = await eslint.lintFiles([filePath]);
66
- await eslintModule.ESLint.outputFixes(results);
67
- Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_FIX_APPLIED(filePath));
137
+ const tempTsconfigPath = await (0, prepareTempTsConfig_1.prepareTempTsConfig)({
138
+ baseTsconfigPath: options.tsconfigPath,
139
+ includeGlobs: options.includeGlobs,
140
+ cwd,
141
+ });
142
+ const tempEslintPath = await (0, prepareTempEslintConfig_1.prepareTempEslintConfig)({
143
+ eslintConfigPath: options.eslintConfigPath,
144
+ tempTsconfigPath,
145
+ cwd,
146
+ });
147
+ const eslint = new eslintModule.ESLint({
148
+ cwd,
149
+ fix: true,
150
+ overrideConfigFile: tempEslintPath,
151
+ });
152
+ for (const chunk of chunkArray(uniqueFiles, batchSize)) {
153
+ try {
154
+ const results = await eslint.lintFiles(chunk);
155
+ await eslintModule.ESLint.outputFixes(results);
156
+ mergeLintResults(report, results);
157
+ }
158
+ catch (error) {
159
+ const message = error instanceof Error ? error.message : String(error);
160
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_CHUNK_FAILED(message));
161
+ }
162
+ }
163
+ const reportPath = await writeEslintFixReport(report, cwd);
164
+ if (report.summary.errorCount > 0 || report.summary.warningCount > 0) {
165
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_COMPLETED_WITH_ISSUES(report.summary.errorCount, report.summary.warningCount, reportPath));
166
+ }
167
+ else {
168
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_COMPLETED(reportPath));
169
+ }
170
+ return report;
68
171
  }
69
172
  catch (error) {
70
173
  const message = error instanceof Error ? error.message : String(error);
71
174
  Consts_1.APP_LOGGER.errorWithHint({
72
175
  code: LoggerMessages_1.LOGGER_ERROR_CODES.ESLINT_FIX_FAILED,
73
- message: LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_FIX_FAILED(filePath, message),
176
+ message: LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_FAILED(message),
74
177
  error,
75
178
  });
76
179
  throw error;
77
180
  }
181
+ finally {
182
+ await (0, codegenTempDir_1.cleanupCodegenTempDir)(cwd);
183
+ }
78
184
  }
@@ -1,3 +1,3 @@
1
1
  import { BuiltInParserName, LiteralUnion } from 'prettier';
2
- export declare function format(input: string, parser?: LiteralUnion<BuiltInParserName>, useProjectConfig?: boolean): Promise<string>;
2
+ export declare function format(input: string, parser?: LiteralUnion<BuiltInParserName>, prettierConfigPath?: string): Promise<string>;
3
3
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,YAAY,EAA6C,MAAM,UAAU,CAAC;AAiBhI,wBAAsB,MAAM,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EACxC,gBAAgB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,YAAY,EAA6C,MAAM,UAAU,CAAC;AAmBhI,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsClI"}
@@ -4,6 +4,8 @@ exports.format = format;
4
4
  const prettier_1 = require("prettier");
5
5
  const Consts_1 = require("../Consts");
6
6
  const LoggerMessages_1 = require("../LoggerMessages");
7
+ const fileSystemHelpers_1 = require("./fileSystemHelpers");
8
+ const pathHelpers_1 = require("./pathHelpers");
7
9
  const BUILTIN_PRETTIER_OPTIONS = {
8
10
  tabWidth: 4,
9
11
  printWidth: 120,
@@ -15,21 +17,31 @@ const BUILTIN_PRETTIER_OPTIONS = {
15
17
  arrowParens: 'avoid',
16
18
  endOfLine: 'auto',
17
19
  };
18
- async function format(input, parser, useProjectConfig) {
20
+ async function format(input, parser, prettierConfigPath) {
19
21
  let options = { ...BUILTIN_PRETTIER_OPTIONS, parser: parser ?? 'typescript' };
20
- if (useProjectConfig) {
21
- try {
22
- const resolved = await (0, prettier_1.resolveConfig)(process.cwd(), { useCache: false });
23
- if (resolved) {
24
- Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_RESOLVED(process.cwd()));
25
- options = { ...resolved, parser: parser ?? resolved.parser ?? 'typescript' };
22
+ if (prettierConfigPath) {
23
+ const absoluteConfigPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), prettierConfigPath);
24
+ const configExists = await fileSystemHelpers_1.fileSystemHelpers.exists(absoluteConfigPath);
25
+ if (configExists) {
26
+ try {
27
+ const resolved = await (0, prettier_1.resolveConfig)(absoluteConfigPath, { config: absoluteConfigPath, useCache: false });
28
+ if (resolved) {
29
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_CONFIG_RESOLVED(absoluteConfigPath));
30
+ options = {
31
+ ...resolved,
32
+ parser: parser ?? resolved.parser ?? 'typescript',
33
+ };
34
+ }
35
+ else {
36
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_CONFIG_NOT_FOUND(prettierConfigPath));
37
+ }
26
38
  }
27
- else {
28
- Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_NOT_FOUND);
39
+ catch {
40
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_CONFIG_NOT_FOUND(prettierConfigPath));
29
41
  }
30
42
  }
31
- catch {
32
- Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_PROJECT_CONFIG_NOT_FOUND);
43
+ else {
44
+ Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.PRETTIER_CONFIG_NOT_FOUND(prettierConfigPath));
33
45
  }
34
46
  }
35
47
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"jsonPath.d.ts","sourceRoot":"","sources":["../../../src/common/utils/jsonPath.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,GAAI,UAAU,eAAe,EAAE,KAAG,MAcxD,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAQlD,CAAC"}
1
+ {"version":3,"file":"jsonPath.d.ts","sourceRoot":"","sources":["../../../src/common/utils/jsonPath.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,GAAI,UAAU,eAAe,EAAE,KAAG,MAaxD,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAQlD,CAAC"}
@@ -0,0 +1,18 @@
1
+ /** Options for {@link prepareTempEslintConfig}. */
2
+ export interface PrepareTempEslintConfigOptions {
3
+ /** Path to the host project's ESLint config file. */
4
+ eslintConfigPath: string;
5
+ /** Absolute path to the temporary tsconfig from {@link prepareTempTsConfig}. */
6
+ tempTsconfigPath: string;
7
+ /** Project root (defaults to process.cwd()). */
8
+ cwd?: string;
9
+ }
10
+ /**
11
+ * Writes an ESLint flat-config wrapper that imports the host config and points type-aware rules
12
+ * at the temporary tsconfig.
13
+ *
14
+ * @param options - Host ESLint config path and temporary tsconfig path.
15
+ * @returns Absolute path to .openapi-codegen/eslint.config.codegen.mjs.
16
+ */
17
+ export declare function prepareTempEslintConfig(options: PrepareTempEslintConfigOptions): Promise<string>;
18
+ //# sourceMappingURL=prepareTempEslintConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTempEslintConfig.d.ts","sourceRoot":"","sources":["../../../src/common/utils/prepareTempEslintConfig.ts"],"names":[],"mappings":"AAOA,mDAAmD;AACnD,MAAM,WAAW,8BAA8B;IAC3C,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsCtG"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareTempEslintConfig = prepareTempEslintConfig;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const node_url_1 = require("node:url");
9
+ const codegenTempDir_1 = require("./codegenTempDir");
10
+ const fileSystemHelpers_1 = require("./fileSystemHelpers");
11
+ const pathHelpers_1 = require("./pathHelpers");
12
+ /**
13
+ * Writes an ESLint flat-config wrapper that imports the host config and points type-aware rules
14
+ * at the temporary tsconfig.
15
+ *
16
+ * @param options - Host ESLint config path and temporary tsconfig path.
17
+ * @returns Absolute path to .openapi-codegen/eslint.config.codegen.mjs.
18
+ */
19
+ async function prepareTempEslintConfig(options) {
20
+ const cwd = options.cwd ?? process.cwd();
21
+ await (0, codegenTempDir_1.ensureCodegenTempDir)(cwd);
22
+ const absoluteUserConfig = (0, pathHelpers_1.resolveHelper)(cwd, options.eslintConfigPath);
23
+ const userConfigUrl = (0, node_url_1.pathToFileURL)(absoluteUserConfig).href;
24
+ const tsconfigFileName = node_path_1.default.basename(options.tempTsconfigPath);
25
+ const wrapperPath = node_path_1.default.join((0, codegenTempDir_1.getCodegenTempDir)(cwd), 'eslint.config.codegen.mjs');
26
+ const content = `import userConfig from ${JSON.stringify(userConfigUrl)};
27
+ import path from 'node:path';
28
+ import { fileURLToPath } from 'node:url';
29
+
30
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
31
+ const tempTsconfigPath = path.join(__dirname, ${JSON.stringify(tsconfigFileName)});
32
+
33
+ function normalizeConfigs(config) {
34
+ if (!config) {
35
+ return [];
36
+ }
37
+ return Array.isArray(config) ? config : [config];
38
+ }
39
+
40
+ export default [
41
+ ...normalizeConfigs(userConfig),
42
+ {
43
+ files: ['**/*.{ts,tsx}'],
44
+ languageOptions: {
45
+ parserOptions: {
46
+ project: tempTsconfigPath,
47
+ tsconfigRootDir: ${JSON.stringify(cwd)},
48
+ },
49
+ },
50
+ },
51
+ ];
52
+ `;
53
+ await fileSystemHelpers_1.fileSystemHelpers.writeFile(wrapperPath, content);
54
+ return wrapperPath;
55
+ }
@@ -0,0 +1,23 @@
1
+ /** Options for {@link prepareTempTsConfig}. */
2
+ export interface PrepareTempTsConfigOptions {
3
+ /** Path to the host project's base tsconfig.json. */
4
+ baseTsconfigPath: string;
5
+ /**
6
+ * Narrow include globs for generated output only (e.g. ./generated/models/.../*.ts).
7
+ * Replaces the base tsconfig include; the base include is not merged.
8
+ */
9
+ includeGlobs: string[];
10
+ /** Project root (defaults to process.cwd()). */
11
+ cwd?: string;
12
+ }
13
+ /**
14
+ * Builds a temporary tsconfig for type-aware ESLint without loading the whole repository.
15
+ *
16
+ * Reads compilerOptions from the base tsconfig, then writes .openapi-codegen/tsconfig.eslint.json
17
+ * with a replaced include, noEmit, skipLibCheck, and incremental: false.
18
+ *
19
+ * @param options - Base tsconfig path and narrow include globs.
20
+ * @returns Absolute path to the written temporary tsconfig file.
21
+ */
22
+ export declare function prepareTempTsConfig(options: PrepareTempTsConfigOptions): Promise<string>;
23
+ //# sourceMappingURL=prepareTempTsConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTempTsConfig.d.ts","sourceRoot":"","sources":["../../../src/common/utils/prepareTempTsConfig.ts"],"names":[],"mappings":"AAyEA,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACvC,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAoC9F"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareTempTsConfig = prepareTempTsConfig;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const typescript_1 = __importDefault(require("typescript"));
9
+ const codegenTempDir_1 = require("./codegenTempDir");
10
+ const fileSystemHelpers_1 = require("./fileSystemHelpers");
11
+ const pathHelpers_1 = require("./pathHelpers");
12
+ /** Parsed CompilerOptions may include fields that are not valid in tsconfig.json. */
13
+ const INTERNAL_COMPILER_OPTION_KEYS = new Set(['configFilePath']);
14
+ function isWritableCompilerOptionKey(key) {
15
+ return !INTERNAL_COMPILER_OPTION_KEYS.has(key);
16
+ }
17
+ /** Maps parsed numeric enum values back to tsconfig.json string literals. */
18
+ function serializeEnumCompilerOption(key, value) {
19
+ switch (key) {
20
+ case 'target':
21
+ return typescript_1.default.ScriptTarget[value] ?? value;
22
+ case 'module':
23
+ return typescript_1.default.ModuleKind[value] ?? value;
24
+ case 'moduleResolution':
25
+ return typescript_1.default.ModuleResolutionKind[value] ?? value;
26
+ case 'jsx':
27
+ return typescript_1.default.JsxEmit[value] ?? value;
28
+ case 'newLine':
29
+ return typescript_1.default.NewLineKind[value] ?? value;
30
+ default:
31
+ return value;
32
+ }
33
+ }
34
+ /** Maps parsed CompilerOptions to a JSON-serializable tsconfig fragment. */
35
+ function compilerOptionsToJson(options) {
36
+ const json = {};
37
+ const source = options;
38
+ for (const [key, value] of Object.entries(source)) {
39
+ if (value === undefined || !isWritableCompilerOptionKey(key)) {
40
+ continue;
41
+ }
42
+ if (typeof value === 'number') {
43
+ json[key] = serializeEnumCompilerOption(key, value);
44
+ continue;
45
+ }
46
+ json[key] = value;
47
+ }
48
+ return json;
49
+ }
50
+ /**
51
+ * Builds JSON-safe compilerOptions: parsed values (extends resolved) plus raw literals
52
+ * from the base file (preserves lib/types paths as written in tsconfig.json).
53
+ */
54
+ function mergeCompilerOptionsForJson(rawCompilerOptions, parsedOptions) {
55
+ const json = compilerOptionsToJson(parsedOptions);
56
+ const rawSource = rawCompilerOptions;
57
+ if (rawSource) {
58
+ for (const [key, value] of Object.entries(rawSource)) {
59
+ if (value !== undefined && isWritableCompilerOptionKey(key)) {
60
+ json[key] = value;
61
+ }
62
+ }
63
+ }
64
+ return json;
65
+ }
66
+ /**
67
+ * Builds a temporary tsconfig for type-aware ESLint without loading the whole repository.
68
+ *
69
+ * Reads compilerOptions from the base tsconfig, then writes .openapi-codegen/tsconfig.eslint.json
70
+ * with a replaced include, noEmit, skipLibCheck, and incremental: false.
71
+ *
72
+ * @param options - Base tsconfig path and narrow include globs.
73
+ * @returns Absolute path to the written temporary tsconfig file.
74
+ */
75
+ async function prepareTempTsConfig(options) {
76
+ const cwd = options.cwd ?? process.cwd();
77
+ const absoluteBase = (0, pathHelpers_1.resolveHelper)(cwd, options.baseTsconfigPath);
78
+ const baseDir = node_path_1.default.dirname(absoluteBase);
79
+ const configFile = typescript_1.default.readConfigFile(absoluteBase, typescript_1.default.sys.readFile);
80
+ if (configFile.error) {
81
+ const message = typescript_1.default.formatDiagnostic(configFile.error, {
82
+ getCanonicalFileName: f => f,
83
+ getCurrentDirectory: () => cwd,
84
+ getNewLine: () => '\n',
85
+ });
86
+ throw new Error(`Failed to read tsconfig at "${absoluteBase}": ${message}`);
87
+ }
88
+ const parsedBase = typescript_1.default.parseJsonConfigFileContent(configFile.config, typescript_1.default.sys, baseDir, undefined, absoluteBase);
89
+ const include = options.includeGlobs.length > 0 ? options.includeGlobs.map(glob => (node_path_1.default.isAbsolute(glob) ? glob : node_path_1.default.join(cwd, glob))) : ['**/*.ts'];
90
+ const rawCompilerOptions = configFile.config.compilerOptions;
91
+ const tempConfig = {
92
+ compilerOptions: {
93
+ ...mergeCompilerOptionsForJson(rawCompilerOptions, parsedBase.options),
94
+ noEmit: true,
95
+ skipLibCheck: true,
96
+ incremental: false,
97
+ },
98
+ include,
99
+ exclude: ['node_modules', '**/node_modules/**'],
100
+ };
101
+ await (0, codegenTempDir_1.ensureCodegenTempDir)(cwd);
102
+ const tempPath = node_path_1.default.join((0, codegenTempDir_1.getCodegenTempDir)(cwd), 'tsconfig.eslint.json');
103
+ await fileSystemHelpers_1.fileSystemHelpers.writeFile(tempPath, `${JSON.stringify(tempConfig, null, 2)}\n`);
104
+ return tempPath;
105
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/core/Context.ts"],"names":[],"mappings":"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"}
@@ -223,17 +223,13 @@ class Context {
223
223
  return ref;
224
224
  // Prefer explicit parent if provided
225
225
  if (parentSourceFile) {
226
- const normalizedParent = (0, path_1.isAbsolute)(parentSourceFile)
227
- ? parentSourceFile
228
- : (0, pathHelpers_1.resolveHelper)(this.specRoot, parentSourceFile);
226
+ const normalizedParent = (0, path_1.isAbsolute)(parentSourceFile) ? parentSourceFile : (0, pathHelpers_1.resolveHelper)(this.specRoot, parentSourceFile);
229
227
  return (0, normalizeRef_1.normalizeRef)(ref, normalizedParent);
230
228
  }
231
229
  // If we can fall back to entry file, normalize relative refs against it
232
230
  if (this.entryFile) {
233
231
  const parsed = (0, parseRef_1.parseRef)(ref);
234
- if (parsed.type === parseRef_1.RefType.LOCAL_FRAGMENT ||
235
- parsed.type === parseRef_1.RefType.EXTERNAL_FILE ||
236
- parsed.type === parseRef_1.RefType.EXTERNAL_FILE_FRAGMENT) {
232
+ if (parsed.type === parseRef_1.RefType.LOCAL_FRAGMENT || parsed.type === parseRef_1.RefType.EXTERNAL_FILE || parsed.type === parseRef_1.RefType.EXTERNAL_FILE_FRAGMENT) {
237
233
  return (0, normalizeRef_1.normalizeRef)(ref, this.entryFile);
238
234
  }
239
235
  }
@@ -1,9 +1,15 @@
1
1
  import { TRawOptions } from '../common/TRawOptions';
2
2
  import { WriteClient } from './WriteClient';
3
+ /**
4
+ * Оркестратор генерации OpenAPI-клиента: парсинг спецификации, применение diff-отчёта и запись артефактов.
5
+ */
3
6
  export declare class OpenApiClient {
4
7
  private static readonly CACHE_FINGERPRINT_VERSION;
5
8
  private static readonly DEFAULT_CACHE_FILENAME;
6
9
  private _writeClient;
10
+ /** ESLint paths from top-level rawOptions (not per items[] entry). */
11
+ private eslintFixOptions;
12
+ /** Экземпляр WriteClient для записи сгенерированных файлов. */
7
13
  get writeClient(): WriteClient;
8
14
  private normalizeOptions;
9
15
  private addDefaultValues;
@@ -19,8 +25,17 @@ export declare class OpenApiClient {
19
25
  private getCacheKey;
20
26
  private getCacheFingerprint;
21
27
  private filesExist;
28
+ /**
29
+ * Runs batch ESLint fix after combineAndWrite / combineAndWrightSimple when both paths are set.
30
+ * Warns and skips when only one path is provided; always clears the WriteClient lint registry.
31
+ */
32
+ private runBatchEslintFixIfEnabled;
22
33
  private loadDiffReportIfNeeded;
23
34
  private applyDiffReportIfNeeded;
35
+ /**
36
+ * Запускает генерацию клиента по опциям CLI или конфигурации.
37
+ * @param rawOptions сырые опции генерации
38
+ */
24
39
  generate(rawOptions: TRawOptions): Promise<void>;
25
40
  }
26
41
  //# sourceMappingURL=OpenApiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AAyBtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IAC/E,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAgFxB,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,cAAc;YAaR,mBAAmB;YASnB,2BAA2B;YA+B3B,oBAAoB;IA2DlC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,+BAA+B;YAiBzB,cAAc;IA0L5B,OAAO,CAAC,WAAW;YAaL,mBAAmB;YAiCnB,UAAU;YAUV,sBAAsB;IASpC,OAAO,CAAC,uBAAuB;IAczB,QAAQ,CAAC,UAAU,EAAE,WAAW;CAWzC"}
1
+ {"version":3,"file":"OpenApiClient.d.ts","sourceRoot":"","sources":["../../src/core/OpenApiClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,WAAW,EAAsB,MAAM,uBAAuB,CAAC;AA2BtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IAC/E,OAAO,CAAC,YAAY,CAA4B;IAChD,sEAAsE;IACtE,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,+DAA+D;IAC/D,IAAW,WAAW,gBAKrB;IAED,OAAO,CAAC,gBAAgB;IAkFxB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,cAAc;YAaR,mBAAmB;YASnB,2BAA2B;YA+B3B,oBAAoB;IA8DlC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,+BAA+B;YAiBzB,cAAc;IA0L5B,OAAO,CAAC,WAAW;YAaL,mBAAmB;YAiCnB,UAAU;IAUxB;;;OAGG;YACW,0BAA0B;YAwC1B,sBAAsB;IASpC,OAAO,CAAC,uBAAuB;IAe/B;;;OAGG;IACG,QAAQ,CAAC,UAAU,EAAE,WAAW;CAYzC"}