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

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 generateChangelog(plannedVersion: string, enhanceChangelog: boolean, dryRun: boolean): void;
1
2
  export declare function generateAndCommitChangelog(plannedVersion: string, enhanceChangelog: boolean, dryRun: 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"));
@@ -51,7 +53,8 @@ function getPreviousStableTag() {
51
53
  }
52
54
  function getCommitsSinceTag(tag) {
53
55
  try {
54
- const raw = capture(`git log ${tag}..HEAD --format="%s" --no-merges`);
56
+ const range = tag ? `${tag}..HEAD` : 'HEAD';
57
+ const raw = capture(`git log ${range} --format="%s" --no-merges`);
55
58
  return raw
56
59
  .split('\n')
57
60
  .map((l) => l.trim())
@@ -133,11 +136,11 @@ function writeChangelog(entry, changelogPath) {
133
136
  fs_1.default.writeFileSync(changelogPath, before + entry + '\n\n' + after, 'utf-8');
134
137
  }
135
138
  }
136
- async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryRun) {
139
+ function generateChangelog(plannedVersion, enhanceChangelog, dryRun) {
137
140
  const changelogPath = path_1.default.join(process.cwd(), 'CHANGELOG.md');
138
141
  const today = new Date().toISOString().slice(0, 10);
139
142
  const prevTag = getPreviousStableTag();
140
- const commits = prevTag ? getCommitsSinceTag(prevTag) : [];
143
+ const commits = getCommitsSinceTag(prevTag);
141
144
  console.log(`Generating changelog (${commits.length} commits since ${prevTag ?? 'beginning'})...`);
142
145
  const groups = groupCommits(commits);
143
146
  let entry = buildEntry(plannedVersion, today, groups);
@@ -151,7 +154,24 @@ async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryR
151
154
  else {
152
155
  writeChangelog(entry, changelogPath);
153
156
  }
157
+ }
158
+ async function generateAndCommitChangelog(plannedVersion, enhanceChangelog, dryRun) {
159
+ generateChangelog(plannedVersion, enhanceChangelog, dryRun);
154
160
  run('git add CHANGELOG.md', dryRun);
155
161
  run(`git commit -m "docs: update changelog for ${plannedVersion}"`, dryRun);
156
162
  }
163
+ function getChangelogEntry(projectRoot, version) {
164
+ const changelogPath = path_1.default.join(projectRoot, 'CHANGELOG.md');
165
+ if (!fs_1.default.existsSync(changelogPath)) {
166
+ throw new Error(`CHANGELOG.md does not exist at ${projectRoot}`);
167
+ }
168
+ const changelog = fs_1.default.readFileSync(changelogPath, 'utf-8');
169
+ const heading = `## [${version}]`;
170
+ const start = changelog.indexOf(heading);
171
+ if (start === -1) {
172
+ throw new Error(`CHANGELOG.md does not contain an entry for ${version}.`);
173
+ }
174
+ const nextEntry = changelog.indexOf('\n## [', start + heading.length);
175
+ return changelog.slice(start, nextEntry === -1 ? undefined : nextEntry).trim();
176
+ }
157
177
  //# 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') {
@@ -1073,6 +1086,12 @@ Configuration:
1073
1086
  case 'solid-code-builder':
1074
1087
  await runSharedReleaseFlow(versionType, options, project);
1075
1088
  break;
1089
+ case 'solidx-module':
1090
+ if (!project.moduleConfig) {
1091
+ throw new Error('Resolved SolidX module release is missing its publish configuration.');
1092
+ }
1093
+ await (0, module_release_1.runSolidModuleRelease)(versionType, options, project.moduleConfig);
1094
+ break;
1076
1095
  }
1077
1096
  });
1078
1097
  }