@aklinker1/zero-changelog 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +158 -0
- package/dist/changelog-section.d.mts +7 -0
- package/dist/changelog-section.mjs +1 -0
- package/dist/conventional-commit.d.mts +28 -0
- package/dist/conventional-commit.mjs +1 -0
- package/dist/create-github-release.d.mts +15 -0
- package/dist/create-github-release.mjs +61 -0
- package/dist/detect-version-bump.d.mts +13 -0
- package/dist/detect-version-bump.mjs +43 -0
- package/dist/find-previous-tag-Cj2oZAty.mjs +27 -0
- package/dist/find-previous-tag.d.mts +10 -0
- package/dist/find-previous-tag.mjs +2 -0
- package/dist/get-current-version.d.mts +4 -0
- package/dist/get-current-version.mjs +24 -0
- package/dist/get-github-release.d.mts +15 -0
- package/dist/get-github-release.mjs +11 -0
- package/dist/get-github-repo.d.mts +4 -0
- package/dist/get-github-repo.mjs +20 -0
- package/dist/get-release-notes.d.mts +6 -0
- package/dist/get-release-notes.mjs +37 -0
- package/dist/git-commit.d.mts +13 -0
- package/dist/git-commit.mjs +1 -0
- package/dist/list-commits-since-DycWgHTi.mjs +44 -0
- package/dist/list-commits-since.d.mts +11 -0
- package/dist/list-commits-since.mjs +2 -0
- package/dist/parse-changelog.d.mts +6 -0
- package/dist/parse-changelog.mjs +23 -0
- package/dist/parse-commit.d.mts +8 -0
- package/dist/parse-commit.mjs +34 -0
- package/dist/parse-commits.d.mts +8 -0
- package/dist/parse-commits.mjs +8 -0
- package/dist/release.d.mts +384 -0
- package/dist/release.mjs +125 -0
- package/dist/semver-type--Q1lYCiZ.d.mts +11 -0
- package/dist/semver-type-map.d.mts +8 -0
- package/dist/semver-type-map.mjs +1 -0
- package/dist/semver-type.d.mts +2 -0
- package/dist/semver-type.mjs +1 -0
- package/dist/semver-types/aklinker1.d.mts +6 -0
- package/dist/semver-types/aklinker1.mjs +38 -0
- package/dist/semver.d.mts +37 -0
- package/dist/semver.mjs +142 -0
- package/dist/serialize-changelog.d.mts +6 -0
- package/dist/serialize-changelog.mjs +28 -0
- package/dist/summarize-unreleased-commits.d.mts +50 -0
- package/dist/summarize-unreleased-commits.mjs +30 -0
- package/dist/sync-release.d.mts +4 -0
- package/dist/sync-release.mjs +6 -0
- package/dist/sync-releases.d.mts +4 -0
- package/dist/sync-releases.mjs +6 -0
- package/dist/update-version-files.d.mts +4 -0
- package/dist/update-version-files.mjs +26 -0
- package/dist/utils-BO6byvK5.mjs +22 -0
- package/dist/version-regex-C82OGsTC.mjs +23 -0
- package/dist/wait-for-child-process-lyAoE4WE.mjs +25 -0
- package/package.json +134 -0
package/dist/semver.mjs
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
//#region src/semver.ts
|
|
2
|
+
const STABLE_REGEX = /^(?<major>[1-9]\d*)\.(?<minor>\d+)\.(?<patch>\d+)$/;
|
|
3
|
+
const UNSTABLE_REGEX = /^0\.(?<minor>\d+)\.(?<patch>\d+)$/;
|
|
4
|
+
const PRERELEASE_REGEX = /^(?<major>[1-9]\d*)\.0\.0-(?<prereleaseType>(alpha|beta|rc))\.(?<prerelease>\d+)$/;
|
|
5
|
+
const STABLE_TYPE = Symbol("stable");
|
|
6
|
+
function parseSemver(version) {
|
|
7
|
+
const stable = version.match(STABLE_REGEX)?.groups;
|
|
8
|
+
if (stable) return createStableVersion(parseIntOrThrow(stable.major), parseIntOrThrow(stable.minor), parseIntOrThrow(stable.patch));
|
|
9
|
+
const unstable = version.match(UNSTABLE_REGEX)?.groups;
|
|
10
|
+
if (unstable) return createUnstableVersion(parseIntOrThrow(unstable.minor), parseIntOrThrow(unstable.patch));
|
|
11
|
+
const prerelease = version.match(PRERELEASE_REGEX)?.groups;
|
|
12
|
+
if (prerelease) return createPrereleaseVersion(parseIntOrThrow(prerelease.major), parsePrereleaseTypeOrThrow(prerelease.prereleaseType), parseIntOrThrow(prerelease.prerelease));
|
|
13
|
+
throw Error(`Unsupported version format: "${version}". See docs: https://github.com/aklinker1/zero-changelog#semver`);
|
|
14
|
+
}
|
|
15
|
+
function createStableVersion(major, minor, patch) {
|
|
16
|
+
const bump = (by) => {
|
|
17
|
+
switch (by) {
|
|
18
|
+
case "major": return `${major + 1}.0.0`;
|
|
19
|
+
case "minor": return `${major}.${minor + 1}.0`;
|
|
20
|
+
case "patch": return `${major}.${minor}.${patch + 1}`;
|
|
21
|
+
default: return validateGreaterVersion(version, by);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const compare = (other) => {
|
|
25
|
+
if (isUnstable(other)) return 1;
|
|
26
|
+
if (isPrerelease(other)) return major >= other.major ? 1 : -1;
|
|
27
|
+
if (!isStable(other)) throw Error("Unknown version type: " + other.type);
|
|
28
|
+
if (major > other.major) return 1;
|
|
29
|
+
if (major < other.major) return -1;
|
|
30
|
+
if (minor > other.minor) return 1;
|
|
31
|
+
if (minor < other.minor) return -1;
|
|
32
|
+
if (patch > other.patch) return 1;
|
|
33
|
+
if (patch < other.patch) return -1;
|
|
34
|
+
return 0;
|
|
35
|
+
};
|
|
36
|
+
const version = {
|
|
37
|
+
type: STABLE_TYPE,
|
|
38
|
+
version: `${major}.${minor}.${patch}`,
|
|
39
|
+
major,
|
|
40
|
+
minor,
|
|
41
|
+
patch,
|
|
42
|
+
bump,
|
|
43
|
+
compare
|
|
44
|
+
};
|
|
45
|
+
return version;
|
|
46
|
+
}
|
|
47
|
+
function isStable(semver) {
|
|
48
|
+
return semver.type === STABLE_TYPE;
|
|
49
|
+
}
|
|
50
|
+
const UNSTABLE_TYPE = Symbol("unstable");
|
|
51
|
+
function createUnstableVersion(minor, patch) {
|
|
52
|
+
const bump = (by) => {
|
|
53
|
+
switch (by) {
|
|
54
|
+
case "major": return `0.${minor + 1}.0`;
|
|
55
|
+
case "minor":
|
|
56
|
+
case "patch": return `0.${minor}.${patch + 1}`;
|
|
57
|
+
default: return validateGreaterVersion(version, by);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const compare = (other) => {
|
|
61
|
+
if (isStable(other)) return -1;
|
|
62
|
+
if (isPrerelease(other)) return -1;
|
|
63
|
+
if (!isUnstable(other)) throw Error("Unknown version type: " + other.type);
|
|
64
|
+
if (minor > other.minor) return 1;
|
|
65
|
+
if (minor < other.minor) return -1;
|
|
66
|
+
if (patch > other.patch) return 1;
|
|
67
|
+
if (patch < other.patch) return -1;
|
|
68
|
+
return 0;
|
|
69
|
+
};
|
|
70
|
+
const version = {
|
|
71
|
+
type: UNSTABLE_TYPE,
|
|
72
|
+
version: `0.${minor}.${patch}`,
|
|
73
|
+
major: 0,
|
|
74
|
+
minor,
|
|
75
|
+
patch,
|
|
76
|
+
bump,
|
|
77
|
+
compare
|
|
78
|
+
};
|
|
79
|
+
return version;
|
|
80
|
+
}
|
|
81
|
+
function isUnstable(semver) {
|
|
82
|
+
return semver.type === UNSTABLE_TYPE;
|
|
83
|
+
}
|
|
84
|
+
const PRERELEASE_TYPE = Symbol("prerelease");
|
|
85
|
+
const PRERELEASE_TYPE_ORDER = {
|
|
86
|
+
alpha: 0,
|
|
87
|
+
beta: 1,
|
|
88
|
+
rc: 2
|
|
89
|
+
};
|
|
90
|
+
function createPrereleaseVersion(major, prereleaseType, prerelease) {
|
|
91
|
+
const bump = (by) => {
|
|
92
|
+
switch (by) {
|
|
93
|
+
case "major":
|
|
94
|
+
case "minor":
|
|
95
|
+
case "patch": return `${major}.0.0-${prereleaseType}.${prerelease + 1}`;
|
|
96
|
+
default: return validateGreaterVersion(version, by);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const compare = (other) => {
|
|
100
|
+
if (isUnstable(other)) return 1;
|
|
101
|
+
if (isStable(other)) return other.major >= major ? -1 : 1;
|
|
102
|
+
if (!isPrerelease(other)) throw Error("Unknown version type: " + other.type);
|
|
103
|
+
if (major > other.major) return 1;
|
|
104
|
+
if (major < other.major) return -1;
|
|
105
|
+
const prereleaseTypeOrder = PRERELEASE_TYPE_ORDER[prereleaseType];
|
|
106
|
+
const otherPrereleaseTypeOrder = PRERELEASE_TYPE_ORDER[other.prereleaseType];
|
|
107
|
+
if (prereleaseTypeOrder > otherPrereleaseTypeOrder) return 1;
|
|
108
|
+
if (prereleaseTypeOrder < otherPrereleaseTypeOrder) return -1;
|
|
109
|
+
if (prerelease > other.prerelease) return 1;
|
|
110
|
+
if (prerelease < other.prerelease) return -1;
|
|
111
|
+
return 0;
|
|
112
|
+
};
|
|
113
|
+
const version = {
|
|
114
|
+
type: PRERELEASE_TYPE,
|
|
115
|
+
version: `${major}.0.0-${prereleaseType}.${prerelease}`,
|
|
116
|
+
major,
|
|
117
|
+
prereleaseType,
|
|
118
|
+
prerelease,
|
|
119
|
+
bump,
|
|
120
|
+
compare
|
|
121
|
+
};
|
|
122
|
+
return version;
|
|
123
|
+
}
|
|
124
|
+
function isPrerelease(semver) {
|
|
125
|
+
return semver.type === PRERELEASE_TYPE;
|
|
126
|
+
}
|
|
127
|
+
function parseIntOrThrow(value) {
|
|
128
|
+
const i = parseInt(value);
|
|
129
|
+
if (isNaN(i)) throw Error(`Cannot convert to number: ${value}`);
|
|
130
|
+
return i;
|
|
131
|
+
}
|
|
132
|
+
function parsePrereleaseTypeOrThrow(value) {
|
|
133
|
+
if (value !== "alpha" && value !== "beta" && value !== "rc") throw Error(`Invalid prerelease type: ${value}`);
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
function validateGreaterVersion(currentSemver, nextVersion) {
|
|
137
|
+
const nextSemver = parseSemver(nextVersion);
|
|
138
|
+
if (nextSemver.compare(currentSemver) <= 0) throw Error("New version must be greater than the current version");
|
|
139
|
+
return nextSemver.version;
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
export { isPrerelease, isStable, isUnstable, parseSemver };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { parseSemver } from "./semver.mjs";
|
|
2
|
+
//#region src/serialize-changelog.ts
|
|
3
|
+
function serializeChangelog(sections) {
|
|
4
|
+
const parts = ["# Changelog"];
|
|
5
|
+
const ordered = sections.sort((a, b) => {
|
|
6
|
+
const aV = a.header.slice(1);
|
|
7
|
+
const bV = b.header.slice(1);
|
|
8
|
+
try {
|
|
9
|
+
const aSemver = parseSemver(aV);
|
|
10
|
+
try {
|
|
11
|
+
return parseSemver(bV).compare(aSemver);
|
|
12
|
+
} catch {
|
|
13
|
+
return -1;
|
|
14
|
+
}
|
|
15
|
+
} catch {
|
|
16
|
+
try {
|
|
17
|
+
parseSemver(bV);
|
|
18
|
+
return 1;
|
|
19
|
+
} catch {
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
for (const section of ordered) parts.push(`## ${section.header}`, section.body);
|
|
25
|
+
return parts.join("\n\n") + "\n";
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { serializeChangelog };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ConventionalCommit } from "./conventional-commit.mjs";
|
|
2
|
+
import { GitCommit } from "./git-commit.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/summarize-unreleased-commits.d.ts
|
|
5
|
+
type SummarizeUnreleasedCommitsOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* List of paths to summarize commits for.
|
|
8
|
+
*
|
|
9
|
+
* > **IMPORTANT**: You may use glob patterns for ONLY the github action. They are not automatically
|
|
10
|
+
* > expanded when using the JS API. If you use the JS API and want to use glob patterns, [install a
|
|
11
|
+
* > glob pattern library](https://www.npmjs.com/search?q=glob) and call it yourself.
|
|
12
|
+
*
|
|
13
|
+
* JS Usage:
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* const summary = await summarizeUnreleasedCommits({
|
|
17
|
+
* paths: ["packages/a", "packages/b", "packages/c"],
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* GitHub Action:
|
|
22
|
+
*
|
|
23
|
+
* ```yml
|
|
24
|
+
* - uses: aklinker1/zero-changelog/actions/summarize-unreleased-commits
|
|
25
|
+
* with:
|
|
26
|
+
* paths: |-
|
|
27
|
+
* packages/*
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @default [process.cwd()]
|
|
31
|
+
*/
|
|
32
|
+
paths?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Template for the tag prefix. Available variables:
|
|
35
|
+
*
|
|
36
|
+
* - `{{dirname}}`: The directory name of the path.
|
|
37
|
+
* - `{{path}}`: The path relative to the CWD.
|
|
38
|
+
*
|
|
39
|
+
* @default "v"
|
|
40
|
+
*/
|
|
41
|
+
tagPrefixTemplate?: string;
|
|
42
|
+
};
|
|
43
|
+
type PathSummary = {
|
|
44
|
+
path: string;
|
|
45
|
+
commits: GitCommit[];
|
|
46
|
+
conventionalCommits: ConventionalCommit[];
|
|
47
|
+
};
|
|
48
|
+
declare function summarizeUnreleasedCommits(options?: SummarizeUnreleasedCommitsOptions): Promise<PathSummary[]>;
|
|
49
|
+
//#endregion
|
|
50
|
+
export { PathSummary, SummarizeUnreleasedCommitsOptions, summarizeUnreleasedCommits };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { t as findPreviousTag } from "./find-previous-tag-Cj2oZAty.mjs";
|
|
2
|
+
import { t as listCommitsSince } from "./list-commits-since-DycWgHTi.mjs";
|
|
3
|
+
import { parseCommits } from "./parse-commits.mjs";
|
|
4
|
+
import { n as template } from "./utils-BO6byvK5.mjs";
|
|
5
|
+
import { basename, relative, resolve } from "node:path";
|
|
6
|
+
//#region src/summarize-unreleased-commits.ts
|
|
7
|
+
async function summarizeUnreleasedCommits(options) {
|
|
8
|
+
const { tagPrefixTemplate = "v{{dirname}}" } = options ?? {};
|
|
9
|
+
const absolutePaths = (options?.paths?.length ? options.paths : [process.cwd()]).map((path) => resolve(path));
|
|
10
|
+
const summaries = [];
|
|
11
|
+
for (const path of absolutePaths) {
|
|
12
|
+
const since = await findPreviousTag(template(tagPrefixTemplate, {
|
|
13
|
+
dirname: basename(path),
|
|
14
|
+
path: relative(process.cwd(), path)
|
|
15
|
+
}));
|
|
16
|
+
const commits = await listCommitsSince({
|
|
17
|
+
dirs: [path],
|
|
18
|
+
since
|
|
19
|
+
});
|
|
20
|
+
const conventionalCommits = parseCommits(commits);
|
|
21
|
+
summaries.push({
|
|
22
|
+
commits,
|
|
23
|
+
path,
|
|
24
|
+
conventionalCommits
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return summaries;
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { summarizeUnreleasedCommits };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { t as getVersionRegexFor } from "./version-regex-C82OGsTC.mjs";
|
|
2
|
+
import { t as replaceRegexGroup } from "./utils-BO6byvK5.mjs";
|
|
3
|
+
import { styleText } from "node:util";
|
|
4
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
5
|
+
import { join, relative } from "node:path";
|
|
6
|
+
//#region src/update-version-files.ts
|
|
7
|
+
async function updateVersionFiles(path, versionFiles, newVersion) {
|
|
8
|
+
console.log("Updating version...");
|
|
9
|
+
for (const versionFile of versionFiles) await updateVersionFile(path, versionFile, newVersion);
|
|
10
|
+
}
|
|
11
|
+
async function updateVersionFile(path, versionFile, newVersion) {
|
|
12
|
+
const file = join(path, versionFile);
|
|
13
|
+
const relativePath = relative(process.cwd(), file);
|
|
14
|
+
try {
|
|
15
|
+
await writeFile(file, replaceRegexGroup(await readFile(file, "utf8"), getVersionRegexFor(file), "version", newVersion), "utf8");
|
|
16
|
+
console.log(` -> ${styleText("cyan", relativePath)} updated`);
|
|
17
|
+
} catch (err) {
|
|
18
|
+
if (err.code === "ENOENT") {
|
|
19
|
+
console.log(` -> ${styleText("cyan", relativePath)} does not exist, skipping`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
throw err;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { updateVersionFiles };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/internal/utils.ts
|
|
2
|
+
/**
|
|
3
|
+
* Replaces a regex group in a string with a replacement value. Only replaces the first match.
|
|
4
|
+
*
|
|
5
|
+
* @param text The string to search in.
|
|
6
|
+
* @param regexp The regex pattern to match. Must include a named group `replace`.
|
|
7
|
+
* @param replacement The value to replace the matched group with.
|
|
8
|
+
* @returns The modified string with the replacement applied.
|
|
9
|
+
*/
|
|
10
|
+
function replaceRegexGroup(text, regexp, group, replacement) {
|
|
11
|
+
const match = text.match(regexp);
|
|
12
|
+
if (!match?.groups?.[group]) return text;
|
|
13
|
+
const fullMatch = match[0];
|
|
14
|
+
const toReplace = match.groups[group];
|
|
15
|
+
const newMatch = fullMatch.replace(toReplace, replacement);
|
|
16
|
+
return text.replace(regexp, newMatch);
|
|
17
|
+
}
|
|
18
|
+
function template(template, vars) {
|
|
19
|
+
return Object.entries(vars).reduce((acc, [key, value]) => acc.replace(new RegExp(`\\{\\{\\s*?${key}\\s*?\\}\\}`, "g"), String(value)), template);
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { template as n, replaceRegexGroup as t };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { basename } from "node:path";
|
|
2
|
+
//#region src/internal/version-regex.ts
|
|
3
|
+
const PACKAGE_JSON_VERSION_REGEX = /"version":\s*?"(?<version>)"/;
|
|
4
|
+
const PACKAGE_YAML_VERSION_REGEX = /["']?version["']?:\s+?["']?(?<version>)["']?/;
|
|
5
|
+
const CARGO_TOML_VERSION_REGEX = /^version\s*=\s*"(?<version>\w*?)"/;
|
|
6
|
+
function getVersionRegexFor(versionFile) {
|
|
7
|
+
const filename = basename(versionFile);
|
|
8
|
+
switch (filename) {
|
|
9
|
+
case "package.json":
|
|
10
|
+
case "package.jsonc":
|
|
11
|
+
case "package.json5":
|
|
12
|
+
case "deno.json":
|
|
13
|
+
case "deno.jsonc":
|
|
14
|
+
case "jsr.json":
|
|
15
|
+
case "jsr.jsonc": return PACKAGE_JSON_VERSION_REGEX;
|
|
16
|
+
case "package.yaml":
|
|
17
|
+
case "package.yml": return PACKAGE_YAML_VERSION_REGEX;
|
|
18
|
+
case "Cargo.toml": return CARGO_TOML_VERSION_REGEX;
|
|
19
|
+
default: throw new Error(`Unknown version file: ${filename}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { getVersionRegexFor as t };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/internal/wait-for-child-process.ts
|
|
2
|
+
function waitForChildProcess(child) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
let stdout = "";
|
|
5
|
+
let stderr = "";
|
|
6
|
+
child.stdout.on("data", (data) => {
|
|
7
|
+
stdout += data.toString();
|
|
8
|
+
});
|
|
9
|
+
child.stderr.on("data", (data) => {
|
|
10
|
+
stderr += data.toString();
|
|
11
|
+
});
|
|
12
|
+
child.on("close", (code) => {
|
|
13
|
+
if (code === 0) resolve({
|
|
14
|
+
stdout,
|
|
15
|
+
stderr
|
|
16
|
+
});
|
|
17
|
+
else reject(/* @__PURE__ */ new Error(`Child process exited with code ${code}\n${stderr}`));
|
|
18
|
+
});
|
|
19
|
+
child.on("error", (err) => {
|
|
20
|
+
reject(err);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { waitForChildProcess as t };
|
package/package.json
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aklinker1/zero-changelog",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Zero-dependency, conventional commit release and changelog generator with monorepo support",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"changelog",
|
|
7
|
+
"conventional commit",
|
|
8
|
+
"monorepo",
|
|
9
|
+
"release notes"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"exports": {
|
|
17
|
+
"./conventional-commit": {
|
|
18
|
+
"types": "./dist/conventional-commit.d.mts",
|
|
19
|
+
"default": "./dist/conventional-commit.mjs"
|
|
20
|
+
},
|
|
21
|
+
"./get-github-release": {
|
|
22
|
+
"types": "./dist/get-github-release.d.mts",
|
|
23
|
+
"default": "./dist/get-github-release.mjs"
|
|
24
|
+
},
|
|
25
|
+
"./get-release-notes": {
|
|
26
|
+
"types": "./dist/get-release-notes.d.mts",
|
|
27
|
+
"default": "./dist/get-release-notes.mjs"
|
|
28
|
+
},
|
|
29
|
+
"./summarize-unreleased-commits": {
|
|
30
|
+
"types": "./dist/summarize-unreleased-commits.d.mts",
|
|
31
|
+
"default": "./dist/summarize-unreleased-commits.mjs"
|
|
32
|
+
},
|
|
33
|
+
"./list-commits-since": {
|
|
34
|
+
"types": "./dist/list-commits-since.d.mts",
|
|
35
|
+
"default": "./dist/list-commits-since.mjs"
|
|
36
|
+
},
|
|
37
|
+
"./find-previous-tag": {
|
|
38
|
+
"types": "./dist/find-previous-tag.d.mts",
|
|
39
|
+
"default": "./dist/find-previous-tag.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./get-github-repo": {
|
|
42
|
+
"types": "./dist/get-github-repo.d.mts",
|
|
43
|
+
"default": "./dist/get-github-repo.mjs"
|
|
44
|
+
},
|
|
45
|
+
"./detect-version-bump": {
|
|
46
|
+
"types": "./dist/detect-version-bump.d.mts",
|
|
47
|
+
"default": "./dist/detect-version-bump.mjs"
|
|
48
|
+
},
|
|
49
|
+
"./parse-changelog": {
|
|
50
|
+
"types": "./dist/parse-changelog.d.mts",
|
|
51
|
+
"default": "./dist/parse-changelog.mjs"
|
|
52
|
+
},
|
|
53
|
+
"./sync-releases": {
|
|
54
|
+
"types": "./dist/sync-releases.d.mts",
|
|
55
|
+
"default": "./dist/sync-releases.mjs"
|
|
56
|
+
},
|
|
57
|
+
"./parse-commit": {
|
|
58
|
+
"types": "./dist/parse-commit.d.mts",
|
|
59
|
+
"default": "./dist/parse-commit.mjs"
|
|
60
|
+
},
|
|
61
|
+
"./semver-type-map": {
|
|
62
|
+
"types": "./dist/semver-type-map.d.mts",
|
|
63
|
+
"default": "./dist/semver-type-map.mjs"
|
|
64
|
+
},
|
|
65
|
+
"./changelog-section": {
|
|
66
|
+
"types": "./dist/changelog-section.d.mts",
|
|
67
|
+
"default": "./dist/changelog-section.mjs"
|
|
68
|
+
},
|
|
69
|
+
"./release": {
|
|
70
|
+
"types": "./dist/release.d.mts",
|
|
71
|
+
"default": "./dist/release.mjs"
|
|
72
|
+
},
|
|
73
|
+
"./git-commit": {
|
|
74
|
+
"types": "./dist/git-commit.d.mts",
|
|
75
|
+
"default": "./dist/git-commit.mjs"
|
|
76
|
+
},
|
|
77
|
+
"./parse-commits": {
|
|
78
|
+
"types": "./dist/parse-commits.d.mts",
|
|
79
|
+
"default": "./dist/parse-commits.mjs"
|
|
80
|
+
},
|
|
81
|
+
"./update-version-files": {
|
|
82
|
+
"types": "./dist/update-version-files.d.mts",
|
|
83
|
+
"default": "./dist/update-version-files.mjs"
|
|
84
|
+
},
|
|
85
|
+
"./get-current-version": {
|
|
86
|
+
"types": "./dist/get-current-version.d.mts",
|
|
87
|
+
"default": "./dist/get-current-version.mjs"
|
|
88
|
+
},
|
|
89
|
+
"./semver-type": {
|
|
90
|
+
"types": "./dist/semver-type.d.mts",
|
|
91
|
+
"default": "./dist/semver-type.mjs"
|
|
92
|
+
},
|
|
93
|
+
"./semver": {
|
|
94
|
+
"types": "./dist/semver.d.mts",
|
|
95
|
+
"default": "./dist/semver.mjs"
|
|
96
|
+
},
|
|
97
|
+
"./create-github-release": {
|
|
98
|
+
"types": "./dist/create-github-release.d.mts",
|
|
99
|
+
"default": "./dist/create-github-release.mjs"
|
|
100
|
+
},
|
|
101
|
+
"./serialize-changelog": {
|
|
102
|
+
"types": "./dist/serialize-changelog.d.mts",
|
|
103
|
+
"default": "./dist/serialize-changelog.mjs"
|
|
104
|
+
},
|
|
105
|
+
"./sync-release": {
|
|
106
|
+
"types": "./dist/sync-release.d.mts",
|
|
107
|
+
"default": "./dist/sync-release.mjs"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"scripts": {
|
|
111
|
+
"check": "check",
|
|
112
|
+
"test": "bun test",
|
|
113
|
+
"test:watch": "bun test --watch",
|
|
114
|
+
"build": "bun run --sequential 'build:*'",
|
|
115
|
+
"build:npm": "tsdown src/*.ts src/semver-types/*.ts --dts.tsgo",
|
|
116
|
+
"build:actions": "tsdown src/actions/*.ts --minify --d actions/dist",
|
|
117
|
+
"build:exports": "bun run scripts/gen-export-maps.ts",
|
|
118
|
+
"prepack": "bun run build:npm"
|
|
119
|
+
},
|
|
120
|
+
"devDependencies": {
|
|
121
|
+
"@actions/core": "^3.0.0",
|
|
122
|
+
"@actions/glob": "^0.7.0",
|
|
123
|
+
"@aklinker1/check": "^2.4.0",
|
|
124
|
+
"@aklinker1/zero-factory": "^1.2.1",
|
|
125
|
+
"@types/bun": "latest",
|
|
126
|
+
"@typescript/native-preview": "^7.0.0-dev.20260420.1",
|
|
127
|
+
"cspell": "^10.0.0",
|
|
128
|
+
"dedent": "^1.7.2",
|
|
129
|
+
"oxfmt": "^0.46.0",
|
|
130
|
+
"oxlint": "^1.60.0",
|
|
131
|
+
"publint": "^0.3.18",
|
|
132
|
+
"tsdown": "^0.21.10"
|
|
133
|
+
}
|
|
134
|
+
}
|