@sparkleideas/deployment 3.0.0-alpha.21 → 3.0.0-alpha.30

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,313 @@
1
+ /**
2
+ * Release Manager
3
+ * Handles version bumping, changelog generation, and git tagging
4
+ */
5
+ import { execSync } from 'child_process';
6
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
7
+ import { join } from 'path';
8
+ /**
9
+ * Allowed git commands for security - prevents command injection
10
+ */
11
+ const ALLOWED_GIT_COMMANDS = [
12
+ 'git status --porcelain',
13
+ 'git rev-parse HEAD',
14
+ 'git log',
15
+ 'git tag',
16
+ 'git add',
17
+ 'git commit',
18
+ 'git describe',
19
+ ];
20
+ /**
21
+ * Validate command against allowlist to prevent command injection
22
+ */
23
+ function validateCommand(cmd) {
24
+ // Check for shell metacharacters
25
+ if (/[;&|`$()<>]/.test(cmd)) {
26
+ throw new Error(`Invalid command: contains shell metacharacters`);
27
+ }
28
+ // Must start with an allowed command prefix
29
+ const isAllowed = ALLOWED_GIT_COMMANDS.some(prefix => cmd.startsWith(prefix));
30
+ if (!isAllowed) {
31
+ throw new Error(`Command not allowed: ${cmd.split(' ')[0]}`);
32
+ }
33
+ }
34
+ export class ReleaseManager {
35
+ cwd;
36
+ constructor(cwd = process.cwd()) {
37
+ this.cwd = cwd;
38
+ }
39
+ /**
40
+ * Prepare a release with version bumping, changelog, and git tagging
41
+ */
42
+ async prepareRelease(options = {}) {
43
+ const { bumpType = 'patch', version, channel = 'latest', generateChangelog = true, createTag = true, commit = true, dryRun = false, skipValidation = false, tagPrefix = 'v', changelogPath = 'CHANGELOG.md' } = options;
44
+ const result = {
45
+ oldVersion: '',
46
+ newVersion: '',
47
+ success: false,
48
+ warnings: []
49
+ };
50
+ try {
51
+ // Read package.json
52
+ const pkgPath = join(this.cwd, 'package.json');
53
+ if (!existsSync(pkgPath)) {
54
+ throw new Error('package.json not found');
55
+ }
56
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
57
+ result.oldVersion = pkg.version;
58
+ // Check for uncommitted changes
59
+ if (!skipValidation) {
60
+ const gitStatus = this.execCommand('git status --porcelain', true);
61
+ if (gitStatus && !dryRun) {
62
+ result.warnings?.push('Uncommitted changes detected');
63
+ }
64
+ }
65
+ // Determine new version
66
+ result.newVersion = version || this.bumpVersion(pkg.version, bumpType, channel);
67
+ // Generate changelog if requested
68
+ if (generateChangelog) {
69
+ const commits = this.getCommitsSinceLastTag();
70
+ const changelogEntry = this.generateChangelogEntry(result.newVersion, commits);
71
+ result.changelog = this.formatChangelogEntry(changelogEntry);
72
+ if (!dryRun) {
73
+ this.updateChangelogFile(changelogPath, result.changelog);
74
+ }
75
+ }
76
+ // Update package.json version
77
+ if (!dryRun) {
78
+ pkg.version = result.newVersion;
79
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
80
+ }
81
+ // Create git commit
82
+ if (commit && !dryRun) {
83
+ const commitMessage = `chore(release): ${result.newVersion}`;
84
+ // Stage changes
85
+ this.execCommand(`git add package.json ${changelogPath}`);
86
+ // Commit
87
+ this.execCommand(`git commit -m "${commitMessage}"`);
88
+ result.commitHash = this.execCommand('git rev-parse HEAD', true).trim();
89
+ }
90
+ // Create git tag
91
+ if (createTag && !dryRun) {
92
+ result.tag = `${tagPrefix}${result.newVersion}`;
93
+ const tagMessage = `Release ${result.newVersion}`;
94
+ this.execCommand(`git tag -a ${result.tag} -m "${tagMessage}"`);
95
+ }
96
+ result.success = true;
97
+ return result;
98
+ }
99
+ catch (error) {
100
+ result.error = error instanceof Error ? error.message : String(error);
101
+ return result;
102
+ }
103
+ }
104
+ /**
105
+ * Bump version based on type
106
+ */
107
+ bumpVersion(currentVersion, bumpType, channel) {
108
+ const versionMatch = currentVersion.match(/^(\d+)\.(\d+)\.(\d+)(?:-([a-z]+)\.(\d+))?$/);
109
+ if (!versionMatch) {
110
+ throw new Error(`Invalid version format: ${currentVersion}`);
111
+ }
112
+ let [, major, minor, patch, prerelease, prereleaseNum] = versionMatch;
113
+ let newMajor = parseInt(major);
114
+ let newMinor = parseInt(minor);
115
+ let newPatch = parseInt(patch);
116
+ let newPrerelease = prerelease;
117
+ let newPrereleaseNum = prereleaseNum ? parseInt(prereleaseNum) : 0;
118
+ switch (bumpType) {
119
+ case 'major':
120
+ newMajor++;
121
+ newMinor = 0;
122
+ newPatch = 0;
123
+ newPrerelease = undefined;
124
+ break;
125
+ case 'minor':
126
+ newMinor++;
127
+ newPatch = 0;
128
+ newPrerelease = undefined;
129
+ break;
130
+ case 'patch':
131
+ newPatch++;
132
+ newPrerelease = undefined;
133
+ break;
134
+ case 'prerelease':
135
+ if (newPrerelease && channel === newPrerelease) {
136
+ newPrereleaseNum++;
137
+ }
138
+ else {
139
+ newPrereleaseNum = 1;
140
+ newPrerelease = channel;
141
+ }
142
+ break;
143
+ }
144
+ let version = `${newMajor}.${newMinor}.${newPatch}`;
145
+ if (newPrerelease && bumpType === 'prerelease') {
146
+ version += `-${newPrerelease}.${newPrereleaseNum}`;
147
+ }
148
+ return version;
149
+ }
150
+ /**
151
+ * Get git commits since last tag
152
+ */
153
+ getCommitsSinceLastTag() {
154
+ try {
155
+ const lastTag = this.execCommand('git describe --tags --abbrev=0', true).trim();
156
+ const range = `${lastTag}..HEAD`;
157
+ return this.parseCommits(range);
158
+ }
159
+ catch {
160
+ // No tags found, get all commits
161
+ return this.parseCommits('');
162
+ }
163
+ }
164
+ /**
165
+ * Parse git commits
166
+ */
167
+ parseCommits(range) {
168
+ const format = '--pretty=format:%H%n%s%n%an%n%ai%n---COMMIT---';
169
+ const cmd = range
170
+ ? `git log ${range} ${format}`
171
+ : `git log ${format}`;
172
+ const output = this.execCommand(cmd, true);
173
+ const commits = [];
174
+ const commitBlocks = output.split('---COMMIT---').filter(Boolean);
175
+ for (const block of commitBlocks) {
176
+ const lines = block.trim().split('\n');
177
+ if (lines.length < 4)
178
+ continue;
179
+ const [hash, message, author, date] = lines;
180
+ // Parse conventional commit format
181
+ const conventionalMatch = message.match(/^(\w+)(?:\(([^)]+)\))?: (.+)$/);
182
+ commits.push({
183
+ hash: hash.trim(),
184
+ message: message.trim(),
185
+ author: author.trim(),
186
+ date: date.trim(),
187
+ type: conventionalMatch?.[1],
188
+ scope: conventionalMatch?.[2],
189
+ breaking: message.includes('BREAKING CHANGE')
190
+ });
191
+ }
192
+ return commits;
193
+ }
194
+ /**
195
+ * Generate changelog entry from commits
196
+ */
197
+ generateChangelogEntry(version, commits) {
198
+ const entry = {
199
+ version,
200
+ date: new Date().toISOString().split('T')[0],
201
+ changes: {
202
+ breaking: [],
203
+ features: [],
204
+ fixes: [],
205
+ chore: [],
206
+ docs: [],
207
+ other: []
208
+ }
209
+ };
210
+ for (const commit of commits) {
211
+ const message = commit.scope
212
+ ? `**${commit.scope}**: ${commit.message.split(':').slice(1).join(':').trim()}`
213
+ : commit.message;
214
+ if (commit.breaking) {
215
+ entry.changes.breaking?.push(message);
216
+ }
217
+ else if (commit.type === 'feat') {
218
+ entry.changes.features?.push(message);
219
+ }
220
+ else if (commit.type === 'fix') {
221
+ entry.changes.fixes?.push(message);
222
+ }
223
+ else if (commit.type === 'chore') {
224
+ entry.changes.chore?.push(message);
225
+ }
226
+ else if (commit.type === 'docs') {
227
+ entry.changes.docs?.push(message);
228
+ }
229
+ else {
230
+ entry.changes.other?.push(message);
231
+ }
232
+ }
233
+ return entry;
234
+ }
235
+ /**
236
+ * Format changelog entry as markdown
237
+ */
238
+ formatChangelogEntry(entry) {
239
+ let markdown = `## [${entry.version}] - ${entry.date}\n\n`;
240
+ const sections = [
241
+ { title: 'BREAKING CHANGES', items: entry.changes.breaking },
242
+ { title: 'Features', items: entry.changes.features },
243
+ { title: 'Bug Fixes', items: entry.changes.fixes },
244
+ { title: 'Documentation', items: entry.changes.docs },
245
+ { title: 'Chores', items: entry.changes.chore },
246
+ { title: 'Other Changes', items: entry.changes.other }
247
+ ];
248
+ for (const section of sections) {
249
+ if (section.items && section.items.length > 0) {
250
+ markdown += `### ${section.title}\n\n`;
251
+ for (const item of section.items) {
252
+ markdown += `- ${item}\n`;
253
+ }
254
+ markdown += '\n';
255
+ }
256
+ }
257
+ return markdown;
258
+ }
259
+ /**
260
+ * Update CHANGELOG.md file
261
+ */
262
+ updateChangelogFile(path, newEntry) {
263
+ const changelogPath = join(this.cwd, path);
264
+ let content = '';
265
+ if (existsSync(changelogPath)) {
266
+ content = readFileSync(changelogPath, 'utf-8');
267
+ // Insert after header
268
+ const headerEnd = content.indexOf('\n\n') + 2;
269
+ if (headerEnd > 1) {
270
+ content = content.slice(0, headerEnd) + newEntry + content.slice(headerEnd);
271
+ }
272
+ else {
273
+ content = newEntry + '\n' + content;
274
+ }
275
+ }
276
+ else {
277
+ content = `# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n${newEntry}`;
278
+ }
279
+ writeFileSync(changelogPath, content);
280
+ }
281
+ /**
282
+ * Execute command safely with validation
283
+ * Only allows git commands from the allowlist
284
+ */
285
+ execCommand(cmd, returnOutput = false) {
286
+ // Validate command against allowlist
287
+ validateCommand(cmd);
288
+ try {
289
+ const output = execSync(cmd, {
290
+ cwd: this.cwd,
291
+ encoding: 'utf-8',
292
+ stdio: returnOutput ? 'pipe' : 'inherit',
293
+ timeout: 30000, // 30 second timeout
294
+ maxBuffer: 10 * 1024 * 1024, // 10MB buffer limit
295
+ });
296
+ return returnOutput ? output : '';
297
+ }
298
+ catch (error) {
299
+ if (returnOutput && error instanceof Error) {
300
+ return '';
301
+ }
302
+ throw error;
303
+ }
304
+ }
305
+ }
306
+ /**
307
+ * Convenience function to prepare a release
308
+ */
309
+ export async function prepareRelease(options = {}) {
310
+ const manager = new ReleaseManager();
311
+ return manager.prepareRelease(options);
312
+ }
313
+ //# sourceMappingURL=release-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-manager.js","sourceRoot":"","sources":["../src/release-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Type definitions for deployment module
3
+ */
4
+ export type VersionBumpType = 'major' | 'minor' | 'patch' | 'prerelease';
5
+ export type ReleaseChannel = 'alpha' | 'beta' | 'rc' | 'latest';
6
+ export interface ReleaseOptions {
7
+ /** Type of version bump */
8
+ bumpType?: VersionBumpType;
9
+ /** Specific version to set (overrides bumpType) */
10
+ version?: string;
11
+ /** Release channel/tag */
12
+ channel?: ReleaseChannel;
13
+ /** Generate changelog from git commits */
14
+ generateChangelog?: boolean;
15
+ /** Create git tag */
16
+ createTag?: boolean;
17
+ /** Commit changes */
18
+ commit?: boolean;
19
+ /** Dry run mode */
20
+ dryRun?: boolean;
21
+ /** Skip validation checks */
22
+ skipValidation?: boolean;
23
+ /** Custom git tag prefix */
24
+ tagPrefix?: string;
25
+ /** Custom changelog file path */
26
+ changelogPath?: string;
27
+ }
28
+ export interface ReleaseResult {
29
+ /** Previous version */
30
+ oldVersion: string;
31
+ /** New version */
32
+ newVersion: string;
33
+ /** Git tag name */
34
+ tag?: string;
35
+ /** Changelog content */
36
+ changelog?: string;
37
+ /** Commit hash */
38
+ commitHash?: string;
39
+ /** Success status */
40
+ success: boolean;
41
+ /** Error message if failed */
42
+ error?: string;
43
+ /** Validation warnings */
44
+ warnings?: string[];
45
+ }
46
+ export interface PublishOptions {
47
+ /** npm tag (alpha, beta, latest) */
48
+ tag?: string;
49
+ /** Access level (public, restricted) */
50
+ access?: 'public' | 'restricted';
51
+ /** Dry run mode */
52
+ dryRun?: boolean;
53
+ /** Custom registry URL */
54
+ registry?: string;
55
+ /** OTP for 2FA */
56
+ otp?: string;
57
+ /** Skip build step */
58
+ skipBuild?: boolean;
59
+ /** Custom build command */
60
+ buildCommand?: string;
61
+ }
62
+ export interface PublishResult {
63
+ /** Package name */
64
+ packageName: string;
65
+ /** Published version */
66
+ version: string;
67
+ /** npm tag */
68
+ tag: string;
69
+ /** Package tarball URL */
70
+ tarball?: string;
71
+ /** Success status */
72
+ success: boolean;
73
+ /** Error message if failed */
74
+ error?: string;
75
+ /** Publish timestamp */
76
+ publishedAt?: Date;
77
+ }
78
+ export interface ValidationOptions {
79
+ /** Run linter */
80
+ lint?: boolean;
81
+ /** Run tests */
82
+ test?: boolean;
83
+ /** Run build */
84
+ build?: boolean;
85
+ /** Check dependencies */
86
+ checkDependencies?: boolean;
87
+ /** Check uncommitted changes */
88
+ checkGitStatus?: boolean;
89
+ /** Custom lint command */
90
+ lintCommand?: string;
91
+ /** Custom test command */
92
+ testCommand?: string;
93
+ /** Custom build command */
94
+ buildCommand?: string;
95
+ }
96
+ export interface ValidationResult {
97
+ /** Overall validation success */
98
+ valid: boolean;
99
+ /** Individual check results */
100
+ checks: {
101
+ lint?: {
102
+ passed: boolean;
103
+ errors?: string[];
104
+ };
105
+ test?: {
106
+ passed: boolean;
107
+ errors?: string[];
108
+ };
109
+ build?: {
110
+ passed: boolean;
111
+ errors?: string[];
112
+ };
113
+ dependencies?: {
114
+ passed: boolean;
115
+ errors?: string[];
116
+ };
117
+ gitStatus?: {
118
+ passed: boolean;
119
+ errors?: string[];
120
+ };
121
+ packageJson?: {
122
+ passed: boolean;
123
+ errors?: string[];
124
+ };
125
+ };
126
+ /** Overall errors */
127
+ errors: string[];
128
+ /** Warnings */
129
+ warnings: string[];
130
+ }
131
+ export interface PackageInfo {
132
+ name: string;
133
+ version: string;
134
+ description?: string;
135
+ private?: boolean;
136
+ repository?: {
137
+ type: string;
138
+ url: string;
139
+ };
140
+ dependencies?: Record<string, string>;
141
+ devDependencies?: Record<string, string>;
142
+ publishConfig?: {
143
+ access?: string;
144
+ registry?: string;
145
+ };
146
+ }
147
+ export interface GitCommit {
148
+ hash: string;
149
+ message: string;
150
+ author: string;
151
+ date: string;
152
+ type?: string;
153
+ scope?: string;
154
+ breaking?: boolean;
155
+ }
156
+ export interface ChangelogEntry {
157
+ version: string;
158
+ date: string;
159
+ changes: {
160
+ breaking?: string[];
161
+ features?: string[];
162
+ fixes?: string[];
163
+ chore?: string[];
164
+ docs?: string[];
165
+ other?: string[];
166
+ };
167
+ }
168
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for deployment module
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Pre-Release Validator
3
+ * Validates package before release (lint, test, build, dependencies)
4
+ */
5
+ import type { ValidationOptions, ValidationResult } from './types.js';
6
+ export declare class Validator {
7
+ private cwd;
8
+ constructor(cwd?: string);
9
+ /**
10
+ * Run all validation checks
11
+ */
12
+ validate(options?: ValidationOptions): Promise<ValidationResult>;
13
+ /**
14
+ * Validate package.json structure and required fields
15
+ */
16
+ private validatePackageJson;
17
+ /**
18
+ * Check git status for uncommitted changes
19
+ */
20
+ private checkGitStatus;
21
+ /**
22
+ * Check for dependency issues
23
+ */
24
+ private checkDependencies;
25
+ /**
26
+ * Run linter
27
+ */
28
+ private runLint;
29
+ /**
30
+ * Run tests
31
+ */
32
+ private runTests;
33
+ /**
34
+ * Run build
35
+ */
36
+ private runBuild;
37
+ /**
38
+ * Allowed commands for security validation
39
+ */
40
+ private static readonly ALLOWED_COMMAND_PREFIXES;
41
+ /**
42
+ * Execute command safely with validation
43
+ */
44
+ private execCommand;
45
+ }
46
+ /**
47
+ * Convenience function to validate package
48
+ */
49
+ export declare function validate(options?: ValidationOptions): Promise<ValidationResult>;
50
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAEnF,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,GAAE,MAAsB;IAIvC;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+E1E;;OAEG;YACW,mBAAmB;IAiDjC;;OAEG;YACW,cAAc;IAoB5B;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;YACW,OAAO;IAYrB;;OAEG;YACW,QAAQ;IAYtB;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAK9C;IAEF;;OAEG;IACH,OAAO,CAAC,WAAW;CA8BpB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGzF"}