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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/README.md +27 -934
  2. package/README.rus.md +27 -934
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +40 -24
  4. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
  5. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
  6. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
  7. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +17 -7
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +17 -7
  9. package/dist/cli/analyzeDiff/analyzeDiff.d.ts +14 -2
  10. package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -1
  11. package/dist/cli/analyzeDiff/analyzeDiff.js +58 -15
  12. package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -3
  13. package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -1
  14. package/dist/cli/analyzeDiff/ciSummary.js +10 -6
  15. package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -22
  16. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  17. package/dist/cli/analyzeDiff/ignoreRules.js +3 -25
  18. package/dist/cli/analyzeDiff/miracles.d.ts +0 -54
  19. package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -1
  20. package/dist/cli/analyzeDiff/miracles.js +1 -219
  21. package/dist/cli/analyzeDiff/specParser.d.ts +0 -13
  22. package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -1
  23. package/dist/cli/analyzeDiff/specParser.js +2 -23
  24. package/dist/cli/analyzeDiff/types.d.ts +0 -42
  25. package/dist/cli/analyzeDiff/types.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
  27. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
  28. package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
  29. package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
  30. package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
  31. package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
  32. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
  33. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
  34. package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
  35. package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
  36. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
  37. package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
  38. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
  39. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
  40. package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
  41. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
  42. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
  43. package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
  44. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
  45. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
  46. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
  47. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
  48. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
  49. package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
  50. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
  51. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
  52. package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
  53. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
  54. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
  55. package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
  56. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
  57. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
  58. package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
  59. package/dist/cli/analyzeUsage/types.d.ts +52 -0
  60. package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
  61. package/dist/cli/analyzeUsage/types.js +2 -0
  62. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
  63. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
  64. package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
  65. package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
  66. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
  67. package/dist/cli/analyzeUsage/utils/report.js +85 -0
  68. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
  69. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
  70. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
  71. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
  72. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
  73. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
  74. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
  75. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  76. package/dist/cli/checkAndUpdateConfig/checkConfig.js +15 -6
  77. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
  78. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  79. package/dist/cli/checkAndUpdateConfig/updateConfig.js +8 -5
  80. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
  81. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
  82. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
  83. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
  84. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
  85. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
  86. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
  87. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
  88. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
  89. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  90. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  91. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
  92. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
  93. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
  94. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
  95. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  96. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  97. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  98. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +18 -9
  99. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +2 -5
  100. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  101. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -20
  102. package/dist/cli/index.js +45 -9
  103. package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
  104. package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
  105. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
  106. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
  107. package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
  108. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
  109. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
  110. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
  111. package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
  112. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  113. package/dist/cli/initOpenApiConfig/init.js +52 -20
  114. package/dist/cli/initOpenApiConfig/initConfig.d.ts +5 -0
  115. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  116. package/dist/cli/initOpenApiConfig/initConfig.js +8 -4
  117. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +3 -2
  118. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  119. package/dist/cli/initOpenApiConfig/initCustomRequest.js +36 -10
  120. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
  121. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
  122. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
  123. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
  124. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
  125. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
  126. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
  127. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
  128. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
  129. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
  130. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  131. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +24 -19
  132. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  133. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
  134. package/dist/cli/interactive/constants.d.ts +0 -4
  135. package/dist/cli/interactive/constants.d.ts.map +1 -1
  136. package/dist/cli/interactive/constants.js +1 -5
  137. package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
  138. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  139. package/dist/cli/previewChanges/previewChanges.js +8 -8
  140. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
  141. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
  142. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
  143. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
  144. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
  145. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
  146. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
  147. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
  148. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
  149. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
  150. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
  151. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
  152. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  153. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  154. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  155. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
  156. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
  157. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
  158. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
  159. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
  160. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
  161. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
  162. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
  163. package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
  164. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
  165. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
  166. package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
  167. package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
  168. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
  169. package/dist/cli/schemas/analyzeUsage.js +41 -0
  170. package/dist/cli/schemas/generate.d.ts +10 -2
  171. package/dist/cli/schemas/generate.d.ts.map +1 -1
  172. package/dist/cli/schemas/generate.js +7 -2
  173. package/dist/cli/schemas/index.d.ts +2 -2
  174. package/dist/cli/schemas/index.d.ts.map +1 -1
  175. package/dist/cli/schemas/index.js +1 -1
  176. package/dist/cli/schemas/init.d.ts +10 -0
  177. package/dist/cli/schemas/init.d.ts.map +1 -1
  178. package/dist/cli/schemas/init.js +3 -1
  179. package/dist/cli/types.d.ts +6 -0
  180. package/dist/cli/types.d.ts.map +1 -0
  181. package/dist/cli/types.js +2 -0
  182. package/dist/common/Consts.d.ts +1 -0
  183. package/dist/common/Consts.d.ts.map +1 -1
  184. package/dist/common/Consts.js +7 -3
  185. package/dist/common/Logger.d.ts.map +1 -1
  186. package/dist/common/Logger.js +3 -3
  187. package/dist/common/LoggerMessages.d.ts +71 -12
  188. package/dist/common/LoggerMessages.d.ts.map +1 -1
  189. package/dist/common/LoggerMessages.js +76 -18
  190. package/dist/common/TEslintFixOptions.d.ts +20 -0
  191. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  192. package/dist/common/TEslintFixOptions.js +15 -0
  193. package/dist/common/TRawOptions.d.ts.map +1 -1
  194. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  195. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  196. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  197. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  198. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  199. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  200. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  201. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  202. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  203. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  204. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  205. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +10 -2
  206. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  207. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +15 -5
  208. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +18 -4
  209. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  210. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  211. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  212. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  213. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  214. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  215. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  216. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  217. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  218. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  219. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  220. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  221. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  222. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  223. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  224. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  225. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +7 -1
  226. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  227. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  228. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  229. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  230. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  231. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  232. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  233. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  234. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
  235. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  236. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  237. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +6 -8
  238. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  239. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  240. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  241. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  242. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  243. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  244. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  245. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  246. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  247. package/dist/common/utils/__tests__/format.test.js +26 -17
  248. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  249. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  250. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  251. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  252. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  253. package/dist/common/utils/codegenTempDir.js +42 -0
  254. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  255. package/dist/common/utils/convertArrayToObject.js +3 -8
  256. package/dist/common/utils/eslintFix.d.ts +48 -4
  257. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  258. package/dist/common/utils/eslintFix.js +121 -15
  259. package/dist/common/utils/format.d.ts +1 -1
  260. package/dist/common/utils/format.d.ts.map +1 -1
  261. package/dist/common/utils/format.js +23 -11
  262. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  263. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  264. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  265. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  266. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  267. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  268. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  269. package/dist/core/Context.d.ts.map +1 -1
  270. package/dist/core/Context.js +2 -6
  271. package/dist/core/OpenApiClient.d.ts +27 -1
  272. package/dist/core/OpenApiClient.d.ts.map +1 -1
  273. package/dist/core/OpenApiClient.js +259 -19
  274. package/dist/core/WriteClient.d.ts +84 -17
  275. package/dist/core/WriteClient.d.ts.map +1 -1
  276. package/dist/core/WriteClient.js +96 -22
  277. package/dist/core/__tests__/WriteClient.test.js +2 -1
  278. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  279. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  280. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  281. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  282. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  283. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  284. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  285. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  286. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  287. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  288. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  289. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  290. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  291. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  292. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -1
  293. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -1
  294. package/dist/core/plugins/loadGeneratorPlugins.js +1 -1
  295. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
  296. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
  297. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
  298. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  299. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
  300. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +8 -3
  301. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  302. package/dist/core/semanticDiff/semanticDiffReportSchema.js +139 -56
  303. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  304. package/dist/core/types/Consts.js +1 -1
  305. package/dist/core/types/DiffReport.model.d.ts +101 -0
  306. package/dist/core/types/DiffReport.model.d.ts.map +1 -0
  307. package/dist/core/types/DiffReport.model.js +5 -0
  308. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  309. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  310. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  311. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  312. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  313. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  314. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  315. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  316. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  317. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  318. package/dist/core/types/base/Templates.model.d.ts +1 -0
  319. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  320. package/dist/core/types/shared/Client.model.d.ts +1 -1
  321. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  322. package/dist/core/types/shared/Model.model.d.ts +37 -1
  323. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  324. package/dist/core/utils/GenerationCache.d.ts +18 -0
  325. package/dist/core/utils/GenerationCache.d.ts.map +1 -0
  326. package/dist/core/utils/GenerationCache.js +41 -0
  327. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  328. package/dist/core/utils/__mocks__/templates.js +1 -0
  329. package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
  330. package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
  331. package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
  332. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
  333. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
  334. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
  335. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
  336. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
  337. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
  338. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
  339. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
  340. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
  341. package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
  342. package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
  343. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  344. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  345. package/dist/core/utils/__tests__/prepareDtoModels.test.js +168 -1
  346. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  347. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
  348. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
  349. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
  350. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
  351. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
  352. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
  353. package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
  354. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  355. package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
  356. package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
  357. package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
  358. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
  359. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
  360. package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
  361. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
  362. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
  363. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
  364. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
  365. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
  366. package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
  367. package/dist/core/utils/adapters/index.d.ts +3 -0
  368. package/dist/core/utils/adapters/index.d.ts.map +1 -0
  369. package/dist/core/utils/adapters/index.js +6 -0
  370. package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
  371. package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
  372. package/dist/core/utils/adapters/semanticToStructural.js +36 -0
  373. package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
  374. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  375. package/dist/core/utils/applyDiffReportToClient.js +189 -109
  376. package/dist/core/utils/areEqual.d.ts +1 -1
  377. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
  378. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
  379. package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
  380. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
  381. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
  382. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
  383. package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
  384. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  385. package/dist/core/utils/getOpenApiSpec.js +6 -0
  386. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  387. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  388. package/dist/core/utils/getOperationResults.d.ts +1 -1
  389. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  390. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  391. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  392. package/dist/core/utils/loadDiffReport.d.ts +11 -30
  393. package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
  394. package/dist/core/utils/loadDiffReport.js +75 -9
  395. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
  396. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
  397. package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
  398. package/dist/core/utils/modelHelpers.d.ts +13 -5
  399. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  400. package/dist/core/utils/modelHelpers.js +28 -23
  401. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  402. package/dist/core/utils/normalizeString.js +1 -5
  403. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  404. package/dist/core/utils/postProcessServiceImports.js +1 -3
  405. package/dist/core/utils/precompileTemplates.js +4 -2
  406. package/dist/core/utils/prepareAlias.d.ts +1 -1
  407. package/dist/core/utils/prepareDtoModels.d.ts +5 -0
  408. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  409. package/dist/core/utils/prepareDtoModels.js +57 -20
  410. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  411. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  412. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  413. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  414. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  415. package/dist/core/utils/registerHandlebarTemplates.js +2 -0
  416. package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
  417. package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
  418. package/dist/core/utils/resolveClassesModeTypes.js +77 -0
  419. package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
  420. package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
  421. package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
  422. package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
  423. package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
  424. package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
  425. package/dist/core/utils/serviceHelpers.d.ts +6 -7
  426. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  427. package/dist/core/utils/serviceHelpers.js +8 -25
  428. package/dist/core/utils/sortModelByName.d.ts +1 -1
  429. package/dist/core/utils/validateRawOptions.js +2 -2
  430. package/dist/core/utils/writeClientCore.d.ts +2 -0
  431. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  432. package/dist/core/utils/writeClientCore.js +43 -21
  433. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  434. package/dist/core/utils/writeClientCoreIndex.js +14 -4
  435. package/dist/core/utils/writeClientExecutor.d.ts +1 -3
  436. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  437. package/dist/core/utils/writeClientExecutor.js +6 -11
  438. package/dist/core/utils/writeClientFullIndex.js +4 -4
  439. package/dist/core/utils/writeClientModels.d.ts +1 -2
  440. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  441. package/dist/core/utils/writeClientModels.js +14 -16
  442. package/dist/core/utils/writeClientModelsIndex.d.ts +1 -1
  443. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  444. package/dist/core/utils/writeClientModelsIndex.js +14 -4
  445. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  446. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  447. package/dist/core/utils/writeClientSchemas.js +9 -14
  448. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
  449. package/dist/core/utils/writeClientSchemasIndex.js +14 -4
  450. package/dist/core/utils/writeClientServices.d.ts +15 -16
  451. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  452. package/dist/core/utils/writeClientServices.js +12 -19
  453. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
  454. package/dist/core/utils/writeClientServicesIndex.js +14 -4
  455. package/dist/core/utils/writeClientSimpleIndex.js +4 -4
  456. package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
  457. package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
  458. package/dist/core/utils/writeFileIfChanged.js +22 -0
  459. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
  460. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
  461. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
  462. package/dist/templatesCompiled/cli/customRequest.js +7 -7
  463. package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
  464. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  465. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
  466. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  467. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
  468. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
  469. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
  470. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
  471. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
  472. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
  473. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
  474. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  475. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
  476. package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
  477. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  478. package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
  479. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  480. package/dist/templatesCompiled/client/exportClient.js +9 -45
  481. package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
  482. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
  483. package/dist/templatesCompiled/client/exportModels.js +96 -49
  484. package/dist/templatesCompiled/client/exportService.d.ts +13 -10
  485. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  486. package/dist/templatesCompiled/client/exportService.js +95 -67
  487. package/dist/templatesCompiled/client/indexCore.js +4 -4
  488. package/dist/templatesCompiled/client/indexFull.js +8 -8
  489. package/dist/templatesCompiled/client/indexSimple.js +2 -2
  490. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  491. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  492. package/dist/templatesCompiled/client/partials/header.js +11 -2
  493. package/dist/test/helpers/silenceLoggers.d.ts +11 -0
  494. package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
  495. package/dist/test/helpers/silenceLoggers.js +88 -0
  496. package/package.json +132 -136
  497. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
  498. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
  499. package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
  500. package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
  501. package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
  502. package/dist/cli/analyzeDiff/diffEngine.js +0 -209
  503. package/dist/cli/analyzeDiff/logLegacyReport.d.ts +0 -6
  504. package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +0 -1
  505. package/dist/cli/analyzeDiff/logLegacyReport.js +0 -29
  506. package/dist/cli/analyzeDiff/report.d.ts +0 -3
  507. package/dist/cli/analyzeDiff/report.d.ts.map +0 -1
  508. package/dist/cli/analyzeDiff/report.js +0 -7
  509. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +0 -6
  510. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +0 -1
  511. package/dist/cli/analyzeDiff/writeLegacyReport.js +0 -21
  512. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
  513. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
  514. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
  515. package/dist/common/utils/normalizeObject.d.ts +0 -2
  516. package/dist/common/utils/normalizeObject.d.ts.map +0 -1
  517. package/dist/common/utils/normalizeObject.js +0 -63
  518. package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
  519. package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
  520. package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
@@ -1,7 +1,15 @@
1
1
  import { GovernancePolicyConfig, GovernanceReport } from '../governance/evaluateGovernanceRules';
2
+ import type { UnifiedDiffReport } from '../types/DiffReport.model';
2
3
  import { CommonOpenApi } from '../types/shared/CommonOpenApi.model';
4
+ import type { MiracleEntry } from '../types/shared/Miracle.model';
3
5
  type ChangeSeverity = 'breaking' | 'non-breaking' | 'informational';
4
- type SemanticDiffSummary = {
6
+ /**
7
+ * Сводка семантических изменений по уровню серьёзности.
8
+ * @property breaking количество breaking-изменений
9
+ * @property nonBreaking количество обратно совместимых изменений
10
+ * @property informational количество информационных изменений
11
+ */
12
+ export type SemanticDiffSummary = {
5
13
  breaking: number;
6
14
  nonBreaking: number;
7
15
  informational: number;
@@ -9,37 +17,81 @@ type SemanticDiffSummary = {
9
17
  type SemanticDiffSemverRecommendation = 'major' | 'minor' | 'patch';
10
18
  type SemanticDiffConfidence = 'high' | 'medium' | 'low';
11
19
  type SemanticDiffRecommendationReason = 'HAS_BREAKING_CHANGES' | 'HAS_BACKWARD_COMPATIBLE_CHANGES' | 'HAS_INFORMATIONAL_ONLY_CHANGES' | 'NO_API_SURFACE_CHANGES';
12
- type SemanticDiffRecommendation = {
20
+ /**
21
+ * Рекомендация по semver-версии на основе семантического diff.
22
+ * @property semver рекомендуемый уровень версии
23
+ * @property confidence уверенность в рекомендации
24
+ * @property reason человекочитаемое объяснение
25
+ * @property reasons машиночитаемые коды причин
26
+ */
27
+ export type SemanticDiffRecommendation = {
13
28
  semver: SemanticDiffSemverRecommendation;
14
29
  confidence: SemanticDiffConfidence;
15
30
  reason: string;
16
31
  reasons: SemanticDiffRecommendationReason[];
17
32
  };
18
- type SemanticDiffChange = {
33
+ /**
34
+ * Одно семантическое изменение OpenAPI.
35
+ * @property type тип изменения
36
+ * @property severity уровень серьёзности
37
+ * @property message описание изменения
38
+ * @property path JSON Pointer путь к изменённому элементу
39
+ * @property [from] значение до изменения
40
+ * @property [to] значение после изменения
41
+ * @property [fromRequired] обязательность до изменения
42
+ * @property [toRequired] обязательность после изменения
43
+ * @property [fromNullable] nullable до изменения
44
+ * @property [toNullable] nullable после изменения
45
+ */
46
+ export type SemanticDiffChange = {
19
47
  type: string;
20
48
  severity: ChangeSeverity;
21
49
  message: string;
22
50
  path: string;
51
+ from?: unknown;
52
+ to?: unknown;
53
+ fromRequired?: boolean;
54
+ toRequired?: boolean;
55
+ fromNullable?: boolean;
56
+ toNullable?: boolean;
23
57
  };
58
+ /** Версия схемы семантического diff-отчёта. */
24
59
  export declare const SEMANTIC_DIFF_REPORT_SCHEMA_VERSION = "1.1.0";
60
+ /**
61
+ * Семантический diff-отчёт OpenAPI.
62
+ * @property schemaVersion версия схемы отчёта
63
+ * @property summary сводка изменений по серьёзности
64
+ * @property recommendation рекомендация по semver
65
+ * @property governance результат проверки governance-правил
66
+ * @property changes список семантических изменений
67
+ * @property [miracles] кандидаты на переименование и приведение типов
68
+ */
25
69
  export type SemanticDiffReport = {
26
70
  schemaVersion: string;
27
71
  summary: SemanticDiffSummary;
28
72
  recommendation: SemanticDiffRecommendation;
29
73
  governance: GovernanceReport;
30
74
  changes: SemanticDiffChange[];
75
+ miracles?: MiracleEntry[];
31
76
  };
32
77
  type AnalyzeOpenApiDiffOptions = {
33
78
  allowBreaking?: boolean;
34
79
  governanceConfig?: GovernancePolicyConfig;
35
80
  };
36
81
  /**
37
- * Creates semantic diff report between two OpenAPI specs.
82
+ * Формирует семантический diff-отчёт между двумя OpenAPI-спецификациями.
83
+ * @param oldSpec базовая спецификация
84
+ * @param newSpec целевая спецификация
85
+ * @param [options] опции анализа, включая governance и разрешение breaking-изменений
86
+ * @returns семантический diff-отчёт
38
87
  */
39
88
  export declare function analyzeOpenApiDiff(oldSpec: CommonOpenApi, newSpec: CommonOpenApi, options?: AnalyzeOpenApiDiffOptions): SemanticDiffReport;
40
89
  /**
41
- * Writes semantic diff report to JSON file and returns absolute path.
90
+ * Записывает семантический или унифицированный diff-отчёт в JSON-файл.
91
+ * @param report отчёт для сохранения
92
+ * @param reportFilePath путь к файлу отчёта
93
+ * @returns абсолютный путь к сохранённому файлу
42
94
  */
43
- export declare function writeSemanticDiffReport(report: SemanticDiffReport, reportFilePath: string): Promise<string>;
95
+ export declare function writeSemanticDiffReport(report: SemanticDiffReport | UnifiedDiffReport, reportFilePath: string): Promise<string>;
44
96
  export {};
45
97
  //# sourceMappingURL=analyzeOpenApiDiff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeOpenApiDiff.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/analyzeOpenApiDiff.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA2B,MAAM,uCAAuC,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,KAAK,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAEpE,KAAK,mBAAmB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,gCAAgC,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpE,KAAK,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACxD,KAAK,gCAAgC,GAC/B,sBAAsB,GACtB,iCAAiC,GACjC,gCAAgC,GAChC,wBAAwB,CAAC;AAE/B,KAAK,0BAA0B,GAAG;IAC9B,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,sBAAsB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gCAAgC,EAAE,CAAC;CAC/C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,mCAAmC,UAAU,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,0BAA0B,CAAC;IAC3C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AA6yBF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,yBAA8B,GAAG,kBAAkB,CA2B9I;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAajH"}
1
+ {"version":3,"file":"analyzeOpenApiDiff.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/analyzeOpenApiDiff.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2B,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC1H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,KAAK,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,gCAAgC,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpE,KAAK,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACxD,KAAK,gCAAgC,GAAG,sBAAsB,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,wBAAwB,CAAC;AAEjK;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACrC,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,sBAAsB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gCAAgC,EAAE,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAIF,+CAA+C;AAC/C,eAAO,MAAM,mCAAmC,UAAU,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,0BAA0B,CAAC;IAC3C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AA0zBF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,yBAA8B,GAAG,kBAAkB,CA2B9I;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAarI"}
@@ -11,6 +11,7 @@ const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
11
11
  const format_1 = require("../../common/utils/format");
12
12
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
13
13
  const evaluateGovernanceRules_1 = require("../governance/evaluateGovernanceRules");
14
+ /** Версия схемы семантического diff-отчёта. */
14
15
  exports.SEMANTIC_DIFF_REPORT_SCHEMA_VERSION = '1.1.0';
15
16
  const HTTP_METHODS = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'];
16
17
  /**
@@ -373,10 +374,19 @@ function buildCanonicalOperations(spec) {
373
374
  }
374
375
  }
375
376
  }
377
+ const operationId = typeof operation.operationId === 'string' ? operation.operationId : undefined;
378
+ const summary = typeof operation.summary === 'string' ? operation.summary : undefined;
379
+ const description = typeof operation.description === 'string' ? operation.description : undefined;
380
+ const tagsRaw = operation.tags;
381
+ const tags = Array.isArray(tagsRaw) ? tagsRaw.map(tag => String(tag)) : undefined;
376
382
  operations.set(operationKey, {
377
383
  parameters,
378
384
  requestBodyRequired,
379
385
  successResponses,
386
+ operationId,
387
+ summary,
388
+ description,
389
+ tags,
380
390
  });
381
391
  }
382
392
  }
@@ -385,8 +395,8 @@ function buildCanonicalOperations(spec) {
385
395
  /**
386
396
  * Pushes change entry to report collection.
387
397
  */
388
- function pushChange(changes, severity, type, path, message) {
389
- changes.push({ severity, type, path, message });
398
+ function pushChange(changes, severity, type, path, message, extras) {
399
+ changes.push({ severity, type, path, message, ...extras });
390
400
  }
391
401
  /**
392
402
  * Normalizes, deduplicates and sorts changes for stable CI output.
@@ -440,13 +450,13 @@ function diffModels(oldModels, newModels, changes) {
440
450
  }
441
451
  for (const oldPropertyName of oldModel.properties.keys()) {
442
452
  if (!newModel.properties.has(oldPropertyName)) {
443
- pushChange(changes, 'breaking', 'model.property.removed', `#/components/schemas/${modelName}/properties/${oldPropertyName}`, `Property "${oldPropertyName}" was removed from model "${modelName}".`);
453
+ pushChange(changes, 'breaking', 'model.property.removed', `#/components/schemas/${modelName}/properties/${oldPropertyName}`, `Property "${oldPropertyName}" was removed from model "${modelName}".`, { from: { type: oldModel.properties.get(oldPropertyName) } });
444
454
  }
445
455
  }
446
- for (const [newPropertyName] of newModel.properties.entries()) {
456
+ for (const [newPropertyName, newPropertyType] of newModel.properties.entries()) {
447
457
  if (!oldModel.properties.has(newPropertyName)) {
448
458
  const isRequired = newModel.required.has(newPropertyName);
449
- pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.added', `#/components/schemas/${modelName}/properties/${newPropertyName}`, `Property "${newPropertyName}" was added to model "${modelName}".`);
459
+ pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.added', `#/components/schemas/${modelName}/properties/${newPropertyName}`, `Property "${newPropertyName}" was added to model "${modelName}".`, { to: { type: newPropertyType } });
450
460
  }
451
461
  }
452
462
  for (const [propertyName, oldPropertyType] of oldModel.properties.entries()) {
@@ -456,22 +466,26 @@ function diffModels(oldModels, newModels, changes) {
456
466
  }
457
467
  if (oldPropertyType !== newPropertyType) {
458
468
  const severity = classifyTypeTransition(oldPropertyType, newPropertyType);
459
- pushChange(changes, severity, 'model.property.type.changed', `#/components/schemas/${modelName}/properties/${propertyName}`, `Property "${propertyName}" type changed in model "${modelName}" from "${oldPropertyType}" to "${newPropertyType}".`);
469
+ pushChange(changes, severity, 'model.property.type.changed', `#/components/schemas/${modelName}/properties/${propertyName}`, `Property "${propertyName}" type changed in model "${modelName}" from "${oldPropertyType}" to "${newPropertyType}".`, { from: oldPropertyType, to: newPropertyType });
460
470
  }
461
471
  const wasRequired = oldModel.required.has(propertyName);
462
472
  const isRequired = newModel.required.has(propertyName);
463
473
  if (wasRequired !== isRequired) {
464
- pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.required.changed', `#/components/schemas/${modelName}/required/${propertyName}`, `Property "${propertyName}" required flag changed in model "${modelName}" from "${wasRequired}" to "${isRequired}".`);
474
+ pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.required.changed', `#/components/schemas/${modelName}/required/${propertyName}`, `Property "${propertyName}" required flag changed in model "${modelName}" from "${wasRequired}" to "${isRequired}".`, { fromRequired: wasRequired, toRequired: isRequired });
465
475
  }
466
476
  }
467
477
  for (const oldEnumValue of oldModel.enumValues) {
468
478
  if (!newModel.enumValues.has(oldEnumValue)) {
469
- pushChange(changes, 'breaking', 'model.enum.value.removed', `#/components/schemas/${modelName}/enum`, `Enum value "${oldEnumValue}" was removed from model "${modelName}".`);
479
+ pushChange(changes, 'breaking', 'model.enum.value.removed', `#/components/schemas/${modelName}/enum`, `Enum value "${oldEnumValue}" was removed from model "${modelName}".`, {
480
+ from: oldEnumValue,
481
+ });
470
482
  }
471
483
  }
472
484
  for (const newEnumValue of newModel.enumValues) {
473
485
  if (!oldModel.enumValues.has(newEnumValue)) {
474
- pushChange(changes, 'non-breaking', 'model.enum.value.added', `#/components/schemas/${modelName}/enum`, `Enum value "${newEnumValue}" was added to model "${modelName}".`);
486
+ pushChange(changes, 'non-breaking', 'model.enum.value.added', `#/components/schemas/${modelName}/enum`, `Enum value "${newEnumValue}" was added to model "${modelName}".`, {
487
+ to: newEnumValue,
488
+ });
475
489
  }
476
490
  }
477
491
  }
@@ -480,9 +494,16 @@ function diffModels(oldModels, newModels, changes) {
480
494
  * Diffs canonical operations and appends semantic changes.
481
495
  */
482
496
  function diffOperations(oldOperations, newOperations, changes) {
483
- for (const oldOperationKey of oldOperations.keys()) {
497
+ for (const [oldOperationKey, oldOperation] of oldOperations.entries()) {
484
498
  if (!newOperations.has(oldOperationKey)) {
485
- pushChange(changes, 'breaking', 'operation.removed', `#/paths/${oldOperationKey}`, `Operation "${oldOperationKey}" was removed.`);
499
+ pushChange(changes, 'breaking', 'operation.removed', `#/paths/${oldOperationKey}`, `Operation "${oldOperationKey}" was removed.`, {
500
+ from: {
501
+ operationId: oldOperation.operationId,
502
+ summary: oldOperation.summary,
503
+ description: oldOperation.description,
504
+ tags: oldOperation.tags,
505
+ },
506
+ });
486
507
  }
487
508
  }
488
509
  for (const newOperationKey of newOperations.keys()) {
@@ -497,12 +518,12 @@ function diffOperations(oldOperations, newOperations, changes) {
497
518
  }
498
519
  for (const oldParameterName of oldOperation.parameters.keys()) {
499
520
  if (!newOperation.parameters.has(oldParameterName)) {
500
- pushChange(changes, 'breaking', 'operation.parameter.removed', `#/paths/${operationKey}/parameters/${oldParameterName}`, `Parameter "${oldParameterName}" was removed from operation "${operationKey}".`);
521
+ pushChange(changes, 'breaking', 'operation.parameter.removed', `#/paths/${operationKey}/parameters/${oldParameterName}`, `Parameter "${oldParameterName}" was removed from operation "${operationKey}".`, { from: { type: oldOperation.parameters.get(oldParameterName)?.type } });
501
522
  }
502
523
  }
503
524
  for (const [newParameterName, newParameter] of newOperation.parameters.entries()) {
504
525
  if (!oldOperation.parameters.has(newParameterName)) {
505
- pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.added', `#/paths/${operationKey}/parameters/${newParameterName}`, `Parameter "${newParameterName}" was added to operation "${operationKey}".`);
526
+ pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.added', `#/paths/${operationKey}/parameters/${newParameterName}`, `Parameter "${newParameterName}" was added to operation "${operationKey}".`, { to: { type: newParameter.type, required: newParameter.required } });
506
527
  }
507
528
  }
508
529
  for (const [parameterName, oldParameter] of oldOperation.parameters.entries()) {
@@ -511,15 +532,15 @@ function diffOperations(oldOperations, newOperations, changes) {
511
532
  continue;
512
533
  }
513
534
  if (oldParameter.required !== newParameter.required) {
514
- pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.required.changed', `#/paths/${operationKey}/parameters/${parameterName}/required`, `Required flag for parameter "${parameterName}" changed in operation "${operationKey}".`);
535
+ pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.required.changed', `#/paths/${operationKey}/parameters/${parameterName}/required`, `Required flag for parameter "${parameterName}" changed in operation "${operationKey}".`, { fromRequired: oldParameter.required, toRequired: newParameter.required });
515
536
  }
516
537
  if (oldParameter.type !== newParameter.type) {
517
538
  const severity = classifyTypeTransition(oldParameter.type, newParameter.type);
518
- pushChange(changes, severity, 'operation.parameter.type.changed', `#/paths/${operationKey}/parameters/${parameterName}/schema`, `Type for parameter "${parameterName}" changed in operation "${operationKey}" from "${oldParameter.type}" to "${newParameter.type}".`);
539
+ pushChange(changes, severity, 'operation.parameter.type.changed', `#/paths/${operationKey}/parameters/${parameterName}/schema`, `Type for parameter "${parameterName}" changed in operation "${operationKey}" from "${oldParameter.type}" to "${newParameter.type}".`, { from: oldParameter.type, to: newParameter.type });
519
540
  }
520
541
  }
521
542
  if (oldOperation.requestBodyRequired !== newOperation.requestBodyRequired) {
522
- pushChange(changes, newOperation.requestBodyRequired ? 'breaking' : 'non-breaking', 'operation.requestBody.required.changed', `#/paths/${operationKey}/requestBody/required`, `requestBody.required changed in operation "${operationKey}" from "${oldOperation.requestBodyRequired}" to "${newOperation.requestBodyRequired}".`);
543
+ pushChange(changes, newOperation.requestBodyRequired ? 'breaking' : 'non-breaking', 'operation.requestBody.required.changed', `#/paths/${operationKey}/requestBody/required`, `requestBody.required changed in operation "${operationKey}" from "${oldOperation.requestBodyRequired}" to "${newOperation.requestBodyRequired}".`, { from: oldOperation.requestBodyRequired, to: newOperation.requestBodyRequired });
523
544
  }
524
545
  for (const oldResponseCode of oldOperation.successResponses.keys()) {
525
546
  if (!newOperation.successResponses.has(oldResponseCode)) {
@@ -537,7 +558,7 @@ function diffOperations(oldOperations, newOperations, changes) {
537
558
  continue;
538
559
  }
539
560
  const severity = classifyTypeTransition(oldResponseType, newResponseType);
540
- pushChange(changes, severity, 'operation.response.success.type.changed', `#/paths/${operationKey}/responses/${responseCode}/content`, `Successful response "${responseCode}" payload type changed in operation "${operationKey}" from "${oldResponseType}" to "${newResponseType}".`);
561
+ pushChange(changes, severity, 'operation.response.success.type.changed', `#/paths/${operationKey}/responses/${responseCode}/content`, `Successful response "${responseCode}" payload type changed in operation "${operationKey}" from "${oldResponseType}" to "${newResponseType}".`, { from: oldResponseType, to: newResponseType });
541
562
  }
542
563
  }
543
564
  }
@@ -598,7 +619,11 @@ function buildSemverRecommendation(summary) {
598
619
  };
599
620
  }
600
621
  /**
601
- * Creates semantic diff report between two OpenAPI specs.
622
+ * Формирует семантический diff-отчёт между двумя OpenAPI-спецификациями.
623
+ * @param oldSpec базовая спецификация
624
+ * @param newSpec целевая спецификация
625
+ * @param [options] опции анализа, включая governance и разрешение breaking-изменений
626
+ * @returns семантический diff-отчёт
602
627
  */
603
628
  function analyzeOpenApiDiff(oldSpec, newSpec, options = {}) {
604
629
  const oldModels = buildCanonicalModels(oldSpec);
@@ -625,7 +650,10 @@ function analyzeOpenApiDiff(oldSpec, newSpec, options = {}) {
625
650
  };
626
651
  }
627
652
  /**
628
- * Writes semantic diff report to JSON file and returns absolute path.
653
+ * Записывает семантический или унифицированный diff-отчёт в JSON-файл.
654
+ * @param report отчёт для сохранения
655
+ * @param reportFilePath путь к файлу отчёта
656
+ * @returns абсолютный путь к сохранённому файлу
629
657
  */
630
658
  async function writeSemanticDiffReport(report, reportFilePath) {
631
659
  const resolvedPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), reportFilePath);
@@ -1,11 +1,16 @@
1
- import { JSONSchema7 } from 'json-schema';
1
+ /**
2
+ * Результат валидации diff-отчёта по JSON Schema.
3
+ * @property valid признак успешной валидации
4
+ * @property errors список ошибок валидации
5
+ */
2
6
  export type SemanticDiffReportSchemaValidationResult = {
3
7
  valid: boolean;
4
8
  errors: string[];
5
9
  };
6
- export declare const semanticDiffReportJsonSchema: JSONSchema7;
7
10
  /**
8
- * Validates semantic diff report payload by JSON Schema contract.
11
+ * Валидирует payload diff-отчёта по JSON Schema контракту.
12
+ * @param report проверяемый отчёт
13
+ * @returns результат валидации с перечнем ошибок
9
14
  */
10
15
  export declare function validateSemanticDiffReportSchema(report: unknown): SemanticDiffReportSchemaValidationResult;
11
16
  //# sourceMappingURL=semanticDiffReportSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"semanticDiffReportSchema.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/semanticDiffReportSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,MAAM,wCAAwC,GAAG;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,WA6G1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,GAAG,wCAAwC,CAc1G"}
1
+ {"version":3,"file":"semanticDiffReportSchema.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/semanticDiffReportSchema.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,wCAAwC,GAAG;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAmMF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,GAAG,wCAAwC,CAc1G"}
@@ -1,121 +1,204 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.semanticDiffReportJsonSchema = void 0;
4
3
  exports.validateSemanticDiffReportSchema = validateSemanticDiffReportSchema;
5
4
  const json_schema_1 = require("json-schema");
6
- const analyzeOpenApiDiff_1 = require("./analyzeOpenApiDiff");
7
- exports.semanticDiffReportJsonSchema = {
5
+ const DiffReport_model_1 = require("../types/DiffReport.model");
6
+ /** JSON Schema контракт унифицированного diff-отчёта. */
7
+ const semanticDiffReportJsonSchema = {
8
8
  type: 'object',
9
9
  additionalProperties: false,
10
10
  properties: {
11
11
  schemaVersion: {
12
12
  type: 'string',
13
- enum: [analyzeOpenApiDiff_1.SEMANTIC_DIFF_REPORT_SCHEMA_VERSION],
13
+ enum: [DiffReport_model_1.UNIFIED_DIFF_REPORT_SCHEMA_VERSION],
14
14
  required: true,
15
15
  },
16
- summary: {
16
+ timestamp: {
17
+ type: 'string',
18
+ minLength: 1,
19
+ required: true,
20
+ },
21
+ metadata: {
17
22
  type: 'object',
18
23
  additionalProperties: false,
19
24
  required: true,
20
25
  properties: {
21
- breaking: { type: 'integer', minimum: 0, required: true },
22
- nonBreaking: { type: 'integer', minimum: 0, required: true },
23
- informational: { type: 'integer', minimum: 0, required: true },
26
+ base: { type: 'string', minLength: 1, required: true },
27
+ target: { type: 'string', minLength: 1, required: true },
28
+ baseHash: { type: 'string', minLength: 1, required: true },
29
+ targetHash: { type: 'string', minLength: 1, required: true },
24
30
  },
25
31
  },
26
- recommendation: {
32
+ semantic: {
27
33
  type: 'object',
28
34
  additionalProperties: false,
29
35
  required: true,
30
36
  properties: {
31
- semver: {
32
- type: 'string',
33
- enum: ['major', 'minor', 'patch'],
37
+ summary: {
38
+ type: 'object',
39
+ additionalProperties: false,
34
40
  required: true,
41
+ properties: {
42
+ breaking: { type: 'integer', minimum: 0, required: true },
43
+ nonBreaking: { type: 'integer', minimum: 0, required: true },
44
+ informational: { type: 'integer', minimum: 0, required: true },
45
+ },
35
46
  },
36
- confidence: {
37
- type: 'string',
38
- enum: ['high', 'medium', 'low'],
47
+ recommendation: {
48
+ type: 'object',
49
+ additionalProperties: false,
39
50
  required: true,
51
+ properties: {
52
+ semver: {
53
+ type: 'string',
54
+ enum: ['major', 'minor', 'patch'],
55
+ required: true,
56
+ },
57
+ confidence: {
58
+ type: 'string',
59
+ enum: ['high', 'medium', 'low'],
60
+ required: true,
61
+ },
62
+ reason: {
63
+ type: 'string',
64
+ minLength: 1,
65
+ required: true,
66
+ },
67
+ reasons: {
68
+ type: 'array',
69
+ minItems: 1,
70
+ required: true,
71
+ items: {
72
+ type: 'string',
73
+ enum: ['HAS_BREAKING_CHANGES', 'HAS_BACKWARD_COMPATIBLE_CHANGES', 'HAS_INFORMATIONAL_ONLY_CHANGES', 'NO_API_SURFACE_CHANGES'],
74
+ },
75
+ },
76
+ },
40
77
  },
41
- reason: {
42
- type: 'string',
43
- minLength: 1,
78
+ governance: {
79
+ type: 'object',
80
+ additionalProperties: false,
44
81
  required: true,
82
+ properties: {
83
+ summary: {
84
+ type: 'object',
85
+ additionalProperties: false,
86
+ required: true,
87
+ properties: {
88
+ errors: { type: 'integer', minimum: 0, required: true },
89
+ warnings: { type: 'integer', minimum: 0, required: true },
90
+ info: { type: 'integer', minimum: 0, required: true },
91
+ },
92
+ },
93
+ violations: {
94
+ type: 'array',
95
+ required: true,
96
+ items: {
97
+ type: 'object',
98
+ additionalProperties: false,
99
+ properties: {
100
+ ruleId: { type: 'string', minLength: 1, required: true },
101
+ severity: {
102
+ type: 'string',
103
+ enum: ['error', 'warning', 'info'],
104
+ required: true,
105
+ },
106
+ message: { type: 'string', minLength: 1, required: true },
107
+ path: { type: 'string', minLength: 1, required: true },
108
+ },
109
+ },
110
+ },
111
+ },
45
112
  },
46
- reasons: {
113
+ changes: {
47
114
  type: 'array',
48
- minItems: 1,
49
115
  required: true,
50
116
  items: {
51
- type: 'string',
52
- enum: [
53
- 'HAS_BREAKING_CHANGES',
54
- 'HAS_BACKWARD_COMPATIBLE_CHANGES',
55
- 'HAS_INFORMATIONAL_ONLY_CHANGES',
56
- 'NO_API_SURFACE_CHANGES',
57
- ],
117
+ type: 'object',
118
+ additionalProperties: false,
119
+ properties: {
120
+ type: { type: 'string', minLength: 1, required: true },
121
+ severity: {
122
+ type: 'string',
123
+ enum: ['breaking', 'non-breaking', 'informational'],
124
+ required: true,
125
+ },
126
+ message: { type: 'string', minLength: 1, required: true },
127
+ path: { type: 'string', minLength: 1, required: true },
128
+ from: {},
129
+ to: {},
130
+ fromRequired: { type: 'boolean' },
131
+ toRequired: { type: 'boolean' },
132
+ fromNullable: { type: 'boolean' },
133
+ toNullable: { type: 'boolean' },
134
+ },
58
135
  },
59
136
  },
60
137
  },
61
138
  },
62
- governance: {
139
+ structural: {
63
140
  type: 'object',
64
141
  additionalProperties: false,
65
142
  required: true,
66
143
  properties: {
67
- summary: {
144
+ diff: {
68
145
  type: 'object',
69
146
  additionalProperties: false,
70
147
  required: true,
71
148
  properties: {
72
- errors: { type: 'integer', minimum: 0, required: true },
73
- warnings: { type: 'integer', minimum: 0, required: true },
74
- info: { type: 'integer', minimum: 0, required: true },
149
+ breaking: { type: 'array', required: true, items: { type: 'object' } },
150
+ warnings: { type: 'array', required: true, items: { type: 'object' } },
151
+ info: { type: 'array', required: true, items: { type: 'object' } },
152
+ all: { type: 'array', required: true, items: { type: 'object' } },
75
153
  },
76
154
  },
77
- violations: {
155
+ miracles: {
78
156
  type: 'array',
79
157
  required: true,
80
158
  items: {
81
159
  type: 'object',
82
160
  additionalProperties: false,
83
161
  properties: {
84
- ruleId: { type: 'string', minLength: 1, required: true },
85
- severity: {
162
+ oldPath: { type: 'string', minLength: 1, required: true },
163
+ newPath: { type: 'string', minLength: 1, required: true },
164
+ type: {
86
165
  type: 'string',
87
- enum: ['error', 'warning', 'info'],
166
+ enum: ['RENAME', 'TYPE_COERCION'],
88
167
  required: true,
89
168
  },
90
- message: { type: 'string', minLength: 1, required: true },
91
- path: { type: 'string', minLength: 1, required: true },
169
+ confidence: { type: 'number', minimum: 0, maximum: 1, required: true },
170
+ status: {
171
+ type: 'string',
172
+ enum: ['auto-generated', 'confirmed'],
173
+ required: true,
174
+ },
175
+ modelName: { type: 'string' },
176
+ oldProperty: { type: 'string' },
177
+ newProperty: { type: 'string' },
92
178
  },
93
179
  },
94
180
  },
95
- },
96
- },
97
- changes: {
98
- type: 'array',
99
- required: true,
100
- items: {
101
- type: 'object',
102
- additionalProperties: false,
103
- properties: {
104
- type: { type: 'string', minLength: 1, required: true },
105
- severity: {
106
- type: 'string',
107
- enum: ['breaking', 'non-breaking', 'informational'],
108
- required: true,
181
+ stats: {
182
+ type: 'object',
183
+ additionalProperties: false,
184
+ required: true,
185
+ properties: {
186
+ totalChanges: { type: 'integer', minimum: 0, required: true },
187
+ added: { type: 'integer', minimum: 0, required: true },
188
+ removed: { type: 'integer', minimum: 0, required: true },
189
+ changed: { type: 'integer', minimum: 0, required: true },
190
+ ignored: { type: 'integer', minimum: 0 },
191
+ stabilityScore: { type: 'integer', minimum: 0, maximum: 100, required: true },
109
192
  },
110
- message: { type: 'string', minLength: 1, required: true },
111
- path: { type: 'string', minLength: 1, required: true },
112
193
  },
113
194
  },
114
195
  },
115
196
  },
116
197
  };
117
198
  /**
118
- * Validates semantic diff report payload by JSON Schema contract.
199
+ * Валидирует payload diff-отчёта по JSON Schema контракту.
200
+ * @param report проверяемый отчёт
201
+ * @returns результат валидации с перечнем ошибок
119
202
  */
120
203
  function validateSemanticDiffReportSchema(report) {
121
204
  if (report === null || typeof report !== 'object') {
@@ -124,7 +207,7 @@ function validateSemanticDiffReportSchema(report) {
124
207
  errors: ['root: report must be an object'],
125
208
  };
126
209
  }
127
- const result = (0, json_schema_1.validate)(report, exports.semanticDiffReportJsonSchema);
210
+ const result = (0, json_schema_1.validate)(report, semanticDiffReportJsonSchema);
128
211
  return {
129
212
  valid: result.valid,
130
213
  errors: result.errors.map(error => `${error.property}: ${error.message}`),
@@ -1 +1 @@
1
- {"version":3,"file":"validateOpenApiStrict.d.ts","sourceRoot":"","sources":["../../../src/core/strict/validateOpenApiStrict.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAA0B,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzH,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,KAAK,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,gBAAgB,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,kCAAkC,CAAC;IACrJ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,GACpE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAElD,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AAqNF;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBzF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB,CAe9F;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAanH"}
1
+ {"version":3,"file":"validateOpenApiStrict.d.ts","sourceRoot":"","sources":["../../../src/core/strict/validateOpenApiStrict.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAA2B,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,KAAK,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,gBAAgB,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,kCAAkC,CAAC;IACrJ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAEzH,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AAqNF;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBzF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB,CAe9F;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAanH"}
@@ -14,5 +14,5 @@ exports.GROUP_PRIORITY_EXTENDED = {
14
14
  };
15
15
  exports.GROUP_PRIORITY_SIMPLE = {
16
16
  'requires-value': 0,
17
- 'other': 1
17
+ other: 1,
18
18
  };