@hyperfrontend/versioning 0.1.0

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 (353) hide show
  1. package/ARCHITECTURE.md +593 -0
  2. package/CHANGELOG.md +35 -0
  3. package/FUNDING.md +141 -0
  4. package/LICENSE.md +21 -0
  5. package/README.md +195 -0
  6. package/SECURITY.md +82 -0
  7. package/changelog/compare/diff.d.ts +128 -0
  8. package/changelog/compare/diff.d.ts.map +1 -0
  9. package/changelog/compare/index.cjs.js +628 -0
  10. package/changelog/compare/index.cjs.js.map +1 -0
  11. package/changelog/compare/index.d.ts +4 -0
  12. package/changelog/compare/index.d.ts.map +1 -0
  13. package/changelog/compare/index.esm.js +612 -0
  14. package/changelog/compare/index.esm.js.map +1 -0
  15. package/changelog/compare/is-equal.d.ts +114 -0
  16. package/changelog/compare/is-equal.d.ts.map +1 -0
  17. package/changelog/index.cjs.js +6448 -0
  18. package/changelog/index.cjs.js.map +1 -0
  19. package/changelog/index.d.ts +6 -0
  20. package/changelog/index.d.ts.map +1 -0
  21. package/changelog/index.esm.js +6358 -0
  22. package/changelog/index.esm.js.map +1 -0
  23. package/changelog/models/changelog.d.ts +86 -0
  24. package/changelog/models/changelog.d.ts.map +1 -0
  25. package/changelog/models/commit-ref.d.ts +51 -0
  26. package/changelog/models/commit-ref.d.ts.map +1 -0
  27. package/changelog/models/entry.d.ts +84 -0
  28. package/changelog/models/entry.d.ts.map +1 -0
  29. package/changelog/models/index.cjs.js +2043 -0
  30. package/changelog/models/index.cjs.js.map +1 -0
  31. package/changelog/models/index.d.ts +11 -0
  32. package/changelog/models/index.d.ts.map +1 -0
  33. package/changelog/models/index.esm.js +2026 -0
  34. package/changelog/models/index.esm.js.map +1 -0
  35. package/changelog/models/schema.d.ts +68 -0
  36. package/changelog/models/schema.d.ts.map +1 -0
  37. package/changelog/models/section.d.ts +25 -0
  38. package/changelog/models/section.d.ts.map +1 -0
  39. package/changelog/operations/add-entry.d.ts +56 -0
  40. package/changelog/operations/add-entry.d.ts.map +1 -0
  41. package/changelog/operations/add-item.d.ts +18 -0
  42. package/changelog/operations/add-item.d.ts.map +1 -0
  43. package/changelog/operations/filter-by-predicate.d.ts +81 -0
  44. package/changelog/operations/filter-by-predicate.d.ts.map +1 -0
  45. package/changelog/operations/filter-by-range.d.ts +63 -0
  46. package/changelog/operations/filter-by-range.d.ts.map +1 -0
  47. package/changelog/operations/filter-entries.d.ts +9 -0
  48. package/changelog/operations/filter-entries.d.ts.map +1 -0
  49. package/changelog/operations/index.cjs.js +2455 -0
  50. package/changelog/operations/index.cjs.js.map +1 -0
  51. package/changelog/operations/index.d.ts +15 -0
  52. package/changelog/operations/index.d.ts.map +1 -0
  53. package/changelog/operations/index.esm.js +2411 -0
  54. package/changelog/operations/index.esm.js.map +1 -0
  55. package/changelog/operations/merge.d.ts +88 -0
  56. package/changelog/operations/merge.d.ts.map +1 -0
  57. package/changelog/operations/remove-entry.d.ts +45 -0
  58. package/changelog/operations/remove-entry.d.ts.map +1 -0
  59. package/changelog/operations/remove-section.d.ts +50 -0
  60. package/changelog/operations/remove-section.d.ts.map +1 -0
  61. package/changelog/operations/transform.d.ts +143 -0
  62. package/changelog/operations/transform.d.ts.map +1 -0
  63. package/changelog/parse/index.cjs.js +1282 -0
  64. package/changelog/parse/index.cjs.js.map +1 -0
  65. package/changelog/parse/index.d.ts +5 -0
  66. package/changelog/parse/index.d.ts.map +1 -0
  67. package/changelog/parse/index.esm.js +1275 -0
  68. package/changelog/parse/index.esm.js.map +1 -0
  69. package/changelog/parse/line.d.ts +48 -0
  70. package/changelog/parse/line.d.ts.map +1 -0
  71. package/changelog/parse/parser.d.ts +16 -0
  72. package/changelog/parse/parser.d.ts.map +1 -0
  73. package/changelog/parse/tokenizer.d.ts +49 -0
  74. package/changelog/parse/tokenizer.d.ts.map +1 -0
  75. package/changelog/serialize/index.cjs.js +574 -0
  76. package/changelog/serialize/index.cjs.js.map +1 -0
  77. package/changelog/serialize/index.d.ts +6 -0
  78. package/changelog/serialize/index.d.ts.map +1 -0
  79. package/changelog/serialize/index.esm.js +564 -0
  80. package/changelog/serialize/index.esm.js.map +1 -0
  81. package/changelog/serialize/templates.d.ts +81 -0
  82. package/changelog/serialize/templates.d.ts.map +1 -0
  83. package/changelog/serialize/to-json.d.ts +57 -0
  84. package/changelog/serialize/to-json.d.ts.map +1 -0
  85. package/changelog/serialize/to-string.d.ts +30 -0
  86. package/changelog/serialize/to-string.d.ts.map +1 -0
  87. package/commits/index.cjs.js +648 -0
  88. package/commits/index.cjs.js.map +1 -0
  89. package/commits/index.d.ts +3 -0
  90. package/commits/index.d.ts.map +1 -0
  91. package/commits/index.esm.js +629 -0
  92. package/commits/index.esm.js.map +1 -0
  93. package/commits/models/breaking.d.ts +39 -0
  94. package/commits/models/breaking.d.ts.map +1 -0
  95. package/commits/models/commit-type.d.ts +32 -0
  96. package/commits/models/commit-type.d.ts.map +1 -0
  97. package/commits/models/conventional.d.ts +49 -0
  98. package/commits/models/conventional.d.ts.map +1 -0
  99. package/commits/models/index.cjs.js +207 -0
  100. package/commits/models/index.cjs.js.map +1 -0
  101. package/commits/models/index.d.ts +7 -0
  102. package/commits/models/index.d.ts.map +1 -0
  103. package/commits/models/index.esm.js +193 -0
  104. package/commits/models/index.esm.js.map +1 -0
  105. package/commits/parse/body.d.ts +18 -0
  106. package/commits/parse/body.d.ts.map +1 -0
  107. package/commits/parse/footer.d.ts +16 -0
  108. package/commits/parse/footer.d.ts.map +1 -0
  109. package/commits/parse/header.d.ts +15 -0
  110. package/commits/parse/header.d.ts.map +1 -0
  111. package/commits/parse/index.cjs.js +505 -0
  112. package/commits/parse/index.cjs.js.map +1 -0
  113. package/commits/parse/index.d.ts +5 -0
  114. package/commits/parse/index.d.ts.map +1 -0
  115. package/commits/parse/index.esm.js +499 -0
  116. package/commits/parse/index.esm.js.map +1 -0
  117. package/commits/parse/message.d.ts +17 -0
  118. package/commits/parse/message.d.ts.map +1 -0
  119. package/commits/utils/replace-char.d.ts +19 -0
  120. package/commits/utils/replace-char.d.ts.map +1 -0
  121. package/flow/executor/execute.d.ts +72 -0
  122. package/flow/executor/execute.d.ts.map +1 -0
  123. package/flow/executor/index.cjs.js +4402 -0
  124. package/flow/executor/index.cjs.js.map +1 -0
  125. package/flow/executor/index.d.ts +3 -0
  126. package/flow/executor/index.d.ts.map +1 -0
  127. package/flow/executor/index.esm.js +4398 -0
  128. package/flow/executor/index.esm.js.map +1 -0
  129. package/flow/factory.d.ts +58 -0
  130. package/flow/factory.d.ts.map +1 -0
  131. package/flow/index.cjs.js +8506 -0
  132. package/flow/index.cjs.js.map +1 -0
  133. package/flow/index.d.ts +7 -0
  134. package/flow/index.d.ts.map +1 -0
  135. package/flow/index.esm.js +8451 -0
  136. package/flow/index.esm.js.map +1 -0
  137. package/flow/models/flow.d.ts +130 -0
  138. package/flow/models/flow.d.ts.map +1 -0
  139. package/flow/models/index.cjs.js +285 -0
  140. package/flow/models/index.cjs.js.map +1 -0
  141. package/flow/models/index.d.ts +7 -0
  142. package/flow/models/index.d.ts.map +1 -0
  143. package/flow/models/index.esm.js +268 -0
  144. package/flow/models/index.esm.js.map +1 -0
  145. package/flow/models/step.d.ts +108 -0
  146. package/flow/models/step.d.ts.map +1 -0
  147. package/flow/models/types.d.ts +150 -0
  148. package/flow/models/types.d.ts.map +1 -0
  149. package/flow/presets/conventional.d.ts +59 -0
  150. package/flow/presets/conventional.d.ts.map +1 -0
  151. package/flow/presets/independent.d.ts +61 -0
  152. package/flow/presets/independent.d.ts.map +1 -0
  153. package/flow/presets/index.cjs.js +3903 -0
  154. package/flow/presets/index.cjs.js.map +1 -0
  155. package/flow/presets/index.d.ts +4 -0
  156. package/flow/presets/index.d.ts.map +1 -0
  157. package/flow/presets/index.esm.js +3889 -0
  158. package/flow/presets/index.esm.js.map +1 -0
  159. package/flow/presets/synced.d.ts +65 -0
  160. package/flow/presets/synced.d.ts.map +1 -0
  161. package/flow/steps/analyze-commits.d.ts +19 -0
  162. package/flow/steps/analyze-commits.d.ts.map +1 -0
  163. package/flow/steps/calculate-bump.d.ts +27 -0
  164. package/flow/steps/calculate-bump.d.ts.map +1 -0
  165. package/flow/steps/create-commit.d.ts +16 -0
  166. package/flow/steps/create-commit.d.ts.map +1 -0
  167. package/flow/steps/create-tag.d.ts +22 -0
  168. package/flow/steps/create-tag.d.ts.map +1 -0
  169. package/flow/steps/fetch-registry.d.ts +19 -0
  170. package/flow/steps/fetch-registry.d.ts.map +1 -0
  171. package/flow/steps/generate-changelog.d.ts +25 -0
  172. package/flow/steps/generate-changelog.d.ts.map +1 -0
  173. package/flow/steps/index.cjs.js +3523 -0
  174. package/flow/steps/index.cjs.js.map +1 -0
  175. package/flow/steps/index.d.ts +8 -0
  176. package/flow/steps/index.d.ts.map +1 -0
  177. package/flow/steps/index.esm.js +3504 -0
  178. package/flow/steps/index.esm.js.map +1 -0
  179. package/flow/steps/update-packages.d.ts +25 -0
  180. package/flow/steps/update-packages.d.ts.map +1 -0
  181. package/flow/utils/interpolate.d.ts +11 -0
  182. package/flow/utils/interpolate.d.ts.map +1 -0
  183. package/git/factory.d.ts +233 -0
  184. package/git/factory.d.ts.map +1 -0
  185. package/git/index.cjs.js +2863 -0
  186. package/git/index.cjs.js.map +1 -0
  187. package/git/index.d.ts +5 -0
  188. package/git/index.d.ts.map +1 -0
  189. package/git/index.esm.js +2785 -0
  190. package/git/index.esm.js.map +1 -0
  191. package/git/models/commit.d.ts +129 -0
  192. package/git/models/commit.d.ts.map +1 -0
  193. package/git/models/index.cjs.js +755 -0
  194. package/git/models/index.cjs.js.map +1 -0
  195. package/git/models/index.d.ts +7 -0
  196. package/git/models/index.d.ts.map +1 -0
  197. package/git/models/index.esm.js +729 -0
  198. package/git/models/index.esm.js.map +1 -0
  199. package/git/models/ref.d.ts +120 -0
  200. package/git/models/ref.d.ts.map +1 -0
  201. package/git/models/tag.d.ts +141 -0
  202. package/git/models/tag.d.ts.map +1 -0
  203. package/git/operations/commit.d.ts +97 -0
  204. package/git/operations/commit.d.ts.map +1 -0
  205. package/git/operations/head-info.d.ts +29 -0
  206. package/git/operations/head-info.d.ts.map +1 -0
  207. package/git/operations/index.cjs.js +1954 -0
  208. package/git/operations/index.cjs.js.map +1 -0
  209. package/git/operations/index.d.ts +14 -0
  210. package/git/operations/index.d.ts.map +1 -0
  211. package/git/operations/index.esm.js +1903 -0
  212. package/git/operations/index.esm.js.map +1 -0
  213. package/git/operations/log.d.ts +104 -0
  214. package/git/operations/log.d.ts.map +1 -0
  215. package/git/operations/manage-tags.d.ts +60 -0
  216. package/git/operations/manage-tags.d.ts.map +1 -0
  217. package/git/operations/query-tags.d.ts +88 -0
  218. package/git/operations/query-tags.d.ts.map +1 -0
  219. package/git/operations/stage.d.ts +66 -0
  220. package/git/operations/stage.d.ts.map +1 -0
  221. package/git/operations/status.d.ts +173 -0
  222. package/git/operations/status.d.ts.map +1 -0
  223. package/index.cjs.js +16761 -0
  224. package/index.cjs.js.map +1 -0
  225. package/index.d.ts +102 -0
  226. package/index.d.ts.map +1 -0
  227. package/index.esm.js +16427 -0
  228. package/index.esm.js.map +1 -0
  229. package/package.json +200 -0
  230. package/registry/factory.d.ts +18 -0
  231. package/registry/factory.d.ts.map +1 -0
  232. package/registry/index.cjs.js +543 -0
  233. package/registry/index.cjs.js.map +1 -0
  234. package/registry/index.d.ts +5 -0
  235. package/registry/index.d.ts.map +1 -0
  236. package/registry/index.esm.js +535 -0
  237. package/registry/index.esm.js.map +1 -0
  238. package/registry/models/index.cjs.js +69 -0
  239. package/registry/models/index.cjs.js.map +1 -0
  240. package/registry/models/index.d.ts +6 -0
  241. package/registry/models/index.d.ts.map +1 -0
  242. package/registry/models/index.esm.js +66 -0
  243. package/registry/models/index.esm.js.map +1 -0
  244. package/registry/models/package-info.d.ts +55 -0
  245. package/registry/models/package-info.d.ts.map +1 -0
  246. package/registry/models/registry.d.ts +62 -0
  247. package/registry/models/registry.d.ts.map +1 -0
  248. package/registry/models/version-info.d.ts +67 -0
  249. package/registry/models/version-info.d.ts.map +1 -0
  250. package/registry/npm/cache.d.ts +50 -0
  251. package/registry/npm/cache.d.ts.map +1 -0
  252. package/registry/npm/client.d.ts +30 -0
  253. package/registry/npm/client.d.ts.map +1 -0
  254. package/registry/npm/index.cjs.js +456 -0
  255. package/registry/npm/index.cjs.js.map +1 -0
  256. package/registry/npm/index.d.ts +4 -0
  257. package/registry/npm/index.d.ts.map +1 -0
  258. package/registry/npm/index.esm.js +451 -0
  259. package/registry/npm/index.esm.js.map +1 -0
  260. package/semver/compare/compare.d.ts +100 -0
  261. package/semver/compare/compare.d.ts.map +1 -0
  262. package/semver/compare/index.cjs.js +386 -0
  263. package/semver/compare/index.cjs.js.map +1 -0
  264. package/semver/compare/index.d.ts +3 -0
  265. package/semver/compare/index.d.ts.map +1 -0
  266. package/semver/compare/index.esm.js +370 -0
  267. package/semver/compare/index.esm.js.map +1 -0
  268. package/semver/compare/sort.d.ts +36 -0
  269. package/semver/compare/sort.d.ts.map +1 -0
  270. package/semver/format/index.cjs.js +58 -0
  271. package/semver/format/index.cjs.js.map +1 -0
  272. package/semver/format/index.d.ts +2 -0
  273. package/semver/format/index.d.ts.map +1 -0
  274. package/semver/format/index.esm.js +53 -0
  275. package/semver/format/index.esm.js.map +1 -0
  276. package/semver/format/to-string.d.ts +31 -0
  277. package/semver/format/to-string.d.ts.map +1 -0
  278. package/semver/increment/bump.d.ts +37 -0
  279. package/semver/increment/bump.d.ts.map +1 -0
  280. package/semver/increment/index.cjs.js +223 -0
  281. package/semver/increment/index.cjs.js.map +1 -0
  282. package/semver/increment/index.d.ts +2 -0
  283. package/semver/increment/index.d.ts.map +1 -0
  284. package/semver/increment/index.esm.js +219 -0
  285. package/semver/increment/index.esm.js.map +1 -0
  286. package/semver/index.cjs.js +1499 -0
  287. package/semver/index.cjs.js.map +1 -0
  288. package/semver/index.d.ts +6 -0
  289. package/semver/index.d.ts.map +1 -0
  290. package/semver/index.esm.js +1458 -0
  291. package/semver/index.esm.js.map +1 -0
  292. package/semver/models/index.cjs.js +153 -0
  293. package/semver/models/index.cjs.js.map +1 -0
  294. package/semver/models/index.d.ts +5 -0
  295. package/semver/models/index.d.ts.map +1 -0
  296. package/semver/models/index.esm.js +139 -0
  297. package/semver/models/index.esm.js.map +1 -0
  298. package/semver/models/range.d.ts +83 -0
  299. package/semver/models/range.d.ts.map +1 -0
  300. package/semver/models/version.d.ts +78 -0
  301. package/semver/models/version.d.ts.map +1 -0
  302. package/semver/parse/index.cjs.js +799 -0
  303. package/semver/parse/index.cjs.js.map +1 -0
  304. package/semver/parse/index.d.ts +5 -0
  305. package/semver/parse/index.d.ts.map +1 -0
  306. package/semver/parse/index.esm.js +793 -0
  307. package/semver/parse/index.esm.js.map +1 -0
  308. package/semver/parse/range.d.ts +38 -0
  309. package/semver/parse/range.d.ts.map +1 -0
  310. package/semver/parse/version.d.ts +49 -0
  311. package/semver/parse/version.d.ts.map +1 -0
  312. package/workspace/discovery/changelog-path.d.ts +21 -0
  313. package/workspace/discovery/changelog-path.d.ts.map +1 -0
  314. package/workspace/discovery/dependencies.d.ts +145 -0
  315. package/workspace/discovery/dependencies.d.ts.map +1 -0
  316. package/workspace/discovery/discover-changelogs.d.ts +76 -0
  317. package/workspace/discovery/discover-changelogs.d.ts.map +1 -0
  318. package/workspace/discovery/index.cjs.js +2300 -0
  319. package/workspace/discovery/index.cjs.js.map +1 -0
  320. package/workspace/discovery/index.d.ts +13 -0
  321. package/workspace/discovery/index.d.ts.map +1 -0
  322. package/workspace/discovery/index.esm.js +2283 -0
  323. package/workspace/discovery/index.esm.js.map +1 -0
  324. package/workspace/discovery/packages.d.ts +83 -0
  325. package/workspace/discovery/packages.d.ts.map +1 -0
  326. package/workspace/index.cjs.js +4445 -0
  327. package/workspace/index.cjs.js.map +1 -0
  328. package/workspace/index.d.ts +52 -0
  329. package/workspace/index.d.ts.map +1 -0
  330. package/workspace/index.esm.js +4394 -0
  331. package/workspace/index.esm.js.map +1 -0
  332. package/workspace/models/index.cjs.js +284 -0
  333. package/workspace/models/index.cjs.js.map +1 -0
  334. package/workspace/models/index.d.ts +10 -0
  335. package/workspace/models/index.d.ts.map +1 -0
  336. package/workspace/models/index.esm.js +261 -0
  337. package/workspace/models/index.esm.js.map +1 -0
  338. package/workspace/models/project.d.ts +118 -0
  339. package/workspace/models/project.d.ts.map +1 -0
  340. package/workspace/models/workspace.d.ts +139 -0
  341. package/workspace/models/workspace.d.ts.map +1 -0
  342. package/workspace/operations/batch-update.d.ts +99 -0
  343. package/workspace/operations/batch-update.d.ts.map +1 -0
  344. package/workspace/operations/cascade-bump.d.ts +125 -0
  345. package/workspace/operations/cascade-bump.d.ts.map +1 -0
  346. package/workspace/operations/index.cjs.js +2675 -0
  347. package/workspace/operations/index.cjs.js.map +1 -0
  348. package/workspace/operations/index.d.ts +12 -0
  349. package/workspace/operations/index.d.ts.map +1 -0
  350. package/workspace/operations/index.esm.js +2663 -0
  351. package/workspace/operations/index.esm.js.map +1 -0
  352. package/workspace/operations/validate.d.ts +85 -0
  353. package/workspace/operations/validate.d.ts.map +1 -0
@@ -0,0 +1,612 @@
1
+ /**
2
+ * Safe copies of Set built-in via factory function.
3
+ *
4
+ * Since constructors cannot be safely captured via Object.assign, this module
5
+ * provides a factory function that uses Reflect.construct internally.
6
+ *
7
+ * These references are captured at module initialization time to protect against
8
+ * prototype pollution attacks. Import only what you need for tree-shaking.
9
+ *
10
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/set
11
+ */
12
+ // Capture references at module initialization time
13
+ const _Set = globalThis.Set;
14
+ const _Reflect$1 = globalThis.Reflect;
15
+ /**
16
+ * (Safe copy) Creates a new Set using the captured Set constructor.
17
+ * Use this instead of `new Set()`.
18
+ *
19
+ * @param iterable - Optional iterable of values.
20
+ * @returns A new Set instance.
21
+ */
22
+ const createSet = (iterable) => _Reflect$1.construct(_Set, iterable ? [iterable] : []);
23
+
24
+ /**
25
+ * Changelog Equality Comparison
26
+ *
27
+ * Functions for comparing changelogs for structural equality.
28
+ * Uses deep comparison without relying on JSON serialization.
29
+ */
30
+ /**
31
+ * Checks if two changelogs are structurally identical.
32
+ *
33
+ * @param a - First changelog
34
+ * @param b - Second changelog
35
+ * @returns True if changelogs are identical
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * if (isChangelogEqual(mainChangelog, branchChangelog)) {
40
+ * console.log('Changelogs are identical')
41
+ * }
42
+ * ```
43
+ */
44
+ function isChangelogEqual(a, b) {
45
+ // Check source (optional field)
46
+ if (a.source !== b.source)
47
+ return false;
48
+ // Check header
49
+ if (!isHeaderEqual(a.header, b.header))
50
+ return false;
51
+ // Check entries
52
+ if (a.entries.length !== b.entries.length)
53
+ return false;
54
+ for (let i = 0; i < a.entries.length; i++) {
55
+ if (!isEntryEqual(a.entries[i], b.entries[i]))
56
+ return false;
57
+ }
58
+ // Check metadata
59
+ if (!isMetadataEqual(a.metadata, b.metadata))
60
+ return false;
61
+ return true;
62
+ }
63
+ /**
64
+ * Checks if two changelog headers are equal.
65
+ *
66
+ * @param a - First header
67
+ * @param b - Second header
68
+ * @returns True if headers are equal
69
+ */
70
+ function isHeaderEqual(a, b) {
71
+ if (a.title !== b.title)
72
+ return false;
73
+ // Check description
74
+ if (a.description.length !== b.description.length)
75
+ return false;
76
+ for (let i = 0; i < a.description.length; i++) {
77
+ if (a.description[i] !== b.description[i])
78
+ return false;
79
+ }
80
+ // Check links
81
+ if (a.links.length !== b.links.length)
82
+ return false;
83
+ for (let i = 0; i < a.links.length; i++) {
84
+ if (!isLinkEqual(a.links[i], b.links[i]))
85
+ return false;
86
+ }
87
+ return true;
88
+ }
89
+ /**
90
+ * Checks if two changelog links are equal.
91
+ *
92
+ * @param a - First link
93
+ * @param b - Second link
94
+ * @returns True if links are equal
95
+ */
96
+ function isLinkEqual(a, b) {
97
+ return a.label === b.label && a.url === b.url;
98
+ }
99
+ /**
100
+ * Checks if two changelog entries are equal.
101
+ *
102
+ * @param a - First entry
103
+ * @param b - Second entry
104
+ * @returns True if entries are equal
105
+ */
106
+ function isEntryEqual(a, b) {
107
+ if (a.version !== b.version)
108
+ return false;
109
+ if (a.date !== b.date)
110
+ return false;
111
+ if (a.unreleased !== b.unreleased)
112
+ return false;
113
+ if (a.compareUrl !== b.compareUrl)
114
+ return false;
115
+ if (a.rawContent !== b.rawContent)
116
+ return false;
117
+ // Check sections
118
+ if (a.sections.length !== b.sections.length)
119
+ return false;
120
+ for (let i = 0; i < a.sections.length; i++) {
121
+ if (!isSectionEqual(a.sections[i], b.sections[i]))
122
+ return false;
123
+ }
124
+ return true;
125
+ }
126
+ /**
127
+ * Checks if two changelog sections are equal.
128
+ *
129
+ * @param a - First section
130
+ * @param b - Second section
131
+ * @returns True if sections are equal
132
+ */
133
+ function isSectionEqual(a, b) {
134
+ if (a.type !== b.type)
135
+ return false;
136
+ if (a.heading !== b.heading)
137
+ return false;
138
+ // Check items
139
+ if (a.items.length !== b.items.length)
140
+ return false;
141
+ for (let i = 0; i < a.items.length; i++) {
142
+ if (!isItemEqual(a.items[i], b.items[i]))
143
+ return false;
144
+ }
145
+ return true;
146
+ }
147
+ /**
148
+ * Checks if two changelog items are equal.
149
+ *
150
+ * @param a - First item
151
+ * @param b - Second item
152
+ * @returns True if items are equal
153
+ */
154
+ function isItemEqual(a, b) {
155
+ if (a.scope !== b.scope)
156
+ return false;
157
+ if (a.description !== b.description)
158
+ return false;
159
+ if (a.breaking !== b.breaking)
160
+ return false;
161
+ // Check commits
162
+ if (a.commits.length !== b.commits.length)
163
+ return false;
164
+ for (let i = 0; i < a.commits.length; i++) {
165
+ if (!isCommitRefEqual(a.commits[i], b.commits[i]))
166
+ return false;
167
+ }
168
+ // Check references
169
+ if (a.references.length !== b.references.length)
170
+ return false;
171
+ for (let i = 0; i < a.references.length; i++) {
172
+ if (!isIssueRefEqual(a.references[i], b.references[i]))
173
+ return false;
174
+ }
175
+ return true;
176
+ }
177
+ /**
178
+ * Checks if two commit references are equal.
179
+ *
180
+ * @param a - First commit ref
181
+ * @param b - Second commit ref
182
+ * @returns True if commit refs are equal
183
+ */
184
+ function isCommitRefEqual(a, b) {
185
+ return a.hash === b.hash && a.shortHash === b.shortHash && a.url === b.url;
186
+ }
187
+ /**
188
+ * Checks if two issue references are equal.
189
+ *
190
+ * @param a - First issue ref
191
+ * @param b - Second issue ref
192
+ * @returns True if issue refs are equal
193
+ */
194
+ function isIssueRefEqual(a, b) {
195
+ return a.number === b.number && a.type === b.type && a.url === b.url;
196
+ }
197
+ /**
198
+ * Checks if two changelog metadata objects are equal.
199
+ *
200
+ * @param a - First metadata
201
+ * @param b - Second metadata
202
+ * @returns True if metadata are equal
203
+ */
204
+ function isMetadataEqual(a, b) {
205
+ if (a.format !== b.format)
206
+ return false;
207
+ if (a.isConventional !== b.isConventional)
208
+ return false;
209
+ if (a.repositoryUrl !== b.repositoryUrl)
210
+ return false;
211
+ if (a.packageName !== b.packageName)
212
+ return false;
213
+ // Check warnings
214
+ if (a.warnings.length !== b.warnings.length)
215
+ return false;
216
+ for (let i = 0; i < a.warnings.length; i++) {
217
+ if (a.warnings[i] !== b.warnings[i])
218
+ return false;
219
+ }
220
+ return true;
221
+ }
222
+ /**
223
+ * Checks if two changelogs have the same entries (by version).
224
+ * Does not compare entry contents, only versions present.
225
+ *
226
+ * @param a - First changelog
227
+ * @param b - Second changelog
228
+ * @returns True if both changelogs have the same versions
229
+ */
230
+ function haveSameVersions(a, b) {
231
+ if (a.entries.length !== b.entries.length)
232
+ return false;
233
+ const versionsA = createSet(a.entries.map((e) => e.version));
234
+ const versionsB = createSet(b.entries.map((e) => e.version));
235
+ if (versionsA.size !== versionsB.size)
236
+ return false;
237
+ for (const version of versionsA) {
238
+ if (!versionsB.has(version))
239
+ return false;
240
+ }
241
+ return true;
242
+ }
243
+ /**
244
+ * Checks if a changelog contains a specific version.
245
+ *
246
+ * @param changelog - The changelog to search
247
+ * @param version - The version to look for
248
+ * @returns True if the version exists in the changelog
249
+ */
250
+ function hasVersion(changelog, version) {
251
+ return changelog.entries.some((e) => e.version === version);
252
+ }
253
+ /**
254
+ * Gets an entry by version from a changelog.
255
+ *
256
+ * @param changelog - The changelog to search
257
+ * @param version - The version to find
258
+ * @returns The entry if found, undefined otherwise
259
+ */
260
+ function getEntryByVersion(changelog, version) {
261
+ return changelog.entries.find((e) => e.version === version);
262
+ }
263
+
264
+ /**
265
+ * Safe copies of Map built-in via factory function.
266
+ *
267
+ * Since constructors cannot be safely captured via Object.assign, this module
268
+ * provides a factory function that uses Reflect.construct internally.
269
+ *
270
+ * These references are captured at module initialization time to protect against
271
+ * prototype pollution attacks. Import only what you need for tree-shaking.
272
+ *
273
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/map
274
+ */
275
+ // Capture references at module initialization time
276
+ const _Map = globalThis.Map;
277
+ const _Reflect = globalThis.Reflect;
278
+ /**
279
+ * (Safe copy) Creates a new Map using the captured Map constructor.
280
+ * Use this instead of `new Map()`.
281
+ *
282
+ * @param iterable - Optional iterable of key-value pairs.
283
+ * @returns A new Map instance.
284
+ */
285
+ const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []);
286
+
287
+ /**
288
+ * Changelog Diff Algorithm
289
+ *
290
+ * Computes structural differences between two changelogs.
291
+ * Identifies added, removed, and modified entries with detailed change tracking.
292
+ */
293
+ /**
294
+ * Computes the diff between two changelogs.
295
+ *
296
+ * @param source - The source/original changelog
297
+ * @param target - The target/modified changelog
298
+ * @returns Detailed diff of changes
299
+ *
300
+ * @example
301
+ * ```ts
302
+ * const diff = diffChangelogs(mainChangelog, branchChangelog)
303
+ * console.log(`Added: ${diff.added.length}, Removed: ${diff.removed.length}`)
304
+ * ```
305
+ */
306
+ function diffChangelogs(source, target) {
307
+ // Build version maps for efficient lookup
308
+ const sourceVersions = createMap();
309
+ const targetVersions = createMap();
310
+ for (const entry of source.entries) {
311
+ sourceVersions.set(entry.version, entry);
312
+ }
313
+ for (const entry of target.entries) {
314
+ targetVersions.set(entry.version, entry);
315
+ }
316
+ const added = [];
317
+ const removed = [];
318
+ const modified = [];
319
+ // Find added entries (in target but not in source)
320
+ for (const [version, entry] of targetVersions) {
321
+ if (!sourceVersions.has(version)) {
322
+ added.push(entry);
323
+ }
324
+ }
325
+ // Find removed entries (in source but not in target)
326
+ for (const [version, entry] of sourceVersions) {
327
+ if (!targetVersions.has(version)) {
328
+ removed.push(entry);
329
+ }
330
+ }
331
+ // Find modified entries (in both but different)
332
+ for (const [version, sourceEntry] of sourceVersions) {
333
+ const targetEntry = targetVersions.get(version);
334
+ if (targetEntry && !isEntryEqual(sourceEntry, targetEntry)) {
335
+ const entryDiff = diffEntries(sourceEntry, targetEntry);
336
+ modified.push(entryDiff);
337
+ }
338
+ }
339
+ const identical = added.length === 0 && removed.length === 0 && modified.length === 0;
340
+ const totalChanges = modified.reduce((sum, m) => sum +
341
+ m.changes.length +
342
+ m.addedSections.length +
343
+ m.removedSections.length +
344
+ m.modifiedSections.reduce((s, ms) => s + ms.addedItems.length + ms.removedItems.length + ms.modifiedItems.length, 0), 0);
345
+ return {
346
+ added,
347
+ removed,
348
+ modified,
349
+ identical,
350
+ stats: {
351
+ addedCount: added.length,
352
+ removedCount: removed.length,
353
+ modifiedCount: modified.length,
354
+ totalChanges,
355
+ },
356
+ };
357
+ }
358
+ /**
359
+ * Computes the diff between two changelog entries.
360
+ *
361
+ * @param source - The source entry
362
+ * @param target - The target entry
363
+ * @returns Detailed entry diff
364
+ */
365
+ function diffEntries(source, target) {
366
+ const changes = [];
367
+ // Check scalar properties
368
+ if (source.date !== target.date) {
369
+ changes.push({
370
+ path: ['date'],
371
+ type: source.date === null ? 'added' : target.date === null ? 'removed' : 'changed',
372
+ oldValue: source.date,
373
+ newValue: target.date,
374
+ });
375
+ }
376
+ if (source.unreleased !== target.unreleased) {
377
+ changes.push({
378
+ path: ['unreleased'],
379
+ type: 'changed',
380
+ oldValue: source.unreleased,
381
+ newValue: target.unreleased,
382
+ });
383
+ }
384
+ if (source.compareUrl !== target.compareUrl) {
385
+ changes.push({
386
+ path: ['compareUrl'],
387
+ type: source.compareUrl === undefined ? 'added' : target.compareUrl === undefined ? 'removed' : 'changed',
388
+ oldValue: source.compareUrl,
389
+ newValue: target.compareUrl,
390
+ });
391
+ }
392
+ if (source.rawContent !== target.rawContent) {
393
+ changes.push({
394
+ path: ['rawContent'],
395
+ type: source.rawContent === undefined ? 'added' : target.rawContent === undefined ? 'removed' : 'changed',
396
+ oldValue: source.rawContent,
397
+ newValue: target.rawContent,
398
+ });
399
+ }
400
+ // Diff sections
401
+ const { added: addedSections, removed: removedSections, modified: modifiedSections } = diffSections(source.sections, target.sections);
402
+ return {
403
+ version: source.version,
404
+ source,
405
+ target,
406
+ changes,
407
+ addedSections,
408
+ removedSections,
409
+ modifiedSections,
410
+ };
411
+ }
412
+ /**
413
+ * Diffs two section arrays.
414
+ *
415
+ * @param sourceSections - Array of sections from the source changelog
416
+ * @param targetSections - Array of sections from the target changelog
417
+ * @returns Diff result with added, removed, and modified sections
418
+ */
419
+ function diffSections(sourceSections, targetSections) {
420
+ // Map by type for comparison
421
+ const sourceByType = createMap();
422
+ const targetByType = createMap();
423
+ for (const section of sourceSections) {
424
+ sourceByType.set(section.type, section);
425
+ }
426
+ for (const section of targetSections) {
427
+ targetByType.set(section.type, section);
428
+ }
429
+ const added = [];
430
+ const removed = [];
431
+ const modified = [];
432
+ // Find added sections
433
+ for (const [type, section] of targetByType) {
434
+ if (!sourceByType.has(type)) {
435
+ added.push(section);
436
+ }
437
+ }
438
+ // Find removed sections
439
+ for (const [type, section] of sourceByType) {
440
+ if (!targetByType.has(type)) {
441
+ removed.push(section);
442
+ }
443
+ }
444
+ // Find modified sections
445
+ for (const [type, sourceSection] of sourceByType) {
446
+ const targetSection = targetByType.get(type);
447
+ if (targetSection && !isSectionEqual(sourceSection, targetSection)) {
448
+ const sectionDiff = diffSection(sourceSection, targetSection);
449
+ modified.push(sectionDiff);
450
+ }
451
+ }
452
+ return { added, removed, modified };
453
+ }
454
+ /**
455
+ * Diffs two sections.
456
+ *
457
+ * @param source - Section from the source changelog to compare
458
+ * @param target - Section from the target changelog to compare against
459
+ * @returns Detailed section diff
460
+ */
461
+ function diffSection(source, target) {
462
+ // Use description as key for matching items
463
+ const sourceByDesc = createMap();
464
+ const targetByDesc = createMap();
465
+ for (const item of source.items) {
466
+ sourceByDesc.set(item.description, item);
467
+ }
468
+ for (const item of target.items) {
469
+ targetByDesc.set(item.description, item);
470
+ }
471
+ const addedItems = [];
472
+ const removedItems = [];
473
+ const modifiedItems = [];
474
+ // Find added items
475
+ for (const [desc, item] of targetByDesc) {
476
+ if (!sourceByDesc.has(desc)) {
477
+ addedItems.push(item);
478
+ }
479
+ }
480
+ // Find removed items
481
+ for (const [desc, item] of sourceByDesc) {
482
+ if (!targetByDesc.has(desc)) {
483
+ removedItems.push(item);
484
+ }
485
+ }
486
+ // Find modified items
487
+ for (const [desc, sourceItem] of sourceByDesc) {
488
+ const targetItem = targetByDesc.get(desc);
489
+ if (targetItem && !isItemEqual(sourceItem, targetItem)) {
490
+ const itemDiff = diffItem(sourceItem, targetItem);
491
+ modifiedItems.push(itemDiff);
492
+ }
493
+ }
494
+ return {
495
+ type: source.type,
496
+ source,
497
+ target,
498
+ addedItems,
499
+ removedItems,
500
+ modifiedItems,
501
+ };
502
+ }
503
+ /**
504
+ * Diffs two changelog items.
505
+ *
506
+ * @param source - The item from the source changelog to compare
507
+ * @param target - The item from the target changelog to compare against
508
+ * @returns Detailed item diff
509
+ */
510
+ function diffItem(source, target) {
511
+ const changes = [];
512
+ if (source.scope !== target.scope) {
513
+ changes.push({
514
+ path: ['scope'],
515
+ type: source.scope === undefined ? 'added' : target.scope === undefined ? 'removed' : 'changed',
516
+ oldValue: source.scope,
517
+ newValue: target.scope,
518
+ });
519
+ }
520
+ if (source.breaking !== target.breaking) {
521
+ changes.push({
522
+ path: ['breaking'],
523
+ type: 'changed',
524
+ oldValue: source.breaking,
525
+ newValue: target.breaking,
526
+ });
527
+ }
528
+ // Check commits
529
+ if (!areCommitRefsEqual(source.commits, target.commits)) {
530
+ changes.push({
531
+ path: ['commits'],
532
+ type: 'changed',
533
+ oldValue: source.commits,
534
+ newValue: target.commits,
535
+ });
536
+ }
537
+ // Check references
538
+ if (!areIssueRefsEqual(source.references, target.references)) {
539
+ changes.push({
540
+ path: ['references'],
541
+ type: 'changed',
542
+ oldValue: source.references,
543
+ newValue: target.references,
544
+ });
545
+ }
546
+ return {
547
+ sourceDescription: source.description,
548
+ source,
549
+ target,
550
+ changes,
551
+ };
552
+ }
553
+ /**
554
+ * Checks if two commit ref arrays are equal.
555
+ *
556
+ * @param a - First array of commit references to compare
557
+ * @param b - Second array of commit references to compare
558
+ * @returns True if both arrays contain equivalent commit refs
559
+ */
560
+ function areCommitRefsEqual(a, b) {
561
+ if (a.length !== b.length)
562
+ return false;
563
+ for (let i = 0; i < a.length; i++) {
564
+ if (!isCommitRefEqual(a[i], b[i]))
565
+ return false;
566
+ }
567
+ return true;
568
+ }
569
+ /**
570
+ * Checks if two issue ref arrays are equal.
571
+ *
572
+ * @param a - First array of issue references to compare
573
+ * @param b - Second array of issue references to compare
574
+ * @returns True if both arrays contain equivalent issue refs
575
+ */
576
+ function areIssueRefsEqual(a, b) {
577
+ if (a.length !== b.length)
578
+ return false;
579
+ for (let i = 0; i < a.length; i++) {
580
+ if (!isIssueRefEqual(a[i], b[i]))
581
+ return false;
582
+ }
583
+ return true;
584
+ }
585
+ /**
586
+ * Creates a human-readable summary of a changelog diff.
587
+ *
588
+ * @param diff - The diff to summarize
589
+ * @returns A string summary of the changes
590
+ */
591
+ function summarizeDiff(diff) {
592
+ if (diff.identical) {
593
+ return 'Changelogs are identical';
594
+ }
595
+ const parts = [];
596
+ if (diff.added.length > 0) {
597
+ const versions = diff.added.map((e) => e.version).join(', ');
598
+ parts.push(`Added ${diff.added.length} version(s): ${versions}`);
599
+ }
600
+ if (diff.removed.length > 0) {
601
+ const versions = diff.removed.map((e) => e.version).join(', ');
602
+ parts.push(`Removed ${diff.removed.length} version(s): ${versions}`);
603
+ }
604
+ if (diff.modified.length > 0) {
605
+ const versions = diff.modified.map((e) => e.version).join(', ');
606
+ parts.push(`Modified ${diff.modified.length} version(s): ${versions}`);
607
+ }
608
+ return parts.join('; ');
609
+ }
610
+
611
+ export { diffChangelogs, diffEntries, getEntryByVersion, hasVersion, haveSameVersions, isChangelogEqual, isCommitRefEqual, isEntryEqual, isHeaderEqual, isIssueRefEqual, isItemEqual, isLinkEqual, isMetadataEqual, isSectionEqual, summarizeDiff };
612
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../../../libs/versioning/src/changelog/compare/is-equal.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/map/index.ts","../../../../../../../../../../libs/versioning/src/changelog/compare/diff.ts"],"sourcesContent":[null,null,null,null],"names":["_Reflect"],"mappings":"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"}