@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,386 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Safe copies of Math built-in methods.
5
+ *
6
+ * These references are captured at module initialization time to protect against
7
+ * prototype pollution attacks. Import only what you need for tree-shaking.
8
+ *
9
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/math
10
+ */
11
+ // Capture references at module initialization time
12
+ const _Math = globalThis.Math;
13
+ // ============================================================================
14
+ // Min/Max
15
+ // ============================================================================
16
+ /**
17
+ * (Safe copy) Returns the larger of zero or more numbers.
18
+ */
19
+ const max$1 = _Math.max;
20
+
21
+ /**
22
+ * Safe copies of Number built-in methods and constants.
23
+ *
24
+ * These references are captured at module initialization time to protect against
25
+ * prototype pollution attacks. Import only what you need for tree-shaking.
26
+ *
27
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/number
28
+ */
29
+ // Capture references at module initialization time
30
+ const _parseInt = globalThis.parseInt;
31
+ // ============================================================================
32
+ // Parsing
33
+ // ============================================================================
34
+ /**
35
+ * (Safe copy) Parses a string and returns an integer.
36
+ */
37
+ const parseInt = _parseInt;
38
+
39
+ /**
40
+ * Compares two semantic versions.
41
+ *
42
+ * @param a - First version
43
+ * @param b - Second version
44
+ * @returns -1 if a < b, 0 if a == b, 1 if a > b
45
+ *
46
+ * @example
47
+ * compare(parseVersion('1.0.0'), parseVersion('2.0.0')) // -1
48
+ * compare(parseVersion('1.0.0'), parseVersion('1.0.0')) // 0
49
+ * compare(parseVersion('2.0.0'), parseVersion('1.0.0')) // 1
50
+ */
51
+ function compare(a, b) {
52
+ // Compare major, minor, patch
53
+ if (a.major !== b.major) {
54
+ return a.major < b.major ? -1 : 1;
55
+ }
56
+ if (a.minor !== b.minor) {
57
+ return a.minor < b.minor ? -1 : 1;
58
+ }
59
+ if (a.patch !== b.patch) {
60
+ return a.patch < b.patch ? -1 : 1;
61
+ }
62
+ // Compare prerelease
63
+ // Version with prerelease has lower precedence than release
64
+ if (a.prerelease.length === 0 && b.prerelease.length > 0) {
65
+ return 1; // a is release, b is prerelease -> a > b
66
+ }
67
+ if (a.prerelease.length > 0 && b.prerelease.length === 0) {
68
+ return -1; // a is prerelease, b is release -> a < b
69
+ }
70
+ // Both have prerelease - compare identifiers
71
+ const maxLen = max$1(a.prerelease.length, b.prerelease.length);
72
+ for (let i = 0; i < maxLen; i++) {
73
+ const aId = a.prerelease[i];
74
+ const bId = b.prerelease[i];
75
+ // Shorter prerelease array has lower precedence
76
+ if (aId === undefined && bId !== undefined) {
77
+ return -1;
78
+ }
79
+ if (aId !== undefined && bId === undefined) {
80
+ return 1;
81
+ }
82
+ if (aId === undefined || bId === undefined) {
83
+ continue;
84
+ }
85
+ // Compare identifiers
86
+ const cmp = compareIdentifiers(aId, bId);
87
+ if (cmp !== 0) {
88
+ return cmp;
89
+ }
90
+ }
91
+ return 0;
92
+ }
93
+ /**
94
+ * Checks if two versions are equal (ignoring build metadata).
95
+ *
96
+ * @param a - First version
97
+ * @param b - Second version
98
+ * @returns True if versions are equal
99
+ */
100
+ function eq(a, b) {
101
+ return compare(a, b) === 0;
102
+ }
103
+ /**
104
+ * Checks if a < b.
105
+ *
106
+ * @param a - First version to compare
107
+ * @param b - Second version to compare
108
+ * @returns True if a is less than b
109
+ */
110
+ function lt(a, b) {
111
+ return compare(a, b) === -1;
112
+ }
113
+ /**
114
+ * Checks if a <= b.
115
+ *
116
+ * @param a - First version to compare
117
+ * @param b - Second version to compare
118
+ * @returns True if a is less than or equal to b
119
+ */
120
+ function lte(a, b) {
121
+ return compare(a, b) !== 1;
122
+ }
123
+ /**
124
+ * Checks if a > b.
125
+ *
126
+ * @param a - First version to compare
127
+ * @param b - Second version to compare
128
+ * @returns True if a is greater than b
129
+ */
130
+ function gt(a, b) {
131
+ return compare(a, b) === 1;
132
+ }
133
+ /**
134
+ * Checks if a >= b.
135
+ *
136
+ * @param a - First version to compare
137
+ * @param b - Second version to compare
138
+ * @returns True if a is greater than or equal to b
139
+ */
140
+ function gte(a, b) {
141
+ return compare(a, b) !== -1;
142
+ }
143
+ /**
144
+ * Checks if a != b.
145
+ *
146
+ * @param a - First version to compare
147
+ * @param b - Second version to compare
148
+ * @returns True if versions are not equal
149
+ */
150
+ function neq(a, b) {
151
+ return compare(a, b) !== 0;
152
+ }
153
+ /**
154
+ * Checks if a version satisfies a comparator.
155
+ *
156
+ * @param version - Version to check
157
+ * @param comparator - Comparator to test against
158
+ * @returns True if version satisfies the comparator
159
+ */
160
+ function satisfiesComparator(version, comparator) {
161
+ const cmp = compare(version, comparator.version);
162
+ switch (comparator.operator) {
163
+ case '=':
164
+ return cmp === 0;
165
+ case '>':
166
+ return cmp === 1;
167
+ case '>=':
168
+ return cmp >= 0;
169
+ case '<':
170
+ return cmp === -1;
171
+ case '<=':
172
+ return cmp <= 0;
173
+ case '^':
174
+ case '~':
175
+ // These should have been expanded during parsing
176
+ // If we encounter them here, treat as >=
177
+ return cmp >= 0;
178
+ default:
179
+ return false;
180
+ }
181
+ }
182
+ /**
183
+ * Checks if a version satisfies a range.
184
+ *
185
+ * @param version - Version to check
186
+ * @param range - Range to test against
187
+ * @returns True if version satisfies the range
188
+ *
189
+ * @example
190
+ * satisfies(parseVersion('1.2.3'), parseRange('^1.0.0')) // true
191
+ * satisfies(parseVersion('2.0.0'), parseRange('^1.0.0')) // false
192
+ */
193
+ function satisfies(version, range) {
194
+ // Empty range matches any
195
+ if (range.sets.length === 0) {
196
+ return true;
197
+ }
198
+ // OR logic: at least one set must be satisfied
199
+ for (const set of range.sets) {
200
+ // AND logic: all comparators in set must be satisfied
201
+ let allSatisfied = true;
202
+ // Empty comparator set matches any
203
+ if (set.comparators.length === 0) {
204
+ return true;
205
+ }
206
+ for (const comp of set.comparators) {
207
+ if (!satisfiesComparator(version, comp)) {
208
+ allSatisfied = false;
209
+ break;
210
+ }
211
+ }
212
+ if (allSatisfied) {
213
+ return true;
214
+ }
215
+ }
216
+ return false;
217
+ }
218
+ /**
219
+ * Finds the maximum version that satisfies a range.
220
+ *
221
+ * @param versions - Array of versions to check
222
+ * @param range - Range to test against
223
+ * @returns The maximum satisfying version, or null if none satisfy
224
+ */
225
+ function maxSatisfying(versions, range) {
226
+ let max = null;
227
+ for (const version of versions) {
228
+ if (satisfies(version, range)) {
229
+ if (max === null || gt(version, max)) {
230
+ max = version;
231
+ }
232
+ }
233
+ }
234
+ return max;
235
+ }
236
+ /**
237
+ * Finds the minimum version that satisfies a range.
238
+ *
239
+ * @param versions - Array of versions to check
240
+ * @param range - Range to test against
241
+ * @returns The minimum satisfying version, or null if none satisfy
242
+ */
243
+ function minSatisfying(versions, range) {
244
+ let min = null;
245
+ for (const version of versions) {
246
+ if (satisfies(version, range)) {
247
+ if (min === null || lt(version, min)) {
248
+ min = version;
249
+ }
250
+ }
251
+ }
252
+ return min;
253
+ }
254
+ // ============================================================================
255
+ // Internal helpers
256
+ // ============================================================================
257
+ /**
258
+ * Compares two prerelease identifiers.
259
+ * Numeric identifiers have lower precedence than alphanumeric.
260
+ * Numeric identifiers are compared numerically.
261
+ * Alphanumeric identifiers are compared lexically.
262
+ *
263
+ * @param a - First prerelease identifier
264
+ * @param b - Second prerelease identifier
265
+ * @returns -1 if a < b, 0 if equal, 1 if a > b
266
+ */
267
+ function compareIdentifiers(a, b) {
268
+ const aIsNumeric = isNumeric(a);
269
+ const bIsNumeric = isNumeric(b);
270
+ // Numeric identifiers have lower precedence
271
+ if (aIsNumeric && !bIsNumeric) {
272
+ return -1;
273
+ }
274
+ if (!aIsNumeric && bIsNumeric) {
275
+ return 1;
276
+ }
277
+ // Both numeric - compare as numbers
278
+ if (aIsNumeric && bIsNumeric) {
279
+ const aNum = parseInt(a, 10);
280
+ const bNum = parseInt(b, 10);
281
+ if (aNum < bNum)
282
+ return -1;
283
+ if (aNum > bNum)
284
+ return 1;
285
+ return 0;
286
+ }
287
+ // Both alphanumeric - compare lexically
288
+ if (a < b)
289
+ return -1;
290
+ if (a > b)
291
+ return 1;
292
+ return 0;
293
+ }
294
+ /**
295
+ * Checks if a string consists only of digits.
296
+ *
297
+ * @param str - String to check for numeric content
298
+ * @returns True if string contains only digits
299
+ */
300
+ function isNumeric(str) {
301
+ if (str.length === 0)
302
+ return false;
303
+ for (let i = 0; i < str.length; i++) {
304
+ const code = str.charCodeAt(i);
305
+ if (code < 48 || code > 57) {
306
+ return false;
307
+ }
308
+ }
309
+ return true;
310
+ }
311
+
312
+ /**
313
+ * Sorts an array of versions in ascending order.
314
+ *
315
+ * @param versions - Array of versions to sort
316
+ * @returns A new sorted array
317
+ *
318
+ * @example
319
+ * sort([v2, v1, v3]) // [v1, v2, v3]
320
+ */
321
+ function sort(versions) {
322
+ return [...versions].sort(compare);
323
+ }
324
+ /**
325
+ * Sorts an array of versions in descending order.
326
+ *
327
+ * @param versions - Array of versions to sort
328
+ * @returns A new sorted array
329
+ *
330
+ * @example
331
+ * sortDescending([v1, v3, v2]) // [v3, v2, v1]
332
+ */
333
+ function sortDescending(versions) {
334
+ return [...versions].sort((a, b) => compare(b, a));
335
+ }
336
+ /**
337
+ * Returns the maximum version from an array.
338
+ *
339
+ * @param versions - Array of versions
340
+ * @returns The maximum version, or null if array is empty
341
+ */
342
+ function max(versions) {
343
+ if (versions.length === 0)
344
+ return null;
345
+ let maxVer = versions[0];
346
+ for (let i = 1; i < versions.length; i++) {
347
+ if (compare(versions[i], maxVer) === 1) {
348
+ maxVer = versions[i];
349
+ }
350
+ }
351
+ return maxVer;
352
+ }
353
+ /**
354
+ * Returns the minimum version from an array.
355
+ *
356
+ * @param versions - Array of versions
357
+ * @returns The minimum version, or null if array is empty
358
+ */
359
+ function min(versions) {
360
+ if (versions.length === 0)
361
+ return null;
362
+ let minVer = versions[0];
363
+ for (let i = 1; i < versions.length; i++) {
364
+ if (compare(versions[i], minVer) === -1) {
365
+ minVer = versions[i];
366
+ }
367
+ }
368
+ return minVer;
369
+ }
370
+
371
+ exports.compare = compare;
372
+ exports.eq = eq;
373
+ exports.gt = gt;
374
+ exports.gte = gte;
375
+ exports.lt = lt;
376
+ exports.lte = lte;
377
+ exports.max = max;
378
+ exports.maxSatisfying = maxSatisfying;
379
+ exports.min = min;
380
+ exports.minSatisfying = minSatisfying;
381
+ exports.neq = neq;
382
+ exports.satisfies = satisfies;
383
+ exports.satisfiesComparator = satisfiesComparator;
384
+ exports.sort = sort;
385
+ exports.sortDescending = sortDescending;
386
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/math/index.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/number/index.ts","../../../../../../../../../../libs/versioning/src/semver/compare/compare.ts","../../../../../../../../../../libs/versioning/src/semver/compare/sort.ts"],"sourcesContent":[null,null,null,null],"names":["max"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { compare, eq, lt, lte, gt, gte, neq, satisfies, satisfiesComparator, maxSatisfying, minSatisfying } from './compare';
2
+ export { sort, sortDescending, max, min } from './sort';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/versioning/src/semver/compare/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAG5H,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA"}