@unispechq/unispec-core 0.3.2 → 0.3.4

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 (440) hide show
  1. package/dist/cache/cache-factory.d.ts +2 -2
  2. package/dist/cache/cache-factory.js +1 -1
  3. package/dist/cache/cache-manager.d.ts +2 -2
  4. package/dist/cache/cache-manager.js +9 -7
  5. package/dist/cache/hash-utils.d.ts +1 -11
  6. package/dist/cache/hash-utils.js +1 -21
  7. package/dist/cache/hashing.d.ts +15 -6
  8. package/dist/cache/hashing.js +8 -12
  9. package/dist/cache/index.d.ts +6 -6
  10. package/dist/cache/index.js +5 -5
  11. package/dist/cache/lru-cache.d.ts +1 -13
  12. package/dist/cache/lru-cache.js +3 -24
  13. package/dist/cjs/cache/cache-factory.js +1 -1
  14. package/dist/cjs/cache/cache-manager.js +9 -7
  15. package/dist/cjs/cache/hash-utils.js +1 -23
  16. package/dist/cjs/cache/hashing.js +7 -13
  17. package/dist/cjs/cache/index.js +6 -8
  18. package/dist/cjs/cache/lru-cache.js +3 -24
  19. package/dist/cjs/diff/annotators.js +3 -2
  20. package/dist/cjs/diff/core.js +2 -2
  21. package/dist/cjs/diff/enhanced-diff.js +7 -21
  22. package/dist/cjs/diff/index.js +8 -8
  23. package/dist/cjs/errors/config-error.js +1 -1
  24. package/dist/cjs/errors/error-factory.js +7 -7
  25. package/dist/cjs/errors/index.js +8 -8
  26. package/dist/cjs/errors/loader-error.js +1 -1
  27. package/dist/cjs/errors/reference-error.js +1 -1
  28. package/dist/cjs/errors/schema-error.js +1 -1
  29. package/dist/cjs/errors/security-error.js +1 -1
  30. package/dist/cjs/errors/semantic-error.js +1 -1
  31. package/dist/cjs/index.js +13 -13
  32. package/dist/cjs/loader/index.js +4 -4
  33. package/dist/cjs/loader/security-validator.js +1 -1
  34. package/dist/cjs/loader/unispec-loader.js +3 -3
  35. package/dist/cjs/loader/yaml-loader.js +1 -1
  36. package/dist/cjs/normalizer/core.js +11 -6
  37. package/dist/cjs/normalizer/index.js +1 -1
  38. package/dist/cjs/normalizer/utils.js +23 -7
  39. package/dist/cjs/optimizer/core.js +35 -10
  40. package/dist/cjs/optimizer/index.js +3 -3
  41. package/dist/cjs/optimizer/optimization-functions.js +2 -2
  42. package/dist/cjs/schemas/dedupe.js +27 -14
  43. package/dist/cjs/schemas/index.js +3 -3
  44. package/dist/cjs/schemas/resolver.js +3 -2
  45. package/dist/cjs/validator/ajv-validator.js +1 -1
  46. package/dist/cjs/validator/config-validator-main.js +4 -4
  47. package/dist/cjs/validator/config-validator.js +1 -1
  48. package/dist/cjs/validator/index.js +7 -7
  49. package/dist/cjs/validator/reference-validator.js +1 -1
  50. package/dist/cjs/validator/tests-validator.js +2 -2
  51. package/dist/cjs/validator/unispec-validator.js +7 -11
  52. package/dist/cjs/validator/validator-factory.js +1 -1
  53. package/dist/diff/annotators.d.ts +1 -1
  54. package/dist/diff/annotators.js +3 -2
  55. package/dist/diff/change-reports.d.ts +1 -1
  56. package/dist/diff/core.d.ts +2 -2
  57. package/dist/diff/core.js +2 -2
  58. package/dist/diff/enhanced-diff.d.ts +3 -3
  59. package/dist/diff/enhanced-diff.js +7 -21
  60. package/dist/diff/impact-strategies-refactored.d.ts +2 -2
  61. package/dist/diff/impact-strategies.d.ts +2 -2
  62. package/dist/diff/index.d.ts +8 -8
  63. package/dist/diff/index.js +8 -8
  64. package/dist/diff/metrics-calculator.d.ts +1 -1
  65. package/dist/diff/risk-calculator.d.ts +1 -1
  66. package/dist/diff/suggestion-generator.d.ts +2 -2
  67. package/dist/errors/config-error.d.ts +1 -1
  68. package/dist/errors/config-error.js +1 -1
  69. package/dist/errors/error-factory.d.ts +7 -7
  70. package/dist/errors/error-factory.js +7 -7
  71. package/dist/errors/index.d.ts +8 -8
  72. package/dist/errors/index.js +8 -8
  73. package/dist/errors/loader-error.d.ts +1 -1
  74. package/dist/errors/loader-error.js +1 -1
  75. package/dist/errors/reference-error.d.ts +1 -1
  76. package/dist/errors/reference-error.js +1 -1
  77. package/dist/errors/schema-error.d.ts +1 -1
  78. package/dist/errors/schema-error.js +1 -1
  79. package/dist/errors/security-error.d.ts +1 -1
  80. package/dist/errors/security-error.js +1 -1
  81. package/dist/errors/semantic-error.d.ts +1 -1
  82. package/dist/errors/semantic-error.js +1 -1
  83. package/dist/index.cjs +13 -13
  84. package/dist/index.d.ts +13 -13
  85. package/dist/index.js +13 -13
  86. package/dist/loader/index.d.ts +5 -5
  87. package/dist/loader/index.js +4 -4
  88. package/dist/loader/security-validator.d.ts +1 -1
  89. package/dist/loader/security-validator.js +1 -1
  90. package/dist/loader/unispec-loader.d.ts +2 -2
  91. package/dist/loader/unispec-loader.js +3 -3
  92. package/dist/loader/yaml-loader.d.ts +1 -1
  93. package/dist/loader/yaml-loader.js +1 -1
  94. package/dist/normalizer/core.d.ts +2 -2
  95. package/dist/normalizer/core.js +11 -6
  96. package/dist/normalizer/graphql-normalizer.d.ts +1 -1
  97. package/dist/normalizer/index.d.ts +2 -2
  98. package/dist/normalizer/index.js +1 -1
  99. package/dist/normalizer/rest-normalizer.d.ts +1 -1
  100. package/dist/normalizer/types.d.ts +1 -1
  101. package/dist/normalizer/utils.d.ts +6 -3
  102. package/dist/normalizer/utils.js +23 -7
  103. package/dist/normalizer/websocket-normalizer.d.ts +1 -1
  104. package/dist/optimizer/core.d.ts +2 -2
  105. package/dist/optimizer/core.js +35 -10
  106. package/dist/optimizer/index.d.ts +4 -4
  107. package/dist/optimizer/index.js +3 -3
  108. package/dist/optimizer/optimization-functions.d.ts +2 -2
  109. package/dist/optimizer/optimization-functions.js +2 -2
  110. package/dist/optimizer/types.d.ts +1 -1
  111. package/dist/schemas/dedupe.d.ts +1 -1
  112. package/dist/schemas/dedupe.js +27 -14
  113. package/dist/schemas/index.d.ts +3 -3
  114. package/dist/schemas/index.js +3 -3
  115. package/dist/schemas/resolver.d.ts +1 -1
  116. package/dist/schemas/resolver.js +3 -2
  117. package/dist/types/index.d.ts +2 -1
  118. package/dist/validator/ajv-validator.d.ts +1 -1
  119. package/dist/validator/ajv-validator.js +1 -1
  120. package/dist/validator/config-validator-main.d.ts +2 -2
  121. package/dist/validator/config-validator-main.js +4 -4
  122. package/dist/validator/config-validator.d.ts +1 -1
  123. package/dist/validator/config-validator.js +1 -1
  124. package/dist/validator/index.d.ts +10 -10
  125. package/dist/validator/index.js +7 -7
  126. package/dist/validator/reference-validator.d.ts +1 -1
  127. package/dist/validator/reference-validator.js +1 -1
  128. package/dist/validator/schema-references.d.ts +1 -1
  129. package/dist/validator/semantic-validator.d.ts +1 -1
  130. package/dist/validator/tests-validator.d.ts +2 -2
  131. package/dist/validator/tests-validator.js +2 -2
  132. package/dist/validator/types.d.ts +3 -3
  133. package/dist/validator/unispec-validator.d.ts +2 -2
  134. package/dist/validator/unispec-validator.js +7 -11
  135. package/dist/validator/validator-factory.d.ts +3 -3
  136. package/dist/validator/validator-factory.js +1 -1
  137. package/package.json +3 -3
  138. package/dist/cjs/src/cache/cache-factory.js +0 -72
  139. package/dist/cjs/src/cache/cache-manager.js +0 -128
  140. package/dist/cjs/src/cache/constants.js +0 -25
  141. package/dist/cjs/src/cache/hash-utils.js +0 -19
  142. package/dist/cjs/src/cache/hashing.js +0 -230
  143. package/dist/cjs/src/cache/index.js +0 -24
  144. package/dist/cjs/src/cache/lru-cache.js +0 -144
  145. package/dist/cjs/src/cache/types.js +0 -5
  146. package/dist/cjs/src/diff/annotators.js +0 -160
  147. package/dist/cjs/src/diff/change-reports.js +0 -369
  148. package/dist/cjs/src/diff/core.js +0 -158
  149. package/dist/cjs/src/diff/enhanced-diff.js +0 -65
  150. package/dist/cjs/src/diff/impact-strategies-refactored.js +0 -230
  151. package/dist/cjs/src/diff/impact-strategies.js +0 -219
  152. package/dist/cjs/src/diff/index.js +0 -27
  153. package/dist/cjs/src/diff/metrics-calculator.js +0 -69
  154. package/dist/cjs/src/diff/risk-calculator.js +0 -58
  155. package/dist/cjs/src/diff/suggestion-generator.js +0 -78
  156. package/dist/cjs/src/diff/types.js +0 -11
  157. package/dist/cjs/src/errors/base-error.js +0 -33
  158. package/dist/cjs/src/errors/config-error.js +0 -11
  159. package/dist/cjs/src/errors/error-factory.js +0 -48
  160. package/dist/cjs/src/errors/index.js +0 -19
  161. package/dist/cjs/src/errors/loader-error.js +0 -11
  162. package/dist/cjs/src/errors/reference-error.js +0 -11
  163. package/dist/cjs/src/errors/schema-error.js +0 -11
  164. package/dist/cjs/src/errors/security-error.js +0 -11
  165. package/dist/cjs/src/errors/semantic-error.js +0 -11
  166. package/dist/cjs/src/generated-schemas.js +0 -2100
  167. package/dist/cjs/src/index.js +0 -59
  168. package/dist/cjs/src/loader/index.js +0 -13
  169. package/dist/cjs/src/loader/security-validator.js +0 -53
  170. package/dist/cjs/src/loader/types.js +0 -11
  171. package/dist/cjs/src/loader/unispec-loader.js +0 -84
  172. package/dist/cjs/src/loader/yaml-loader.js +0 -76
  173. package/dist/cjs/src/normalizer/core.js +0 -37
  174. package/dist/cjs/src/normalizer/graphql-normalizer.js +0 -67
  175. package/dist/cjs/src/normalizer/index.js +0 -7
  176. package/dist/cjs/src/normalizer/rest-normalizer.js +0 -51
  177. package/dist/cjs/src/normalizer/types.js +0 -2
  178. package/dist/cjs/src/normalizer/utils.js +0 -49
  179. package/dist/cjs/src/normalizer/websocket-normalizer.js +0 -81
  180. package/dist/cjs/src/optimizer/core.js +0 -140
  181. package/dist/cjs/src/optimizer/index.js +0 -17
  182. package/dist/cjs/src/optimizer/optimization-functions.js +0 -185
  183. package/dist/cjs/src/optimizer/types.js +0 -2
  184. package/dist/cjs/src/optimizer/utils.js +0 -32
  185. package/dist/cjs/src/schemas/dedupe.js +0 -113
  186. package/dist/cjs/src/schemas/index.js +0 -14
  187. package/dist/cjs/src/schemas/resolver.js +0 -42
  188. package/dist/cjs/src/schemas/utils.js +0 -53
  189. package/dist/cjs/src/types/index.js +0 -2
  190. package/dist/cjs/src/validator/ajv-validator.js +0 -82
  191. package/dist/cjs/src/validator/config-validator-main.js +0 -34
  192. package/dist/cjs/src/validator/config-validator.js +0 -17
  193. package/dist/cjs/src/validator/index.js +0 -23
  194. package/dist/cjs/src/validator/object-traversal.js +0 -112
  195. package/dist/cjs/src/validator/reference-validator.js +0 -233
  196. package/dist/cjs/src/validator/schema-references.js +0 -116
  197. package/dist/cjs/src/validator/semantic-validator.js +0 -328
  198. package/dist/cjs/src/validator/tests-validator.js +0 -16
  199. package/dist/cjs/src/validator/types.js +0 -2
  200. package/dist/cjs/src/validator/unispec-validator.js +0 -80
  201. package/dist/cjs/src/validator/validator-factory.js +0 -77
  202. package/dist/cjs/src/versions.js +0 -147
  203. package/dist/cjs/tests/cache/cache.test.js +0 -274
  204. package/dist/cjs/tests/cache/utils.js +0 -32
  205. package/dist/cjs/tests/concurrency-normalizer-optimizer.test.js +0 -1
  206. package/dist/cjs/tests/diff/diff-annotators.test.js +0 -280
  207. package/dist/cjs/tests/diff/diff-comprehensive.test.js +0 -262
  208. package/dist/cjs/tests/diff/diff-extended.test.js +0 -235
  209. package/dist/cjs/tests/diff/diff.test.js +0 -189
  210. package/dist/cjs/tests/diff/utils.js +0 -8
  211. package/dist/cjs/tests/errors/errors-integration.test.js +0 -173
  212. package/dist/cjs/tests/errors/errors.test.js +0 -280
  213. package/dist/cjs/tests/errors/utils.js +0 -7
  214. package/dist/cjs/tests/loader/integration.test.js +0 -216
  215. package/dist/cjs/tests/loader/loader.test.js +0 -341
  216. package/dist/cjs/tests/normalizer/normalizer-comprehensive.test.js +0 -648
  217. package/dist/cjs/tests/normalizer/normalizer-invalid.test.js +0 -258
  218. package/dist/cjs/tests/normalizer/normalizer-valid.test.js +0 -238
  219. package/dist/cjs/tests/normalizer/utils.js +0 -47
  220. package/dist/cjs/tests/optimizer/compress-references.test.js +0 -304
  221. package/dist/cjs/tests/optimizer/deduplication.test.js +0 -132
  222. package/dist/cjs/tests/optimizer/integration.test.js +0 -131
  223. package/dist/cjs/tests/optimizer/optimization-report.test.js +0 -222
  224. package/dist/cjs/tests/optimizer/optimize-document.test.js +0 -187
  225. package/dist/cjs/tests/optimizer/orphaned-schemas.test.js +0 -194
  226. package/dist/cjs/tests/optimizer/sort-schemas.test.js +0 -131
  227. package/dist/cjs/tests/optimizer/utils.js +0 -209
  228. package/dist/cjs/tests/schemas/schemas-edge-cases.test.js +0 -223
  229. package/dist/cjs/tests/schemas/schemas.test.js +0 -400
  230. package/dist/cjs/tests/schemas/utils.js +0 -7
  231. package/dist/cjs/tests/utils.js +0 -131
  232. package/dist/cjs/tests/validator/config-validator.test.js +0 -78
  233. package/dist/cjs/tests/validator/debug-config.js +0 -1
  234. package/dist/cjs/tests/validator/debug-missing-service.js +0 -1
  235. package/dist/cjs/tests/validator/debug-other-configs.js +0 -1
  236. package/dist/cjs/tests/validator/debug-references.js +0 -1
  237. package/dist/cjs/tests/validator/unispec-validator.test.js +0 -103
  238. package/dist/cjs/tests/validator/utils.js +0 -25
  239. package/dist/src/cache/cache-factory.d.ts +0 -31
  240. package/dist/src/cache/cache-factory.js +0 -65
  241. package/dist/src/cache/cache-manager.d.ts +0 -62
  242. package/dist/src/cache/cache-manager.js +0 -124
  243. package/dist/src/cache/constants.d.ts +0 -21
  244. package/dist/src/cache/constants.js +0 -22
  245. package/dist/src/cache/hash-utils.d.ts +0 -11
  246. package/dist/src/cache/hash-utils.js +0 -15
  247. package/dist/src/cache/hashing.d.ts +0 -28
  248. package/dist/src/cache/hashing.js +0 -193
  249. package/dist/src/cache/index.d.ts +0 -6
  250. package/dist/src/cache/index.js +0 -10
  251. package/dist/src/cache/lru-cache.d.ts +0 -44
  252. package/dist/src/cache/lru-cache.js +0 -140
  253. package/dist/src/cache/types.d.ts +0 -24
  254. package/dist/src/cache/types.js +0 -4
  255. package/dist/src/diff/annotators.d.ts +0 -4
  256. package/dist/src/diff/annotators.js +0 -155
  257. package/dist/src/diff/change-reports.d.ts +0 -37
  258. package/dist/src/diff/change-reports.js +0 -366
  259. package/dist/src/diff/core.d.ts +0 -26
  260. package/dist/src/diff/core.js +0 -155
  261. package/dist/src/diff/enhanced-diff.d.ts +0 -51
  262. package/dist/src/diff/enhanced-diff.js +0 -62
  263. package/dist/src/diff/impact-strategies-refactored.d.ts +0 -69
  264. package/dist/src/diff/impact-strategies-refactored.js +0 -223
  265. package/dist/src/diff/impact-strategies.d.ts +0 -41
  266. package/dist/src/diff/impact-strategies.js +0 -212
  267. package/dist/src/diff/index.d.ts +0 -8
  268. package/dist/src/diff/index.js +0 -11
  269. package/dist/src/diff/metrics-calculator.d.ts +0 -23
  270. package/dist/src/diff/metrics-calculator.js +0 -65
  271. package/dist/src/diff/risk-calculator.d.ts +0 -23
  272. package/dist/src/diff/risk-calculator.js +0 -55
  273. package/dist/src/diff/suggestion-generator.d.ts +0 -18
  274. package/dist/src/diff/suggestion-generator.js +0 -74
  275. package/dist/src/diff/types.d.ts +0 -24
  276. package/dist/src/diff/types.js +0 -8
  277. package/dist/src/errors/base-error.d.ts +0 -20
  278. package/dist/src/errors/base-error.js +0 -29
  279. package/dist/src/errors/config-error.d.ts +0 -4
  280. package/dist/src/errors/config-error.js +0 -7
  281. package/dist/src/errors/error-factory.d.ts +0 -22
  282. package/dist/src/errors/error-factory.js +0 -45
  283. package/dist/src/errors/index.d.ts +0 -8
  284. package/dist/src/errors/index.js +0 -8
  285. package/dist/src/errors/loader-error.d.ts +0 -4
  286. package/dist/src/errors/loader-error.js +0 -7
  287. package/dist/src/errors/reference-error.d.ts +0 -4
  288. package/dist/src/errors/reference-error.js +0 -7
  289. package/dist/src/errors/schema-error.d.ts +0 -4
  290. package/dist/src/errors/schema-error.js +0 -7
  291. package/dist/src/errors/security-error.d.ts +0 -4
  292. package/dist/src/errors/security-error.js +0 -7
  293. package/dist/src/errors/semantic-error.d.ts +0 -4
  294. package/dist/src/errors/semantic-error.js +0 -7
  295. package/dist/src/generated-schemas.d.ts +0 -2073
  296. package/dist/src/generated-schemas.js +0 -2097
  297. package/dist/src/index.d.ts +0 -13
  298. package/dist/src/index.js +0 -43
  299. package/dist/src/loader/index.d.ts +0 -5
  300. package/dist/src/loader/index.js +0 -5
  301. package/dist/src/loader/security-validator.d.ts +0 -5
  302. package/dist/src/loader/security-validator.js +0 -50
  303. package/dist/src/loader/types.d.ts +0 -30
  304. package/dist/src/loader/types.js +0 -8
  305. package/dist/src/loader/unispec-loader.d.ts +0 -10
  306. package/dist/src/loader/unispec-loader.js +0 -81
  307. package/dist/src/loader/yaml-loader.d.ts +0 -10
  308. package/dist/src/loader/yaml-loader.js +0 -39
  309. package/dist/src/normalizer/core.d.ts +0 -24
  310. package/dist/src/normalizer/core.js +0 -34
  311. package/dist/src/normalizer/graphql-normalizer.d.ts +0 -8
  312. package/dist/src/normalizer/graphql-normalizer.js +0 -64
  313. package/dist/src/normalizer/index.d.ts +0 -2
  314. package/dist/src/normalizer/index.js +0 -3
  315. package/dist/src/normalizer/rest-normalizer.d.ts +0 -8
  316. package/dist/src/normalizer/rest-normalizer.js +0 -48
  317. package/dist/src/normalizer/types.d.ts +0 -7
  318. package/dist/src/normalizer/types.js +0 -1
  319. package/dist/src/normalizer/utils.d.ts +0 -17
  320. package/dist/src/normalizer/utils.js +0 -45
  321. package/dist/src/normalizer/websocket-normalizer.d.ts +0 -8
  322. package/dist/src/normalizer/websocket-normalizer.js +0 -78
  323. package/dist/src/optimizer/core.d.ts +0 -17
  324. package/dist/src/optimizer/core.js +0 -136
  325. package/dist/src/optimizer/index.d.ts +0 -4
  326. package/dist/src/optimizer/index.js +0 -7
  327. package/dist/src/optimizer/optimization-functions.d.ts +0 -32
  328. package/dist/src/optimizer/optimization-functions.js +0 -179
  329. package/dist/src/optimizer/types.d.ts +0 -28
  330. package/dist/src/optimizer/types.js +0 -1
  331. package/dist/src/optimizer/utils.d.ts +0 -7
  332. package/dist/src/optimizer/utils.js +0 -29
  333. package/dist/src/schemas/dedupe.d.ts +0 -9
  334. package/dist/src/schemas/dedupe.js +0 -110
  335. package/dist/src/schemas/index.d.ts +0 -3
  336. package/dist/src/schemas/index.js +0 -6
  337. package/dist/src/schemas/resolver.d.ts +0 -19
  338. package/dist/src/schemas/resolver.js +0 -38
  339. package/dist/src/schemas/utils.d.ts +0 -20
  340. package/dist/src/schemas/utils.js +0 -49
  341. package/dist/src/types/index.d.ts +0 -434
  342. package/dist/src/types/index.js +0 -1
  343. package/dist/src/validator/ajv-validator.d.ts +0 -15
  344. package/dist/src/validator/ajv-validator.js +0 -75
  345. package/dist/src/validator/config-validator-main.d.ts +0 -10
  346. package/dist/src/validator/config-validator-main.js +0 -31
  347. package/dist/src/validator/config-validator.d.ts +0 -5
  348. package/dist/src/validator/config-validator.js +0 -14
  349. package/dist/src/validator/index.d.ts +0 -10
  350. package/dist/src/validator/index.js +0 -11
  351. package/dist/src/validator/object-traversal.d.ts +0 -52
  352. package/dist/src/validator/object-traversal.js +0 -104
  353. package/dist/src/validator/reference-validator.d.ts +0 -31
  354. package/dist/src/validator/reference-validator.js +0 -230
  355. package/dist/src/validator/schema-references.d.ts +0 -23
  356. package/dist/src/validator/schema-references.js +0 -111
  357. package/dist/src/validator/semantic-validator.d.ts +0 -26
  358. package/dist/src/validator/semantic-validator.js +0 -325
  359. package/dist/src/validator/tests-validator.d.ts +0 -9
  360. package/dist/src/validator/tests-validator.js +0 -13
  361. package/dist/src/validator/types.d.ts +0 -29
  362. package/dist/src/validator/types.js +0 -1
  363. package/dist/src/validator/unispec-validator.d.ts +0 -15
  364. package/dist/src/validator/unispec-validator.js +0 -77
  365. package/dist/src/validator/validator-factory.d.ts +0 -10
  366. package/dist/src/validator/validator-factory.js +0 -73
  367. package/dist/src/versions.d.ts +0 -10
  368. package/dist/src/versions.js +0 -143
  369. package/dist/tests/cache/cache.test.d.ts +0 -1
  370. package/dist/tests/cache/cache.test.js +0 -269
  371. package/dist/tests/cache/utils.d.ts +0 -4
  372. package/dist/tests/cache/utils.js +0 -24
  373. package/dist/tests/concurrency-normalizer-optimizer.test.d.ts +0 -0
  374. package/dist/tests/concurrency-normalizer-optimizer.test.js +0 -1
  375. package/dist/tests/diff/diff-annotators.test.d.ts +0 -1
  376. package/dist/tests/diff/diff-annotators.test.js +0 -275
  377. package/dist/tests/diff/diff-comprehensive.test.d.ts +0 -1
  378. package/dist/tests/diff/diff-comprehensive.test.js +0 -257
  379. package/dist/tests/diff/diff-extended.test.d.ts +0 -1
  380. package/dist/tests/diff/diff-extended.test.js +0 -230
  381. package/dist/tests/diff/diff.test.d.ts +0 -1
  382. package/dist/tests/diff/diff.test.js +0 -184
  383. package/dist/tests/diff/utils.d.ts +0 -2
  384. package/dist/tests/diff/utils.js +0 -3
  385. package/dist/tests/errors/errors-integration.test.d.ts +0 -1
  386. package/dist/tests/errors/errors-integration.test.js +0 -168
  387. package/dist/tests/errors/errors.test.d.ts +0 -1
  388. package/dist/tests/errors/errors.test.js +0 -275
  389. package/dist/tests/errors/utils.d.ts +0 -2
  390. package/dist/tests/errors/utils.js +0 -3
  391. package/dist/tests/loader/integration.test.d.ts +0 -1
  392. package/dist/tests/loader/integration.test.js +0 -211
  393. package/dist/tests/loader/loader.test.d.ts +0 -1
  394. package/dist/tests/loader/loader.test.js +0 -336
  395. package/dist/tests/normalizer/normalizer-comprehensive.test.d.ts +0 -1
  396. package/dist/tests/normalizer/normalizer-comprehensive.test.js +0 -643
  397. package/dist/tests/normalizer/normalizer-invalid.test.d.ts +0 -1
  398. package/dist/tests/normalizer/normalizer-invalid.test.js +0 -253
  399. package/dist/tests/normalizer/normalizer-valid.test.d.ts +0 -1
  400. package/dist/tests/normalizer/normalizer-valid.test.js +0 -233
  401. package/dist/tests/normalizer/utils.d.ts +0 -18
  402. package/dist/tests/normalizer/utils.js +0 -36
  403. package/dist/tests/optimizer/compress-references.test.d.ts +0 -1
  404. package/dist/tests/optimizer/compress-references.test.js +0 -299
  405. package/dist/tests/optimizer/deduplication.test.d.ts +0 -1
  406. package/dist/tests/optimizer/deduplication.test.js +0 -127
  407. package/dist/tests/optimizer/integration.test.d.ts +0 -1
  408. package/dist/tests/optimizer/integration.test.js +0 -126
  409. package/dist/tests/optimizer/optimization-report.test.d.ts +0 -1
  410. package/dist/tests/optimizer/optimization-report.test.js +0 -217
  411. package/dist/tests/optimizer/optimize-document.test.d.ts +0 -1
  412. package/dist/tests/optimizer/optimize-document.test.js +0 -182
  413. package/dist/tests/optimizer/orphaned-schemas.test.d.ts +0 -1
  414. package/dist/tests/optimizer/orphaned-schemas.test.js +0 -189
  415. package/dist/tests/optimizer/sort-schemas.test.d.ts +0 -1
  416. package/dist/tests/optimizer/sort-schemas.test.js +0 -126
  417. package/dist/tests/optimizer/utils.d.ts +0 -8
  418. package/dist/tests/optimizer/utils.js +0 -199
  419. package/dist/tests/schemas/schemas-edge-cases.test.d.ts +0 -1
  420. package/dist/tests/schemas/schemas-edge-cases.test.js +0 -218
  421. package/dist/tests/schemas/schemas.test.d.ts +0 -1
  422. package/dist/tests/schemas/schemas.test.js +0 -395
  423. package/dist/tests/schemas/utils.d.ts +0 -2
  424. package/dist/tests/schemas/utils.js +0 -3
  425. package/dist/tests/utils.d.ts +0 -10
  426. package/dist/tests/utils.js +0 -118
  427. package/dist/tests/validator/config-validator.test.d.ts +0 -1
  428. package/dist/tests/validator/config-validator.test.js +0 -73
  429. package/dist/tests/validator/debug-config.d.ts +0 -0
  430. package/dist/tests/validator/debug-config.js +0 -1
  431. package/dist/tests/validator/debug-missing-service.d.ts +0 -0
  432. package/dist/tests/validator/debug-missing-service.js +0 -1
  433. package/dist/tests/validator/debug-other-configs.d.ts +0 -0
  434. package/dist/tests/validator/debug-other-configs.js +0 -1
  435. package/dist/tests/validator/debug-references.d.ts +0 -0
  436. package/dist/tests/validator/debug-references.js +0 -1
  437. package/dist/tests/validator/unispec-validator.test.d.ts +0 -1
  438. package/dist/tests/validator/unispec-validator.test.js +0 -98
  439. package/dist/tests/validator/utils.d.ts +0 -6
  440. package/dist/tests/validator/utils.js +0 -20
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diffUniSpecEnhanced = diffUniSpecEnhanced;
4
- const core_1 = require("./core.js");
5
- const impact_strategies_refactored_1 = require("./impact-strategies-refactored.js");
6
- const metrics_calculator_1 = require("./metrics-calculator.js");
7
- const risk_calculator_1 = require("./risk-calculator.js");
8
- const suggestion_generator_1 = require("./suggestion-generator.js");
9
- /**
10
- * Service instances for better separation of concerns.
11
- */
12
- const suggestionGenerator = new suggestion_generator_1.SuggestionGeneratorService();
13
- const metricsCalculator = new metrics_calculator_1.MetricsCalculatorService();
14
- /**
15
- * Perform enhanced diff analysis with impact assessment and compatibility metrics.
16
- *
17
- * This function extends the basic diff functionality with:
18
- * - Detailed impact analysis for each change
19
- * - Compatibility metrics
20
- * - Migration suggestions
21
- * - Risk assessment
22
- *
23
- * @param oldDoc - The previous version of the UniSpec document
24
- * @param newDoc - The current version of the UniSpec document
25
- * @returns Enhanced diff result with comprehensive analysis
26
- */
27
- function diffUniSpecEnhanced(oldDoc, newDoc) {
28
- // Get basic diff
29
- const basicDiff = (0, core_1.diffUniSpec)(oldDoc, newDoc);
30
- // Enhance each change with impact analysis using strategy pattern
31
- const enhancedChanges = basicDiff.changes.map((change) => {
32
- // Get appropriate strategy for the protocol
33
- const strategy = impact_strategies_refactored_1.ImpactAnalysisStrategyFactory.getStrategy(change.protocol);
34
- // Analyze impact using strategy
35
- const impact = strategy.analyze(change);
36
- // Generate suggestions
37
- const suggestions = suggestionGenerator.generateSuggestions(change, impact);
38
- // Calculate risk level using calculator
39
- const riskLevel = risk_calculator_1.RiskLevelCalculator.calculate(impact);
40
- return {
41
- ...change,
42
- impact,
43
- suggestions,
44
- riskLevel,
45
- };
46
- });
47
- // Calculate metrics
48
- const metrics = metricsCalculator.calculateMetrics(enhancedChanges);
49
- // Generate summary
50
- const summary = {
51
- totalChanges: enhancedChanges.length,
52
- criticalChanges: enhancedChanges.filter((c) => c.riskLevel === "critical")
53
- .length,
54
- highRiskChanges: enhancedChanges.filter((c) => c.riskLevel === "high")
55
- .length,
56
- mediumRiskChanges: enhancedChanges.filter((c) => c.riskLevel === "medium")
57
- .length,
58
- lowRiskChanges: enhancedChanges.filter((c) => c.riskLevel === "low").length,
59
- };
60
- return {
61
- changes: enhancedChanges,
62
- metrics,
63
- summary,
64
- };
65
- }
@@ -1,230 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImpactAnalysisStrategyFactory = exports.DefaultImpactStrategy = exports.WebSocketImpactStrategy = exports.GraphQLOperationImpactStrategy = exports.RestRouteImpactStrategy = void 0;
4
- /**
5
- * Base class for impact analysis strategies with common functionality.
6
- */
7
- class BaseImpactStrategy {
8
- createDefaultImpact() {
9
- return {
10
- backwardCompatibility: "unknown",
11
- clientImpact: "none",
12
- serverImpact: "none",
13
- migrationComplexity: "none",
14
- };
15
- }
16
- setBreakingChange(impact, clientImpact = "high", serverImpact = "medium", migrationComplexity = "moderate") {
17
- impact.backwardCompatibility = "incompatible";
18
- impact.clientImpact = clientImpact;
19
- impact.serverImpact = serverImpact;
20
- impact.migrationComplexity = migrationComplexity;
21
- return impact;
22
- }
23
- setNonBreakingChange(impact, clientImpact = "none", serverImpact = "low", migrationComplexity = "none") {
24
- impact.backwardCompatibility = "compatible";
25
- impact.clientImpact = clientImpact;
26
- impact.serverImpact = serverImpact;
27
- impact.migrationComplexity = migrationComplexity;
28
- return impact;
29
- }
30
- }
31
- /**
32
- * REST route impact analysis strategy.
33
- */
34
- class RestRouteImpactStrategy extends BaseImpactStrategy {
35
- analyze(change) {
36
- const impact = this.createDefaultImpact();
37
- // Route removal is always breaking
38
- if (this.isRouteRemoval(change)) {
39
- return this.setBreakingChange(impact, "high", "medium", "complex");
40
- }
41
- // Route addition is non-breaking
42
- if (this.isRouteAddition(change)) {
43
- return this.setNonBreakingChange(impact, "none", "low", "none");
44
- }
45
- // Method change is breaking
46
- if (this.isMethodChange(change)) {
47
- return this.setBreakingChange(impact, "high", "medium", "moderate");
48
- }
49
- // Path change is breaking
50
- if (this.isPathChange(change)) {
51
- return this.setBreakingChange(impact, "high", "medium", "moderate");
52
- }
53
- // Required parameter change is breaking
54
- if (this.isRequiredParameterChange(change)) {
55
- return this.setBreakingChange(impact, "medium", "low", "simple");
56
- }
57
- // Response status code removal is breaking
58
- if (this.isResponseRemoval(change)) {
59
- return this.setBreakingChange(impact, "medium", "low", "simple");
60
- }
61
- // Adding optional parameter is non-breaking
62
- if (this.isOptionalParameterAddition(change)) {
63
- return this.setNonBreakingChange(impact, "none", "low", "none");
64
- }
65
- return impact;
66
- }
67
- isRouteRemoval(change) {
68
- return (change.description === "Item removed" &&
69
- !!change.kind?.includes("route.removed"));
70
- }
71
- isRouteAddition(change) {
72
- return (change.description === "Item added" &&
73
- !!change.kind?.includes("route.added"));
74
- }
75
- isMethodChange(change) {
76
- return (change.path.includes("/method") && change.description === "Value changed");
77
- }
78
- isPathChange(change) {
79
- return (change.path.includes("/path") && change.description === "Value changed");
80
- }
81
- isRequiredParameterChange(change) {
82
- return (change.path.includes("/required") &&
83
- change.description === "Value changed");
84
- }
85
- isResponseRemoval(change) {
86
- return (change.path.includes("/responses/") &&
87
- change.description === "Item removed");
88
- }
89
- isOptionalParameterAddition(change) {
90
- return (change.path.includes("/queryParams/") &&
91
- change.description === "Item added");
92
- }
93
- }
94
- exports.RestRouteImpactStrategy = RestRouteImpactStrategy;
95
- /**
96
- * GraphQL operation impact analysis strategy.
97
- */
98
- class GraphQLOperationImpactStrategy extends BaseImpactStrategy {
99
- analyze(change) {
100
- const impact = this.createDefaultImpact();
101
- // Operation removal is breaking
102
- if (this.isOperationRemoval(change)) {
103
- return this.setBreakingChange(impact, "high", "medium", "complex");
104
- }
105
- // Operation addition is non-breaking
106
- if (this.isOperationAddition(change)) {
107
- return this.setNonBreakingChange(impact, "none", "low", "none");
108
- }
109
- // Return type change is breaking
110
- if (this.isReturnTypeChange(change)) {
111
- return this.setBreakingChange(impact, "high", "medium", "moderate");
112
- }
113
- // Adding optional argument is non-breaking
114
- if (this.isOptionalArgumentAddition(change)) {
115
- return this.setNonBreakingChange(impact, "none", "low", "none");
116
- }
117
- // Making argument required is breaking
118
- if (this.isRequiredArgumentChange(change)) {
119
- return this.setBreakingChange(impact, "medium", "low", "simple");
120
- }
121
- return impact;
122
- }
123
- isOperationRemoval(change) {
124
- return (change.description === "Item removed" &&
125
- !!change.kind?.includes("operation.removed"));
126
- }
127
- isOperationAddition(change) {
128
- return (change.description === "Item added" &&
129
- !!change.kind?.includes("operation.added"));
130
- }
131
- isReturnTypeChange(change) {
132
- return (change.path.includes("/returnType") &&
133
- change.description === "Value changed");
134
- }
135
- isOptionalArgumentAddition(change) {
136
- return (change.path.includes("/args/") && change.description === "Item added");
137
- }
138
- isRequiredArgumentChange(change) {
139
- return (change.path.includes("/args/") &&
140
- change.path.includes("/required") &&
141
- change.description === "Value changed");
142
- }
143
- }
144
- exports.GraphQLOperationImpactStrategy = GraphQLOperationImpactStrategy;
145
- /**
146
- * WebSocket impact analysis strategy.
147
- */
148
- class WebSocketImpactStrategy extends BaseImpactStrategy {
149
- analyze(change) {
150
- const impact = this.createDefaultImpact();
151
- // Channel removal is breaking
152
- if (this.isChannelRemoval(change)) {
153
- return this.setBreakingChange(impact, "high", "medium", "complex");
154
- }
155
- // Channel addition is non-breaking
156
- if (this.isChannelAddition(change)) {
157
- return this.setNonBreakingChange(impact, "none", "low", "none");
158
- }
159
- // Message removal is breaking
160
- if (this.isMessageRemoval(change)) {
161
- return this.setBreakingChange(impact, "medium", "low", "moderate");
162
- }
163
- // Message addition is non-breaking
164
- if (this.isMessageAddition(change)) {
165
- return this.setNonBreakingChange(impact, "none", "low", "none");
166
- }
167
- // Message schema change is breaking
168
- if (this.isMessageSchemaChange(change)) {
169
- return this.setBreakingChange(impact, "medium", "low", "moderate");
170
- }
171
- return impact;
172
- }
173
- isChannelRemoval(change) {
174
- return (change.description === "Item removed" &&
175
- !!change.kind?.includes("channel.removed"));
176
- }
177
- isChannelAddition(change) {
178
- return (change.description === "Item added" &&
179
- !!change.kind?.includes("channel.added"));
180
- }
181
- isMessageRemoval(change) {
182
- return (change.description === "Item removed" &&
183
- !!change.kind?.includes("message.removed"));
184
- }
185
- isMessageAddition(change) {
186
- return (change.description === "Item added" &&
187
- !!change.kind?.includes("message.added"));
188
- }
189
- isMessageSchemaChange(change) {
190
- return (change.path.includes("/schemaRef") &&
191
- change.description === "Value changed");
192
- }
193
- }
194
- exports.WebSocketImpactStrategy = WebSocketImpactStrategy;
195
- /**
196
- * Default impact analysis strategy for unknown changes.
197
- */
198
- class DefaultImpactStrategy extends BaseImpactStrategy {
199
- analyze(_change) {
200
- return this.createDefaultImpact();
201
- }
202
- }
203
- exports.DefaultImpactStrategy = DefaultImpactStrategy;
204
- /**
205
- * Factory for creating impact analysis strategies.
206
- */
207
- const ImpactAnalysisStrategyFactory = {
208
- strategies: new Map([
209
- ["rest", new RestRouteImpactStrategy()],
210
- ["graphql", new GraphQLOperationImpactStrategy()],
211
- ["websocket", new WebSocketImpactStrategy()],
212
- ]),
213
- getStrategy(protocol) {
214
- if (!protocol) {
215
- return new DefaultImpactStrategy();
216
- }
217
- const strategy = this.strategies.get(protocol);
218
- return strategy || new DefaultImpactStrategy();
219
- },
220
- registerStrategy(protocol, strategy) {
221
- this.strategies.set(protocol, strategy);
222
- },
223
- getAvailableStrategies() {
224
- return Array.from(this.strategies.keys());
225
- },
226
- clearStrategies() {
227
- this.strategies.clear();
228
- },
229
- };
230
- exports.ImpactAnalysisStrategyFactory = ImpactAnalysisStrategyFactory;
@@ -1,219 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImpactAnalysisStrategyFactory = exports.DefaultImpactStrategy = exports.WebSocketImpactStrategy = exports.GraphQLOperationImpactStrategy = exports.RestRouteImpactStrategy = void 0;
4
- /**
5
- * REST route impact analysis strategy.
6
- */
7
- class RestRouteImpactStrategy {
8
- analyze(change) {
9
- const impact = {
10
- backwardCompatibility: "unknown",
11
- clientImpact: "none",
12
- serverImpact: "none",
13
- migrationComplexity: "none",
14
- };
15
- // Route removal is always breaking
16
- if (change.description === "Item removed" &&
17
- change.kind?.includes("route.removed")) {
18
- impact.backwardCompatibility = "incompatible";
19
- impact.clientImpact = "high";
20
- impact.serverImpact = "medium";
21
- impact.migrationComplexity = "complex";
22
- }
23
- // Route addition is non-breaking
24
- if (change.description === "Item added" &&
25
- change.kind?.includes("route.added")) {
26
- impact.backwardCompatibility = "compatible";
27
- impact.clientImpact = "none";
28
- impact.serverImpact = "low";
29
- impact.migrationComplexity = "none";
30
- }
31
- // Method change is breaking
32
- if (change.path.includes("/method") &&
33
- change.description === "Value changed") {
34
- impact.backwardCompatibility = "incompatible";
35
- impact.clientImpact = "high";
36
- impact.serverImpact = "medium";
37
- impact.migrationComplexity = "moderate";
38
- }
39
- // Path change is breaking
40
- if (change.path.includes("/path") &&
41
- change.description === "Value changed") {
42
- impact.backwardCompatibility = "incompatible";
43
- impact.clientImpact = "high";
44
- impact.serverImpact = "medium";
45
- impact.migrationComplexity = "moderate";
46
- }
47
- // Required parameter change is breaking
48
- if (change.path.includes("/required") &&
49
- change.description === "Value changed") {
50
- impact.backwardCompatibility = "incompatible";
51
- impact.clientImpact = "medium";
52
- impact.serverImpact = "low";
53
- impact.migrationComplexity = "simple";
54
- }
55
- // Response status code removal is breaking
56
- if (change.path.includes("/responses/") &&
57
- change.description === "Item removed") {
58
- impact.backwardCompatibility = "incompatible";
59
- impact.clientImpact = "medium";
60
- impact.serverImpact = "low";
61
- impact.migrationComplexity = "simple";
62
- }
63
- // Adding optional parameter is non-breaking
64
- if (change.path.includes("/queryParams/") &&
65
- change.description === "Item added") {
66
- impact.backwardCompatibility = "compatible";
67
- impact.clientImpact = "none";
68
- impact.serverImpact = "low";
69
- impact.migrationComplexity = "none";
70
- }
71
- return impact;
72
- }
73
- }
74
- exports.RestRouteImpactStrategy = RestRouteImpactStrategy;
75
- /**
76
- * GraphQL operation impact analysis strategy.
77
- */
78
- class GraphQLOperationImpactStrategy {
79
- analyze(change) {
80
- const impact = {
81
- backwardCompatibility: "unknown",
82
- clientImpact: "none",
83
- serverImpact: "none",
84
- migrationComplexity: "none",
85
- };
86
- // Operation removal is breaking
87
- if (change.description === "Item removed" &&
88
- change.kind?.includes("operation.removed")) {
89
- impact.backwardCompatibility = "incompatible";
90
- impact.clientImpact = "high";
91
- impact.serverImpact = "medium";
92
- impact.migrationComplexity = "complex";
93
- }
94
- // Operation addition is non-breaking
95
- if (change.description === "Item added" &&
96
- change.kind?.includes("operation.added")) {
97
- impact.backwardCompatibility = "compatible";
98
- impact.clientImpact = "none";
99
- impact.serverImpact = "low";
100
- impact.migrationComplexity = "none";
101
- }
102
- // Return type change is breaking
103
- if (change.path.includes("/returnType") &&
104
- change.description === "Value changed") {
105
- impact.backwardCompatibility = "incompatible";
106
- impact.clientImpact = "high";
107
- impact.serverImpact = "medium";
108
- impact.migrationComplexity = "moderate";
109
- }
110
- // Adding optional argument is non-breaking
111
- if (change.path.includes("/args/") && change.description === "Item added") {
112
- impact.backwardCompatibility = "compatible";
113
- impact.clientImpact = "none";
114
- impact.serverImpact = "low";
115
- impact.migrationComplexity = "none";
116
- }
117
- // Making argument required is breaking
118
- if (change.path.includes("/args/") &&
119
- change.path.includes("/required") &&
120
- change.description === "Value changed") {
121
- impact.backwardCompatibility = "incompatible";
122
- impact.clientImpact = "medium";
123
- impact.serverImpact = "low";
124
- impact.migrationComplexity = "simple";
125
- }
126
- return impact;
127
- }
128
- }
129
- exports.GraphQLOperationImpactStrategy = GraphQLOperationImpactStrategy;
130
- /**
131
- * WebSocket impact analysis strategy.
132
- */
133
- class WebSocketImpactStrategy {
134
- analyze(change) {
135
- const impact = {
136
- backwardCompatibility: "unknown",
137
- clientImpact: "none",
138
- serverImpact: "none",
139
- migrationComplexity: "none",
140
- };
141
- // Channel removal is breaking
142
- if (change.description === "Item removed" &&
143
- change.kind?.includes("channel.removed")) {
144
- impact.backwardCompatibility = "incompatible";
145
- impact.clientImpact = "high";
146
- impact.serverImpact = "medium";
147
- impact.migrationComplexity = "complex";
148
- }
149
- // Channel addition is non-breaking
150
- if (change.description === "Item added" &&
151
- change.kind?.includes("channel.added")) {
152
- impact.backwardCompatibility = "compatible";
153
- impact.clientImpact = "none";
154
- impact.serverImpact = "low";
155
- impact.migrationComplexity = "none";
156
- }
157
- // Message removal is breaking
158
- if (change.description === "Item removed" &&
159
- change.kind?.includes("message.removed")) {
160
- impact.backwardCompatibility = "incompatible";
161
- impact.clientImpact = "medium";
162
- impact.serverImpact = "low";
163
- impact.migrationComplexity = "moderate";
164
- }
165
- // Message addition is non-breaking
166
- if (change.description === "Item added" &&
167
- change.kind?.includes("message.added")) {
168
- impact.backwardCompatibility = "compatible";
169
- impact.clientImpact = "none";
170
- impact.serverImpact = "low";
171
- impact.migrationComplexity = "none";
172
- }
173
- // Message schema change is breaking
174
- if (change.path.includes("/schemaRef") &&
175
- change.description === "Value changed") {
176
- impact.backwardCompatibility = "incompatible";
177
- impact.clientImpact = "medium";
178
- impact.serverImpact = "low";
179
- impact.migrationComplexity = "moderate";
180
- }
181
- return impact;
182
- }
183
- }
184
- exports.WebSocketImpactStrategy = WebSocketImpactStrategy;
185
- /**
186
- * Default impact analysis strategy for unknown changes.
187
- */
188
- class DefaultImpactStrategy {
189
- analyze(_change) {
190
- return {
191
- backwardCompatibility: "unknown",
192
- clientImpact: "none",
193
- serverImpact: "none",
194
- migrationComplexity: "none",
195
- };
196
- }
197
- }
198
- exports.DefaultImpactStrategy = DefaultImpactStrategy;
199
- /**
200
- * Factory for creating impact analysis strategies.
201
- */
202
- const ImpactAnalysisStrategyFactory = {
203
- strategies: new Map([
204
- ["rest", new RestRouteImpactStrategy()],
205
- ["graphql", new GraphQLOperationImpactStrategy()],
206
- ["websocket", new WebSocketImpactStrategy()],
207
- ]),
208
- getStrategy(protocol) {
209
- if (!protocol) {
210
- return new DefaultImpactStrategy();
211
- }
212
- const strategy = this.strategies.get(protocol);
213
- return strategy || new DefaultImpactStrategy();
214
- },
215
- registerStrategy(protocol, strategy) {
216
- this.strategies.set(protocol, strategy);
217
- },
218
- };
219
- exports.ImpactAnalysisStrategyFactory = ImpactAnalysisStrategyFactory;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- // Export types
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- __exportStar(require("./change-reports.js"), exports);
19
- // Export core functionality
20
- __exportStar(require("./core.js"), exports);
21
- // Export enhanced functionality
22
- __exportStar(require("./enhanced-diff.js"), exports);
23
- __exportStar(require("./impact-strategies-refactored.js"), exports);
24
- __exportStar(require("./metrics-calculator.js"), exports);
25
- __exportStar(require("./risk-calculator.js"), exports);
26
- __exportStar(require("./suggestion-generator.js"), exports);
27
- __exportStar(require("./types.js"), exports);
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MetricsCalculatorService = void 0;
4
- /**
5
- * Service for calculating compatibility metrics from enhanced changes.
6
- */
7
- class MetricsCalculatorService {
8
- /**
9
- * Calculate compatibility metrics from enhanced changes.
10
- */
11
- calculateMetrics(changes) {
12
- const breakingChanges = this.filterBreakingChanges(changes);
13
- const nonBreakingChanges = this.filterNonBreakingChanges(changes);
14
- const totalChanges = changes.length;
15
- const breakingScore = this.calculateBreakingScore(breakingChanges.length, totalChanges);
16
- const overallCompatibility = Math.max(0, 100 - breakingScore);
17
- const clientScore = this.calculateClientCompatibilityScore(changes);
18
- const serverScore = this.calculateServerCompatibilityScore(changes);
19
- const migrationEffort = this.determineMigrationEffort(breakingChanges, nonBreakingChanges);
20
- return {
21
- overallCompatibility: Math.round(overallCompatibility),
22
- breakingChangesCount: breakingChanges.length,
23
- nonBreakingChangesCount: nonBreakingChanges.length,
24
- clientCompatibilityScore: Math.round(clientScore),
25
- serverCompatibilityScore: Math.round(serverScore),
26
- migrationEffort,
27
- };
28
- }
29
- filterBreakingChanges(changes) {
30
- return changes.filter((c) => c.impact.backwardCompatibility === "incompatible");
31
- }
32
- filterNonBreakingChanges(changes) {
33
- return changes.filter((c) => c.impact.backwardCompatibility === "compatible");
34
- }
35
- calculateBreakingScore(breakingCount, totalChanges) {
36
- return totalChanges > 0 ? (breakingCount / totalChanges) * 100 : 0;
37
- }
38
- calculateClientCompatibilityScore(changes) {
39
- const totalChanges = changes.length;
40
- if (totalChanges === 0)
41
- return 100;
42
- const highClientImpact = changes.filter((c) => c.impact.clientImpact === "high").length;
43
- const mediumClientImpact = changes.filter((c) => c.impact.clientImpact === "medium").length;
44
- return (100 - (highClientImpact * 50 + mediumClientImpact * 25) / totalChanges);
45
- }
46
- calculateServerCompatibilityScore(changes) {
47
- const totalChanges = changes.length;
48
- if (totalChanges === 0)
49
- return 100;
50
- const highServerImpact = changes.filter((c) => c.impact.serverImpact === "high").length;
51
- const mediumServerImpact = changes.filter((c) => c.impact.serverImpact === "medium").length;
52
- return (100 - (highServerImpact * 30 + mediumServerImpact * 15) / totalChanges);
53
- }
54
- determineMigrationEffort(breakingChanges, _nonBreakingChanges) {
55
- const complexMigrations = breakingChanges.filter((c) => c.impact.migrationComplexity === "complex").length;
56
- const moderateMigrations = breakingChanges.filter((c) => c.impact.migrationComplexity === "moderate").length;
57
- if (complexMigrations > 0) {
58
- return "major";
59
- }
60
- else if (moderateMigrations > 2) {
61
- return "significant";
62
- }
63
- else if (moderateMigrations > 0 || breakingChanges.length > 3) {
64
- return "moderate";
65
- }
66
- return "minimal";
67
- }
68
- }
69
- exports.MetricsCalculatorService = MetricsCalculatorService;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RiskLevelCalculator = void 0;
4
- /**
5
- * Calculator for determining risk levels based on change impact.
6
- */
7
- exports.RiskLevelCalculator = {
8
- /**
9
- * Calculate risk level based on impact.
10
- */
11
- calculate(impact) {
12
- // Critical: Breaking changes with high client impact
13
- if (impact.backwardCompatibility === "incompatible" &&
14
- impact.clientImpact === "high") {
15
- return "critical";
16
- }
17
- // High: Any breaking change
18
- if (impact.backwardCompatibility === "incompatible") {
19
- return "high";
20
- }
21
- // Medium: Medium impact on client or server
22
- if (impact.clientImpact === "medium" || impact.serverImpact === "medium") {
23
- return "medium";
24
- }
25
- // Low: Everything else
26
- return "low";
27
- },
28
- /**
29
- * Get risk level weight for sorting.
30
- */
31
- getWeight(riskLevel) {
32
- const weights = {
33
- critical: 4,
34
- high: 3,
35
- medium: 2,
36
- low: 1,
37
- };
38
- return weights[riskLevel];
39
- },
40
- /**
41
- * Check if risk level requires immediate attention.
42
- */
43
- requiresImmediateAttention(riskLevel) {
44
- return riskLevel === "critical" || riskLevel === "high";
45
- },
46
- /**
47
- * Get risk level description.
48
- */
49
- getDescription(riskLevel) {
50
- const descriptions = {
51
- critical: "Critical breaking change requiring immediate action",
52
- high: "Breaking change that requires attention",
53
- medium: "Moderate change with some impact",
54
- low: "Minor change with minimal impact",
55
- };
56
- return descriptions[riskLevel];
57
- },
58
- };