@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.
- package/ARCHITECTURE.md +593 -0
- package/CHANGELOG.md +35 -0
- package/FUNDING.md +141 -0
- package/LICENSE.md +21 -0
- package/README.md +195 -0
- package/SECURITY.md +82 -0
- package/changelog/compare/diff.d.ts +128 -0
- package/changelog/compare/diff.d.ts.map +1 -0
- package/changelog/compare/index.cjs.js +628 -0
- package/changelog/compare/index.cjs.js.map +1 -0
- package/changelog/compare/index.d.ts +4 -0
- package/changelog/compare/index.d.ts.map +1 -0
- package/changelog/compare/index.esm.js +612 -0
- package/changelog/compare/index.esm.js.map +1 -0
- package/changelog/compare/is-equal.d.ts +114 -0
- package/changelog/compare/is-equal.d.ts.map +1 -0
- package/changelog/index.cjs.js +6448 -0
- package/changelog/index.cjs.js.map +1 -0
- package/changelog/index.d.ts +6 -0
- package/changelog/index.d.ts.map +1 -0
- package/changelog/index.esm.js +6358 -0
- package/changelog/index.esm.js.map +1 -0
- package/changelog/models/changelog.d.ts +86 -0
- package/changelog/models/changelog.d.ts.map +1 -0
- package/changelog/models/commit-ref.d.ts +51 -0
- package/changelog/models/commit-ref.d.ts.map +1 -0
- package/changelog/models/entry.d.ts +84 -0
- package/changelog/models/entry.d.ts.map +1 -0
- package/changelog/models/index.cjs.js +2043 -0
- package/changelog/models/index.cjs.js.map +1 -0
- package/changelog/models/index.d.ts +11 -0
- package/changelog/models/index.d.ts.map +1 -0
- package/changelog/models/index.esm.js +2026 -0
- package/changelog/models/index.esm.js.map +1 -0
- package/changelog/models/schema.d.ts +68 -0
- package/changelog/models/schema.d.ts.map +1 -0
- package/changelog/models/section.d.ts +25 -0
- package/changelog/models/section.d.ts.map +1 -0
- package/changelog/operations/add-entry.d.ts +56 -0
- package/changelog/operations/add-entry.d.ts.map +1 -0
- package/changelog/operations/add-item.d.ts +18 -0
- package/changelog/operations/add-item.d.ts.map +1 -0
- package/changelog/operations/filter-by-predicate.d.ts +81 -0
- package/changelog/operations/filter-by-predicate.d.ts.map +1 -0
- package/changelog/operations/filter-by-range.d.ts +63 -0
- package/changelog/operations/filter-by-range.d.ts.map +1 -0
- package/changelog/operations/filter-entries.d.ts +9 -0
- package/changelog/operations/filter-entries.d.ts.map +1 -0
- package/changelog/operations/index.cjs.js +2455 -0
- package/changelog/operations/index.cjs.js.map +1 -0
- package/changelog/operations/index.d.ts +15 -0
- package/changelog/operations/index.d.ts.map +1 -0
- package/changelog/operations/index.esm.js +2411 -0
- package/changelog/operations/index.esm.js.map +1 -0
- package/changelog/operations/merge.d.ts +88 -0
- package/changelog/operations/merge.d.ts.map +1 -0
- package/changelog/operations/remove-entry.d.ts +45 -0
- package/changelog/operations/remove-entry.d.ts.map +1 -0
- package/changelog/operations/remove-section.d.ts +50 -0
- package/changelog/operations/remove-section.d.ts.map +1 -0
- package/changelog/operations/transform.d.ts +143 -0
- package/changelog/operations/transform.d.ts.map +1 -0
- package/changelog/parse/index.cjs.js +1282 -0
- package/changelog/parse/index.cjs.js.map +1 -0
- package/changelog/parse/index.d.ts +5 -0
- package/changelog/parse/index.d.ts.map +1 -0
- package/changelog/parse/index.esm.js +1275 -0
- package/changelog/parse/index.esm.js.map +1 -0
- package/changelog/parse/line.d.ts +48 -0
- package/changelog/parse/line.d.ts.map +1 -0
- package/changelog/parse/parser.d.ts +16 -0
- package/changelog/parse/parser.d.ts.map +1 -0
- package/changelog/parse/tokenizer.d.ts +49 -0
- package/changelog/parse/tokenizer.d.ts.map +1 -0
- package/changelog/serialize/index.cjs.js +574 -0
- package/changelog/serialize/index.cjs.js.map +1 -0
- package/changelog/serialize/index.d.ts +6 -0
- package/changelog/serialize/index.d.ts.map +1 -0
- package/changelog/serialize/index.esm.js +564 -0
- package/changelog/serialize/index.esm.js.map +1 -0
- package/changelog/serialize/templates.d.ts +81 -0
- package/changelog/serialize/templates.d.ts.map +1 -0
- package/changelog/serialize/to-json.d.ts +57 -0
- package/changelog/serialize/to-json.d.ts.map +1 -0
- package/changelog/serialize/to-string.d.ts +30 -0
- package/changelog/serialize/to-string.d.ts.map +1 -0
- package/commits/index.cjs.js +648 -0
- package/commits/index.cjs.js.map +1 -0
- package/commits/index.d.ts +3 -0
- package/commits/index.d.ts.map +1 -0
- package/commits/index.esm.js +629 -0
- package/commits/index.esm.js.map +1 -0
- package/commits/models/breaking.d.ts +39 -0
- package/commits/models/breaking.d.ts.map +1 -0
- package/commits/models/commit-type.d.ts +32 -0
- package/commits/models/commit-type.d.ts.map +1 -0
- package/commits/models/conventional.d.ts +49 -0
- package/commits/models/conventional.d.ts.map +1 -0
- package/commits/models/index.cjs.js +207 -0
- package/commits/models/index.cjs.js.map +1 -0
- package/commits/models/index.d.ts +7 -0
- package/commits/models/index.d.ts.map +1 -0
- package/commits/models/index.esm.js +193 -0
- package/commits/models/index.esm.js.map +1 -0
- package/commits/parse/body.d.ts +18 -0
- package/commits/parse/body.d.ts.map +1 -0
- package/commits/parse/footer.d.ts +16 -0
- package/commits/parse/footer.d.ts.map +1 -0
- package/commits/parse/header.d.ts +15 -0
- package/commits/parse/header.d.ts.map +1 -0
- package/commits/parse/index.cjs.js +505 -0
- package/commits/parse/index.cjs.js.map +1 -0
- package/commits/parse/index.d.ts +5 -0
- package/commits/parse/index.d.ts.map +1 -0
- package/commits/parse/index.esm.js +499 -0
- package/commits/parse/index.esm.js.map +1 -0
- package/commits/parse/message.d.ts +17 -0
- package/commits/parse/message.d.ts.map +1 -0
- package/commits/utils/replace-char.d.ts +19 -0
- package/commits/utils/replace-char.d.ts.map +1 -0
- package/flow/executor/execute.d.ts +72 -0
- package/flow/executor/execute.d.ts.map +1 -0
- package/flow/executor/index.cjs.js +4402 -0
- package/flow/executor/index.cjs.js.map +1 -0
- package/flow/executor/index.d.ts +3 -0
- package/flow/executor/index.d.ts.map +1 -0
- package/flow/executor/index.esm.js +4398 -0
- package/flow/executor/index.esm.js.map +1 -0
- package/flow/factory.d.ts +58 -0
- package/flow/factory.d.ts.map +1 -0
- package/flow/index.cjs.js +8506 -0
- package/flow/index.cjs.js.map +1 -0
- package/flow/index.d.ts +7 -0
- package/flow/index.d.ts.map +1 -0
- package/flow/index.esm.js +8451 -0
- package/flow/index.esm.js.map +1 -0
- package/flow/models/flow.d.ts +130 -0
- package/flow/models/flow.d.ts.map +1 -0
- package/flow/models/index.cjs.js +285 -0
- package/flow/models/index.cjs.js.map +1 -0
- package/flow/models/index.d.ts +7 -0
- package/flow/models/index.d.ts.map +1 -0
- package/flow/models/index.esm.js +268 -0
- package/flow/models/index.esm.js.map +1 -0
- package/flow/models/step.d.ts +108 -0
- package/flow/models/step.d.ts.map +1 -0
- package/flow/models/types.d.ts +150 -0
- package/flow/models/types.d.ts.map +1 -0
- package/flow/presets/conventional.d.ts +59 -0
- package/flow/presets/conventional.d.ts.map +1 -0
- package/flow/presets/independent.d.ts +61 -0
- package/flow/presets/independent.d.ts.map +1 -0
- package/flow/presets/index.cjs.js +3903 -0
- package/flow/presets/index.cjs.js.map +1 -0
- package/flow/presets/index.d.ts +4 -0
- package/flow/presets/index.d.ts.map +1 -0
- package/flow/presets/index.esm.js +3889 -0
- package/flow/presets/index.esm.js.map +1 -0
- package/flow/presets/synced.d.ts +65 -0
- package/flow/presets/synced.d.ts.map +1 -0
- package/flow/steps/analyze-commits.d.ts +19 -0
- package/flow/steps/analyze-commits.d.ts.map +1 -0
- package/flow/steps/calculate-bump.d.ts +27 -0
- package/flow/steps/calculate-bump.d.ts.map +1 -0
- package/flow/steps/create-commit.d.ts +16 -0
- package/flow/steps/create-commit.d.ts.map +1 -0
- package/flow/steps/create-tag.d.ts +22 -0
- package/flow/steps/create-tag.d.ts.map +1 -0
- package/flow/steps/fetch-registry.d.ts +19 -0
- package/flow/steps/fetch-registry.d.ts.map +1 -0
- package/flow/steps/generate-changelog.d.ts +25 -0
- package/flow/steps/generate-changelog.d.ts.map +1 -0
- package/flow/steps/index.cjs.js +3523 -0
- package/flow/steps/index.cjs.js.map +1 -0
- package/flow/steps/index.d.ts +8 -0
- package/flow/steps/index.d.ts.map +1 -0
- package/flow/steps/index.esm.js +3504 -0
- package/flow/steps/index.esm.js.map +1 -0
- package/flow/steps/update-packages.d.ts +25 -0
- package/flow/steps/update-packages.d.ts.map +1 -0
- package/flow/utils/interpolate.d.ts +11 -0
- package/flow/utils/interpolate.d.ts.map +1 -0
- package/git/factory.d.ts +233 -0
- package/git/factory.d.ts.map +1 -0
- package/git/index.cjs.js +2863 -0
- package/git/index.cjs.js.map +1 -0
- package/git/index.d.ts +5 -0
- package/git/index.d.ts.map +1 -0
- package/git/index.esm.js +2785 -0
- package/git/index.esm.js.map +1 -0
- package/git/models/commit.d.ts +129 -0
- package/git/models/commit.d.ts.map +1 -0
- package/git/models/index.cjs.js +755 -0
- package/git/models/index.cjs.js.map +1 -0
- package/git/models/index.d.ts +7 -0
- package/git/models/index.d.ts.map +1 -0
- package/git/models/index.esm.js +729 -0
- package/git/models/index.esm.js.map +1 -0
- package/git/models/ref.d.ts +120 -0
- package/git/models/ref.d.ts.map +1 -0
- package/git/models/tag.d.ts +141 -0
- package/git/models/tag.d.ts.map +1 -0
- package/git/operations/commit.d.ts +97 -0
- package/git/operations/commit.d.ts.map +1 -0
- package/git/operations/head-info.d.ts +29 -0
- package/git/operations/head-info.d.ts.map +1 -0
- package/git/operations/index.cjs.js +1954 -0
- package/git/operations/index.cjs.js.map +1 -0
- package/git/operations/index.d.ts +14 -0
- package/git/operations/index.d.ts.map +1 -0
- package/git/operations/index.esm.js +1903 -0
- package/git/operations/index.esm.js.map +1 -0
- package/git/operations/log.d.ts +104 -0
- package/git/operations/log.d.ts.map +1 -0
- package/git/operations/manage-tags.d.ts +60 -0
- package/git/operations/manage-tags.d.ts.map +1 -0
- package/git/operations/query-tags.d.ts +88 -0
- package/git/operations/query-tags.d.ts.map +1 -0
- package/git/operations/stage.d.ts +66 -0
- package/git/operations/stage.d.ts.map +1 -0
- package/git/operations/status.d.ts +173 -0
- package/git/operations/status.d.ts.map +1 -0
- package/index.cjs.js +16761 -0
- package/index.cjs.js.map +1 -0
- package/index.d.ts +102 -0
- package/index.d.ts.map +1 -0
- package/index.esm.js +16427 -0
- package/index.esm.js.map +1 -0
- package/package.json +200 -0
- package/registry/factory.d.ts +18 -0
- package/registry/factory.d.ts.map +1 -0
- package/registry/index.cjs.js +543 -0
- package/registry/index.cjs.js.map +1 -0
- package/registry/index.d.ts +5 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.esm.js +535 -0
- package/registry/index.esm.js.map +1 -0
- package/registry/models/index.cjs.js +69 -0
- package/registry/models/index.cjs.js.map +1 -0
- package/registry/models/index.d.ts +6 -0
- package/registry/models/index.d.ts.map +1 -0
- package/registry/models/index.esm.js +66 -0
- package/registry/models/index.esm.js.map +1 -0
- package/registry/models/package-info.d.ts +55 -0
- package/registry/models/package-info.d.ts.map +1 -0
- package/registry/models/registry.d.ts +62 -0
- package/registry/models/registry.d.ts.map +1 -0
- package/registry/models/version-info.d.ts +67 -0
- package/registry/models/version-info.d.ts.map +1 -0
- package/registry/npm/cache.d.ts +50 -0
- package/registry/npm/cache.d.ts.map +1 -0
- package/registry/npm/client.d.ts +30 -0
- package/registry/npm/client.d.ts.map +1 -0
- package/registry/npm/index.cjs.js +456 -0
- package/registry/npm/index.cjs.js.map +1 -0
- package/registry/npm/index.d.ts +4 -0
- package/registry/npm/index.d.ts.map +1 -0
- package/registry/npm/index.esm.js +451 -0
- package/registry/npm/index.esm.js.map +1 -0
- package/semver/compare/compare.d.ts +100 -0
- package/semver/compare/compare.d.ts.map +1 -0
- package/semver/compare/index.cjs.js +386 -0
- package/semver/compare/index.cjs.js.map +1 -0
- package/semver/compare/index.d.ts +3 -0
- package/semver/compare/index.d.ts.map +1 -0
- package/semver/compare/index.esm.js +370 -0
- package/semver/compare/index.esm.js.map +1 -0
- package/semver/compare/sort.d.ts +36 -0
- package/semver/compare/sort.d.ts.map +1 -0
- package/semver/format/index.cjs.js +58 -0
- package/semver/format/index.cjs.js.map +1 -0
- package/semver/format/index.d.ts +2 -0
- package/semver/format/index.d.ts.map +1 -0
- package/semver/format/index.esm.js +53 -0
- package/semver/format/index.esm.js.map +1 -0
- package/semver/format/to-string.d.ts +31 -0
- package/semver/format/to-string.d.ts.map +1 -0
- package/semver/increment/bump.d.ts +37 -0
- package/semver/increment/bump.d.ts.map +1 -0
- package/semver/increment/index.cjs.js +223 -0
- package/semver/increment/index.cjs.js.map +1 -0
- package/semver/increment/index.d.ts +2 -0
- package/semver/increment/index.d.ts.map +1 -0
- package/semver/increment/index.esm.js +219 -0
- package/semver/increment/index.esm.js.map +1 -0
- package/semver/index.cjs.js +1499 -0
- package/semver/index.cjs.js.map +1 -0
- package/semver/index.d.ts +6 -0
- package/semver/index.d.ts.map +1 -0
- package/semver/index.esm.js +1458 -0
- package/semver/index.esm.js.map +1 -0
- package/semver/models/index.cjs.js +153 -0
- package/semver/models/index.cjs.js.map +1 -0
- package/semver/models/index.d.ts +5 -0
- package/semver/models/index.d.ts.map +1 -0
- package/semver/models/index.esm.js +139 -0
- package/semver/models/index.esm.js.map +1 -0
- package/semver/models/range.d.ts +83 -0
- package/semver/models/range.d.ts.map +1 -0
- package/semver/models/version.d.ts +78 -0
- package/semver/models/version.d.ts.map +1 -0
- package/semver/parse/index.cjs.js +799 -0
- package/semver/parse/index.cjs.js.map +1 -0
- package/semver/parse/index.d.ts +5 -0
- package/semver/parse/index.d.ts.map +1 -0
- package/semver/parse/index.esm.js +793 -0
- package/semver/parse/index.esm.js.map +1 -0
- package/semver/parse/range.d.ts +38 -0
- package/semver/parse/range.d.ts.map +1 -0
- package/semver/parse/version.d.ts +49 -0
- package/semver/parse/version.d.ts.map +1 -0
- package/workspace/discovery/changelog-path.d.ts +21 -0
- package/workspace/discovery/changelog-path.d.ts.map +1 -0
- package/workspace/discovery/dependencies.d.ts +145 -0
- package/workspace/discovery/dependencies.d.ts.map +1 -0
- package/workspace/discovery/discover-changelogs.d.ts +76 -0
- package/workspace/discovery/discover-changelogs.d.ts.map +1 -0
- package/workspace/discovery/index.cjs.js +2300 -0
- package/workspace/discovery/index.cjs.js.map +1 -0
- package/workspace/discovery/index.d.ts +13 -0
- package/workspace/discovery/index.d.ts.map +1 -0
- package/workspace/discovery/index.esm.js +2283 -0
- package/workspace/discovery/index.esm.js.map +1 -0
- package/workspace/discovery/packages.d.ts +83 -0
- package/workspace/discovery/packages.d.ts.map +1 -0
- package/workspace/index.cjs.js +4445 -0
- package/workspace/index.cjs.js.map +1 -0
- package/workspace/index.d.ts +52 -0
- package/workspace/index.d.ts.map +1 -0
- package/workspace/index.esm.js +4394 -0
- package/workspace/index.esm.js.map +1 -0
- package/workspace/models/index.cjs.js +284 -0
- package/workspace/models/index.cjs.js.map +1 -0
- package/workspace/models/index.d.ts +10 -0
- package/workspace/models/index.d.ts.map +1 -0
- package/workspace/models/index.esm.js +261 -0
- package/workspace/models/index.esm.js.map +1 -0
- package/workspace/models/project.d.ts +118 -0
- package/workspace/models/project.d.ts.map +1 -0
- package/workspace/models/workspace.d.ts +139 -0
- package/workspace/models/workspace.d.ts.map +1 -0
- package/workspace/operations/batch-update.d.ts +99 -0
- package/workspace/operations/batch-update.d.ts.map +1 -0
- package/workspace/operations/cascade-bump.d.ts +125 -0
- package/workspace/operations/cascade-bump.d.ts.map +1 -0
- package/workspace/operations/index.cjs.js +2675 -0
- package/workspace/operations/index.cjs.js.map +1 -0
- package/workspace/operations/index.d.ts +12 -0
- package/workspace/operations/index.d.ts.map +1 -0
- package/workspace/operations/index.esm.js +2663 -0
- package/workspace/operations/index.esm.js.map +1 -0
- package/workspace/operations/validate.d.ts +85 -0
- package/workspace/operations/validate.d.ts.map +1 -0
package/FUNDING.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Funding & Support
|
|
2
|
+
|
|
3
|
+
Thank you for considering supporting hyperfrontend! Your contributions help maintain and improve this project.
|
|
4
|
+
|
|
5
|
+
## Why Support hyperfrontend?
|
|
6
|
+
|
|
7
|
+
hyperfrontend is an open-source project that provides:
|
|
8
|
+
|
|
9
|
+
- 🔧 Framework-agnostic micro-frontend architecture
|
|
10
|
+
- 📦 Multiple packages and tools for building scalable web applications
|
|
11
|
+
- 📚 Comprehensive documentation and examples
|
|
12
|
+
- 🆓 Free for everyone to use
|
|
13
|
+
|
|
14
|
+
Your support helps:
|
|
15
|
+
|
|
16
|
+
- ⏰ Dedicate more time to development and maintenance
|
|
17
|
+
- 🐛 Fix bugs and address issues faster
|
|
18
|
+
- ✨ Build new features and improvements
|
|
19
|
+
- 📖 Create better documentation and tutorials
|
|
20
|
+
- 🌟 Keep the project sustainable long-term
|
|
21
|
+
|
|
22
|
+
## How to Support
|
|
23
|
+
|
|
24
|
+
### 💖 GitHub Sponsors
|
|
25
|
+
|
|
26
|
+
You can sponsor the project through GitHub Sponsors:
|
|
27
|
+
|
|
28
|
+
**[Sponsor @AndrewRedican on GitHub](https://github.com/sponsors/AndrewRedican)**
|
|
29
|
+
|
|
30
|
+
GitHub Sponsors benefits:
|
|
31
|
+
|
|
32
|
+
- Direct support to the maintainer
|
|
33
|
+
- No platform fees (GitHub covers them)
|
|
34
|
+
- Various sponsorship tiers available
|
|
35
|
+
- Recognition in the project
|
|
36
|
+
|
|
37
|
+
### 🌐 One-time Donations
|
|
38
|
+
|
|
39
|
+
You can also make a one-time contribution:
|
|
40
|
+
|
|
41
|
+
**[Donate via hyperfrontend.dev](https://hyperfrontend.dev/sponsor)**
|
|
42
|
+
|
|
43
|
+
### 🏢 Corporate Sponsorship
|
|
44
|
+
|
|
45
|
+
If your company uses hyperfrontend in production, consider becoming a corporate sponsor:
|
|
46
|
+
|
|
47
|
+
- **Bronze Sponsor** ($100/month) - Logo in README
|
|
48
|
+
- **Silver Sponsor** ($500/month) - Logo in README + website
|
|
49
|
+
- **Gold Sponsor** ($1000/month) - Logo placement + priority support
|
|
50
|
+
- **Platinum Sponsor** ($2500/month) - All benefits + consulting hours
|
|
51
|
+
|
|
52
|
+
Contact: andrew.redican.mejia@gmail.com
|
|
53
|
+
|
|
54
|
+
## Other Ways to Contribute
|
|
55
|
+
|
|
56
|
+
Not everyone can contribute financially, and that's okay! There are many other ways to support:
|
|
57
|
+
|
|
58
|
+
### 💻 Code Contributions
|
|
59
|
+
|
|
60
|
+
- Submit bug fixes
|
|
61
|
+
- Add new features
|
|
62
|
+
- Improve documentation
|
|
63
|
+
- Write tests
|
|
64
|
+
|
|
65
|
+
See our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
66
|
+
|
|
67
|
+
### 📣 Spread the Word
|
|
68
|
+
|
|
69
|
+
- ⭐ Star the repository on GitHub
|
|
70
|
+
- 🐦 Share on social media
|
|
71
|
+
- 📝 Write blog posts or tutorials
|
|
72
|
+
- 🎤 Give talks about hyperfrontend at meetups/conferences
|
|
73
|
+
|
|
74
|
+
### 🐛 Bug Reports
|
|
75
|
+
|
|
76
|
+
- Report issues you encounter
|
|
77
|
+
- Help triage existing issues
|
|
78
|
+
- Provide detailed reproduction steps
|
|
79
|
+
|
|
80
|
+
### 📚 Documentation
|
|
81
|
+
|
|
82
|
+
- Improve existing docs
|
|
83
|
+
- Write tutorials and guides
|
|
84
|
+
- Translate documentation
|
|
85
|
+
- Create video tutorials
|
|
86
|
+
|
|
87
|
+
### 💬 Community Support
|
|
88
|
+
|
|
89
|
+
- Answer questions in issues
|
|
90
|
+
- Help other users on discussions
|
|
91
|
+
- Share your use cases and examples
|
|
92
|
+
|
|
93
|
+
## Current Sponsors
|
|
94
|
+
|
|
95
|
+
Thank you to all our sponsors and backers! 🙏
|
|
96
|
+
|
|
97
|
+
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
98
|
+
|
|
99
|
+
[](#contributors)
|
|
100
|
+
|
|
101
|
+
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
102
|
+
|
|
103
|
+
### Corporate Sponsors
|
|
104
|
+
|
|
105
|
+
<!-- Corporate sponsors will be listed here -->
|
|
106
|
+
|
|
107
|
+
_Interested in corporate sponsorship? [Contact us](mailto:andrew.redican.mejia@gmail.com)_
|
|
108
|
+
|
|
109
|
+
### Individual Sponsors
|
|
110
|
+
|
|
111
|
+
<!-- Sponsors will be automatically listed through GitHub Sponsors -->
|
|
112
|
+
|
|
113
|
+
_Become the first sponsor!_ ❤️
|
|
114
|
+
|
|
115
|
+
## Recognition
|
|
116
|
+
|
|
117
|
+
All sponsors and contributors are recognized in:
|
|
118
|
+
|
|
119
|
+
- Project README
|
|
120
|
+
- Project website (coming soon)
|
|
121
|
+
- Release notes (for significant contributions)
|
|
122
|
+
|
|
123
|
+
## Transparency
|
|
124
|
+
|
|
125
|
+
All sponsorship funds are used for:
|
|
126
|
+
|
|
127
|
+
- Development time and effort
|
|
128
|
+
- Infrastructure costs (hosting, CI/CD, domains)
|
|
129
|
+
- Development tools and services
|
|
130
|
+
- Community building and events
|
|
131
|
+
|
|
132
|
+
## Questions?
|
|
133
|
+
|
|
134
|
+
If you have questions about sponsorship or funding, please contact:
|
|
135
|
+
|
|
136
|
+
**Email**: andrew.redican.mejia@gmail.com
|
|
137
|
+
**GitHub**: [@AndrewRedican](https://github.com/AndrewRedican)
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
Thank you for your support! Every contribution, whether code, documentation, or financial, helps make hyperfrontend better for everyone. 🚀
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Andrew Redican
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# @hyperfrontend/versioning
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://github.com/AndrewRedican/hyperfrontend/actions/workflows/ci-lib-versioning.yml">
|
|
5
|
+
<img src="https://img.shields.io/github/actions/workflow/status/AndrewRedican/hyperfrontend/ci-lib-versioning.yml?style=flat-square&logo=github&label=build" alt="Build">
|
|
6
|
+
</a>
|
|
7
|
+
<a href="https://codecov.io/gh/AndrewRedican/hyperfrontend/flags?flags%5B0%5D=versioning">
|
|
8
|
+
<img src="https://codecov.io/gh/AndrewRedican/hyperfrontend/graph/badge.svg?flag=versioning" alt="Coverage">
|
|
9
|
+
</a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/@hyperfrontend/versioning">
|
|
11
|
+
<img src="https://img.shields.io/npm/v/@hyperfrontend/versioning?style=flat-square" alt="npm version">
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://bundlephobia.com/package/@hyperfrontend/versioning">
|
|
14
|
+
<img src="https://img.shields.io/bundlephobia/min/%40hyperfrontend%2Fversioning?style=flat-square" alt="npm bundle size">
|
|
15
|
+
</a>
|
|
16
|
+
</p>
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="#contributors">
|
|
19
|
+
<img src="https://img.shields.io/github/all-contributors/AndrewRedican/hyperfrontend?color=ee8449&style=flat-square" alt="All Contributors">
|
|
20
|
+
</a>
|
|
21
|
+
<a href="https://github.com/AndrewRedican/hyperfrontend/blob/main/LICENSE.md">
|
|
22
|
+
<img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License">
|
|
23
|
+
</a>
|
|
24
|
+
<a href="https://www.npmjs.com/package/@hyperfrontend/versioning">
|
|
25
|
+
<img src="https://img.shields.io/npm/dm/@hyperfrontend/versioning?style=flat-square" alt="npm downloads">
|
|
26
|
+
</a>
|
|
27
|
+
<a href="https://github.com/AndrewRedican/hyperfrontend">
|
|
28
|
+
<img src="https://img.shields.io/github/stars/AndrewRedican/hyperfrontend?style=flat-square" alt="GitHub stars">
|
|
29
|
+
</a>
|
|
30
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?style=flat-square&logo=node.js" alt="Node Version">
|
|
31
|
+
<img src="https://img.shields.io/badge/tree%20shakeable-%E2%9C%93-success?style=flat-square" alt="Tree Shakeable">
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
Versioning library with changelog parsing, conventional commits, and semver flow orchestration.
|
|
35
|
+
|
|
36
|
+
• 👉 See [**documentation**](https://www.hyperfrontend.dev/docs/libraries/versioning/)
|
|
37
|
+
|
|
38
|
+
## What is @hyperfrontend/versioning?
|
|
39
|
+
|
|
40
|
+
@hyperfrontend/versioning provides a comprehensive toolkit for managing software versioning in JavaScript/TypeScript projects. The library is built on a **purely functional architecture** with factory functions, immutable data structures, and composable operations.
|
|
41
|
+
|
|
42
|
+
### Key Features
|
|
43
|
+
|
|
44
|
+
- **Changelog Parsing** - Parse CHANGELOG.md files into structured objects with lossless round-tripping
|
|
45
|
+
- **Conventional Commits** - Parse commit messages following the conventional commits specification
|
|
46
|
+
- **Semver Utilities** - Parse, compare, increment, and validate semantic versions
|
|
47
|
+
- **Registry Client** - Query npm registry for published versions and package metadata
|
|
48
|
+
- **Composable Operations** - Build complex versioning workflows from simple, pure functions
|
|
49
|
+
- **Zero External Dependencies** - Self-contained implementation with no third-party runtime dependencies
|
|
50
|
+
|
|
51
|
+
### Architecture Highlights
|
|
52
|
+
|
|
53
|
+
Built on a purely functional architecture with factory functions and immutable data structures. All parsing uses character-by-character state machines for predictable O(n) performance. The library integrates with `@hyperfrontend/project-scope` for virtual file system operations and `@hyperfrontend/data-utils` for deep comparison.
|
|
54
|
+
|
|
55
|
+
👉 See [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed design principles, data flow diagrams, and module composition.
|
|
56
|
+
|
|
57
|
+
## Why Use @hyperfrontend/versioning?
|
|
58
|
+
|
|
59
|
+
### Type-Safe Changelog Manipulation
|
|
60
|
+
|
|
61
|
+
Working with CHANGELOG.md files programmatically typically involves fragile string manipulation. This library parses changelogs into fully typed data structures with factory functions for creating entries, sections, and items. Modify changelog content with confidence using immutable operations and round-trip safely back to markdown.
|
|
62
|
+
|
|
63
|
+
### Unified Versioning Primitives
|
|
64
|
+
|
|
65
|
+
Version management requires coordinating semver parsing, commit analysis, changelog generation, and registry queries. This library provides all these primitives in one cohesive package with consistent APIs. Query npm for published versions, parse commit history, calculate version bumps, and generate changelog entries — all composable into custom release workflows.
|
|
66
|
+
|
|
67
|
+
### Zero-Dependency CI Integration
|
|
68
|
+
|
|
69
|
+
Designed for automated pipelines where minimal attack surface matters. Zero external runtime dependencies and state-machine parsing ensure predictable performance on any input. All parsers enforce input length limits to prevent resource exhaustion.
|
|
70
|
+
|
|
71
|
+
## Installation
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm install @hyperfrontend/versioning
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Quick Start
|
|
78
|
+
|
|
79
|
+
### Parsing a Changelog
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { parseChangelog } from '@hyperfrontend/versioning'
|
|
83
|
+
import fs from 'fs'
|
|
84
|
+
|
|
85
|
+
// Parse existing changelog content
|
|
86
|
+
const content = fs.readFileSync('CHANGELOG.md', 'utf-8')
|
|
87
|
+
const changelog = parseChangelog(content)
|
|
88
|
+
|
|
89
|
+
// Access entries
|
|
90
|
+
for (const entry of changelog.entries) {
|
|
91
|
+
console.log(`Version ${entry.version} - ${entry.date}`)
|
|
92
|
+
for (const section of entry.sections) {
|
|
93
|
+
console.log(` ${section.heading}: ${section.items.length} changes`)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Access metadata
|
|
98
|
+
console.log(changelog.metadata.format) // 'keep-a-changelog', 'conventional', etc.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Parsing Conventional Commits
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { parseConventionalCommit } from '@hyperfrontend/versioning'
|
|
105
|
+
|
|
106
|
+
const commit = parseConventionalCommit('feat(api): add user authentication')
|
|
107
|
+
|
|
108
|
+
console.log(commit.type) // 'feat'
|
|
109
|
+
console.log(commit.scope) // 'api'
|
|
110
|
+
console.log(commit.subject) // 'add user authentication'
|
|
111
|
+
console.log(commit.breaking) // false
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Checking for Breaking Changes
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
import { parseConventionalCommit } from '@hyperfrontend/versioning'
|
|
118
|
+
|
|
119
|
+
// Breaking change via !
|
|
120
|
+
const commit1 = parseConventionalCommit('feat(api)!: remove deprecated endpoint')
|
|
121
|
+
console.log(commit1.breaking) // true
|
|
122
|
+
|
|
123
|
+
// Breaking change via footer
|
|
124
|
+
const commit2 = parseConventionalCommit(\`fix: update API response format
|
|
125
|
+
|
|
126
|
+
BREAKING CHANGE: Response structure has changed\`)
|
|
127
|
+
console.log(commit2.breaking) // true
|
|
128
|
+
console.log(commit2.breakingDescription) // 'Response structure has changed'
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## API Overview
|
|
132
|
+
|
|
133
|
+
### Changelog Models
|
|
134
|
+
|
|
135
|
+
- **Changelog** - Complete representation of a CHANGELOG.md file
|
|
136
|
+
- **ChangelogEntry** - A single version entry with date and sections
|
|
137
|
+
- **ChangelogSection** - A category of changes (Features, Bug Fixes, etc.)
|
|
138
|
+
- **ChangelogItem** - An individual change with description and references
|
|
139
|
+
|
|
140
|
+
### Commit Models
|
|
141
|
+
|
|
142
|
+
- **ConventionalCommit** - Parsed conventional commit message
|
|
143
|
+
- **CommitType** - Type constants (feat, fix, docs, etc.)
|
|
144
|
+
- **CommitFooter** - Parsed footer/trailer from commit message
|
|
145
|
+
|
|
146
|
+
### Parser Functions
|
|
147
|
+
|
|
148
|
+
- **parseChangelog(content: string)** - Parse markdown changelog content
|
|
149
|
+
- **parseConventionalCommit(message: string)** - Parse a commit message
|
|
150
|
+
- **tokenize(input: string)** - Low-level tokenizer for changelog content
|
|
151
|
+
|
|
152
|
+
## Module Documentation
|
|
153
|
+
|
|
154
|
+
| Module | Description | Documentation |
|
|
155
|
+
| ------------ | --------------------------------------- | ----------------------------------- |
|
|
156
|
+
| `changelog/` | Parse and manipulate CHANGELOG.md files | [README](./src/changelog/README.md) |
|
|
157
|
+
| `commits/` | Parse conventional commit messages | [README](./src/commits/README.md) |
|
|
158
|
+
| `semver/` | Semantic version parsing and comparison | [README](./src/semver/README.md) |
|
|
159
|
+
| `registry/` | npm registry client | [README](./src/registry/README.md) |
|
|
160
|
+
| `git/` | Git operations abstraction | [README](./src/git/README.md) |
|
|
161
|
+
| `workspace/` | Project discovery and package.json | [README](./src/workspace/README.md) |
|
|
162
|
+
| `flow/` | Version release workflow orchestration | [README](./src/flow/README.md) |
|
|
163
|
+
|
|
164
|
+
👉 See [ARCHITECTURE.md](./ARCHITECTURE.md) for module composition diagrams and data flow.
|
|
165
|
+
|
|
166
|
+
## Compatibility
|
|
167
|
+
|
|
168
|
+
| Platform | Support |
|
|
169
|
+
| -------- | :-----: |
|
|
170
|
+
| Node.js | ✅ |
|
|
171
|
+
| Browser | ❌ |
|
|
172
|
+
|
|
173
|
+
### Output Formats
|
|
174
|
+
|
|
175
|
+
| Format | File | Tree-Shakeable |
|
|
176
|
+
| ------ | -------------- | :------------: |
|
|
177
|
+
| ESM | `index.esm.js` | ✅ |
|
|
178
|
+
| CJS | `index.cjs.js` | ❌ |
|
|
179
|
+
|
|
180
|
+
## Security
|
|
181
|
+
|
|
182
|
+
All parsers use state-machine tokenization with O(n) complexity and enforce input length limits (commit messages: 10KB, changelog files: 1MB) to prevent resource exhaustion. Character-by-character parsing eliminates regex-based vulnerabilities.
|
|
183
|
+
|
|
184
|
+
## Part of hyperfrontend
|
|
185
|
+
|
|
186
|
+
This library is part of the [hyperfrontend](https://github.com/AndrewRedican/hyperfrontend) monorepo.
|
|
187
|
+
|
|
188
|
+
**📖 [Full documentation](https://www.hyperfrontend.dev/docs/libraries/versioning)**
|
|
189
|
+
|
|
190
|
+
- Works seamlessly with [@hyperfrontend/project-scope](https://github.com/AndrewRedican/hyperfrontend/tree/main/libs/project-scope) for virtual file system operations
|
|
191
|
+
- Looking for cryptographic utilities? See [@hyperfrontend/cryptography](https://github.com/AndrewRedican/hyperfrontend/tree/main/libs/cryptography)
|
|
192
|
+
|
|
193
|
+
## License
|
|
194
|
+
|
|
195
|
+
MIT
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
We take the security of hyperfrontend seriously. If you discover a security vulnerability, please help us protect our users by following responsible disclosure practices.
|
|
6
|
+
|
|
7
|
+
### How to Report
|
|
8
|
+
|
|
9
|
+
**Please DO NOT report security vulnerabilities through public GitHub issues.**
|
|
10
|
+
|
|
11
|
+
Instead, please report security vulnerabilities directly via email to:
|
|
12
|
+
|
|
13
|
+
**<andrew.redican.mejia@gmail.com>**
|
|
14
|
+
|
|
15
|
+
### What to Include
|
|
16
|
+
|
|
17
|
+
To help us understand and resolve the issue quickly, please include the following information in your report:
|
|
18
|
+
|
|
19
|
+
- **Description**: A clear description of the vulnerability
|
|
20
|
+
- **Impact**: The potential impact and severity of the issue
|
|
21
|
+
- **Reproduction Steps**: Detailed steps to reproduce the vulnerability
|
|
22
|
+
- **Environment**: The version of hyperfrontend affected, browser/Node.js version, operating system, etc.
|
|
23
|
+
- **Proof of Concept**: If possible, include a minimal code example or proof of concept
|
|
24
|
+
- **Suggested Fix**: If you have ideas on how to fix the issue (optional)
|
|
25
|
+
|
|
26
|
+
### Response Timeline
|
|
27
|
+
|
|
28
|
+
- **Acknowledgment**: We will acknowledge receipt of your vulnerability report within 2 business days
|
|
29
|
+
- **Initial Assessment**: We will provide an initial assessment within 5 business days
|
|
30
|
+
- **Patch Development**: We aim to develop and test a patch within 10 days of acknowledgment
|
|
31
|
+
- **Public Disclosure**: Please allow at least **10 days** from the initial report before making the vulnerability publicly known
|
|
32
|
+
|
|
33
|
+
This grace period gives us time to:
|
|
34
|
+
|
|
35
|
+
- Verify and reproduce the issue
|
|
36
|
+
- Develop and test a fix
|
|
37
|
+
- Release a patched version
|
|
38
|
+
- Notify users to update their dependencies
|
|
39
|
+
|
|
40
|
+
### Coordinated Disclosure
|
|
41
|
+
|
|
42
|
+
We believe in coordinated disclosure and appreciate your cooperation in:
|
|
43
|
+
|
|
44
|
+
- Not exploiting the vulnerability beyond what is necessary to demonstrate it
|
|
45
|
+
- Not accessing, modifying, or deleting data that doesn't belong to you
|
|
46
|
+
- Allowing us reasonable time to address the issue before public disclosure
|
|
47
|
+
- Making a good faith effort to avoid privacy violations, data destruction, and service interruption
|
|
48
|
+
|
|
49
|
+
### Recognition
|
|
50
|
+
|
|
51
|
+
Once the vulnerability is patched and publicly disclosed, we will acknowledge your responsible disclosure in:
|
|
52
|
+
|
|
53
|
+
- Our release notes
|
|
54
|
+
- Our security advisories (if applicable)
|
|
55
|
+
- This SECURITY.md file (with your permission)
|
|
56
|
+
|
|
57
|
+
Thank you for helping keep hyperfrontend and its users safe!
|
|
58
|
+
|
|
59
|
+
## Security Best Practices
|
|
60
|
+
|
|
61
|
+
When using hyperfrontend in your applications:
|
|
62
|
+
|
|
63
|
+
1. **Keep Dependencies Updated**: Regularly update to the latest version to receive security patches
|
|
64
|
+
2. **Content Security Policy**: Implement appropriate CSP headers when embedding features
|
|
65
|
+
3. **Input Validation**: Validate and sanitize all data passed between features
|
|
66
|
+
4. **Origin Verification**: Always verify the origin of messages in cross-frame communication
|
|
67
|
+
5. **Authentication**: Implement proper authentication and authorization for sensitive features
|
|
68
|
+
6. **HTTPS**: Always serve hyperfrontend features over HTTPS in production
|
|
69
|
+
|
|
70
|
+
## Security Updates
|
|
71
|
+
|
|
72
|
+
Security updates will be released as patch versions and documented in the [CHANGELOG](https://github.com/AndrewRedican/hyperfrontend/releases) and GitHub Security Advisories.
|
|
73
|
+
|
|
74
|
+
## Supported Versions
|
|
75
|
+
|
|
76
|
+
We currently provide security updates for:
|
|
77
|
+
|
|
78
|
+
| Version | Supported |
|
|
79
|
+
| ------- | ------------------ |
|
|
80
|
+
| 0.0.x | :white_check_mark: |
|
|
81
|
+
|
|
82
|
+
As the project matures, we will update this table to reflect our long-term support policy.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changelog Diff Algorithm
|
|
3
|
+
*
|
|
4
|
+
* Computes structural differences between two changelogs.
|
|
5
|
+
* Identifies added, removed, and modified entries with detailed change tracking.
|
|
6
|
+
*/
|
|
7
|
+
import type { Changelog } from '../models/changelog';
|
|
8
|
+
import type { ChangelogEntry, ChangelogItem, ChangelogSection } from '../models/entry';
|
|
9
|
+
/**
|
|
10
|
+
* Represents the diff between two changelogs.
|
|
11
|
+
*/
|
|
12
|
+
export interface ChangelogDiff {
|
|
13
|
+
/** Entries added in target but not in source */
|
|
14
|
+
readonly added: readonly ChangelogEntry[];
|
|
15
|
+
/** Entries removed from source but not in target */
|
|
16
|
+
readonly removed: readonly ChangelogEntry[];
|
|
17
|
+
/** Entries present in both but with differences */
|
|
18
|
+
readonly modified: readonly EntryDiff[];
|
|
19
|
+
/** Whether changelogs are structurally identical */
|
|
20
|
+
readonly identical: boolean;
|
|
21
|
+
/** Summary statistics */
|
|
22
|
+
readonly stats: DiffStats;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Statistics about the diff.
|
|
26
|
+
*/
|
|
27
|
+
export interface DiffStats {
|
|
28
|
+
/** Number of added entries */
|
|
29
|
+
readonly addedCount: number;
|
|
30
|
+
/** Number of removed entries */
|
|
31
|
+
readonly removedCount: number;
|
|
32
|
+
/** Number of modified entries */
|
|
33
|
+
readonly modifiedCount: number;
|
|
34
|
+
/** Total number of property changes across all modified entries */
|
|
35
|
+
readonly totalChanges: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Represents differences in a single entry.
|
|
39
|
+
*/
|
|
40
|
+
export interface EntryDiff {
|
|
41
|
+
/** Version of the entry */
|
|
42
|
+
readonly version: string;
|
|
43
|
+
/** Original entry (from source) */
|
|
44
|
+
readonly source: ChangelogEntry;
|
|
45
|
+
/** Modified entry (from target) */
|
|
46
|
+
readonly target: ChangelogEntry;
|
|
47
|
+
/** List of property differences */
|
|
48
|
+
readonly changes: readonly PropertyDiff[];
|
|
49
|
+
/** Sections added in target */
|
|
50
|
+
readonly addedSections: readonly ChangelogSection[];
|
|
51
|
+
/** Sections removed from source */
|
|
52
|
+
readonly removedSections: readonly ChangelogSection[];
|
|
53
|
+
/** Sections that were modified */
|
|
54
|
+
readonly modifiedSections: readonly SectionDiff[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Represents differences in a single section.
|
|
58
|
+
*/
|
|
59
|
+
export interface SectionDiff {
|
|
60
|
+
/** Section type */
|
|
61
|
+
readonly type: string;
|
|
62
|
+
/** Original section (from source) */
|
|
63
|
+
readonly source: ChangelogSection;
|
|
64
|
+
/** Modified section (from target) */
|
|
65
|
+
readonly target: ChangelogSection;
|
|
66
|
+
/** Items added in target */
|
|
67
|
+
readonly addedItems: readonly ChangelogItem[];
|
|
68
|
+
/** Items removed from source */
|
|
69
|
+
readonly removedItems: readonly ChangelogItem[];
|
|
70
|
+
/** Items that were modified */
|
|
71
|
+
readonly modifiedItems: readonly ItemDiff[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Represents differences in a single item.
|
|
75
|
+
*/
|
|
76
|
+
export interface ItemDiff {
|
|
77
|
+
/** Description from source */
|
|
78
|
+
readonly sourceDescription: string;
|
|
79
|
+
/** Source item */
|
|
80
|
+
readonly source: ChangelogItem;
|
|
81
|
+
/** Target item */
|
|
82
|
+
readonly target: ChangelogItem;
|
|
83
|
+
/** List of property changes */
|
|
84
|
+
readonly changes: readonly PropertyDiff[];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Represents a single property difference.
|
|
88
|
+
*/
|
|
89
|
+
export interface PropertyDiff {
|
|
90
|
+
/** Path to the property (e.g., ['date'], ['sections', '0', 'heading']) */
|
|
91
|
+
readonly path: readonly string[];
|
|
92
|
+
/** Type of change */
|
|
93
|
+
readonly type: 'added' | 'removed' | 'changed';
|
|
94
|
+
/** Previous value (for 'removed' and 'changed') */
|
|
95
|
+
readonly oldValue?: unknown;
|
|
96
|
+
/** New value (for 'added' and 'changed') */
|
|
97
|
+
readonly newValue?: unknown;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Computes the diff between two changelogs.
|
|
101
|
+
*
|
|
102
|
+
* @param source - The source/original changelog
|
|
103
|
+
* @param target - The target/modified changelog
|
|
104
|
+
* @returns Detailed diff of changes
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* const diff = diffChangelogs(mainChangelog, branchChangelog)
|
|
109
|
+
* console.log(`Added: ${diff.added.length}, Removed: ${diff.removed.length}`)
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function diffChangelogs(source: Changelog, target: Changelog): ChangelogDiff;
|
|
113
|
+
/**
|
|
114
|
+
* Computes the diff between two changelog entries.
|
|
115
|
+
*
|
|
116
|
+
* @param source - The source entry
|
|
117
|
+
* @param target - The target entry
|
|
118
|
+
* @returns Detailed entry diff
|
|
119
|
+
*/
|
|
120
|
+
export declare function diffEntries(source: ChangelogEntry, target: ChangelogEntry): EntryDiff;
|
|
121
|
+
/**
|
|
122
|
+
* Creates a human-readable summary of a changelog diff.
|
|
123
|
+
*
|
|
124
|
+
* @param diff - The diff to summarize
|
|
125
|
+
* @returns A string summary of the changes
|
|
126
|
+
*/
|
|
127
|
+
export declare function summarizeDiff(diff: ChangelogDiff): string;
|
|
128
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/versioning/src/changelog/compare/diff.ts"],"names":[],"mappings":"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"}
|