git-release-manager 0.0.0 → 0.0.4
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/dist/src/PackageJson.js +3 -0
- package/dist/src/PackageJson.js.map +1 -0
- package/dist/src/cli/types/ChangelogCliArgs.js +3 -0
- package/dist/src/cli/types/ChangelogCliArgs.js.map +1 -0
- package/dist/src/cli/types/ChnagelogCliArgs.js +3 -0
- package/dist/src/cli/types/ChnagelogCliArgs.js.map +1 -0
- package/dist/src/cli/types/CliArgs.js +3 -0
- package/dist/src/cli/types/CliArgs.js.map +1 -0
- package/dist/src/config/configLoader.js +61 -0
- package/dist/src/config/configLoader.js.map +1 -0
- package/dist/src/config/configManager.js +66 -0
- package/dist/src/config/configManager.js.map +1 -0
- package/dist/src/config/constants.js +10 -0
- package/dist/src/config/constants.js.map +1 -0
- package/dist/src/config/defaults/config.json +232 -0
- package/dist/src/config/types/ChannelType.js +3 -0
- package/dist/src/config/types/ChannelType.js.map +1 -0
- package/dist/src/config/types/CommitType.js +3 -0
- package/dist/src/config/types/CommitType.js.map +1 -0
- package/dist/src/config/types/Config.js +3 -0
- package/dist/src/config/types/Config.js.map +1 -0
- package/dist/src/config/types/FileGroups.js +3 -0
- package/dist/src/config/types/FileGroups.js.map +1 -0
- package/dist/src/config/types/LinkType.js +3 -0
- package/dist/src/config/types/LinkType.js.map +1 -0
- package/dist/src/config/types/MentionType.js +3 -0
- package/dist/src/config/types/MentionType.js.map +1 -0
- package/dist/src/config/types/NoteType.js +3 -0
- package/dist/src/config/types/NoteType.js.map +1 -0
- package/dist/src/config/types/Options.js +3 -0
- package/dist/src/config/types/Options.js.map +1 -0
- package/dist/src/core/app-old.js +35 -0
- package/dist/src/core/app-old.js.map +1 -0
- package/dist/src/core/app.js +19 -0
- package/dist/src/core/app.js.map +1 -0
- package/dist/src/core/changelog/app.js +19 -0
- package/dist/src/core/changelog/app.js.map +1 -0
- package/dist/src/core/gitOperations.js +95 -0
- package/dist/src/core/gitOperations.js.map +1 -0
- package/dist/src/core/rangeOperations.js +14 -0
- package/dist/src/core/rangeOperations.js.map +1 -0
- package/dist/src/core/templateOperations.js +157 -0
- package/dist/src/core/templateOperations.js.map +1 -0
- package/dist/src/core/types/ChangeInformation.js +3 -0
- package/dist/src/core/types/ChangeInformation.js.map +1 -0
- package/dist/src/core/types/Context.js +3 -0
- package/dist/src/core/types/Context.js.map +1 -0
- package/dist/src/core/types/RangeDetails.js +3 -0
- package/dist/src/core/types/RangeDetails.js.map +1 -0
- package/dist/src/core/types/RangeInfo.js +3 -0
- package/dist/src/core/types/RangeInfo.js.map +1 -0
- package/dist/src/core/types/ReferenceTypesEnum.js +12 -0
- package/dist/src/core/types/ReferenceTypesEnum.js.map +1 -0
- package/dist/src/core/types/Repository.js +3 -0
- package/dist/src/core/types/Repository.js.map +1 -0
- package/dist/src/git/commits/commitProcessor.js +52 -0
- package/dist/src/git/commits/commitProcessor.js.map +1 -0
- package/dist/src/git/commits/gitLogFetcher.js +27 -0
- package/dist/src/git/commits/gitLogFetcher.js.map +1 -0
- package/dist/src/git/commits/index.js +136 -0
- package/dist/src/git/commits/index.js.map +1 -0
- package/dist/src/git/commits/profileHandler.js +43 -0
- package/dist/src/git/commits/profileHandler.js.map +1 -0
- package/dist/src/git/commits/regexHandlers.js +27 -0
- package/dist/src/git/commits/regexHandlers.js.map +1 -0
- package/dist/src/git/commits.js +136 -0
- package/dist/src/git/commits.js.map +1 -0
- package/dist/src/git/context/branchHandler.js +23 -0
- package/dist/src/git/context/branchHandler.js.map +1 -0
- package/dist/src/git/context/commitHandler.js +30 -0
- package/dist/src/git/context/commitHandler.js.map +1 -0
- package/dist/src/git/context/index.js +31 -0
- package/dist/src/git/context/index.js.map +1 -0
- package/dist/src/git/context/remoteHandler.js +25 -0
- package/dist/src/git/context/remoteHandler.js.map +1 -0
- package/dist/src/git/context/statusHandler.js +21 -0
- package/dist/src/git/context/statusHandler.js.map +1 -0
- package/dist/src/git/context/tagHandler.js +21 -0
- package/dist/src/git/context/tagHandler.js.map +1 -0
- package/dist/src/git/context.js +95 -0
- package/dist/src/git/context.js.map +1 -0
- package/dist/src/git/types/Author.js +3 -0
- package/dist/src/git/types/Author.js.map +1 -0
- package/dist/src/git/types/BranchInfo.js +3 -0
- package/dist/src/git/types/BranchInfo.js.map +1 -0
- package/dist/src/git/types/CommitContent.js +3 -0
- package/dist/src/git/types/CommitContent.js.map +1 -0
- package/dist/src/git/types/CommitInfo.js +3 -0
- package/dist/src/git/types/CommitInfo.js.map +1 -0
- package/dist/src/git/types/CommitType.js +3 -0
- package/dist/src/git/types/CommitType.js.map +1 -0
- package/dist/src/git/types/CommitType2.js +3 -0
- package/dist/src/git/types/CommitType2.js.map +1 -0
- package/dist/src/git/types/GitCommit.js +3 -0
- package/dist/src/git/types/GitCommit.js.map +1 -0
- package/dist/src/git/types/GitContext.js +3 -0
- package/dist/src/git/types/GitContext.js.map +1 -0
- package/dist/src/git/types/Link.js +3 -0
- package/dist/src/git/types/Link.js.map +1 -0
- package/dist/src/git/types/LinkType-.js +3 -0
- package/dist/src/git/types/LinkType-.js.map +1 -0
- package/dist/src/git/types/LinkType.js +3 -0
- package/dist/src/git/types/LinkType.js.map +1 -0
- package/dist/src/git/types/Mention.js +3 -0
- package/dist/src/git/types/Mention.js.map +1 -0
- package/dist/src/git/types/MentionType-.js +3 -0
- package/dist/src/git/types/MentionType-.js.map +1 -0
- package/dist/src/git/types/MentionType.js +3 -0
- package/dist/src/git/types/MentionType.js.map +1 -0
- package/dist/src/git/types/Note.js +3 -0
- package/dist/src/git/types/Note.js.map +1 -0
- package/dist/src/git/types/RemoteInfo.js +3 -0
- package/dist/src/git/types/RemoteInfo.js.map +1 -0
- package/dist/src/git/types/StatusInfo.js +3 -0
- package/dist/src/git/types/StatusInfo.js.map +1 -0
- package/dist/src/git/types/TagInfo.js +3 -0
- package/dist/src/git/types/TagInfo.js.map +1 -0
- package/dist/src/git/utils/branchUtils.js +56 -0
- package/dist/src/git/utils/branchUtils.js.map +1 -0
- package/dist/src/git/utils/commitUtils.js +50 -0
- package/dist/src/git/utils/commitUtils.js.map +1 -0
- package/dist/src/git/utils/logUtils.js +18 -0
- package/dist/src/git/utils/logUtils.js.map +1 -0
- package/dist/src/git/utils/refUtils.js +41 -0
- package/dist/src/git/utils/refUtils.js.map +1 -0
- package/dist/src/git/utils/referenceUtils.js +138 -0
- package/dist/src/git/utils/referenceUtils.js.map +1 -0
- package/dist/src/git/utils/tagUtils.js +54 -0
- package/dist/src/git/utils/tagUtils.js.map +1 -0
- package/dist/src/index.js +90 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/main.js +16 -0
- package/dist/src/main.js.map +1 -0
- package/dist/src/modules/changelog/templateOperations.js +129 -0
- package/dist/src/modules/changelog/templateOperations.js.map +1 -0
- package/dist/src/modules/changes/types/ChangeInformation.js +3 -0
- package/dist/src/modules/changes/types/ChangeInformation.js.map +1 -0
- package/dist/src/modules/changes/types/Context.js +3 -0
- package/dist/src/modules/changes/types/Context.js.map +1 -0
- package/dist/src/modules/changes/types/RangeDetail.js +3 -0
- package/dist/src/modules/changes/types/RangeDetail.js.map +1 -0
- package/dist/src/modules/changes/types/RangeDetails.js +3 -0
- package/dist/src/modules/changes/types/RangeDetails.js.map +1 -0
- package/dist/src/modules/changes/types/RangeInfo.js +8 -0
- package/dist/src/modules/changes/types/RangeInfo.js.map +1 -0
- package/dist/src/modules/changes/types/RangeSummary.js +3 -0
- package/dist/src/modules/changes/types/RangeSummary.js.map +1 -0
- package/dist/src/modules/changes/types/ReferenceTypesEnum.js +12 -0
- package/dist/src/modules/changes/types/ReferenceTypesEnum.js.map +1 -0
- package/dist/src/modules/git/commits/commitProcessor.js +52 -0
- package/dist/src/modules/git/commits/commitProcessor.js.map +1 -0
- package/dist/src/modules/git/commits/gitLogFetcher.js +27 -0
- package/dist/src/modules/git/commits/gitLogFetcher.js.map +1 -0
- package/dist/src/modules/git/commits/index.js +136 -0
- package/dist/src/modules/git/commits/index.js.map +1 -0
- package/dist/src/modules/git/commits/profileHandler.js +45 -0
- package/dist/src/modules/git/commits/profileHandler.js.map +1 -0
- package/dist/src/modules/git/commits/regexHandlers.js +27 -0
- package/dist/src/modules/git/commits/regexHandlers.js.map +1 -0
- package/dist/src/modules/git/context/branchHandler.js +23 -0
- package/dist/src/modules/git/context/branchHandler.js.map +1 -0
- package/dist/src/modules/git/context/commitHandler.js +34 -0
- package/dist/src/modules/git/context/commitHandler.js.map +1 -0
- package/dist/src/modules/git/context/index.js +28 -0
- package/dist/src/modules/git/context/index.js.map +1 -0
- package/dist/src/modules/git/context/remoteHandler.js +25 -0
- package/dist/src/modules/git/context/remoteHandler.js.map +1 -0
- package/dist/src/modules/git/context/statusHandler.js +21 -0
- package/dist/src/modules/git/context/statusHandler.js.map +1 -0
- package/dist/src/modules/git/context/tagHandler.js +33 -0
- package/dist/src/modules/git/context/tagHandler.js.map +1 -0
- package/dist/src/modules/git/gitOperations.js +56 -0
- package/dist/src/modules/git/gitOperations.js.map +1 -0
- package/dist/src/modules/git/types/Author.js +3 -0
- package/dist/src/modules/git/types/Author.js.map +1 -0
- package/dist/src/modules/git/types/Branch.js +3 -0
- package/dist/src/modules/git/types/Branch.js.map +1 -0
- package/dist/src/modules/git/types/BranchInfo.js +3 -0
- package/dist/src/modules/git/types/BranchInfo.js.map +1 -0
- package/dist/src/modules/git/types/CommitContent.js +3 -0
- package/dist/src/modules/git/types/CommitContent.js.map +1 -0
- package/dist/src/modules/git/types/CommitInfo.js +3 -0
- package/dist/src/modules/git/types/CommitInfo.js.map +1 -0
- package/dist/src/modules/git/types/CommitType.js +3 -0
- package/dist/src/modules/git/types/CommitType.js.map +1 -0
- package/dist/src/modules/git/types/GitCommit.js +3 -0
- package/dist/src/modules/git/types/GitCommit.js.map +1 -0
- package/dist/src/modules/git/types/GitContext.js +3 -0
- package/dist/src/modules/git/types/GitContext.js.map +1 -0
- package/dist/src/modules/git/types/GitReference.js +3 -0
- package/dist/src/modules/git/types/GitReference.js.map +1 -0
- package/dist/src/modules/git/types/Link.js +3 -0
- package/dist/src/modules/git/types/Link.js.map +1 -0
- package/dist/src/modules/git/types/Mention.js +3 -0
- package/dist/src/modules/git/types/Mention.js.map +1 -0
- package/dist/src/modules/git/types/Note.js +3 -0
- package/dist/src/modules/git/types/Note.js.map +1 -0
- package/dist/src/modules/git/types/RemoteInfo.js +3 -0
- package/dist/src/modules/git/types/RemoteInfo.js.map +1 -0
- package/dist/src/modules/git/types/Repository.js +3 -0
- package/dist/src/modules/git/types/Repository.js.map +1 -0
- package/dist/src/modules/git/types/StatusInfo.js +3 -0
- package/dist/src/modules/git/types/StatusInfo.js.map +1 -0
- package/dist/src/modules/git/types/Tag.js +3 -0
- package/dist/src/modules/git/types/Tag.js.map +1 -0
- package/dist/src/modules/git/types/TagInfo.js +3 -0
- package/dist/src/modules/git/types/TagInfo.js.map +1 -0
- package/dist/src/modules/git/utils/branchUtils.js +56 -0
- package/dist/src/modules/git/utils/branchUtils.js.map +1 -0
- package/dist/src/modules/git/utils/commitUtils.js +50 -0
- package/dist/src/modules/git/utils/commitUtils.js.map +1 -0
- package/dist/src/modules/git/utils/logUtils.js +18 -0
- package/dist/src/modules/git/utils/logUtils.js.map +1 -0
- package/dist/src/modules/git/utils/rangeOperations.js +14 -0
- package/dist/src/modules/git/utils/rangeOperations.js.map +1 -0
- package/dist/src/modules/git/utils/refUtils.js +41 -0
- package/dist/src/modules/git/utils/refUtils.js.map +1 -0
- package/dist/src/modules/git/utils/referenceUtils.js +132 -0
- package/dist/src/modules/git/utils/referenceUtils.js.map +1 -0
- package/dist/src/modules/git/utils/tagUtils.js +54 -0
- package/dist/src/modules/git/utils/tagUtils.js.map +1 -0
- package/dist/src/modules/output/writer.js +46 -0
- package/dist/src/modules/output/writer.js.map +1 -0
- package/dist/src/modules/repository/types/Repository.js +3 -0
- package/dist/src/modules/repository/types/Repository.js.map +1 -0
- package/dist/src/modules/sections/contributors.js +50 -0
- package/dist/src/modules/sections/contributors.js.map +1 -0
- package/dist/src/modules/sections/grouping.js +64 -0
- package/dist/src/modules/sections/grouping.js.map +1 -0
- package/dist/src/modules/sections/index.js +19 -0
- package/dist/src/modules/sections/index.js.map +1 -0
- package/dist/src/modules/sections/summarizing.js +75 -0
- package/dist/src/modules/sections/summarizing.js.map +1 -0
- package/dist/src/modules/sections/types/Contributor.js +3 -0
- package/dist/src/modules/sections/types/Contributor.js.map +1 -0
- package/dist/src/modules/sections/types/Group.js +3 -0
- package/dist/src/modules/sections/types/Group.js.map +1 -0
- package/dist/src/modules/sections/types/SectionSummary.js +3 -0
- package/dist/src/modules/sections/types/SectionSummary.js.map +1 -0
- package/dist/src/modules/sections/types/Sections.js +3 -0
- package/dist/src/modules/sections/types/Sections.js.map +1 -0
- package/dist/src/modules/templates/constants.js +10 -0
- package/dist/src/modules/templates/constants.js.map +1 -0
- package/dist/src/modules/templates/defaults/changelog.detailed.ejs +111 -0
- package/dist/src/modules/templates/defaults/changelog.ejs +68 -0
- package/dist/src/modules/templates/templateRenderer.js +46 -0
- package/dist/src/modules/templates/templateRenderer.js.map +1 -0
- package/dist/src/modules/templates/templateResolver.js +70 -0
- package/dist/src/modules/templates/templateResolver.js.map +1 -0
- package/dist/src/output/writer.js +46 -0
- package/dist/src/output/writer.js.map +1 -0
- package/dist/src/sections/contributors.js +50 -0
- package/dist/src/sections/contributors.js.map +1 -0
- package/dist/src/sections/grouping.js +70 -0
- package/dist/src/sections/grouping.js.map +1 -0
- package/dist/src/sections/index.js +20 -0
- package/dist/src/sections/index.js.map +1 -0
- package/dist/src/sections/summarizing.js +79 -0
- package/dist/src/sections/summarizing.js.map +1 -0
- package/dist/src/sections/types/Contributor.js +15 -0
- package/dist/src/sections/types/Contributor.js.map +1 -0
- package/dist/src/sections/types/Group.js +3 -0
- package/dist/src/sections/types/Group.js.map +1 -0
- package/dist/src/sections/types/SectionSummary.js +13 -0
- package/dist/src/sections/types/SectionSummary.js.map +1 -0
- package/dist/src/sections/types/Sections.js +3 -0
- package/dist/src/sections/types/Sections.js.map +1 -0
- package/dist/src/templates/constants.js +10 -0
- package/dist/src/templates/constants.js.map +1 -0
- package/dist/src/templates/defaults/changelog.detailed.ejs +111 -0
- package/dist/src/templates/defaults/changelog.ejs +68 -0
- package/dist/src/templates/index.js +100 -0
- package/dist/src/templates/index.js.map +1 -0
- package/dist/src/templates/templateRenderer.js +46 -0
- package/dist/src/templates/templateRenderer.js.map +1 -0
- package/dist/src/templates/templateResolver.js +70 -0
- package/dist/src/templates/templateResolver.js.map +1 -0
- package/dist/src/types/PackageJson.js +3 -0
- package/dist/src/types/PackageJson.js.map +1 -0
- package/dist/src/utils/cmd.js +27 -0
- package/dist/src/utils/cmd.js.map +1 -0
- package/dist/src/utils/date.js +20 -0
- package/dist/src/utils/date.js.map +1 -0
- package/dist/src/utils/git-utils.js +279 -0
- package/dist/src/utils/git-utils.js.map +1 -0
- package/dist/src/utils/helpers.js +10 -0
- package/dist/src/utils/helpers.js.map +1 -0
- package/dist/test/config/configLoader/loadConfigFile.test.js +94 -0
- package/dist/test/config/configLoader/loadConfigFile.test.js.map +1 -0
- package/dist/test/config/configManager/readConfig.test.js +124 -0
- package/dist/test/config/configManager/readConfig.test.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusInfo.js","sourceRoot":"","sources":["../../../../src/git/types/StatusInfo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagInfo.js","sourceRoot":"","sources":["../../../../src/git/types/TagInfo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
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.getBranches = getBranches;
|
|
7
|
+
exports.isGitBranch = isGitBranch;
|
|
8
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const util_1 = __importDefault(require("util"));
|
|
11
|
+
const execPromise = util_1.default.promisify(child_process_1.exec);
|
|
12
|
+
const git = (0, simple_git_1.default)();
|
|
13
|
+
async function getBranches(range) {
|
|
14
|
+
try {
|
|
15
|
+
const logCommand = `git log --oneline --decorate=short ${range}`;
|
|
16
|
+
const { stdout } = await execPromise(logCommand);
|
|
17
|
+
// Extract branches
|
|
18
|
+
const branchRegex = /([a-f0-9]+)\s.*\(.*?([^,\s)]+)\)/g;
|
|
19
|
+
const branchesWithRefs = [];
|
|
20
|
+
let match;
|
|
21
|
+
while ((match = branchRegex.exec(stdout.trim())) !== null) {
|
|
22
|
+
if (!match[2].startsWith("tag:")) {
|
|
23
|
+
// Ensures it's a branch
|
|
24
|
+
branchesWithRefs.push({ name: match[2], reference: match[1] });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Use a Set to filter unique branches by name
|
|
28
|
+
const uniqueBranchesMap = new Map();
|
|
29
|
+
branchesWithRefs.forEach((branch) => {
|
|
30
|
+
if (!uniqueBranchesMap.has(branch.name)) {
|
|
31
|
+
uniqueBranchesMap.set(branch.name, branch);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return Array.from(uniqueBranchesMap.values());
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error("Error retrieving branches in range:", error);
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Checks if the given value is a local Git branch.
|
|
43
|
+
*
|
|
44
|
+
* @param value - The name of the branch to check.
|
|
45
|
+
* @returns A promise that resolves to `true` if the value is a local Git branch, otherwise `false`.
|
|
46
|
+
*/
|
|
47
|
+
async function isGitBranch(value) {
|
|
48
|
+
try {
|
|
49
|
+
const branches = await git.branchLocal();
|
|
50
|
+
return branches.all.includes(value);
|
|
51
|
+
}
|
|
52
|
+
catch (_a) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=branchUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branchUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/branchUtils.ts"],"names":[],"mappings":";;;;;AASA,kCA6BC;AASD,kCAOG;AAtDH,4DAAmC;AAEnC,iDAAqC;AACrC,gDAAwB;AACxB,MAAM,WAAW,GAAG,cAAI,CAAC,SAAS,CAAC,oBAAI,CAAC,CAAC;AAGzC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC;AAEjB,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,sCAAsC,KAAK,EAAE,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAEjD,mBAAmB;QACnB,MAAM,WAAW,GAAG,mCAAmC,CAAC;QACxD,MAAM,gBAAgB,GAAkB,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,wBAAwB;gBACxB,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAGD;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAAC,KAAa;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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.getCommitCount = getCommitCount;
|
|
7
|
+
exports.isGitCommit = isGitCommit;
|
|
8
|
+
exports.resolveCommitId = resolveCommitId;
|
|
9
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
const util_1 = __importDefault(require("util"));
|
|
12
|
+
const refUtils_1 = require("./refUtils");
|
|
13
|
+
const execPromise = util_1.default.promisify(child_process_1.exec);
|
|
14
|
+
const git = (0, simple_git_1.default)();
|
|
15
|
+
async function getCommitCount(range) {
|
|
16
|
+
let commitCount = 0;
|
|
17
|
+
try {
|
|
18
|
+
const { stdout } = await execPromise(`git rev-list --count ${range}`);
|
|
19
|
+
commitCount = parseInt(stdout.trim(), 10);
|
|
20
|
+
return commitCount;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error("Error counting commits in range:", error);
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Checks if the given value is a valid Git commit.
|
|
29
|
+
*
|
|
30
|
+
* @param value - The value to check if it is a valid Git commit.
|
|
31
|
+
* @returns A promise that resolves to a boolean indicating whether the value is a valid Git commit.
|
|
32
|
+
*/
|
|
33
|
+
async function isGitCommit(value) {
|
|
34
|
+
return (0, refUtils_1.revParse)(value);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolves the commit ID for a given reference.
|
|
38
|
+
*
|
|
39
|
+
* @param value - The reference to resolve (e.g., branch name, tag, or commit hash).
|
|
40
|
+
* @returns A promise that resolves to the commit ID as a string, or null if the reference cannot be resolved.
|
|
41
|
+
*/
|
|
42
|
+
async function resolveCommitId(value) {
|
|
43
|
+
try {
|
|
44
|
+
return await git.revparse([value]);
|
|
45
|
+
}
|
|
46
|
+
catch (_a) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=commitUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/commitUtils.ts"],"names":[],"mappings":";;;;;AAQA,wCAWC;AAOD,kCAEC;AAQD,0CAMC;AA1CD,4DAAmC;AACnC,iDAAqC;AACrC,gDAAwB;AACxB,yCAAsC;AACtC,MAAM,WAAW,GAAG,cAAI,CAAC,SAAS,CAAC,oBAAI,CAAC,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC;AAEjB,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,IAAI,WAAW,GAAW,CAAC,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QACtE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AACD;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,OAAO,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAAC,KAAa;IACjD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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.getLog = getLog;
|
|
7
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
8
|
+
const git = (0, simple_git_1.default)();
|
|
9
|
+
/**
|
|
10
|
+
* Retrieves the git log for the specified range.
|
|
11
|
+
*
|
|
12
|
+
* @param range - The range of commits to include in the log.
|
|
13
|
+
* @returns A promise that resolves to the git log for the specified range.
|
|
14
|
+
*/
|
|
15
|
+
async function getLog(range) {
|
|
16
|
+
return git.log([range]);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=logUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/logUtils.ts"],"names":[],"mappings":";;;;;AAUA,wBAEG;AAZH,4DAAmC;AAEnC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC;AAExB;;;;;GAKG;AACI,KAAK,UAAU,MAAM,CAAC,KAAa;IACtC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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.revParse = revParse;
|
|
7
|
+
exports.isGitRef = isGitRef;
|
|
8
|
+
exports.parseRange = parseRange;
|
|
9
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
10
|
+
const git = (0, simple_git_1.default)();
|
|
11
|
+
/**
|
|
12
|
+
* Asynchronously checks if a given Git reference exists.
|
|
13
|
+
*
|
|
14
|
+
* @param value - The Git reference to check (e.g., branch name, commit hash).
|
|
15
|
+
* @returns A promise that resolves to `true` if the reference exists, otherwise `false`.
|
|
16
|
+
*/
|
|
17
|
+
async function revParse(value) {
|
|
18
|
+
try {
|
|
19
|
+
const result = await git.revparse([value]);
|
|
20
|
+
return !!result;
|
|
21
|
+
}
|
|
22
|
+
catch (_a) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Checks if the given value is a valid Git reference.
|
|
28
|
+
*
|
|
29
|
+
* @param value - The string to check as a Git reference.
|
|
30
|
+
* @returns A promise that resolves to `true` if the value is a valid Git reference, otherwise `false`.
|
|
31
|
+
*/
|
|
32
|
+
async function isGitRef(value) {
|
|
33
|
+
return revParse(value);
|
|
34
|
+
}
|
|
35
|
+
function parseRange(range) {
|
|
36
|
+
if (!range)
|
|
37
|
+
return { from: null, to: null };
|
|
38
|
+
const [from, to] = range.split('..');
|
|
39
|
+
return { from, to };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=refUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/refUtils.ts"],"names":[],"mappings":";;;;;AASA,4BAOC;AAQD,4BAEG;AAGD,gCAIC;AAjCH,4DAAmC;AACnC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC;AAExB;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,KAAa;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,KAAa;IACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAGD,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
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.resolveReference = resolveReference;
|
|
7
|
+
exports.determineType = determineType;
|
|
8
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
9
|
+
const ReferenceTypesEnum_1 = require("../../core/types/ReferenceTypesEnum");
|
|
10
|
+
const date_1 = require("../../utils/date");
|
|
11
|
+
const branchUtils_1 = require("./branchUtils");
|
|
12
|
+
const tagUtils_1 = require("./tagUtils");
|
|
13
|
+
const commitUtils_1 = require("./commitUtils");
|
|
14
|
+
const git = (0, simple_git_1.default)();
|
|
15
|
+
/**
|
|
16
|
+
* Resolves a Git reference to its commit hash and associated metadata.
|
|
17
|
+
*
|
|
18
|
+
* @param value - The reference value to resolve. This can be a commit hash, branch name, tag name, or date.
|
|
19
|
+
* @param isStart - Optional flag indicating whether to resolve the reference as the start of a range.
|
|
20
|
+
* @returns A promise that resolves to a `GitReference` object containing the resolved reference details, or `null` if the reference could not be resolved.
|
|
21
|
+
*
|
|
22
|
+
* The function determines the type of the reference (commit, reference, date, tag, or branch) and resolves it accordingly.
|
|
23
|
+
* If the reference is `null`, it resolves to the first or last commit based on the `isStart` flag.
|
|
24
|
+
* If the reference is a date, it resolves to the first or last commit after or before the date, respectively.
|
|
25
|
+
* If the reference is a branch, it validates the branch and resolves to the first or last commit in the branch based on the `isStart` flag.
|
|
26
|
+
*
|
|
27
|
+
* @throws Will throw an error if the reference type is unsupported or if the reference could not be resolved.
|
|
28
|
+
*/
|
|
29
|
+
async function resolveReference(value, isStart) {
|
|
30
|
+
let type;
|
|
31
|
+
let reference = null;
|
|
32
|
+
if (!value) {
|
|
33
|
+
type = ReferenceTypesEnum_1.ReferenceTypesEnum.commit;
|
|
34
|
+
value = null;
|
|
35
|
+
try {
|
|
36
|
+
if (isStart) {
|
|
37
|
+
const logs = await git.log(["--reverse"]);
|
|
38
|
+
reference = logs.all.length ? logs.all[0].hash : null;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
reference = await git.revparse(["HEAD"]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("Error resolving first/last commit:", error);
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
type = await determineType(value);
|
|
51
|
+
try {
|
|
52
|
+
switch (type) {
|
|
53
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.commit:
|
|
54
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.ref:
|
|
55
|
+
reference = await git.revparse([value]);
|
|
56
|
+
break;
|
|
57
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.date:
|
|
58
|
+
const formattedDate = (0, date_1.formatISO8601)(value); // formatDateForGit
|
|
59
|
+
if (isStart) {
|
|
60
|
+
const logsAfter = await git.log([
|
|
61
|
+
"--after",
|
|
62
|
+
formattedDate,
|
|
63
|
+
"--reverse",
|
|
64
|
+
]);
|
|
65
|
+
reference = logsAfter.all.length ? logsAfter.all[0].hash : null;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const logsBefore = await git.log(["--before", formattedDate]);
|
|
69
|
+
reference = logsBefore.latest ? logsBefore.latest.hash : null;
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.tag:
|
|
73
|
+
reference = await git.revparse([value]);
|
|
74
|
+
break;
|
|
75
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.branch:
|
|
76
|
+
const isValidBranch = await (0, branchUtils_1.isGitBranch)(value);
|
|
77
|
+
if (!isValidBranch) {
|
|
78
|
+
throw new Error(`Invalid branch: ${value}`);
|
|
79
|
+
}
|
|
80
|
+
if (isStart) {
|
|
81
|
+
const logsInBranch = await git.log([value]);
|
|
82
|
+
reference = logsInBranch.all.length
|
|
83
|
+
? logsInBranch.all[logsInBranch.all.length - 1].hash
|
|
84
|
+
: null;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
reference = await git.revparse([value]);
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
throw new Error(`Unsupported reference type for: ${value}`);
|
|
92
|
+
}
|
|
93
|
+
if (!reference) {
|
|
94
|
+
throw new Error(`Could not resolve reference: ${value}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(`Error resolving reference: ${value}`, error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!reference) {
|
|
103
|
+
throw new Error("Commit ID is null");
|
|
104
|
+
}
|
|
105
|
+
const result = await git.raw(["show", "-s", "--format=%ci", reference]);
|
|
106
|
+
const date = (0, date_1.formatISO8601)(result.trim());
|
|
107
|
+
return {
|
|
108
|
+
value,
|
|
109
|
+
type,
|
|
110
|
+
reference,
|
|
111
|
+
date,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
async function determineType(value) {
|
|
115
|
+
const commitRegex = /^[a-f0-9]{7,40}$/i;
|
|
116
|
+
const dateRegex = /^(\d{4})-(\d{2})-(\d{2})[T\s](\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|([+-]\d{2}:\d{2}))?$/;
|
|
117
|
+
const semanticTagRegex = /^v?\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+(\.[a-zA-Z0-9.-]+)*)?$/;
|
|
118
|
+
const refRegex = /^(HEAD(~\d+)?|[a-zA-Z0-9._-]+)$/;
|
|
119
|
+
if (value.match(commitRegex) && (await (0, commitUtils_1.isGitCommit)(value))) {
|
|
120
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.commit;
|
|
121
|
+
}
|
|
122
|
+
else if (value.match(dateRegex)) {
|
|
123
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.date;
|
|
124
|
+
}
|
|
125
|
+
else if (semanticTagRegex.test(value) && (await (0, tagUtils_1.isGitTag)(value))) {
|
|
126
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.tag;
|
|
127
|
+
}
|
|
128
|
+
else if (refRegex.test(value)) {
|
|
129
|
+
if (await (0, branchUtils_1.isGitBranch)(value)) {
|
|
130
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.branch;
|
|
131
|
+
}
|
|
132
|
+
if (await (0, tagUtils_1.isGitTag)(value)) {
|
|
133
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.tag;
|
|
134
|
+
}
|
|
135
|
+
return ReferenceTypesEnum_1.ReferenceTypesEnum.ref;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=referenceUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referenceUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/referenceUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.getTags = getTags;
|
|
7
|
+
exports.isGitTag = isGitTag;
|
|
8
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const util_1 = __importDefault(require("util"));
|
|
11
|
+
const date_1 = require("../../utils/date");
|
|
12
|
+
const execPromise = util_1.default.promisify(child_process_1.exec);
|
|
13
|
+
const git = (0, simple_git_1.default)();
|
|
14
|
+
async function getTags(range) {
|
|
15
|
+
try {
|
|
16
|
+
// Include the commit hash, tag name, and commit date in the format string
|
|
17
|
+
const logCommand = `git log --pretty=format:"%H %ci %D" ${range}`;
|
|
18
|
+
const { stdout } = await execPromise(logCommand);
|
|
19
|
+
const tagRegex = /^([a-f0-9]{40})\s([\d-]+\s[\d:]+\s[+-]\d{4})\s.*tag: ([^,\s]+)/gm;
|
|
20
|
+
const tagsWithRefs = [];
|
|
21
|
+
let match;
|
|
22
|
+
while ((match = tagRegex.exec(stdout.trim())) !== null) {
|
|
23
|
+
const commitHash = match[1];
|
|
24
|
+
const commitDate = (0, date_1.formatISO8601)(match[2]);
|
|
25
|
+
const tagName = match[3];
|
|
26
|
+
tagsWithRefs.push({
|
|
27
|
+
name: tagName,
|
|
28
|
+
reference: commitHash,
|
|
29
|
+
date: commitDate,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return tagsWithRefs;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error("Error retrieving tags in range:", error);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Checks if the given value is a valid Git tag.
|
|
41
|
+
*
|
|
42
|
+
* @param value - The value to check against the list of Git tags.
|
|
43
|
+
* @returns A promise that resolves to `true` if the value is a valid Git tag, otherwise `false`.
|
|
44
|
+
*/
|
|
45
|
+
async function isGitTag(value) {
|
|
46
|
+
try {
|
|
47
|
+
const tags = await git.tags();
|
|
48
|
+
return tags.all.includes(value);
|
|
49
|
+
}
|
|
50
|
+
catch (_a) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=tagUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagUtils.js","sourceRoot":"","sources":["../../../../src/git/utils/tagUtils.ts"],"names":[],"mappings":";;;;;AASA,0BA4BC;AAOD,4BAOG;AAnDH,4DAAmC;AAEnC,iDAAqC;AACrC,gDAAwB;AACxB,2CAAiD;AACjD,MAAM,WAAW,GAAG,cAAI,CAAC,SAAS,CAAC,oBAAI,CAAC,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC;AAEjB,KAAK,UAAU,OAAO,CAAC,KAAa;IACzC,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,UAAU,GAAG,uCAAuC,KAAK,EAAE,CAAC;QAClE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,QAAQ,GACZ,kEAAkE,CAAC;QACrE,MAAM,YAAY,GAAe,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEzB,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AACD;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,KAAa;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const app_1 = require("./core/changelog/app");
|
|
8
|
+
const configManager_1 = require("./config/configManager");
|
|
9
|
+
// Read package.json
|
|
10
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../../package.json'), 'utf8'));
|
|
11
|
+
const program = new commander_1.Command();
|
|
12
|
+
program
|
|
13
|
+
.name(packageJson.name || 'changelog')
|
|
14
|
+
.description(packageJson.description || 'Changelog generator tool')
|
|
15
|
+
.version(packageJson.version || '0.0.0', '-v, --version', 'Show version number')
|
|
16
|
+
.helpOption('-h, --help', 'Show help information');
|
|
17
|
+
const validateOptions = (options) => {
|
|
18
|
+
const hasRange = !!options.range;
|
|
19
|
+
const hasPoint = !!options.point;
|
|
20
|
+
const hasFromOrTo = !!options.from || !!options.to;
|
|
21
|
+
if (hasRange && (hasPoint || hasFromOrTo)) {
|
|
22
|
+
console.error(`Error: The '--range' option cannot be used with '--from', '--to', or '--point'.`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
if (hasPoint && (hasRange || hasFromOrTo)) {
|
|
26
|
+
console.error(`Error: The '--point' option cannot be used with '--range', '--from', or '--to'.`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
if (hasFromOrTo && (hasRange || hasPoint)) {
|
|
30
|
+
console.error(`Error: '--from' and '--to' options cannot be used with '--range' or '--point'.`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
program // generate ai based conventional commit
|
|
35
|
+
.command('commit')
|
|
36
|
+
.description('Generate changelog')
|
|
37
|
+
.action(async (options) => {
|
|
38
|
+
try {
|
|
39
|
+
// await main(options);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
program
|
|
47
|
+
.command('changelog')
|
|
48
|
+
.description('Generate changelog')
|
|
49
|
+
.option('--from <commit | tag | branch| date | reference>', 'Specify starting reference')
|
|
50
|
+
.option('--to <commit | tag | branch| date | reference>', 'Specify ending reference')
|
|
51
|
+
.option('--point <commit | tag | branch| date | reference>', 'Specify a single reference')
|
|
52
|
+
.option('--range <commit | tag | branch| date | reference>', 'Specify reference range')
|
|
53
|
+
.option('--mergeAll [boolean]', 'Merge all changes into one output')
|
|
54
|
+
.option('--config [string]', 'Custom config file path')
|
|
55
|
+
.option('--template [string]', 'Custom template file path')
|
|
56
|
+
.option('--output [string]', 'Custom Output file path')
|
|
57
|
+
.option('--environment [string]', 'Specific environment to use')
|
|
58
|
+
// .option('--separateFiles [boolean]', 'District changelogs into own files')
|
|
59
|
+
.action(async (options) => {
|
|
60
|
+
validateOptions(options);
|
|
61
|
+
if (options.mergeAll === undefined) {
|
|
62
|
+
options.mergeAll = false;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const config = await (0, configManager_1.readConfig)(options === null || options === void 0 ? void 0 : options.config, options.environment);
|
|
66
|
+
await (0, app_1.run)(options, config);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
program
|
|
74
|
+
.command('version')
|
|
75
|
+
.description('Generate changelog')
|
|
76
|
+
.action(async (options) => {
|
|
77
|
+
try {
|
|
78
|
+
// await main(options);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
program.action(() => {
|
|
86
|
+
console.log('Please specify a command or use --help for usage information');
|
|
87
|
+
process.exit(1);
|
|
88
|
+
});
|
|
89
|
+
program.parse(process.argv);
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.main = main;
|
|
4
|
+
const app_1 = require("./core/app");
|
|
5
|
+
const configManager_1 = require("./config/configManager");
|
|
6
|
+
async function main(options) {
|
|
7
|
+
try {
|
|
8
|
+
const config = await (0, configManager_1.readConfig)(options === null || options === void 0 ? void 0 : options.config, options.environment);
|
|
9
|
+
await (0, app_1.run)(options, config);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAIA,oBAQC;AAXD,oCAAgC;AAChC,0DAAmD;AAE5C,KAAK,UAAU,IAAI,CAAC,OAAyB;IAChD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAU,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QACrE,MAAM,IAAA,SAAG,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChangeInformation = getChangeInformation;
|
|
4
|
+
exports.getRangeSummary = getRangeSummary;
|
|
5
|
+
exports.renderChangelogTemplate = renderChangelogTemplate;
|
|
6
|
+
const commitProcessor_1 = require("../git/commits/commitProcessor");
|
|
7
|
+
const context_1 = require("../git/context");
|
|
8
|
+
const commitUtils_1 = require("../git/utils/commitUtils");
|
|
9
|
+
const sections_1 = require("../sections");
|
|
10
|
+
const templateRenderer_1 = require("../../templates/templateRenderer");
|
|
11
|
+
const gitOperations_1 = require("../git/gitOperations");
|
|
12
|
+
const ReferenceTypesEnum_1 = require("../changes/types/ReferenceTypesEnum");
|
|
13
|
+
async function getChangeInformation(rangeInfo) {
|
|
14
|
+
var _a;
|
|
15
|
+
let header;
|
|
16
|
+
let summary;
|
|
17
|
+
let currentTag;
|
|
18
|
+
let changeCommitsCount = await (0, commitUtils_1.getCommitCount)(rangeInfo.resolvedRange);
|
|
19
|
+
currentTag = rangeInfo.latestTag;
|
|
20
|
+
header = (_a = currentTag === null || currentTag === void 0 ? void 0 : currentTag.name) !== null && _a !== void 0 ? _a : null;
|
|
21
|
+
if ((currentTag === null || currentTag === void 0 ? void 0 : currentTag.reference) != rangeInfo.resolvedTo.reference) {
|
|
22
|
+
const commitsAhead = await (0, commitUtils_1.getCommitCount)(`${currentTag === null || currentTag === void 0 ? void 0 : currentTag.reference}..${rangeInfo.resolvedTo.reference}`);
|
|
23
|
+
header += ` (+${commitsAhead} commits)`;
|
|
24
|
+
}
|
|
25
|
+
summary = 'Changes';
|
|
26
|
+
if (rangeInfo.resolvedFrom.value) {
|
|
27
|
+
switch (rangeInfo.resolvedFrom.type) {
|
|
28
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.commit:
|
|
29
|
+
summary += ` from commit ${rangeInfo.resolvedFrom.value}`;
|
|
30
|
+
break;
|
|
31
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.branch:
|
|
32
|
+
summary += ` from ${rangeInfo.resolvedFrom.value} branch`;
|
|
33
|
+
break;
|
|
34
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.date:
|
|
35
|
+
summary += ` after ${rangeInfo.resolvedFrom.value}`;
|
|
36
|
+
break;
|
|
37
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.tag:
|
|
38
|
+
summary += ` from ${rangeInfo.resolvedFrom.value} tag`;
|
|
39
|
+
break;
|
|
40
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.ref:
|
|
41
|
+
summary += ` from reference ${rangeInfo.resolvedFrom.value}`;
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
summary += ` from initial commit`;
|
|
49
|
+
}
|
|
50
|
+
if (rangeInfo.resolvedTo.value) {
|
|
51
|
+
switch (rangeInfo.resolvedTo.type) {
|
|
52
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.commit:
|
|
53
|
+
summary += ` to commit ${rangeInfo.resolvedTo.value}`;
|
|
54
|
+
break;
|
|
55
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.branch:
|
|
56
|
+
summary += ` to ${rangeInfo.resolvedTo.value} branch`;
|
|
57
|
+
break;
|
|
58
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.date:
|
|
59
|
+
summary += ` before ${rangeInfo.resolvedTo.value}`;
|
|
60
|
+
break;
|
|
61
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.tag:
|
|
62
|
+
summary += ` to ${rangeInfo.resolvedTo.value} tag`;
|
|
63
|
+
break;
|
|
64
|
+
case ReferenceTypesEnum_1.ReferenceTypesEnum.ref:
|
|
65
|
+
summary += ` to reference ${rangeInfo.resolvedTo.value}`;
|
|
66
|
+
break;
|
|
67
|
+
default:
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
summary += ` to HEAD`;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
header,
|
|
76
|
+
summary,
|
|
77
|
+
currentTag,
|
|
78
|
+
changeCommitsCount,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async function getRangeSummary(resolvedFrom, resolvedTo) {
|
|
82
|
+
const { resolvedRange, commitCount, tagList, latestTag } = await (0, gitOperations_1.collectGitInfo)(resolvedFrom, resolvedTo);
|
|
83
|
+
const rangeInfo = {
|
|
84
|
+
resolvedFrom,
|
|
85
|
+
resolvedTo,
|
|
86
|
+
resolvedRange,
|
|
87
|
+
commitCount,
|
|
88
|
+
tagList,
|
|
89
|
+
latestTag,
|
|
90
|
+
};
|
|
91
|
+
return rangeInfo;
|
|
92
|
+
}
|
|
93
|
+
async function renderChangelogTemplate(templatePath, options, config) {
|
|
94
|
+
const date = new Date().toISOString().split('T')[0];
|
|
95
|
+
const repository = await (0, context_1.getCurrentRepositoryAsync)();
|
|
96
|
+
const { resolvedFrom, resolvedTo } = await (0, gitOperations_1.resolveGitReferences)(options);
|
|
97
|
+
const rangeInfo = await getRangeSummary(resolvedFrom, resolvedTo);
|
|
98
|
+
let fileData = '';
|
|
99
|
+
if (options === null || options === void 0 ? void 0 : options.mergeAll) {
|
|
100
|
+
const context = await getContext(rangeInfo, config, date, repository);
|
|
101
|
+
fileData = await (0, templateRenderer_1.renderTemplate)(templatePath, options === null || options === void 0 ? void 0 : options.environment, context);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
for (let index = 0; index < rangeInfo.tagList.length; index++) {
|
|
105
|
+
const { resolvedFrom, resolvedTo } = await (0, gitOperations_1.resolveGitReferencesFromRangeInfo)(rangeInfo, index);
|
|
106
|
+
const newRangeInfo = await getRangeSummary(resolvedFrom, resolvedTo);
|
|
107
|
+
const context = await getContext(newRangeInfo, config, date, repository);
|
|
108
|
+
const renderedData = await (0, templateRenderer_1.renderTemplate)(templatePath, options === null || options === void 0 ? void 0 : options.environment, context);
|
|
109
|
+
fileData += `\n\n${renderedData}`;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return fileData;
|
|
113
|
+
}
|
|
114
|
+
async function getContext(rangeInfo, config, date, repository) {
|
|
115
|
+
const changeInfo = await getChangeInformation(rangeInfo);
|
|
116
|
+
const commits = await (0, commitProcessor_1.listCommitsAsync)(rangeInfo.resolvedRange, config);
|
|
117
|
+
const sections = (0, sections_1.createSections)(commits, config);
|
|
118
|
+
const context = {
|
|
119
|
+
date,
|
|
120
|
+
...rangeInfo,
|
|
121
|
+
changeInfo,
|
|
122
|
+
repository,
|
|
123
|
+
commits,
|
|
124
|
+
sections,
|
|
125
|
+
config,
|
|
126
|
+
};
|
|
127
|
+
return context;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=templateOperations.js.map
|