@hyperfrontend/versioning 0.1.0 → 0.2.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 (158) hide show
  1. package/ARCHITECTURE.md +50 -1
  2. package/CHANGELOG.md +23 -23
  3. package/README.md +12 -9
  4. package/changelog/index.cjs.js +23 -2
  5. package/changelog/index.cjs.js.map +1 -1
  6. package/changelog/index.esm.js +23 -2
  7. package/changelog/index.esm.js.map +1 -1
  8. package/changelog/models/entry.d.ts +5 -0
  9. package/changelog/models/entry.d.ts.map +1 -1
  10. package/changelog/models/index.cjs.js +2 -0
  11. package/changelog/models/index.cjs.js.map +1 -1
  12. package/changelog/models/index.esm.js +2 -0
  13. package/changelog/models/index.esm.js.map +1 -1
  14. package/changelog/operations/index.cjs.js.map +1 -1
  15. package/changelog/operations/index.esm.js.map +1 -1
  16. package/changelog/parse/index.cjs.js +23 -2
  17. package/changelog/parse/index.cjs.js.map +1 -1
  18. package/changelog/parse/index.esm.js +23 -2
  19. package/changelog/parse/index.esm.js.map +1 -1
  20. package/changelog/parse/line.d.ts.map +1 -1
  21. package/commits/classify/classifier.d.ts +73 -0
  22. package/commits/classify/classifier.d.ts.map +1 -0
  23. package/commits/classify/index.cjs.js +705 -0
  24. package/commits/classify/index.cjs.js.map +1 -0
  25. package/commits/classify/index.d.ts +8 -0
  26. package/commits/classify/index.d.ts.map +1 -0
  27. package/commits/classify/index.esm.js +678 -0
  28. package/commits/classify/index.esm.js.map +1 -0
  29. package/commits/classify/infrastructure.d.ts +205 -0
  30. package/commits/classify/infrastructure.d.ts.map +1 -0
  31. package/commits/classify/models.d.ts +108 -0
  32. package/commits/classify/models.d.ts.map +1 -0
  33. package/commits/classify/project-scopes.d.ts +59 -0
  34. package/commits/classify/project-scopes.d.ts.map +1 -0
  35. package/commits/index.cjs.js +702 -0
  36. package/commits/index.cjs.js.map +1 -1
  37. package/commits/index.d.ts +1 -0
  38. package/commits/index.d.ts.map +1 -1
  39. package/commits/index.esm.js +677 -1
  40. package/commits/index.esm.js.map +1 -1
  41. package/flow/executor/execute.d.ts +6 -0
  42. package/flow/executor/execute.d.ts.map +1 -1
  43. package/flow/executor/index.cjs.js +1604 -42
  44. package/flow/executor/index.cjs.js.map +1 -1
  45. package/flow/executor/index.esm.js +1610 -48
  46. package/flow/executor/index.esm.js.map +1 -1
  47. package/flow/index.cjs.js +6651 -2893
  48. package/flow/index.cjs.js.map +1 -1
  49. package/flow/index.esm.js +6655 -2899
  50. package/flow/index.esm.js.map +1 -1
  51. package/flow/models/index.cjs.js +125 -0
  52. package/flow/models/index.cjs.js.map +1 -1
  53. package/flow/models/index.esm.js +125 -0
  54. package/flow/models/index.esm.js.map +1 -1
  55. package/flow/models/types.d.ts +148 -3
  56. package/flow/models/types.d.ts.map +1 -1
  57. package/flow/presets/conventional.d.ts +9 -8
  58. package/flow/presets/conventional.d.ts.map +1 -1
  59. package/flow/presets/independent.d.ts.map +1 -1
  60. package/flow/presets/index.cjs.js +3588 -298
  61. package/flow/presets/index.cjs.js.map +1 -1
  62. package/flow/presets/index.esm.js +3588 -298
  63. package/flow/presets/index.esm.js.map +1 -1
  64. package/flow/presets/synced.d.ts.map +1 -1
  65. package/flow/steps/analyze-commits.d.ts +9 -6
  66. package/flow/steps/analyze-commits.d.ts.map +1 -1
  67. package/flow/steps/calculate-bump.d.ts.map +1 -1
  68. package/flow/steps/fetch-registry.d.ts.map +1 -1
  69. package/flow/steps/generate-changelog.d.ts.map +1 -1
  70. package/flow/steps/index.cjs.js +3604 -318
  71. package/flow/steps/index.cjs.js.map +1 -1
  72. package/flow/steps/index.d.ts +1 -0
  73. package/flow/steps/index.d.ts.map +1 -1
  74. package/flow/steps/index.esm.js +3603 -319
  75. package/flow/steps/index.esm.js.map +1 -1
  76. package/flow/steps/resolve-repository.d.ts +36 -0
  77. package/flow/steps/resolve-repository.d.ts.map +1 -0
  78. package/flow/steps/update-packages.d.ts.map +1 -1
  79. package/git/factory.d.ts +14 -0
  80. package/git/factory.d.ts.map +1 -1
  81. package/git/index.cjs.js +65 -0
  82. package/git/index.cjs.js.map +1 -1
  83. package/git/index.esm.js +66 -2
  84. package/git/index.esm.js.map +1 -1
  85. package/git/operations/index.cjs.js +40 -0
  86. package/git/operations/index.cjs.js.map +1 -1
  87. package/git/operations/index.d.ts +1 -1
  88. package/git/operations/index.d.ts.map +1 -1
  89. package/git/operations/index.esm.js +41 -2
  90. package/git/operations/index.esm.js.map +1 -1
  91. package/git/operations/log.d.ts +23 -0
  92. package/git/operations/log.d.ts.map +1 -1
  93. package/index.cjs.js +6962 -4413
  94. package/index.cjs.js.map +1 -1
  95. package/index.esm.js +6964 -4415
  96. package/index.esm.js.map +1 -1
  97. package/package.json +26 -1
  98. package/registry/index.cjs.js +3 -3
  99. package/registry/index.cjs.js.map +1 -1
  100. package/registry/index.esm.js +3 -3
  101. package/registry/index.esm.js.map +1 -1
  102. package/registry/models/index.cjs.js +2 -0
  103. package/registry/models/index.cjs.js.map +1 -1
  104. package/registry/models/index.esm.js +2 -0
  105. package/registry/models/index.esm.js.map +1 -1
  106. package/registry/models/version-info.d.ts +10 -0
  107. package/registry/models/version-info.d.ts.map +1 -1
  108. package/registry/npm/client.d.ts.map +1 -1
  109. package/registry/npm/index.cjs.js +1 -3
  110. package/registry/npm/index.cjs.js.map +1 -1
  111. package/registry/npm/index.esm.js +1 -3
  112. package/registry/npm/index.esm.js.map +1 -1
  113. package/repository/index.cjs.js +998 -0
  114. package/repository/index.cjs.js.map +1 -0
  115. package/repository/index.d.ts +4 -0
  116. package/repository/index.d.ts.map +1 -0
  117. package/repository/index.esm.js +981 -0
  118. package/repository/index.esm.js.map +1 -0
  119. package/repository/models/index.cjs.js +301 -0
  120. package/repository/models/index.cjs.js.map +1 -0
  121. package/repository/models/index.d.ts +7 -0
  122. package/repository/models/index.d.ts.map +1 -0
  123. package/repository/models/index.esm.js +290 -0
  124. package/repository/models/index.esm.js.map +1 -0
  125. package/repository/models/platform.d.ts +58 -0
  126. package/repository/models/platform.d.ts.map +1 -0
  127. package/repository/models/repository-config.d.ts +132 -0
  128. package/repository/models/repository-config.d.ts.map +1 -0
  129. package/repository/models/resolution.d.ts +121 -0
  130. package/repository/models/resolution.d.ts.map +1 -0
  131. package/repository/parse/index.cjs.js +755 -0
  132. package/repository/parse/index.cjs.js.map +1 -0
  133. package/repository/parse/index.d.ts +5 -0
  134. package/repository/parse/index.d.ts.map +1 -0
  135. package/repository/parse/index.esm.js +749 -0
  136. package/repository/parse/index.esm.js.map +1 -0
  137. package/repository/parse/package-json.d.ts +100 -0
  138. package/repository/parse/package-json.d.ts.map +1 -0
  139. package/repository/parse/url.d.ts +81 -0
  140. package/repository/parse/url.d.ts.map +1 -0
  141. package/repository/url/compare.d.ts +84 -0
  142. package/repository/url/compare.d.ts.map +1 -0
  143. package/repository/url/index.cjs.js +178 -0
  144. package/repository/url/index.cjs.js.map +1 -0
  145. package/repository/url/index.d.ts +3 -0
  146. package/repository/url/index.d.ts.map +1 -0
  147. package/repository/url/index.esm.js +176 -0
  148. package/repository/url/index.esm.js.map +1 -0
  149. package/workspace/discovery/index.cjs.js +324 -330
  150. package/workspace/discovery/index.cjs.js.map +1 -1
  151. package/workspace/discovery/index.esm.js +324 -330
  152. package/workspace/discovery/index.esm.js.map +1 -1
  153. package/workspace/discovery/packages.d.ts +0 -6
  154. package/workspace/discovery/packages.d.ts.map +1 -1
  155. package/workspace/index.cjs.js +0 -6
  156. package/workspace/index.cjs.js.map +1 -1
  157. package/workspace/index.esm.js +0 -6
  158. package/workspace/index.esm.js.map +1 -1
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Safe copies of Map built-in via factory function.
3
+ *
4
+ * Since constructors cannot be safely captured via Object.assign, this module
5
+ * provides a factory function that uses Reflect.construct internally.
6
+ *
7
+ * These references are captured at module initialization time to protect against
8
+ * prototype pollution attacks. Import only what you need for tree-shaking.
9
+ *
10
+ * @module @hyperfrontend/immutable-api-utils/built-in-copy/map
11
+ */
12
+ // Capture references at module initialization time
13
+ const _Map = globalThis.Map;
14
+ const _Reflect = globalThis.Reflect;
15
+ /**
16
+ * (Safe copy) Creates a new Map using the captured Map constructor.
17
+ * Use this instead of `new Map()`.
18
+ *
19
+ * @param iterable - Optional iterable of key-value pairs.
20
+ * @returns A new Map instance.
21
+ */
22
+ const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []);
23
+
24
+ /**
25
+ * Checks if a platform identifier is a known platform with built-in support.
26
+ *
27
+ * @param platform - Platform identifier to check
28
+ * @returns True if the platform is a known platform
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * isKnownPlatform('github') // true
33
+ * isKnownPlatform('gitlab') // true
34
+ * isKnownPlatform('custom') // false
35
+ * isKnownPlatform('unknown') // false
36
+ * ```
37
+ */
38
+ function isKnownPlatform(platform) {
39
+ return platform === 'github' || platform === 'gitlab' || platform === 'bitbucket' || platform === 'azure-devops';
40
+ }
41
+ /**
42
+ * Known platform hostnames mapped to their platform type.
43
+ * Used for automatic platform detection from repository URLs.
44
+ *
45
+ * Includes both standard SaaS domains and common patterns for self-hosted instances.
46
+ */
47
+ createMap([
48
+ // GitHub
49
+ ['github.com', 'github'],
50
+ // GitLab
51
+ ['gitlab.com', 'gitlab'],
52
+ // Bitbucket
53
+ ['bitbucket.org', 'bitbucket'],
54
+ // Azure DevOps
55
+ ['dev.azure.com', 'azure-devops'],
56
+ ['visualstudio.com', 'azure-devops'],
57
+ ]);
58
+
59
+ /**
60
+ * Creates a platform-specific compare URL for viewing changes between two commits.
61
+ *
62
+ * Each platform has a different URL format:
63
+ * - **GitHub**: `{baseUrl}/compare/{fromCommit}...{toCommit}` (three dots)
64
+ * - **GitLab**: `{baseUrl}/-/compare/{fromCommit}...{toCommit}` (three dots, `/-/` prefix)
65
+ * - **Bitbucket**: `{baseUrl}/compare/{toCommit}..{fromCommit}` (two dots, reversed order)
66
+ * - **Azure DevOps**: `{baseUrl}/compare?version=GT{toCommit}&compareVersion=GT{fromCommit}` (query params)
67
+ *
68
+ * For `custom` platforms, a `formatCompareUrl` function must be provided in the repository config.
69
+ * For `unknown` platforms, returns `null`.
70
+ *
71
+ * @param options - Compare URL options including repository, fromCommit, and toCommit
72
+ * @returns The compare URL string, or null if URL cannot be generated
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // GitHub
77
+ * createCompareUrl({
78
+ * repository: { platform: 'github', baseUrl: 'https://github.com/owner/repo' },
79
+ * fromCommit: 'abc1234',
80
+ * toCommit: 'def5678'
81
+ * })
82
+ * // → 'https://github.com/owner/repo/compare/abc1234...def5678'
83
+ *
84
+ * // GitLab
85
+ * createCompareUrl({
86
+ * repository: { platform: 'gitlab', baseUrl: 'https://gitlab.com/group/project' },
87
+ * fromCommit: 'abc1234',
88
+ * toCommit: 'def5678'
89
+ * })
90
+ * // → 'https://gitlab.com/group/project/-/compare/abc1234...def5678'
91
+ *
92
+ * // Bitbucket (reversed order)
93
+ * createCompareUrl({
94
+ * repository: { platform: 'bitbucket', baseUrl: 'https://bitbucket.org/owner/repo' },
95
+ * fromCommit: 'abc1234',
96
+ * toCommit: 'def5678'
97
+ * })
98
+ * // → 'https://bitbucket.org/owner/repo/compare/def5678..abc1234'
99
+ *
100
+ * // Azure DevOps
101
+ * createCompareUrl({
102
+ * repository: { platform: 'azure-devops', baseUrl: 'https://dev.azure.com/org/proj/_git/repo' },
103
+ * fromCommit: 'abc1234',
104
+ * toCommit: 'def5678'
105
+ * })
106
+ * // → 'https://dev.azure.com/org/proj/_git/repo/compare?version=GTdef5678&compareVersion=GTabc1234'
107
+ *
108
+ * // Custom formatter
109
+ * createCompareUrl({
110
+ * repository: {
111
+ * platform: 'custom',
112
+ * baseUrl: 'https://my-git.internal/repo',
113
+ * formatCompareUrl: (from, to) => `https://my-git.internal/diff/${from}/${to}`
114
+ * },
115
+ * fromCommit: 'abc1234',
116
+ * toCommit: 'def5678'
117
+ * })
118
+ * // → 'https://my-git.internal/diff/abc1234/def5678'
119
+ * ```
120
+ */
121
+ function createCompareUrl(options) {
122
+ const { repository, fromCommit, toCommit } = options;
123
+ // Validate inputs
124
+ if (!repository || !fromCommit || !toCommit) {
125
+ return null;
126
+ }
127
+ // If custom formatter is provided, use it (works for any platform including overrides)
128
+ if (repository.formatCompareUrl) {
129
+ return repository.formatCompareUrl(fromCommit, toCommit);
130
+ }
131
+ const { platform, baseUrl } = repository;
132
+ // Cannot generate URL for unknown platforms without a formatter
133
+ if (platform === 'unknown') {
134
+ return null;
135
+ }
136
+ // Custom platform requires a formatter
137
+ if (platform === 'custom') {
138
+ return null;
139
+ }
140
+ // Generate URL for known platforms
141
+ if (isKnownPlatform(platform)) {
142
+ return formatKnownPlatformCompareUrl(platform, baseUrl, fromCommit, toCommit);
143
+ }
144
+ return null;
145
+ }
146
+ /**
147
+ * Formats a compare URL for known platforms.
148
+ *
149
+ * @param platform - Known platform type
150
+ * @param baseUrl - Repository base URL
151
+ * @param fromCommit - Source commit hash (older version)
152
+ * @param toCommit - Target commit hash (newer version)
153
+ * @returns Formatted compare URL
154
+ *
155
+ * @internal
156
+ */
157
+ function formatKnownPlatformCompareUrl(platform, baseUrl, fromCommit, toCommit) {
158
+ switch (platform) {
159
+ case 'github':
160
+ // GitHub: {baseUrl}/compare/{fromCommit}...{toCommit}
161
+ return `${baseUrl}/compare/${fromCommit}...${toCommit}`;
162
+ case 'gitlab':
163
+ // GitLab: {baseUrl}/-/compare/{fromCommit}...{toCommit}
164
+ return `${baseUrl}/-/compare/${fromCommit}...${toCommit}`;
165
+ case 'bitbucket':
166
+ // Bitbucket: {baseUrl}/compare/{toCommit}..{fromCommit} (reversed order, two dots)
167
+ return `${baseUrl}/compare/${toCommit}..${fromCommit}`;
168
+ case 'azure-devops':
169
+ // Azure DevOps: {baseUrl}/compare?version=GT{toCommit}&compareVersion=GT{fromCommit}
170
+ // Use encodeURIComponent for query parameter values
171
+ return `${baseUrl}/compare?version=GT${encodeURIComponent(toCommit)}&compareVersion=GT${encodeURIComponent(fromCommit)}`;
172
+ }
173
+ }
174
+
175
+ export { createCompareUrl };
176
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/map/index.ts","../../../../../../../../../../libs/versioning/src/repository/models/platform.ts","../../../../../../../../../../libs/versioning/src/repository/url/compare.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"AAAA;;;;;;;;;;AAUG;AAEH;AACA,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG;AAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO;AAGnC;;;;;;AAMG;AACI,MAAM,SAAS,GAAG,CAAO,QAA2C,KAC9D,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;;ACHjE;;;;;;;;;;;;;AAaG;AACG,SAAU,eAAe,CAAC,QAA4B,EAAA;AAC1D,IAAA,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,cAAc;AAClH;AAEA;;;;;AAKG;AACmE,SAAS,CAAwB;;IAErG,CAAC,YAAY,EAAE,QAAQ,CAAC;;IAGxB,CAAC,YAAY,EAAE,QAAQ,CAAC;;IAGxB,CAAC,eAAe,EAAE,WAAW,CAAC;;IAG9B,CAAC,eAAe,EAAE,cAAc,CAAC;IACjC,CAAC,kBAAkB,EAAE,cAAc,CAAC;AACrC,CAAA;;ACjCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACG,SAAU,gBAAgB,CAAC,OAAgC,EAAA;IAC/D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO;;IAGpD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;AAC3C,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAI,UAAU,CAAC,gBAAgB,EAAE;QAC/B,OAAO,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC1D;AAEA,IAAA,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU;;AAGxC,IAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE;QAC7B,OAAO,6BAA6B,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC/E;AAEA,IAAA,OAAO,IAAI;AACb;AAEA;;;;;;;;;;AAUG;AACH,SAAS,6BAA6B,CAAC,QAAuB,EAAE,OAAe,EAAE,UAAkB,EAAE,QAAgB,EAAA;IACnH,QAAQ,QAAQ;AACd,QAAA,KAAK,QAAQ;;AAEX,YAAA,OAAO,GAAG,OAAO,CAAA,SAAA,EAAY,UAAU,CAAA,GAAA,EAAM,QAAQ,EAAE;AAEzD,QAAA,KAAK,QAAQ;;AAEX,YAAA,OAAO,GAAG,OAAO,CAAA,WAAA,EAAc,UAAU,CAAA,GAAA,EAAM,QAAQ,EAAE;AAE3D,QAAA,KAAK,WAAW;;AAEd,YAAA,OAAO,GAAG,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,EAAA,EAAK,UAAU,EAAE;AAExD,QAAA,KAAK,cAAc;;;AAGjB,YAAA,OAAO,CAAA,EAAG,OAAO,CAAA,mBAAA,EAAsB,kBAAkB,CAAC,QAAQ,CAAC,CAAA,kBAAA,EAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE;;AAE9H;;;;"}