@nimbus-ds/scripts 1.7.0-rc.2 ā 1.8.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/packagePublisher/index.d.ts +2 -0
- package/dist/packagePublisher/index.js +9 -0
- package/dist/packagePublisher/index.js.map +1 -0
- package/dist/packagePublisher/npm-utils.d.ts +66 -0
- package/dist/packagePublisher/npm-utils.js +129 -0
- package/dist/packagePublisher/npm-utils.js.map +1 -0
- package/dist/packagePublisher/publish-rc.d.ts +37 -0
- package/dist/packagePublisher/publish-rc.js +257 -0
- package/dist/packagePublisher/publish-rc.js.map +1 -0
- package/dist/packagePublisher/validations.d.ts +3 -0
- package/dist/packagePublisher/validations.js +20 -0
- package/dist/packagePublisher/validations.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./docgen"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./packageBuilder"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./componentsBuilder"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./packagePublisher"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,2DAAiC;AACjC,8DAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,2DAAiC;AACjC,8DAAoC;AACpC,6DAAmC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RCPublisher = exports.publishToNpm = exports.getNextRCVersion = void 0;
|
|
4
|
+
var npm_utils_1 = require("./npm-utils");
|
|
5
|
+
Object.defineProperty(exports, "getNextRCVersion", { enumerable: true, get: function () { return npm_utils_1.getNextRCVersion; } });
|
|
6
|
+
Object.defineProperty(exports, "publishToNpm", { enumerable: true, get: function () { return npm_utils_1.publishToNpm; } });
|
|
7
|
+
var publish_rc_1 = require("./publish-rc");
|
|
8
|
+
Object.defineProperty(exports, "RCPublisher", { enumerable: true, get: function () { return publish_rc_1.RCPublisher; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/packagePublisher/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6D;AAApD,6GAAA,gBAAgB,OAAA;AAAE,yGAAA,YAAY,OAAA;AACvC,2CAA2C;AAAlC,yGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for NPM package version information
|
|
3
|
+
*/
|
|
4
|
+
export interface NpmPackageVersions {
|
|
5
|
+
packageName: string;
|
|
6
|
+
versions: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Options for publishing to NPM
|
|
10
|
+
*/
|
|
11
|
+
export interface NpmPublishOptions {
|
|
12
|
+
access?: "public" | "restricted";
|
|
13
|
+
tag?: string;
|
|
14
|
+
otp?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Gets all published versions for a given package from NPM registry
|
|
18
|
+
* @param packageName - The name of the package to check
|
|
19
|
+
* @returns Array of published versions, or empty array if package doesn't exist
|
|
20
|
+
*/
|
|
21
|
+
export declare function getNpmPackageVersions(packageName: string): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Finds the next available RC version for a given base version
|
|
24
|
+
* @param packageName - The name of the package
|
|
25
|
+
* @param baseVersion - The base version (e.g., "1.0.0")
|
|
26
|
+
* @returns The next RC version (e.g., "1.0.0-rc.1" or "1.0.0-rc.3")
|
|
27
|
+
*/
|
|
28
|
+
export declare function getNextRCVersion(packageName: string, baseVersion: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Publishes a package to NPM with specified options
|
|
31
|
+
* @param packageName - The name of the package workspace
|
|
32
|
+
* @param options - Publishing options (access, tag, OTP)
|
|
33
|
+
*/
|
|
34
|
+
export declare function publishToNpm(packageName: string, options?: NpmPublishOptions): void;
|
|
35
|
+
/**
|
|
36
|
+
* Checks if a specific version exists on NPM
|
|
37
|
+
* @param packageName - The name of the package
|
|
38
|
+
* @param version - The version to check
|
|
39
|
+
* @returns True if the version exists, false otherwise
|
|
40
|
+
*/
|
|
41
|
+
export declare function versionExistsOnNpm(packageName: string, version: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Gets RC versions for a specific base version
|
|
44
|
+
* @param packageName - The name of the package
|
|
45
|
+
* @param baseVersion - The base version to check RCs for
|
|
46
|
+
* @returns Array of RC versions for the base version
|
|
47
|
+
*/
|
|
48
|
+
export declare function getRCVersionsForBase(packageName: string, baseVersion: string): string[];
|
|
49
|
+
/**
|
|
50
|
+
* Validates if a version string is a valid RC version format
|
|
51
|
+
* @param version - The version string to validate
|
|
52
|
+
* @returns True if valid RC format, false otherwise
|
|
53
|
+
*/
|
|
54
|
+
export declare function isValidRCVersion(version: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Extracts the base version from an RC version
|
|
57
|
+
* @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
|
|
58
|
+
* @returns The base version (e.g., "1.0.0")
|
|
59
|
+
*/
|
|
60
|
+
export declare function getBaseVersionFromRC(rcVersion: string): string;
|
|
61
|
+
/**
|
|
62
|
+
* Extracts the RC number from an RC version
|
|
63
|
+
* @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
|
|
64
|
+
* @returns The RC number (e.g., 1)
|
|
65
|
+
*/
|
|
66
|
+
export declare function getRCNumber(rcVersion: string): number;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRCNumber = exports.getBaseVersionFromRC = exports.isValidRCVersion = exports.getRCVersionsForBase = exports.versionExistsOnNpm = exports.publishToNpm = exports.getNextRCVersion = exports.getNpmPackageVersions = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
/**
|
|
6
|
+
* Gets all published versions for a given package from NPM registry
|
|
7
|
+
* @param packageName - The name of the package to check
|
|
8
|
+
* @returns Array of published versions, or empty array if package doesn't exist
|
|
9
|
+
*/
|
|
10
|
+
function getNpmPackageVersions(packageName) {
|
|
11
|
+
try {
|
|
12
|
+
console.log(`š Fetching published versions for ${packageName}...`);
|
|
13
|
+
const npmInfo = (0, child_process_1.execSync)(`npm view ${packageName} versions --json`, {
|
|
14
|
+
encoding: "utf8",
|
|
15
|
+
stdio: ["pipe", "pipe", "pipe"], // Suppress stderr
|
|
16
|
+
});
|
|
17
|
+
const versions = JSON.parse(npmInfo);
|
|
18
|
+
return Array.isArray(versions) ? versions : [versions];
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.log(`š No existing versions found for ${packageName}`);
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.getNpmPackageVersions = getNpmPackageVersions;
|
|
26
|
+
/**
|
|
27
|
+
* Finds the next available RC version for a given base version
|
|
28
|
+
* @param packageName - The name of the package
|
|
29
|
+
* @param baseVersion - The base version (e.g., "1.0.0")
|
|
30
|
+
* @returns The next RC version (e.g., "1.0.0-rc.1" or "1.0.0-rc.3")
|
|
31
|
+
*/
|
|
32
|
+
function getNextRCVersion(packageName, baseVersion) {
|
|
33
|
+
const versions = getNpmPackageVersions(packageName);
|
|
34
|
+
const rcVersions = versions.filter((v) => v.startsWith(`${baseVersion}-rc.`));
|
|
35
|
+
if (rcVersions.length === 0) {
|
|
36
|
+
return `${baseVersion}-rc.1`;
|
|
37
|
+
}
|
|
38
|
+
// Find highest RC number
|
|
39
|
+
const rcNumbers = rcVersions.map((v) => {
|
|
40
|
+
const match = v.match(/-rc\.(\d+)$/);
|
|
41
|
+
return match ? parseInt(match[1], 10) : 0;
|
|
42
|
+
});
|
|
43
|
+
const highestRC = Math.max(...rcNumbers);
|
|
44
|
+
const nextRC = `${baseVersion}-rc.${highestRC + 1}`;
|
|
45
|
+
console.log(`š Found ${rcVersions.length} existing RC versions, next available: ${nextRC}`);
|
|
46
|
+
return nextRC;
|
|
47
|
+
}
|
|
48
|
+
exports.getNextRCVersion = getNextRCVersion;
|
|
49
|
+
/**
|
|
50
|
+
* Publishes a package to NPM with specified options
|
|
51
|
+
* @param packageName - The name of the package workspace
|
|
52
|
+
* @param options - Publishing options (access, tag, OTP)
|
|
53
|
+
*/
|
|
54
|
+
function publishToNpm(packageName, options = {}) {
|
|
55
|
+
const { access = "public", tag = "rc", otp } = options;
|
|
56
|
+
try {
|
|
57
|
+
const accessFlag = `--access ${access}`;
|
|
58
|
+
const tagFlag = `--tag ${tag}`;
|
|
59
|
+
const otpFlag = otp ? ` --otp=${otp}` : "";
|
|
60
|
+
const command = `yarn workspace ${packageName} npm publish ${accessFlag} ${tagFlag}${otpFlag}`;
|
|
61
|
+
console.log(`š¤ Publishing with command: ${command}`);
|
|
62
|
+
(0, child_process_1.execSync)(command, {
|
|
63
|
+
stdio: "inherit",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
throw new Error(`npm publish failed: ${error.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.publishToNpm = publishToNpm;
|
|
71
|
+
/**
|
|
72
|
+
* Checks if a specific version exists on NPM
|
|
73
|
+
* @param packageName - The name of the package
|
|
74
|
+
* @param version - The version to check
|
|
75
|
+
* @returns True if the version exists, false otherwise
|
|
76
|
+
*/
|
|
77
|
+
function versionExistsOnNpm(packageName, version) {
|
|
78
|
+
const versions = getNpmPackageVersions(packageName);
|
|
79
|
+
return versions.includes(version);
|
|
80
|
+
}
|
|
81
|
+
exports.versionExistsOnNpm = versionExistsOnNpm;
|
|
82
|
+
/**
|
|
83
|
+
* Gets RC versions for a specific base version
|
|
84
|
+
* @param packageName - The name of the package
|
|
85
|
+
* @param baseVersion - The base version to check RCs for
|
|
86
|
+
* @returns Array of RC versions for the base version
|
|
87
|
+
*/
|
|
88
|
+
function getRCVersionsForBase(packageName, baseVersion) {
|
|
89
|
+
const versions = getNpmPackageVersions(packageName);
|
|
90
|
+
return versions.filter((v) => v.startsWith(`${baseVersion}-rc.`));
|
|
91
|
+
}
|
|
92
|
+
exports.getRCVersionsForBase = getRCVersionsForBase;
|
|
93
|
+
/**
|
|
94
|
+
* Validates if a version string is a valid RC version format
|
|
95
|
+
* @param version - The version string to validate
|
|
96
|
+
* @returns True if valid RC format, false otherwise
|
|
97
|
+
*/
|
|
98
|
+
function isValidRCVersion(version) {
|
|
99
|
+
const rcPattern = /^\d+\.\d+\.\d+-rc\.\d+$/;
|
|
100
|
+
return rcPattern.test(version);
|
|
101
|
+
}
|
|
102
|
+
exports.isValidRCVersion = isValidRCVersion;
|
|
103
|
+
/**
|
|
104
|
+
* Extracts the base version from an RC version
|
|
105
|
+
* @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
|
|
106
|
+
* @returns The base version (e.g., "1.0.0")
|
|
107
|
+
*/
|
|
108
|
+
function getBaseVersionFromRC(rcVersion) {
|
|
109
|
+
const match = rcVersion.match(/^(\d+\.\d+\.\d+)-rc\.\d+$/);
|
|
110
|
+
if (!match) {
|
|
111
|
+
throw new Error(`Invalid RC version format: ${rcVersion}`);
|
|
112
|
+
}
|
|
113
|
+
return match[1];
|
|
114
|
+
}
|
|
115
|
+
exports.getBaseVersionFromRC = getBaseVersionFromRC;
|
|
116
|
+
/**
|
|
117
|
+
* Extracts the RC number from an RC version
|
|
118
|
+
* @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
|
|
119
|
+
* @returns The RC number (e.g., 1)
|
|
120
|
+
*/
|
|
121
|
+
function getRCNumber(rcVersion) {
|
|
122
|
+
const match = rcVersion.match(/-rc\.(\d+)$/);
|
|
123
|
+
if (!match) {
|
|
124
|
+
throw new Error(`Invalid RC version format: ${rcVersion}`);
|
|
125
|
+
}
|
|
126
|
+
return parseInt(match[1], 10);
|
|
127
|
+
}
|
|
128
|
+
exports.getRCNumber = getRCNumber;
|
|
129
|
+
//# sourceMappingURL=npm-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-utils.js","sourceRoot":"","sources":["../../src/packagePublisher/npm-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Release Candidate Publisher
|
|
3
|
+
*
|
|
4
|
+
* Usage: yarn publish:rc <packageName> [version] [--skip-build] [--otp=123456]
|
|
5
|
+
*
|
|
6
|
+
* Examples:
|
|
7
|
+
* yarn publish:rc @nimbus-ds/button # Publish RC for specific package
|
|
8
|
+
* yarn publish:rc @nimbus-ds/button 1.3.0 # Publish specific version as RC
|
|
9
|
+
* yarn publish:rc @nimbus-ds/button --skip-build # Skip build for specific package
|
|
10
|
+
* yarn publish:rc @nimbus-ds/button --otp=123456 --skip-build # Combine flags
|
|
11
|
+
*/
|
|
12
|
+
interface PackageInfo {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* CLI tool for publishing Release Candidate versions of Nimbus packages
|
|
18
|
+
* Handles version calculation, building, and publishing to npm with rc tag
|
|
19
|
+
*/
|
|
20
|
+
declare class RCPublisher {
|
|
21
|
+
private packageInfo;
|
|
22
|
+
private originalVersion;
|
|
23
|
+
private skipBuild;
|
|
24
|
+
private otp?;
|
|
25
|
+
constructor();
|
|
26
|
+
showHelp(): void;
|
|
27
|
+
validateArgs(packageName: string, otp?: string): void;
|
|
28
|
+
run(packageName: string, version?: string, skipBuild?: boolean): Promise<void>;
|
|
29
|
+
findPackageByName(packageName: string): PackageInfo;
|
|
30
|
+
determineRCVersion(versionArg: string): Promise<string>;
|
|
31
|
+
calculateNextVersion(currentVersion: string, bumpType: string): string;
|
|
32
|
+
confirmPublish(rcVersion: string): Promise<boolean>;
|
|
33
|
+
publishRC(rcVersion: string, otp?: string): Promise<void>;
|
|
34
|
+
updatePackageVersion(rcVersion: string): void;
|
|
35
|
+
cleanup(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export { RCPublisher };
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Local Release Candidate Publisher
|
|
4
|
+
*
|
|
5
|
+
* Usage: yarn publish:rc <packageName> [version] [--skip-build] [--otp=123456]
|
|
6
|
+
*
|
|
7
|
+
* Examples:
|
|
8
|
+
* yarn publish:rc @nimbus-ds/button # Publish RC for specific package
|
|
9
|
+
* yarn publish:rc @nimbus-ds/button 1.3.0 # Publish specific version as RC
|
|
10
|
+
* yarn publish:rc @nimbus-ds/button --skip-build # Skip build for specific package
|
|
11
|
+
* yarn publish:rc @nimbus-ds/button --otp=123456 --skip-build # Combine flags
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.RCPublisher = void 0;
|
|
15
|
+
const tslib_1 = require("tslib");
|
|
16
|
+
const child_process_1 = require("child_process");
|
|
17
|
+
const readline_1 = tslib_1.__importDefault(require("readline"));
|
|
18
|
+
const npm_utils_1 = require("./npm-utils");
|
|
19
|
+
const validations_1 = require("./validations");
|
|
20
|
+
/**
|
|
21
|
+
* CLI tool for publishing Release Candidate versions of Nimbus packages
|
|
22
|
+
* Handles version calculation, building, and publishing to npm with rc tag
|
|
23
|
+
*/
|
|
24
|
+
class RCPublisher {
|
|
25
|
+
packageInfo;
|
|
26
|
+
originalVersion = "";
|
|
27
|
+
skipBuild = false;
|
|
28
|
+
otp;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.packageInfo = {};
|
|
31
|
+
}
|
|
32
|
+
showHelp() {
|
|
33
|
+
console.log(`š Nimbus RC Publisher
|
|
34
|
+
|
|
35
|
+
Usage: yarn publish:rc <packageName> [version] [--skip-build] [--otp=123456]
|
|
36
|
+
|
|
37
|
+
Parameters:
|
|
38
|
+
packageName (required) Name of package to publish (e.g., @nimbus-ds/button)
|
|
39
|
+
|
|
40
|
+
version (optional) Version to publish
|
|
41
|
+
- Base version: 1.3.0 (must be major.minor.patch format, finds next RC slot: 1.3.0-rc.1)
|
|
42
|
+
- Full RC: 1.3.0-rc.2 (must be major.minor.patch-rc.number format, publishes exact version)
|
|
43
|
+
- Bump type: major, minor, or patch (calculates next version from base version)
|
|
44
|
+
- If not provided, uses current version (if current is RC, extracts base version)
|
|
45
|
+
|
|
46
|
+
Examples:
|
|
47
|
+
yarn publish:rc @nimbus-ds/button # Specific package, use version files or current
|
|
48
|
+
yarn publish:rc @nimbus-ds/button 1.3.0 # Specific package and version
|
|
49
|
+
yarn publish:rc @nimbus-ds/button --otp=123456 --skip-build # Combine flags
|
|
50
|
+
|
|
51
|
+
Options:
|
|
52
|
+
-h, --help Show this help message
|
|
53
|
+
--skip-build Skip the build process and publish package as-is
|
|
54
|
+
--otp=123456 Provide 2FA one-time password for npm publish (6 digits from authenticator app)
|
|
55
|
+
|
|
56
|
+
For more details, see scripts/README.md`);
|
|
57
|
+
}
|
|
58
|
+
validateArgs(packageName, otp) {
|
|
59
|
+
// Validate OTP parameter
|
|
60
|
+
if (otp) {
|
|
61
|
+
this.otp = otp;
|
|
62
|
+
if (this.otp.length !== 6 || !/^\d{6}$/.test(this.otp)) {
|
|
63
|
+
throw new Error("\nā Invalid OTP format. Please provide exactly 6 digits (e.g., --otp=123456)");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Validate required package name
|
|
67
|
+
if (!packageName || packageName.trim() === "") {
|
|
68
|
+
throw new Error("\nā Error: Package name is required. \n\nUsage: yarn publish:rc <packageName> [version] [options] \nExample: yarn publish:rc @nimbus-ds/button");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Removed findProjectRoot() - yarn workspace commands work from any directory
|
|
72
|
+
async run(packageName, version = "", skipBuild = false) {
|
|
73
|
+
try {
|
|
74
|
+
console.log("š Nimbus RC Publisher");
|
|
75
|
+
console.log("======================");
|
|
76
|
+
console.log();
|
|
77
|
+
this.validateArgs(packageName);
|
|
78
|
+
// Check for skip-build flag
|
|
79
|
+
this.skipBuild = skipBuild;
|
|
80
|
+
// Find package to publish
|
|
81
|
+
this.packageInfo = this.findPackageByName(packageName);
|
|
82
|
+
console.log(`š¦ Package: ${this.packageInfo.name}`);
|
|
83
|
+
console.log(`š Current version: ${this.packageInfo.version}\n`);
|
|
84
|
+
// Determine RC version to publish
|
|
85
|
+
const rcVersion = await this.determineRCVersion(version);
|
|
86
|
+
console.log(`šÆ Publishing version: ${rcVersion}\n`);
|
|
87
|
+
// Confirm with user
|
|
88
|
+
const confirmed = await this.confirmPublish(rcVersion);
|
|
89
|
+
if (!confirmed) {
|
|
90
|
+
console.log("ā Publishing cancelled by user");
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Execute publishing process
|
|
94
|
+
await this.publishRC(rcVersion, this.otp);
|
|
95
|
+
console.log(`\nā
Successfully published ${this.packageInfo.name}@${rcVersion}`);
|
|
96
|
+
console.log(`\nš„ Install with: npm install ${this.packageInfo.name}@${rcVersion}`);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error("\nš„ Publishing failed:", error instanceof Error ? error.message : String(error));
|
|
100
|
+
await this.cleanup();
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
findPackageByName(packageName) {
|
|
105
|
+
// Get all workspaces using yarn
|
|
106
|
+
const workspacesOutput = (0, child_process_1.execSync)("yarn workspaces list --json", {
|
|
107
|
+
encoding: "utf8",
|
|
108
|
+
});
|
|
109
|
+
const workspaces = workspacesOutput
|
|
110
|
+
.split("\n")
|
|
111
|
+
.filter((line) => line.trim())
|
|
112
|
+
.map((line) => JSON.parse(line));
|
|
113
|
+
const workspace = workspaces.find((ws) => ws.name === packageName);
|
|
114
|
+
if (!workspace)
|
|
115
|
+
throw new Error(`Package "${packageName}" not found in workspace`);
|
|
116
|
+
// Get version using npm pkg command (no need to read package.json file)
|
|
117
|
+
try {
|
|
118
|
+
const versionOutput = (0, child_process_1.execSync)(`npm pkg get version --workspace=${packageName}`, { encoding: "utf8" });
|
|
119
|
+
// Parse version from first line of output (removes quotes)
|
|
120
|
+
const firstLine = versionOutput.split("\n")[0].trim();
|
|
121
|
+
const version = JSON.parse(firstLine);
|
|
122
|
+
return {
|
|
123
|
+
name: workspace.name,
|
|
124
|
+
version,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
throw new Error(`Error getting version for package "${packageName}": ${error instanceof Error ? error.message : String(error)}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async determineRCVersion(versionArg) {
|
|
132
|
+
if (versionArg && versionArg.trim() !== "") {
|
|
133
|
+
// Version specified by user
|
|
134
|
+
const version = versionArg.trim();
|
|
135
|
+
if (version.includes("-rc.")) {
|
|
136
|
+
// Complete RC version provided - validate format and use as-is
|
|
137
|
+
if (!(0, validations_1.isValidRCVersion)(version)) {
|
|
138
|
+
throw new Error(`\nā Invalid RC version format: "${version}". RC version must follow semantic versioning format (major.minor.patch-rc.number)\n` +
|
|
139
|
+
` Examples: 6.1.1-rc.1, 6.0.0-rc.2, 1.2.3-rc.5\n` +
|
|
140
|
+
` Invalid: "6-rc.1", "6.5-rc.1", "1.2-rc.1"`);
|
|
141
|
+
}
|
|
142
|
+
return version;
|
|
143
|
+
}
|
|
144
|
+
else if ((0, validations_1.isBumpType)(version)) {
|
|
145
|
+
// Bump type provided (major/minor/patch) - calculate next version
|
|
146
|
+
const nextVersion = this.calculateNextVersion(this.packageInfo.version, version.toLowerCase());
|
|
147
|
+
return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, nextVersion);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Base version provided - validate format and find next RC slot
|
|
151
|
+
if (!(0, validations_1.isValidSemanticVersion)(version)) {
|
|
152
|
+
throw new Error(`\nā Invalid version format: "${version}". Version must follow semantic versioning format (major.minor.patch)\n` +
|
|
153
|
+
` Examples: 6.1.1, 6.0.0, 1.2.3\n` +
|
|
154
|
+
` Invalid: "6", "6.5", "1.2"`);
|
|
155
|
+
}
|
|
156
|
+
return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, version);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
// No version provided - use current version, but extract base version if it's already an RC
|
|
161
|
+
let baseVersion = this.packageInfo.version;
|
|
162
|
+
// If current version is already an RC, extract the base version
|
|
163
|
+
if (baseVersion.includes("-rc.")) {
|
|
164
|
+
if (!(0, validations_1.isValidRCVersion)(baseVersion)) {
|
|
165
|
+
throw new Error(`\nā Invalid current RC version format: "${baseVersion}". RC version must follow semantic versioning format (major.minor.patch-rc.number)`);
|
|
166
|
+
}
|
|
167
|
+
baseVersion = (0, npm_utils_1.getBaseVersionFromRC)(baseVersion);
|
|
168
|
+
console.log(`š Current version is RC, using base version: ${baseVersion}`);
|
|
169
|
+
}
|
|
170
|
+
return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, baseVersion);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
calculateNextVersion(currentVersion, bumpType) {
|
|
174
|
+
// If current version is an RC, extract the base version for calculation
|
|
175
|
+
let baseVersion = currentVersion;
|
|
176
|
+
if (currentVersion.includes("-rc.")) {
|
|
177
|
+
if (!(0, validations_1.isValidRCVersion)(currentVersion)) {
|
|
178
|
+
throw new Error(`\nā Invalid current RC version format: "${currentVersion}". RC version must follow semantic versioning format (major.minor.patch-rc.number)`);
|
|
179
|
+
}
|
|
180
|
+
baseVersion = (0, npm_utils_1.getBaseVersionFromRC)(currentVersion);
|
|
181
|
+
console.log(`š Current version is RC, using base version for calculation: ${baseVersion}`);
|
|
182
|
+
}
|
|
183
|
+
const [major, minor, patch] = baseVersion.split(".").map(Number);
|
|
184
|
+
console.log(`š§® Version calculation:`);
|
|
185
|
+
console.log(` Latest npm published version: ${currentVersion}`);
|
|
186
|
+
console.log(` Local version: ${baseVersion}`);
|
|
187
|
+
console.log(` Bump type: ${bumpType}`);
|
|
188
|
+
let nextVersion;
|
|
189
|
+
switch (bumpType) {
|
|
190
|
+
case "major":
|
|
191
|
+
nextVersion = `${major + 1}.0.0`;
|
|
192
|
+
break;
|
|
193
|
+
case "minor":
|
|
194
|
+
nextVersion = `${major}.${minor + 1}.0`;
|
|
195
|
+
break;
|
|
196
|
+
case "patch":
|
|
197
|
+
default:
|
|
198
|
+
nextVersion = `${major}.${minor}.${patch + 1}`;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
console.log(` Calculated: ${nextVersion}`);
|
|
202
|
+
return nextVersion;
|
|
203
|
+
}
|
|
204
|
+
async confirmPublish(rcVersion) {
|
|
205
|
+
const rl = readline_1.default.createInterface({
|
|
206
|
+
input: process.stdin,
|
|
207
|
+
output: process.stdout,
|
|
208
|
+
});
|
|
209
|
+
return new Promise((resolve) => {
|
|
210
|
+
rl.question(`\nā Publish ${this.packageInfo.name}@${rcVersion}? (y/N): `, (answer) => {
|
|
211
|
+
rl.close();
|
|
212
|
+
resolve(answer.toLowerCase().startsWith("y"));
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
async publishRC(rcVersion, otp) {
|
|
217
|
+
if (this.skipBuild) {
|
|
218
|
+
console.log("\nā” Skipping build process (--skip-build flag detected)");
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
console.log("šØ Building package...");
|
|
222
|
+
(0, child_process_1.execSync)(`yarn workspace ${this.packageInfo.name} build`, {
|
|
223
|
+
stdio: "inherit",
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
console.log("š Updating package.json version...");
|
|
227
|
+
this.updatePackageVersion(rcVersion);
|
|
228
|
+
console.log("š¤ Publishing to npm...");
|
|
229
|
+
(0, npm_utils_1.publishToNpm)(this.packageInfo.name, {
|
|
230
|
+
access: "public",
|
|
231
|
+
tag: "rc",
|
|
232
|
+
otp,
|
|
233
|
+
});
|
|
234
|
+
await this.cleanup();
|
|
235
|
+
}
|
|
236
|
+
updatePackageVersion(rcVersion) {
|
|
237
|
+
// Store original version for cleanup
|
|
238
|
+
this.originalVersion = this.packageInfo.version;
|
|
239
|
+
try {
|
|
240
|
+
(0, child_process_1.execSync)(`npm version ${rcVersion} --workspace=${this.packageInfo.name} --no-git-tag-version`, {
|
|
241
|
+
// This is useful to skip calling the 'yarn' command inside each package, as that will throw an error.
|
|
242
|
+
stdio: "ignore",
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
// This is a known error, continue. The command was successful.
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
async cleanup() {
|
|
250
|
+
if (this.originalVersion && this.packageInfo.name) {
|
|
251
|
+
console.log("š Restoring original package.json version...");
|
|
252
|
+
this.updatePackageVersion(this.originalVersion);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.RCPublisher = RCPublisher;
|
|
257
|
+
//# sourceMappingURL=publish-rc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-rc.js","sourceRoot":"","sources":["../../src/packagePublisher/publish-rc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidRCVersion = exports.isValidSemanticVersion = exports.isBumpType = void 0;
|
|
4
|
+
function isBumpType(version) {
|
|
5
|
+
return ["major", "minor", "patch"].includes(version.toLowerCase());
|
|
6
|
+
}
|
|
7
|
+
exports.isBumpType = isBumpType;
|
|
8
|
+
function isValidSemanticVersion(version) {
|
|
9
|
+
// Semantic version format: major.minor.patch (e.g., 1.2.3)
|
|
10
|
+
const semverRegex = /^\d+\.\d+\.\d+$/;
|
|
11
|
+
return semverRegex.test(version);
|
|
12
|
+
}
|
|
13
|
+
exports.isValidSemanticVersion = isValidSemanticVersion;
|
|
14
|
+
function isValidRCVersion(version) {
|
|
15
|
+
// RC version format: major.minor.patch-rc.number (e.g., 1.2.3-rc.1)
|
|
16
|
+
const rcVersionRegex = /^\d+\.\d+\.\d+-rc\.\d+$/;
|
|
17
|
+
return rcVersionRegex.test(version);
|
|
18
|
+
}
|
|
19
|
+
exports.isValidRCVersion = isValidRCVersion;
|
|
20
|
+
//# sourceMappingURL=validations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/packagePublisher/validations.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAFD,gCAEC;AAED,SAAgB,sBAAsB,CAAC,OAAe;IACpD,2DAA2D;IAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAJD,wDAIC;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,oEAAoE;IACpE,MAAM,cAAc,GAAG,yBAAyB,CAAC;IACjD,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAJD,4CAIC"}
|