@nimbus-ds/scripts 1.7.0 → 1.8.0-rc.10

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 (47) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/common/constants.d.ts +11 -0
  3. package/dist/common/constants.js +15 -0
  4. package/dist/common/constants.js.map +1 -0
  5. package/dist/common/index.d.ts +1 -0
  6. package/dist/common/index.js +5 -0
  7. package/dist/common/index.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +2 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/packagePublisher/core/npm-utils/index.d.ts +1 -0
  12. package/dist/packagePublisher/core/npm-utils/index.js +10 -0
  13. package/dist/packagePublisher/core/npm-utils/index.js.map +1 -0
  14. package/dist/packagePublisher/core/npm-utils/npm-utils.d.ts +54 -0
  15. package/dist/packagePublisher/core/npm-utils/npm-utils.js +188 -0
  16. package/dist/packagePublisher/core/npm-utils/npm-utils.js.map +1 -0
  17. package/dist/packagePublisher/core/npm-utils/npm-utils.types.d.ts +9 -0
  18. package/dist/packagePublisher/core/npm-utils/npm-utils.types.js +3 -0
  19. package/dist/packagePublisher/core/npm-utils/npm-utils.types.js.map +1 -0
  20. package/dist/packagePublisher/core/workspaces/index.d.ts +1 -0
  21. package/dist/packagePublisher/core/workspaces/index.js +7 -0
  22. package/dist/packagePublisher/core/workspaces/index.js.map +1 -0
  23. package/dist/packagePublisher/core/workspaces/workspaces.d.ts +4 -0
  24. package/dist/packagePublisher/core/workspaces/workspaces.js +22 -0
  25. package/dist/packagePublisher/core/workspaces/workspaces.js.map +1 -0
  26. package/dist/packagePublisher/core/workspaces/workspaces.types.d.ts +4 -0
  27. package/dist/packagePublisher/core/workspaces/workspaces.types.js +3 -0
  28. package/dist/packagePublisher/core/workspaces/workspaces.types.js.map +1 -0
  29. package/dist/packagePublisher/index.d.ts +2 -0
  30. package/dist/packagePublisher/index.js +9 -0
  31. package/dist/packagePublisher/index.js.map +1 -0
  32. package/dist/packagePublisher/npm-utils.d.ts +66 -0
  33. package/dist/packagePublisher/npm-utils.js +129 -0
  34. package/dist/packagePublisher/npm-utils.js.map +1 -0
  35. package/dist/packagePublisher/publish-rc.d.ts +29 -0
  36. package/dist/packagePublisher/publish-rc.definitions.d.ts +4 -0
  37. package/dist/packagePublisher/publish-rc.definitions.js +20 -0
  38. package/dist/packagePublisher/publish-rc.definitions.js.map +1 -0
  39. package/dist/packagePublisher/publish-rc.js +236 -0
  40. package/dist/packagePublisher/publish-rc.js.map +1 -0
  41. package/dist/packagePublisher/publish-rc.types.d.ts +5 -0
  42. package/dist/packagePublisher/publish-rc.types.js +3 -0
  43. package/dist/packagePublisher/publish-rc.types.js.map +1 -0
  44. package/dist/packagePublisher/validations.d.ts +3 -0
  45. package/dist/packagePublisher/validations.js +20 -0
  46. package/dist/packagePublisher/validations.js.map +1 -0
  47. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This package is intended for internal use in generating custom script builds at design system build time.
4
4
 
5
+ ## 2025-08-05 `1.8.0`
6
+ #### šŸŽ‰ New features
7
+ - Added `publish-rc` script to publish Release Candidate versions of Nimbus packages. ([#300](https://github.com/TiendaNube/nimbus-design-system/pull/300) by [@joacotornello](https://github.com/joacotornello))
8
+
5
9
  ## 2025-06-04 `1.7.0`
6
10
 
7
11
  #### šŸŽ‰ New features
@@ -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 @@
1
+ export { getNextRCVersion, publishToNpm, getBaseVersionFromRC, getLocalNpmPackageVersions, setLocalNpmPackageVersion, } from "./npm-utils";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setLocalNpmPackageVersion = exports.getLocalNpmPackageVersions = exports.getBaseVersionFromRC = 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
+ Object.defineProperty(exports, "getBaseVersionFromRC", { enumerable: true, get: function () { return npm_utils_1.getBaseVersionFromRC; } });
8
+ Object.defineProperty(exports, "getLocalNpmPackageVersions", { enumerable: true, get: function () { return npm_utils_1.getLocalNpmPackageVersions; } });
9
+ Object.defineProperty(exports, "setLocalNpmPackageVersion", { enumerable: true, get: function () { return npm_utils_1.setLocalNpmPackageVersion; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/npm-utils/index.ts"],"names":[],"mappings":";;;AAAA,yCAMqB;AALnB,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,iHAAA,oBAAoB,OAAA;AACpB,uHAAA,0BAA0B,OAAA;AAC1B,sHAAA,yBAAyB,OAAA"}
@@ -0,0 +1,54 @@
1
+ import type { NpmPublishOptions } from "./npm-utils.types";
2
+ /**
3
+ * Gets all published versions for a given package from NPM registry
4
+ * @param packageName - The name of the package to check
5
+ * @returns Array of published versions, or empty array if package doesn't exist
6
+ */
7
+ export declare function getRemoteNpmPackageVersions(packageName: string): string[];
8
+ export declare function getLocalNpmPackageVersions(packageName: string): string;
9
+ /**
10
+ * Finds the next available RC version for a given base version
11
+ * @param packageName - The name of the package
12
+ * @param baseVersion - The base version (e.g., "1.0.0")
13
+ * @returns The next RC version (e.g., "1.0.0-rc.1" or "1.0.0-rc.3")
14
+ */
15
+ export declare function getNextRCVersion(packageName: string, baseVersion: string): string;
16
+ /**
17
+ * Publishes a package to NPM with specified options
18
+ * @param packageName - The name of the package workspace
19
+ * @param options - Publishing options (access, tag, OTP)
20
+ */
21
+ export declare function publishToNpm(packageName: string, options?: NpmPublishOptions): void;
22
+ /**
23
+ * Checks if a specific version exists on NPM
24
+ * @param packageName - The name of the package
25
+ * @param version - The version to check
26
+ * @returns True if the version exists, false otherwise
27
+ */
28
+ export declare function versionExistsOnNpm(packageName: string, version: string): boolean;
29
+ /**
30
+ * Gets RC versions for a specific base version
31
+ * @param packageName - The name of the package
32
+ * @param baseVersion - The base version to check RCs for
33
+ * @returns Array of RC versions for the base version
34
+ */
35
+ export declare function getRCVersionsForBase(packageName: string, baseVersion: string): string[];
36
+ /**
37
+ * Validates if a version string is a valid RC version format
38
+ * @param version - The version string to validate
39
+ * @returns True if valid RC format, false otherwise
40
+ */
41
+ export declare function isValidRCVersion(version: string): boolean;
42
+ /**
43
+ * Extracts the base version from an RC version
44
+ * @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
45
+ * @returns The base version (e.g., "1.0.0")
46
+ */
47
+ export declare function getBaseVersionFromRC(rcVersion: string): string;
48
+ /**
49
+ * Extracts the RC number from an RC version
50
+ * @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
51
+ * @returns The RC number (e.g., 1)
52
+ */
53
+ export declare function getRCNumber(rcVersion: string): number;
54
+ export declare function setLocalNpmPackageVersion(packageName: string, version: string): void;
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setLocalNpmPackageVersion = exports.getRCNumber = exports.getBaseVersionFromRC = exports.isValidRCVersion = exports.getRCVersionsForBase = exports.versionExistsOnNpm = exports.publishToNpm = exports.getNextRCVersion = exports.getLocalNpmPackageVersions = exports.getRemoteNpmPackageVersions = 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 getRemoteNpmPackageVersions(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.getRemoteNpmPackageVersions = getRemoteNpmPackageVersions;
26
+ function getLocalNpmPackageVersions(packageName) {
27
+ const versionOutput = (0, child_process_1.execSync)(`npm pkg get version --workspace=${packageName}`, { encoding: "utf8" });
28
+ let version = "";
29
+ // Try to parse the entire output as JSON (handles multi-line objects - like nimbus-ds)
30
+ try {
31
+ const parsedOutput = JSON.parse(versionOutput.trim());
32
+ if (typeof parsedOutput === "string") {
33
+ // Direct version string format: "1.0.0"
34
+ version = parsedOutput;
35
+ }
36
+ else if (typeof parsedOutput === "object" && parsedOutput !== null) {
37
+ // Object format: { "@nimbus-ds/package": "1.0.0" }
38
+ version = parsedOutput[packageName];
39
+ }
40
+ }
41
+ catch {
42
+ // If parsing the entire output fails, try line-by-line parsing
43
+ // This handles cases where npm returns multiple JSON outputs (like nimbus-ds)
44
+ const lines = versionOutput
45
+ .trim()
46
+ .split("\n")
47
+ .filter((line) => line.trim());
48
+ for (const line of lines) {
49
+ try {
50
+ const parsedLine = JSON.parse(line.trim());
51
+ if (typeof parsedLine === "string") {
52
+ // Direct version string format: "1.0.0"
53
+ version = parsedLine;
54
+ break;
55
+ }
56
+ else if (typeof parsedLine === "object" && parsedLine !== null) {
57
+ // Object format: { "@nimbus-ds/package": "1.0.0" }
58
+ if (parsedLine[packageName]) {
59
+ version = parsedLine[packageName];
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ catch (jsonError) {
65
+ // Skip invalid JSON lines and continue
66
+ continue;
67
+ }
68
+ }
69
+ }
70
+ return version;
71
+ }
72
+ exports.getLocalNpmPackageVersions = getLocalNpmPackageVersions;
73
+ /**
74
+ * Finds the next available RC version for a given base version
75
+ * @param packageName - The name of the package
76
+ * @param baseVersion - The base version (e.g., "1.0.0")
77
+ * @returns The next RC version (e.g., "1.0.0-rc.1" or "1.0.0-rc.3")
78
+ */
79
+ function getNextRCVersion(packageName, baseVersion) {
80
+ const versions = getRemoteNpmPackageVersions(packageName);
81
+ const rcVersions = versions.filter((v) => v.startsWith(`${baseVersion}-rc.`));
82
+ if (rcVersions.length === 0) {
83
+ return `${baseVersion}-rc.1`;
84
+ }
85
+ // Find highest RC number
86
+ const rcNumbers = rcVersions.map((v) => {
87
+ const match = v.match(/-rc\.(\d+)$/);
88
+ return match ? parseInt(match[1], 10) : 0;
89
+ });
90
+ const highestRC = Math.max(...rcNumbers);
91
+ const nextRC = `${baseVersion}-rc.${highestRC + 1}`;
92
+ console.log(`šŸ“‹ Found ${rcVersions.length} existing RC versions, next available: ${nextRC}`);
93
+ return nextRC;
94
+ }
95
+ exports.getNextRCVersion = getNextRCVersion;
96
+ /**
97
+ * Publishes a package to NPM with specified options
98
+ * @param packageName - The name of the package workspace
99
+ * @param options - Publishing options (access, tag, OTP)
100
+ */
101
+ function publishToNpm(packageName, options = {}) {
102
+ const { access = "public", tag = "rc", otp } = options;
103
+ try {
104
+ const accessFlag = `--access ${access}`;
105
+ const tagFlag = `--tag ${tag}`;
106
+ const otpFlag = otp ? ` --otp=${otp}` : "";
107
+ const command = `yarn workspace ${packageName} npm publish ${accessFlag} ${tagFlag}${otpFlag}`;
108
+ console.log(`šŸ“¤ Publishing with command: ${command}`);
109
+ (0, child_process_1.execSync)(command, {
110
+ stdio: "inherit",
111
+ });
112
+ }
113
+ catch (error) {
114
+ throw new Error(`npm publish failed: ${error.message}`);
115
+ }
116
+ }
117
+ exports.publishToNpm = publishToNpm;
118
+ /**
119
+ * Checks if a specific version exists on NPM
120
+ * @param packageName - The name of the package
121
+ * @param version - The version to check
122
+ * @returns True if the version exists, false otherwise
123
+ */
124
+ function versionExistsOnNpm(packageName, version) {
125
+ const versions = getRemoteNpmPackageVersions(packageName);
126
+ return versions.includes(version);
127
+ }
128
+ exports.versionExistsOnNpm = versionExistsOnNpm;
129
+ /**
130
+ * Gets RC versions for a specific base version
131
+ * @param packageName - The name of the package
132
+ * @param baseVersion - The base version to check RCs for
133
+ * @returns Array of RC versions for the base version
134
+ */
135
+ function getRCVersionsForBase(packageName, baseVersion) {
136
+ const versions = getRemoteNpmPackageVersions(packageName);
137
+ return versions.filter((v) => v.startsWith(`${baseVersion}-rc.`));
138
+ }
139
+ exports.getRCVersionsForBase = getRCVersionsForBase;
140
+ /**
141
+ * Validates if a version string is a valid RC version format
142
+ * @param version - The version string to validate
143
+ * @returns True if valid RC format, false otherwise
144
+ */
145
+ function isValidRCVersion(version) {
146
+ const rcPattern = /^\d+\.\d+\.\d+-rc\.\d+$/;
147
+ return rcPattern.test(version);
148
+ }
149
+ exports.isValidRCVersion = isValidRCVersion;
150
+ /**
151
+ * Extracts the base version from an RC version
152
+ * @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
153
+ * @returns The base version (e.g., "1.0.0")
154
+ */
155
+ function getBaseVersionFromRC(rcVersion) {
156
+ const match = rcVersion.match(/^(\d+\.\d+\.\d+)-rc\.\d+$/);
157
+ if (!match) {
158
+ throw new Error(`Invalid RC version format: ${rcVersion}`);
159
+ }
160
+ return match[1];
161
+ }
162
+ exports.getBaseVersionFromRC = getBaseVersionFromRC;
163
+ /**
164
+ * Extracts the RC number from an RC version
165
+ * @param rcVersion - The RC version (e.g., "1.0.0-rc.1")
166
+ * @returns The RC number (e.g., 1)
167
+ */
168
+ function getRCNumber(rcVersion) {
169
+ const match = rcVersion.match(/-rc\.(\d+)$/);
170
+ if (!match) {
171
+ throw new Error(`Invalid RC version format: ${rcVersion}`);
172
+ }
173
+ return parseInt(match[1], 10);
174
+ }
175
+ exports.getRCNumber = getRCNumber;
176
+ function setLocalNpmPackageVersion(packageName, version) {
177
+ try {
178
+ (0, child_process_1.execSync)(`npm version ${version} --workspace=${packageName} --no-git-tag-version`, {
179
+ // This is useful to skip calling the 'yarn' command inside each package, as that will throw an error.
180
+ stdio: "ignore",
181
+ });
182
+ }
183
+ catch (error) {
184
+ // This is a known error, continue. The command was successful.
185
+ }
186
+ }
187
+ exports.setLocalNpmPackageVersion = setLocalNpmPackageVersion;
188
+ //# sourceMappingURL=npm-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-utils.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/npm-utils/npm-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Options for publishing to NPM
3
+ */
4
+ interface NpmPublishOptions {
5
+ access?: "public" | "restricted";
6
+ tag?: string;
7
+ otp?: string;
8
+ }
9
+ export type { NpmPublishOptions };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=npm-utils.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-utils.types.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/npm-utils/npm-utils.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { getYarnWorkspaces, buildPackage } from "./workspaces";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPackage = exports.getYarnWorkspaces = void 0;
4
+ var workspaces_1 = require("./workspaces");
5
+ Object.defineProperty(exports, "getYarnWorkspaces", { enumerable: true, get: function () { return workspaces_1.getYarnWorkspaces; } });
6
+ Object.defineProperty(exports, "buildPackage", { enumerable: true, get: function () { return workspaces_1.buildPackage; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/workspaces/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAAtD,+GAAA,iBAAiB,OAAA;AAAE,0GAAA,YAAY,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { YarnWorkspace } from "./workspaces.types";
2
+ declare function getYarnWorkspaces(): YarnWorkspace[];
3
+ declare function buildPackage(packageName: string): void;
4
+ export { getYarnWorkspaces, buildPackage };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPackage = exports.getYarnWorkspaces = void 0;
4
+ const child_process_1 = require("child_process");
5
+ function getYarnWorkspaces() {
6
+ const workspacesOutput = (0, child_process_1.execSync)("yarn workspaces list --json", {
7
+ encoding: "utf8",
8
+ });
9
+ const workspaces = workspacesOutput
10
+ .split("\n")
11
+ .filter((line) => line.trim())
12
+ .map((line) => JSON.parse(line));
13
+ return workspaces;
14
+ }
15
+ exports.getYarnWorkspaces = getYarnWorkspaces;
16
+ function buildPackage(packageName) {
17
+ (0, child_process_1.execSync)(`yarn workspace ${packageName} build`, {
18
+ stdio: "inherit",
19
+ });
20
+ }
21
+ exports.buildPackage = buildPackage;
22
+ //# sourceMappingURL=workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/workspaces/workspaces.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAGzC,SAAS,iBAAiB;IACxB,MAAM,gBAAgB,GAAG,IAAA,wBAAQ,EAAC,6BAA6B,EAAE;QAC/D,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,gBAAgB;SAChC,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnC,OAAO,UAAU,CAAC;AACpB,CAAC;AAQQ,8CAAiB;AAN1B,SAAS,YAAY,CAAC,WAAmB;IACvC,IAAA,wBAAQ,EAAC,kBAAkB,WAAW,QAAQ,EAAE;QAC9C,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC;AAE2B,oCAAY"}
@@ -0,0 +1,4 @@
1
+ export type YarnWorkspace = {
2
+ name: string;
3
+ location: string;
4
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=workspaces.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.types.js","sourceRoot":"","sources":["../../../../src/packagePublisher/core/workspaces/workspaces.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { getNextRCVersion, publishToNpm } from "./core/npm-utils/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("./core/npm-utils/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,wDAA4E;AAAnE,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,29 @@
1
+ import type { PackageInfo } from "./publish-rc.types";
2
+ /**
3
+ * Tool for publishing Release Candidate versions of Nimbus packages
4
+ * Handles version calculation, building, and publishing to npm with rc tag
5
+ */
6
+ declare class RCPublisher {
7
+ private packageInfo;
8
+ private originalVersion;
9
+ private skipBuild;
10
+ private otp?;
11
+ constructor();
12
+ showHelp(): void;
13
+ validateArgs(argv: string[]): {
14
+ packageName: string;
15
+ version: string;
16
+ otp?: string;
17
+ skipBuild: boolean;
18
+ showHelp: boolean;
19
+ };
20
+ run(packageName: string, version?: string, skipBuild?: boolean, otp?: string): Promise<void>;
21
+ findPackageByName(packageName: string): PackageInfo;
22
+ determineRCVersion(versionArg: string): Promise<string>;
23
+ calculateNextVersion(currentVersion: string, bumpType: string): string;
24
+ confirmPublish(rcVersion: string): Promise<boolean>;
25
+ publishRC(rcVersion: string, otp?: string): Promise<void>;
26
+ updatePackageVersion(rcVersion: string): void;
27
+ cleanup(): Promise<void>;
28
+ }
29
+ export { RCPublisher };
@@ -0,0 +1,4 @@
1
+ declare function isBumpType(version: string): boolean;
2
+ declare function isValidSemanticVersion(version: string): boolean;
3
+ declare function isValidRCVersion(version: string): boolean;
4
+ export { isBumpType, isValidSemanticVersion, isValidRCVersion };
@@ -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=publish-rc.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-rc.definitions.js","sourceRoot":"","sources":["../../src/packagePublisher/publish-rc.definitions.ts"],"names":[],"mappings":";;;AAAA,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAcQ,gCAAU;AAZnB,SAAS,sBAAsB,CAAC,OAAe;IAC7C,2DAA2D;IAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAQoB,wDAAsB;AAN3C,SAAS,gBAAgB,CAAC,OAAe;IACvC,oEAAoE;IACpE,MAAM,cAAc,GAAG,yBAAyB,CAAC;IACjD,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAE4C,4CAAgB"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RCPublisher = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const readline_1 = tslib_1.__importDefault(require("readline"));
6
+ const npm_utils_1 = require("./core/npm-utils/npm-utils");
7
+ const publish_rc_definitions_1 = require("./publish-rc.definitions");
8
+ const workspaces_1 = require("./core/workspaces/workspaces");
9
+ /**
10
+ * Tool for publishing Release Candidate versions of Nimbus packages
11
+ * Handles version calculation, building, and publishing to npm with rc tag
12
+ */
13
+ class RCPublisher {
14
+ packageInfo;
15
+ originalVersion = "";
16
+ skipBuild = false;
17
+ otp;
18
+ constructor() {
19
+ this.packageInfo = {};
20
+ }
21
+ showHelp() {
22
+ console.log(`šŸš€ Nimbus RC Publisher
23
+
24
+ Usage: yarn publish:rc <packageName> [version] [--skip-build] [--otp=123456]
25
+
26
+ Parameters:
27
+ packageName (required) Name of package to publish (e.g., @nimbus-ds/button)
28
+
29
+ version (optional) Version to publish
30
+ - Base version: 1.3.0 (must be major.minor.patch format, finds next RC slot: 1.3.0-rc.1)
31
+ - Full RC: 1.3.0-rc.2 (must be major.minor.patch-rc.number format, publishes exact version)
32
+ - Bump type: major, minor, or patch (calculates next version from base version)
33
+ - If not provided, uses current version (if current is RC, extracts base version)
34
+
35
+ Examples:
36
+ yarn publish:rc @nimbus-ds/button # Specific package, use version files or current
37
+ yarn publish:rc @nimbus-ds/button 1.3.0 # Specific package and version
38
+ yarn publish:rc @nimbus-ds/button --otp=123456 --skip-build # Combine flags
39
+
40
+ Options:
41
+ -h, --help Show this help message
42
+ --skip-build Skip the build process and publish package as-is
43
+ --otp=123456 Provide 2FA one-time password for npm publish (6 digits from authenticator app)
44
+
45
+ For more details, see scripts/README.md`);
46
+ }
47
+ validateArgs(argv) {
48
+ // Parse arguments (filter out flags)
49
+ const args = argv.slice(2).filter((arg) => !arg.startsWith("-"));
50
+ const packageName = args[0];
51
+ const version = args[1] || "";
52
+ const otpArg = process.argv.find((arg) => arg.startsWith("--otp="));
53
+ const otp = otpArg ? otpArg.split("=")[1] : undefined;
54
+ const skipBuild = argv.includes("--skip-build");
55
+ const showHelp = argv.includes("--help") || argv.includes("-h");
56
+ // Validate OTP parameter
57
+ if (otp && (otp.length !== 6 || !/^\d{6}$/.test(otp))) {
58
+ throw new Error("\nāŒ Invalid OTP format. Please provide exactly 6 digits (e.g., --otp=123456)");
59
+ }
60
+ // Validate required package name
61
+ if (!packageName || packageName.trim() === "") {
62
+ throw new Error("\nāŒ Error: Package name is required. \n\nUsage: yarn publish:rc <packageName> [version] [options] \nExample: yarn publish:rc @nimbus-ds/button");
63
+ }
64
+ return { packageName, version, otp, skipBuild, showHelp };
65
+ }
66
+ async run(packageName, version = "", skipBuild = false, otp) {
67
+ try {
68
+ console.log("šŸš€ Nimbus RC Publisher");
69
+ console.log("======================");
70
+ console.log();
71
+ // Check for skip-build flag
72
+ this.skipBuild = skipBuild;
73
+ this.otp = otp;
74
+ // Find package to publish
75
+ this.packageInfo = this.findPackageByName(packageName);
76
+ console.log(`šŸ“¦ Package: ${this.packageInfo.name}`);
77
+ console.log(`šŸ“‹ Current version: ${this.packageInfo.version}\n`);
78
+ // Determine RC version to publish
79
+ const rcVersion = await this.determineRCVersion(version);
80
+ console.log(`šŸŽÆ Publishing version: ${rcVersion}\n`);
81
+ // Confirm with user
82
+ const confirmed = await this.confirmPublish(rcVersion);
83
+ if (!confirmed) {
84
+ console.log("āŒ Publishing cancelled by user");
85
+ return;
86
+ }
87
+ // Execute publishing process
88
+ await this.publishRC(rcVersion, this.otp);
89
+ console.log(`\nāœ… Successfully published ${this.packageInfo.name}@${rcVersion}`);
90
+ console.log(`\nšŸ“„ Install with: yarn add ${this.packageInfo.name}@${rcVersion}`);
91
+ }
92
+ catch (error) {
93
+ console.error("\nšŸ’„ Publishing failed:", error instanceof Error ? error.message : String(error));
94
+ await this.cleanup();
95
+ process.exit(1);
96
+ }
97
+ }
98
+ findPackageByName(packageName) {
99
+ // Get all workspaces using yarn
100
+ const workspaces = (0, workspaces_1.getYarnWorkspaces)();
101
+ const workspace = workspaces.find((ws) => ws.name === packageName);
102
+ if (!workspace)
103
+ throw new Error(`Package "${packageName}" not found in workspace`);
104
+ try {
105
+ const version = (0, npm_utils_1.getLocalNpmPackageVersions)(packageName);
106
+ if (!version) {
107
+ throw new Error(`Version not found for package "${packageName}". `);
108
+ }
109
+ return {
110
+ name: workspace.name,
111
+ version,
112
+ };
113
+ }
114
+ catch (error) {
115
+ throw new Error(`Error getting version for package "${packageName}": ${error instanceof Error ? error.message : String(error)}`);
116
+ }
117
+ }
118
+ async determineRCVersion(versionArg) {
119
+ if (versionArg && versionArg.trim() !== "") {
120
+ // Version specified by user
121
+ const version = versionArg.trim();
122
+ if (version.includes("-rc.")) {
123
+ // Complete RC version provided - validate format and use as-is
124
+ if (!(0, publish_rc_definitions_1.isValidRCVersion)(version)) {
125
+ throw new Error(`\nāŒ Invalid RC version format: "${version}". RC version must follow semantic versioning format (major.minor.patch-rc.number)\n` +
126
+ ` Examples: 6.1.1-rc.1, 6.0.0-rc.2, 1.2.3-rc.5\n` +
127
+ ` Invalid: "6-rc.1", "6.5-rc.1", "1.2-rc.1"`);
128
+ }
129
+ return version;
130
+ }
131
+ else if ((0, publish_rc_definitions_1.isBumpType)(version)) {
132
+ // Bump type provided (major/minor/patch) - calculate next version
133
+ const nextVersion = this.calculateNextVersion(this.packageInfo.version, version.toLowerCase());
134
+ return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, nextVersion);
135
+ }
136
+ else {
137
+ // Base version provided - validate format and find next RC slot
138
+ if (!(0, publish_rc_definitions_1.isValidSemanticVersion)(version)) {
139
+ throw new Error(`\nāŒ Invalid version format: "${version}". Version must follow semantic versioning format (major.minor.patch)\n` +
140
+ ` Examples: 6.1.1, 6.0.0, 1.2.3\n` +
141
+ ` Invalid: "6", "6.5", "1.2"`);
142
+ }
143
+ return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, version);
144
+ }
145
+ }
146
+ else {
147
+ // No version provided - use current version, but extract base version if it's already an RC
148
+ let baseVersion = this.packageInfo.version;
149
+ // If current version is already an RC, extract the base version
150
+ if (baseVersion.includes("-rc.")) {
151
+ if (!(0, publish_rc_definitions_1.isValidRCVersion)(baseVersion)) {
152
+ throw new Error(`\nāŒ Invalid current RC version format: "${baseVersion}". RC version must follow semantic versioning format (major.minor.patch-rc.number)`);
153
+ }
154
+ baseVersion = (0, npm_utils_1.getBaseVersionFromRC)(baseVersion);
155
+ console.log(`šŸ”„ Current version is RC, using base version: ${baseVersion}`);
156
+ }
157
+ return (0, npm_utils_1.getNextRCVersion)(this.packageInfo.name, baseVersion);
158
+ }
159
+ }
160
+ calculateNextVersion(currentVersion, bumpType) {
161
+ // If current version is an RC, extract the base version for calculation
162
+ let baseVersion = currentVersion;
163
+ if (currentVersion.includes("-rc.")) {
164
+ if (!(0, publish_rc_definitions_1.isValidRCVersion)(currentVersion)) {
165
+ throw new Error(`\nāŒ Invalid current RC version format: "${currentVersion}". RC version must follow semantic versioning format (major.minor.patch-rc.number)\n` +
166
+ ` Examples: 6.1.1-rc.1, 6.0.0-rc.2, 1.2.3-rc.5\n` +
167
+ ` Invalid: "6-rc.1", "6.5-rc.1", "1.2-rc.1"`);
168
+ }
169
+ baseVersion = (0, npm_utils_1.getBaseVersionFromRC)(currentVersion);
170
+ console.log(`šŸ”„ Current version is RC, using base version for calculation: ${baseVersion}`);
171
+ }
172
+ const [major, minor, patch] = baseVersion.split(".").map(Number);
173
+ console.log(`🧮 Version calculation:`);
174
+ console.log(` Latest npm published version: ${currentVersion}`);
175
+ console.log(` Local version: ${baseVersion}`);
176
+ console.log(` Bump type: ${bumpType}`);
177
+ let nextVersion;
178
+ switch (bumpType) {
179
+ case "major":
180
+ nextVersion = `${major + 1}.0.0`;
181
+ break;
182
+ case "minor":
183
+ nextVersion = `${major}.${minor + 1}.0`;
184
+ break;
185
+ case "patch":
186
+ default:
187
+ nextVersion = `${major}.${minor}.${patch + 1}`;
188
+ break;
189
+ }
190
+ console.log(` Calculated: ${nextVersion}`);
191
+ return nextVersion;
192
+ }
193
+ async confirmPublish(rcVersion) {
194
+ const rl = readline_1.default.createInterface({
195
+ input: process.stdin,
196
+ output: process.stdout,
197
+ });
198
+ return new Promise((resolve) => {
199
+ rl.question(`\nā“ Publish ${this.packageInfo.name}@${rcVersion}? (y/N): `, (answer) => {
200
+ rl.close();
201
+ resolve(answer.toLowerCase().startsWith("y"));
202
+ });
203
+ });
204
+ }
205
+ async publishRC(rcVersion, otp) {
206
+ if (this.skipBuild) {
207
+ console.log("\n⚔ Skipping build process (--skip-build flag detected)");
208
+ }
209
+ else {
210
+ console.log("šŸ”Ø Building package...");
211
+ (0, workspaces_1.buildPackage)(this.packageInfo.name);
212
+ }
213
+ console.log("šŸ“ Updating package.json version...");
214
+ this.updatePackageVersion(rcVersion);
215
+ console.log("šŸ“¤ Publishing to npm...");
216
+ (0, npm_utils_1.publishToNpm)(this.packageInfo.name, {
217
+ access: "public",
218
+ tag: "rc",
219
+ otp,
220
+ });
221
+ await this.cleanup();
222
+ }
223
+ updatePackageVersion(rcVersion) {
224
+ // Store original version for cleanup
225
+ this.originalVersion = this.packageInfo.version;
226
+ (0, npm_utils_1.setLocalNpmPackageVersion)(this.packageInfo.name, rcVersion);
227
+ }
228
+ async cleanup() {
229
+ if (this.originalVersion && this.packageInfo.name) {
230
+ console.log("šŸ”„ Restoring original package.json version...");
231
+ this.updatePackageVersion(this.originalVersion);
232
+ }
233
+ }
234
+ }
235
+ exports.RCPublisher = RCPublisher;
236
+ //# 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,5 @@
1
+ interface PackageInfo {
2
+ name: string;
3
+ version: string;
4
+ }
5
+ export type { PackageInfo };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=publish-rc.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-rc.types.js","sourceRoot":"","sources":["../../src/packagePublisher/publish-rc.types.ts"],"names":[],"mappings":""}
@@ -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.10",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "files": [