@kitsi/pack-version 0.0.6
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/checks/conventional-commits.d.ts +6 -0
- package/dist/checks/conventional-commits.d.ts.map +1 -0
- package/dist/checks/conventional-commits.js +46 -0
- package/dist/checks/conventional-commits.js.map +1 -0
- package/dist/checks/git-clean.d.ts +6 -0
- package/dist/checks/git-clean.d.ts.map +1 -0
- package/dist/checks/git-clean.js +46 -0
- package/dist/checks/git-clean.js.map +1 -0
- package/dist/checks/git-repository.d.ts +6 -0
- package/dist/checks/git-repository.d.ts.map +1 -0
- package/dist/checks/git-repository.js +20 -0
- package/dist/checks/git-repository.js.map +1 -0
- package/dist/checks/index.d.ts +19 -0
- package/dist/checks/index.d.ts.map +1 -0
- package/dist/checks/index.js +34 -0
- package/dist/checks/index.js.map +1 -0
- package/dist/checks/standard-version.d.ts +6 -0
- package/dist/checks/standard-version.d.ts.map +1 -0
- package/dist/checks/standard-version.js +29 -0
- package/dist/checks/standard-version.js.map +1 -0
- package/dist/checks/workspace-config.d.ts +7 -0
- package/dist/checks/workspace-config.d.ts.map +1 -0
- package/dist/checks/workspace-config.js +34 -0
- package/dist/checks/workspace-config.js.map +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/refs.d.ts +16 -0
- package/dist/refs.d.ts.map +1 -0
- package/dist/refs.js +16 -0
- package/dist/refs.js.map +1 -0
- package/dist/release.d.ts +45 -0
- package/dist/release.d.ts.map +1 -0
- package/dist/release.js +206 -0
- package/dist/release.js.map +1 -0
- package/dist/steps/bump-package.d.ts +16 -0
- package/dist/steps/bump-package.d.ts.map +1 -0
- package/dist/steps/bump-package.js +104 -0
- package/dist/steps/bump-package.js.map +1 -0
- package/dist/steps/collect-changed-packages.d.ts +8 -0
- package/dist/steps/collect-changed-packages.d.ts.map +1 -0
- package/dist/steps/collect-changed-packages.js +29 -0
- package/dist/steps/collect-changed-packages.js.map +1 -0
- package/dist/steps/commit-versions.d.ts +7 -0
- package/dist/steps/commit-versions.d.ts.map +1 -0
- package/dist/steps/commit-versions.js +22 -0
- package/dist/steps/commit-versions.js.map +1 -0
- package/dist/steps/discover-packages.d.ts +8 -0
- package/dist/steps/discover-packages.d.ts.map +1 -0
- package/dist/steps/discover-packages.js +54 -0
- package/dist/steps/discover-packages.js.map +1 -0
- package/dist/steps/generate-changelog.d.ts +6 -0
- package/dist/steps/generate-changelog.d.ts.map +1 -0
- package/dist/steps/generate-changelog.js +31 -0
- package/dist/steps/generate-changelog.js.map +1 -0
- package/dist/steps/index.d.ts +7 -0
- package/dist/steps/index.d.ts.map +1 -0
- package/dist/steps/index.js +7 -0
- package/dist/steps/index.js.map +1 -0
- package/dist/steps/tag-versions.d.ts +7 -0
- package/dist/steps/tag-versions.d.ts.map +1 -0
- package/dist/steps/tag-versions.js +16 -0
- package/dist/steps/tag-versions.js.map +1 -0
- package/dist/types/check-result.d.ts +18 -0
- package/dist/types/check-result.d.ts.map +1 -0
- package/dist/types/check-result.js +2 -0
- package/dist/types/check-result.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/package-config.d.ts +14 -0
- package/dist/types/package-config.d.ts.map +1 -0
- package/dist/types/package-config.js +2 -0
- package/dist/types/package-config.js.map +1 -0
- package/dist/types/package-result.d.ts +18 -0
- package/dist/types/package-result.d.ts.map +1 -0
- package/dist/types/package-result.js +2 -0
- package/dist/types/package-result.js.map +1 -0
- package/dist/types/release-type.d.ts +9 -0
- package/dist/types/release-type.d.ts.map +1 -0
- package/dist/types/release-type.js +2 -0
- package/dist/types/release-type.js.map +1 -0
- package/dist/types/version-options.d.ts +40 -0
- package/dist/types/version-options.d.ts.map +1 -0
- package/dist/types/version-options.js +2 -0
- package/dist/types/version-options.js.map +1 -0
- package/package.json +57 -0
package/dist/release.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { emit, plan, sh, step, summary, task } from '@kitsi/cli';
|
|
2
|
+
import { checkConventionalCommits, checkGitClean, checkGitRepository, checkWorkspaceConfig, formatCheckResults, hasFailures, } from './checks/index.js';
|
|
3
|
+
import { refs } from './refs.js';
|
|
4
|
+
import { bumpPackage } from './steps/bump-package.js';
|
|
5
|
+
import { collectChangedPackages } from './steps/collect-changed-packages.js';
|
|
6
|
+
import { commitVersions } from './steps/commit-versions.js';
|
|
7
|
+
import { discoverPackages } from './steps/discover-packages.js';
|
|
8
|
+
import { generateRootChangelog } from './steps/generate-changelog.js';
|
|
9
|
+
import { tagVersions } from './steps/tag-versions.js';
|
|
10
|
+
/**
|
|
11
|
+
* Creates a release plan for semantic versioning with changelog generation.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { version } from '@kitsi/pack-version';
|
|
16
|
+
*
|
|
17
|
+
* export const ci = registry(
|
|
18
|
+
* version.release({
|
|
19
|
+
* pm: 'bun',
|
|
20
|
+
* packages: [
|
|
21
|
+
* { name: '@kitsi/cli', path: 'packages/cli' },
|
|
22
|
+
* { name: '@kitsi/action', path: 'packages/action' },
|
|
23
|
+
* ],
|
|
24
|
+
* }),
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function release(opts = {}) {
|
|
29
|
+
const { preflight, bump, commit, push } = tasks(opts);
|
|
30
|
+
// Build task list based on options
|
|
31
|
+
const taskList = [preflight, bump];
|
|
32
|
+
if (!opts.skip?.commit || !opts.skip?.tag) {
|
|
33
|
+
taskList.push(commit);
|
|
34
|
+
}
|
|
35
|
+
if (!opts.skip?.push) {
|
|
36
|
+
taskList.push(push);
|
|
37
|
+
}
|
|
38
|
+
return plan('version:release').tasks(taskList);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates individual version tasks that can be composed into other plans.
|
|
42
|
+
* Use this when you need to integrate version tasks with other workflows.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const { preflight, bump, commit, push } = version.tasks({ packages: [...] });
|
|
47
|
+
*
|
|
48
|
+
* plan('release').tasks(
|
|
49
|
+
* buildTask,
|
|
50
|
+
* preflight.needs(buildTask),
|
|
51
|
+
* bump,
|
|
52
|
+
* commit,
|
|
53
|
+
* push,
|
|
54
|
+
* publishTask.needs(push),
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function tasks(opts = {}) {
|
|
59
|
+
// Preflight check task
|
|
60
|
+
const preflight = task('version:preflight')
|
|
61
|
+
.cache({ enabled: false })
|
|
62
|
+
.steps(step('Run Preflight Checks', function* (_ctx) {
|
|
63
|
+
const checkResults = [];
|
|
64
|
+
const gitExists = (yield sh `test -d .git && echo "yes" || echo "no"`.stdout());
|
|
65
|
+
const isAnalysisMode = gitExists === '';
|
|
66
|
+
if (isAnalysisMode) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
checkResults.push(checkGitRepository(gitExists.trim() === 'yes'));
|
|
70
|
+
const gitStatus = (yield sh `git status --porcelain 2>/dev/null || echo ""`.stdout());
|
|
71
|
+
const modifiedFiles = gitStatus
|
|
72
|
+
.trim()
|
|
73
|
+
.split('\n')
|
|
74
|
+
.filter((l) => l.length > 0);
|
|
75
|
+
checkResults.push(checkGitClean(modifiedFiles.length === 0, modifiedFiles, opts.allowDirty ?? false));
|
|
76
|
+
const packages = yield* discoverPackages(opts);
|
|
77
|
+
checkResults.push(checkWorkspaceConfig(packages, Boolean(opts.packages)));
|
|
78
|
+
if (packages.length > 0) {
|
|
79
|
+
const lastTagOutput = (yield sh `git describe --tags --abbrev=0 2>/dev/null || echo ""`.stdout());
|
|
80
|
+
const lastTag = lastTagOutput.trim() || null;
|
|
81
|
+
const commitRange = lastTag ? `${lastTag}..HEAD` : 'HEAD';
|
|
82
|
+
const commitCountOutput = (yield sh `git rev-list --count ${commitRange} 2>/dev/null || echo "0"`.stdout());
|
|
83
|
+
const commitCount = Number.parseInt(commitCountOutput.trim(), 10) || 0;
|
|
84
|
+
const conventionalOutput = (yield sh `git log ${commitRange} --oneline 2>/dev/null | grep -E "^[a-f0-9]+ (feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\\(|:)" | wc -l || echo "0"`.stdout());
|
|
85
|
+
const conventionalCount = Number.parseInt(conventionalOutput.trim(), 10) || 0;
|
|
86
|
+
checkResults.push(checkConventionalCommits(conventionalCount > 0, commitCount, lastTag));
|
|
87
|
+
}
|
|
88
|
+
const output = formatCheckResults(checkResults);
|
|
89
|
+
yield summary.md(`\`\`\`\n${output}\n\`\`\``);
|
|
90
|
+
if (hasFailures(checkResults)) {
|
|
91
|
+
const failures = checkResults.filter((r) => r.status === 'fail');
|
|
92
|
+
const errorMsg = failures.map((r) => `${r.name}: ${r.message}`).join('\n');
|
|
93
|
+
throw new Error(`Preflight checks failed:\n${errorMsg}`);
|
|
94
|
+
}
|
|
95
|
+
}));
|
|
96
|
+
// Version bump task
|
|
97
|
+
const bump = task('version:bump')
|
|
98
|
+
.needs(preflight)
|
|
99
|
+
.cache({ enabled: false })
|
|
100
|
+
.steps(step('Bump Package Versions', function* (_ctx) {
|
|
101
|
+
const packages = yield* discoverPackages(opts);
|
|
102
|
+
if (packages.length === 0) {
|
|
103
|
+
yield summary.md('No packages found to version');
|
|
104
|
+
yield emit(refs.HasChanges, false);
|
|
105
|
+
yield emit(refs.Results, []);
|
|
106
|
+
yield emit(refs.Versions, {});
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
yield summary.md(`Found ${packages.length} package(s) to version`);
|
|
110
|
+
const results = [];
|
|
111
|
+
const versions = {};
|
|
112
|
+
for (const pkg of packages) {
|
|
113
|
+
const result = yield* bumpPackage(pkg, opts);
|
|
114
|
+
if (result) {
|
|
115
|
+
results.push(result);
|
|
116
|
+
versions[result.name] = result.newVersion;
|
|
117
|
+
yield summary.md(`Bumped **${result.name}**: ${result.previousVersion} -> ${result.newVersion}`);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
yield summary.md(`No changes for ${pkg.name}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
yield emit(refs.HasChanges, results.length > 0);
|
|
124
|
+
yield emit(refs.Results, results);
|
|
125
|
+
yield emit(refs.Versions, versions);
|
|
126
|
+
if (results.length === 0) {
|
|
127
|
+
yield summary.md('No version changes detected');
|
|
128
|
+
}
|
|
129
|
+
if (opts.rootChangelog && results.length > 0) {
|
|
130
|
+
const rootChangelog = yield* generateRootChangelog(results);
|
|
131
|
+
yield emit(refs.RootChangelog, rootChangelog);
|
|
132
|
+
yield summary.md('Generated root changelog');
|
|
133
|
+
}
|
|
134
|
+
// Update lockfile after version bump if enabled
|
|
135
|
+
const shouldUpdateLockfile = opts.updateLockfile ?? opts.pm !== undefined;
|
|
136
|
+
if (shouldUpdateLockfile && results.length > 0 && !opts.dryRun) {
|
|
137
|
+
const pm = opts.pm ?? 'npm';
|
|
138
|
+
yield sh `${pm} install`.must();
|
|
139
|
+
yield summary.md(`Updated lockfile with ${pm} install`);
|
|
140
|
+
}
|
|
141
|
+
}));
|
|
142
|
+
// Commit and tag task
|
|
143
|
+
const commit = task('version:commit')
|
|
144
|
+
.needs(bump)
|
|
145
|
+
.cache({ enabled: false })
|
|
146
|
+
.steps(step('Commit and Tag', function* (_ctx) {
|
|
147
|
+
if (opts.skip?.commit && opts.skip?.tag) {
|
|
148
|
+
yield summary.md('Skipping commit and tag (as configured)');
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (opts.dryRun) {
|
|
152
|
+
yield summary.md('Dry run - skipping commit and tag');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const gitDiff = (yield sh `git diff --name-only HEAD 2>/dev/null || echo ""`.stdout());
|
|
156
|
+
if (gitDiff === '') {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const changedFiles = gitDiff
|
|
160
|
+
.trim()
|
|
161
|
+
.split('\n')
|
|
162
|
+
.filter((f) => f.length > 0);
|
|
163
|
+
if (changedFiles.length === 0) {
|
|
164
|
+
yield summary.md('No changes to commit');
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const packages = yield* discoverPackages(opts);
|
|
168
|
+
const results = yield* collectChangedPackages(packages, changedFiles);
|
|
169
|
+
if (results.length === 0) {
|
|
170
|
+
yield summary.md('No packages to commit');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (!opts.skip?.commit) {
|
|
174
|
+
yield* commitVersions(results, opts);
|
|
175
|
+
yield summary.md(`Created release commit for ${results.length} package(s)`);
|
|
176
|
+
}
|
|
177
|
+
if (!opts.skip?.tag) {
|
|
178
|
+
yield* tagVersions(results, opts);
|
|
179
|
+
const tags = results.map((r) => r.tagName).join(', ');
|
|
180
|
+
yield summary.md(`Created tags: ${tags}`);
|
|
181
|
+
}
|
|
182
|
+
}));
|
|
183
|
+
// Git push task
|
|
184
|
+
const push = task('version:push')
|
|
185
|
+
.needs(commit)
|
|
186
|
+
.cache({ enabled: false })
|
|
187
|
+
.steps(step('Push to Remote', function* (_ctx) {
|
|
188
|
+
if (opts.dryRun) {
|
|
189
|
+
yield summary.md('Dry run - skipping push');
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (opts.skip?.push) {
|
|
193
|
+
yield summary.md('Skipping push (as configured)');
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const branch = (yield sh `git rev-parse --abbrev-ref HEAD 2>/dev/null || echo ""`.stdout());
|
|
197
|
+
if (branch === '') {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
yield sh `git push origin ${branch.trim()}`.must();
|
|
201
|
+
yield sh `git push origin --tags`.must();
|
|
202
|
+
yield summary.md(`Pushed commits and tags to origin/${branch.trim()}`);
|
|
203
|
+
}));
|
|
204
|
+
return { preflight, bump, commit, push };
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CommandBuilder } from '@kitsi/cli';
|
|
2
|
+
import type { PackageConfig } from '../types/package-config.js';
|
|
3
|
+
import type { PackageResult } from '../types/package-result.js';
|
|
4
|
+
import type { VersionOptions } from '../types/version-options.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a shell command from a raw string without quoting.
|
|
7
|
+
* Use when you need to pass a dynamically constructed command string.
|
|
8
|
+
*/
|
|
9
|
+
export declare function shRaw(cmd: string): CommandBuilder;
|
|
10
|
+
/**
|
|
11
|
+
* Bumps the version of a single package using standard-version.
|
|
12
|
+
* Uses the direct dependency via `bun run` instead of npx.
|
|
13
|
+
* Returns null if no changes were detected.
|
|
14
|
+
*/
|
|
15
|
+
export declare function bumpPackage(pkg: PackageConfig, opts: VersionOptions): Generator<unknown, PackageResult | null, unknown>;
|
|
16
|
+
//# sourceMappingURL=bump-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bump-package.d.ts","sourceRoot":"","sources":["../../src/steps/bump-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAM,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAMjD;AAyDD;;;;GAIG;AACH,wBAAiB,WAAW,CAC1B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,cAAc,GACnB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CAgDnD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { CommandBuilder, sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a shell command from a raw string without quoting.
|
|
4
|
+
* Use when you need to pass a dynamically constructed command string.
|
|
5
|
+
*/
|
|
6
|
+
export function shRaw(cmd) {
|
|
7
|
+
return new CommandBuilder({
|
|
8
|
+
kind: 'command',
|
|
9
|
+
capture: 'result',
|
|
10
|
+
template: [{ type: 'text', value: cmd }],
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
/** Build standard-version CLI arguments from package config and options */
|
|
14
|
+
function buildStandardVersionArgs(pkg, opts) {
|
|
15
|
+
const tagPrefix = pkg.tagPrefix ?? `${pkg.name}@`;
|
|
16
|
+
const changelog = pkg.changelog ?? `${pkg.path}/CHANGELOG.md`;
|
|
17
|
+
const args = [
|
|
18
|
+
`--path ${pkg.path}`,
|
|
19
|
+
`--tag-prefix "${tagPrefix}"`,
|
|
20
|
+
`--infile ${changelog}`,
|
|
21
|
+
`--packageFiles ${pkg.path}/package.json`,
|
|
22
|
+
`--bumpFiles ${pkg.path}/package.json`,
|
|
23
|
+
];
|
|
24
|
+
if (opts.releaseAs)
|
|
25
|
+
args.push(`--release-as ${opts.releaseAs}`);
|
|
26
|
+
if (opts.preid)
|
|
27
|
+
args.push(`--prerelease ${opts.preid}`);
|
|
28
|
+
if (opts.firstRelease)
|
|
29
|
+
args.push('--first-release');
|
|
30
|
+
if (opts.sign)
|
|
31
|
+
args.push('--sign');
|
|
32
|
+
if (opts.dryRun)
|
|
33
|
+
args.push('--dry-run');
|
|
34
|
+
// Skip commit and tag - we handle git operations ourselves for combined commits
|
|
35
|
+
if (opts.combinedCommit !== false) {
|
|
36
|
+
args.push('--skip.commit');
|
|
37
|
+
args.push('--skip.tag');
|
|
38
|
+
}
|
|
39
|
+
return args;
|
|
40
|
+
}
|
|
41
|
+
/** Check if a bump error is a real failure vs expected "no changes" scenario */
|
|
42
|
+
function isRealBumpError(result) {
|
|
43
|
+
const errorMessage = result.error?.message ?? '';
|
|
44
|
+
const errorCause = String(result.error?.cause ?? '');
|
|
45
|
+
const errorText = `${errorMessage} ${errorCause}`.toLowerCase();
|
|
46
|
+
return (errorText.includes('not found') ||
|
|
47
|
+
errorText.includes('no such file') ||
|
|
48
|
+
errorText.includes('enoent') ||
|
|
49
|
+
errorText.includes('script not found'));
|
|
50
|
+
}
|
|
51
|
+
/** Extract version from package.json content */
|
|
52
|
+
function parseVersion(json) {
|
|
53
|
+
if (json === '')
|
|
54
|
+
return null;
|
|
55
|
+
const parsed = JSON.parse(json);
|
|
56
|
+
return parsed.version ?? null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Bumps the version of a single package using standard-version.
|
|
60
|
+
* Uses the direct dependency via `bun run` instead of npx.
|
|
61
|
+
* Returns null if no changes were detected.
|
|
62
|
+
*/
|
|
63
|
+
export function* bumpPackage(pkg, opts) {
|
|
64
|
+
const tagPrefix = pkg.tagPrefix ?? `${pkg.name}@`;
|
|
65
|
+
const changelog = pkg.changelog ?? `${pkg.path}/CHANGELOG.md`;
|
|
66
|
+
// Get current version before bump
|
|
67
|
+
const beforeJson = (yield sh `cat ${pkg.path}/package.json`.stdout());
|
|
68
|
+
const previousVersion = parseVersion(beforeJson);
|
|
69
|
+
// Detect if we're in analysis mode (receiving placeholder values)
|
|
70
|
+
if (previousVersion === null) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const args = buildStandardVersionArgs(pkg, opts);
|
|
74
|
+
const cmd = `bunx standard-version ${args.join(' ')}`;
|
|
75
|
+
const result = (yield shRaw(cmd));
|
|
76
|
+
if (!result.ok) {
|
|
77
|
+
if (isRealBumpError(result) && !opts.dryRun) {
|
|
78
|
+
const details = String(result.error?.cause ?? result.error?.message ?? '');
|
|
79
|
+
throw new Error(`standard-version failed for ${pkg.name}: ${details}`);
|
|
80
|
+
}
|
|
81
|
+
// Check if version changed despite "failure" (shouldn't happen, but be safe)
|
|
82
|
+
const afterJson = (yield sh `cat ${pkg.path}/package.json`.stdout());
|
|
83
|
+
const afterVersion = parseVersion(afterJson);
|
|
84
|
+
if (afterVersion === null || afterVersion === previousVersion) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Get new version after bump
|
|
89
|
+
const afterJson = (yield sh `cat ${pkg.path}/package.json`.stdout());
|
|
90
|
+
const newVersion = parseVersion(afterJson) ?? previousVersion;
|
|
91
|
+
// If versions are the same, no changes were made
|
|
92
|
+
if (newVersion === previousVersion && !opts.firstRelease) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
name: pkg.name,
|
|
97
|
+
path: pkg.path,
|
|
98
|
+
previousVersion,
|
|
99
|
+
newVersion,
|
|
100
|
+
tagName: `${tagPrefix}${newVersion}`,
|
|
101
|
+
changelogPath: changelog,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=bump-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bump-package.js","sourceRoot":"","sources":["../../src/steps/bump-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAKhD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,IAAI,cAAc,CAAC;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACzC,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,SAAS,wBAAwB,CAAC,GAAkB,EAAE,IAAoB;IACxE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,eAAe,CAAC;IAE9D,MAAM,IAAI,GAAa;QACrB,UAAU,GAAG,CAAC,IAAI,EAAE;QACpB,iBAAiB,SAAS,GAAG;QAC7B,YAAY,SAAS,EAAE;QACvB,kBAAkB,GAAG,CAAC,IAAI,eAAe;QACzC,eAAe,GAAG,CAAC,IAAI,eAAe;KACvC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,gFAAgF;IAChF,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,gFAAgF;AAChF,SAAS,eAAe,CAAC,MAAkB;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC;IAEhE,OAAO,CACL,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAC1B,GAAkB,EAClB,IAAoB;IAEpB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,eAAe,CAAC;IAE9D,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,CAAA,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAW,CAAC;IAC/E,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEjD,kEAAkE;IAClE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,yBAAyB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAe,CAAC;IAEhD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,6EAA6E;QAC7E,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAA,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAW,CAAC;QAC9E,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAA,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAW,CAAC;IAC9E,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC;IAE9D,iDAAiD;IACjD,IAAI,UAAU,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,eAAe;QACf,UAAU;QACV,OAAO,EAAE,GAAG,SAAS,GAAG,UAAU,EAAE;QACpC,aAAa,EAAE,SAAS;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PackageConfig } from '../types/package-config.js';
|
|
2
|
+
import type { PackageResult } from '../types/package-result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Collects package results from changed files.
|
|
5
|
+
* Reads each package's version and builds PackageResult entries for packages with changes.
|
|
6
|
+
*/
|
|
7
|
+
export declare function collectChangedPackages(packages: PackageConfig[], changedFiles: string[]): Generator<unknown, PackageResult[], unknown>;
|
|
8
|
+
//# sourceMappingURL=collect-changed-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-changed-packages.d.ts","sourceRoot":"","sources":["../../src/steps/collect-changed-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;GAGG;AACH,wBAAiB,sBAAsB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,EAAE,GACrB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CA2B9C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Collects package results from changed files.
|
|
4
|
+
* Reads each package's version and builds PackageResult entries for packages with changes.
|
|
5
|
+
*/
|
|
6
|
+
export function* collectChangedPackages(packages, changedFiles) {
|
|
7
|
+
const results = [];
|
|
8
|
+
for (const pkg of packages) {
|
|
9
|
+
const pkgChanged = changedFiles.some((f) => f.startsWith(`${pkg.path}/`) || f === `${pkg.path}/package.json`);
|
|
10
|
+
if (!pkgChanged)
|
|
11
|
+
continue;
|
|
12
|
+
const pkgJson = (yield sh `cat ${pkg.path}/package.json`.stdout());
|
|
13
|
+
if (pkgJson === '')
|
|
14
|
+
continue;
|
|
15
|
+
const parsed = JSON.parse(pkgJson);
|
|
16
|
+
if (!parsed.version)
|
|
17
|
+
continue;
|
|
18
|
+
results.push({
|
|
19
|
+
name: pkg.name,
|
|
20
|
+
path: pkg.path,
|
|
21
|
+
previousVersion: '',
|
|
22
|
+
newVersion: parsed.version,
|
|
23
|
+
tagName: `${pkg.tagPrefix ?? `${pkg.name}@`}${parsed.version}`,
|
|
24
|
+
changelogPath: pkg.changelog ?? `${pkg.path}/CHANGELOG.md`,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=collect-changed-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-changed-packages.js","sourceRoot":"","sources":["../../src/steps/collect-changed-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIhC;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,sBAAsB,CACrC,QAAyB,EACzB,YAAsB;IAEtB,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,eAAe,CACxE,CAAC;QAEF,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,CAAA,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAW,CAAC;QAC5E,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAyB,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,SAAS;QAE9B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,OAAO;YAC1B,OAAO,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE;YAC9D,aAAa,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,eAAe;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PackageResult } from '../types/package-result.js';
|
|
2
|
+
import type { VersionOptions } from '../types/version-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a combined git commit for all version bumps.
|
|
5
|
+
*/
|
|
6
|
+
export declare function commitVersions(results: PackageResult[], opts: VersionOptions): Generator<unknown, void, unknown>;
|
|
7
|
+
//# sourceMappingURL=commit-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-versions.d.ts","sourceRoot":"","sources":["../../src/steps/commit-versions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,wBAAiB,cAAc,CAC7B,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,cAAc,GACnB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAmBnC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a combined git commit for all version bumps.
|
|
4
|
+
*/
|
|
5
|
+
export function* commitVersions(results, opts) {
|
|
6
|
+
if (results.length === 0) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
// Build commit message
|
|
10
|
+
const packageList = results.map((r) => `${r.name}@${r.newVersion}`).join(', ');
|
|
11
|
+
const message = opts.commitMessage?.replace('{packages}', packageList) ?? `chore(release): ${packageList}`;
|
|
12
|
+
// Stage all changed files
|
|
13
|
+
yield sh `git add -A`.must();
|
|
14
|
+
// Create commit
|
|
15
|
+
if (opts.sign) {
|
|
16
|
+
yield sh `git commit -S -m ${message}`.must();
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
yield sh `git commit -m ${message}`.must();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=commit-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-versions.js","sourceRoot":"","sources":["../../src/steps/commit-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIhC;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,cAAc,CAC7B,OAAwB,EACxB,IAAoB;IAEpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,OAAO,GACX,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,mBAAmB,WAAW,EAAE,CAAC;IAE7F,0BAA0B;IAC1B,MAAM,EAAE,CAAA,YAAY,CAAC,IAAI,EAAE,CAAC;IAE5B,gBAAgB;IAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,CAAA,oBAAoB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAA,iBAAiB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PackageConfig } from '../types/package-config.js';
|
|
2
|
+
import type { VersionOptions } from '../types/version-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Discovers packages from workspace configuration.
|
|
5
|
+
* Reads package.json workspaces field and resolves package information.
|
|
6
|
+
*/
|
|
7
|
+
export declare function discoverPackages(opts: VersionOptions): Generator<unknown, PackageConfig[], unknown>;
|
|
8
|
+
//# sourceMappingURL=discover-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-packages.d.ts","sourceRoot":"","sources":["../../src/steps/discover-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,wBAAiB,gBAAgB,CAC/B,IAAI,EAAE,cAAc,GACnB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CA+D9C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Discovers packages from workspace configuration.
|
|
4
|
+
* Reads package.json workspaces field and resolves package information.
|
|
5
|
+
*/
|
|
6
|
+
export function* discoverPackages(opts) {
|
|
7
|
+
// If packages are explicitly configured, use them
|
|
8
|
+
if (opts.packages && opts.packages.length > 0) {
|
|
9
|
+
return opts.packages;
|
|
10
|
+
}
|
|
11
|
+
// Read root package.json
|
|
12
|
+
const rootPkgJson = (yield sh `cat package.json`.stdout());
|
|
13
|
+
// Detect if we're in analysis mode (receiving placeholder values)
|
|
14
|
+
// During analysis, command outputs are empty strings
|
|
15
|
+
if (rootPkgJson === '') {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
const rootPkg = JSON.parse(rootPkgJson);
|
|
19
|
+
const workspaces = rootPkg.workspaces ?? [];
|
|
20
|
+
if (workspaces.length === 0) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
const packages = [];
|
|
24
|
+
// Expand each workspace pattern
|
|
25
|
+
for (const pattern of workspaces) {
|
|
26
|
+
// Use glob to expand the pattern
|
|
27
|
+
const dirs = (yield sh `ls -d ${pattern} 2>/dev/null || true`.stdout());
|
|
28
|
+
const dirList = dirs
|
|
29
|
+
.trim()
|
|
30
|
+
.split('\n')
|
|
31
|
+
.filter((d) => d.length > 0);
|
|
32
|
+
for (const dir of dirList) {
|
|
33
|
+
// Read package.json from each directory
|
|
34
|
+
const pkgJsonResult = (yield sh `cat ${dir}/package.json 2>/dev/null || echo "{}"`.stdout());
|
|
35
|
+
try {
|
|
36
|
+
const pkg = JSON.parse(pkgJsonResult);
|
|
37
|
+
// Only include packages with a name
|
|
38
|
+
if (pkg.name) {
|
|
39
|
+
packages.push({
|
|
40
|
+
name: pkg.name,
|
|
41
|
+
path: dir,
|
|
42
|
+
tagPrefix: `${pkg.name}@`,
|
|
43
|
+
changelog: `${dir}/CHANGELOG.md`,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Skip directories with invalid package.json
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return packages;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=discover-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-packages.js","sourceRoot":"","sources":["../../src/steps/discover-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIhC;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,gBAAgB,CAC/B,IAAoB;IAEpB,kDAAkD;IAClD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,CAAA,kBAAkB,CAAC,MAAM,EAAE,CAAW,CAAC;IAEpE,kEAAkE;IAClE,qDAAqD;IACrD,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAErC,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,gCAAgC;IAChC,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QACjC,iCAAiC;QACjC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAA,SAAS,OAAO,sBAAsB,CAAC,MAAM,EAAE,CAAW,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI;aACjB,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,wCAAwC;YACxC,MAAM,aAAa,GACjB,CAAC,MAAM,EAAE,CAAA,OAAO,GAAG,wCAAwC,CAAC,MAAM,EAAE,CAAW,CAAC;YAElF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAInC,CAAC;gBAEF,oCAAoC;gBACpC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,GAAG;wBACT,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG;wBACzB,SAAS,EAAE,GAAG,GAAG,eAAe;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PackageResult } from '../types/package-result.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a root-level changelog aggregating all package changes.
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateRootChangelog(results: PackageResult[]): Generator<unknown, string, unknown>;
|
|
6
|
+
//# sourceMappingURL=generate-changelog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-changelog.d.ts","sourceRoot":"","sources":["../../src/steps/generate-changelog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,wBAAiB,qBAAqB,CACpC,OAAO,EAAE,aAAa,EAAE,GACvB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CA+BrC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a root-level changelog aggregating all package changes.
|
|
4
|
+
*/
|
|
5
|
+
export function* generateRootChangelog(results) {
|
|
6
|
+
if (results.length === 0) {
|
|
7
|
+
return '';
|
|
8
|
+
}
|
|
9
|
+
const date = new Date().toISOString().split('T')[0];
|
|
10
|
+
const lines = [`## ${date}`, ''];
|
|
11
|
+
for (const result of results) {
|
|
12
|
+
lines.push(`### ${result.name} v${result.newVersion}`);
|
|
13
|
+
lines.push('');
|
|
14
|
+
// Read the package changelog and extract the latest section
|
|
15
|
+
const changelogContent = (yield sh `cat ${result.changelogPath} 2>/dev/null || echo ""`.stdout());
|
|
16
|
+
if (changelogContent) {
|
|
17
|
+
// Extract the first version section (after the header)
|
|
18
|
+
const match = changelogContent.match(/## \[[\d.]+.*?\][\s\S]*?(?=## \[|$)/);
|
|
19
|
+
if (match) {
|
|
20
|
+
// Remove the version header line and add the content
|
|
21
|
+
const content = match[0].split('\n').slice(1).join('\n').trim();
|
|
22
|
+
if (content) {
|
|
23
|
+
lines.push(content);
|
|
24
|
+
lines.push('');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return lines.join('\n');
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=generate-changelog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-changelog.js","sourceRoot":"","sources":["../../src/steps/generate-changelog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAGhC;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,qBAAqB,CACpC,OAAwB;IAExB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAa,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,4DAA4D;QAC5D,MAAM,gBAAgB,GACpB,CAAC,MAAM,EAAE,CAAA,OAAO,MAAM,CAAC,aAAa,yBAAyB,CAAC,MAAM,EAAE,CAAW,CAAC;QAEpF,IAAI,gBAAgB,EAAE,CAAC;YACrB,uDAAuD;YACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC5E,IAAI,KAAK,EAAE,CAAC;gBACV,qDAAqD;gBACrD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChE,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { bumpPackage, shRaw } from './bump-package.js';
|
|
2
|
+
export { collectChangedPackages } from './collect-changed-packages.js';
|
|
3
|
+
export { commitVersions } from './commit-versions.js';
|
|
4
|
+
export { discoverPackages } from './discover-packages.js';
|
|
5
|
+
export { generateRootChangelog } from './generate-changelog.js';
|
|
6
|
+
export { tagVersions } from './tag-versions.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { bumpPackage, shRaw } from './bump-package.js';
|
|
2
|
+
export { collectChangedPackages } from './collect-changed-packages.js';
|
|
3
|
+
export { commitVersions } from './commit-versions.js';
|
|
4
|
+
export { discoverPackages } from './discover-packages.js';
|
|
5
|
+
export { generateRootChangelog } from './generate-changelog.js';
|
|
6
|
+
export { tagVersions } from './tag-versions.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PackageResult } from '../types/package-result.js';
|
|
2
|
+
import type { VersionOptions } from '../types/version-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates git tags for all versioned packages.
|
|
5
|
+
*/
|
|
6
|
+
export declare function tagVersions(results: PackageResult[], opts: VersionOptions): Generator<unknown, void, unknown>;
|
|
7
|
+
//# sourceMappingURL=tag-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-versions.d.ts","sourceRoot":"","sources":["../../src/steps/tag-versions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,wBAAiB,WAAW,CAC1B,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,cAAc,GACnB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CASnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
/**
|
|
3
|
+
* Creates git tags for all versioned packages.
|
|
4
|
+
*/
|
|
5
|
+
export function* tagVersions(results, opts) {
|
|
6
|
+
for (const result of results) {
|
|
7
|
+
const tagMessage = `Release ${result.tagName}`;
|
|
8
|
+
if (opts.sign) {
|
|
9
|
+
yield sh `git tag -s ${result.tagName} -m ${tagMessage}`.must();
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
yield sh `git tag -a ${result.tagName} -m ${tagMessage}`.must();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tag-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-versions.js","sourceRoot":"","sources":["../../src/steps/tag-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIhC;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAC1B,OAAwB,EACxB,IAAoB;IAEpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,EAAE,CAAA,cAAc,MAAM,CAAC,OAAO,OAAO,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAA,cAAc,MAAM,CAAC,OAAO,OAAO,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
|