@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,535 @@
1
+ import { execSync } from 'node:child_process';
2
+
3
+ /**
4
+ * Creates a new PackageInfo object.
5
+ *
6
+ * @param options - Configuration for the package info
7
+ * @param options.name - e.g., 'lodash' or '@scope/pkg'
8
+ * @param options.latestVersion - The most recently published semver string
9
+ * @param options.versions - All published semver strings in chronological order
10
+ * @param options.description - Brief summary of package functionality
11
+ * @param options.license - SPDX license identifier
12
+ * @param options.repository - URL to source code repository
13
+ * @param options.homepage - URL to project homepage or documentation site
14
+ * @param options.maintainers - List of maintainers with name and email
15
+ * @param options.keywords - Search terms for npm registry discovery
16
+ * @param options.lastModified - Time of last modification
17
+ * @returns A new PackageInfo object
18
+ */
19
+ function createPackageInfo(options) {
20
+ return {
21
+ name: options.name,
22
+ description: options.description,
23
+ latestVersion: options.latestVersion,
24
+ versions: options.versions,
25
+ license: options.license,
26
+ repository: options.repository,
27
+ homepage: options.homepage,
28
+ maintainers: options.maintainers ?? [],
29
+ keywords: options.keywords,
30
+ lastModified: options.lastModified,
31
+ };
32
+ }
33
+
34
+ /**
35
+ * Creates a new VersionInfo object.
36
+ *
37
+ * @param options - Configuration for the release info
38
+ * @param options.version - e.g., '1.2.3' or '2.0.0-beta.1'
39
+ * @param options.publishedAt - ISO 8601 timestamp of publication
40
+ * @param options.tarball - URL to the package tarball
41
+ * @param options.integrity - Subresource integrity hash
42
+ * @param options.dependencies - Production dependencies map
43
+ * @param options.devDependencies - Development dependencies map
44
+ * @param options.peerDependencies - Peer dependencies map
45
+ * @param options.optionalDependencies - Optional dependencies map
46
+ * @param options.engines - Node/npm engine requirements
47
+ * @param options.nodeVersion - Node.js version used during publish
48
+ * @param options.npmVersion - npm version used during publish
49
+ * @returns A new VersionInfo object
50
+ */
51
+ function createVersionInfo(options) {
52
+ return {
53
+ version: options.version,
54
+ publishedAt: options.publishedAt,
55
+ tarball: options.tarball,
56
+ integrity: options.integrity,
57
+ dependencies: options.dependencies,
58
+ devDependencies: options.devDependencies,
59
+ peerDependencies: options.peerDependencies,
60
+ optionalDependencies: options.optionalDependencies,
61
+ engines: options.engines,
62
+ nodeVersion: options.nodeVersion,
63
+ npmVersion: options.npmVersion,
64
+ };
65
+ }
66
+
67
+ /**
68
+ * Safe copies of Array built-in static methods.
69
+ *
70
+ * These references are captured at module initialization time to protect against
71
+ * prototype pollution attacks. Import only what you need for tree-shaking.
72
+ *
73
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/array
74
+ */
75
+ // Capture references at module initialization time
76
+ const _Array = globalThis.Array;
77
+ /**
78
+ * (Safe copy) Determines whether the passed value is an Array.
79
+ */
80
+ const isArray = _Array.isArray;
81
+
82
+ /**
83
+ * Safe copies of Date built-in via factory function and static methods.
84
+ *
85
+ * Since constructors cannot be safely captured via Object.assign, this module
86
+ * provides a factory function that uses Reflect.construct internally.
87
+ *
88
+ * These references are captured at module initialization time to protect against
89
+ * prototype pollution attacks. Import only what you need for tree-shaking.
90
+ *
91
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/date
92
+ */
93
+ // Capture references at module initialization time
94
+ const _Date = globalThis.Date;
95
+ const _Reflect$2 = globalThis.Reflect;
96
+ function createDate(...args) {
97
+ return _Reflect$2.construct(_Date, args);
98
+ }
99
+ /**
100
+ * (Safe copy) Returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.
101
+ */
102
+ const dateNow = _Date.now;
103
+
104
+ /**
105
+ * Safe copies of Error built-ins via factory functions.
106
+ *
107
+ * Since constructors cannot be safely captured via Object.assign, this module
108
+ * provides factory functions that use Reflect.construct internally.
109
+ *
110
+ * These references are captured at module initialization time to protect against
111
+ * prototype pollution attacks. Import only what you need for tree-shaking.
112
+ *
113
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/error
114
+ */
115
+ // Capture references at module initialization time
116
+ const _Error = globalThis.Error;
117
+ const _Reflect$1 = globalThis.Reflect;
118
+ /**
119
+ * (Safe copy) Creates a new Error using the captured Error constructor.
120
+ * Use this instead of `new Error()`.
121
+ *
122
+ * @param message - Optional error message.
123
+ * @param options - Optional error options.
124
+ * @returns A new Error instance.
125
+ */
126
+ const createError = (message, options) => _Reflect$1.construct(_Error, [message, options]);
127
+
128
+ /**
129
+ * Safe copies of JSON built-in methods.
130
+ *
131
+ * These references are captured at module initialization time to protect against
132
+ * prototype pollution attacks. Import only what you need for tree-shaking.
133
+ *
134
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/json
135
+ */
136
+ // Capture references at module initialization time
137
+ const _JSON = globalThis.JSON;
138
+ /**
139
+ * (Safe copy) Converts a JavaScript Object Notation (JSON) string into an object.
140
+ */
141
+ const parse = _JSON.parse;
142
+
143
+ /**
144
+ * Safe copies of Map built-in via factory function.
145
+ *
146
+ * Since constructors cannot be safely captured via Object.assign, this module
147
+ * provides a factory function that uses Reflect.construct internally.
148
+ *
149
+ * These references are captured at module initialization time to protect against
150
+ * prototype pollution attacks. Import only what you need for tree-shaking.
151
+ *
152
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/map
153
+ */
154
+ // Capture references at module initialization time
155
+ const _Map = globalThis.Map;
156
+ const _Reflect = globalThis.Reflect;
157
+ /**
158
+ * (Safe copy) Creates a new Map using the captured Map constructor.
159
+ * Use this instead of `new Map()`.
160
+ *
161
+ * @param iterable - Optional iterable of key-value pairs.
162
+ * @returns A new Map instance.
163
+ */
164
+ const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []);
165
+
166
+ /**
167
+ * Creates a new cache instance.
168
+ *
169
+ * @param ttl - Time-to-live in milliseconds (default: 60000 = 1 minute)
170
+ * @returns A new Cache instance
171
+ */
172
+ function createCache(ttl = 60000) {
173
+ const entries = createMap();
174
+ return {
175
+ get(key) {
176
+ const entry = entries.get(key);
177
+ if (!entry)
178
+ return undefined;
179
+ const now = dateNow();
180
+ if (now - entry.timestamp > ttl) {
181
+ entries.delete(key);
182
+ return undefined;
183
+ }
184
+ return entry.data;
185
+ },
186
+ set(key, value) {
187
+ entries.set(key, { data: value, timestamp: dateNow() });
188
+ },
189
+ delete(key) {
190
+ entries.delete(key);
191
+ },
192
+ clear() {
193
+ entries.clear();
194
+ },
195
+ size() {
196
+ return entries.size;
197
+ },
198
+ };
199
+ }
200
+
201
+ /**
202
+ * Creates an npm registry client.
203
+ *
204
+ * @param config - Registry configuration
205
+ * @returns A Registry implementation for npm
206
+ *
207
+ * @example
208
+ * const registry = createNpmRegistry()
209
+ * const version = await registry.getLatestVersion('@hyperfrontend/utils')
210
+ */
211
+ function createNpmRegistry(config = {}) {
212
+ const state = {
213
+ config: {
214
+ url: config.url ?? 'https://registry.npmjs.org',
215
+ timeout: config.timeout ?? 10000,
216
+ cacheTtl: config.cacheTtl ?? 60000,
217
+ authToken: config.authToken,
218
+ },
219
+ cache: createCache(config.cacheTtl ?? 60000),
220
+ };
221
+ return {
222
+ name: 'npm',
223
+ url: state.config.url,
224
+ getLatestVersion: (packageName) => getLatestVersion(state, packageName),
225
+ isVersionPublished: (packageName, version) => isVersionPublished(state, packageName, version),
226
+ getPackageInfo: (packageName) => getPackageInfo(state, packageName),
227
+ getVersionInfo: (packageName, version) => getVersionInfo(state, packageName, version),
228
+ listVersions: (packageName) => listVersions(state, packageName),
229
+ };
230
+ }
231
+ /**
232
+ * Gets the latest published version of a package.
233
+ *
234
+ * @param state - Internal registry client state
235
+ * @param packageName - Name of the package to query
236
+ * @returns The latest version string, or null if not found
237
+ */
238
+ async function getLatestVersion(state, packageName) {
239
+ const cacheKey = `latest:${packageName}`;
240
+ const cached = state.cache.get(cacheKey);
241
+ if (cached !== undefined)
242
+ return cached;
243
+ try {
244
+ const safeName = escapePackageName(packageName);
245
+ const result = execSync(`npm view ${safeName} version`, {
246
+ encoding: 'utf-8',
247
+ timeout: state.config.timeout,
248
+ stdio: ['pipe', 'pipe', 'pipe'],
249
+ }).trim();
250
+ const version = result || null;
251
+ state.cache.set(cacheKey, version);
252
+ return version;
253
+ }
254
+ catch {
255
+ state.cache.set(cacheKey, null);
256
+ return null;
257
+ }
258
+ }
259
+ /**
260
+ * Checks if a specific version is published.
261
+ *
262
+ * @param state - Internal registry client state
263
+ * @param packageName - Name of the package to check
264
+ * @param version - Semver version string to verify
265
+ * @returns True if the version is published
266
+ */
267
+ async function isVersionPublished(state, packageName, version) {
268
+ const cacheKey = `published:${packageName}@${version}`;
269
+ const cached = state.cache.get(cacheKey);
270
+ if (cached !== undefined)
271
+ return cached;
272
+ try {
273
+ const safeName = escapePackageName(packageName);
274
+ const safeVersion = escapeVersion(version);
275
+ const result = execSync(`npm view ${safeName}@${safeVersion} version`, {
276
+ encoding: 'utf-8',
277
+ timeout: state.config.timeout,
278
+ stdio: ['pipe', 'pipe', 'pipe'],
279
+ }).trim();
280
+ const published = result === version;
281
+ state.cache.set(cacheKey, published);
282
+ return published;
283
+ }
284
+ catch {
285
+ state.cache.set(cacheKey, false);
286
+ return false;
287
+ }
288
+ }
289
+ /**
290
+ * Gets full package information.
291
+ *
292
+ * @param state - Internal registry client state
293
+ * @param packageName - Name of the package to query
294
+ * @returns Package info, or null if not found
295
+ */
296
+ async function getPackageInfo(state, packageName) {
297
+ const cacheKey = `info:${packageName}`;
298
+ const cached = state.cache.get(cacheKey);
299
+ if (cached !== undefined)
300
+ return cached;
301
+ try {
302
+ const safeName = escapePackageName(packageName);
303
+ const result = execSync(`npm view ${safeName} --json`, {
304
+ encoding: 'utf-8',
305
+ timeout: state.config.timeout,
306
+ stdio: ['pipe', 'pipe', 'pipe'],
307
+ maxBuffer: 10 * 1024 * 1024, // 10MB
308
+ });
309
+ const data = parse(result);
310
+ const info = {
311
+ name: data.name,
312
+ description: data.description,
313
+ latestVersion: data.version,
314
+ versions: isArray(data.versions) ? data.versions : [data.version],
315
+ license: data.license,
316
+ repository: extractRepoUrl(data.repository),
317
+ homepage: data.homepage,
318
+ maintainers: (data.maintainers ?? []).map((m) => {
319
+ if (typeof m === 'string') {
320
+ return { name: m };
321
+ }
322
+ return { name: m.name ?? '', email: m.email };
323
+ }),
324
+ keywords: data.keywords,
325
+ lastModified: data.time?.modified,
326
+ };
327
+ state.cache.set(cacheKey, info);
328
+ return info;
329
+ }
330
+ catch {
331
+ state.cache.set(cacheKey, null);
332
+ return null;
333
+ }
334
+ }
335
+ /**
336
+ * Gets version-specific information.
337
+ *
338
+ * @param state - Internal registry client state
339
+ * @param packageName - Name of the package to query
340
+ * @param version - Semver version string to look up
341
+ * @returns Version info, or null if not found
342
+ */
343
+ async function getVersionInfo(state, packageName, version) {
344
+ const cacheKey = `versionInfo:${packageName}@${version}`;
345
+ const cached = state.cache.get(cacheKey);
346
+ if (cached !== undefined)
347
+ return cached;
348
+ try {
349
+ const safeName = escapePackageName(packageName);
350
+ const safeVersion = escapeVersion(version);
351
+ const result = execSync(`npm view ${safeName}@${safeVersion} --json`, {
352
+ encoding: 'utf-8',
353
+ timeout: state.config.timeout,
354
+ stdio: ['pipe', 'pipe', 'pipe'],
355
+ maxBuffer: 5 * 1024 * 1024, // 5MB
356
+ });
357
+ const data = parse(result);
358
+ const info = {
359
+ version: data.version,
360
+ publishedAt: data.time ?? createDate().toISOString(),
361
+ tarball: data.dist?.tarball ?? '',
362
+ integrity: data.dist?.integrity,
363
+ dependencies: data.dependencies,
364
+ devDependencies: data.devDependencies,
365
+ peerDependencies: data.peerDependencies,
366
+ optionalDependencies: data.optionalDependencies,
367
+ engines: data.engines,
368
+ nodeVersion: data._nodeVersion,
369
+ npmVersion: data._npmVersion,
370
+ };
371
+ state.cache.set(cacheKey, info);
372
+ return info;
373
+ }
374
+ catch {
375
+ state.cache.set(cacheKey, null);
376
+ return null;
377
+ }
378
+ }
379
+ /**
380
+ * Lists all published versions.
381
+ *
382
+ * @param state - Internal registry client state
383
+ * @param packageName - Name of the package to query
384
+ * @returns Array of version strings
385
+ */
386
+ async function listVersions(state, packageName) {
387
+ const cacheKey = `versions:${packageName}`;
388
+ const cached = state.cache.get(cacheKey);
389
+ if (cached !== undefined)
390
+ return cached;
391
+ try {
392
+ const safeName = escapePackageName(packageName);
393
+ const result = execSync(`npm view ${safeName} versions --json`, {
394
+ encoding: 'utf-8',
395
+ timeout: state.config.timeout,
396
+ stdio: ['pipe', 'pipe', 'pipe'],
397
+ });
398
+ const versions = parse(result);
399
+ const versionList = isArray(versions) ? versions : [versions];
400
+ state.cache.set(cacheKey, versionList);
401
+ return versionList;
402
+ }
403
+ catch {
404
+ state.cache.set(cacheKey, []);
405
+ return [];
406
+ }
407
+ }
408
+ // ============================================================================
409
+ // Security helpers - character-by-character validation (no regex)
410
+ // ============================================================================
411
+ /**
412
+ * Maximum allowed package name length (npm limit).
413
+ */
414
+ const MAX_PACKAGE_NAME_LENGTH = 214;
415
+ /**
416
+ * Escapes a package name for safe use in shell commands.
417
+ * Uses character-by-character validation to prevent injection.
418
+ *
419
+ * @param name - Package name to escape
420
+ * @returns Safe package name
421
+ * @throws {Error} If package name contains invalid characters
422
+ */
423
+ function escapePackageName(name) {
424
+ if (!name || typeof name !== 'string') {
425
+ throw createError('Package name is required');
426
+ }
427
+ if (name.length > MAX_PACKAGE_NAME_LENGTH) {
428
+ throw createError(`Package name exceeds maximum length of ${MAX_PACKAGE_NAME_LENGTH}`);
429
+ }
430
+ const safe = [];
431
+ for (let i = 0; i < name.length; i++) {
432
+ const code = name.charCodeAt(i);
433
+ // Allow: a-z, A-Z, 0-9, @, /, -, _, .
434
+ if ((code >= 97 && code <= 122) || // a-z
435
+ (code >= 65 && code <= 90) || // A-Z
436
+ (code >= 48 && code <= 57) || // 0-9
437
+ code === 64 || // @
438
+ code === 47 || // /
439
+ code === 45 || // -
440
+ code === 95 || // _
441
+ code === 46 // .
442
+ ) {
443
+ safe.push(name[i]);
444
+ }
445
+ else {
446
+ throw createError(`Invalid character in package name at position ${i}: "${name[i]}"`);
447
+ }
448
+ }
449
+ return safe.join('');
450
+ }
451
+ /**
452
+ * Maximum allowed version string length.
453
+ */
454
+ const MAX_VERSION_LENGTH = 256;
455
+ /**
456
+ * Escapes a version string for safe use in shell commands.
457
+ *
458
+ * @param version - Version string to escape
459
+ * @returns Safe version string
460
+ * @throws {Error} If version contains invalid characters
461
+ */
462
+ function escapeVersion(version) {
463
+ if (!version || typeof version !== 'string') {
464
+ throw createError('Version is required');
465
+ }
466
+ if (version.length > MAX_VERSION_LENGTH) {
467
+ throw createError(`Version exceeds maximum length of ${MAX_VERSION_LENGTH}`);
468
+ }
469
+ const safe = [];
470
+ for (let i = 0; i < version.length; i++) {
471
+ const code = version.charCodeAt(i);
472
+ // Allow: 0-9, ., -, +, a-z, A-Z
473
+ if ((code >= 48 && code <= 57) || // 0-9
474
+ (code >= 97 && code <= 122) || // a-z
475
+ (code >= 65 && code <= 90) || // A-Z
476
+ code === 46 || // .
477
+ code === 45 || // -
478
+ code === 43 // +
479
+ ) {
480
+ safe.push(version[i]);
481
+ }
482
+ else {
483
+ throw createError(`Invalid character in version at position ${i}: "${version[i]}"`);
484
+ }
485
+ }
486
+ return safe.join('');
487
+ }
488
+ /**
489
+ * Extracts repository URL from npm package repository field.
490
+ *
491
+ * @param repository - Repository field from package.json (string or object)
492
+ * @returns Repository URL, or undefined if not found
493
+ */
494
+ function extractRepoUrl(repository) {
495
+ if (typeof repository === 'string')
496
+ return repository;
497
+ if (repository && typeof repository === 'object') {
498
+ const repo = repository;
499
+ if (repo.url) {
500
+ // Clean up git+ prefix and .git suffix
501
+ let url = repo.url;
502
+ if (url.startsWith('git+')) {
503
+ url = url.slice(4);
504
+ }
505
+ if (url.endsWith('.git')) {
506
+ url = url.slice(0, -4);
507
+ }
508
+ return url;
509
+ }
510
+ }
511
+ return undefined;
512
+ }
513
+
514
+ /**
515
+ * Creates a registry client.
516
+ *
517
+ * @param type - Type of registry to create
518
+ * @param config - Registry configuration
519
+ * @returns A Registry instance
520
+ *
521
+ * @example
522
+ * const registry = createRegistry('npm')
523
+ * const version = await registry.getLatestVersion('lodash')
524
+ */
525
+ function createRegistry(type = 'npm', config = {}) {
526
+ switch (type) {
527
+ case 'npm':
528
+ return createNpmRegistry(config);
529
+ default:
530
+ throw createError(`Unknown registry type: ${type}`);
531
+ }
532
+ }
533
+
534
+ export { createCache, createNpmRegistry, createPackageInfo, createRegistry, createVersionInfo, escapePackageName, escapeVersion };
535
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../../../libs/versioning/src/registry/models/package-info.ts","../../../../../../../../libs/versioning/src/registry/models/version-info.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/date/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/json/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/map/index.ts","../../../../../../../../libs/versioning/src/registry/npm/cache.ts","../../../../../../../../libs/versioning/src/registry/npm/client.ts","../../../../../../../../libs/versioning/src/registry/factory.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["_Reflect"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Creates a new PackageInfo object.
5
+ *
6
+ * @param options - Configuration for the package info
7
+ * @param options.name - e.g., 'lodash' or '@scope/pkg'
8
+ * @param options.latestVersion - The most recently published semver string
9
+ * @param options.versions - All published semver strings in chronological order
10
+ * @param options.description - Brief summary of package functionality
11
+ * @param options.license - SPDX license identifier
12
+ * @param options.repository - URL to source code repository
13
+ * @param options.homepage - URL to project homepage or documentation site
14
+ * @param options.maintainers - List of maintainers with name and email
15
+ * @param options.keywords - Search terms for npm registry discovery
16
+ * @param options.lastModified - Time of last modification
17
+ * @returns A new PackageInfo object
18
+ */
19
+ function createPackageInfo(options) {
20
+ return {
21
+ name: options.name,
22
+ description: options.description,
23
+ latestVersion: options.latestVersion,
24
+ versions: options.versions,
25
+ license: options.license,
26
+ repository: options.repository,
27
+ homepage: options.homepage,
28
+ maintainers: options.maintainers ?? [],
29
+ keywords: options.keywords,
30
+ lastModified: options.lastModified,
31
+ };
32
+ }
33
+
34
+ /**
35
+ * Creates a new VersionInfo object.
36
+ *
37
+ * @param options - Configuration for the release info
38
+ * @param options.version - e.g., '1.2.3' or '2.0.0-beta.1'
39
+ * @param options.publishedAt - ISO 8601 timestamp of publication
40
+ * @param options.tarball - URL to the package tarball
41
+ * @param options.integrity - Subresource integrity hash
42
+ * @param options.dependencies - Production dependencies map
43
+ * @param options.devDependencies - Development dependencies map
44
+ * @param options.peerDependencies - Peer dependencies map
45
+ * @param options.optionalDependencies - Optional dependencies map
46
+ * @param options.engines - Node/npm engine requirements
47
+ * @param options.nodeVersion - Node.js version used during publish
48
+ * @param options.npmVersion - npm version used during publish
49
+ * @returns A new VersionInfo object
50
+ */
51
+ function createVersionInfo(options) {
52
+ return {
53
+ version: options.version,
54
+ publishedAt: options.publishedAt,
55
+ tarball: options.tarball,
56
+ integrity: options.integrity,
57
+ dependencies: options.dependencies,
58
+ devDependencies: options.devDependencies,
59
+ peerDependencies: options.peerDependencies,
60
+ optionalDependencies: options.optionalDependencies,
61
+ engines: options.engines,
62
+ nodeVersion: options.nodeVersion,
63
+ npmVersion: options.npmVersion,
64
+ };
65
+ }
66
+
67
+ exports.createPackageInfo = createPackageInfo;
68
+ exports.createVersionInfo = createVersionInfo;
69
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../../../../../../../../libs/versioning/src/registry/models/package-info.ts","../../../../../../../../../../libs/versioning/src/registry/models/version-info.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;AAqCA;;;;;;;;;;;;;;;AAeG;AACG,SAAU,iBAAiB,CAAC,OAWjC,EAAA;IACC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1B,QAAA,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC;AACH;;AC5BA;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,iBAAiB,CAAC,OAYjC,EAAA;IACC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B;AACH;;;;;"}
@@ -0,0 +1,6 @@
1
+ export type { Registry, RegistryConfig } from './registry';
2
+ export type { PackageInfo } from './package-info';
3
+ export type { VersionInfo, Maintainer } from './version-info';
4
+ export { createPackageInfo } from './package-info';
5
+ export { createVersionInfo } from './version-info';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/versioning/src/registry/models/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}