@microsoft/rush 5.158.1 → 5.160.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.json CHANGED
@@ -1,6 +1,76 @@
1
1
  {
2
2
  "name": "@microsoft/rush",
3
3
  "entries": [
4
+ {
5
+ "version": "5.160.0",
6
+ "tag": "@microsoft/rush_v5.160.0",
7
+ "date": "Fri, 03 Oct 2025 20:10:21 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Bump the default Node and `pnpm` versions in the `rush init` template."
12
+ },
13
+ {
14
+ "comment": "Fix an issue with validation of the `pnpm-lock.yaml` `packageExtensionsChecksum` field in pnpm v10."
15
+ },
16
+ {
17
+ "comment": "Fix an issue where the `$schema` property is dropped from `common/config/rush/pnpm-config.json` when running `rush-pnpm patch-commit ...`"
18
+ }
19
+ ],
20
+ "minor": [
21
+ {
22
+ "comment": "Normalize import of builtin modules to use the `node:` protocol."
23
+ }
24
+ ]
25
+ }
26
+ },
27
+ {
28
+ "version": "5.159.0",
29
+ "tag": "@microsoft/rush_v5.159.0",
30
+ "date": "Fri, 03 Oct 2025 00:50:08 GMT",
31
+ "comments": {
32
+ "none": [
33
+ {
34
+ "comment": "Fix to allow Bridge Cache plugin be installed but not used when build cache disabled; add cache key to terminal logs"
35
+ },
36
+ {
37
+ "comment": "Add `IOperationExecutionResult.problemCollector` API which matches and collects VS Code style problem matchers"
38
+ },
39
+ {
40
+ "comment": "Replace uuid package dependency with Node.js built-in crypto.randomUUID"
41
+ },
42
+ {
43
+ "comment": "[rush-resolver-cache] Ensure that the correct version of rush-lib is loaded when the global version doesn't match the repository version."
44
+ },
45
+ {
46
+ "comment": "Upgraded `js-yaml` dependency"
47
+ },
48
+ {
49
+ "comment": "Enhance logging for IPC mode by allowing IPC runners to report detailed reasons for rerun, e.g. specific changed files."
50
+ },
51
+ {
52
+ "comment": "Support aborting execution in phased commands. The CLI allows aborting via the \"a\" key in watch mode, and it is available to plugin authors for more advanced scenarios."
53
+ },
54
+ {
55
+ "comment": "[rush-serve-plugin] Support aborting execution via Web Socket. Include information about the dependencies of operations in messages to the client.."
56
+ },
57
+ {
58
+ "comment": "Add a logging message after the 'Trying to find \"tar\" binary' message when the binary is found."
59
+ },
60
+ {
61
+ "comment": "Upgrade inquirer to 8.2.7 in rush-lib"
62
+ },
63
+ {
64
+ "comment": "Bump \"express\" to 4.21.1 to address reported vulnerabilities in 4.20.0."
65
+ }
66
+ ],
67
+ "patch": [
68
+ {
69
+ "comment": "[rush-azure-storage-build-cache-plugin] Trim access token output in AdoCodespacesAuthCredential"
70
+ }
71
+ ]
72
+ }
73
+ },
4
74
  {
5
75
  "version": "5.158.1",
6
76
  "tag": "@microsoft/rush_v5.158.1",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,40 @@
1
1
  # Change Log - @microsoft/rush
2
2
 
3
- This log was last generated on Fri, 29 Aug 2025 00:08:18 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 03 Oct 2025 20:10:21 GMT and should not be manually modified.
4
+
5
+ ## 5.160.0
6
+ Fri, 03 Oct 2025 20:10:21 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Normalize import of builtin modules to use the `node:` protocol.
11
+
12
+ ### Updates
13
+
14
+ - Bump the default Node and `pnpm` versions in the `rush init` template.
15
+ - Fix an issue with validation of the `pnpm-lock.yaml` `packageExtensionsChecksum` field in pnpm v10.
16
+ - Fix an issue where the `$schema` property is dropped from `common/config/rush/pnpm-config.json` when running `rush-pnpm patch-commit ...`
17
+
18
+ ## 5.159.0
19
+ Fri, 03 Oct 2025 00:50:08 GMT
20
+
21
+ ### Patches
22
+
23
+ - [rush-azure-storage-build-cache-plugin] Trim access token output in AdoCodespacesAuthCredential
24
+
25
+ ### Updates
26
+
27
+ - Fix to allow Bridge Cache plugin be installed but not used when build cache disabled; add cache key to terminal logs
28
+ - Add `IOperationExecutionResult.problemCollector` API which matches and collects VS Code style problem matchers
29
+ - Replace uuid package dependency with Node.js built-in crypto.randomUUID
30
+ - [rush-resolver-cache] Ensure that the correct version of rush-lib is loaded when the global version doesn't match the repository version.
31
+ - Upgraded `js-yaml` dependency
32
+ - Enhance logging for IPC mode by allowing IPC runners to report detailed reasons for rerun, e.g. specific changed files.
33
+ - Support aborting execution in phased commands. The CLI allows aborting via the "a" key in watch mode, and it is available to plugin authors for more advanced scenarios.
34
+ - [rush-serve-plugin] Support aborting execution via Web Socket. Include information about the dependencies of operations in messages to the client..
35
+ - Add a logging message after the 'Trying to find "tar" binary' message when the binary is found.
36
+ - Upgrade inquirer to 8.2.7 in rush-lib
37
+ - Bump "express" to 4.21.1 to address reported vulnerabilities in 4.20.0.
4
38
 
5
39
  ## 5.158.1
6
40
  Fri, 29 Aug 2025 00:08:18 GMT
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  })();
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.MinimalRushConfiguration = void 0;
39
- const path = __importStar(require("path"));
39
+ const path = __importStar(require("node:path"));
40
40
  const node_core_library_1 = require("@rushstack/node-core-library");
41
41
  const rush_lib_1 = require("@microsoft/rush-lib");
42
42
  const RushConstants_1 = require("@microsoft/rush-lib/lib/logic/RushConstants");
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalRushConfiguration.js","sourceRoot":"","sources":["../src/MinimalRushConfiguration.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,2CAA6B;AAE7B,oEAAwD;AACxD,kDAAwD;AACxD,+EAA4E;AAC5E,6FAA0F;AAO1F;;;GAGG;AACH,MAAa,wBAAwB;IAInC,YAAoB,4BAA2D,EAAE,gBAAwB;QACvG,IAAI,CAAC,YAAY;YACf,4BAA4B,CAAC,WAAW,IAAI,4BAA4B,CAAC,kBAAkB,CAAC;QAC9F,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACtC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC9B,6BAAa,CAAC,gBAAgB,EAC9B,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACnC,MAAM,gBAAgB,GAAuB,4BAAiB,CAAC,uBAAuB,CAAC;YACrF,WAAW,EAAE,CAAC,6CAAqB,CAAC,2BAA2B,EAAE;SAClE,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,wBAAwB,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,gBAAwB;QAChE,IAAI,CAAC;YACH,MAAM,4BAA4B,GAAkC,4BAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpG,OAAO,IAAI,wBAAwB,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,IAAW,sBAAsB;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;CACF;AAvDD,4DAuDC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\n\nimport { JsonFile } from '@rushstack/node-core-library';\nimport { RushConfiguration } from '@microsoft/rush-lib';\nimport { RushConstants } from '@microsoft/rush-lib/lib/logic/RushConstants';\nimport { RushCommandLineParser } from '@microsoft/rush-lib/lib/cli/RushCommandLineParser';\n\ninterface IMinimalRushConfigurationJson {\n rushMinimumVersion: string;\n rushVersion?: string;\n}\n\n/**\n * Represents a minimal subset of the rush.json configuration file. It provides the information necessary to\n * decide which version of Rush should be installed/used.\n */\nexport class MinimalRushConfiguration {\n private _rushVersion: string;\n private _commonRushConfigFolder: string;\n\n private constructor(minimalRushConfigurationJson: IMinimalRushConfigurationJson, rushJsonFilename: string) {\n this._rushVersion =\n minimalRushConfigurationJson.rushVersion || minimalRushConfigurationJson.rushMinimumVersion;\n this._commonRushConfigFolder = path.join(\n path.dirname(rushJsonFilename),\n RushConstants.commonFolderName,\n 'config',\n 'rush'\n );\n }\n\n public static loadFromDefaultLocation(): MinimalRushConfiguration | undefined {\n const rushJsonLocation: string | undefined = RushConfiguration.tryFindRushJsonLocation({\n showVerbose: !RushCommandLineParser.shouldRestrictConsoleOutput()\n });\n if (rushJsonLocation) {\n return MinimalRushConfiguration._loadFromConfigurationFile(rushJsonLocation);\n } else {\n return undefined;\n }\n }\n\n private static _loadFromConfigurationFile(rushJsonFilename: string): MinimalRushConfiguration | undefined {\n try {\n const minimalRushConfigurationJson: IMinimalRushConfigurationJson = JsonFile.load(rushJsonFilename);\n return new MinimalRushConfiguration(minimalRushConfigurationJson, rushJsonFilename);\n } catch (e) {\n return undefined;\n }\n }\n\n /**\n * The version of rush specified by the rushVersion property of the rush.json configuration file. If the\n * rushVersion property is not specified, this falls back to the rushMinimumVersion property. This should be\n * a semver style version number like \"4.0.0\"\n */\n public get rushVersion(): string {\n return this._rushVersion;\n }\n\n /**\n * The folder where Rush's additional config files are stored. This folder is always a\n * subfolder called \"config\\rush\" inside the common folder. (The \"common\\config\" folder\n * is reserved for configuration files used by other tools.) To avoid confusion or mistakes,\n * Rush will report an error if this this folder contains any unrecognized files.\n *\n * Example: \"C:\\MyRepo\\common\\config\\rush\"\n */\n public get commonRushConfigFolder(): string {\n return this._commonRushConfigFolder;\n }\n}\n"]}
1
+ {"version":3,"file":"MinimalRushConfiguration.js","sourceRoot":"","sources":["../src/MinimalRushConfiguration.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,gDAAkC;AAElC,oEAAwD;AACxD,kDAAwD;AACxD,+EAA4E;AAC5E,6FAA0F;AAO1F;;;GAGG;AACH,MAAa,wBAAwB;IAInC,YAAoB,4BAA2D,EAAE,gBAAwB;QACvG,IAAI,CAAC,YAAY;YACf,4BAA4B,CAAC,WAAW,IAAI,4BAA4B,CAAC,kBAAkB,CAAC;QAC9F,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACtC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC9B,6BAAa,CAAC,gBAAgB,EAC9B,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACnC,MAAM,gBAAgB,GAAuB,4BAAiB,CAAC,uBAAuB,CAAC;YACrF,WAAW,EAAE,CAAC,6CAAqB,CAAC,2BAA2B,EAAE;SAClE,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,wBAAwB,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,gBAAwB;QAChE,IAAI,CAAC;YACH,MAAM,4BAA4B,GAAkC,4BAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpG,OAAO,IAAI,wBAAwB,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,IAAW,sBAAsB;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;CACF;AAvDD,4DAuDC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport { JsonFile } from '@rushstack/node-core-library';\nimport { RushConfiguration } from '@microsoft/rush-lib';\nimport { RushConstants } from '@microsoft/rush-lib/lib/logic/RushConstants';\nimport { RushCommandLineParser } from '@microsoft/rush-lib/lib/cli/RushCommandLineParser';\n\ninterface IMinimalRushConfigurationJson {\n rushMinimumVersion: string;\n rushVersion?: string;\n}\n\n/**\n * Represents a minimal subset of the rush.json configuration file. It provides the information necessary to\n * decide which version of Rush should be installed/used.\n */\nexport class MinimalRushConfiguration {\n private _rushVersion: string;\n private _commonRushConfigFolder: string;\n\n private constructor(minimalRushConfigurationJson: IMinimalRushConfigurationJson, rushJsonFilename: string) {\n this._rushVersion =\n minimalRushConfigurationJson.rushVersion || minimalRushConfigurationJson.rushMinimumVersion;\n this._commonRushConfigFolder = path.join(\n path.dirname(rushJsonFilename),\n RushConstants.commonFolderName,\n 'config',\n 'rush'\n );\n }\n\n public static loadFromDefaultLocation(): MinimalRushConfiguration | undefined {\n const rushJsonLocation: string | undefined = RushConfiguration.tryFindRushJsonLocation({\n showVerbose: !RushCommandLineParser.shouldRestrictConsoleOutput()\n });\n if (rushJsonLocation) {\n return MinimalRushConfiguration._loadFromConfigurationFile(rushJsonLocation);\n } else {\n return undefined;\n }\n }\n\n private static _loadFromConfigurationFile(rushJsonFilename: string): MinimalRushConfiguration | undefined {\n try {\n const minimalRushConfigurationJson: IMinimalRushConfigurationJson = JsonFile.load(rushJsonFilename);\n return new MinimalRushConfiguration(minimalRushConfigurationJson, rushJsonFilename);\n } catch (e) {\n return undefined;\n }\n }\n\n /**\n * The version of rush specified by the rushVersion property of the rush.json configuration file. If the\n * rushVersion property is not specified, this falls back to the rushMinimumVersion property. This should be\n * a semver style version number like \"4.0.0\"\n */\n public get rushVersion(): string {\n return this._rushVersion;\n }\n\n /**\n * The folder where Rush's additional config files are stored. This folder is always a\n * subfolder called \"config\\rush\" inside the common folder. (The \"common\\config\" folder\n * is reserved for configuration files used by other tools.) To avoid confusion or mistakes,\n * Rush will report an error if this this folder contains any unrecognized files.\n *\n * Example: \"C:\\MyRepo\\common\\config\\rush\"\n */\n public get commonRushConfigFolder(): string {\n return this._commonRushConfigFolder;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RushCommandSelector.d.ts","sourceRoot":"","sources":["../src/RushCommandSelector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAKpD;;;;;;GAMG;AACH,qBAAa,mBAAmB;WAChB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WAS7C,OAAO,CACnB,eAAe,EAAE,MAAM,EAEvB,eAAe,EAAE,GAAG,EACpB,OAAO,EAAE,OAAO,CAAC,cAAc,GAC9B,IAAI;IAkCP,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B,OAAO,CAAC,MAAM,CAAC,eAAe;CAkB/B"}
1
+ {"version":3,"file":"RushCommandSelector.d.ts","sourceRoot":"","sources":["../src/RushCommandSelector.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAKpD;;;;;;GAMG;AACH,qBAAa,mBAAmB;WAChB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WAS7C,OAAO,CACnB,eAAe,EAAE,MAAM,EAEvB,eAAe,EAAE,GAAG,EACpB,OAAO,EAAE,OAAO,CAAC,cAAc,GAC9B,IAAI;IAkCP,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B,OAAO,CAAC,MAAM,CAAC,eAAe;CAkB/B"}
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  })();
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.RushCommandSelector = void 0;
39
- const path = __importStar(require("path"));
39
+ const path = __importStar(require("node:path"));
40
40
  const terminal_1 = require("@rushstack/terminal");
41
41
  /**
42
42
  * Both "rush" and "rushx" share the same src/start.ts entry point. This makes it
@@ -1 +1 @@
1
- {"version":3,"file":"RushCommandSelector.js","sourceRoot":"","sources":["../src/RushCommandSelector.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,2CAA6B;AAE7B,kDAA+C;AAI/C;;;;;;GAMG;AACH,MAAa,mBAAmB;IACvB,MAAM,CAAC,sBAAsB,CAAC,OAAe;QAClD,MAAM,WAAW,GAAgB,mBAAmB,CAAC,eAAe,EAAE,CAAC;QACvE,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACxD,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,OAAO,+BAA+B,WAAW,UAAU,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO,CACnB,eAAuB;IACvB,8DAA8D;IAC9D,eAAoB,EACpB,OAA+B;QAE/B,MAAM,IAAI,GAAwB,eAAe,CAAC,IAAI,CAAC;QAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,2EAA2E;YAC3E,mBAAmB,CAAC,cAAc,CAAC,8DAA8D,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,WAAW,GAAgB,mBAAmB,CAAC,eAAe,EAAE,CAAC;QAEvE,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,IAAI,CAAC,OAAO,EAAE;oBACrD,iDAAiD,CACpD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;gBACnC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;aACvE,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,IAAI,CAAC,OAAO,EAAE;oBACrD,6CAA6C,CAChD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAe;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7B,WAAW;YACX,iDAAiD;YACjD,mFAAmF;YACnF,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAxED,kDAwEC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\nimport type * as rushLib from '@microsoft/rush-lib';\nimport { Colorize } from '@rushstack/terminal';\n\ntype CommandName = 'rush' | 'rush-pnpm' | 'rushx' | undefined;\n\n/**\n * Both \"rush\" and \"rushx\" share the same src/start.ts entry point. This makes it\n * a little easier for them to share all the same startup checks and version selector\n * logic. RushCommandSelector looks at argv to determine whether we're doing \"rush\"\n * or \"rushx\" behavior, and then invokes the appropriate entry point in the selected\n * @microsoft/rush-lib.\n */\nexport class RushCommandSelector {\n public static failIfNotInvokedAsRush(version: string): void {\n const commandName: CommandName = RushCommandSelector._getCommandName();\n if (commandName !== 'rush' && commandName !== undefined) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${version} which does not support the ${commandName} command`\n );\n }\n }\n\n public static execute(\n launcherVersion: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedRushLib: any,\n options: rushLib.ILaunchOptions\n ): void {\n const Rush: typeof rushLib.Rush = selectedRushLib.Rush;\n\n if (!Rush) {\n // This should be impossible unless we somehow loaded an unexpected version\n RushCommandSelector._failWithError(`Unable to find the \"Rush\" entry point in @microsoft/rush-lib`);\n }\n\n const commandName: CommandName = RushCommandSelector._getCommandName();\n\n if (commandName === 'rush-pnpm') {\n if (!Rush.launchRushPnpm) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${Rush.version}` +\n ` which does not support the \"rush-pnpm\" command`\n );\n }\n Rush.launchRushPnpm(launcherVersion, {\n isManaged: options.isManaged,\n alreadyReportedNodeTooNewError: options.alreadyReportedNodeTooNewError\n });\n } else if (commandName === 'rushx') {\n if (!Rush.launchRushX) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${Rush.version}` +\n ` which does not support the \"rushx\" command`\n );\n }\n Rush.launchRushX(launcherVersion, options);\n } else {\n Rush.launch(launcherVersion, options);\n }\n }\n\n private static _failWithError(message: string): never {\n console.log(Colorize.red(message));\n return process.exit(1);\n }\n\n private static _getCommandName(): CommandName {\n if (process.argv.length >= 2) {\n // Example:\n // argv[0]: \"C:\\\\Program Files\\\\nodejs\\\\node.exe\"\n // argv[1]: \"C:\\\\Program Files\\\\nodejs\\\\node_modules\\\\@microsoft\\\\rush\\\\bin\\\\rushx\"\n const basename: string = path.basename(process.argv[1]).toUpperCase();\n if (basename === 'RUSH') {\n return 'rush';\n }\n if (basename === 'RUSH-PNPM') {\n return 'rush-pnpm';\n }\n if (basename === 'RUSHX') {\n return 'rushx';\n }\n }\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"RushCommandSelector.js","sourceRoot":"","sources":["../src/RushCommandSelector.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,gDAAkC;AAGlC,kDAA+C;AAI/C;;;;;;GAMG;AACH,MAAa,mBAAmB;IACvB,MAAM,CAAC,sBAAsB,CAAC,OAAe;QAClD,MAAM,WAAW,GAAgB,mBAAmB,CAAC,eAAe,EAAE,CAAC;QACvE,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACxD,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,OAAO,+BAA+B,WAAW,UAAU,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO,CACnB,eAAuB;IACvB,8DAA8D;IAC9D,eAAoB,EACpB,OAA+B;QAE/B,MAAM,IAAI,GAAwB,eAAe,CAAC,IAAI,CAAC;QAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,2EAA2E;YAC3E,mBAAmB,CAAC,cAAc,CAAC,8DAA8D,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,WAAW,GAAgB,mBAAmB,CAAC,eAAe,EAAE,CAAC;QAEvE,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,IAAI,CAAC,OAAO,EAAE;oBACrD,iDAAiD,CACpD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;gBACnC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;aACvE,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,mBAAmB,CAAC,cAAc,CAChC,yCAAyC,IAAI,CAAC,OAAO,EAAE;oBACrD,6CAA6C,CAChD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAe;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7B,WAAW;YACX,iDAAiD;YACjD,mFAAmF;YACnF,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAxED,kDAwEC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type * as rushLib from '@microsoft/rush-lib';\nimport { Colorize } from '@rushstack/terminal';\n\ntype CommandName = 'rush' | 'rush-pnpm' | 'rushx' | undefined;\n\n/**\n * Both \"rush\" and \"rushx\" share the same src/start.ts entry point. This makes it\n * a little easier for them to share all the same startup checks and version selector\n * logic. RushCommandSelector looks at argv to determine whether we're doing \"rush\"\n * or \"rushx\" behavior, and then invokes the appropriate entry point in the selected\n * @microsoft/rush-lib.\n */\nexport class RushCommandSelector {\n public static failIfNotInvokedAsRush(version: string): void {\n const commandName: CommandName = RushCommandSelector._getCommandName();\n if (commandName !== 'rush' && commandName !== undefined) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${version} which does not support the ${commandName} command`\n );\n }\n }\n\n public static execute(\n launcherVersion: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedRushLib: any,\n options: rushLib.ILaunchOptions\n ): void {\n const Rush: typeof rushLib.Rush = selectedRushLib.Rush;\n\n if (!Rush) {\n // This should be impossible unless we somehow loaded an unexpected version\n RushCommandSelector._failWithError(`Unable to find the \"Rush\" entry point in @microsoft/rush-lib`);\n }\n\n const commandName: CommandName = RushCommandSelector._getCommandName();\n\n if (commandName === 'rush-pnpm') {\n if (!Rush.launchRushPnpm) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${Rush.version}` +\n ` which does not support the \"rush-pnpm\" command`\n );\n }\n Rush.launchRushPnpm(launcherVersion, {\n isManaged: options.isManaged,\n alreadyReportedNodeTooNewError: options.alreadyReportedNodeTooNewError\n });\n } else if (commandName === 'rushx') {\n if (!Rush.launchRushX) {\n RushCommandSelector._failWithError(\n `This repository is using Rush version ${Rush.version}` +\n ` which does not support the \"rushx\" command`\n );\n }\n Rush.launchRushX(launcherVersion, options);\n } else {\n Rush.launch(launcherVersion, options);\n }\n }\n\n private static _failWithError(message: string): never {\n console.log(Colorize.red(message));\n return process.exit(1);\n }\n\n private static _getCommandName(): CommandName {\n if (process.argv.length >= 2) {\n // Example:\n // argv[0]: \"C:\\\\Program Files\\\\nodejs\\\\node.exe\"\n // argv[1]: \"C:\\\\Program Files\\\\nodejs\\\\node_modules\\\\@microsoft\\\\rush\\\\bin\\\\rushx\"\n const basename: string = path.basename(process.argv[1]).toUpperCase();\n if (basename === 'RUSH') {\n return 'rush';\n }\n if (basename === 'RUSH-PNPM') {\n return 'rush-pnpm';\n }\n if (basename === 'RUSHX') {\n return 'rushx';\n }\n }\n return undefined;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RushVersionSelector.d.ts","sourceRoot":"","sources":["../src/RushVersionSelector.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAI3E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,sBAAsB,CAAS;gBAEpB,qBAAqB,EAAE,MAAM;IAKnC,+BAA+B,CAC1C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,wBAAwB,GAAG,SAAS,EACnD,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC;CAiEjB"}
1
+ {"version":3,"file":"RushVersionSelector.d.ts","sourceRoot":"","sources":["../src/RushVersionSelector.ts"],"names":[],"mappings":"AASA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAI3E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,sBAAsB,CAAS;gBAEpB,qBAAqB,EAAE,MAAM;IAKnC,+BAA+B,CAC1C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,wBAAwB,GAAG,SAAS,EACnD,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC;CAiEjB"}
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  })();
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.RushVersionSelector = void 0;
39
- const path = __importStar(require("path"));
39
+ const path = __importStar(require("node:path"));
40
40
  const semver = __importStar(require("semver"));
41
41
  const node_core_library_1 = require("@rushstack/node-core-library");
42
42
  const Utilities_1 = require("@microsoft/rush-lib/lib/utilities/Utilities");
@@ -1 +1 @@
1
- {"version":3,"file":"RushVersionSelector.js","sourceRoot":"","sources":["../src/RushVersionSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\nimport * as semver from 'semver';\n\nimport { LockFile } from '@rushstack/node-core-library';\nimport { Utilities } from '@microsoft/rush-lib/lib/utilities/Utilities';\nimport { _FlagFile, _RushGlobalFolder, type ILaunchOptions } from '@microsoft/rush-lib';\n\nimport { RushCommandSelector } from './RushCommandSelector';\nimport type { MinimalRushConfiguration } from './MinimalRushConfiguration';\n\nconst MAX_INSTALL_ATTEMPTS: number = 3;\n\nexport class RushVersionSelector {\n private _rushGlobalFolder: _RushGlobalFolder;\n private _currentPackageVersion: string;\n\n public constructor(currentPackageVersion: string) {\n this._rushGlobalFolder = new _RushGlobalFolder();\n this._currentPackageVersion = currentPackageVersion;\n }\n\n public async ensureRushVersionInstalledAsync(\n version: string,\n configuration: MinimalRushConfiguration | undefined,\n executeOptions: ILaunchOptions\n ): Promise<void> {\n const isLegacyRushVersion: boolean = semver.lt(version, '4.0.0');\n const expectedRushPath: string = path.join(this._rushGlobalFolder.nodeSpecificPath, `rush-${version}`);\n\n const installMarker: _FlagFile = new _FlagFile(expectedRushPath, 'last-install', {\n node: process.versions.node\n });\n\n let installIsValid: boolean = await installMarker.isValidAsync();\n if (!installIsValid) {\n // Need to install Rush\n console.log(`Rush version ${version} is not currently installed. Installing...`);\n\n const resourceName: string = `rush-${version}`;\n\n console.log(`Trying to acquire lock for ${resourceName}`);\n\n const lock: LockFile = await LockFile.acquire(expectedRushPath, resourceName);\n installIsValid = await installMarker.isValidAsync();\n if (installIsValid) {\n console.log('Another process performed the installation.');\n } else {\n await Utilities.installPackageInDirectoryAsync({\n directory: expectedRushPath,\n packageName: isLegacyRushVersion ? '@microsoft/rush' : '@microsoft/rush-lib',\n version: version,\n tempPackageTitle: 'rush-local-install',\n maxInstallAttempts: MAX_INSTALL_ATTEMPTS,\n // This is using a local configuration to install a package in a shared global location.\n // Generally that's a bad practice, but in this case if we can successfully install\n // the package at all, we can reasonably assume it's good for all the repositories.\n // In particular, we'll assume that two different NPM registries cannot have two\n // different implementations of the same version of the same package.\n // This was needed for: https://github.com/microsoft/rushstack/issues/691\n commonRushConfigFolder: configuration ? configuration.commonRushConfigFolder : undefined,\n suppressOutput: true\n });\n\n console.log(`Successfully installed Rush version ${version} in ${expectedRushPath}.`);\n\n // If we've made it here without exception, write the flag file\n await installMarker.createAsync();\n\n lock.release();\n }\n }\n\n if (semver.lt(version, '3.0.20')) {\n // In old versions, requiring the entry point invoked the command-line parser immediately,\n // so fail if \"rushx\" or \"rush-pnpm\" was used\n RushCommandSelector.failIfNotInvokedAsRush(version);\n require(path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush', 'lib', 'rush'));\n } else if (semver.lt(version, '4.0.0')) {\n // In old versions, requiring the entry point invoked the command-line parser immediately,\n // so fail if \"rushx\" or \"rush-pnpm\" was used\n RushCommandSelector.failIfNotInvokedAsRush(version);\n require(path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush', 'lib', 'start'));\n } else {\n // For newer rush-lib, RushCommandSelector can test whether \"rushx\" is supported or not\n const rushCliEntrypoint: {} = require(\n path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush-lib', 'lib', 'index')\n );\n RushCommandSelector.execute(this._currentPackageVersion, rushCliEntrypoint, executeOptions);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"RushVersionSelector.js","sourceRoot":"","sources":["../src/RushVersionSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport * as semver from 'semver';\n\nimport { LockFile } from '@rushstack/node-core-library';\nimport { Utilities } from '@microsoft/rush-lib/lib/utilities/Utilities';\nimport { _FlagFile, _RushGlobalFolder, type ILaunchOptions } from '@microsoft/rush-lib';\n\nimport { RushCommandSelector } from './RushCommandSelector';\nimport type { MinimalRushConfiguration } from './MinimalRushConfiguration';\n\nconst MAX_INSTALL_ATTEMPTS: number = 3;\n\nexport class RushVersionSelector {\n private _rushGlobalFolder: _RushGlobalFolder;\n private _currentPackageVersion: string;\n\n public constructor(currentPackageVersion: string) {\n this._rushGlobalFolder = new _RushGlobalFolder();\n this._currentPackageVersion = currentPackageVersion;\n }\n\n public async ensureRushVersionInstalledAsync(\n version: string,\n configuration: MinimalRushConfiguration | undefined,\n executeOptions: ILaunchOptions\n ): Promise<void> {\n const isLegacyRushVersion: boolean = semver.lt(version, '4.0.0');\n const expectedRushPath: string = path.join(this._rushGlobalFolder.nodeSpecificPath, `rush-${version}`);\n\n const installMarker: _FlagFile = new _FlagFile(expectedRushPath, 'last-install', {\n node: process.versions.node\n });\n\n let installIsValid: boolean = await installMarker.isValidAsync();\n if (!installIsValid) {\n // Need to install Rush\n console.log(`Rush version ${version} is not currently installed. Installing...`);\n\n const resourceName: string = `rush-${version}`;\n\n console.log(`Trying to acquire lock for ${resourceName}`);\n\n const lock: LockFile = await LockFile.acquire(expectedRushPath, resourceName);\n installIsValid = await installMarker.isValidAsync();\n if (installIsValid) {\n console.log('Another process performed the installation.');\n } else {\n await Utilities.installPackageInDirectoryAsync({\n directory: expectedRushPath,\n packageName: isLegacyRushVersion ? '@microsoft/rush' : '@microsoft/rush-lib',\n version: version,\n tempPackageTitle: 'rush-local-install',\n maxInstallAttempts: MAX_INSTALL_ATTEMPTS,\n // This is using a local configuration to install a package in a shared global location.\n // Generally that's a bad practice, but in this case if we can successfully install\n // the package at all, we can reasonably assume it's good for all the repositories.\n // In particular, we'll assume that two different NPM registries cannot have two\n // different implementations of the same version of the same package.\n // This was needed for: https://github.com/microsoft/rushstack/issues/691\n commonRushConfigFolder: configuration ? configuration.commonRushConfigFolder : undefined,\n suppressOutput: true\n });\n\n console.log(`Successfully installed Rush version ${version} in ${expectedRushPath}.`);\n\n // If we've made it here without exception, write the flag file\n await installMarker.createAsync();\n\n lock.release();\n }\n }\n\n if (semver.lt(version, '3.0.20')) {\n // In old versions, requiring the entry point invoked the command-line parser immediately,\n // so fail if \"rushx\" or \"rush-pnpm\" was used\n RushCommandSelector.failIfNotInvokedAsRush(version);\n require(path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush', 'lib', 'rush'));\n } else if (semver.lt(version, '4.0.0')) {\n // In old versions, requiring the entry point invoked the command-line parser immediately,\n // so fail if \"rushx\" or \"rush-pnpm\" was used\n RushCommandSelector.failIfNotInvokedAsRush(version);\n require(path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush', 'lib', 'start'));\n } else {\n // For newer rush-lib, RushCommandSelector can test whether \"rushx\" is supported or not\n const rushCliEntrypoint: {} = require(\n path.join(expectedRushPath, 'node_modules', '@microsoft', 'rush-lib', 'lib', 'index')\n );\n RushCommandSelector.execute(this._currentPackageVersion, rushCliEntrypoint, executeOptions);\n }\n }\n}\n"]}
package/lib/start.js CHANGED
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  // we check to see if the Node.js version is too old. If, for whatever reason, Rush crashes with
40
40
  // an old Node.js version when evaluating one of the more complex imports, we'll at least
41
41
  // shown a meaningful error message.
42
+ // eslint-disable-next-line import/order
42
43
  const NodeJsCompatibility_1 = require("@microsoft/rush-lib/lib/logic/NodeJsCompatibility");
43
44
  if (NodeJsCompatibility_1.NodeJsCompatibility.reportAncientIncompatibleVersion()) {
44
45
  // The Node.js version is known to have serious incompatibilities. In that situation, the user
@@ -49,7 +50,7 @@ const alreadyReportedNodeTooNewError = NodeJsCompatibility_1.NodeJsCompatibility
49
50
  isRushLib: false,
50
51
  alreadyReportedNodeTooNewError: false
51
52
  });
52
- const os = __importStar(require("os"));
53
+ const os = __importStar(require("node:os"));
53
54
  const semver = __importStar(require("semver"));
54
55
  const node_core_library_1 = require("@rushstack/node-core-library");
55
56
  const terminal_1 = require("@rushstack/terminal");
package/lib/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n// We're using a path-based import here to minimize the amount of code that is evaluated before\n// we check to see if the Node.js version is too old. If, for whatever reason, Rush crashes with\n// an old Node.js version when evaluating one of the more complex imports, we'll at least\n// shown a meaningful error message.\nimport { NodeJsCompatibility } from '@microsoft/rush-lib/lib/logic/NodeJsCompatibility';\n\nif (NodeJsCompatibility.reportAncientIncompatibleVersion()) {\n // The Node.js version is known to have serious incompatibilities. In that situation, the user\n // should downgrade Rush to an older release that supported their Node.js version.\n process.exit(1);\n}\n\nconst alreadyReportedNodeTooNewError: boolean = NodeJsCompatibility.warnAboutVersionTooNew({\n isRushLib: false,\n alreadyReportedNodeTooNewError: false\n});\n\nimport * as os from 'os';\nimport * as semver from 'semver';\n\nimport { Text, PackageJsonLookup } from '@rushstack/node-core-library';\nimport { Colorize, ConsoleTerminalProvider, type ITerminalProvider } from '@rushstack/terminal';\nimport { EnvironmentVariableNames } from '@microsoft/rush-lib';\nimport * as rushLib from '@microsoft/rush-lib';\n\nimport { RushCommandSelector } from './RushCommandSelector';\nimport { RushVersionSelector } from './RushVersionSelector';\nimport { MinimalRushConfiguration } from './MinimalRushConfiguration';\n\n// Load the configuration\nconst configuration: MinimalRushConfiguration | undefined =\n MinimalRushConfiguration.loadFromDefaultLocation();\n\nconst currentPackageVersion: string = PackageJsonLookup.loadOwnPackageJson(__dirname).version;\n\nlet rushVersionToLoad: string | undefined = undefined;\n\nconst previewVersion: string | undefined = process.env[EnvironmentVariableNames.RUSH_PREVIEW_VERSION];\n\nif (previewVersion) {\n if (!semver.valid(previewVersion, false)) {\n console.error(\n Colorize.red(`Invalid value for RUSH_PREVIEW_VERSION environment variable: \"${previewVersion}\"`)\n );\n process.exit(1);\n }\n\n rushVersionToLoad = previewVersion;\n\n const lines: string[] = [];\n lines.push(\n `*********************************************************************`,\n `* WARNING! THE \"RUSH_PREVIEW_VERSION\" ENVIRONMENT VARIABLE IS SET. *`,\n `* *`,\n `* You are previewing Rush version: ${Text.padEnd(previewVersion, 25)} *`\n );\n\n if (configuration) {\n lines.push(`* The rush.json configuration asks for: ${Text.padEnd(configuration.rushVersion, 25)} *`);\n }\n\n lines.push(\n `* *`,\n `* To restore the normal behavior, unset the RUSH_PREVIEW_VERSION *`,\n `* environment variable. *`,\n `*********************************************************************`\n );\n\n console.error(lines.map((line) => Colorize.black(Colorize.yellowBackground(line))).join(os.EOL));\n} else if (configuration) {\n rushVersionToLoad = configuration.rushVersion;\n}\n\n// If we are previewing an older Rush that doesn't understand the RUSH_PREVIEW_VERSION variable,\n// then unset it.\nif (rushVersionToLoad && semver.lt(rushVersionToLoad, '5.0.0-dev.18')) {\n delete process.env[EnvironmentVariableNames.RUSH_PREVIEW_VERSION];\n}\n\n// Rush is \"managed\" if its version and configuration are dictated by a repo's rush.json\nconst isManaged: boolean = !!configuration;\n\nconst terminalProvider: ITerminalProvider = new ConsoleTerminalProvider();\n\nconst launchOptions: rushLib.ILaunchOptions = { isManaged, alreadyReportedNodeTooNewError, terminalProvider };\n\n// If we're inside a repo folder, and it's requesting a different version, then use the RushVersionManager to\n// install it\nif (rushVersionToLoad && rushVersionToLoad !== currentPackageVersion) {\n const versionSelector: RushVersionSelector = new RushVersionSelector(currentPackageVersion);\n versionSelector\n .ensureRushVersionInstalledAsync(rushVersionToLoad, configuration, launchOptions)\n .catch((error: Error) => {\n console.log(Colorize.red('Error: ' + error.message));\n });\n} else {\n // Otherwise invoke the rush-lib that came with this rush package\n RushCommandSelector.execute(currentPackageVersion, rushLib, launchOptions);\n}\n"]}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n// We're using a path-based import here to minimize the amount of code that is evaluated before\n// we check to see if the Node.js version is too old. If, for whatever reason, Rush crashes with\n// an old Node.js version when evaluating one of the more complex imports, we'll at least\n// shown a meaningful error message.\n// eslint-disable-next-line import/order\nimport { NodeJsCompatibility } from '@microsoft/rush-lib/lib/logic/NodeJsCompatibility';\n\nif (NodeJsCompatibility.reportAncientIncompatibleVersion()) {\n // The Node.js version is known to have serious incompatibilities. In that situation, the user\n // should downgrade Rush to an older release that supported their Node.js version.\n process.exit(1);\n}\n\nconst alreadyReportedNodeTooNewError: boolean = NodeJsCompatibility.warnAboutVersionTooNew({\n isRushLib: false,\n alreadyReportedNodeTooNewError: false\n});\n\nimport * as os from 'node:os';\n\nimport * as semver from 'semver';\n\nimport { Text, PackageJsonLookup } from '@rushstack/node-core-library';\nimport { Colorize, ConsoleTerminalProvider, type ITerminalProvider } from '@rushstack/terminal';\nimport { EnvironmentVariableNames } from '@microsoft/rush-lib';\nimport * as rushLib from '@microsoft/rush-lib';\n\nimport { RushCommandSelector } from './RushCommandSelector';\nimport { RushVersionSelector } from './RushVersionSelector';\nimport { MinimalRushConfiguration } from './MinimalRushConfiguration';\n\n// Load the configuration\nconst configuration: MinimalRushConfiguration | undefined =\n MinimalRushConfiguration.loadFromDefaultLocation();\n\nconst currentPackageVersion: string = PackageJsonLookup.loadOwnPackageJson(__dirname).version;\n\nlet rushVersionToLoad: string | undefined = undefined;\n\nconst previewVersion: string | undefined = process.env[EnvironmentVariableNames.RUSH_PREVIEW_VERSION];\n\nif (previewVersion) {\n if (!semver.valid(previewVersion, false)) {\n console.error(\n Colorize.red(`Invalid value for RUSH_PREVIEW_VERSION environment variable: \"${previewVersion}\"`)\n );\n process.exit(1);\n }\n\n rushVersionToLoad = previewVersion;\n\n const lines: string[] = [];\n lines.push(\n `*********************************************************************`,\n `* WARNING! THE \"RUSH_PREVIEW_VERSION\" ENVIRONMENT VARIABLE IS SET. *`,\n `* *`,\n `* You are previewing Rush version: ${Text.padEnd(previewVersion, 25)} *`\n );\n\n if (configuration) {\n lines.push(`* The rush.json configuration asks for: ${Text.padEnd(configuration.rushVersion, 25)} *`);\n }\n\n lines.push(\n `* *`,\n `* To restore the normal behavior, unset the RUSH_PREVIEW_VERSION *`,\n `* environment variable. *`,\n `*********************************************************************`\n );\n\n console.error(lines.map((line) => Colorize.black(Colorize.yellowBackground(line))).join(os.EOL));\n} else if (configuration) {\n rushVersionToLoad = configuration.rushVersion;\n}\n\n// If we are previewing an older Rush that doesn't understand the RUSH_PREVIEW_VERSION variable,\n// then unset it.\nif (rushVersionToLoad && semver.lt(rushVersionToLoad, '5.0.0-dev.18')) {\n delete process.env[EnvironmentVariableNames.RUSH_PREVIEW_VERSION];\n}\n\n// Rush is \"managed\" if its version and configuration are dictated by a repo's rush.json\nconst isManaged: boolean = !!configuration;\n\nconst terminalProvider: ITerminalProvider = new ConsoleTerminalProvider();\n\nconst launchOptions: rushLib.ILaunchOptions = { isManaged, alreadyReportedNodeTooNewError, terminalProvider };\n\n// If we're inside a repo folder, and it's requesting a different version, then use the RushVersionManager to\n// install it\nif (rushVersionToLoad && rushVersionToLoad !== currentPackageVersion) {\n const versionSelector: RushVersionSelector = new RushVersionSelector(currentPackageVersion);\n versionSelector\n .ensureRushVersionInstalledAsync(rushVersionToLoad, configuration, launchOptions)\n .catch((error: Error) => {\n console.log(Colorize.red('Error: ' + error.message));\n });\n} else {\n // Otherwise invoke the rush-lib that came with this rush package\n RushCommandSelector.execute(currentPackageVersion, rushLib, launchOptions);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/rush",
3
- "version": "5.158.1",
3
+ "version": "5.160.0",
4
4
  "description": "A professional solution for consolidating all your JavaScript projects in one Git repo",
5
5
  "keywords": [
6
6
  "install",
@@ -31,19 +31,19 @@
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
33
  "semver": "~7.5.4",
34
- "@rushstack/node-core-library": "5.14.0",
35
- "@rushstack/terminal": "0.15.4",
36
- "@microsoft/rush-lib": "5.158.1"
34
+ "@microsoft/rush-lib": "5.160.0",
35
+ "@rushstack/node-core-library": "5.16.0",
36
+ "@rushstack/terminal": "0.19.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "eslint": "~9.25.1",
40
40
  "@types/heft-jest": "1.0.1",
41
41
  "@types/semver": "7.5.0",
42
- "@rushstack/rush-amazon-s3-build-cache-plugin": "5.158.1",
42
+ "@rushstack/heft": "1.1.0",
43
+ "@rushstack/rush-amazon-s3-build-cache-plugin": "5.160.0",
43
44
  "local-node-rig": "1.0.0",
44
- "@rushstack/heft": "0.74.3",
45
- "@rushstack/rush-azure-storage-build-cache-plugin": "5.158.1",
46
- "@rushstack/rush-http-build-cache-plugin": "5.158.1"
45
+ "@rushstack/rush-azure-storage-build-cache-plugin": "5.160.0",
46
+ "@rushstack/rush-http-build-cache-plugin": "5.160.0"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "heft build --clean",