binary-collections 2.0.9 → 2.0.10
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/binaries/binary-executor.cjs +43 -0
- package/{bin → binaries}/clean-nodemodule +0 -0
- package/binaries/clean-nodemodule.cjs +43 -0
- package/binaries/clean-nodemodule.cmd +4 -0
- package/{bin → binaries}/clean-nodemodules +0 -0
- package/binaries/clean-nodemodules.cjs +43 -0
- package/binaries/clean-nodemodules.cmd +5 -0
- package/{bin → binaries}/dev +0 -0
- package/binaries/dev.cjs +43 -0
- package/{bin → binaries}/empty +0 -0
- package/binaries/empty.cjs +43 -0
- package/{bin → binaries}/git-reduce-size +0 -0
- package/binaries/git-reduce-size.cjs +43 -0
- package/binaries/javakill.cjs +43 -0
- package/{bin → binaries}/javakill.cmd +0 -0
- package/{bin → binaries}/kill-process +0 -0
- package/binaries/kill-process.cjs +43 -0
- package/binaries/nodekill.cjs +43 -0
- package/{bin → binaries}/nodekill.ps1 +0 -0
- package/{bin → binaries}/prod +0 -0
- package/binaries/prod.cjs +43 -0
- package/{bin → binaries}/rmfind +0 -0
- package/binaries/rmfind.cjs +43 -0
- package/{bin → binaries}/rmx +0 -0
- package/binaries/rmx.cjs +43 -0
- package/{bin → binaries}/submodule-token +0 -0
- package/binaries/submodule-token.cjs +43 -0
- package/docs-src/clean-github-actions-caches.md +26 -0
- package/docs-src/free-chatgpt.md +26 -0
- package/lib/binary-collections-config.cjs +3 -2
- package/lib/binary-collections-config.mjs +2 -2
- package/lib/binary-collections.cjs +452 -105
- package/lib/binary-collections.mjs +131 -84
- package/lib/changelog.cjs +3 -3
- package/lib/changelog.mjs +177 -171
- package/lib/chunk-4EWQC6GZ.mjs +382 -0
- package/lib/chunk-4ZI7BQKQ.mjs +381 -0
- package/lib/chunk-5J2BEPY5.mjs +83 -0
- package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
- package/lib/chunk-6HHJRKFB.mjs +59 -0
- package/lib/chunk-6S4NXESK.mjs +26 -0
- package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
- package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
- package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
- package/lib/chunk-AGZYRDC2.mjs +323 -0
- package/lib/{chunk-VVEZVNIV.mjs → chunk-AI4CVPJ7.mjs} +6 -6
- package/lib/chunk-BDCHCWHD.mjs +136 -0
- package/lib/chunk-BEZKJ25G.mjs +140 -0
- package/lib/chunk-DI5MDPSN.mjs +386 -0
- package/lib/{chunk-ONIBBBQ3.mjs → chunk-E6FDDAOO.mjs} +4 -3
- package/lib/chunk-FKI7IEB5.mjs +172 -0
- package/lib/chunk-GJTGHXRA.mjs +356 -0
- package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
- package/lib/chunk-HMRMTYZM.mjs +40 -0
- package/lib/chunk-HN52G2YL.mjs +305 -0
- package/lib/chunk-HO6GHCOB.mjs +385 -0
- package/lib/chunk-LEM5OMRP.mjs +384 -0
- package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
- package/lib/chunk-O6SWBEOQ.mjs +81 -0
- package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
- package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
- package/lib/chunk-RCP7DHVY.mjs +190 -0
- package/lib/chunk-SBNDSKG5.mjs +136 -0
- package/lib/chunk-U6SO4QEV.mjs +320 -0
- package/lib/{chunk-APBWENF6.mjs → chunk-V3N3JEUF.mjs} +3 -3
- package/lib/chunk-XD6BJK6Q.mjs +351 -0
- package/lib/chunk-XVBFFVCJ.mjs +209 -0
- package/lib/chunk-YXSFGA2D.mjs +383 -0
- package/lib/clean-github-actions-caches.cjs +243 -148
- package/lib/clean-github-actions-caches.mjs +3 -2
- package/lib/del-gradle.cjs +2 -2
- package/lib/del-gradle.js +1 -1
- package/lib/del-gradle.mjs +2 -2
- package/lib/del-node-modules.cjs +2 -2
- package/lib/del-node-modules.js +1 -1
- package/lib/del-node-modules.mjs +2 -2
- package/lib/del-ps.cjs +29 -8
- package/lib/del-ps.js +2 -2
- package/lib/del-ps.mjs +7 -5
- package/lib/del-yarn-caches.cjs +26 -5
- package/lib/del-yarn-caches.js +38 -3
- package/lib/del-yarn-caches.mjs +6 -6
- package/lib/find-node-modules-cli.cjs +5 -4
- package/lib/find-node-modules-cli.js +1 -1
- package/lib/find-node-modules-cli.mjs +2 -2
- package/lib/find-node-modules.cjs +4 -3
- package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
- package/lib/find-node-modules.mjs +2 -2
- package/lib/free-chatgpt.cjs +548 -0
- package/lib/free-chatgpt.js +51 -0
- package/lib/free-chatgpt.mjs +50 -0
- package/lib/git/gitattributes.cjs +1 -1
- package/lib/git/{gitattributes.d.mts → gitattributes.d.cts} +5 -7
- package/lib/git/gitattributes.mjs +2 -2
- package/lib/git/line-endings.cjs +297 -64
- package/lib/git/line-endings.mjs +4 -4
- package/lib/git/normalize.cjs +26 -36
- package/lib/git/normalize.mjs +2 -2
- package/lib/git/permissions.cjs +77 -11
- package/lib/git/permissions.mjs +3 -3
- package/lib/git/pull-strategy.cjs +76 -9
- package/lib/git/pull-strategy.mjs +3 -3
- package/lib/git/user-config.cjs +266 -83
- package/lib/git/user-config.mjs +4 -4
- package/lib/git/utils.cjs +40 -60
- package/lib/git/utils.mjs +2 -2
- package/lib/git-diff-cli.cjs +651 -0
- package/lib/git-diff-cli.d.ts +1 -0
- package/lib/git-diff-cli.js +15 -0
- package/lib/git-diff-cli.mjs +16 -0
- package/lib/git-diff.cjs +657 -58
- package/lib/git-diff.d.ts +38 -83
- package/lib/git-diff.js +152 -0
- package/lib/git-diff.mjs +23 -85
- package/lib/git-fix.cjs +685 -97
- package/lib/git-fix.mjs +14 -13
- package/lib/git-purge.cjs +3 -3
- package/lib/git-purge.d.cts +1 -0
- package/lib/git-purge.mjs +43 -37
- package/lib/index.cjs +7 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -5
- package/lib/index.mjs +4 -4
- package/lib/npm-run-series.cjs +3 -3
- package/lib/npm-run-series.mjs +42 -36
- package/lib/package-resolutions-updater.cjs +5 -5
- package/lib/package-resolutions-updater.mjs +266 -309
- package/lib/print-directory-tree.cjs +275 -210
- package/lib/print-directory-tree.mjs +2 -2
- package/lib/ps/connected-domain.cjs +25 -2
- package/lib/ps/connected-domain.d.ts +10 -2
- package/lib/ps/connected-domain.js +5 -2
- package/lib/ps/connected-domain.mjs +8 -4
- package/lib/ps/index.cjs +345 -322
- package/lib/ps/index.d.mjs +1 -1
- package/lib/ps/index.js +1 -1
- package/lib/ps/index.mjs +179 -182
- package/lib/ps/isWin.cjs +24 -1
- package/lib/ps/isWin.d.ts +1 -1
- package/lib/ps/isWin.js +3 -1
- package/lib/ps/isWin.mjs +8 -4
- package/lib/ps/table-parser.cjs +167 -159
- package/lib/ps/table-parser.d.ts +5 -0
- package/lib/ps/table-parser.js +10 -4
- package/lib/ps/table-parser.mjs +9 -5
- package/lib/remove-module.cjs +262 -0
- package/lib/remove-module.d.mts +1 -0
- package/lib/remove-module.mjs +111 -0
- package/lib/rmpath.cjs +274 -0
- package/lib/rmpath.d.mts +3 -0
- package/lib/rmpath.mjs +108 -0
- package/lib/submodule-install.cjs +264 -86
- package/lib/submodule-install.mjs +51 -3
- package/lib/submodule-remove-cli.cjs +103 -0
- package/lib/submodule-remove-cli.d.ts +1 -0
- package/lib/submodule-remove-cli.js +31 -0
- package/lib/submodule-remove-cli.mjs +28 -0
- package/lib/submodule-remove.cjs +43 -0
- package/lib/submodule-remove.d.cts +2 -0
- package/lib/submodule-remove.mjs +6 -0
- package/lib/utils/chatgpt.cjs +383 -0
- package/lib/utils/chatgpt.d.ts +31 -0
- package/lib/utils/chatgpt.js +541 -0
- package/lib/utils/chatgpt.mjs +8 -0
- package/lib/{utils.cjs → utils/index.cjs} +1 -1
- package/lib/{utils.mjs → utils/index.mjs} +2 -2
- package/lib/yarn-reinstall.cjs +172 -38
- package/lib/yarn-reinstall.mjs +2 -2
- package/package.json +91 -71
- package/readme.md +43 -69
- package/releases/readme.md +36 -0
- package/test/README.md +101 -0
- package/test/package.json +2 -1
- package/test-project/readme.md +26 -0
- package/tmp/test-repo/README.md +35 -0
- package/tmp/test-repo/package.json +1 -1
- package/tmp/typedoc/readme.md +320 -0
- package/bin/bash-dummy +0 -56
- package/bin/bash-dummy.cmd +0 -25
- package/bin/dir-tree.cmd +0 -7
- package/bin/git-diff +0 -4
- package/bin/git-diff.cmd +0 -7
- package/bin/git-fix +0 -36
- package/bin/git-fix.cmd +0 -7
- package/bin/rmpath +0 -70
- package/bin/submodule-install.txt +0 -118
- package/bin/submodule-remove +0 -46
- package/bin/submodule.txt +0 -172
- package/lib/binary-collections-config.d.mts +0 -18
- package/lib/binary-collections-config.js +0 -39
- package/lib/binary-collections.d.mts +0 -137
- package/lib/binary-collections.d.ts +0 -137
- package/lib/changelog.d.mts +0 -2
- package/lib/changelog.js +0 -226
- package/lib/chunk-DPKAJKFO.mjs +0 -171
- package/lib/chunk-G3THLIDT.mjs +0 -200
- package/lib/chunk-W3ENOM53.mjs +0 -18
- package/lib/clean-github-actions-caches.d.mts +0 -169
- package/lib/clean-github-actions-caches.d.ts +0 -169
- package/lib/del-gradle.d.mts +0 -2
- package/lib/del-node-modules.d.mts +0 -2
- package/lib/del-ps.d.mts +0 -2
- package/lib/del-yarn-caches.d.mts +0 -2
- package/lib/find-node-modules-cli.d.mts +0 -1
- package/lib/find-node-modules.d.mts +0 -13
- package/lib/find-node-modules.js +0 -53
- package/lib/git/line-endings.d.mts +0 -83
- package/lib/git/line-endings.d.ts +0 -83
- package/lib/git/normalize.d.mts +0 -43
- package/lib/git/normalize.d.ts +0 -43
- package/lib/git/permissions.d.mts +0 -17
- package/lib/git/permissions.d.ts +0 -17
- package/lib/git/pull-strategy.d.mts +0 -15
- package/lib/git/pull-strategy.d.ts +0 -15
- package/lib/git/user-config.d.mts +0 -105
- package/lib/git/user-config.d.ts +0 -105
- package/lib/git/utils.d.mts +0 -69
- package/lib/git/utils.d.ts +0 -69
- package/lib/git-diff.d.mts +0 -84
- package/lib/git-fix.d.mts +0 -141
- package/lib/git-fix.d.ts +0 -141
- package/lib/git-purge.d.mts +0 -2
- package/lib/git-purge.js +0 -59
- package/lib/index.d.mts +0 -1
- package/lib/npm-run-series.d.mts +0 -1
- package/lib/npm-run-series.d.ts +0 -2
- package/lib/npm-run-series.js +0 -86
- package/lib/package-resolutions-updater.d.ts +0 -352
- package/lib/print-directory-tree.d.mts +0 -234
- package/lib/print-directory-tree.d.ts +0 -234
- package/lib/ps/connected-domain.d.mts +0 -3
- package/lib/ps/index.d.d.mts +0 -26
- package/lib/ps/index.d.d.ts +0 -26
- package/lib/ps/index.d.mts +0 -26
- package/lib/ps/isWin.d.mts +0 -3
- package/lib/ps/table-parser.d.mts +0 -3
- package/lib/submodule-install.d.mts +0 -121
- package/lib/submodule-install.d.ts +0 -121
- package/lib/utils.d.mts +0 -40
- package/lib/utils.js +0 -181
- package/lib/yarn-reinstall.d.mts +0 -49
- package/lib/yarn-reinstall.d.ts +0 -49
- package/src/package-resolutions-updater.mjs +0 -350
- package/src/print-directory-tree.cjs +0 -234
- package/src/ps/index.js +0 -286
- package/src/yarn-reinstall.cjs +0 -49
- /package/{bin → binaries}/nodekill +0 -0
- /package/{bin → binaries}/nodekill.cmd +0 -0
- /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
- /package/lib/{changelog.d.ts → changelog.d.cts} +0 -0
- /package/lib/{git-purge.d.ts → free-chatgpt.d.ts} +0 -0
- /package/lib/{git-diff.d.cts → npm-run-series.d.cts} +0 -0
- /package/lib/{utils.d.ts → utils/index.d.cts} +0 -0
package/lib/changelog.mjs
CHANGED
|
@@ -1,199 +1,205 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
require_utils
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V3N3JEUF.mjs";
|
|
5
5
|
import {
|
|
6
|
+
__commonJS,
|
|
6
7
|
__dirname,
|
|
7
8
|
__require,
|
|
8
9
|
init_esm_shims
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QQ4A6DLD.mjs";
|
|
10
11
|
|
|
11
|
-
// src/changelog.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
// src/changelog.cjs
|
|
13
|
+
var require_changelog = __commonJS({
|
|
14
|
+
"src/changelog.cjs"() {
|
|
15
|
+
init_esm_shims();
|
|
16
|
+
var fs = __require("fs");
|
|
17
|
+
var path = __require("path");
|
|
18
|
+
var { EOL } = __require("os");
|
|
19
|
+
var { getArgs } = require_utils();
|
|
20
|
+
var spawn = __require("child_process").spawn;
|
|
21
|
+
var pkgPath = path.join(process.cwd(), "package.json");
|
|
22
|
+
if (!fs.existsSync(pkgPath)) {
|
|
23
|
+
throw new Error(`package.json not found at ${pkgPath}`);
|
|
24
|
+
}
|
|
25
|
+
var pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
26
|
+
var args = getArgs();
|
|
27
|
+
if (args.help || args.h) {
|
|
28
|
+
showHelp();
|
|
29
|
+
}
|
|
30
|
+
function showHelp() {
|
|
31
|
+
console.log(`
|
|
29
32
|
Usage: node changelog.js [options]
|
|
30
33
|
`);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
console.log(`Options:`);
|
|
35
|
+
console.log(` --help, -h Show this help message and exit`);
|
|
36
|
+
console.log(`
|
|
34
37
|
Description:`);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
console.log(` Generates a CHANGELOG.md file from git commit history.`);
|
|
39
|
+
console.log(` - Looks for version bumps and groups commits by version.`);
|
|
40
|
+
console.log(` - Skips dependabot and irrelevant commits.`);
|
|
41
|
+
console.log(` - Outputs the original git log to tmp/original.md for reference.`);
|
|
42
|
+
console.log(`
|
|
40
43
|
Example:`);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
var gitExec = (command) => new Promise((resolve, reject) => {
|
|
45
|
-
const thread = spawn("git", command, { stdio: ["inherit", "pipe", "pipe"] });
|
|
46
|
-
const stdOut = [];
|
|
47
|
-
const stdErr = [];
|
|
48
|
-
thread.stdout.on("data", (data) => {
|
|
49
|
-
stdOut.push(data.toString("utf8"));
|
|
50
|
-
});
|
|
51
|
-
thread.stderr.on("data", (data) => {
|
|
52
|
-
stdErr.push(data.toString("utf8"));
|
|
53
|
-
});
|
|
54
|
-
thread.on("close", () => {
|
|
55
|
-
if (stdErr.length) {
|
|
56
|
-
reject(stdErr.join(""));
|
|
57
|
-
return;
|
|
44
|
+
console.log(` node changelog.js`);
|
|
45
|
+
console.log(``);
|
|
58
46
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
47
|
+
var gitExec = (command) => new Promise((resolve, reject) => {
|
|
48
|
+
const thread = spawn("git", command, { stdio: ["inherit", "pipe", "pipe"] });
|
|
49
|
+
const stdOut = [];
|
|
50
|
+
const stdErr = [];
|
|
51
|
+
thread.stdout.on("data", (data) => {
|
|
52
|
+
stdOut.push(data.toString("utf8"));
|
|
53
|
+
});
|
|
54
|
+
thread.stderr.on("data", (data) => {
|
|
55
|
+
stdErr.push(data.toString("utf8"));
|
|
56
|
+
});
|
|
57
|
+
thread.on("close", () => {
|
|
58
|
+
if (stdErr.length) {
|
|
59
|
+
reject(stdErr.join(""));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
resolve(stdOut.join());
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
function extractVersions(str) {
|
|
66
|
+
const regex = /\bv?(\d+\.\d+\.\d+)\b/g;
|
|
67
|
+
const matches = [];
|
|
68
|
+
let match;
|
|
69
|
+
while ((match = regex.exec(str)) !== null) {
|
|
70
|
+
matches.push(match[1]);
|
|
71
|
+
}
|
|
72
|
+
return Array.from(new Set(matches));
|
|
73
|
+
}
|
|
74
|
+
(async () => {
|
|
75
|
+
const log = await gitExec([
|
|
76
|
+
"log",
|
|
77
|
+
"--reverse",
|
|
78
|
+
`--pretty=format:"=!=%h !|! %ad !|! %an !|! %cn !|! %s !|! %B !|! %d=!="`,
|
|
79
|
+
`--date=format:"%Y-%m-%d %H:%M:%S"`
|
|
80
|
+
]);
|
|
81
|
+
let markdown = `## CHANGELOG of ${pkg.name}
|
|
79
82
|
|
|
80
83
|
`;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
if (/^\d+\.\d+\.\d+$/.test(o.summary.trim())) {
|
|
104
|
-
isBumped = true;
|
|
105
|
-
}
|
|
106
|
-
if (o.summary.trim().startsWith("fix:")) {
|
|
107
|
-
isBumped = false;
|
|
108
|
-
}
|
|
109
|
-
if (isBumped && !extractVersions(o.summary).length > 0) isBumped = false;
|
|
110
|
-
if (o.hash && o.date && o.message) {
|
|
111
|
-
if (o.authorName === "dependabot[bot]") {
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (/^chore\(tarball\): update|merge pull request|merge branch|^migrate from|^update$|^update build from https?:\/\//i.test(
|
|
115
|
-
o.message
|
|
116
|
-
)) {
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
if (/^Build\s+\w{3}\s+\w{3}\s+\d{1,2}\s+\d{2}:\d{2}:\d{2}\s+\w+\s+\d{4}$/i.test(o.summary)) {
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if (/initial commit/i.test(o.message)) {
|
|
123
|
-
versionsCommits["0.0.0"] = [];
|
|
124
|
-
currentVersionCommit = "0.0.0";
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
if (isBumped) {
|
|
128
|
-
console.log(`Detected version bump: ${o.summary}`);
|
|
129
|
-
const v = extractVersions(o.message).join(", ");
|
|
130
|
-
versionsCommits[v] = [];
|
|
131
|
-
currentVersionCommit = v;
|
|
132
|
-
} else {
|
|
133
|
-
if (!currentVersionCommit) {
|
|
134
|
-
throw new Error(`No current version commit set for message: ${o.message} (hash: ${o.hash})`);
|
|
84
|
+
const repo = await gitExec(["remote", "get-url", "origin"]);
|
|
85
|
+
const repoUrl = repo.trim().replace(/\.git$/, "");
|
|
86
|
+
console.log(`Repository URL: ${repoUrl}`);
|
|
87
|
+
const matches = [...log.matchAll(/=!=(.*?)(?:=!=|=!=,)/gs)];
|
|
88
|
+
const results = matches.map((m) => m[1].trim());
|
|
89
|
+
const versionsCommits = {};
|
|
90
|
+
let currentVersionCommit = "";
|
|
91
|
+
for (const str of results) {
|
|
92
|
+
const splitx = str.split("!|!").map((s) => s.trim());
|
|
93
|
+
const o = {
|
|
94
|
+
hash: splitx[0] ? splitx[0] : "",
|
|
95
|
+
date: splitx[1] ? splitx[1].replace(/^"|"$/g, "") : "",
|
|
96
|
+
authorName: splitx[2] ? splitx[2] : "",
|
|
97
|
+
committerName: splitx[3] ? splitx[3] : "",
|
|
98
|
+
summary: splitx[4] ? splitx[4] : "",
|
|
99
|
+
message: splitx[5] ? splitx[5] : "",
|
|
100
|
+
ref: splitx[6] ? splitx[6] : ""
|
|
101
|
+
};
|
|
102
|
+
let isBumped = /chore\(bump\)|chore: release/i.test(o.summary) || /release/i.test(o.summary) || /tag: v/i.test(o.summary);
|
|
103
|
+
if (o.summary.trim().startsWith("v")) {
|
|
104
|
+
isBumped = true;
|
|
135
105
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
106
|
+
if (/^\d+\.\d+\.\d+$/.test(o.summary.trim())) {
|
|
107
|
+
isBumped = true;
|
|
108
|
+
}
|
|
109
|
+
if (o.summary.trim().startsWith("fix:")) {
|
|
110
|
+
isBumped = false;
|
|
111
|
+
}
|
|
112
|
+
if (isBumped && !extractVersions(o.summary).length > 0) isBumped = false;
|
|
113
|
+
if (o.hash && o.date && o.message) {
|
|
114
|
+
if (o.authorName === "dependabot[bot]") {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (/^chore\(tarball\): update|merge pull request|merge branch|^migrate from|^update$|^update build from https?:\/\//i.test(
|
|
118
|
+
o.message
|
|
119
|
+
)) {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (/^Build\s+\w{3}\s+\w{3}\s+\d{1,2}\s+\d{2}:\d{2}:\d{2}\s+\w+\s+\d{4}$/i.test(o.summary)) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (/initial commit/i.test(o.message)) {
|
|
126
|
+
versionsCommits["0.0.0"] = [];
|
|
127
|
+
currentVersionCommit = "0.0.0";
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (isBumped) {
|
|
131
|
+
console.log(`Detected version bump: ${o.summary}`);
|
|
132
|
+
const v = extractVersions(o.message).join(", ");
|
|
133
|
+
versionsCommits[v] = [];
|
|
134
|
+
currentVersionCommit = v;
|
|
135
|
+
} else {
|
|
136
|
+
if (!currentVersionCommit) {
|
|
137
|
+
throw new Error(`No current version commit set for message: ${o.message} (hash: ${o.hash})`);
|
|
138
|
+
}
|
|
139
|
+
const cleanMsg = o.message.replace(/["'\s,]+$/g, "");
|
|
140
|
+
const commitsArr = versionsCommits[currentVersionCommit];
|
|
141
|
+
const prevIdx = commitsArr.findIndex((entry) => {
|
|
142
|
+
const parts = entry.split(/\r?\n/);
|
|
143
|
+
let msgLine = "";
|
|
144
|
+
for (let i = 1; i < parts.length; i++) {
|
|
145
|
+
if (parts[i].trim() !== "") {
|
|
146
|
+
msgLine = parts[i].trim();
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return msgLine === cleanMsg;
|
|
151
|
+
});
|
|
152
|
+
let newEntry;
|
|
153
|
+
if (cleanMsg.includes("\n")) {
|
|
154
|
+
newEntry = `- [ _${o.date}_ ] [${o.hash}](<${repoUrl}/commit/${o.hash}>)` + EOL + EOL + `${cleanMsg}`;
|
|
155
|
+
} else {
|
|
156
|
+
newEntry = `- [ _${o.date}_ ] [${o.hash}](<${repoUrl}/commit/${o.hash}>) ${cleanMsg}`;
|
|
157
|
+
}
|
|
158
|
+
if (prevIdx !== -1) {
|
|
159
|
+
commitsArr[prevIdx] = newEntry;
|
|
160
|
+
} else {
|
|
161
|
+
commitsArr.push(newEntry);
|
|
145
162
|
}
|
|
146
163
|
}
|
|
147
|
-
return msgLine === cleanMsg;
|
|
148
|
-
});
|
|
149
|
-
let newEntry;
|
|
150
|
-
if (cleanMsg.includes("\n")) {
|
|
151
|
-
newEntry = `- [ _${o.date}_ ] [${o.hash}](<${repoUrl}/commit/${o.hash}>)` + EOL + EOL + `${cleanMsg}`;
|
|
152
|
-
} else {
|
|
153
|
-
newEntry = `- [ _${o.date}_ ] [${o.hash}](<${repoUrl}/commit/${o.hash}>) ${cleanMsg}`;
|
|
154
164
|
}
|
|
155
|
-
if (prevIdx !== -1) {
|
|
156
|
-
commitsArr[prevIdx] = newEntry;
|
|
157
|
-
} else {
|
|
158
|
-
commitsArr.push(newEntry);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
const versions = Object.keys(versionsCommits).sort((a, b) => {
|
|
164
|
-
const aParts = a.split(".").map(Number);
|
|
165
|
-
const bParts = b.split(".").map(Number);
|
|
166
|
-
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
167
|
-
const aPart = aParts[i] || 0;
|
|
168
|
-
const bPart = bParts[i] || 0;
|
|
169
|
-
if (aPart !== bPart) {
|
|
170
|
-
return bPart - aPart;
|
|
171
165
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
166
|
+
const versions = Object.keys(versionsCommits).sort((a, b) => {
|
|
167
|
+
const aParts = a.split(".").map(Number);
|
|
168
|
+
const bParts = b.split(".").map(Number);
|
|
169
|
+
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
170
|
+
const aPart = aParts[i] || 0;
|
|
171
|
+
const bPart = bParts[i] || 0;
|
|
172
|
+
if (aPart !== bPart) {
|
|
173
|
+
return bPart - aPart;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return 0;
|
|
177
|
+
});
|
|
178
|
+
for (const version of versions) {
|
|
179
|
+
if (versionsCommits[version].length > 0) {
|
|
180
|
+
markdown += `
|
|
178
181
|
### ${version}
|
|
179
182
|
|
|
180
183
|
`;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
184
|
+
markdown += versionsCommits[version].map((str) => {
|
|
185
|
+
const lines = str.trim().split(/\r?\n/);
|
|
186
|
+
return [lines[0], ...lines.slice(1).map((line) => " " + line)].join(EOL);
|
|
187
|
+
}).join(EOL);
|
|
188
|
+
} else {
|
|
189
|
+
markdown += `
|
|
187
190
|
### ${version}
|
|
188
191
|
|
|
189
192
|
`;
|
|
190
|
-
|
|
193
|
+
markdown += `- No changes recorded for this version.
|
|
191
194
|
`;
|
|
192
|
-
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
fs.mkdirSync(path.join(__dirname, "tmp"), { recursive: true });
|
|
198
|
+
fs.writeFileSync(path.join(__dirname, "tmp/original.md"), log);
|
|
199
|
+
fs.writeFileSync(path.join(__dirname, "CHANGELOG.md"), markdown);
|
|
200
|
+
console.log(`Original log written to tmp/original.md`);
|
|
201
|
+
console.log(`Changelog updated successfully. You can find it at CHANGELOG.md`);
|
|
202
|
+
})();
|
|
193
203
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
fs.writeFileSync(path.join(__dirname, "CHANGELOG.md"), markdown);
|
|
197
|
-
console.log(`Original log written to tmp/original.md`);
|
|
198
|
-
console.log(`Changelog updated successfully. You can find it at CHANGELOG.md`);
|
|
199
|
-
})();
|
|
204
|
+
});
|
|
205
|
+
export default require_changelog();
|