@rushstack/rush-sdk 5.136.0 → 5.137.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/dist/rush-lib.d.ts +2 -0
- package/lib/logic/ProjectChangeAnalyzer.d.ts +3 -0
- package/lib-shim/index.js +219 -320
- package/lib-shim/index.js.map +1 -1
- package/package.json +9 -8
package/lib-shim/index.js
CHANGED
|
@@ -106,23 +106,168 @@ async function iterateAsync(basePath, filePath, segments) {
|
|
|
106
106
|
|
|
107
107
|
/***/ }),
|
|
108
108
|
|
|
109
|
-
/***/ "../rush-lib/lib-esnext/api/
|
|
110
|
-
|
|
111
|
-
!*** ../rush-lib/lib-esnext/api/
|
|
112
|
-
|
|
109
|
+
/***/ "../rush-lib/lib-esnext/api/RushGlobalFolder.js":
|
|
110
|
+
/*!******************************************************************!*\
|
|
111
|
+
!*** ../rush-lib/lib-esnext/api/RushGlobalFolder.js + 7 modules ***!
|
|
112
|
+
\******************************************************************/
|
|
113
113
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
114
114
|
|
|
115
|
+
// ESM COMPAT FLAG
|
|
115
116
|
__webpack_require__.r(__webpack_exports__);
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
/*
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
|
|
118
|
+
// EXPORTS
|
|
119
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
120
|
+
RushGlobalFolder: () => (/* binding */ RushGlobalFolder)
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// EXTERNAL MODULE: external "path"
|
|
124
|
+
var external_path_ = __webpack_require__("path");
|
|
125
|
+
;// external "child_process"
|
|
126
|
+
const external_child_process_namespaceObject = require("child_process");
|
|
127
|
+
// EXTERNAL MODULE: external "os"
|
|
128
|
+
var external_os_ = __webpack_require__("os");
|
|
129
|
+
;// external "perf_hooks"
|
|
130
|
+
const external_perf_hooks_namespaceObject = require("perf_hooks");
|
|
131
|
+
;// external "stream"
|
|
132
|
+
const external_stream_namespaceObject = require("stream");
|
|
133
|
+
// EXTERNAL MODULE: external "@rushstack/node-core-library"
|
|
134
|
+
var node_core_library_ = __webpack_require__("@rushstack/node-core-library");
|
|
135
|
+
// EXTERNAL MODULE: external "fs"
|
|
136
|
+
var external_fs_ = __webpack_require__("fs");
|
|
137
|
+
;// ../rush-lib/lib-esnext/utilities/npmrcUtilities.js
|
|
138
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
139
|
+
// See LICENSE in the project root for license information.
|
|
140
|
+
// IMPORTANT - do not use any non-built-in libraries in this file
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* This function reads the content for given .npmrc file path, and also trims
|
|
145
|
+
* unusable lines from the .npmrc file.
|
|
146
|
+
*
|
|
147
|
+
* @returns
|
|
148
|
+
* The text of the the .npmrc.
|
|
149
|
+
*/
|
|
150
|
+
// create a global _combinedNpmrc for cache purpose
|
|
151
|
+
const _combinedNpmrcMap = new Map();
|
|
152
|
+
function _trimNpmrcFile(options) {
|
|
153
|
+
const { sourceNpmrcPath, linesToPrepend, linesToAppend } = options;
|
|
154
|
+
const combinedNpmrcFromCache = _combinedNpmrcMap.get(sourceNpmrcPath);
|
|
155
|
+
if (combinedNpmrcFromCache !== undefined) {
|
|
156
|
+
return combinedNpmrcFromCache;
|
|
157
|
+
}
|
|
158
|
+
let npmrcFileLines = [];
|
|
159
|
+
if (linesToPrepend) {
|
|
160
|
+
npmrcFileLines.push(...linesToPrepend);
|
|
161
|
+
}
|
|
162
|
+
if (external_fs_.existsSync(sourceNpmrcPath)) {
|
|
163
|
+
npmrcFileLines.push(...external_fs_.readFileSync(sourceNpmrcPath).toString().split('\n'));
|
|
164
|
+
}
|
|
165
|
+
if (linesToAppend) {
|
|
166
|
+
npmrcFileLines.push(...linesToAppend);
|
|
167
|
+
}
|
|
168
|
+
npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim());
|
|
169
|
+
const resultLines = [];
|
|
170
|
+
// This finds environment variable tokens that look like "${VAR_NAME}"
|
|
171
|
+
const expansionRegExp = /\$\{([^\}]+)\}/g;
|
|
172
|
+
// Comment lines start with "#" or ";"
|
|
173
|
+
const commentRegExp = /^\s*[#;]/;
|
|
174
|
+
// Trim out lines that reference environment variables that aren't defined
|
|
175
|
+
for (let line of npmrcFileLines) {
|
|
176
|
+
let lineShouldBeTrimmed = false;
|
|
177
|
+
//remove spaces before or after key and value
|
|
178
|
+
line = line
|
|
179
|
+
.split('=')
|
|
180
|
+
.map((lineToTrim) => lineToTrim.trim())
|
|
181
|
+
.join('=');
|
|
182
|
+
// Ignore comment lines
|
|
183
|
+
if (!commentRegExp.test(line)) {
|
|
184
|
+
const environmentVariables = line.match(expansionRegExp);
|
|
185
|
+
if (environmentVariables) {
|
|
186
|
+
for (const token of environmentVariables) {
|
|
187
|
+
// Remove the leading "${" and the trailing "}" from the token
|
|
188
|
+
const environmentVariableName = token.substring(2, token.length - 1);
|
|
189
|
+
// Is the environment variable defined?
|
|
190
|
+
if (!process.env[environmentVariableName]) {
|
|
191
|
+
// No, so trim this line
|
|
192
|
+
lineShouldBeTrimmed = true;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (lineShouldBeTrimmed) {
|
|
199
|
+
// Example output:
|
|
200
|
+
// "; MISSING ENVIRONMENT VARIABLE: //my-registry.com/npm/:_authToken=${MY_AUTH_TOKEN}"
|
|
201
|
+
resultLines.push('; MISSING ENVIRONMENT VARIABLE: ' + line);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
resultLines.push(line);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
const combinedNpmrc = resultLines.join('\n');
|
|
208
|
+
//save the cache
|
|
209
|
+
_combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc);
|
|
210
|
+
return combinedNpmrc;
|
|
211
|
+
}
|
|
212
|
+
function _copyAndTrimNpmrcFile(options) {
|
|
213
|
+
const { logger, sourceNpmrcPath, targetNpmrcPath, linesToPrepend, linesToAppend } = options;
|
|
214
|
+
logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose
|
|
215
|
+
logger.info(` --> "${targetNpmrcPath}"`);
|
|
216
|
+
const combinedNpmrc = _trimNpmrcFile({
|
|
217
|
+
sourceNpmrcPath,
|
|
218
|
+
linesToPrepend,
|
|
219
|
+
linesToAppend
|
|
220
|
+
});
|
|
221
|
+
external_fs_.writeFileSync(targetNpmrcPath, combinedNpmrc);
|
|
222
|
+
return combinedNpmrc;
|
|
223
|
+
}
|
|
224
|
+
function syncNpmrc(options) {
|
|
225
|
+
const { sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = {
|
|
226
|
+
// eslint-disable-next-line no-console
|
|
227
|
+
info: console.log,
|
|
228
|
+
// eslint-disable-next-line no-console
|
|
229
|
+
error: console.error
|
|
230
|
+
}, createIfMissing = false, linesToAppend, linesToPrepend } = options;
|
|
231
|
+
const sourceNpmrcPath = external_path_.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish');
|
|
232
|
+
const targetNpmrcPath = external_path_.join(targetNpmrcFolder, '.npmrc');
|
|
233
|
+
try {
|
|
234
|
+
if (external_fs_.existsSync(sourceNpmrcPath) || createIfMissing) {
|
|
235
|
+
// Ensure the target folder exists
|
|
236
|
+
if (!external_fs_.existsSync(targetNpmrcFolder)) {
|
|
237
|
+
external_fs_.mkdirSync(targetNpmrcFolder, { recursive: true });
|
|
238
|
+
}
|
|
239
|
+
return _copyAndTrimNpmrcFile({
|
|
240
|
+
sourceNpmrcPath,
|
|
241
|
+
targetNpmrcPath,
|
|
242
|
+
logger,
|
|
243
|
+
linesToAppend,
|
|
244
|
+
linesToPrepend
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
else if (external_fs_.existsSync(targetNpmrcPath)) {
|
|
248
|
+
// If the source .npmrc doesn't exist and there is one in the target, delete the one in the target
|
|
249
|
+
logger.info(`Deleting ${targetNpmrcPath}`); // Verbose
|
|
250
|
+
external_fs_.unlinkSync(targetNpmrcPath);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
catch (e) {
|
|
254
|
+
throw new Error(`Error syncing .npmrc file: ${e}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey) {
|
|
258
|
+
const sourceNpmrcPath = `${sourceNpmrcFolder}/.npmrc`;
|
|
259
|
+
//if .npmrc file does not exist, return false directly
|
|
260
|
+
if (!fs.existsSync(sourceNpmrcPath)) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath });
|
|
264
|
+
const variableKeyRegExp = new RegExp(`^${variableKey}=`, 'm');
|
|
265
|
+
return trimmedNpmrcFile.match(variableKeyRegExp) !== null;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=npmrcUtilities.js.map
|
|
268
|
+
// EXTERNAL MODULE: ../../common/temp/default/node_modules/.pnpm/true-case-path@2.2.1/node_modules/true-case-path/index.js
|
|
269
|
+
var true_case_path = __webpack_require__("../../common/temp/default/node_modules/.pnpm/true-case-path@2.2.1/node_modules/true-case-path/index.js");
|
|
270
|
+
;// ../rush-lib/lib-esnext/api/EnvironmentConfiguration.js
|
|
126
271
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
127
272
|
// See LICENSE in the project root for license information.
|
|
128
273
|
|
|
@@ -466,7 +611,7 @@ class EnvironmentConfiguration {
|
|
|
466
611
|
if (process.env.hasOwnProperty(envVarName) && envVarName.match(/^RUSH_/i)) {
|
|
467
612
|
const value = process.env[envVarName];
|
|
468
613
|
// Environment variables are only case-insensitive on Windows
|
|
469
|
-
const normalizedEnvVarName =
|
|
614
|
+
const normalizedEnvVarName = external_os_.platform() === 'win32' ? envVarName.toUpperCase() : envVarName;
|
|
470
615
|
switch (normalizedEnvVarName) {
|
|
471
616
|
case EnvironmentVariableNames.RUSH_TEMP_FOLDER: {
|
|
472
617
|
EnvironmentConfiguration._rushTempFolderOverride =
|
|
@@ -617,24 +762,24 @@ class EnvironmentConfiguration {
|
|
|
617
762
|
* returns 'C:\\Folder1\\folder2\\temp\\subfolder'
|
|
618
763
|
*/
|
|
619
764
|
static _normalizeDeepestParentFolderPath(folderPath) {
|
|
620
|
-
folderPath =
|
|
621
|
-
const endsWithSlash = folderPath.charAt(folderPath.length - 1) ===
|
|
622
|
-
const parsedPath =
|
|
765
|
+
folderPath = external_path_.normalize(folderPath);
|
|
766
|
+
const endsWithSlash = folderPath.charAt(folderPath.length - 1) === external_path_.sep;
|
|
767
|
+
const parsedPath = external_path_.parse(folderPath);
|
|
623
768
|
const pathRoot = parsedPath.root;
|
|
624
769
|
const pathWithoutRoot = parsedPath.dir.substr(pathRoot.length);
|
|
625
|
-
const pathParts = [...pathWithoutRoot.split(
|
|
770
|
+
const pathParts = [...pathWithoutRoot.split(external_path_.sep), parsedPath.name].filter((part) => !!part);
|
|
626
771
|
// Starting with all path sections, and eliminating one from the end during each loop iteration,
|
|
627
772
|
// run trueCasePathSync. If trueCasePathSync returns without exception, we've found a subset
|
|
628
773
|
// of the path that exists and we've now gotten the correct casing.
|
|
629
774
|
//
|
|
630
775
|
// Once we've found a parent folder that exists, append the path sections that didn't exist.
|
|
631
776
|
for (let i = pathParts.length; i >= 0; i--) {
|
|
632
|
-
const constructedPath =
|
|
777
|
+
const constructedPath = external_path_.join(pathRoot, ...pathParts.slice(0, i));
|
|
633
778
|
try {
|
|
634
|
-
const normalizedConstructedPath = (0,
|
|
635
|
-
const result =
|
|
779
|
+
const normalizedConstructedPath = (0,true_case_path.trueCasePathSync)(constructedPath);
|
|
780
|
+
const result = external_path_.join(normalizedConstructedPath, ...pathParts.slice(i));
|
|
636
781
|
if (endsWithSlash) {
|
|
637
|
-
return `${result}${
|
|
782
|
+
return `${result}${external_path_.sep}`;
|
|
638
783
|
}
|
|
639
784
|
else {
|
|
640
785
|
return result;
|
|
@@ -652,64 +797,7 @@ EnvironmentConfiguration._absoluteSymlinks = false;
|
|
|
652
797
|
EnvironmentConfiguration._allowUnsupportedNodeVersion = false;
|
|
653
798
|
EnvironmentConfiguration._allowWarningsInSuccessfulBuild = false;
|
|
654
799
|
//# sourceMappingURL=EnvironmentConfiguration.js.map
|
|
655
|
-
|
|
656
|
-
/***/ }),
|
|
657
|
-
|
|
658
|
-
/***/ "../rush-lib/lib-esnext/api/RushGlobalFolder.js":
|
|
659
|
-
/*!******************************************************!*\
|
|
660
|
-
!*** ../rush-lib/lib-esnext/api/RushGlobalFolder.js ***!
|
|
661
|
-
\******************************************************/
|
|
662
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
663
|
-
|
|
664
|
-
__webpack_require__.r(__webpack_exports__);
|
|
665
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
666
|
-
/* harmony export */ "RushGlobalFolder": () => (/* binding */ RushGlobalFolder)
|
|
667
|
-
/* harmony export */ });
|
|
668
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "path");
|
|
669
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
|
|
670
|
-
/* harmony import */ var _utilities_Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utilities/Utilities */ "../rush-lib/lib-esnext/utilities/Utilities.js");
|
|
671
|
-
/* harmony import */ var _EnvironmentConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EnvironmentConfiguration */ "../rush-lib/lib-esnext/api/EnvironmentConfiguration.js");
|
|
672
|
-
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
673
|
-
// See LICENSE in the project root for license information.
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* This class provides global folders that are used for rush's internal install locations.
|
|
679
|
-
*
|
|
680
|
-
* @internal
|
|
681
|
-
*/
|
|
682
|
-
class RushGlobalFolder {
|
|
683
|
-
constructor() {
|
|
684
|
-
// Because RushGlobalFolder is used by the front-end VersionSelector before EnvironmentConfiguration
|
|
685
|
-
// is initialized, we need to read it using a special internal API.
|
|
686
|
-
const rushGlobalFolderOverride = _EnvironmentConfiguration__WEBPACK_IMPORTED_MODULE_1__.EnvironmentConfiguration._getRushGlobalFolderOverride(process.env);
|
|
687
|
-
if (rushGlobalFolderOverride !== undefined) {
|
|
688
|
-
this.path = rushGlobalFolderOverride;
|
|
689
|
-
}
|
|
690
|
-
else {
|
|
691
|
-
this.path = path__WEBPACK_IMPORTED_MODULE_0__.join(_utilities_Utilities__WEBPACK_IMPORTED_MODULE_2__.Utilities.getHomeFolder(), '.rush');
|
|
692
|
-
}
|
|
693
|
-
const normalizedNodeVersion = process.version.match(/^[a-z0-9\-\.]+$/i)
|
|
694
|
-
? process.version
|
|
695
|
-
: 'unknown-version';
|
|
696
|
-
this.nodeSpecificPath = path__WEBPACK_IMPORTED_MODULE_0__.join(this.path, `node-${normalizedNodeVersion}`);
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
//# sourceMappingURL=RushGlobalFolder.js.map
|
|
700
|
-
|
|
701
|
-
/***/ }),
|
|
702
|
-
|
|
703
|
-
/***/ "../rush-lib/lib-esnext/logic/RushConstants.js":
|
|
704
|
-
/*!*****************************************************!*\
|
|
705
|
-
!*** ../rush-lib/lib-esnext/logic/RushConstants.js ***!
|
|
706
|
-
\*****************************************************/
|
|
707
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
708
|
-
|
|
709
|
-
__webpack_require__.r(__webpack_exports__);
|
|
710
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
711
|
-
/* harmony export */ "RushConstants": () => (/* binding */ RushConstants)
|
|
712
|
-
/* harmony export */ });
|
|
800
|
+
;// ../rush-lib/lib-esnext/logic/RushConstants.js
|
|
713
801
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
714
802
|
// See LICENSE in the project root for license information.
|
|
715
803
|
/**
|
|
@@ -996,35 +1084,7 @@ RushConstants.rushAlertsStateFilename = 'rush-alerts-state.json';
|
|
|
996
1084
|
*/
|
|
997
1085
|
RushConstants.currentVariantsFilename = 'current-variants.json';
|
|
998
1086
|
//# sourceMappingURL=RushConstants.js.map
|
|
999
|
-
|
|
1000
|
-
/***/ }),
|
|
1001
|
-
|
|
1002
|
-
/***/ "../rush-lib/lib-esnext/utilities/Utilities.js":
|
|
1003
|
-
/*!*****************************************************!*\
|
|
1004
|
-
!*** ../rush-lib/lib-esnext/utilities/Utilities.js ***!
|
|
1005
|
-
\*****************************************************/
|
|
1006
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1007
|
-
|
|
1008
|
-
__webpack_require__.r(__webpack_exports__);
|
|
1009
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1010
|
-
/* harmony export */ "UNINITIALIZED": () => (/* binding */ UNINITIALIZED),
|
|
1011
|
-
/* harmony export */ "Utilities": () => (/* binding */ Utilities)
|
|
1012
|
-
/* harmony export */ });
|
|
1013
|
-
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ "child_process");
|
|
1014
|
-
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__);
|
|
1015
|
-
/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! os */ "os");
|
|
1016
|
-
/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_1__);
|
|
1017
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path");
|
|
1018
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);
|
|
1019
|
-
/* harmony import */ var perf_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! perf_hooks */ "perf_hooks");
|
|
1020
|
-
/* harmony import */ var perf_hooks__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(perf_hooks__WEBPACK_IMPORTED_MODULE_3__);
|
|
1021
|
-
/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! stream */ "stream");
|
|
1022
|
-
/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(stream__WEBPACK_IMPORTED_MODULE_4__);
|
|
1023
|
-
/* harmony import */ var _rushstack_node_core_library__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @rushstack/node-core-library */ "@rushstack/node-core-library");
|
|
1024
|
-
/* harmony import */ var _rushstack_node_core_library__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_rushstack_node_core_library__WEBPACK_IMPORTED_MODULE_5__);
|
|
1025
|
-
/* harmony import */ var _npmrcUtilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./npmrcUtilities */ "../rush-lib/lib-esnext/utilities/npmrcUtilities.js");
|
|
1026
|
-
/* harmony import */ var _api_EnvironmentConfiguration__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../api/EnvironmentConfiguration */ "../rush-lib/lib-esnext/api/EnvironmentConfiguration.js");
|
|
1027
|
-
/* harmony import */ var _logic_RushConstants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../logic/RushConstants */ "../rush-lib/lib-esnext/logic/RushConstants.js");
|
|
1087
|
+
;// ../rush-lib/lib-esnext/utilities/Utilities.js
|
|
1028
1088
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
1029
1089
|
// See LICENSE in the project root for license information.
|
|
1030
1090
|
|
|
@@ -1049,8 +1109,8 @@ class Utilities {
|
|
|
1049
1109
|
if (unresolvedUserFolder === undefined) {
|
|
1050
1110
|
throw new Error(dirError);
|
|
1051
1111
|
}
|
|
1052
|
-
const homeFolder =
|
|
1053
|
-
if (!
|
|
1112
|
+
const homeFolder = external_path_.resolve(unresolvedUserFolder);
|
|
1113
|
+
if (!node_core_library_.FileSystem.exists(homeFolder)) {
|
|
1054
1114
|
throw new Error(dirError);
|
|
1055
1115
|
}
|
|
1056
1116
|
return homeFolder;
|
|
@@ -1059,7 +1119,7 @@ class Utilities {
|
|
|
1059
1119
|
* Node.js equivalent of performance.now().
|
|
1060
1120
|
*/
|
|
1061
1121
|
static getTimeInMs() {
|
|
1062
|
-
return
|
|
1122
|
+
return external_perf_hooks_namespaceObject.performance.now();
|
|
1063
1123
|
}
|
|
1064
1124
|
/**
|
|
1065
1125
|
* Retries a function until a timeout is reached. The function is expected to throw if it failed and
|
|
@@ -1109,7 +1169,7 @@ class Utilities {
|
|
|
1109
1169
|
// a lock on the folder for a split second, which causes mkdirSync to
|
|
1110
1170
|
// fail. To workaround that, retry for up to 7 seconds before giving up.
|
|
1111
1171
|
const maxWaitTimeMs = 7 * 1000;
|
|
1112
|
-
return Utilities.retryUntilTimeout(() =>
|
|
1172
|
+
return Utilities.retryUntilTimeout(() => node_core_library_.FileSystem.ensureFolder(folderName), maxWaitTimeMs, (e) => new Error(`Error: ${e}\nOften this is caused by a file lock ` +
|
|
1113
1173
|
'from a process such as your text editor, command prompt, ' +
|
|
1114
1174
|
'or a filesystem watcher.'), 'createFolderWithRetry');
|
|
1115
1175
|
}
|
|
@@ -1119,7 +1179,7 @@ class Utilities {
|
|
|
1119
1179
|
static directoryExists(directoryPath) {
|
|
1120
1180
|
let exists = false;
|
|
1121
1181
|
try {
|
|
1122
|
-
const lstat =
|
|
1182
|
+
const lstat = node_core_library_.FileSystem.getLinkStatistics(directoryPath);
|
|
1123
1183
|
exists = lstat.isDirectory();
|
|
1124
1184
|
}
|
|
1125
1185
|
catch (e) {
|
|
@@ -1134,7 +1194,7 @@ class Utilities {
|
|
|
1134
1194
|
*/
|
|
1135
1195
|
static dangerouslyDeletePath(folderPath) {
|
|
1136
1196
|
try {
|
|
1137
|
-
|
|
1197
|
+
node_core_library_.FileSystem.deleteFolder(folderPath);
|
|
1138
1198
|
}
|
|
1139
1199
|
catch (e) {
|
|
1140
1200
|
throw new Error(`${e.message}\nOften this is caused by a file lock from a process ` +
|
|
@@ -1150,14 +1210,14 @@ class Utilities {
|
|
|
1150
1210
|
*/
|
|
1151
1211
|
static async isFileTimestampCurrentAsync(dateToCompare, inputFilePaths) {
|
|
1152
1212
|
let anyAreOutOfDate = false;
|
|
1153
|
-
await
|
|
1213
|
+
await node_core_library_.Async.forEachAsync(inputFilePaths, async (filePath) => {
|
|
1154
1214
|
if (!anyAreOutOfDate) {
|
|
1155
1215
|
let inputStats;
|
|
1156
1216
|
try {
|
|
1157
|
-
inputStats = await
|
|
1217
|
+
inputStats = await node_core_library_.FileSystem.getStatisticsAsync(filePath);
|
|
1158
1218
|
}
|
|
1159
1219
|
catch (e) {
|
|
1160
|
-
if (
|
|
1220
|
+
if (node_core_library_.FileSystem.isNotExistError(e)) {
|
|
1161
1221
|
// eslint-disable-next-line require-atomic-updates
|
|
1162
1222
|
anyAreOutOfDate = true;
|
|
1163
1223
|
}
|
|
@@ -1264,7 +1324,7 @@ class Utilities {
|
|
|
1264
1324
|
* @param options - options for how the command should be run
|
|
1265
1325
|
*/
|
|
1266
1326
|
static executeLifecycleCommand(command, options) {
|
|
1267
|
-
const result = Utilities._executeLifecycleCommandInternal(command,
|
|
1327
|
+
const result = Utilities._executeLifecycleCommandInternal(command, external_child_process_namespaceObject.spawnSync, options);
|
|
1268
1328
|
if (options.handleOutput) {
|
|
1269
1329
|
Utilities._processResult({
|
|
1270
1330
|
error: result.error,
|
|
@@ -1285,9 +1345,9 @@ class Utilities {
|
|
|
1285
1345
|
* @param options - options for how the command should be run
|
|
1286
1346
|
*/
|
|
1287
1347
|
static executeLifecycleCommandAsync(command, options) {
|
|
1288
|
-
const child = Utilities._executeLifecycleCommandInternal(command,
|
|
1348
|
+
const child = Utilities._executeLifecycleCommandInternal(command, external_child_process_namespaceObject.spawn, options);
|
|
1289
1349
|
if (options.connectSubprocessTerminator) {
|
|
1290
|
-
|
|
1350
|
+
node_core_library_.SubprocessTerminator.killProcessTreeOnExit(child, node_core_library_.SubprocessTerminator.RECOMMENDED_OPTIONS);
|
|
1291
1351
|
}
|
|
1292
1352
|
return child;
|
|
1293
1353
|
}
|
|
@@ -1306,13 +1366,13 @@ class Utilities {
|
|
|
1306
1366
|
* Installs a package by name and version in the specified directory.
|
|
1307
1367
|
*/
|
|
1308
1368
|
static async installPackageInDirectoryAsync({ packageName, version, tempPackageTitle, commonRushConfigFolder, maxInstallAttempts, suppressOutput, directory }) {
|
|
1309
|
-
directory =
|
|
1310
|
-
const directoryExists = await
|
|
1369
|
+
directory = external_path_.resolve(directory);
|
|
1370
|
+
const directoryExists = await node_core_library_.FileSystem.existsAsync(directory);
|
|
1311
1371
|
if (directoryExists) {
|
|
1312
1372
|
// eslint-disable-next-line no-console
|
|
1313
1373
|
console.log('Deleting old files from ' + directory);
|
|
1314
1374
|
}
|
|
1315
|
-
await
|
|
1375
|
+
await node_core_library_.FileSystem.ensureEmptyFolderAsync(directory);
|
|
1316
1376
|
const npmPackageJson = {
|
|
1317
1377
|
dependencies: {
|
|
1318
1378
|
[packageName]: version
|
|
@@ -1322,7 +1382,7 @@ class Utilities {
|
|
|
1322
1382
|
private: true,
|
|
1323
1383
|
version: '0.0.0'
|
|
1324
1384
|
};
|
|
1325
|
-
await
|
|
1385
|
+
await node_core_library_.JsonFile.saveAsync(npmPackageJson, external_path_.join(directory, node_core_library_.FileConstants.PackageJson));
|
|
1326
1386
|
if (commonRushConfigFolder) {
|
|
1327
1387
|
Utilities.syncNpmrc({
|
|
1328
1388
|
sourceNpmrcFolder: commonRushConfigFolder,
|
|
@@ -1345,24 +1405,24 @@ class Utilities {
|
|
|
1345
1405
|
* If the source file does not exist, then the target file is deleted.
|
|
1346
1406
|
*/
|
|
1347
1407
|
static syncFile(sourcePath, destinationPath) {
|
|
1348
|
-
if (
|
|
1408
|
+
if (node_core_library_.FileSystem.exists(sourcePath)) {
|
|
1349
1409
|
// eslint-disable-next-line no-console
|
|
1350
1410
|
console.log(`Copying "${sourcePath}"`);
|
|
1351
1411
|
// eslint-disable-next-line no-console
|
|
1352
1412
|
console.log(` --> "${destinationPath}"`);
|
|
1353
|
-
|
|
1413
|
+
node_core_library_.FileSystem.copyFile({ sourcePath, destinationPath });
|
|
1354
1414
|
}
|
|
1355
1415
|
else {
|
|
1356
|
-
if (
|
|
1416
|
+
if (node_core_library_.FileSystem.exists(destinationPath)) {
|
|
1357
1417
|
// If the source file doesn't exist and there is one in the target, delete the one in the target
|
|
1358
1418
|
// eslint-disable-next-line no-console
|
|
1359
1419
|
console.log(`Deleting ${destinationPath}`);
|
|
1360
|
-
|
|
1420
|
+
node_core_library_.FileSystem.deleteFile(destinationPath);
|
|
1361
1421
|
}
|
|
1362
1422
|
}
|
|
1363
1423
|
}
|
|
1364
1424
|
static getRushConfigNotFoundError() {
|
|
1365
|
-
return new Error(`Unable to find ${
|
|
1425
|
+
return new Error(`Unable to find ${RushConstants.rushJsonFilename} configuration file`);
|
|
1366
1426
|
}
|
|
1367
1427
|
static async usingAsync(getDisposableAsync, doActionAsync) {
|
|
1368
1428
|
let disposable;
|
|
@@ -1387,7 +1447,7 @@ class Utilities {
|
|
|
1387
1447
|
* the symlink exists but its target does not. */
|
|
1388
1448
|
static existsOrIsSymlink(linkPath) {
|
|
1389
1449
|
try {
|
|
1390
|
-
|
|
1450
|
+
node_core_library_.FileSystem.getLinkStatistics(linkPath);
|
|
1391
1451
|
return true;
|
|
1392
1452
|
}
|
|
1393
1453
|
catch (err) {
|
|
@@ -1420,7 +1480,7 @@ class Utilities {
|
|
|
1420
1480
|
stdio
|
|
1421
1481
|
};
|
|
1422
1482
|
if (options.connectSubprocessTerminator) {
|
|
1423
|
-
Object.assign(spawnOptions,
|
|
1483
|
+
Object.assign(spawnOptions, node_core_library_.SubprocessTerminator.RECOMMENDED_OPTIONS);
|
|
1424
1484
|
}
|
|
1425
1485
|
return spawnFunction(shellCommand, [commandFlags, command], spawnOptions);
|
|
1426
1486
|
}
|
|
@@ -1443,7 +1503,7 @@ class Utilities {
|
|
|
1443
1503
|
environment.RUSHSTACK_FILE_ERROR_BASE_FOLDER = options.pathOptions.rushJsonFolder;
|
|
1444
1504
|
}
|
|
1445
1505
|
for (const key of Object.getOwnPropertyNames(options.initialEnvironment)) {
|
|
1446
|
-
const normalizedKey =
|
|
1506
|
+
const normalizedKey = external_os_.platform() === 'win32' ? key.toUpperCase() : key;
|
|
1447
1507
|
// If Rush itself was invoked inside a lifecycle script, this may be set and would interfere
|
|
1448
1508
|
// with Rush's installations. If we actually want it, we will set it explicitly below.
|
|
1449
1509
|
if (normalizedKey === 'INIT_CWD') {
|
|
@@ -1480,11 +1540,11 @@ class Utilities {
|
|
|
1480
1540
|
environment.PATH = Utilities._prependNodeModulesBinToPath(environment.PATH, options.pathOptions.projectRoot);
|
|
1481
1541
|
}
|
|
1482
1542
|
if (options.pathOptions.additionalPathFolders) {
|
|
1483
|
-
environment.PATH = [...options.pathOptions.additionalPathFolders, environment.PATH].join(
|
|
1543
|
+
environment.PATH = [...options.pathOptions.additionalPathFolders, environment.PATH].join(external_path_.delimiter);
|
|
1484
1544
|
}
|
|
1485
1545
|
}
|
|
1486
1546
|
// Communicate to downstream calls that they should not try to run hooks
|
|
1487
|
-
environment[
|
|
1547
|
+
environment[EnvironmentVariableNames._RUSH_RECURSIVE_RUSHX_CALL] = '1';
|
|
1488
1548
|
return environment;
|
|
1489
1549
|
}
|
|
1490
1550
|
/**
|
|
@@ -1493,9 +1553,9 @@ class Utilities {
|
|
|
1493
1553
|
* "/foobar/node_modules/.bin:/bin"
|
|
1494
1554
|
*/
|
|
1495
1555
|
static _prependNodeModulesBinToPath(existingPath, rootDirectory) {
|
|
1496
|
-
const binPath =
|
|
1556
|
+
const binPath = external_path_.resolve(rootDirectory, 'node_modules', '.bin');
|
|
1497
1557
|
if (existingPath) {
|
|
1498
|
-
return `${binPath}${
|
|
1558
|
+
return `${binPath}${external_path_.delimiter}${existingPath}`;
|
|
1499
1559
|
}
|
|
1500
1560
|
else {
|
|
1501
1561
|
return binPath;
|
|
@@ -1530,9 +1590,9 @@ class Utilities {
|
|
|
1530
1590
|
// Only escape the command if it actually contains spaces:
|
|
1531
1591
|
const escapedCommand = command.indexOf(' ') < 0 ? command : Utilities.escapeShellParameter(command);
|
|
1532
1592
|
const escapedArgs = args.map((x) => Utilities.escapeShellParameter(x));
|
|
1533
|
-
const childProcess =
|
|
1593
|
+
const childProcess = external_child_process_namespaceObject.spawn(escapedCommand, escapedArgs, options);
|
|
1534
1594
|
if (onStdoutStreamChunk) {
|
|
1535
|
-
const inspectStream = new
|
|
1595
|
+
const inspectStream = new external_stream_namespaceObject.Transform({
|
|
1536
1596
|
transform: onStdoutStreamChunk
|
|
1537
1597
|
? (chunk, encoding, callback) => {
|
|
1538
1598
|
const chunkString = chunk.toString();
|
|
@@ -1543,7 +1603,7 @@ class Utilities {
|
|
|
1543
1603
|
});
|
|
1544
1604
|
(_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.pipe(inspectStream).pipe(process.stdout);
|
|
1545
1605
|
}
|
|
1546
|
-
return await
|
|
1606
|
+
return await node_core_library_.Executable.waitForExitAsync(childProcess, {
|
|
1547
1607
|
encoding: captureOutput ? 'utf8' : undefined,
|
|
1548
1608
|
throwOnNonZeroExitCode: !captureExitCodeAndSignal,
|
|
1549
1609
|
throwOnSignal: !captureExitCodeAndSignal
|
|
@@ -1562,156 +1622,37 @@ class Utilities {
|
|
|
1562
1622
|
}
|
|
1563
1623
|
}
|
|
1564
1624
|
}
|
|
1565
|
-
Utilities.syncNpmrc =
|
|
1625
|
+
Utilities.syncNpmrc = syncNpmrc;
|
|
1566
1626
|
//# sourceMappingURL=Utilities.js.map
|
|
1567
|
-
|
|
1568
|
-
/***/ }),
|
|
1569
|
-
|
|
1570
|
-
/***/ "../rush-lib/lib-esnext/utilities/npmrcUtilities.js":
|
|
1571
|
-
/*!**********************************************************!*\
|
|
1572
|
-
!*** ../rush-lib/lib-esnext/utilities/npmrcUtilities.js ***!
|
|
1573
|
-
\**********************************************************/
|
|
1574
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1575
|
-
|
|
1576
|
-
__webpack_require__.r(__webpack_exports__);
|
|
1577
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1578
|
-
/* harmony export */ "isVariableSetInNpmrcFile": () => (/* binding */ isVariableSetInNpmrcFile),
|
|
1579
|
-
/* harmony export */ "syncNpmrc": () => (/* binding */ syncNpmrc)
|
|
1580
|
-
/* harmony export */ });
|
|
1581
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs");
|
|
1582
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
1583
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path");
|
|
1584
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
|
|
1627
|
+
;// ../rush-lib/lib-esnext/api/RushGlobalFolder.js
|
|
1585
1628
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
1586
1629
|
// See LICENSE in the project root for license information.
|
|
1587
|
-
|
|
1630
|
+
|
|
1588
1631
|
|
|
1589
1632
|
|
|
1590
1633
|
/**
|
|
1591
|
-
* This
|
|
1592
|
-
* unusable lines from the .npmrc file.
|
|
1634
|
+
* This class provides global folders that are used for rush's internal install locations.
|
|
1593
1635
|
*
|
|
1594
|
-
* @
|
|
1595
|
-
* The text of the the .npmrc.
|
|
1636
|
+
* @internal
|
|
1596
1637
|
*/
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
}
|
|
1605
|
-
let npmrcFileLines = [];
|
|
1606
|
-
if (linesToPrepend) {
|
|
1607
|
-
npmrcFileLines.push(...linesToPrepend);
|
|
1608
|
-
}
|
|
1609
|
-
if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) {
|
|
1610
|
-
npmrcFileLines.push(...fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n'));
|
|
1611
|
-
}
|
|
1612
|
-
if (linesToAppend) {
|
|
1613
|
-
npmrcFileLines.push(...linesToAppend);
|
|
1614
|
-
}
|
|
1615
|
-
npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim());
|
|
1616
|
-
const resultLines = [];
|
|
1617
|
-
// This finds environment variable tokens that look like "${VAR_NAME}"
|
|
1618
|
-
const expansionRegExp = /\$\{([^\}]+)\}/g;
|
|
1619
|
-
// Comment lines start with "#" or ";"
|
|
1620
|
-
const commentRegExp = /^\s*[#;]/;
|
|
1621
|
-
// Trim out lines that reference environment variables that aren't defined
|
|
1622
|
-
for (let line of npmrcFileLines) {
|
|
1623
|
-
let lineShouldBeTrimmed = false;
|
|
1624
|
-
//remove spaces before or after key and value
|
|
1625
|
-
line = line
|
|
1626
|
-
.split('=')
|
|
1627
|
-
.map((lineToTrim) => lineToTrim.trim())
|
|
1628
|
-
.join('=');
|
|
1629
|
-
// Ignore comment lines
|
|
1630
|
-
if (!commentRegExp.test(line)) {
|
|
1631
|
-
const environmentVariables = line.match(expansionRegExp);
|
|
1632
|
-
if (environmentVariables) {
|
|
1633
|
-
for (const token of environmentVariables) {
|
|
1634
|
-
// Remove the leading "${" and the trailing "}" from the token
|
|
1635
|
-
const environmentVariableName = token.substring(2, token.length - 1);
|
|
1636
|
-
// Is the environment variable defined?
|
|
1637
|
-
if (!process.env[environmentVariableName]) {
|
|
1638
|
-
// No, so trim this line
|
|
1639
|
-
lineShouldBeTrimmed = true;
|
|
1640
|
-
break;
|
|
1641
|
-
}
|
|
1642
|
-
}
|
|
1643
|
-
}
|
|
1644
|
-
}
|
|
1645
|
-
if (lineShouldBeTrimmed) {
|
|
1646
|
-
// Example output:
|
|
1647
|
-
// "; MISSING ENVIRONMENT VARIABLE: //my-registry.com/npm/:_authToken=${MY_AUTH_TOKEN}"
|
|
1648
|
-
resultLines.push('; MISSING ENVIRONMENT VARIABLE: ' + line);
|
|
1638
|
+
class RushGlobalFolder {
|
|
1639
|
+
constructor() {
|
|
1640
|
+
// Because RushGlobalFolder is used by the front-end VersionSelector before EnvironmentConfiguration
|
|
1641
|
+
// is initialized, we need to read it using a special internal API.
|
|
1642
|
+
const rushGlobalFolderOverride = EnvironmentConfiguration._getRushGlobalFolderOverride(process.env);
|
|
1643
|
+
if (rushGlobalFolderOverride !== undefined) {
|
|
1644
|
+
this.path = rushGlobalFolderOverride;
|
|
1649
1645
|
}
|
|
1650
1646
|
else {
|
|
1651
|
-
|
|
1652
|
-
}
|
|
1653
|
-
}
|
|
1654
|
-
const combinedNpmrc = resultLines.join('\n');
|
|
1655
|
-
//save the cache
|
|
1656
|
-
_combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc);
|
|
1657
|
-
return combinedNpmrc;
|
|
1658
|
-
}
|
|
1659
|
-
function _copyAndTrimNpmrcFile(options) {
|
|
1660
|
-
const { logger, sourceNpmrcPath, targetNpmrcPath, linesToPrepend, linesToAppend } = options;
|
|
1661
|
-
logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose
|
|
1662
|
-
logger.info(` --> "${targetNpmrcPath}"`);
|
|
1663
|
-
const combinedNpmrc = _trimNpmrcFile({
|
|
1664
|
-
sourceNpmrcPath,
|
|
1665
|
-
linesToPrepend,
|
|
1666
|
-
linesToAppend
|
|
1667
|
-
});
|
|
1668
|
-
fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc);
|
|
1669
|
-
return combinedNpmrc;
|
|
1670
|
-
}
|
|
1671
|
-
function syncNpmrc(options) {
|
|
1672
|
-
const { sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = {
|
|
1673
|
-
// eslint-disable-next-line no-console
|
|
1674
|
-
info: console.log,
|
|
1675
|
-
// eslint-disable-next-line no-console
|
|
1676
|
-
error: console.error
|
|
1677
|
-
}, createIfMissing = false, linesToAppend, linesToPrepend } = options;
|
|
1678
|
-
const sourceNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish');
|
|
1679
|
-
const targetNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(targetNpmrcFolder, '.npmrc');
|
|
1680
|
-
try {
|
|
1681
|
-
if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath) || createIfMissing) {
|
|
1682
|
-
// Ensure the target folder exists
|
|
1683
|
-
if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcFolder)) {
|
|
1684
|
-
fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync(targetNpmrcFolder, { recursive: true });
|
|
1685
|
-
}
|
|
1686
|
-
return _copyAndTrimNpmrcFile({
|
|
1687
|
-
sourceNpmrcPath,
|
|
1688
|
-
targetNpmrcPath,
|
|
1689
|
-
logger,
|
|
1690
|
-
linesToAppend,
|
|
1691
|
-
linesToPrepend
|
|
1692
|
-
});
|
|
1647
|
+
this.path = external_path_.join(Utilities.getHomeFolder(), '.rush');
|
|
1693
1648
|
}
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
}
|
|
1699
|
-
}
|
|
1700
|
-
catch (e) {
|
|
1701
|
-
throw new Error(`Error syncing .npmrc file: ${e}`);
|
|
1702
|
-
}
|
|
1703
|
-
}
|
|
1704
|
-
function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey) {
|
|
1705
|
-
const sourceNpmrcPath = `${sourceNpmrcFolder}/.npmrc`;
|
|
1706
|
-
//if .npmrc file does not exist, return false directly
|
|
1707
|
-
if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) {
|
|
1708
|
-
return false;
|
|
1649
|
+
const normalizedNodeVersion = process.version.match(/^[a-z0-9\-\.]+$/i)
|
|
1650
|
+
? process.version
|
|
1651
|
+
: 'unknown-version';
|
|
1652
|
+
this.nodeSpecificPath = external_path_.join(this.path, `node-${normalizedNodeVersion}`);
|
|
1709
1653
|
}
|
|
1710
|
-
const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath });
|
|
1711
|
-
const variableKeyRegExp = new RegExp(`^${variableKey}=`, 'm');
|
|
1712
|
-
return trimmedNpmrcFile.match(variableKeyRegExp) !== null;
|
|
1713
1654
|
}
|
|
1714
|
-
//# sourceMappingURL=
|
|
1655
|
+
//# sourceMappingURL=RushGlobalFolder.js.map
|
|
1715
1656
|
|
|
1716
1657
|
/***/ }),
|
|
1717
1658
|
|
|
@@ -2044,16 +1985,6 @@ module.exports = require("@rushstack/terminal");
|
|
|
2044
1985
|
|
|
2045
1986
|
/***/ }),
|
|
2046
1987
|
|
|
2047
|
-
/***/ "child_process":
|
|
2048
|
-
/*!********************************!*\
|
|
2049
|
-
!*** external "child_process" ***!
|
|
2050
|
-
\********************************/
|
|
2051
|
-
/***/ ((module) => {
|
|
2052
|
-
|
|
2053
|
-
module.exports = require("child_process");
|
|
2054
|
-
|
|
2055
|
-
/***/ }),
|
|
2056
|
-
|
|
2057
1988
|
/***/ "fs":
|
|
2058
1989
|
/*!*********************!*\
|
|
2059
1990
|
!*** external "fs" ***!
|
|
@@ -2084,26 +2015,6 @@ module.exports = require("path");
|
|
|
2084
2015
|
|
|
2085
2016
|
/***/ }),
|
|
2086
2017
|
|
|
2087
|
-
/***/ "perf_hooks":
|
|
2088
|
-
/*!*****************************!*\
|
|
2089
|
-
!*** external "perf_hooks" ***!
|
|
2090
|
-
\*****************************/
|
|
2091
|
-
/***/ ((module) => {
|
|
2092
|
-
|
|
2093
|
-
module.exports = require("perf_hooks");
|
|
2094
|
-
|
|
2095
|
-
/***/ }),
|
|
2096
|
-
|
|
2097
|
-
/***/ "stream":
|
|
2098
|
-
/*!*************************!*\
|
|
2099
|
-
!*** external "stream" ***!
|
|
2100
|
-
\*************************/
|
|
2101
|
-
/***/ ((module) => {
|
|
2102
|
-
|
|
2103
|
-
module.exports = require("stream");
|
|
2104
|
-
|
|
2105
|
-
/***/ }),
|
|
2106
|
-
|
|
2107
2018
|
/***/ "util":
|
|
2108
2019
|
/*!***********************!*\
|
|
2109
2020
|
!*** external "util" ***!
|
|
@@ -2144,18 +2055,6 @@ module.exports = require("util");
|
|
|
2144
2055
|
/******/ }
|
|
2145
2056
|
/******/
|
|
2146
2057
|
/************************************************************************/
|
|
2147
|
-
/******/ /* webpack/runtime/compat get default export */
|
|
2148
|
-
/******/ (() => {
|
|
2149
|
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
2150
|
-
/******/ __webpack_require__.n = (module) => {
|
|
2151
|
-
/******/ var getter = module && module.__esModule ?
|
|
2152
|
-
/******/ () => (module['default']) :
|
|
2153
|
-
/******/ () => (module);
|
|
2154
|
-
/******/ __webpack_require__.d(getter, { a: getter });
|
|
2155
|
-
/******/ return getter;
|
|
2156
|
-
/******/ };
|
|
2157
|
-
/******/ })();
|
|
2158
|
-
/******/
|
|
2159
2058
|
/******/ /* webpack/runtime/define property getters */
|
|
2160
2059
|
/******/ (() => {
|
|
2161
2060
|
/******/ // define getter functions for harmony exports
|