git-release-manager 0.0.13 → 0.6.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 (381) hide show
  1. package/README.md +0 -0
  2. package/dist/commands/branch/command.js +84 -14
  3. package/dist/commands/branch/command.js.map +1 -1
  4. package/dist/commands/branch/types/BranchCliArgs.js +0 -0
  5. package/dist/commands/branch/types/BranchCliArgs.js.map +0 -0
  6. package/dist/commands/branch/types/BranchCreateCliArgs.js +0 -0
  7. package/dist/commands/branch/types/BranchCreateCliArgs.js.map +0 -0
  8. package/dist/commands/branch/types/BranchDeleteCliArgs.js +0 -0
  9. package/dist/commands/branch/types/BranchDeleteCliArgs.js.map +0 -0
  10. package/dist/{cli/types/BranchDeleteCliArgs.js → commands/branch/types/BranchFinishCliArgs.js} +1 -1
  11. package/dist/commands/branch/types/BranchFinishCliArgs.js.map +1 -0
  12. package/dist/commands/branch/types/BranchListCliArgs.js +0 -0
  13. package/dist/commands/branch/types/BranchListCliArgs.js.map +0 -0
  14. package/dist/commands/branch/types/BranchMergeCliArgs.js +0 -0
  15. package/dist/commands/branch/types/BranchMergeCliArgs.js.map +0 -0
  16. package/dist/commands/branch/types/BranchProtectCliArgs.js +0 -0
  17. package/dist/commands/branch/types/BranchProtectCliArgs.js.map +0 -0
  18. package/dist/commands/branch/types/BranchRebaseCliArgs.js +0 -0
  19. package/dist/commands/branch/types/BranchRebaseCliArgs.js.map +0 -0
  20. package/dist/commands/branch/types/BranchSwitchCliArgs.js +0 -0
  21. package/dist/commands/branch/types/BranchSwitchCliArgs.js.map +0 -0
  22. package/dist/{cli/types/ChangelogCliArgs.js → commands/branch/types/BranchSyncCliArgs.js} +1 -1
  23. package/dist/commands/branch/types/BranchSyncCliArgs.js.map +1 -0
  24. package/dist/commands/branch/types/BranchUnProtectCliArgs.js +0 -0
  25. package/dist/commands/branch/types/BranchUnProtectCliArgs.js.map +0 -0
  26. package/dist/commands/changelog/command.js +28 -3
  27. package/dist/commands/changelog/command.js.map +1 -1
  28. package/dist/commands/changelog/types/ChangelogCliArgs.js +0 -0
  29. package/dist/commands/changelog/types/ChangelogCliArgs.js.map +0 -0
  30. package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js +0 -0
  31. package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js.map +0 -0
  32. package/dist/commands/commit/command.js +8 -3
  33. package/dist/commands/commit/command.js.map +1 -1
  34. package/dist/commands/commit/types/CommitAmendCliArgs.js +0 -0
  35. package/dist/commands/commit/types/CommitAmendCliArgs.js.map +0 -0
  36. package/dist/commands/commit/types/CommitCliArgs.js +0 -0
  37. package/dist/commands/commit/types/CommitCliArgs.js.map +0 -0
  38. package/dist/commands/commit/types/CommitCreateCliArgs.js +0 -0
  39. package/dist/commands/commit/types/CommitCreateCliArgs.js.map +0 -0
  40. package/dist/commands/commit/types/CommitListCliArgs.js +0 -0
  41. package/dist/commands/commit/types/CommitListCliArgs.js.map +0 -0
  42. package/dist/commands/flow/command.js +196 -6
  43. package/dist/commands/flow/command.js.map +1 -1
  44. package/dist/commands/track/command.js +136 -0
  45. package/dist/commands/track/command.js.map +1 -0
  46. package/dist/commands/types/CliArgs.js +0 -0
  47. package/dist/commands/types/CliArgs.js.map +0 -0
  48. package/dist/commands/version/command.js +115 -23
  49. package/dist/commands/version/command.js.map +1 -1
  50. package/dist/commands/version/types/VersionCliArgs.js +0 -0
  51. package/dist/commands/version/types/VersionCliArgs.js.map +0 -0
  52. package/dist/commands/version/types/VersionCompareCliArgs.js +0 -0
  53. package/dist/commands/version/types/VersionCompareCliArgs.js.map +0 -0
  54. package/dist/commands/version/types/VersionIncrementCliArgs.js +0 -0
  55. package/dist/commands/version/types/VersionIncrementCliArgs.js.map +0 -0
  56. package/dist/commands/version/types/VersionInitCliArgs.js +0 -0
  57. package/dist/commands/version/types/VersionInitCliArgs.js.map +0 -0
  58. package/dist/commands/version/types/VersionListCliArgs.js +0 -0
  59. package/dist/commands/version/types/VersionListCliArgs.js.map +0 -0
  60. package/dist/commands/version/types/VersionProjectCliArgs.js +0 -0
  61. package/dist/commands/version/types/VersionProjectCliArgs.js.map +0 -0
  62. package/dist/commands/version/types/VersionRemoteCliArgs.js +0 -0
  63. package/dist/commands/version/types/VersionRemoteCliArgs.js.map +0 -0
  64. package/dist/commands/version/types/VersionResetCliArgs.js +0 -0
  65. package/dist/commands/version/types/VersionResetCliArgs.js.map +0 -0
  66. package/dist/commands/version/types/VersionRevertCliArgs.js +0 -0
  67. package/dist/commands/version/types/VersionRevertCliArgs.js.map +0 -0
  68. package/dist/commands/version/types/VersionSetCliArgs.js +0 -0
  69. package/dist/commands/version/types/VersionSetCliArgs.js.map +0 -0
  70. package/dist/commands/version/types/VersionValidateCliArgs.js +0 -0
  71. package/dist/commands/version/types/VersionValidateCliArgs.js.map +0 -0
  72. package/dist/config/configLoader.js +0 -0
  73. package/dist/config/configLoader.js.map +0 -0
  74. package/dist/config/configManager.js +0 -0
  75. package/dist/config/configManager.js.map +0 -0
  76. package/dist/config/constants.js +0 -0
  77. package/dist/config/constants.js.map +0 -0
  78. package/dist/config/defaults/config.json +375 -250
  79. package/dist/config/types/BranchConfig.js +0 -0
  80. package/dist/config/types/BranchConfig.js.map +0 -0
  81. package/dist/config/types/ChannelType.js +0 -0
  82. package/dist/config/types/ChannelType.js.map +0 -0
  83. package/dist/config/types/CommitType.js +0 -0
  84. package/dist/config/types/CommitType.js.map +0 -0
  85. package/dist/config/types/Config.js +0 -0
  86. package/dist/config/types/Config.js.map +0 -0
  87. package/dist/config/types/FileGroups.js +0 -0
  88. package/dist/config/types/FileGroups.js.map +0 -0
  89. package/dist/config/types/Flow.js +34 -0
  90. package/dist/config/types/Flow.js.map +1 -0
  91. package/dist/config/types/LinkType.js +0 -0
  92. package/dist/config/types/LinkType.js.map +0 -0
  93. package/dist/config/types/MentionType.js +0 -0
  94. package/dist/config/types/MentionType.js.map +0 -0
  95. package/dist/config/types/NoteType.js +0 -0
  96. package/dist/config/types/NoteType.js.map +0 -0
  97. package/dist/config/types/Options.js +0 -0
  98. package/dist/config/types/Options.js.map +0 -0
  99. package/dist/config/types/Repository.js +0 -0
  100. package/dist/config/types/Repository.js.map +0 -0
  101. package/dist/{cli/types/CliArgs.js → config/types/Track.js} +1 -1
  102. package/dist/config/types/Track.js.map +1 -0
  103. package/dist/{cli/types/BranchCliArgs.js → config/types/Versioning.js} +1 -1
  104. package/dist/config/types/Versioning.js.map +1 -0
  105. package/dist/index.js +25 -6
  106. package/dist/index.js.map +1 -1
  107. package/dist/modules/FlowManager.js +47 -4
  108. package/dist/modules/FlowManager.js.map +1 -1
  109. package/dist/modules/branch/BranchController.js +33 -2
  110. package/dist/modules/branch/BranchController.js.map +1 -1
  111. package/dist/modules/branch/BranchManager.js +0 -0
  112. package/dist/modules/branch/BranchManager.js.map +0 -0
  113. package/dist/modules/changelog/ChangelogController.js +0 -0
  114. package/dist/modules/changelog/ChangelogController.js.map +1 -1
  115. package/dist/modules/changelog/ChangelogValidator.js +0 -0
  116. package/dist/modules/changelog/ChangelogValidator.js.map +0 -0
  117. package/dist/modules/changelog/templateOperations.js +0 -0
  118. package/dist/modules/changelog/templateOperations.js.map +1 -1
  119. package/dist/modules/changes/types/ChangeInformation.js +0 -0
  120. package/dist/modules/changes/types/ChangeInformation.js.map +0 -0
  121. package/dist/modules/changes/types/Context.js +0 -0
  122. package/dist/modules/changes/types/Context.js.map +0 -0
  123. package/dist/modules/changes/types/RangeInfo.js +0 -0
  124. package/dist/modules/changes/types/RangeInfo.js.map +0 -0
  125. package/dist/modules/changes/types/RangeSummary.js +0 -0
  126. package/dist/modules/changes/types/RangeSummary.js.map +0 -0
  127. package/dist/modules/changes/types/ReferenceTypesEnum.js +0 -0
  128. package/dist/modules/changes/types/ReferenceTypesEnum.js.map +0 -0
  129. package/dist/modules/commit/CommitController.js +0 -0
  130. package/dist/modules/commit/CommitController.js.map +0 -0
  131. package/dist/modules/commit/CommitManager.js +0 -0
  132. package/dist/modules/commit/CommitManager.js.map +0 -0
  133. package/dist/modules/flow/FlowController.js +764 -0
  134. package/dist/modules/flow/FlowController.js.map +1 -0
  135. package/dist/modules/git/commits/commitProcessor.js +21 -3
  136. package/dist/modules/git/commits/commitProcessor.js.map +1 -1
  137. package/dist/modules/git/commits/gitLogFetcher.js +0 -0
  138. package/dist/modules/git/commits/gitLogFetcher.js.map +0 -0
  139. package/dist/modules/git/commits/index.js +9 -1
  140. package/dist/modules/git/commits/index.js.map +1 -1
  141. package/dist/modules/git/commits/profileHandler.js +0 -0
  142. package/dist/modules/git/commits/profileHandler.js.map +0 -0
  143. package/dist/modules/git/commits/regexHandlers.js +0 -0
  144. package/dist/modules/git/commits/regexHandlers.js.map +0 -0
  145. package/dist/modules/git/context/branchHandler.js +0 -0
  146. package/dist/modules/git/context/branchHandler.js.map +0 -0
  147. package/dist/modules/git/context/commitHandler.js +0 -0
  148. package/dist/modules/git/context/commitHandler.js.map +0 -0
  149. package/dist/modules/git/context/index.js +0 -0
  150. package/dist/modules/git/context/index.js.map +0 -0
  151. package/dist/modules/git/context/remoteHandler.js +1 -1
  152. package/dist/modules/git/context/remoteHandler.js.map +1 -1
  153. package/dist/modules/git/context/statusHandler.js +0 -0
  154. package/dist/modules/git/context/statusHandler.js.map +0 -0
  155. package/dist/modules/git/context/tagHandler.js +0 -0
  156. package/dist/modules/git/context/tagHandler.js.map +0 -0
  157. package/dist/modules/git/gitOperations.js +0 -0
  158. package/dist/modules/git/gitOperations.js.map +1 -1
  159. package/dist/modules/git/lineTags.js +58 -0
  160. package/dist/modules/git/lineTags.js.map +1 -0
  161. package/dist/modules/git/types/Author.js +0 -0
  162. package/dist/modules/git/types/Author.js.map +0 -0
  163. package/dist/modules/git/types/Branch.js +0 -0
  164. package/dist/modules/git/types/Branch.js.map +0 -0
  165. package/dist/modules/git/types/BranchInfo.js +0 -0
  166. package/dist/modules/git/types/BranchInfo.js.map +0 -0
  167. package/dist/modules/git/types/CommitContent.js +0 -0
  168. package/dist/modules/git/types/CommitContent.js.map +0 -0
  169. package/dist/modules/git/types/CommitInfo.js +0 -0
  170. package/dist/modules/git/types/CommitInfo.js.map +0 -0
  171. package/dist/modules/git/types/CommitType.js +0 -0
  172. package/dist/modules/git/types/CommitType.js.map +0 -0
  173. package/dist/modules/git/types/GitCommit.js +0 -0
  174. package/dist/modules/git/types/GitCommit.js.map +0 -0
  175. package/dist/modules/git/types/GitReference.js +0 -0
  176. package/dist/modules/git/types/GitReference.js.map +0 -0
  177. package/dist/modules/git/types/Link.js +0 -0
  178. package/dist/modules/git/types/Link.js.map +0 -0
  179. package/dist/modules/git/types/Mention.js +0 -0
  180. package/dist/modules/git/types/Mention.js.map +0 -0
  181. package/dist/modules/git/types/Note.js +0 -0
  182. package/dist/modules/git/types/Note.js.map +0 -0
  183. package/dist/modules/git/types/RemoteInfo.js +0 -0
  184. package/dist/modules/git/types/RemoteInfo.js.map +0 -0
  185. package/dist/modules/git/types/Repository.js +0 -0
  186. package/dist/modules/git/types/Repository.js.map +0 -0
  187. package/dist/modules/git/types/StatusInfo.js +0 -0
  188. package/dist/modules/git/types/StatusInfo.js.map +0 -0
  189. package/dist/modules/git/types/Tag.js +0 -0
  190. package/dist/modules/git/types/Tag.js.map +0 -0
  191. package/dist/modules/git/types/TagInfo.js +0 -0
  192. package/dist/modules/git/types/TagInfo.js.map +0 -0
  193. package/dist/modules/git/utils/branchUtils.js +0 -0
  194. package/dist/modules/git/utils/branchUtils.js.map +0 -0
  195. package/dist/modules/git/utils/commitUtils.js +0 -0
  196. package/dist/modules/git/utils/commitUtils.js.map +0 -0
  197. package/dist/modules/git/utils/logUtils.js +0 -0
  198. package/dist/modules/git/utils/logUtils.js.map +0 -0
  199. package/dist/modules/git/utils/rangeOperations.js +0 -0
  200. package/dist/modules/git/utils/rangeOperations.js.map +0 -0
  201. package/dist/modules/git/utils/refUtils.js +0 -0
  202. package/dist/modules/git/utils/refUtils.js.map +0 -0
  203. package/dist/modules/git/utils/referenceUtils.js +0 -0
  204. package/dist/modules/git/utils/referenceUtils.js.map +0 -0
  205. package/dist/modules/git/utils/tagUtils.js +0 -0
  206. package/dist/modules/git/utils/tagUtils.js.map +0 -0
  207. package/dist/modules/output/writer.js +0 -0
  208. package/dist/modules/output/writer.js.map +0 -0
  209. package/dist/modules/sections/contributors.js +0 -0
  210. package/dist/modules/sections/contributors.js.map +0 -0
  211. package/dist/modules/sections/grouping.js +0 -0
  212. package/dist/modules/sections/grouping.js.map +0 -0
  213. package/dist/modules/sections/index.js +0 -0
  214. package/dist/modules/sections/index.js.map +0 -0
  215. package/dist/modules/sections/summarizing.js +0 -0
  216. package/dist/modules/sections/summarizing.js.map +0 -0
  217. package/dist/modules/sections/types/Contributor.js +0 -0
  218. package/dist/modules/sections/types/Contributor.js.map +0 -0
  219. package/dist/modules/sections/types/Group.js +0 -0
  220. package/dist/modules/sections/types/Group.js.map +0 -0
  221. package/dist/modules/sections/types/SectionSummary.js +0 -0
  222. package/dist/modules/sections/types/SectionSummary.js.map +0 -0
  223. package/dist/modules/sections/types/Sections.js +0 -0
  224. package/dist/modules/sections/types/Sections.js.map +0 -0
  225. package/dist/modules/track/TrackController.js +320 -0
  226. package/dist/modules/track/TrackController.js.map +1 -0
  227. package/dist/modules/version/BumpDeriver.js +119 -0
  228. package/dist/modules/version/BumpDeriver.js.map +1 -0
  229. package/dist/modules/version/GitVersionManager.js +42 -14
  230. package/dist/modules/version/GitVersionManager.js.map +1 -1
  231. package/dist/modules/version/ProjectVersion.js +84 -3
  232. package/dist/modules/version/ProjectVersion.js.map +1 -1
  233. package/dist/modules/version/ReleaseManager.js +0 -0
  234. package/dist/modules/version/ReleaseManager.js.map +0 -0
  235. package/dist/modules/version/VersionController.js +238 -3
  236. package/dist/modules/version/VersionController.js.map +1 -1
  237. package/dist/modules/version/VersionStamper.js +139 -0
  238. package/dist/modules/version/VersionStamper.js.map +1 -0
  239. package/dist/modules/version/VersionValidator.js +0 -0
  240. package/dist/modules/version/VersionValidator.js.map +0 -0
  241. package/dist/modules/version/branchChannel.js +94 -0
  242. package/dist/modules/version/branchChannel.js.map +1 -0
  243. package/dist/modules/version/resolveVersionRef.js +78 -0
  244. package/dist/modules/version/resolveVersionRef.js.map +1 -0
  245. package/dist/modules/version/types/const.js +0 -0
  246. package/dist/modules/version/types/const.js.map +0 -0
  247. package/dist/modules/version/versionFormatter.js +19 -1
  248. package/dist/modules/version/versionFormatter.js.map +1 -1
  249. package/dist/modules/version/versionHelper.js +0 -0
  250. package/dist/modules/version/versionHelper.js.map +0 -0
  251. package/dist/templates/constants.js +0 -0
  252. package/dist/templates/constants.js.map +0 -0
  253. package/dist/templates/defaults/changelog.detailed.ejs +0 -0
  254. package/dist/templates/defaults/changelog.ejs +0 -0
  255. package/dist/templates/templateRenderer.js +0 -0
  256. package/dist/templates/templateRenderer.js.map +0 -0
  257. package/dist/templates/templateResolver.js +0 -0
  258. package/dist/templates/templateResolver.js.map +0 -0
  259. package/dist/types/PackageJson.js +0 -0
  260. package/dist/types/PackageJson.js.map +0 -0
  261. package/dist/utils/cmd.js +15 -2
  262. package/dist/utils/cmd.js.map +1 -1
  263. package/dist/utils/date.js +0 -0
  264. package/dist/utils/date.js.map +0 -0
  265. package/package.json +5 -2
  266. package/dist/cli/types/BranchCliArgs.js.map +0 -1
  267. package/dist/cli/types/BranchCreateCliArgs.js +0 -3
  268. package/dist/cli/types/BranchCreateCliArgs.js.map +0 -1
  269. package/dist/cli/types/BranchDeleteCliArgs.js.map +0 -1
  270. package/dist/cli/types/BranchListCliArgs.js +0 -3
  271. package/dist/cli/types/BranchListCliArgs.js.map +0 -1
  272. package/dist/cli/types/BranchMergeCliArgs.js +0 -3
  273. package/dist/cli/types/BranchMergeCliArgs.js.map +0 -1
  274. package/dist/cli/types/BranchProtectCliArgs.js +0 -3
  275. package/dist/cli/types/BranchProtectCliArgs.js.map +0 -1
  276. package/dist/cli/types/BranchRebaseCliArgs.js +0 -3
  277. package/dist/cli/types/BranchRebaseCliArgs.js.map +0 -1
  278. package/dist/cli/types/BranchSwitchCliArgs.js +0 -3
  279. package/dist/cli/types/BranchSwitchCliArgs.js.map +0 -1
  280. package/dist/cli/types/BranchUnProtectCliArgs.js +0 -3
  281. package/dist/cli/types/BranchUnProtectCliArgs.js.map +0 -1
  282. package/dist/cli/types/ChangelogCliArgs.js.map +0 -1
  283. package/dist/cli/types/ChangelogGenerateCliArgs.js +0 -3
  284. package/dist/cli/types/ChangelogGenerateCliArgs.js.map +0 -1
  285. package/dist/cli/types/CliArgs.js.map +0 -1
  286. package/dist/cli/types/CommitAmendCliArgs.js +0 -3
  287. package/dist/cli/types/CommitAmendCliArgs.js.map +0 -1
  288. package/dist/cli/types/CommitCliArgs.js +0 -3
  289. package/dist/cli/types/CommitCliArgs.js.map +0 -1
  290. package/dist/cli/types/CommitCreateCliArgs.js +0 -3
  291. package/dist/cli/types/CommitCreateCliArgs.js.map +0 -1
  292. package/dist/cli/types/CommitListCliArgs.js +0 -3
  293. package/dist/cli/types/CommitListCliArgs.js.map +0 -1
  294. package/dist/cli/types/VersionCliArgs.js +0 -3
  295. package/dist/cli/types/VersionCliArgs.js.map +0 -1
  296. package/dist/cli/types/VersionCompareCliArgs.js +0 -3
  297. package/dist/cli/types/VersionCompareCliArgs.js.map +0 -1
  298. package/dist/cli/types/VersionIncrementCliArgs.js +0 -3
  299. package/dist/cli/types/VersionIncrementCliArgs.js.map +0 -1
  300. package/dist/cli/types/VersionInitCliArgs.js +0 -3
  301. package/dist/cli/types/VersionInitCliArgs.js.map +0 -1
  302. package/dist/cli/types/VersionListCliArgs.js +0 -3
  303. package/dist/cli/types/VersionListCliArgs.js.map +0 -1
  304. package/dist/cli/types/VersionProjectCliArgs.js +0 -3
  305. package/dist/cli/types/VersionProjectCliArgs.js.map +0 -1
  306. package/dist/cli/types/VersionRemoteCliArgs.js +0 -3
  307. package/dist/cli/types/VersionRemoteCliArgs.js.map +0 -1
  308. package/dist/cli/types/VersionResetCliArgs.js +0 -3
  309. package/dist/cli/types/VersionResetCliArgs.js.map +0 -1
  310. package/dist/cli/types/VersionRevertCliArgs.js +0 -3
  311. package/dist/cli/types/VersionRevertCliArgs.js.map +0 -1
  312. package/dist/cli/types/VersionSetCliArgs.js +0 -3
  313. package/dist/cli/types/VersionSetCliArgs.js.map +0 -1
  314. package/dist/cli/types/VersionValidateCliArgs.js +0 -3
  315. package/dist/cli/types/VersionValidateCliArgs.js.map +0 -1
  316. package/dist/commands/branchCommand.js +0 -150
  317. package/dist/commands/branchCommand.js.map +0 -1
  318. package/dist/commands/changelogCommand.js +0 -32
  319. package/dist/commands/changelogCommand.js.map +0 -1
  320. package/dist/commands/commitCommand.js +0 -58
  321. package/dist/commands/commitCommand.js.map +0 -1
  322. package/dist/commands/types/BranchCliArgs.js +0 -3
  323. package/dist/commands/types/BranchCliArgs.js.map +0 -1
  324. package/dist/commands/types/BranchCreateCliArgs.js +0 -3
  325. package/dist/commands/types/BranchCreateCliArgs.js.map +0 -1
  326. package/dist/commands/types/BranchDeleteCliArgs.js +0 -3
  327. package/dist/commands/types/BranchDeleteCliArgs.js.map +0 -1
  328. package/dist/commands/types/BranchListCliArgs.js +0 -3
  329. package/dist/commands/types/BranchListCliArgs.js.map +0 -1
  330. package/dist/commands/types/BranchMergeCliArgs.js +0 -3
  331. package/dist/commands/types/BranchMergeCliArgs.js.map +0 -1
  332. package/dist/commands/types/BranchProtectCliArgs.js +0 -3
  333. package/dist/commands/types/BranchProtectCliArgs.js.map +0 -1
  334. package/dist/commands/types/BranchRebaseCliArgs.js +0 -3
  335. package/dist/commands/types/BranchRebaseCliArgs.js.map +0 -1
  336. package/dist/commands/types/BranchSwitchCliArgs.js +0 -3
  337. package/dist/commands/types/BranchSwitchCliArgs.js.map +0 -1
  338. package/dist/commands/types/BranchUnProtectCliArgs.js +0 -3
  339. package/dist/commands/types/BranchUnProtectCliArgs.js.map +0 -1
  340. package/dist/commands/types/ChangelogCliArgs.js +0 -3
  341. package/dist/commands/types/ChangelogCliArgs.js.map +0 -1
  342. package/dist/commands/types/ChangelogGenerateCliArgs.js +0 -3
  343. package/dist/commands/types/ChangelogGenerateCliArgs.js.map +0 -1
  344. package/dist/commands/types/CommitAmendCliArgs.js +0 -3
  345. package/dist/commands/types/CommitAmendCliArgs.js.map +0 -1
  346. package/dist/commands/types/CommitCliArgs.js +0 -3
  347. package/dist/commands/types/CommitCliArgs.js.map +0 -1
  348. package/dist/commands/types/CommitCreateCliArgs.js +0 -3
  349. package/dist/commands/types/CommitCreateCliArgs.js.map +0 -1
  350. package/dist/commands/types/CommitListCliArgs.js +0 -3
  351. package/dist/commands/types/CommitListCliArgs.js.map +0 -1
  352. package/dist/commands/types/VersionCliArgs.js +0 -3
  353. package/dist/commands/types/VersionCliArgs.js.map +0 -1
  354. package/dist/commands/types/VersionCompareCliArgs.js +0 -3
  355. package/dist/commands/types/VersionCompareCliArgs.js.map +0 -1
  356. package/dist/commands/types/VersionIncrementCliArgs.js +0 -3
  357. package/dist/commands/types/VersionIncrementCliArgs.js.map +0 -1
  358. package/dist/commands/types/VersionInitCliArgs.js +0 -3
  359. package/dist/commands/types/VersionInitCliArgs.js.map +0 -1
  360. package/dist/commands/types/VersionListCliArgs.js +0 -3
  361. package/dist/commands/types/VersionListCliArgs.js.map +0 -1
  362. package/dist/commands/types/VersionProjectCliArgs.js +0 -3
  363. package/dist/commands/types/VersionProjectCliArgs.js.map +0 -1
  364. package/dist/commands/types/VersionRemoteCliArgs.js +0 -3
  365. package/dist/commands/types/VersionRemoteCliArgs.js.map +0 -1
  366. package/dist/commands/types/VersionResetCliArgs.js +0 -3
  367. package/dist/commands/types/VersionResetCliArgs.js.map +0 -1
  368. package/dist/commands/types/VersionRevertCliArgs.js +0 -3
  369. package/dist/commands/types/VersionRevertCliArgs.js.map +0 -1
  370. package/dist/commands/types/VersionSetCliArgs.js +0 -3
  371. package/dist/commands/types/VersionSetCliArgs.js.map +0 -1
  372. package/dist/commands/types/VersionValidateCliArgs.js +0 -3
  373. package/dist/commands/types/VersionValidateCliArgs.js.map +0 -1
  374. package/dist/commands/versionCommand.js +0 -134
  375. package/dist/commands/versionCommand.js.map +0 -1
  376. package/dist/core/app.js +0 -95
  377. package/dist/core/app.js.map +0 -1
  378. package/dist/core/changelog/app.js +0 -20
  379. package/dist/core/changelog/app.js.map +0 -1
  380. package/dist/modules/version/VersionManager.js +0 -92
  381. package/dist/modules/version/VersionManager.js.map +0 -1
@@ -4,10 +4,82 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProjectVersionManager = void 0;
7
+ exports.matchFilesInDirectory = matchFilesInDirectory;
7
8
  const fs_1 = require("fs");
8
9
  const path_1 = require("path");
9
10
  const simple_git_1 = __importDefault(require("simple-git"));
10
11
  const GitVersionManager_1 = require("./GitVersionManager");
12
+ /**
13
+ * Names in `directory` matching a SINGLE-SEGMENT filename pattern whose only
14
+ * wildcard is `*`. Sorted, files only.
15
+ *
16
+ * ── WHY THIS EXISTS INSTEAD OF `glob` ────────────────────────────────────
17
+ *
18
+ * The project-file table below has exactly one wildcard in it, `*.csproj`:
19
+ * one path segment, one star, a flat listing of the current directory. The
20
+ * call site used to be `require('glob')` inside a function body, which bought
21
+ * recursion, brace expansion, ignore lists and negation — none of them
22
+ * reachable from that table.
23
+ *
24
+ * The cost was not a heavier install; it was a MISSING one. `glob` was never
25
+ * declared in `dependencies`. It resolved transitively through
26
+ * devDependencies in a development checkout, so it worked here and only here.
27
+ * In a packaged install — `npm pack` + `npm install --global`, which ships
28
+ * `dependencies` and nothing else — it is absent, and `grm version --detect`
29
+ * dies with "Cannot find module 'glob'". Measured 2026-08-02 against
30
+ * ~/.local/lib/node_modules/git-release-manager: nine e2e cases red, while the
31
+ * same code passed from the source tree.
32
+ *
33
+ * Promoting `glob` to `dependencies` would also close it, and was rejected:
34
+ * the version transitively present is 7.2.3, which is end-of-life, and glob 9+
35
+ * renamed `sync` to `globSync`, so the honest options were "ship a deprecated
36
+ * major" or "change this code anyway". `fs.globSync` closes it in one line but
37
+ * arrived in Node 22, and package.json declares `engines: { node: '>=14' }` —
38
+ * trading an undeclared dependency for a silently broken engine floor is the
39
+ * same defect in different clothes.
40
+ *
41
+ * ── IT REFUSES WHAT IT CANNOT SERVE ──────────────────────────────────────
42
+ *
43
+ * A pattern with a path separator, `**`, or any other glob metacharacter needs
44
+ * a real glob implementation. Returning "no match" for one would surface later
45
+ * as "No supported project file found in current directory" — a sentence that
46
+ * sounds true and describes the wrong thing. So it throws, naming the pattern.
47
+ */
48
+ function matchFilesInDirectory(pattern, directory) {
49
+ // Anything that is a glob metacharacter but not the `*` handled below.
50
+ if (pattern.includes('**') || /[/\\?[\]{}()!+@]/.test(pattern)) {
51
+ throw new Error(`Unsupported project file pattern '${pattern}': ` +
52
+ `only single-segment names whose sole wildcard is '*' are supported.`);
53
+ }
54
+ // Split on `*` FIRST, then escape each literal chunk. That way the star is
55
+ // never itself escaped, and every other regex metacharacter is.
56
+ const source = pattern
57
+ .split('*')
58
+ .map(chunk => chunk.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
59
+ .join('[^/]*');
60
+ const matcher = new RegExp(`^${source}$`);
61
+ let entries;
62
+ try {
63
+ entries = (0, fs_1.readdirSync)(directory, { withFileTypes: true });
64
+ }
65
+ catch (_a) {
66
+ // An unreadable directory has no project file in it. The caller's own
67
+ // "no supported project file found" is the right sentence here.
68
+ return [];
69
+ }
70
+ return entries
71
+ .filter(entry => entry.isFile() || entry.isSymbolicLink())
72
+ .map(entry => entry.name)
73
+ // glob parity: a leading `*` does not match a leading dot, so
74
+ // `*.csproj` must not select a file literally named `.csproj`.
75
+ .filter(name => !(name.startsWith('.') && pattern.startsWith('*')))
76
+ .filter(name => matcher.test(name))
77
+ // glob.sync returns sorted results by default, and the caller takes
78
+ // [0]. Without this the pick would follow readdir order, which is
79
+ // filesystem-dependent — the same directory could resolve to a
80
+ // different project file on a different machine.
81
+ .sort();
82
+ }
11
83
  class PackageJsonVersion {
12
84
  constructor(path = 'package.json') {
13
85
  this.filePath = path;
@@ -135,9 +207,18 @@ class ProjectVersionManager {
135
207
  // Path belirtilmemişse, mevcut dizinde desteklenen ilk proje dosyasını bul
136
208
  for (const { pattern, handler } of this.PROJECT_FILES) {
137
209
  if (pattern.includes('*')) {
138
- // Wildcard içeren dosya isimleri için glob kullanılabilir
139
- const glob = require('glob');
140
- const files = glob.sync(pattern, { cwd: process.cwd() });
210
+ // Wildcard patterns are matched against a flat listing of the
211
+ // current directory — see matchFilesInDirectory for why this is
212
+ // not `glob`.
213
+ //
214
+ // Both branches fixed the same undeclared-`glob` defect, one as
215
+ // a private matchInCwd and one as this exported function. The
216
+ // exported one wins because it is the one under test
217
+ // (test/unit/version/projectFilePattern.test.ts covers the
218
+ // supported patterns AND the refusals); a private method with
219
+ // no caller left would have been the same code with the seal
220
+ // removed.
221
+ const files = matchFilesInDirectory(pattern, process.cwd());
141
222
  if (files.length > 0) {
142
223
  return {
143
224
  filePath: (0, path_1.join)(process.cwd(), files[0]),
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectVersion.js","sourceRoot":"","sources":["../../../src/modules/version/ProjectVersion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectVersion.js","sourceRoot":"","sources":["../../../src/modules/version/ProjectVersion.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VersionController = void 0;
4
+ const resolveVersionRef_1 = require("./resolveVersionRef");
5
+ const branchChannel_1 = require("./branchChannel");
6
+ const configManager_1 = require("../../config/configManager");
7
+ const VersionStamper_1 = require("./VersionStamper");
8
+ const commitProcessor_1 = require("../git/commits/commitProcessor");
9
+ const BumpDeriver_1 = require("./BumpDeriver");
4
10
  const GitVersionManager_1 = require("./GitVersionManager");
5
11
  const ProjectVersion_1 = require("./ProjectVersion");
6
12
  const ReleaseManager_1 = require("./ReleaseManager");
@@ -12,8 +18,161 @@ class VersionController {
12
18
  this.validator = new VersionValidator_1.VersionValidator();
13
19
  this.projectVersionManager = new ProjectVersion_1.ProjectVersionManager();
14
20
  }
21
+ /**
22
+ * resolveBaselineRef — the shared resolver, kept as a method so the call
23
+ * sites below read unchanged.
24
+ *
25
+ * THE BODY MOVED to modules/version/resolveVersionRef (DECISIONS D4). It was
26
+ * private here while `--revert` and `--compare` each answered the same
27
+ * question their own way — three verbs, three behaviours. One place is the
28
+ * decision; this wrapper is what keeps it one.
29
+ */
30
+ async resolveBaselineRef(baseline, prefix) {
31
+ return (0, resolveVersionRef_1.resolveVersionRef)(baseline, prefix);
32
+ }
33
+ /**
34
+ * deriveBumpFromRange — read the commits this version would cover and grade
35
+ * them against the configured taxonomy.
36
+ *
37
+ * Returns null when the range cannot be established, and the caller then
38
+ * proceeds with its normal default rather than failing. That is deliberate:
39
+ * `--derive` asks the history for an OPINION, and a repository with no
40
+ * baseline (the first version ever) genuinely has none to give. Refusing
41
+ * there would make the first release the one command nobody can run.
42
+ */
43
+ async deriveBumpFromRange(options) {
44
+ var _a, _b, _c;
45
+ try {
46
+ const config = await (0, configManager_1.readConfig)(options.config, options.environment);
47
+ const baseline = (_a = options.from) !== null && _a !== void 0 ? _a : (await this.gitManager.getLatestTag(options.prefix, options.channel));
48
+ if (!baseline)
49
+ return null;
50
+ // THE BASELINE IS A VERSION; THE RANGE NEEDS A REF, and they are not
51
+ // the same string. `--from 1.0.0` is a perfectly good baseline for
52
+ // the arithmetic — semver does not care about a `v` — while the tag
53
+ // in the repository is `v1.0.0`, so handing it straight to `git log`
54
+ // produces "ambiguous argument '1.0.0..HEAD'". The arithmetic then
55
+ // still answers, from a range that was never read: a derivation that
56
+ // silently graded nothing.
57
+ //
58
+ // --since IS THE CALLER SAYING THE TWO CANNOT BE INFERRED FROM EACH
59
+ // OTHER. A project running several version LINES tags them
60
+ // `<line>-vX.Y.Z`, so the baseline it hands over is the bare semver
61
+ // core `1.0.0` while the ref that starts the range is
62
+ // `catalystctl-v1.0.0`. Guessing from the core alone finds the
63
+ // repository's OWN `v1.0.0` — a real tag, at the wrong point in
64
+ // history — and the derivation then grades a range belonging to a
65
+ // different line. Measured: a component whose tree had not been
66
+ // touched derived a patch bump from another line's commits.
67
+ const from = options.since
68
+ ? await this.resolveBaselineRef(options.since, options.prefix)
69
+ : await this.resolveBaselineRef(baseline, options.prefix);
70
+ if (!from) {
71
+ console.error(`bump: ${options.since ? `range start '${options.since}'` : `baseline '${baseline}'`} ` +
72
+ `does not resolve to a ref in this repository, ` +
73
+ `so there is no range to grade; falling back to the flags given`);
74
+ return null;
75
+ }
76
+ const to = (_b = options.to) !== null && _b !== void 0 ? _b : 'HEAD';
77
+ // --no-merges: a merge commit carries no type and never could. Its
78
+ // content is the commits it joins, and those are in this range too.
79
+ //
80
+ // --paths scopes the derivation to ONE component's tree. Without it
81
+ // a repository with several independently-versioned products grades
82
+ // every one of them against every commit, so a fix in product A
83
+ // bumps product B — and the two lines, whose whole purpose is to be
84
+ // independent, move in lockstep while each claims to be its own.
85
+ // `--` separates pathspecs from revisions; without it git resolves a
86
+ // path that happens to look like a ref and answers about the wrong
87
+ // thing.
88
+ const pathspecs = ((_c = options.paths) !== null && _c !== void 0 ? _c : '').split(/\s+/).filter(Boolean);
89
+ const logArgs = ['--no-merges', ...(pathspecs.length ? ['--', ...pathspecs] : [])];
90
+ const commits = await (0, commitProcessor_1.getGitLogAsJson)(`${from}..${to}`, logArgs);
91
+ if (!(commits === null || commits === void 0 ? void 0 : commits.length))
92
+ return null;
93
+ return (0, BumpDeriver_1.deriveBump)(commits, config);
94
+ }
95
+ catch (error) {
96
+ // A derivation that cannot run must not take the version path down
97
+ // with it — the caller still has an explicit default. It says so on
98
+ // stderr, because a SILENT fallback would look exactly like a range
99
+ // that legitimately voted patch.
100
+ console.error(`bump: could not derive from history (${error instanceof Error ? error.message : String(error)}); ` +
101
+ `falling back to the flags given`);
102
+ return null;
103
+ }
104
+ }
105
+ /**
106
+ * withConfiguredPrefix — let `tag.prefix` in the config be the default for
107
+ * `--prefix`.
108
+ *
109
+ * WHY THIS EXISTS. The prefix was DECLARED in three places and read in one.
110
+ * Measured 2026-08-06: `tag.prefix` (a project config), `tag.format` (the
111
+ * packaged default and the Config type) and `config.tagPrefix` (read by
112
+ * FlowManager, declared by no config, so it interpolated the string
113
+ * "undefined" into its patterns). The only live knob was the CLI flag. A
114
+ * setting a project writes and nothing reads is worse than no setting: the
115
+ * next reader assumes the prefix is configured and it is not.
116
+ *
117
+ * THE FLAG STILL WINS, always. A caller that passes --prefix has said
118
+ * something more specific than the file, and a caller that passes NOTHING
119
+ * on a project with no tag.prefix gets exactly today's behaviour — so this
120
+ * cannot change what any existing invocation does.
121
+ */
122
+ async withConfiguredPrefix(options) {
123
+ var _a;
124
+ if (options.prefix !== undefined)
125
+ return options;
126
+ try {
127
+ const config = await (0, configManager_1.readConfig)(options.config, options.environment);
128
+ const prefix = (_a = config === null || config === void 0 ? void 0 : config.tag) === null || _a === void 0 ? void 0 : _a.prefix;
129
+ if (typeof prefix === 'string' && prefix.length > 0)
130
+ return { ...options, prefix };
131
+ }
132
+ catch (_b) {
133
+ // A config that cannot be read is not a reason to fail a version
134
+ // command that never needed it.
135
+ }
136
+ return options;
137
+ }
138
+ /**
139
+ * maybeStamp — write the version into the files the project declared.
140
+ *
141
+ * Never fatal by default. Stamping is a CONVENIENCE over a version that has
142
+ * already been decided and, at this point, already recorded; failing the
143
+ * command here would leave the caller believing no version was cut when one
144
+ * was. A file the project marked `required` still throws — that is the
145
+ * project saying the stamp is not a convenience — and the throw reaches the
146
+ * outer catch, which is why this does not swallow those.
147
+ */
148
+ async maybeStamp(version, options) {
149
+ if (options.skipStamp)
150
+ return;
151
+ let config;
152
+ try {
153
+ config = await (0, configManager_1.readConfig)(options.config, options.environment);
154
+ }
155
+ catch (_a) {
156
+ return; // no config, nothing declared, nothing to stamp
157
+ }
158
+ if (!config)
159
+ return;
160
+ const stamper = new VersionStamper_1.VersionStamper(config, process.cwd());
161
+ if (!stamper.configured)
162
+ return;
163
+ if (!stamper.onBump && !options.stamp)
164
+ return;
165
+ const result = await stamper.stamp(version);
166
+ console.error(`stamp: ${VersionStamper_1.VersionStamper.describe(result)}`);
167
+ // An UNMATCHED file is the silent-failure case this feature exists to
168
+ // prevent, so it is named individually rather than left as a count.
169
+ for (const f of result.unmatched) {
170
+ console.error(`stamp: WARNING ${f} — the configured pattern matched nothing; not stamped`);
171
+ }
172
+ }
15
173
  async handleVersionCommand(options) {
16
174
  try {
175
+ options = await this.withConfiguredPrefix(options);
17
176
  // Validate version manipulation options
18
177
  this.validator.validateVersionOptions(options);
19
178
  if (options.reset) {
@@ -46,11 +205,11 @@ class VersionController {
46
205
  return;
47
206
  }
48
207
  if (options.compare) {
49
- await this.gitManager.compareVersions(options.compare);
208
+ await this.gitManager.compareVersions(options.compare, options.prefix);
50
209
  return;
51
210
  }
52
211
  if (options.revert) {
53
- await this.gitManager.revertToVersion(options.revert, options.push);
212
+ await this.gitManager.revertToVersion(options.revert, options.push, options.prefix);
54
213
  return;
55
214
  }
56
215
  if (options.validate) {
@@ -61,6 +220,46 @@ class VersionController {
61
220
  await this.gitManager.syncVersions(options.push);
62
221
  return;
63
222
  }
223
+ // --derive: let the COMMITS name the bump, through the taxonomy this
224
+ // project already configured for its changelog.
225
+ //
226
+ // AN EXPLICIT FLAG ALWAYS WINS, and quietly. `--derive --minor` is an
227
+ // operator saying something the history cannot know — a compatibility
228
+ // break nobody marked, a release deliberately held back — and a tool
229
+ // that argued there would be overruled by hand every time until
230
+ // somebody stopped passing --derive at all.
231
+ //
232
+ // THE RANGE IS THE BASELINE'S. Whatever version this run bumps FROM
233
+ // is the only defensible start: it names the commit the previous
234
+ // version pointed at, so the range is exactly the work that is new.
235
+ // A wider range re-grades released commits and would re-derive the
236
+ // same major forever once one lands.
237
+ if (options.derive && !options.major && !options.minor && !options.patch) {
238
+ const evidence = await this.deriveBumpFromRange(options);
239
+ if (evidence) {
240
+ if (options.explainBump)
241
+ console.error(`bump: ${(0, BumpDeriver_1.explainBump)(evidence)}`);
242
+ options = { ...options, [evidence.bump]: true };
243
+ }
244
+ }
245
+ // ── THE BRANCH MAY IMPLY A CHANNEL (DECISIONS D1) ───────────────
246
+ //
247
+ // A feature deploy cuts a real prerelease named after its branch:
248
+ // `feature/new-thing` → `v1.0.1-feature-new-thing.1`. Off unless the
249
+ // branch's strategy declares `channelFromBranch`, and never when the
250
+ // caller named a channel itself — an explicit `--channel` is the
251
+ // operator saying which line they mean, and deriving over it would
252
+ // put the build somewhere they did not ask for.
253
+ // The config is read HERE rather than threaded in: this path is
254
+ // reached from several verbs and only one of them already holds it.
255
+ // A config that cannot be read is not a reason to fail a version —
256
+ // impliedChannel simply finds no declaration and derives nothing.
257
+ const branchCfg = await (0, configManager_1.readConfig)(options.config, options.environment).catch(() => undefined);
258
+ const implied = await (0, branchChannel_1.impliedChannel)(branchCfg, options.channel);
259
+ if (implied) {
260
+ options = { ...options, channel: implied };
261
+ console.error(`channel: ${implied} (from the current branch — branchStrategies.channelFromBranch)`);
262
+ }
64
263
  // Handle version creation/update
65
264
  let newVersion = '';
66
265
  if (options.version) {
@@ -72,11 +271,47 @@ class VersionController {
72
271
  else {
73
272
  newVersion = await this.gitManager.generateNewVersion(options);
74
273
  }
274
+ // --dry-run: answer "what WOULD be cut" without cutting.
275
+ //
276
+ // Every other path here mutates — createVersion writes release
277
+ // notes, createGitTag moves refs, push touches the remote — so
278
+ // asking the question used to mean performing the answer. A
279
+ // release plane whose only way to report the next version is to
280
+ // MINT it cannot be consulted by anything upstream: a build that
281
+ // wants to stamp the version it is about to produce, a CI gate
282
+ // checking the bump is the intended one, or an operator simply
283
+ // looking. The version is printed on stdout ALONE so it can be
284
+ // captured with $(...); everything explanatory goes to stderr.
285
+ if (options.dryRun) {
286
+ console.error(`dry-run: would create ${newVersion} (nothing was written)`);
287
+ console.log(newVersion);
288
+ return;
289
+ }
75
290
  await this.releaseManager.createVersion(newVersion, options);
291
+ // ── STAMP THE WORKING TREE, BEFORE THE TAG ────────────────────
292
+ //
293
+ // The order is the whole point. A tag is a pointer to a COMMIT, so
294
+ // stamping after tagging produces a tag whose files still say the
295
+ // previous version — the artefact built from that tag then carries
296
+ // a number that contradicts the tag it was built from, and the
297
+ // contradiction is invisible until somebody installs it.
298
+ //
299
+ // Opt-in twice over: nothing happens unless `versioning.stamp.files`
300
+ // is configured, and even then only with `--stamp` or
301
+ // `versioning.stamp.onBump`. A project that has never heard of this
302
+ // feature must behave on upgrade exactly as it did before.
303
+ await this.maybeStamp(newVersion, options);
76
304
  // Create git tag
77
305
  if (options.tag !== false) {
78
306
  // Default to true if not explicitly set to false
79
- await this.gitManager.createGitTag(newVersion);
307
+ // The note becomes the ANNOTATED TAG'S BODY. It was being
308
+ // dropped: createGitTag was called without it, so the tag
309
+ // message defaulted to the version string and the release note
310
+ // lived only wherever createVersion put it. An annotated tag
311
+ // whose body merely repeats its own name records nothing —
312
+ // "who cut this, from what, and why" is the entire reason the
313
+ // tag is an object rather than a ref.
314
+ await this.gitManager.createGitTag(newVersion, options.note);
80
315
  console.log(`Created tag: ${newVersion}`);
81
316
  }
82
317
  // Push changes if requested
@@ -1 +1 @@
1
- {"version":3,"file":"VersionController.js","sourceRoot":"","sources":["../../../src/modules/version/VersionController.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AACvD,qDAAwD;AACxD,qDAAiD;AACjD,yDAAqD;AAErD,MAAa,iBAAiB;IAM1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,qCAAiB,EAAE,CAAA;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,mCAAgB,EAAE,CAAA;QACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,sCAAqB,EAAE,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAuB;QAC9C,IAAI,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAA;gBACpC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBAC3F,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAC,QAAQ,sBAAsB,cAAc,CAAC,cAAc,EAAE,CAAC,CAAA;gBAEhH,iFAAiF;gBACjF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClD,uCAAuC;oBACvC,0DAA0D;gBAC9D,CAAC;gBAED,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,sBAAsB;gBACtB,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;gBAEtF,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAC1F,OAAM;YACV,CAAC;YAED,oCAAoC;YACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC,CAAA;gBACjG,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAA;gBACzC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtD,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBACnE,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACtD,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAChD,OAAM;YACV,CAAC;YAED,iCAAiC;YACjC,IAAI,UAAU,GAAG,EAAE,CAAA;YACnB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAA;YAChC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAE5D,iBAAiB;YACjB,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBACxB,iDAAiD;gBACjD,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;gBAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;YAC7C,CAAC;YAED,4BAA4B;YAC5B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AAvGD,8CAuGC"}
1
+ {"version":3,"file":"VersionController.js","sourceRoot":"","sources":["../../../src/modules/version/VersionController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.VersionStamper = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const simple_git_1 = __importDefault(require("simple-git"));
10
+ const ProjectVersion_1 = require("./ProjectVersion");
11
+ class VersionStamper {
12
+ constructor(config, root = process.cwd()) {
13
+ this.config = config;
14
+ this.root = root;
15
+ }
16
+ /** Whether the project has asked for any stamping at all. */
17
+ get configured() {
18
+ var _a, _b, _c, _d, _e;
19
+ return ((_e = (_d = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.versioning) === null || _b === void 0 ? void 0 : _b.stamp) === null || _c === void 0 ? void 0 : _c.files) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0) > 0;
20
+ }
21
+ /** Whether a bump should stamp without being asked. Opt-in, default off. */
22
+ get onBump() {
23
+ var _a, _b;
24
+ return this.configured && ((_b = (_a = this.config.versioning) === null || _a === void 0 ? void 0 : _a.stamp) === null || _b === void 0 ? void 0 : _b.onBump) === true;
25
+ }
26
+ /**
27
+ * Expand one configured entry to concrete files.
28
+ *
29
+ * The wildcard rules are ProjectVersion's, deliberately: one matcher in the
30
+ * codebase, one set of refusals, one place that has been told why `glob` is
31
+ * not used here. A pattern this matcher cannot serve throws by name rather
32
+ * than resolving to "no files", which would read as "nothing to stamp".
33
+ */
34
+ expand(entry) {
35
+ const rel = entry.path;
36
+ if (!rel.includes('*')) {
37
+ return [rel];
38
+ }
39
+ const idx = rel.lastIndexOf('/');
40
+ const dir = idx === -1 ? '' : rel.slice(0, idx);
41
+ const base = idx === -1 ? rel : rel.slice(idx + 1);
42
+ const abs = (0, path_1.isAbsolute)(dir) ? dir : (0, path_1.join)(this.root, dir);
43
+ if (!(0, fs_1.existsSync)(abs))
44
+ return [];
45
+ return (0, ProjectVersion_1.matchFilesInDirectory)(base, abs).map(f => (dir ? `${dir}/${f}` : f));
46
+ }
47
+ /**
48
+ * Substitute the placeholders a project may use in `replace` and in the
49
+ * commit message. `{versionCore}` exists because a tag prefix belongs to the
50
+ * LINE, not to the version: a manifest field that must parse as semver
51
+ * cannot hold `v1.2.3`, and a project should not have to strip it with a
52
+ * regex in the replacement string.
53
+ */
54
+ fill(template, version) {
55
+ const core = version.replace(/^[^0-9]*/, '');
56
+ return template
57
+ .replace(/\{version\}/g, version)
58
+ .replace(/\{versionCore\}/g, core);
59
+ }
60
+ async stamp(version, opts = {}) {
61
+ var _a, _b, _c, _d, _e, _f;
62
+ const out = { stamped: [], unmatched: [], missing: [], unchanged: [] };
63
+ const stampCfg = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.versioning) === null || _b === void 0 ? void 0 : _b.stamp;
64
+ if (!((_c = stampCfg === null || stampCfg === void 0 ? void 0 : stampCfg.files) === null || _c === void 0 ? void 0 : _c.length))
65
+ return out;
66
+ for (const entry of stampCfg.files) {
67
+ const files = this.expand(entry);
68
+ if (files.length === 0) {
69
+ if (entry.required) {
70
+ throw new Error(`Version stamp: required path '${entry.path}' matched no file under ${this.root}.`);
71
+ }
72
+ out.missing.push(entry.path);
73
+ continue;
74
+ }
75
+ for (const rel of files) {
76
+ const abs = (0, path_1.isAbsolute)(rel) ? rel : (0, path_1.resolve)(this.root, rel);
77
+ if (!(0, fs_1.existsSync)(abs)) {
78
+ if (entry.required) {
79
+ throw new Error(`Version stamp: required file '${rel}' does not exist.`);
80
+ }
81
+ out.missing.push(rel);
82
+ continue;
83
+ }
84
+ const before = (0, fs_1.readFileSync)(abs, 'utf8');
85
+ // `m` so `^`/`$` anchor per LINE: the overwhelmingly common
86
+ // shape is a single `version:` line, and without it a pattern
87
+ // anchored at `^` can only ever match the first line of a file.
88
+ const re = new RegExp(entry.pattern, (_d = entry.flags) !== null && _d !== void 0 ? _d : 'm');
89
+ // `test` on a /g regex ADVANCES lastIndex, and the same object
90
+ // is reused for the replace below. `String.replace` happens to
91
+ // reset it, so this is currently harmless — and it is reset
92
+ // explicitly anyway, because "harmless because of what the
93
+ // other method does" is exactly the kind of coupling that
94
+ // breaks when one of the two lines moves.
95
+ const matched = re.test(before);
96
+ re.lastIndex = 0;
97
+ if (!matched) {
98
+ if (entry.required) {
99
+ throw new Error(`Version stamp: pattern /${entry.pattern}/ found nothing in required file '${rel}'.`);
100
+ }
101
+ out.unmatched.push(rel);
102
+ continue;
103
+ }
104
+ const after = before.replace(re, this.fill(entry.replace, version));
105
+ if (after === before) {
106
+ out.unchanged.push(rel);
107
+ continue;
108
+ }
109
+ if (!opts.dryRun)
110
+ (0, fs_1.writeFileSync)(abs, after);
111
+ out.stamped.push(rel);
112
+ }
113
+ }
114
+ if (!opts.dryRun && out.stamped.length > 0 && ((_e = stampCfg.commit) === null || _e === void 0 ? void 0 : _e.enabled)) {
115
+ const git = (0, simple_git_1.default)(this.root);
116
+ // PATHSPEC, never `-a`. See refusal 2 in the header.
117
+ await git.add(['--', ...out.stamped]);
118
+ const msg = this.fill((_f = stampCfg.commit.message) !== null && _f !== void 0 ? _f : 'chore(version): stamp {version}', version);
119
+ const res = await git.commit(msg, out.stamped);
120
+ out.commit = res.commit || undefined;
121
+ }
122
+ return out;
123
+ }
124
+ /** A one-line human summary — the shape a CLI prints on STDERR. */
125
+ static describe(r) {
126
+ const bits = [`${r.stamped.length} stamped`];
127
+ if (r.unchanged.length)
128
+ bits.push(`${r.unchanged.length} already current`);
129
+ if (r.unmatched.length)
130
+ bits.push(`${r.unmatched.length} UNMATCHED`);
131
+ if (r.missing.length)
132
+ bits.push(`${r.missing.length} missing`);
133
+ if (r.commit)
134
+ bits.push(`committed ${r.commit.slice(0, 10)}`);
135
+ return bits.join(' · ');
136
+ }
137
+ }
138
+ exports.VersionStamper = VersionStamper;
139
+ //# sourceMappingURL=VersionStamper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionStamper.js","sourceRoot":"","sources":["../../../src/modules/version/VersionStamper.ts"],"names":[],"mappings":"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"}
File without changes
File without changes