@glpkg/publisher 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +215 -0
  3. package/dist/__tests__/cli.test.d.ts +2 -0
  4. package/dist/__tests__/cli.test.d.ts.map +1 -0
  5. package/dist/__tests__/cli.test.js +93 -0
  6. package/dist/__tests__/cli.test.js.map +1 -0
  7. package/dist/__tests__/generic/manifest-reader.test.d.ts +2 -0
  8. package/dist/__tests__/generic/manifest-reader.test.d.ts.map +1 -0
  9. package/dist/__tests__/generic/manifest-reader.test.js +170 -0
  10. package/dist/__tests__/generic/manifest-reader.test.js.map +1 -0
  11. package/dist/__tests__/generic/tarball-creator.test.d.ts +2 -0
  12. package/dist/__tests__/generic/tarball-creator.test.d.ts.map +1 -0
  13. package/dist/__tests__/generic/tarball-creator.test.js +188 -0
  14. package/dist/__tests__/generic/tarball-creator.test.js.map +1 -0
  15. package/dist/__tests__/helpers/git-helper.d.ts +24 -0
  16. package/dist/__tests__/helpers/git-helper.d.ts.map +1 -0
  17. package/dist/__tests__/helpers/git-helper.js +104 -0
  18. package/dist/__tests__/helpers/git-helper.js.map +1 -0
  19. package/dist/__tests__/package-deletion.test.d.ts +2 -0
  20. package/dist/__tests__/package-deletion.test.d.ts.map +1 -0
  21. package/dist/__tests__/package-deletion.test.js +148 -0
  22. package/dist/__tests__/package-deletion.test.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +61 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/core/generic-publisher.d.ts +7 -0
  28. package/dist/core/generic-publisher.d.ts.map +1 -0
  29. package/dist/core/generic-publisher.js +116 -0
  30. package/dist/core/generic-publisher.js.map +1 -0
  31. package/dist/core/npmrc-manager.d.ts +24 -0
  32. package/dist/core/npmrc-manager.d.ts.map +1 -0
  33. package/dist/core/npmrc-manager.js +148 -0
  34. package/dist/core/npmrc-manager.js.map +1 -0
  35. package/dist/core/project-detector.d.ts +27 -0
  36. package/dist/core/project-detector.d.ts.map +1 -0
  37. package/dist/core/project-detector.js +113 -0
  38. package/dist/core/project-detector.js.map +1 -0
  39. package/dist/core/publisher.d.ts +57 -0
  40. package/dist/core/publisher.d.ts.map +1 -0
  41. package/dist/core/publisher.js +350 -0
  42. package/dist/core/publisher.js.map +1 -0
  43. package/dist/core/version-manager.d.ts +49 -0
  44. package/dist/core/version-manager.d.ts.map +1 -0
  45. package/dist/core/version-manager.js +184 -0
  46. package/dist/core/version-manager.js.map +1 -0
  47. package/dist/generic/gitlab-api.d.ts +16 -0
  48. package/dist/generic/gitlab-api.d.ts.map +1 -0
  49. package/dist/generic/gitlab-api.js +79 -0
  50. package/dist/generic/gitlab-api.js.map +1 -0
  51. package/dist/generic/manifest-reader.d.ts +4 -0
  52. package/dist/generic/manifest-reader.d.ts.map +1 -0
  53. package/dist/generic/manifest-reader.js +60 -0
  54. package/dist/generic/manifest-reader.js.map +1 -0
  55. package/dist/generic/tarball-creator.d.ts +9 -0
  56. package/dist/generic/tarball-creator.d.ts.map +1 -0
  57. package/dist/generic/tarball-creator.js +92 -0
  58. package/dist/generic/tarball-creator.js.map +1 -0
  59. package/dist/index.d.ts +6 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +12 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/types/index.d.ts +46 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/index.js +3 -0
  66. package/dist/types/index.js.map +1 -0
  67. package/dist/utils/git.d.ts +25 -0
  68. package/dist/utils/git.d.ts.map +1 -0
  69. package/dist/utils/git.js +115 -0
  70. package/dist/utils/git.js.map +1 -0
  71. package/dist/utils/package.d.ts +14 -0
  72. package/dist/utils/package.d.ts.map +1 -0
  73. package/dist/utils/package.js +86 -0
  74. package/dist/utils/package.js.map +1 -0
  75. package/dist/utils/token.d.ts +6 -0
  76. package/dist/utils/token.d.ts.map +1 -0
  77. package/dist/utils/token.js +43 -0
  78. package/dist/utils/token.js.map +1 -0
  79. package/dist/utils/version.d.ts +14 -0
  80. package/dist/utils/version.d.ts.map +1 -0
  81. package/dist/utils/version.js +143 -0
  82. package/dist/utils/version.js.map +1 -0
  83. package/package.json +64 -0
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GitLabPublisher = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const tsshell_1 = require("tsshell");
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ const ora_1 = __importDefault(require("ora"));
45
+ const version_manager_1 = require("./version-manager");
46
+ const project_detector_1 = require("./project-detector");
47
+ const npmrc_manager_1 = require("./npmrc-manager");
48
+ const token_1 = require("../utils/token");
49
+ const git_1 = require("../utils/git");
50
+ const package_1 = require("../utils/package");
51
+ const config_1 = require("@glpkg/config");
52
+ /**
53
+ * GitLab Publisher - Main class for publishing packages to GitLab
54
+ */
55
+ class GitLabPublisher {
56
+ constructor(options = {}) {
57
+ this.options = {
58
+ gitTag: true,
59
+ push: true,
60
+ ...options,
61
+ };
62
+ this.projectPath = process.cwd();
63
+ this.packageJson = this.loadPackageJson();
64
+ this.token = (0, token_1.getGitLabToken)(options.token);
65
+ this.versionManager = new version_manager_1.VersionManager(this.projectPath);
66
+ this.npmrcManager = new npmrc_manager_1.NpmrcManager(this.projectPath);
67
+ }
68
+ loadPackageJson() {
69
+ const packageJsonPath = path.join(this.projectPath, 'package.json');
70
+ if (!fs.existsSync(packageJsonPath)) {
71
+ throw new Error('No package.json found in current directory');
72
+ }
73
+ return JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
74
+ }
75
+ /**
76
+ * Validate environment before publishing
77
+ */
78
+ validateEnvironment() {
79
+ const errors = [];
80
+ const warnings = [];
81
+ // Validate package name exists
82
+ if (!this.packageJson.name) {
83
+ errors.push('Package name is required in package.json');
84
+ errors.push(' Add a "name" field to your package.json');
85
+ }
86
+ // Check for prepublishOnly script
87
+ if (!this.packageJson.scripts?.prepublishOnly && !this.options.noBuild) {
88
+ warnings.push('No prepublishOnly script found in package.json');
89
+ warnings.push(' Add a build script like: "prepublishOnly": "npm run build"');
90
+ }
91
+ // Check for proper package.json exports
92
+ if (!this.packageJson.main && !this.packageJson.module && !this.packageJson.exports) {
93
+ warnings.push('No main, module, or exports field in package.json');
94
+ warnings.push(' Add proper export configuration for your package');
95
+ }
96
+ // Display warnings
97
+ if (warnings.length > 0) {
98
+ warnings.forEach((warn) => console.warn(chalk_1.default.yellow('⚠'), warn));
99
+ }
100
+ // Throw error if there are critical errors
101
+ if (errors.length > 0) {
102
+ errors.forEach((err) => console.error(chalk_1.default.red('✖'), err));
103
+ throw new Error('Environment validation failed');
104
+ }
105
+ }
106
+ /**
107
+ * Execute npm command with proper error handling
108
+ * Automatically sets GITLAB_TOKEN environment variable
109
+ */
110
+ async executeNpmCommand(command, description) {
111
+ // Prepend GITLAB_TOKEN to command for npm authentication
112
+ const commandWithToken = `GITLAB_TOKEN=${this.token} ${command}`;
113
+ if (this.options.verbose) {
114
+ console.log(chalk_1.default.gray('$'), command); // Don't show token in logs
115
+ }
116
+ try {
117
+ const output = await (0, tsshell_1.shell)(commandWithToken, {
118
+ cwd: this.projectPath,
119
+ timeout: 300000, // 5 minute timeout
120
+ });
121
+ if (this.options.verbose && output) {
122
+ console.log(output);
123
+ }
124
+ return output;
125
+ }
126
+ catch (error) {
127
+ if (error instanceof tsshell_1.ShellError) {
128
+ console.error(chalk_1.default.red(`\n✖ Failed to ${description}`));
129
+ console.error(chalk_1.default.yellow('Exit code:'), error.returnCode);
130
+ if (error.stderr && error.stderr.trim()) {
131
+ console.error(chalk_1.default.yellow('\nError output:'));
132
+ console.error(error.stderr);
133
+ }
134
+ if (command.includes('npm') && error.stdout && error.stdout.trim()) {
135
+ console.error(chalk_1.default.yellow('\nCommand output:'));
136
+ console.error(error.stdout);
137
+ }
138
+ throw new Error(`Failed to ${description}: Process exited with code ${error.returnCode}`);
139
+ }
140
+ throw error;
141
+ }
142
+ }
143
+ /**
144
+ * Publish package to GitLab registry
145
+ */
146
+ async publish(type, options = {}) {
147
+ // Merge options
148
+ this.options = { ...this.options, ...options };
149
+ console.log(chalk_1.default.blue.bold('GitLab NPM Publisher'), chalk_1.default.gray(`v${require('../../package.json').version}`));
150
+ console.log();
151
+ try {
152
+ // Check git status before publishing (skip if --force)
153
+ (0, git_1.ensureGitClean)(this.options.force);
154
+ // Detect project information
155
+ const detector = new project_detector_1.ProjectDetector(this.packageJson.name, this.token);
156
+ this.projectInfo = await detector.detect();
157
+ // Validate environment
158
+ this.validateEnvironment();
159
+ // Create .npmrc
160
+ this.npmrcManager.create(this.projectInfo, this.options.verbose, this.packageJson.name);
161
+ try {
162
+ await this.publishByType(type);
163
+ }
164
+ finally {
165
+ // Always cleanup .npmrc
166
+ this.npmrcManager.cleanup();
167
+ }
168
+ // Push to remote if requested
169
+ const shouldPush = this.options.push !== false && this.options.push !== 'false';
170
+ const shouldGitTag = this.options.gitTag !== false && this.options.gitTag !== 'false';
171
+ if (shouldPush && !this.options.dryRun) {
172
+ await this.pushChanges(shouldGitTag && type !== 'dev');
173
+ }
174
+ }
175
+ catch (error) {
176
+ // Cleanup on error
177
+ this.npmrcManager.cleanup();
178
+ throw error;
179
+ }
180
+ }
181
+ /**
182
+ * Publish based on type (dev, beta, latest)
183
+ */
184
+ async publishByType(type) {
185
+ const spinner = (0, ora_1.default)().start();
186
+ switch (type) {
187
+ case 'dev':
188
+ await this.publishDev(spinner);
189
+ break;
190
+ case 'beta':
191
+ await this.publishBeta(spinner);
192
+ break;
193
+ case 'latest':
194
+ default:
195
+ await this.publishLatest(spinner);
196
+ break;
197
+ }
198
+ }
199
+ /**
200
+ * Publish dev version
201
+ */
202
+ async publishDev(spinner) {
203
+ spinner.text = 'Publishing development version...';
204
+ if (this.options.dryRun) {
205
+ // For dry-run, bump version but don't save to file
206
+ const newVersion = await this.versionManager.bumpDevVersion(this.options.verbose, false);
207
+ spinner.text = 'Running dry-run...';
208
+ await this.executeNpmCommand('npm publish --dry-run', 'dry-run publish');
209
+ spinner.succeed('Dry-run completed successfully');
210
+ }
211
+ else {
212
+ // Bump to dev version
213
+ const newVersion = await this.versionManager.bumpDevVersion(this.options.verbose);
214
+ // If force mode, delete existing version if present
215
+ if (this.options.force && this.projectInfo) {
216
+ spinner.text = 'Checking for existing version...';
217
+ await (0, package_1.deletePackageVersion)(this.projectInfo, this.packageJson.name, newVersion, this.options.verbose);
218
+ }
219
+ spinner.text = 'Publishing to GitLab registry...';
220
+ await this.executeNpmCommand('npm publish --tag dev', 'publish dev version');
221
+ spinner.succeed(`Published dev version: ${chalk_1.default.green(this.packageJson.name + '@' + newVersion)}`);
222
+ // Commit version change
223
+ await this.versionManager.createDevCommit(newVersion);
224
+ }
225
+ this.showSuccessMessage();
226
+ }
227
+ /**
228
+ * Publish beta version
229
+ */
230
+ async publishBeta(spinner) {
231
+ spinner.text = 'Publishing beta version...';
232
+ // Bump version if requested
233
+ if (this.options.bump) {
234
+ const shouldCreateTag = this.options.gitTag !== false && this.options.gitTag !== 'false';
235
+ await this.versionManager.bumpSemanticVersion(this.options.bump, 'beta', shouldCreateTag);
236
+ }
237
+ if (this.options.dryRun) {
238
+ spinner.text = 'Running dry-run...';
239
+ await this.executeNpmCommand('npm publish --dry-run', 'dry-run publish');
240
+ spinner.succeed('Dry-run completed successfully');
241
+ }
242
+ else {
243
+ this.versionManager.reload();
244
+ const version = this.versionManager.getCurrentVersion();
245
+ // If force mode, delete existing version if present
246
+ if (this.options.force && this.projectInfo) {
247
+ spinner.text = 'Checking for existing version...';
248
+ await (0, package_1.deletePackageVersion)(this.projectInfo, this.packageJson.name, version, this.options.verbose);
249
+ }
250
+ spinner.text = 'Publishing to GitLab registry...';
251
+ await this.executeNpmCommand('npm publish --tag beta', 'publish beta version');
252
+ spinner.succeed(`Published beta version: ${chalk_1.default.green(this.packageJson.name + '@' + version)}`);
253
+ }
254
+ this.showSuccessMessage();
255
+ }
256
+ /**
257
+ * Publish latest version
258
+ */
259
+ async publishLatest(spinner) {
260
+ spinner.text = 'Publishing latest version...';
261
+ // Bump version if requested
262
+ if (this.options.bump) {
263
+ const shouldCreateTag = this.options.gitTag !== false && this.options.gitTag !== 'false';
264
+ await this.versionManager.bumpSemanticVersion(this.options.bump, undefined, shouldCreateTag);
265
+ }
266
+ if (this.options.dryRun) {
267
+ spinner.text = 'Running dry-run...';
268
+ await this.executeNpmCommand('npm publish --dry-run', 'dry-run publish');
269
+ spinner.succeed('Dry-run completed successfully');
270
+ }
271
+ else {
272
+ this.versionManager.reload();
273
+ const version = this.versionManager.getCurrentVersion();
274
+ // If force mode, delete existing version if present
275
+ if (this.options.force && this.projectInfo) {
276
+ spinner.text = 'Checking for existing version...';
277
+ await (0, package_1.deletePackageVersion)(this.projectInfo, this.packageJson.name, version, this.options.verbose);
278
+ }
279
+ spinner.text = 'Publishing to GitLab registry...';
280
+ await this.executeNpmCommand('npm publish', 'publish latest version');
281
+ spinner.succeed(`Published: ${chalk_1.default.green(this.packageJson.name + '@' + version)}`);
282
+ }
283
+ this.showSuccessMessage();
284
+ }
285
+ /**
286
+ * Push changes to remote
287
+ */
288
+ async pushChanges(includeTags) {
289
+ const spinner = (0, ora_1.default)('Pushing commits and tags to remote...').start();
290
+ try {
291
+ await (0, git_1.pushToRemote)(includeTags);
292
+ spinner.succeed('Pushed to remote successfully');
293
+ }
294
+ catch (error) {
295
+ spinner.fail('Failed to push to remote');
296
+ console.error(chalk_1.default.yellow('You can manually push with: git push && git push --tags'));
297
+ }
298
+ }
299
+ /**
300
+ * Show success message with package URL
301
+ */
302
+ showSuccessMessage() {
303
+ if (!this.options.dryRun) {
304
+ console.log();
305
+ console.log(chalk_1.default.green('✓'), 'Publishing completed successfully!');
306
+ // Use pathWithNamespace from git remote for accurate URL
307
+ if (this.projectInfo?.pathWithNamespace) {
308
+ console.log(chalk_1.default.gray('View your package at:'));
309
+ console.log(chalk_1.default.cyan(`https://gitlab.com/${this.projectInfo.pathWithNamespace}/-/packages`));
310
+ }
311
+ // Save package registry metadata
312
+ this.savePackageMetadata();
313
+ }
314
+ }
315
+ /**
316
+ * Save package metadata to gitlab-config
317
+ */
318
+ savePackageMetadata() {
319
+ if (!this.projectInfo || !this.projectInfo.groupId) {
320
+ return;
321
+ }
322
+ try {
323
+ // Always use group registry URL
324
+ const registryUrl = `https://${this.projectInfo.gitlabHost}/api/v4/groups/${this.projectInfo.groupId}/-/packages/npm/`;
325
+ const packageInfo = {
326
+ packageName: this.packageJson.name,
327
+ group: this.projectInfo.namespace,
328
+ groupId: this.projectInfo.groupId,
329
+ projectId: this.projectInfo.projectId,
330
+ registryType: 'group',
331
+ registryUrl,
332
+ gitlabHost: this.projectInfo.gitlabHost,
333
+ lastUpdated: new Date().toISOString(),
334
+ source: 'published'
335
+ };
336
+ (0, config_1.savePackageInfo)(packageInfo);
337
+ if (this.options.verbose) {
338
+ console.log(chalk_1.default.gray('✓'), 'Package metadata saved to ~/.config/gitlab-config/package-registry.json');
339
+ }
340
+ }
341
+ catch (error) {
342
+ // Don't fail the publish if metadata save fails
343
+ if (this.options.verbose) {
344
+ console.warn(chalk_1.default.yellow('⚠'), 'Failed to save package metadata:', error);
345
+ }
346
+ }
347
+ }
348
+ }
349
+ exports.GitLabPublisher = GitLabPublisher;
350
+ //# sourceMappingURL=publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/core/publisher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { BumpType } from '../types';
2
+ /**
3
+ * Version Manager - Handles all version bumping logic
4
+ * Shared between dev, beta, and latest publish
5
+ */
6
+ export declare class VersionManager {
7
+ private projectPath;
8
+ private packageJsonPath;
9
+ private packageJson;
10
+ private originalVersion?;
11
+ constructor(projectPath?: string);
12
+ private loadPackageJson;
13
+ private savePackageJson;
14
+ /**
15
+ * Get current version from package.json
16
+ */
17
+ getCurrentVersion(): string;
18
+ /**
19
+ * Get package name from package.json
20
+ */
21
+ getPackageName(): string;
22
+ /**
23
+ * Bump version for dev publish
24
+ * Calculates next available dev version from registry
25
+ */
26
+ bumpDevVersion(verbose?: boolean, saveToFile?: boolean): Promise<string>;
27
+ /**
28
+ * Bump version with semver
29
+ * Used for beta and latest publish
30
+ */
31
+ bumpSemanticVersion(bumpType: BumpType, prerelease?: string, createTag?: boolean): Promise<string>;
32
+ /**
33
+ * Create git commit for dev version bump
34
+ */
35
+ createDevCommit(version: string): Promise<void>;
36
+ /**
37
+ * Create git commit and tag for version bump
38
+ */
39
+ private createVersionCommit;
40
+ /**
41
+ * Reload package.json from disk
42
+ */
43
+ reload(): void;
44
+ /**
45
+ * Restore original version (for dry-run)
46
+ */
47
+ restoreOriginalVersion(): void;
48
+ }
49
+ //# sourceMappingURL=version-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-manager.d.ts","sourceRoot":"","sources":["../../src/core/version-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAA4B,MAAM,UAAU,CAAC;AAInE;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,WAAW,GAAE,MAAsB;IAM/C,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACG,cAAc,CAAC,OAAO,UAAQ,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BzE;;;OAGG;IACG,mBAAmB,CACvB,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,UAAO,GACf,OAAO,CAAC,MAAM,CAAC;IA+BlB;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,sBAAsB,IAAI,IAAI;CAO/B"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.VersionManager = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const ora_1 = __importDefault(require("ora"));
44
+ const version_1 = require("../utils/version");
45
+ const git_1 = require("../utils/git");
46
+ /**
47
+ * Version Manager - Handles all version bumping logic
48
+ * Shared between dev, beta, and latest publish
49
+ */
50
+ class VersionManager {
51
+ constructor(projectPath = process.cwd()) {
52
+ this.projectPath = projectPath;
53
+ this.packageJsonPath = path.join(this.projectPath, 'package.json');
54
+ this.packageJson = this.loadPackageJson();
55
+ }
56
+ loadPackageJson() {
57
+ if (!fs.existsSync(this.packageJsonPath)) {
58
+ throw new Error('No package.json found in current directory');
59
+ }
60
+ return JSON.parse(fs.readFileSync(this.packageJsonPath, 'utf8'));
61
+ }
62
+ savePackageJson() {
63
+ fs.writeFileSync(this.packageJsonPath, JSON.stringify(this.packageJson, null, 2) + '\n');
64
+ }
65
+ /**
66
+ * Get current version from package.json
67
+ */
68
+ getCurrentVersion() {
69
+ return this.packageJson.version;
70
+ }
71
+ /**
72
+ * Get package name from package.json
73
+ */
74
+ getPackageName() {
75
+ return this.packageJson.name;
76
+ }
77
+ /**
78
+ * Bump version for dev publish
79
+ * Calculates next available dev version from registry
80
+ */
81
+ async bumpDevVersion(verbose = false, saveToFile = true) {
82
+ const spinner = (0, ora_1.default)('Calculating next dev version...').start();
83
+ try {
84
+ const currentVersion = this.getCurrentVersion();
85
+ // Save original version for potential restore
86
+ if (!this.originalVersion) {
87
+ this.originalVersion = currentVersion;
88
+ }
89
+ const newVersion = await (0, version_1.calculateDevVersion)(this.packageJson.name, currentVersion, verbose);
90
+ this.packageJson.version = newVersion;
91
+ if (saveToFile) {
92
+ this.savePackageJson();
93
+ }
94
+ spinner.succeed(`Bumped to dev version: ${chalk_1.default.cyan(newVersion)}`);
95
+ return newVersion;
96
+ }
97
+ catch (error) {
98
+ spinner.fail('Failed to calculate dev version');
99
+ throw error;
100
+ }
101
+ }
102
+ /**
103
+ * Bump version with semver
104
+ * Used for beta and latest publish
105
+ */
106
+ async bumpSemanticVersion(bumpType, prerelease, createTag = true) {
107
+ const spinner = (0, ora_1.default)(`Bumping ${bumpType} version...`).start();
108
+ try {
109
+ const currentVersion = this.getCurrentVersion();
110
+ const result = (0, version_1.bumpVersion)(currentVersion, bumpType, prerelease);
111
+ if (!result.wasUpdated) {
112
+ spinner.info('Version unchanged');
113
+ return result.newVersion;
114
+ }
115
+ this.packageJson.version = result.newVersion;
116
+ this.savePackageJson();
117
+ spinner.succeed(`Bumped version: ${chalk_1.default.gray(result.oldVersion)} → ${chalk_1.default.cyan(result.newVersion)}`);
118
+ // Create git commit and tag for non-dev versions
119
+ if (createTag) {
120
+ await this.createVersionCommit(result.newVersion, prerelease);
121
+ }
122
+ return result.newVersion;
123
+ }
124
+ catch (error) {
125
+ spinner.fail('Failed to bump version');
126
+ throw error;
127
+ }
128
+ }
129
+ /**
130
+ * Create git commit for dev version bump
131
+ */
132
+ async createDevCommit(version) {
133
+ const spinner = (0, ora_1.default)('Committing version change...').start();
134
+ try {
135
+ await (0, git_1.createGitCommit)(['package.json'], `chore: bump to dev version ${version}`);
136
+ spinner.succeed(`Committed version change: ${version}`);
137
+ }
138
+ catch (error) {
139
+ const message = error instanceof Error ? error.message : String(error);
140
+ if (message.includes('nothing to commit')) {
141
+ spinner.info('No changes to commit');
142
+ }
143
+ else {
144
+ spinner.warn('Failed to commit changes, but package was published successfully');
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Create git commit and tag for version bump
150
+ */
151
+ async createVersionCommit(version, prerelease) {
152
+ const spinner = (0, ora_1.default)('Creating git commit and tag...').start();
153
+ try {
154
+ const commitMessage = prerelease
155
+ ? `chore: release ${version} (${prerelease})`
156
+ : `chore: release ${version}`;
157
+ await (0, git_1.createGitCommit)(['package.json'], commitMessage);
158
+ await (0, git_1.createGitTag)(version);
159
+ spinner.succeed(`Created commit and tag: v${version}`);
160
+ }
161
+ catch (error) {
162
+ spinner.fail('Failed to create git commit/tag');
163
+ throw error;
164
+ }
165
+ }
166
+ /**
167
+ * Reload package.json from disk
168
+ */
169
+ reload() {
170
+ this.packageJson = this.loadPackageJson();
171
+ }
172
+ /**
173
+ * Restore original version (for dry-run)
174
+ */
175
+ restoreOriginalVersion() {
176
+ if (this.originalVersion) {
177
+ this.packageJson.version = this.originalVersion;
178
+ this.savePackageJson();
179
+ this.originalVersion = undefined;
180
+ }
181
+ }
182
+ }
183
+ exports.VersionManager = VersionManager;
184
+ //# sourceMappingURL=version-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-manager.js","sourceRoot":"","sources":["../../src/core/version-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface UploadOptions {
2
+ projectId: string;
3
+ gitlabHost: string;
4
+ token: string;
5
+ packageName: string;
6
+ packageVersion: string;
7
+ filename: string;
8
+ filePath: string;
9
+ }
10
+ export interface UploadResult {
11
+ success: boolean;
12
+ url?: string;
13
+ error?: string;
14
+ }
15
+ export declare function uploadGenericPackage(options: UploadOptions): Promise<UploadResult>;
16
+ //# sourceMappingURL=gitlab-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitlab-api.d.ts","sourceRoot":"","sources":["../../src/generic/gitlab-api.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkCxF"}