@solidxai/solidctl 0.1.48-beta.0 → 0.1.48-beta.3

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.
@@ -0,0 +1,14 @@
1
+ import { SolidModulePublishConfig } from '../module-package';
2
+ export interface ModuleReleaseOptions {
3
+ preid?: string;
4
+ dryRun?: boolean;
5
+ force?: boolean;
6
+ skipTests?: boolean;
7
+ testsOnly?: boolean;
8
+ mainBranch?: string;
9
+ devBranch?: string;
10
+ enhanceChangelog?: boolean;
11
+ merge?: boolean;
12
+ }
13
+ export declare function planSolidModuleVersion(currentVersion: string, versionType: string, preid?: string): string;
14
+ export declare function runSolidModuleRelease(versionType: string, options: ModuleReleaseOptions, publishConfig: SolidModulePublishConfig): Promise<void>;
@@ -0,0 +1,317 @@
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.planSolidModuleVersion = planSolidModuleVersion;
7
+ exports.runSolidModuleRelease = runSolidModuleRelease;
8
+ const child_process_1 = require("child_process");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const semver_1 = __importDefault(require("semver"));
12
+ const module_package_1 = require("../module-package");
13
+ const release_changelog_1 = require("./release-changelog");
14
+ function capture(command, args, cwd) {
15
+ return (0, child_process_1.execFileSync)(command, args, {
16
+ cwd,
17
+ encoding: 'utf-8',
18
+ stdio: ['ignore', 'pipe', 'pipe'],
19
+ }).trim();
20
+ }
21
+ function run(command, args, cwd, dryRun) {
22
+ if (dryRun) {
23
+ console.log(`[dry-run] ${[command, ...args].join(' ')}`);
24
+ return;
25
+ }
26
+ (0, child_process_1.execFileSync)(command, args, { cwd, stdio: 'inherit' });
27
+ }
28
+ function readVersion(projectRoot) {
29
+ const packagePath = path_1.default.join(projectRoot, 'package.json');
30
+ if (!fs_1.default.existsSync(packagePath)) {
31
+ throw new Error('SolidX module releases require a root package.json.');
32
+ }
33
+ const packageJson = JSON.parse(fs_1.default.readFileSync(packagePath, 'utf-8'));
34
+ if (!packageJson.version || !semver_1.default.valid(packageJson.version)) {
35
+ throw new Error('The root package.json must contain a valid SemVer version.');
36
+ }
37
+ if (packageJson.private !== true) {
38
+ throw new Error('The root package.json must set private to true for a SolidX module release.');
39
+ }
40
+ return packageJson.version;
41
+ }
42
+ function planSolidModuleVersion(currentVersion, versionType, preid) {
43
+ if (!['patch', 'minor', 'major', 'prerelease', 'preminor', 'premajor'].includes(versionType)) {
44
+ throw new Error(`Unsupported release version type: ${versionType}`);
45
+ }
46
+ let releaseType;
47
+ if (!preid) {
48
+ releaseType = versionType;
49
+ }
50
+ else if (versionType === 'minor' || versionType === 'preminor') {
51
+ releaseType = 'preminor';
52
+ }
53
+ else if (versionType === 'major' || versionType === 'premajor') {
54
+ releaseType = 'premajor';
55
+ }
56
+ else {
57
+ releaseType = semver_1.default.prerelease(currentVersion) ? 'prerelease' : 'prepatch';
58
+ }
59
+ const plannedVersion = preid
60
+ ? semver_1.default.inc(currentVersion, releaseType, preid)
61
+ : semver_1.default.inc(currentVersion, releaseType);
62
+ if (!plannedVersion) {
63
+ throw new Error(`Could not calculate a version after ${currentVersion}.`);
64
+ }
65
+ return plannedVersion;
66
+ }
67
+ function getTagCommit(projectRoot, tag) {
68
+ try {
69
+ return (capture('git', ['rev-list', '-n', '1', tag], projectRoot) || undefined);
70
+ }
71
+ catch {
72
+ return undefined;
73
+ }
74
+ }
75
+ function getRemoteTagCommit(projectRoot, tag) {
76
+ try {
77
+ const output = capture('git', ['ls-remote', '--tags', 'origin', `refs/tags/${tag}^{}`], projectRoot);
78
+ if (output) {
79
+ return output.split(/\s+/)[0];
80
+ }
81
+ const lightweight = capture('git', ['ls-remote', '--tags', 'origin', `refs/tags/${tag}`], projectRoot);
82
+ return lightweight ? lightweight.split(/\s+/)[0] : undefined;
83
+ }
84
+ catch {
85
+ return undefined;
86
+ }
87
+ }
88
+ function readGitHubRelease(projectRoot, tag) {
89
+ try {
90
+ return JSON.parse(capture('gh', ['release', 'view', tag, '--json', 'url,assets'], projectRoot));
91
+ }
92
+ catch {
93
+ return undefined;
94
+ }
95
+ }
96
+ function ensureCleanTree(projectRoot, dryRun) {
97
+ const status = capture('git', ['status', '--porcelain'], projectRoot);
98
+ if (status) {
99
+ if (dryRun) {
100
+ console.log('[dry-run] Working tree is not clean; a real release would stop.');
101
+ return;
102
+ }
103
+ throw new Error('The working tree must be clean before releasing.');
104
+ }
105
+ }
106
+ function validateBranchAndRemote(projectRoot, branch, force, dryRun, allowAhead) {
107
+ const currentBranch = capture('git', ['branch', '--show-current'], projectRoot);
108
+ if (currentBranch !== branch && !force) {
109
+ throw new Error(`SolidX module releases must run from ${branch}; current branch is ${currentBranch}.`);
110
+ }
111
+ if (dryRun) {
112
+ console.log(`[dry-run] Would fetch origin/${branch} and verify it matches HEAD.`);
113
+ return;
114
+ }
115
+ run('git', ['fetch', 'origin', branch, '--tags'], projectRoot, false);
116
+ const divergence = capture('git', ['rev-list', '--left-right', '--count', `HEAD...origin/${branch}`], projectRoot)
117
+ .split(/\s+/)
118
+ .map(Number);
119
+ const isInvalidDivergence = divergence[1] !== 0 || (!allowAhead && divergence[0] !== 0);
120
+ if (!force && isInvalidDivergence) {
121
+ throw new Error(`HEAD and origin/${branch} must be synchronized before releasing.`);
122
+ }
123
+ }
124
+ function ensureGitHubAccess(projectRoot, dryRun) {
125
+ if (dryRun) {
126
+ console.log('[dry-run] Would verify GitHub CLI authentication.');
127
+ return;
128
+ }
129
+ run('gh', ['auth', 'status'], projectRoot, false);
130
+ }
131
+ function runValidationCommands(projectRoot, commands, dryRun) {
132
+ for (const command of commands) {
133
+ if (dryRun) {
134
+ console.log(`[dry-run] ${command}`);
135
+ }
136
+ else {
137
+ (0, child_process_1.execSync)(command, { cwd: projectRoot, stdio: 'inherit' });
138
+ }
139
+ }
140
+ }
141
+ function ensureModuleSourcesAreCommitted(projectRoot, config) {
142
+ const sourcePaths = [config.apiModulePath, config.uiModulePath].map((sourcePath) => path_1.default.relative(projectRoot, sourcePath));
143
+ const untracked = capture('git', ['ls-files', '--others', '--exclude-standard', '--', ...sourcePaths], projectRoot);
144
+ const ignored = capture('git', [
145
+ 'ls-files',
146
+ '--others',
147
+ '--ignored',
148
+ '--exclude-standard',
149
+ '--',
150
+ ...sourcePaths,
151
+ ], projectRoot);
152
+ if (untracked || ignored) {
153
+ const paths = [untracked, ignored].filter(Boolean).join('\n');
154
+ throw new Error(`Module source trees contain untracked or ignored files that would not be part of the release commit:\n${paths}`);
155
+ }
156
+ }
157
+ function ensureOutputDirectoryIsIgnored(projectRoot, config) {
158
+ const relativeOutputDir = path_1.default
159
+ .relative(projectRoot, config.outputDir)
160
+ .split(path_1.default.sep)
161
+ .join('/');
162
+ const ignoredProbe = `${relativeOutputDir}/.solidctl-release-output`;
163
+ try {
164
+ capture('git', ['check-ignore', '--no-index', ignoredProbe], projectRoot);
165
+ }
166
+ catch {
167
+ throw new Error(`Module release output directory must be gitignored: ${relativeOutputDir}`);
168
+ }
169
+ }
170
+ function updatePackageVersion(projectRoot, version) {
171
+ const packagePath = path_1.default.join(projectRoot, 'package.json');
172
+ const packageJson = JSON.parse(fs_1.default.readFileSync(packagePath, 'utf-8'));
173
+ packageJson.version = version;
174
+ fs_1.default.writeFileSync(packagePath, `${JSON.stringify(packageJson, null, 2)}\n`, 'utf-8');
175
+ }
176
+ function writeChecksumFile(filePath, sha256) {
177
+ const checksumPath = `${filePath}.sha256`;
178
+ fs_1.default.writeFileSync(checksumPath, `${sha256} ${path_1.default.basename(filePath)}\n`, 'utf-8');
179
+ return checksumPath;
180
+ }
181
+ function publishGitHubRelease(projectRoot, tag, version, artifactPath, checksumPath, prerelease) {
182
+ const existing = readGitHubRelease(projectRoot, tag);
183
+ if (!existing) {
184
+ const args = [
185
+ 'release',
186
+ 'create',
187
+ tag,
188
+ artifactPath,
189
+ checksumPath,
190
+ '--title',
191
+ tag,
192
+ '--notes',
193
+ (0, release_changelog_1.getChangelogEntry)(projectRoot, version),
194
+ ];
195
+ if (prerelease) {
196
+ args.push('--prerelease');
197
+ }
198
+ run('gh', args, projectRoot, false);
199
+ }
200
+ else {
201
+ run('gh', ['release', 'upload', tag, artifactPath, checksumPath, '--clobber'], projectRoot, false);
202
+ }
203
+ return readGitHubRelease(projectRoot, tag)?.url || '';
204
+ }
205
+ function pushReleaseRefs(projectRoot, branch, tag) {
206
+ run('git', [
207
+ 'push',
208
+ '--atomic',
209
+ 'origin',
210
+ `HEAD:refs/heads/${branch}`,
211
+ `refs/tags/${tag}:refs/tags/${tag}`,
212
+ ], projectRoot, false);
213
+ const head = capture('git', ['rev-parse', 'HEAD'], projectRoot);
214
+ const remoteBranch = capture('git', ['ls-remote', '--heads', 'origin', `refs/heads/${branch}`], projectRoot).split(/\s+/)[0];
215
+ if (remoteBranch !== head || getRemoteTagCommit(projectRoot, tag) !== head) {
216
+ throw new Error('Remote release branch and tag were not updated to the release commit.');
217
+ }
218
+ }
219
+ function isResumeRelease(projectRoot, currentVersion) {
220
+ const tag = `v${currentVersion}`;
221
+ const head = capture('git', ['rev-parse', 'HEAD'], projectRoot);
222
+ const localTagCommit = getTagCommit(projectRoot, tag);
223
+ const remoteTagCommit = getRemoteTagCommit(projectRoot, tag);
224
+ if (remoteTagCommit && remoteTagCommit !== head) {
225
+ throw new Error(`Remote tag ${tag} does not point to the local release commit.`);
226
+ }
227
+ return localTagCommit === head || remoteTagCommit === head;
228
+ }
229
+ async function generateReleaseAssets(projectRoot, config, version) {
230
+ const tag = `v${version}`;
231
+ const head = capture('git', ['rev-parse', 'HEAD'], projectRoot);
232
+ const sourceRef = getTagCommit(projectRoot, tag) === head ? `${tag}^` : 'HEAD';
233
+ const result = await (0, module_package_1.exportModulePackage)({
234
+ projectRoot,
235
+ config,
236
+ version,
237
+ exportedAt: capture('git', ['show', '-s', '--format=%cI', sourceRef], projectRoot),
238
+ });
239
+ const checksumPath = writeChecksumFile(result.filePath, result.sha256);
240
+ console.log(`Validated module package: ${result.filePath}`);
241
+ return { artifactPath: result.filePath, checksumPath };
242
+ }
243
+ async function runSolidModuleRelease(versionType, options, publishConfig) {
244
+ const projectRoot = process.cwd();
245
+ const config = (0, module_package_1.resolveSolidModuleConfig)(projectRoot, publishConfig);
246
+ const mainBranch = options.mainBranch || config.mainBranch || 'main';
247
+ const devBranch = options.devBranch || config.devBranch || mainBranch;
248
+ const dryRun = options.dryRun || false;
249
+ const force = options.force || false;
250
+ const reverseMerge = options.merge !== false && (config.reverseMerge ?? true);
251
+ if (options.skipTests && options.testsOnly) {
252
+ throw new Error('Cannot use --skip-tests and --tests-only together.');
253
+ }
254
+ const currentVersion = readVersion(projectRoot);
255
+ const currentTag = `v${currentVersion}`;
256
+ const head = capture('git', ['rev-parse', 'HEAD'], projectRoot);
257
+ const remoteCurrentTag = dryRun
258
+ ? undefined
259
+ : getRemoteTagCommit(projectRoot, currentTag);
260
+ const resumeCandidate = !dryRun &&
261
+ (getTagCommit(projectRoot, currentTag) === head ||
262
+ remoteCurrentTag === head);
263
+ const resume = resumeCandidate && isResumeRelease(projectRoot, currentVersion);
264
+ const version = resume
265
+ ? currentVersion
266
+ : planSolidModuleVersion(currentVersion, versionType, options.preid);
267
+ const isPrerelease = semver_1.default.prerelease(version) !== null;
268
+ const releaseBranch = isPrerelease ? devBranch : mainBranch;
269
+ const tag = `v${version}`;
270
+ ensureCleanTree(projectRoot, dryRun);
271
+ validateBranchAndRemote(projectRoot, releaseBranch, force, dryRun, resumeCandidate);
272
+ ensureGitHubAccess(projectRoot, dryRun);
273
+ if (!resume) {
274
+ if (getTagCommit(projectRoot, tag) ||
275
+ getRemoteTagCommit(projectRoot, tag)) {
276
+ throw new Error(`Tag ${tag} already exists.`);
277
+ }
278
+ if (readGitHubRelease(projectRoot, tag)) {
279
+ throw new Error(`GitHub Release ${tag} already exists.`);
280
+ }
281
+ }
282
+ console.log(`${resume ? 'Resuming' : 'Preparing'} ${config.moduleName} ${version}.`);
283
+ if (!options.skipTests) {
284
+ runValidationCommands(projectRoot, config.validationCommands, dryRun);
285
+ }
286
+ if (options.testsOnly) {
287
+ console.log('Release validation completed successfully.');
288
+ return;
289
+ }
290
+ if (dryRun) {
291
+ console.log(`[dry-run] Would export and validate ${config.artifactName}-v${version}.sldx.`);
292
+ console.log(`[dry-run] Would commit, tag ${tag}, push, and publish the GitHub Release.`);
293
+ return;
294
+ }
295
+ ensureCleanTree(projectRoot, false);
296
+ ensureModuleSourcesAreCommitted(projectRoot, config);
297
+ ensureOutputDirectoryIsIgnored(projectRoot, config);
298
+ const assets = await generateReleaseAssets(projectRoot, config, version);
299
+ if (!resume) {
300
+ (0, release_changelog_1.generateChangelog)(version, options.enhanceChangelog || false, false);
301
+ updatePackageVersion(projectRoot, version);
302
+ run('git', ['add', 'package.json', 'CHANGELOG.md'], projectRoot, false);
303
+ run('git', ['commit', '-m', `chore: release ${version}`], projectRoot, false);
304
+ run('git', ['tag', '-a', tag, '-m', tag], projectRoot, false);
305
+ }
306
+ pushReleaseRefs(projectRoot, releaseBranch, tag);
307
+ const url = publishGitHubRelease(projectRoot, tag, version, assets.artifactPath, assets.checksumPath, isPrerelease);
308
+ if (!isPrerelease && reverseMerge && devBranch !== mainBranch) {
309
+ run('git', ['checkout', devBranch], projectRoot, false);
310
+ run('git', ['pull', '--ff-only', 'origin', devBranch], projectRoot, false);
311
+ run('git', ['merge', mainBranch, '-m', `chore: merge ${mainBranch} after release`], projectRoot, false);
312
+ run('git', ['push', 'origin', devBranch], projectRoot, false);
313
+ run('git', ['checkout', mainBranch], projectRoot, false);
314
+ }
315
+ console.log(`Published ${tag}${url ? `: ${url}` : ''}`);
316
+ }
317
+ //# sourceMappingURL=module-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-release.js","sourceRoot":"","sources":["../../src/commands/module-release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerModuleCommand(program: Command): void;
@@ -0,0 +1,67 @@
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.registerModuleCommand = registerModuleCommand;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const module_package_1 = require("../module-package");
10
+ function readRootVersion(projectRoot) {
11
+ const packagePath = path_1.default.join(projectRoot, 'package.json');
12
+ if (!fs_1.default.existsSync(packagePath)) {
13
+ return undefined;
14
+ }
15
+ const packageJson = JSON.parse(fs_1.default.readFileSync(packagePath, 'utf-8'));
16
+ return packageJson.version;
17
+ }
18
+ function registerModuleCommand(program) {
19
+ const moduleCommand = program
20
+ .command('module')
21
+ .description('Export and validate SolidX extension module packages');
22
+ moduleCommand
23
+ .command('export [module-name]')
24
+ .description('Export a SolidX extension module from the local project')
25
+ .option('-v, --module-version <version>', 'Module version (defaults to the root package version)')
26
+ .option('-o, --output <path>', 'Output .sldx path')
27
+ .action(async (moduleName, options) => {
28
+ const projectRoot = process.cwd();
29
+ const configured = (0, module_package_1.loadSolidModulePublishConfig)(projectRoot);
30
+ const publishConfig = configured ||
31
+ {
32
+ type: 'solidx-module',
33
+ moduleName: moduleName || '',
34
+ };
35
+ if (moduleName && configured && moduleName !== configured.moduleName) {
36
+ publishConfig.moduleName = moduleName;
37
+ }
38
+ if (!publishConfig.moduleName) {
39
+ throw new Error('Provide a module name or configure publish.moduleName in solidctl.config.json.');
40
+ }
41
+ const version = options.moduleVersion || readRootVersion(projectRoot);
42
+ if (!version) {
43
+ throw new Error('Provide --module-version or add a version to the root package.json.');
44
+ }
45
+ const result = await (0, module_package_1.exportModulePackage)({
46
+ projectRoot,
47
+ config: (0, module_package_1.resolveSolidModuleConfig)(projectRoot, publishConfig),
48
+ version,
49
+ outputPath: options.output,
50
+ });
51
+ console.log(`Created ${result.filePath}`);
52
+ console.log(`SHA-256: ${result.sha256}`);
53
+ });
54
+ moduleCommand
55
+ .command('validate <file>')
56
+ .description('Validate a SolidX extension module package')
57
+ .option('-n, --module-name <name>', 'Expected module name')
58
+ .option('-v, --module-version <version>', 'Expected module version')
59
+ .action(async (file, options) => {
60
+ const manifest = await (0, module_package_1.validateModulePackage)(path_1.default.resolve(file), {
61
+ expectedModuleName: options.moduleName,
62
+ expectedVersion: options.moduleVersion,
63
+ });
64
+ console.log(`Valid ${manifest.module.name} module package, version ${manifest.module.version || 'unversioned'}`);
65
+ });
66
+ }
67
+ //# sourceMappingURL=module.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.command.js","sourceRoot":"","sources":["../../src/commands/module.command.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
- export declare function generateAndCommitChangelog(plannedVersion: string, enhanceChangelog: boolean, dryRun: boolean): Promise<void>;
1
+ export declare function generateChangelog(plannedVersion: string, enhanceChangelog: boolean, dryRun: boolean, isPrerelease?: boolean): void;
2
+ export declare function generateAndCommitChangelog(plannedVersion: string, enhanceChangelog: boolean, dryRun: boolean, isPrerelease?: boolean): Promise<void>;
3
+ export declare function getChangelogEntry(projectRoot: string, version: string): string;
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateChangelog = generateChangelog;
6
7
  exports.generateAndCommitChangelog = generateAndCommitChangelog;
8
+ exports.getChangelogEntry = getChangelogEntry;
7
9
  const child_process_1 = require("child_process");
8
10
  const fs_1 = __importDefault(require("fs"));
9
11
  const path_1 = __importDefault(require("path"));
@@ -49,9 +51,19 @@ function getPreviousStableTag() {
49
51
  return undefined;
50
52
  }
51
53
  }
54
+ function getLatestTag() {
55
+ try {
56
+ const tag = capture('git tag --sort=-version:refname | head -1');
57
+ return tag || undefined;
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ }
52
63
  function getCommitsSinceTag(tag) {
53
64
  try {
54
- const raw = capture(`git log ${tag}..HEAD --format="%s" --no-merges`);
65
+ const range = tag ? `${tag}..HEAD` : 'HEAD';
66
+ const raw = capture(`git log ${range} --format="%s" --no-merges`);
55
67
  return raw
56
68
  .split('\n')
57
69
  .map((l) => l.trim())
@@ -133,11 +145,11 @@ function writeChangelog(entry, changelogPath) {
133
145
  fs_1.default.writeFileSync(changelogPath, before + entry + '\n\n' + after, 'utf-8');
134
146
  }
135
147
  }
136
- async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryRun) {
148
+ function generateChangelog(plannedVersion, enhanceChangelog, dryRun, isPrerelease = false) {
137
149
  const changelogPath = path_1.default.join(process.cwd(), 'CHANGELOG.md');
138
150
  const today = new Date().toISOString().slice(0, 10);
139
- const prevTag = getPreviousStableTag();
140
- const commits = prevTag ? getCommitsSinceTag(prevTag) : [];
151
+ const prevTag = isPrerelease ? getLatestTag() : getPreviousStableTag();
152
+ const commits = getCommitsSinceTag(prevTag);
141
153
  console.log(`Generating changelog (${commits.length} commits since ${prevTag ?? 'beginning'})...`);
142
154
  const groups = groupCommits(commits);
143
155
  let entry = buildEntry(plannedVersion, today, groups);
@@ -151,7 +163,24 @@ async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryR
151
163
  else {
152
164
  writeChangelog(entry, changelogPath);
153
165
  }
166
+ }
167
+ async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryRun, isPrerelease = false) {
168
+ generateChangelog(plannedVersion, enhanceChangelog, dryRun, isPrerelease);
154
169
  run('git add CHANGELOG.md', dryRun);
155
170
  run(`git commit -m "docs: update changelog for ${plannedVersion}"`, dryRun);
156
171
  }
172
+ function getChangelogEntry(projectRoot, version) {
173
+ const changelogPath = path_1.default.join(projectRoot, 'CHANGELOG.md');
174
+ if (!fs_1.default.existsSync(changelogPath)) {
175
+ throw new Error(`CHANGELOG.md does not exist at ${projectRoot}`);
176
+ }
177
+ const changelog = fs_1.default.readFileSync(changelogPath, 'utf-8');
178
+ const heading = `## [${version}]`;
179
+ const start = changelog.indexOf(heading);
180
+ if (start === -1) {
181
+ throw new Error(`CHANGELOG.md does not contain an entry for ${version}.`);
182
+ }
183
+ const nextEntry = changelog.indexOf('\n## [', start + heading.length);
184
+ return changelog.slice(start, nextEntry === -1 ? undefined : nextEntry).trim();
185
+ }
157
186
  //# sourceMappingURL=release-changelog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"release-changelog.js","sourceRoot":"","sources":["../../src/commands/release-changelog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-changelog.js","sourceRoot":"","sources":["../../src/commands/release-changelog.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ const net_1 = __importDefault(require("net"));
11
11
  const os_1 = __importDefault(require("os"));
12
12
  const path_1 = __importDefault(require("path"));
13
13
  const release_changelog_1 = require("./release-changelog");
14
+ const module_package_1 = require("../module-package");
15
+ const module_release_1 = require("./module-release");
14
16
  const DEFAULT_CONFIG = {
15
17
  mainBranch: 'main',
16
18
  devBranch: 'dev',
@@ -81,6 +83,17 @@ function resolveReleaseProject() {
81
83
  const packageName = packageJson?.name;
82
84
  const solidApiPackageJsonPath = path_1.default.join(process.cwd(), 'solid-api', 'package.json');
83
85
  const solidApiPackageName = readPackageJson(solidApiPackageJsonPath)?.name;
86
+ const moduleConfig = (0, module_package_1.loadSolidModulePublishConfig)(process.cwd());
87
+ if (moduleConfig) {
88
+ console.log(`Release project resolved: SolidX module (${moduleConfig.moduleName})`);
89
+ return {
90
+ type: 'solidx-module',
91
+ cwdName,
92
+ packageName,
93
+ versionSourcePath: path_1.default.join(process.cwd(), 'package.json'),
94
+ moduleConfig,
95
+ };
96
+ }
84
97
  switch (cwdName) {
85
98
  case 'solidctl':
86
99
  if (packageName === '@solidxai/solidctl') {
@@ -88,12 +101,14 @@ function resolveReleaseProject() {
88
101
  return { type: 'solidctl', cwdName, packageName, versionSourcePath: path_1.default.join(process.cwd(), 'package.json') };
89
102
  }
90
103
  break;
104
+ case 'core':
91
105
  case 'solid-core-module':
92
106
  if (packageName === '@solidxai/core') {
93
107
  console.log(`Release project resolved: solid-core-module (${packageName})`);
94
108
  return { type: 'solid-core-module', cwdName, packageName, versionSourcePath: path_1.default.join(process.cwd(), 'package.json') };
95
109
  }
96
110
  break;
111
+ case 'core-ui':
97
112
  case 'solid-core-ui':
98
113
  if (packageName === '@solidxai/core-ui') {
99
114
  console.log(`Release project resolved: solid-core-ui (${packageName})`);
@@ -111,6 +126,7 @@ function resolveReleaseProject() {
111
126
  };
112
127
  }
113
128
  break;
129
+ case 'code-builder':
114
130
  case 'solid-code-builder':
115
131
  if (packageName === '@solidxai/code-builder') {
116
132
  console.log(`Release project resolved: solid-code-builder (${packageName})`);
@@ -119,7 +135,7 @@ function resolveReleaseProject() {
119
135
  break;
120
136
  }
121
137
  console.error(`❌ Could not resolve release project from folder "${cwdName}" and package name "${packageName || solidApiPackageName || 'unknown'}".`);
122
- console.error(' Supported release folders are solidctl, solid-core-module, solid-core-ui, solid-library-management, and solid-code-builder.');
138
+ console.error(' Supported release folders are solidctl, core/solid-core-module, core-ui/solid-core-ui, solid-library-management, and code-builder/solid-code-builder.');
123
139
  process.exit(1);
124
140
  }
125
141
  function getCurrentBranch() {
@@ -873,6 +889,10 @@ async function runSharedReleaseFlow(versionType, options, project) {
873
889
  exec(`git pull origin ${mainBranch}`, dryRun);
874
890
  }
875
891
  else {
892
+ if (!plannedVersion) {
893
+ throw new Error('Cannot determine planned version for pre-release. Ensure the project has a valid package.json with a version field.');
894
+ }
895
+ await (0, release_changelog_1.generateAndCommitChangelog)(plannedVersion, enhanceChangelog, dryRun, true);
876
896
  exec(versionCmd, dryRun);
877
897
  console.log('Pushing to git (with tags)...');
878
898
  exec('git push --follow-tags', dryRun);
@@ -1073,6 +1093,12 @@ Configuration:
1073
1093
  case 'solid-code-builder':
1074
1094
  await runSharedReleaseFlow(versionType, options, project);
1075
1095
  break;
1096
+ case 'solidx-module':
1097
+ if (!project.moduleConfig) {
1098
+ throw new Error('Resolved SolidX module release is missing its publish configuration.');
1099
+ }
1100
+ await (0, module_release_1.runSolidModuleRelease)(versionType, options, project.moduleConfig);
1101
+ break;
1076
1102
  }
1077
1103
  });
1078
1104
  }