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
package/README.md CHANGED
@@ -31,6 +31,13 @@
31
31
  - Supports generator plugins (`plugins`) including built-in `x-typescript-type`
32
32
  - Supports binary request/response generation (`format: binary` -> `Blob`)
33
33
  - Supports opt-in generation cache and incremental writes (`--cache`, `--cachePath`, `--cacheStrategy`, `--cacheDebug`)
34
+ - Generated services accept a `RequestExecutor` in the constructor (`request` / `requestRaw`, interceptors, `customExecutorPath` / `createExecutorAdapter`)
35
+ - Optional output formatting via `prettierConfigPath` (explicit Prettier config file)
36
+ - Optional batch ESLint `--fix` after generation when both `tsconfigPath` and `eslintConfigPath` are set
37
+ - Supports unified `analyze-diff` report (`schemaVersion: 2.0.0`) with separate `semantic` (CI/governance) and `structural` (generation) sections
38
+ - Restores `generate --useHistory` compatibility with semantic diff reports (ghost operations/properties, coercion, rename miracles)
39
+ - Uses selective OpenAPI `$ref` expansion in analyze-diff for faster and safer comparison
40
+ - Automatic RENAME / TYPE_COERCION miracle detection from semantic property changes
34
41
 
35
42
  ## Install
36
43
 
package/README.rus.md CHANGED
@@ -31,6 +31,13 @@
31
31
  - Поддерживает плагины генератора (`plugins`), включая встроенный `x-typescript-type`
32
32
  - Поддерживает генерацию бинарных request/response (`format: binary` -> `Blob`)
33
33
  - Поддерживает opt-in кэш генерации и инкрементальную запись (`--cache`, `--cachePath`, `--cacheStrategy`, `--cacheDebug`)
34
+ - Сгенерированные сервисы принимают `RequestExecutor` в конструкторе (`request` / `requestRaw`, interceptors, `customExecutorPath` / `createExecutorAdapter`)
35
+ - Опциональное форматирование вывода через `prettierConfigPath` (явный путь к конфигу Prettier)
36
+ - Опциональный пакетный ESLint `--fix` после генерации при указании `tsconfigPath` и `eslintConfigPath`
37
+ - Поддерживает унифицированный отчёт `analyze-diff` (`schemaVersion: 2.0.0`) с отдельными секциями `semantic` (CI/governance) и `structural` (генерация)
38
+ - Восстанавливает совместимость `generate --useHistory` с semantic diff-отчётами (ghost operations/properties, coercion, rename miracles)
39
+ - Использует селективное раскрытие OpenAPI `$ref` в analyze-diff для более быстрого и безопасного сравнения
40
+ - Автоматическое обнаружение RENAME / TYPE_COERCION miracles из semantic-изменений свойств
34
41
 
35
42
  ## Установка
36
43
 
@@ -111,12 +111,13 @@ async function runAnalyzeDiffCli(options) {
111
111
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
112
112
  const schemaValidation = (0, semanticDiffReportSchema_1.validateSemanticDiffReportSchema)(report);
113
113
  node_assert_1.default.strictEqual(schemaValidation.valid, true, schemaValidation.errors.join('\n'));
114
- node_assert_1.default.strictEqual(report.schemaVersion, '1.1.0');
115
- node_assert_1.default.strictEqual(report.summary.breaking, 0);
116
- node_assert_1.default.ok(report.summary.nonBreaking > 0);
117
- node_assert_1.default.strictEqual(report.recommendation.semver, 'minor');
118
- node_assert_1.default.ok(report.recommendation.reasons.includes('HAS_BACKWARD_COMPATIBLE_CHANGES'));
119
- node_assert_1.default.strictEqual(report.governance.summary.errors, 0);
114
+ node_assert_1.default.strictEqual(report.schemaVersion, '2.0.0');
115
+ node_assert_1.default.strictEqual(report.semantic.summary.breaking, 0);
116
+ node_assert_1.default.ok(report.semantic.summary.nonBreaking > 0);
117
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'minor');
118
+ node_assert_1.default.ok(report.semantic.recommendation.reasons.includes('HAS_BACKWARD_COMPATIBLE_CHANGES'));
119
+ node_assert_1.default.strictEqual(report.semantic.governance.summary.errors, 0);
120
+ node_assert_1.default.strictEqual(report.structural.diff.all.length, report.semantic.changes.length);
120
121
  const ciSummary = (0, ciSummary_1.formatCiMarkdownSummary)(report, reportPath);
121
122
  node_assert_1.default.ok(ciSummary.includes('### OpenAPI Semantic Diff'));
122
123
  node_assert_1.default.ok(ciSummary.includes('HAS_BACKWARD_COMPATIBLE_CHANGES'));
@@ -154,12 +155,12 @@ async function runAnalyzeDiffCli(options) {
154
155
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
155
156
  const schemaValidation = (0, semanticDiffReportSchema_1.validateSemanticDiffReportSchema)(report);
156
157
  node_assert_1.default.strictEqual(schemaValidation.valid, true, schemaValidation.errors.join('\n'));
157
- node_assert_1.default.strictEqual(report.schemaVersion, '1.1.0');
158
- node_assert_1.default.ok(report.summary.breaking > 0);
159
- node_assert_1.default.ok(report.changes.some(change => change.severity === 'breaking'));
160
- node_assert_1.default.strictEqual(report.recommendation.semver, 'major');
161
- node_assert_1.default.ok(report.recommendation.reasons.includes('HAS_BREAKING_CHANGES'));
162
- node_assert_1.default.ok(report.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
158
+ node_assert_1.default.strictEqual(report.schemaVersion, '2.0.0');
159
+ node_assert_1.default.ok(report.semantic.summary.breaking > 0);
160
+ node_assert_1.default.ok(report.semantic.changes.some(change => change.severity === 'breaking'));
161
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'major');
162
+ node_assert_1.default.ok(report.semantic.recommendation.reasons.includes('HAS_BREAKING_CHANGES'));
163
+ node_assert_1.default.ok(report.semantic.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
163
164
  const ciSummary = (0, ciSummary_1.formatCiMarkdownSummary)(report, reportPath);
164
165
  node_assert_1.default.ok(ciSummary.includes('### OpenAPI Semantic Diff'));
165
166
  node_assert_1.default.ok(ciSummary.includes('HAS_BREAKING_CHANGES'));
@@ -199,9 +200,9 @@ async function runAnalyzeDiffCli(options) {
199
200
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
200
201
  const schemaValidation = (0, semanticDiffReportSchema_1.validateSemanticDiffReportSchema)(report);
201
202
  node_assert_1.default.strictEqual(schemaValidation.valid, true, schemaValidation.errors.join('\n'));
202
- node_assert_1.default.strictEqual(report.schemaVersion, '1.1.0');
203
- node_assert_1.default.ok(report.summary.breaking > 0);
204
- node_assert_1.default.ok(!report.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
203
+ node_assert_1.default.strictEqual(report.schemaVersion, '2.0.0');
204
+ node_assert_1.default.ok(report.semantic.summary.breaking > 0);
205
+ node_assert_1.default.ok(!report.semantic.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
205
206
  node_assert_1.default.ok((0, ciSummary_1.formatCiMarkdownSummary)(report, reportPath).includes('### OpenAPI Semantic Diff'));
206
207
  });
207
208
  (0, node_test_1.test)('returns exit code 0 for breaking diff in ci mode when governance config disables no-breaking rule', async (t) => {
@@ -247,9 +248,9 @@ async function runAnalyzeDiffCli(options) {
247
248
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
248
249
  const schemaValidation = (0, semanticDiffReportSchema_1.validateSemanticDiffReportSchema)(report);
249
250
  node_assert_1.default.strictEqual(schemaValidation.valid, true, schemaValidation.errors.join('\n'));
250
- node_assert_1.default.strictEqual(report.schemaVersion, '1.1.0');
251
- node_assert_1.default.ok(report.summary.breaking > 0);
252
- node_assert_1.default.ok(!report.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
251
+ node_assert_1.default.strictEqual(report.schemaVersion, '2.0.0');
252
+ node_assert_1.default.ok(report.semantic.summary.breaking > 0);
253
+ node_assert_1.default.ok(!report.semantic.governance.violations.some(violation => violation.ruleId === 'NO_BREAKING_WITHOUT_FLAG'));
253
254
  node_assert_1.default.ok((0, ciSummary_1.formatCiMarkdownSummary)(report, reportPath).includes('### OpenAPI Semantic Diff'));
254
255
  });
255
256
  (0, node_test_1.test)('uses --compare-with over --git when both flags are provided', async (t) => {
@@ -293,8 +294,8 @@ async function runAnalyzeDiffCli(options) {
293
294
  node_assert_1.default.strictEqual(exitCode, 0);
294
295
  node_assert_1.default.strictEqual(result.success, true);
295
296
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
296
- node_assert_1.default.strictEqual(report.summary.breaking, 0);
297
- node_assert_1.default.strictEqual(report.recommendation.semver, 'patch');
297
+ node_assert_1.default.strictEqual(report.semantic.summary.breaking, 0);
298
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'patch');
298
299
  node_assert_1.default.ok(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.COMPARE_WITH_OVERRIDES_GIT('HEAD~9999').includes('Ignoring git ref'));
299
300
  });
300
301
  (0, node_test_1.test)('filters semantic changes with analyze.ignore and recalculates summary', async (t) => {
@@ -355,10 +356,10 @@ async function runAnalyzeDiffCli(options) {
355
356
  node_assert_1.default.strictEqual(exitCode, 0);
356
357
  node_assert_1.default.strictEqual(result.ignored, 1);
357
358
  const report = JSON.parse((0, node_fs_1.readFileSync)(reportPath, 'utf8'));
358
- node_assert_1.default.strictEqual(report.summary.breaking, 0);
359
- node_assert_1.default.strictEqual(report.summary.nonBreaking, 0);
360
- node_assert_1.default.strictEqual(report.summary.informational, 0);
361
- node_assert_1.default.strictEqual(report.recommendation.semver, 'patch');
359
+ node_assert_1.default.strictEqual(report.semantic.summary.breaking, 0);
360
+ node_assert_1.default.strictEqual(report.semantic.summary.nonBreaking, 0);
361
+ node_assert_1.default.strictEqual(report.semantic.summary.informational, 0);
362
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'patch');
362
363
  node_assert_1.default.ok(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.IGNORED_CHANGES(1).includes('IGNORED: 1 semantic change'));
363
364
  });
364
365
  (0, node_test_1.test)('fails when --input is missing', async () => {
@@ -371,4 +372,10 @@ async function runAnalyzeDiffCli(options) {
371
372
  node_assert_1.default.strictEqual((0, analyzeDiff_1.toAnalyzeDiffExitCode)(result), 1);
372
373
  node_assert_1.default.ok(result.error?.includes('"--input" is required for analyze-diff command'));
373
374
  });
375
+ (0, node_test_1.test)('uses semantic ref expansion instead of full dereference in the analyze hot path', () => {
376
+ const source = (0, node_fs_1.readFileSync)(node_path_1.default.join(__dirname, '..', 'analyzeDiff.ts'), 'utf8');
377
+ node_assert_1.default.ok(source.includes('loadSemanticOpenApiSpec'));
378
+ node_assert_1.default.ok(!source.includes('dereferenceOpenApiSpec'));
379
+ node_assert_1.default.ok(!source.includes('dereferenceOpenApiObject'));
380
+ });
374
381
  });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analyzeDiffLomMiracles.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeDiffLomMiracles.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
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
+ const node_assert_1 = __importDefault(require("node:assert"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const node_test_1 = require("node:test");
10
+ const silenceLoggers_1 = require("../../../test/helpers/silenceLoggers");
11
+ const analyzeDiff_1 = require("../analyzeDiff");
12
+ const generatedRoot = node_path_1.default.join(__dirname, 'generated');
13
+ const createTempDir = (t, prefix) => {
14
+ node_fs_1.default.mkdirSync(generatedRoot, { recursive: true });
15
+ const tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(generatedRoot, prefix));
16
+ t.after(() => {
17
+ node_fs_1.default.rmSync(tempDir, { recursive: true, force: true });
18
+ });
19
+ return tempDir;
20
+ };
21
+ (0, node_test_1.describe)('@unit: analyzeDiff lom miracles', () => {
22
+ let restoreAppLogger;
23
+ (0, node_test_1.beforeEach)(() => {
24
+ restoreAppLogger = (0, silenceLoggers_1.installSilenceAppLogger)();
25
+ });
26
+ (0, node_test_1.afterEach)(() => {
27
+ restoreAppLogger?.();
28
+ restoreAppLogger = undefined;
29
+ });
30
+ (0, node_test_1.test)('builds changes and miracles for lom v1 vs v2 specs', async (t) => {
31
+ const tmpDir = createTempDir(t, 'lom-diff-');
32
+ const reportPath = node_path_1.default.join(tmpDir, 'report.json');
33
+ const specRoot = node_path_1.default.join(__dirname, '../../../../test/spec/lom');
34
+ const result = await (0, analyzeDiff_1.analyzeDiff)({
35
+ input: node_path_1.default.join(specRoot, 'lom_api.v2.yaml'),
36
+ compareWith: node_path_1.default.join(specRoot, 'lom_api.v1.yaml'),
37
+ outputReport: reportPath,
38
+ });
39
+ node_assert_1.default.ok(result.success, result.error);
40
+ const report = JSON.parse(node_fs_1.default.readFileSync(reportPath, 'utf-8'));
41
+ node_assert_1.default.ok(report.semantic.changes.length > 0, 'expected semantic changes');
42
+ node_assert_1.default.ok(report.structural.miracles.length > 0, 'expected miracles in report');
43
+ node_assert_1.default.ok(report.structural.miracles.some(miracle => miracle.type === 'RENAME'));
44
+ node_assert_1.default.ok(report.structural.miracles.some(miracle => miracle.type === 'TYPE_COERCION'));
45
+ node_assert_1.default.ok(report.semantic.changes.some(change => change.type === 'model.property.type.changed'));
46
+ });
47
+ });
@@ -75,12 +75,13 @@ const createTempDir = (t, prefix) => {
75
75
  node_assert_1.default.ok(result.success, `analyzeDiff failed: ${result.error ?? 'unknown'}`);
76
76
  const reportRaw = node_fs_1.default.readFileSync(reportPath, 'utf-8');
77
77
  const report = JSON.parse(reportRaw);
78
- const removed = report.changes.find(change => change.type === 'model.property.removed' && change.path === '#/components/schemas/User/properties/first_name');
79
- const added = report.changes.find(change => change.type === 'model.property.added' && change.path === '#/components/schemas/User/properties/firstName');
78
+ const removed = report.semantic.changes.find(change => change.type === 'model.property.removed' && change.path === '#/components/schemas/User/properties/first_name');
79
+ const added = report.semantic.changes.find(change => change.type === 'model.property.added' && change.path === '#/components/schemas/User/properties/firstName');
80
80
  node_assert_1.default.ok(removed, 'Expected semantic removal entry for previous property');
81
81
  node_assert_1.default.ok(added, 'Expected semantic addition entry for renamed property');
82
82
  node_assert_1.default.strictEqual(removed?.severity, 'breaking');
83
83
  node_assert_1.default.strictEqual(added?.severity, 'non-breaking');
84
+ node_assert_1.default.ok(report.structural.miracles.some(miracle => miracle.type === 'RENAME'));
84
85
  });
85
86
  (0, node_test_1.test)('invalid regex in config does not crash and valid rules still apply', async (t) => {
86
87
  const tmpDir = createTempDir(t, 'openapi-diff-invalidregex-');
@@ -141,11 +142,11 @@ const createTempDir = (t, prefix) => {
141
142
  node_assert_1.default.ok(result.success, `analyzeDiff failed: ${result.error ?? 'unknown'}`);
142
143
  const reportRaw = node_fs_1.default.readFileSync(reportPath, 'utf-8');
143
144
  const report = JSON.parse(reportRaw);
144
- const filteredTypeChange = report.changes.find(change => change.type === 'model.property.type.changed' && change.path === '#/components/schemas/User/properties/age');
145
+ const filteredTypeChange = report.semantic.changes.find(change => change.type === 'model.property.type.changed' && change.path === '#/components/schemas/User/properties/age');
145
146
  node_assert_1.default.ok(!filteredTypeChange, 'Expected matching semantic change to be filtered by valid rule while invalid regex is ignored');
146
- node_assert_1.default.strictEqual(report.summary.breaking, 0);
147
- node_assert_1.default.strictEqual(report.summary.nonBreaking, 0);
148
- node_assert_1.default.strictEqual(report.summary.informational, 0);
149
- node_assert_1.default.strictEqual(report.recommendation.semver, 'patch');
147
+ node_assert_1.default.strictEqual(report.semantic.summary.breaking, 0);
148
+ node_assert_1.default.strictEqual(report.semantic.summary.nonBreaking, 0);
149
+ node_assert_1.default.strictEqual(report.semantic.summary.informational, 0);
150
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'patch');
150
151
  });
151
152
  });
@@ -75,11 +75,12 @@ const createTempDir = (t, prefix) => {
75
75
  node_assert_1.default.ok(result.success, `analyzeDiff failed: ${result.error ?? 'unknown error'}`);
76
76
  const reportRaw = node_fs_1.default.readFileSync(reportPath, 'utf-8');
77
77
  const report = JSON.parse(reportRaw);
78
- const typeChange = report.changes.find(change => change.type === 'model.property.type.changed');
78
+ const typeChange = report.semantic.changes.find(change => change.type === 'model.property.type.changed');
79
79
  node_assert_1.default.ok(typeChange, 'Expected semantic type-change entry');
80
80
  node_assert_1.default.strictEqual(typeChange?.path, '#/components/schemas/User/properties/age');
81
81
  node_assert_1.default.strictEqual(typeChange?.severity, 'breaking');
82
- node_assert_1.default.ok(report.summary.breaking > 0);
82
+ node_assert_1.default.ok(report.semantic.summary.breaking > 0);
83
+ node_assert_1.default.ok(report.structural.miracles.some(miracle => miracle.type === 'TYPE_COERCION'));
83
84
  });
84
85
  (0, node_test_1.test)('filters semantic type-change entry when rule matches path', async (t) => {
85
86
  const tmpDir = createTempDir(t, 'openapi-diff-test-');
@@ -136,11 +137,11 @@ const createTempDir = (t, prefix) => {
136
137
  node_assert_1.default.ok(result.success, `analyzeDiff failed: ${result.error ?? 'unknown error'}`);
137
138
  const reportRaw = node_fs_1.default.readFileSync(reportPath, 'utf-8');
138
139
  const report = JSON.parse(reportRaw);
139
- const filteredTypeChange = report.changes.find(change => change.type === 'model.property.type.changed' && change.path === '#/components/schemas/User/properties/age');
140
+ const filteredTypeChange = report.semantic.changes.find(change => change.type === 'model.property.type.changed' && change.path === '#/components/schemas/User/properties/age');
140
141
  node_assert_1.default.ok(!filteredTypeChange, 'Expected semantic type-change to be filtered by analyze.ignore');
141
- node_assert_1.default.strictEqual(report.summary.breaking, 0);
142
- node_assert_1.default.strictEqual(report.summary.nonBreaking, 0);
143
- node_assert_1.default.strictEqual(report.summary.informational, 0);
144
- node_assert_1.default.strictEqual(report.recommendation.semver, 'patch');
142
+ node_assert_1.default.strictEqual(report.semantic.summary.breaking, 0);
143
+ node_assert_1.default.strictEqual(report.semantic.summary.nonBreaking, 0);
144
+ node_assert_1.default.strictEqual(report.semantic.summary.informational, 0);
145
+ node_assert_1.default.strictEqual(report.semantic.recommendation.semver, 'patch');
145
146
  });
146
147
  });
@@ -1,4 +1,12 @@
1
1
  import { OptionValues } from 'commander';
2
+ /**
3
+ * Результат выполнения команды analyze-diff.
4
+ * @property success признак успешного завершения
5
+ * @property [skipped] анализ пропущен из-за отсутствия базовой спецификации
6
+ * @property [reportPath] абсолютный путь к сохранённому отчёту
7
+ * @property [ignored] количество проигнорированных изменений
8
+ * @property [error] текст ошибки при неуспешном завершении
9
+ */
2
10
  export type AnalyzeDiffResult = {
3
11
  success: boolean;
4
12
  skipped?: boolean;
@@ -7,11 +15,15 @@ export type AnalyzeDiffResult = {
7
15
  error?: string;
8
16
  };
9
17
  /**
10
- * Maps analyze-diff result to a process exit code. Does not call `process.exit`.
18
+ * Преобразует результат analyze-diff в код выхода процесса. Не вызывает `process.exit`.
19
+ * @param result результат выполнения analyze-diff
20
+ * @returns код выхода: 0 при успехе, 1 при ошибке
11
21
  */
12
22
  export declare function toAnalyzeDiffExitCode(result: AnalyzeDiffResult): number;
13
23
  /**
14
- * Runs semantic diff analysis between two OpenAPI specs and writes JSON report.
24
+ * Выполняет семантическое сравнение двух OpenAPI-спецификаций и записывает JSON-отчёт.
25
+ * @param options опции CLI команды analyze-diff
26
+ * @returns результат выполнения с путём к отчёту или описанием ошибки
15
27
  */
16
28
  export declare function analyzeDiff(options: OptionValues): Promise<AnalyzeDiffResult>;
17
29
  //# sourceMappingURL=analyzeDiff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeDiff.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/analyzeDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAoBzC,MAAM,MAAM,iBAAiB,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuFnF"}
1
+ {"version":3,"file":"analyzeDiff.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/analyzeDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAuBzC;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEvE;AAqBD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuGnF"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.toAnalyzeDiffExitCode = toAnalyzeDiffExitCode;
4
7
  exports.analyzeDiff = analyzeDiff;
8
+ const crypto_1 = __importDefault(require("crypto"));
5
9
  const Consts_1 = require("../../common/Consts");
6
10
  const LoggerMessages_1 = require("../../common/LoggerMessages");
7
11
  const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
@@ -10,7 +14,10 @@ const loadGovernanceConfig_1 = require("../../core/governance/loadGovernanceConf
10
14
  const applySemanticDiffPluginHooks_1 = require("../../core/plugins/applySemanticDiffPluginHooks");
11
15
  const loadGeneratorPlugins_1 = require("../../core/plugins/loadGeneratorPlugins");
12
16
  const analyzeOpenApiDiff_1 = require("../../core/semanticDiff/analyzeOpenApiDiff");
13
- const getOpenApiSpec_1 = require("../../core/utils/getOpenApiSpec");
17
+ const DiffReport_model_1 = require("../../core/types/DiffReport.model");
18
+ const adapters_1 = require("../../core/utils/adapters");
19
+ const buildMiraclesFromSemanticChanges_1 = require("../../core/utils/buildMiraclesFromSemanticChanges");
20
+ const loadSemanticOpenApiSpec_1 = require("../../core/utils/loadSemanticOpenApiSpec");
14
21
  const schemas_1 = require("../schemas");
15
22
  const ciSummary_1 = require("./ciSummary");
16
23
  const ignoreRules_1 = require("./ignoreRules");
@@ -19,13 +26,33 @@ const pluginPaths_1 = require("./pluginPaths");
19
26
  const semanticDiffContext_1 = require("./semanticDiffContext");
20
27
  const specParser_1 = require("./specParser");
21
28
  /**
22
- * Maps analyze-diff result to a process exit code. Does not call `process.exit`.
29
+ * Преобразует результат analyze-diff в код выхода процесса. Не вызывает `process.exit`.
30
+ * @param result результат выполнения analyze-diff
31
+ * @returns код выхода: 0 при успехе, 1 при ошибке
23
32
  */
24
33
  function toAnalyzeDiffExitCode(result) {
25
34
  return result.success ? 0 : 1;
26
35
  }
36
+ function createSpecHash(spec) {
37
+ const seen = new WeakSet();
38
+ const serializedSpec = JSON.stringify(spec, (_key, value) => {
39
+ if (value && typeof value === 'object') {
40
+ if (seen.has(value)) {
41
+ return '[Circular]';
42
+ }
43
+ seen.add(value);
44
+ }
45
+ return value;
46
+ });
47
+ return crypto_1.default
48
+ .createHash('sha256')
49
+ .update(serializedSpec ?? '')
50
+ .digest('hex');
51
+ }
27
52
  /**
28
- * Runs semantic diff analysis between two OpenAPI specs and writes JSON report.
53
+ * Выполняет семантическое сравнение двух OpenAPI-спецификаций и записывает JSON-отчёт.
54
+ * @param options опции CLI команды analyze-diff
55
+ * @returns результат выполнения с путём к отчёту или описанием ошибки
29
56
  */
30
57
  async function analyzeDiff(options) {
31
58
  const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.analyzeDiffOptionsSchema, options);
@@ -46,11 +73,9 @@ async function analyzeDiff(options) {
46
73
  }
47
74
  const baseSourceLabel = oldSpecInput ? `compare-with:${oldSpecInput}` : `git:${gitRef}`;
48
75
  Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.STARTED(newSpecInput, baseSourceLabel));
49
- const newContext = (0, semanticDiffContext_1.createSemanticDiffContext)(newSpecInput);
50
- const newSpec = await (0, getOpenApiSpec_1.getOpenApiSpec)(newContext, newSpecInput);
51
- const oldSpec = oldSpecInput
52
- ? await (0, getOpenApiSpec_1.getOpenApiSpec)((0, semanticDiffContext_1.createSemanticDiffContext)(oldSpecInput), oldSpecInput)
53
- : (await (0, specParser_1.readSpecFromGit)(gitRef, newSpecInput));
76
+ (0, semanticDiffContext_1.createSemanticDiffContext)(newSpecInput);
77
+ const newSpec = await (0, loadSemanticOpenApiSpec_1.loadSemanticOpenApiSpec)(newSpecInput);
78
+ const oldSpec = oldSpecInput ? await (0, loadSemanticOpenApiSpec_1.loadSemanticOpenApiSpec)(oldSpecInput) : await (0, loadSemanticOpenApiSpec_1.loadSemanticOpenApiObject)(await (0, specParser_1.readSpecFromGit)(gitRef, newSpecInput), newSpecInput);
54
79
  if (oldSpecInput && validatedOptions.git) {
55
80
  Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.COMPARE_WITH_OVERRIDES_GIT(validatedOptions.git));
56
81
  }
@@ -72,7 +97,7 @@ async function analyzeDiff(options) {
72
97
  },
73
98
  });
74
99
  const { report: reportAfterIgnore, ignored } = (0, ignoreSemanticChanges_1.filterSemanticChangesByIgnoreRules)(pluginHooksResult.report, ignoreRules);
75
- const report = {
100
+ const semanticReport = {
76
101
  ...reportAfterIgnore,
77
102
  governance: (0, evaluateGovernanceRules_1.evaluateGovernanceRules)({
78
103
  openApi: newSpec,
@@ -80,19 +105,37 @@ async function analyzeDiff(options) {
80
105
  allowBreaking: validatedOptions.allowBreaking ?? false,
81
106
  governanceConfig: governancePolicy,
82
107
  }),
108
+ miracles: (0, buildMiraclesFromSemanticChanges_1.buildMiraclesFromSemanticChanges)(reportAfterIgnore.changes),
109
+ };
110
+ const report = {
111
+ schemaVersion: DiffReport_model_1.UNIFIED_DIFF_REPORT_SCHEMA_VERSION,
112
+ timestamp: new Date().toISOString(),
113
+ metadata: {
114
+ base: baseSourceLabel,
115
+ target: newSpecInput,
116
+ baseHash: createSpecHash(oldSpec),
117
+ targetHash: createSpecHash(newSpec),
118
+ },
119
+ semantic: {
120
+ changes: semanticReport.changes,
121
+ governance: semanticReport.governance,
122
+ recommendation: semanticReport.recommendation,
123
+ summary: semanticReport.summary,
124
+ },
125
+ structural: (0, adapters_1.adaptSemanticToStructural)(semanticReport, ignored),
83
126
  };
84
127
  const reportPath = await (0, analyzeOpenApiDiff_1.writeSemanticDiffReport)(report, pluginHooksResult.reportPath);
85
128
  Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.REPORT_CREATED(reportPath));
86
- Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.SUMMARY(report, reportPath));
87
- Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.RECOMMENDATION(report));
88
- Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.GOVERNANCE(report));
129
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.SUMMARY(semanticReport, reportPath));
130
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.RECOMMENDATION(semanticReport));
131
+ Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.GOVERNANCE(semanticReport));
89
132
  if (ignored > 0) {
90
133
  Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.IGNORED_CHANGES(ignored));
91
134
  }
92
135
  if (validatedOptions.ci) {
93
136
  Consts_1.APP_LOGGER.info(LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.CI_MARKDOWN_SUMMARY((0, ciSummary_1.formatCiMarkdownSummary)(report, reportPath)));
94
137
  }
95
- if (validatedOptions.ci && report.governance.summary.errors > 0) {
138
+ if (validatedOptions.ci && semanticReport.governance.summary.errors > 0) {
96
139
  return { success: false, reportPath, error: LoggerMessages_1.LOGGER_MESSAGES.ANALYZE_DIFF.CI_FAILURE };
97
140
  }
98
141
  return { success: true, reportPath, ignored };
@@ -1,6 +1,9 @@
1
- import { SemanticDiffReport } from '../../core/semanticDiff/analyzeOpenApiDiff';
1
+ import type { UnifiedDiffReport } from '../../core/types/DiffReport.model';
2
2
  /**
3
- * Builds markdown summary for CI logs.
3
+ * Формирует markdown-сводку семантического diff для CI-логов.
4
+ * @param report унифицированный diff-отчёт
5
+ * @param reportPath путь к сохранённому отчёту
6
+ * @returns markdown-текст для вывода в CI
4
7
  */
5
- export declare function formatCiMarkdownSummary(report: SemanticDiffReport, reportPath: string): string;
8
+ export declare function formatCiMarkdownSummary(report: UnifiedDiffReport, reportPath: string): string;
6
9
  //# sourceMappingURL=ciSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ciSummary.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/ciSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAc9F"}
1
+ {"version":3,"file":"ciSummary.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/ciSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAe7F"}
@@ -2,19 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatCiMarkdownSummary = formatCiMarkdownSummary;
4
4
  /**
5
- * Builds markdown summary for CI logs.
5
+ * Формирует markdown-сводку семантического diff для CI-логов.
6
+ * @param report унифицированный diff-отчёт
7
+ * @param reportPath путь к сохранённому отчёту
8
+ * @returns markdown-текст для вывода в CI
6
9
  */
7
10
  function formatCiMarkdownSummary(report, reportPath) {
8
- const reasons = report.recommendation.reasons.map(reason => `- \`${reason}\``).join('\n');
11
+ const semantic = report.semantic;
12
+ const reasons = semantic.recommendation.reasons.map(reason => `- \`${reason}\``).join('\n');
9
13
  return [
10
14
  '### OpenAPI Semantic Diff',
11
15
  `- Report: \`${reportPath}\``,
12
16
  `- Schema Version: \`${report.schemaVersion}\``,
13
- `- Recommendation: \`${report.recommendation.semver}\` (confidence: \`${report.recommendation.confidence}\`)`,
14
- `- Reason: ${report.recommendation.reason}`,
17
+ `- Recommendation: \`${semantic.recommendation.semver}\` (confidence: \`${semantic.recommendation.confidence}\`)`,
18
+ `- Reason: ${semantic.recommendation.reason}`,
15
19
  '- Reason Codes:',
16
20
  reasons,
17
- `- Summary: breaking=\`${report.summary.breaking}\`, nonBreaking=\`${report.summary.nonBreaking}\`, informational=\`${report.summary.informational}\``,
18
- `- Governance: errors=\`${report.governance.summary.errors}\`, warnings=\`${report.governance.summary.warnings}\`, info=\`${report.governance.summary.info}\``,
21
+ `- Summary: breaking=\`${semantic.summary.breaking}\`, nonBreaking=\`${semantic.summary.nonBreaking}\`, informational=\`${semantic.summary.informational}\``,
22
+ `- Governance: errors=\`${semantic.governance.summary.errors}\`, warnings=\`${semantic.governance.summary.warnings}\`, info=\`${semantic.governance.summary.info}\``,
19
23
  ].join('\n');
20
24
  }
@@ -1,10 +1,4 @@
1
1
  import type { DiffEntry, IgnoreRule } from './types';
2
- /**
3
- * Проверяет, активно ли правило игнорирования по полю `until`.
4
- * @param rule правило игнорирования
5
- * @returns true если правило активно или не содержит валидной даты
6
- */
7
- export declare const isRuleActive: (rule: IgnoreRule) => boolean;
8
2
  /**
9
3
  * Проверяет, соответствует ли запись diff правилу игнорирования.
10
4
  * Совмещает полное совпадение пути, префикс и регулярные выражения.
@@ -1 +1 @@
1
- {"version":3,"file":"ignoreRules.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/ignoreRules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,UAAU,KAAG,OAK/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,EAAE,MAAM,UAAU,KAAG,OAkBtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,EAAE,EAAE,OAAO,UAAU,EAAE,KAAG;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAapH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACjC,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,KAC/D,UAAU,EAOZ,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,oBAAoB,MAAM,KAAG,UAAU,EAGtE,CAAC"}
1
+ {"version":3,"file":"ignoreRules.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/ignoreRules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAcrD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,EAAE,MAAM,UAAU,KAAG,OAkBtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,EAAE,EAAE,OAAO,UAAU,EAAE,KAAG;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAapH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,KAAG,UAAU,EAOnH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,oBAAoB,MAAM,KAAG,UAAU,EAGtE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadIgnoreRules = exports.getIgnoreRulesFromConfig = exports.applyIgnoreRules = exports.matchesIgnoreRule = exports.isRuleActive = void 0;
3
+ exports.loadIgnoreRules = exports.getIgnoreRulesFromConfig = exports.applyIgnoreRules = exports.matchesIgnoreRule = void 0;
4
4
  const Consts_1 = require("../../common/Consts");
5
5
  const LoggerMessages_1 = require("../../common/LoggerMessages");
6
6
  const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
@@ -17,7 +17,6 @@ const isRuleActive = (rule) => {
17
17
  return true;
18
18
  return Date.now() <= timestamp;
19
19
  };
20
- exports.isRuleActive = isRuleActive;
21
20
  /**
22
21
  * Проверяет, соответствует ли запись diff правилу игнорирования.
23
22
  * Совмещает полное совпадение пути, префикс и регулярные выражения.
@@ -26,7 +25,7 @@ exports.isRuleActive = isRuleActive;
26
25
  * @returns true если правило применимо к записи
27
26
  */
28
27
  const matchesIgnoreRule = (entry, rule) => {
29
- if (!(0, exports.isRuleActive)(rule))
28
+ if (!isRuleActive(rule))
30
29
  return false;
31
30
  if (rule.path) {
32
31
  if (entry.path === rule.path)
@@ -1,3 +1,2 @@
1
- export { buildLegacyReport as buildReport } from './buildLegacyReport';
2
1
  export { writeLegacyReport as writeReportToFile } from './writeLegacyReport';
3
2
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeReportToFile = exports.buildReport = void 0;
4
- var buildLegacyReport_1 = require("./buildLegacyReport");
5
- Object.defineProperty(exports, "buildReport", { enumerable: true, get: function () { return buildLegacyReport_1.buildLegacyReport; } });
3
+ exports.writeReportToFile = void 0;
6
4
  var writeLegacyReport_1 = require("./writeLegacyReport");
7
5
  Object.defineProperty(exports, "writeReportToFile", { enumerable: true, get: function () { return writeLegacyReport_1.writeLegacyReport; } });
@@ -1,6 +1,8 @@
1
1
  import { DiffReport } from './types';
2
2
  /**
3
3
  * Сохраняет legacy report на диск и логирует summary.
4
+ * @param report legacy diff-отчёт
5
+ * @param [reportPath] путь к файлу отчёта
4
6
  */
5
7
  export declare function writeLegacyReport(report: DiffReport, reportPath?: string): void;
6
8
  //# sourceMappingURL=writeLegacyReport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeLegacyReport.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/writeLegacyReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,MAAyC,GAAG,IAAI,CASjH"}
1
+ {"version":3,"file":"writeLegacyReport.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/writeLegacyReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,MAAyC,GAAG,IAAI,CASjH"}
@@ -10,6 +10,8 @@ const Consts_1 = require("../../common/Consts");
10
10
  const logLegacyReport_1 = require("./logLegacyReport");
11
11
  /**
12
12
  * Сохраняет legacy report на диск и логирует summary.
13
+ * @param report legacy diff-отчёт
14
+ * @param [reportPath] путь к файлу отчёта
13
15
  */
14
16
  function writeLegacyReport(report, reportPath = Consts_1.DEFAULT_ANALYZE_DIFF_REPORT_PATH) {
15
17
  const reportDir = path_1.default.dirname(reportPath);
@@ -1,4 +1,4 @@
1
- import { OptionValues } from "commander";
2
- import { CLICommandResult } from "../types";
1
+ import { OptionValues } from 'commander';
2
+ import { CLICommandResult } from '../types';
3
3
  export declare const analyzeUsage: (options: OptionValues) => Promise<CLICommandResult>;
4
4
  //# sourceMappingURL=analyzeUsage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeUsage.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeUsage/analyzeUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,YAAY,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,gBAAgB,CA8DlF,CAAA"}
1
+ {"version":3,"file":"analyzeUsage.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeUsage/analyzeUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C,eAAO,MAAM,YAAY,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,gBAAgB,CAwDlF,CAAC"}