@nimbus-ds/scripts 1.7.0 → 1.8.0-rc.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,11 @@
1
+ declare const EXIT_CODES: {
2
+ /**
3
+ * Ctrl+C
4
+ */
5
+ readonly SIGINT: 130;
6
+ /**
7
+ * Termination signal
8
+ */
9
+ readonly SIGTERM: 143;
10
+ };
11
+ export { EXIT_CODES };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXIT_CODES = void 0;
4
+ const EXIT_CODES = {
5
+ /**
6
+ * Ctrl+C
7
+ */
8
+ SIGINT: 130,
9
+ /**
10
+ * Termination signal
11
+ */
12
+ SIGTERM: 143,
13
+ };
14
+ exports.EXIT_CODES = EXIT_CODES;
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG;IACjB;;OAEG;IACH,MAAM,EAAE,GAAG;IACX;;OAEG;IACH,OAAO,EAAE,GAAG;CACJ,CAAC;AAEF,gCAAU"}
@@ -0,0 +1 @@
1
+ export * from "./constants";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./constants"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from "./docgen";
2
2
  export * from "./packageBuilder";
3
3
  export * from "./componentsBuilder";
4
+ export * from "./packagePublisher";
5
+ export * from "./common";
package/dist/index.js CHANGED
@@ -4,4 +4,6 @@ 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);
8
+ tslib_1.__exportStar(require("./common"), exports);
7
9
  //# 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;AACnC,mDAAyB"}
@@ -0,0 +1,2 @@
1
+ export { getNextRCVersion, publishToNpm } from "./npm-utils";
2
+ export { RCPublisher } from "./publish-rc";
@@ -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":";;;AAAA,iDAAyC;AAmBzC;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,sCAAsC,WAAW,KAAK,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAA,wBAAQ,EACtB,YAAY,WAAW,kBAAkB,EACzC;YACE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB;SACpD,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACxD;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAlBD,sDAkBC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,WAAmB,EAAE,WAAmB;IACvE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,MAAM,CAAC,CACnC,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,GAAG,WAAW,OAAO,CAAC;KAC9B;IAED,yBAAyB;IACzB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,WAAW,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;IAEpD,OAAO,CAAC,GAAG,CACT,YAAY,UAAU,CAAC,MAAM,0CAA0C,MAAM,EAAE,CAChF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,4CAwBC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,WAAmB,EAAE,UAA6B,EAAE;IAC/E,MAAM,EACJ,MAAM,GAAG,QAAQ,EACjB,GAAG,GAAG,IAAI,EACV,GAAG,EACJ,GAAG,OAAO,CAAC;IAEZ,IAAI;QACF,MAAM,UAAU,GAAG,YAAY,MAAM,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,GAAG,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,kBAAkB,WAAW,gBAAgB,UAAU,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;QAE/F,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;QAEtD,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;KACJ;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KACzD;AACH,CAAC;AAtBD,oCAsBC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,WAAmB,EAAE,OAAe;IACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAHD,gDAGC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,WAAmB,EAAE,WAAmB;IAC3E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC;AAHD,oDAGC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAHD,4CAGC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;KAC5D;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAND,oDAMC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;KAC5D;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAND,kCAMC"}
@@ -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: yarn add ${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,3 @@
1
+ export declare function isBumpType(version: string): boolean;
2
+ export declare function isValidSemanticVersion(version: string): boolean;
3
+ export declare function isValidRCVersion(version: string): boolean;
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimbus-ds/scripts",
3
- "version": "1.7.0",
3
+ "version": "1.8.0-rc.2",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "files": [