@rushstack/rush-sdk 5.86.0 → 5.88.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.
Files changed (2) hide show
  1. package/dist/rush-lib.d.ts +319 -398
  2. package/package.json +7 -7
@@ -85,27 +85,20 @@ export declare class ApprovedPackagesItem {
85
85
  * @public
86
86
  */
87
87
  export declare class ApprovedPackagesPolicy {
88
- private _enabled;
89
- private _ignoredNpmScopes;
90
- private _reviewCategories;
91
- private _browserApprovedPackages;
92
- private _nonbrowserApprovedPackages;
93
- /** @internal */
94
- constructor(rushConfiguration: RushConfiguration, rushConfigurationJson: IRushConfigurationJson);
95
88
  /**
96
89
  * Whether the feature is enabled. The feature is enabled if the "approvedPackagesPolicy"
97
90
  * field is assigned in rush.json.
98
91
  */
99
- get enabled(): boolean;
92
+ readonly enabled: boolean;
100
93
  /**
101
94
  * A list of NPM package scopes that will be excluded from review (e.g. `@types`)
102
95
  */
103
- get ignoredNpmScopes(): Set<string>;
96
+ readonly ignoredNpmScopes: ReadonlySet<string>;
104
97
  /**
105
98
  * A list of category names that are valid for usage as the RushConfigurationProject.reviewCategory field.
106
99
  * This array will never be undefined.
107
100
  */
108
- get reviewCategories(): Set<string>;
101
+ readonly reviewCategories: ReadonlySet<string>;
109
102
  /**
110
103
  * Packages approved for usage in a web browser. This is the stricter of the two types, so by default
111
104
  * all new packages are added to this file.
@@ -120,7 +113,7 @@ export declare class ApprovedPackagesPolicy {
120
113
  *
121
114
  * Example filename: `C:\MyRepo\common\config\rush\browser-approved-packages.json`
122
115
  */
123
- get browserApprovedPackages(): ApprovedPackagesConfiguration;
116
+ readonly browserApprovedPackages: ApprovedPackagesConfiguration;
124
117
  /**
125
118
  * Packages approved for usage everywhere *except* in a web browser.
126
119
  *
@@ -133,7 +126,9 @@ export declare class ApprovedPackagesPolicy {
133
126
  *
134
127
  * Example filename: `C:\MyRepo\common\config\rush\browser-approved-packages.json`
135
128
  */
136
- get nonbrowserApprovedPackages(): ApprovedPackagesConfiguration;
129
+ readonly nonbrowserApprovedPackages: ApprovedPackagesConfiguration;
130
+ /** @internal */
131
+ constructor(rushConfiguration: RushConfiguration, rushConfigurationJson: IRushConfigurationJson);
137
132
  }
138
133
 
139
134
  /**
@@ -222,31 +217,22 @@ export declare type CloudBuildCacheProviderFactory = (buildCacheJson: IBuildCach
222
217
  */
223
218
  export declare class CommonVersionsConfiguration {
224
219
  private static _jsonSchema;
225
- private _filePath;
226
220
  private _preferredVersions;
227
- private _implicitlyPreferredVersions;
228
221
  private _allowedAlternativeVersions;
229
222
  private _modified;
230
- private constructor();
231
- /**
232
- * Loads the common-versions.json data from the specified file path.
233
- * If the file has not been created yet, then an empty object is returned.
234
- */
235
- static loadFromFile(jsonFilename: string): CommonVersionsConfiguration;
236
- private static _deserializeTable;
237
- private static _serializeTable;
238
223
  /**
239
224
  * Get the absolute file path of the common-versions.json file.
240
225
  */
241
- get filePath(): string;
242
- /**
243
- * Get a sha1 hash of the preferred versions.
244
- */
245
- getPreferredVersionsHash(): string;
226
+ readonly filePath: string;
246
227
  /**
247
- * Writes the "common-versions.json" file to disk, using the filename that was passed to loadFromFile().
228
+ * When set to true, for all projects in the repo, all dependencies will be automatically added as preferredVersions,
229
+ * except in cases where different projects specify different version ranges for a given dependency. For older
230
+ * package managers, this tended to reduce duplication of indirect dependencies. However, it can sometimes cause
231
+ * trouble for indirect dependencies with incompatible peerDependencies ranges.
232
+ *
233
+ * If the value is `undefined`, then the default value is `true`.
248
234
  */
249
- save(): boolean;
235
+ readonly implicitlyPreferredVersions: boolean | undefined;
250
236
  /**
251
237
  * A table that specifies a "preferred version" for a given NPM package. This feature is typically used
252
238
  * to hold back an indirect dependency to a specific older version, or to reduce duplication of indirect dependencies.
@@ -261,16 +247,7 @@ export declare class CommonVersionsConfiguration {
261
247
  * After modifying this field, it's recommended to run `rush update --full` so that the package manager
262
248
  * will recalculate all version selections.
263
249
  */
264
- get preferredVersions(): Map<string, string>;
265
- /**
266
- * When set to true, for all projects in the repo, all dependencies will be automatically added as preferredVersions,
267
- * except in cases where different projects specify different version ranges for a given dependency. For older
268
- * package managers, this tended to reduce duplication of indirect dependencies. However, it can sometimes cause
269
- * trouble for indirect dependencies with incompatible peerDependencies ranges.
270
- *
271
- * If the value is `undefined`, then the default value is `true`.
272
- */
273
- get implicitlyPreferredVersions(): boolean | undefined;
250
+ readonly preferredVersions: Map<string, string>;
274
251
  /**
275
252
  * A table that stores, for a given dependency, a list of SemVer ranges that will be accepted
276
253
  * by "rush check" in addition to the normal version range.
@@ -283,7 +260,23 @@ export declare class CommonVersionsConfiguration {
283
260
  * Note that the normal version range (as inferred by looking at all projects in the repo)
284
261
  * should NOT be included in this list.
285
262
  */
286
- get allowedAlternativeVersions(): Map<string, ReadonlyArray<string>>;
263
+ readonly allowedAlternativeVersions: Map<string, ReadonlyArray<string>>;
264
+ private constructor();
265
+ /**
266
+ * Loads the common-versions.json data from the specified file path.
267
+ * If the file has not been created yet, then an empty object is returned.
268
+ */
269
+ static loadFromFile(jsonFilename: string): CommonVersionsConfiguration;
270
+ private static _deserializeTable;
271
+ private static _serializeTable;
272
+ /**
273
+ * Get a sha1 hash of the preferred versions.
274
+ */
275
+ getPreferredVersionsHash(): string;
276
+ /**
277
+ * Writes the "common-versions.json" file to disk, using the filename that was passed to loadFromFile().
278
+ */
279
+ save(): boolean;
287
280
  /**
288
281
  * Returns preferredVersions.
289
282
  */
@@ -627,17 +620,16 @@ export declare class EventHooks {
627
620
  */
628
621
  export declare class ExperimentsConfiguration {
629
622
  private static _jsonSchema;
630
- private _experimentConfiguration;
631
623
  private _jsonFileName;
632
- /**
633
- * @internal
634
- */
635
- constructor(jsonFileName: string);
636
624
  /**
637
625
  * Get the experiments configuration.
638
626
  * @beta
639
627
  */
640
- get configuration(): Readonly<IExperimentsJson>;
628
+ readonly configuration: Readonly<IExperimentsJson>;
629
+ /**
630
+ * @internal
631
+ */
632
+ constructor(jsonFileName: string);
641
633
  }
642
634
 
643
635
  /**
@@ -1027,15 +1019,14 @@ export declare interface ILogger {
1027
1019
  * @public
1028
1020
  */
1029
1021
  export declare class IndividualVersionPolicy extends VersionPolicy {
1030
- private _lockedMajor;
1031
1022
  /**
1032
- * @internal
1023
+ * The major version that has been locked
1033
1024
  */
1034
- constructor(versionPolicyJson: IIndividualVersionJson);
1025
+ readonly lockedMajor: number | undefined;
1035
1026
  /**
1036
- * The major version that has been locked
1027
+ * @internal
1037
1028
  */
1038
- get lockedMajor(): number | undefined;
1029
+ constructor(versionPolicyJson: IIndividualVersionJson);
1039
1030
  /**
1040
1031
  * Serialized json for this policy
1041
1032
  *
@@ -1377,6 +1368,7 @@ declare interface IRushConfigurationJson {
1377
1368
  rushVersion: string;
1378
1369
  repository?: IRushRepositoryJson;
1379
1370
  nodeSupportedVersionRange?: string;
1371
+ nodeSupportedVersionInstructions?: string;
1380
1372
  suppressNodeLtsWarning?: boolean;
1381
1373
  projectFolderMinDepth?: number;
1382
1374
  projectFolderMaxDepth?: number;
@@ -1697,8 +1689,11 @@ export declare interface _IYarnOptionsJson extends IPackageManagerOptionsJsonBas
1697
1689
  * @internal
1698
1690
  */
1699
1691
  export declare class _LastInstallFlag {
1700
- private _path;
1701
1692
  private _state;
1693
+ /**
1694
+ * Returns the full path to the flag file
1695
+ */
1696
+ readonly path: string;
1702
1697
  /**
1703
1698
  * Creates a new LastInstall flag
1704
1699
  * @param folderPath - the folder that this flag is managing
@@ -1727,10 +1722,6 @@ export declare class _LastInstallFlag {
1727
1722
  * Removes the flag file
1728
1723
  */
1729
1724
  clear(): void;
1730
- /**
1731
- * Returns the full path to the flag file
1732
- */
1733
- get path(): string;
1734
1725
  /**
1735
1726
  * Returns the name of the flag file
1736
1727
  */
@@ -1743,27 +1734,25 @@ export declare class _LastInstallFlag {
1743
1734
  */
1744
1735
  export declare class LockStepVersionPolicy extends VersionPolicy {
1745
1736
  private _version;
1746
- private _nextBump;
1747
- private _mainProject;
1748
- /**
1749
- * @internal
1750
- */
1751
- constructor(versionPolicyJson: ILockStepVersionJson);
1752
- /**
1753
- * The value of the lockstep version
1754
- */
1755
- get version(): string;
1756
1737
  /**
1757
1738
  * The type of bump for next bump.
1758
1739
  */
1759
- get nextBump(): BumpType | undefined;
1740
+ readonly nextBump: BumpType | undefined;
1760
1741
  /**
1761
1742
  * The main project for the version policy.
1762
1743
  *
1763
1744
  * If the value is provided, change logs will only be generated in that project.
1764
1745
  * If the value is not provided, change logs will be hosted in each project associated with the policy.
1765
1746
  */
1766
- get mainProject(): string | undefined;
1747
+ readonly mainProject: string | undefined;
1748
+ /**
1749
+ * @internal
1750
+ */
1751
+ constructor(versionPolicyJson: ILockStepVersionJson);
1752
+ /**
1753
+ * The value of the lockstep version
1754
+ */
1755
+ get version(): string;
1767
1756
  /**
1768
1757
  * Serialized json for this policy
1769
1758
  *
@@ -1964,9 +1953,11 @@ export declare class Operation {
1964
1953
  * @internal
1965
1954
  */
1966
1955
  export declare class _OperationStateFile {
1967
- private readonly _rushProject;
1968
- private readonly _filename;
1969
1956
  private _state;
1957
+ /**
1958
+ * Returns the filename of the metadata file.
1959
+ */
1960
+ readonly filename: string;
1970
1961
  constructor(options: _IOperationStateFileOptions);
1971
1962
  private static _getFilename;
1972
1963
  /**
@@ -1975,10 +1966,6 @@ export declare class _OperationStateFile {
1975
1966
  * @internal
1976
1967
  */
1977
1968
  static getFilenameRelativeToProjectRoot(phase: IPhase): string;
1978
- /**
1979
- * Returns the filename of the metadata file.
1980
- */
1981
- get filename(): string;
1982
1969
  get state(): _IOperationStateJson | undefined;
1983
1970
  writeAsync(json: _IOperationStateJson): Promise<void>;
1984
1971
  tryRestoreAsync(): Promise<_IOperationStateJson | undefined>;
@@ -2031,33 +2018,30 @@ export declare enum OperationStatus {
2031
2018
  * @public
2032
2019
  */
2033
2020
  export declare class PackageJsonDependency {
2034
- private _type;
2035
- private _name;
2036
2021
  private _version;
2037
2022
  private _onChange;
2023
+ readonly name: string;
2024
+ readonly dependencyType: DependencyType;
2038
2025
  constructor(name: string, version: string, type: DependencyType, onChange: () => void);
2039
- get name(): string;
2040
2026
  get version(): string;
2041
2027
  setVersion(newVersion: string): void;
2042
- get dependencyType(): DependencyType;
2043
2028
  }
2044
2029
 
2045
2030
  /**
2046
2031
  * @public
2047
2032
  */
2048
2033
  export declare class PackageJsonEditor {
2049
- private readonly _filePath;
2050
2034
  private readonly _dependencies;
2051
2035
  private readonly _devDependencies;
2052
2036
  private readonly _resolutions;
2053
2037
  private _modified;
2054
2038
  private _sourceData;
2039
+ readonly filePath: string;
2055
2040
  private constructor();
2056
2041
  static load(filePath: string): PackageJsonEditor;
2057
2042
  static fromObject(object: IPackageJson, filename: string): PackageJsonEditor;
2058
2043
  get name(): string;
2059
2044
  get version(): string;
2060
- get filePath(): string;
2061
2045
  /**
2062
2046
  * The list of dependencies of type DependencyType.Regular, DependencyType.Optional, or DependencyType.Peer.
2063
2047
  */
@@ -2109,16 +2093,15 @@ export declare abstract class PackageManager {
2109
2093
  * The SemVer version of the package manager.
2110
2094
  */
2111
2095
  readonly version: string;
2112
- protected _shrinkwrapFilename: string;
2113
- /** @internal */
2114
- protected constructor(version: string, packageManager: PackageManagerName);
2115
2096
  /**
2116
2097
  * The filename of the shrinkwrap file that is used by the package manager.
2117
2098
  *
2118
2099
  * @remarks
2119
2100
  * Example: `npm-shrinkwrap.json` or `pnpm-lock.yaml`
2120
2101
  */
2121
- get shrinkwrapFilename(): string;
2102
+ readonly shrinkwrapFilename: string;
2103
+ /** @internal */
2104
+ protected constructor(version: string, packageManager: PackageManagerName, shrinkwrapFilename: string);
2122
2105
  }
2123
2106
 
2124
2107
  /**
@@ -2178,8 +2161,7 @@ export declare class PhasedCommandHooks {
2178
2161
  */
2179
2162
  export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfigurationBase {
2180
2163
  private static _jsonSchema;
2181
- private _json;
2182
- private _jsonFilename;
2164
+ private readonly _json;
2183
2165
  private _globalPatchedDependencies;
2184
2166
  /**
2185
2167
  * The method used to resolve the store used by PNPM.
@@ -2311,6 +2293,7 @@ export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfi
2311
2293
  * strategy that is known to provide a good experience for large teams with lots of projects.
2312
2294
  */
2313
2295
  readonly unsupportedPackageJsonSettings: unknown | undefined;
2296
+ readonly jsonFilename: string | undefined;
2314
2297
  /**
2315
2298
  * (GENERATED BY RUSH-PNPM PATCH-COMMIT) When modifying this property, make sure you know what you are doing.
2316
2299
  *
@@ -2330,7 +2313,6 @@ export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfi
2330
2313
  * Updates patchedDependencies field of the PNPM options in the common/config/rush/pnpm-config.json file.
2331
2314
  */
2332
2315
  updateGlobalPatchedDependencies(patchedDependencies: Record<string, string> | undefined): void;
2333
- get jsonFilename(): string | undefined;
2334
2316
  }
2335
2317
 
2336
2318
  /**
@@ -2399,17 +2381,16 @@ export declare class ProjectChangeAnalyzer {
2399
2381
  */
2400
2382
  export declare class RepoStateFile {
2401
2383
  private static _jsonSchema;
2402
- private _repoStateFilePath;
2403
2384
  private _variant;
2404
2385
  private _pnpmShrinkwrapHash;
2405
2386
  private _preferredVersionsHash;
2406
2387
  private _isValid;
2407
2388
  private _modified;
2408
- private constructor();
2409
2389
  /**
2410
2390
  * Get the absolute file path of the repo-state.json file.
2411
2391
  */
2412
- get filePath(): string;
2392
+ readonly filePath: string;
2393
+ private constructor();
2413
2394
  /**
2414
2395
  * The hash of the pnpm shrinkwrap file at the end of the last update.
2415
2396
  */
@@ -2452,7 +2433,7 @@ export declare class RepoStateFile {
2452
2433
  * @public
2453
2434
  */
2454
2435
  export declare class Rush {
2455
- private static _version;
2436
+ private static __rushLibPackageJson;
2456
2437
  /**
2457
2438
  * This API is used by the `@microsoft/rush` front end to launch the "rush" command-line.
2458
2439
  * Third-party tools should not use this API. Instead, they should execute the "rush" binary
@@ -2482,6 +2463,10 @@ export declare class Rush {
2482
2463
  * This is the same as the Rush tool version for that release.
2483
2464
  */
2484
2465
  static get version(): string;
2466
+ /**
2467
+ * @internal
2468
+ */
2469
+ static get _rushLibPackageJson(): IPackageJson;
2485
2470
  /**
2486
2471
  * Assign the `RUSH_INVOKED_FOLDER` environment variable during startup. This is only applied when
2487
2472
  * Rush is invoked via the CLI, not via the `@microsoft/rush-lib` automation API.
@@ -2507,95 +2492,16 @@ export declare class Rush {
2507
2492
  */
2508
2493
  export declare class RushConfiguration {
2509
2494
  private static _jsonSchema;
2510
- private _rushJsonFile;
2511
- private _rushJsonFolder;
2512
- private _changesFolder;
2513
- private _commonFolder;
2514
- private _commonTempFolder;
2515
- private _commonScriptsFolder;
2516
- private _commonRushConfigFolder;
2517
- private _packageManager;
2518
- private _packageManagerWrapper;
2519
- private _npmCacheFolder;
2520
- private _npmTmpFolder;
2521
- private _yarnCacheFolder;
2522
- private _shrinkwrapFilename;
2523
- private _tempShrinkwrapFilename;
2524
- private _tempShrinkwrapPreinstallFilename;
2525
- private _currentVariantJsonFilename;
2526
- private _packageManagerToolVersion;
2527
- private _packageManagerToolFilename;
2528
- private _projectFolderMinDepth;
2529
- private _projectFolderMaxDepth;
2530
- private _allowMostlyStandardPackageNames;
2531
- private _ensureConsistentVersions;
2532
- private _suppressNodeLtsWarning;
2533
2495
  private _variants;
2534
2496
  private readonly _pathTrees;
2535
- private _approvedPackagesPolicy;
2536
- private _gitAllowedEmailRegExps;
2537
- private _gitSampleEmail;
2538
- private _gitVersionBumpCommitMessage;
2539
- private _gitChangeLogUpdateCommitMessage;
2540
- private _gitChangefilesCommitMessage;
2541
- private _gitTagSeparator;
2542
- private _hotfixChangeEnabled;
2543
- private _repositoryUrls;
2544
- private _repositoryDefaultBranch;
2545
- private _repositoryDefaultRemote;
2546
- private _npmOptions;
2547
- private _pnpmOptions;
2548
- private _yarnOptions;
2549
- private _packageManagerConfigurationOptions;
2550
- private _eventHooks;
2551
- private readonly _packageNameParser;
2552
- private _telemetryEnabled;
2553
2497
  private _projects;
2554
2498
  private _projectsByName;
2555
2499
  private _projectsByTag;
2556
2500
  private _commonVersionsConfigurationsByVariant;
2557
- private _versionPolicyConfiguration;
2558
- private _versionPolicyConfigurationFilePath;
2559
- private _experimentsConfiguration;
2560
- private __rushPluginsConfiguration;
2561
- private readonly _rushConfigurationJson;
2562
- /**
2563
- * Use RushConfiguration.loadFromConfigurationFile() or Use RushConfiguration.loadFromDefaultLocation()
2564
- * instead.
2565
- */
2566
- private constructor();
2567
- private _initializeAndValidateLocalProjects;
2568
- /**
2569
- * Loads the configuration data from an Rush.json configuration file and returns
2570
- * an RushConfiguration object.
2571
- */
2572
- static loadFromConfigurationFile(rushJsonFilename: string): RushConfiguration;
2573
- static loadFromDefaultLocation(options?: ITryFindRushJsonLocationOptions): RushConfiguration;
2574
- /**
2575
- * Find the rush.json location and return the path, or undefined if a rush.json can't be found.
2576
- *
2577
- * @privateRemarks
2578
- * Keep this in sync with `findRushJsonLocation` in `rush-sdk/src/index.ts`.
2579
- */
2580
- static tryFindRushJsonLocation(options?: ITryFindRushJsonLocationOptions): string | undefined;
2581
- /**
2582
- * This generates the unique names that are used to create temporary projects
2583
- * in the Rush common folder.
2584
- * NOTE: sortedProjectJsons is sorted by the caller.
2585
- */
2586
- private static _generateTempNameForProject;
2587
- /**
2588
- * If someone adds a config file in the "common/rush/config" folder, it would be a bad
2589
- * experience for Rush to silently ignore their file simply because they misspelled the
2590
- * filename, or maybe it's an old format that's no longer supported. The
2591
- * _validateCommonRushConfigFolder() function makes sure that this folder only contains
2592
- * recognized config files.
2593
- */
2594
- private static _validateCommonRushConfigFolder;
2595
2501
  /**
2596
2502
  * The name of the package manager being used to install dependencies
2597
2503
  */
2598
- get packageManager(): PackageManagerName;
2504
+ readonly packageManager: PackageManagerName;
2599
2505
  /**
2600
2506
  * {@inheritdoc PackageManager}
2601
2507
  *
@@ -2605,31 +2511,31 @@ export declare class RushConfiguration {
2605
2511
  *
2606
2512
  * @beta
2607
2513
  */
2608
- get packageManagerWrapper(): PackageManager;
2514
+ readonly packageManagerWrapper: PackageManager;
2609
2515
  /**
2610
2516
  * Gets the JSON data structure for the "rush.json" configuration file.
2611
2517
  *
2612
2518
  * @internal
2613
2519
  */
2614
- get rushConfigurationJson(): IRushConfigurationJson;
2520
+ readonly rushConfigurationJson: IRushConfigurationJson;
2615
2521
  /**
2616
2522
  * The absolute path to the "rush.json" configuration file that was loaded to construct this object.
2617
2523
  */
2618
- get rushJsonFile(): string;
2524
+ readonly rushJsonFile: string;
2619
2525
  /**
2620
2526
  * The absolute path of the folder that contains rush.json for this project.
2621
2527
  */
2622
- get rushJsonFolder(): string;
2528
+ readonly rushJsonFolder: string;
2623
2529
  /**
2624
2530
  * The folder that contains all change files.
2625
2531
  */
2626
- get changesFolder(): string;
2532
+ readonly changesFolder: string;
2627
2533
  /**
2628
2534
  * The fully resolved path for the "common" folder where Rush will store settings that
2629
2535
  * affect all Rush projects. This is always a subfolder of the folder containing "rush.json".
2630
2536
  * Example: `C:\MyRepo\common`
2631
2537
  */
2632
- get commonFolder(): string;
2538
+ readonly commonFolder: string;
2633
2539
  /**
2634
2540
  * The folder where Rush's additional config files are stored. This folder is always a
2635
2541
  * subfolder called `config\rush` inside the common folder. (The `common\config` folder
@@ -2638,29 +2544,19 @@ export declare class RushConfiguration {
2638
2544
  *
2639
2545
  * Example: `C:\MyRepo\common\config\rush`
2640
2546
  */
2641
- get commonRushConfigFolder(): string;
2547
+ readonly commonRushConfigFolder: string;
2642
2548
  /**
2643
2549
  * The folder where temporary files will be stored. This is always a subfolder called "temp"
2644
2550
  * under the common folder.
2645
2551
  * Example: `C:\MyRepo\common\temp`
2646
2552
  */
2647
- get commonTempFolder(): string;
2553
+ readonly commonTempFolder: string;
2648
2554
  /**
2649
2555
  * The folder where automation scripts are stored. This is always a subfolder called "scripts"
2650
2556
  * under the common folder.
2651
2557
  * Example: `C:\MyRepo\common\scripts`
2652
2558
  */
2653
- get commonScriptsFolder(): string;
2654
- /**
2655
- * The fully resolved path for the "autoinstallers" folder.
2656
- * Example: `C:\MyRepo\common\autoinstallers`
2657
- */
2658
- get commonAutoinstallersFolder(): string;
2659
- /**
2660
- * The folder where rush-plugin options json files are stored.
2661
- * Example: `C:\MyRepo\common\config\rush-plugins`
2662
- */
2663
- get rushPluginOptionsFolder(): string;
2559
+ readonly commonScriptsFolder: string;
2664
2560
  /**
2665
2561
  * The local folder that will store the NPM package cache. Rush does not rely on the
2666
2562
  * npm's default global cache folder, because npm's caching implementation does not
@@ -2669,7 +2565,7 @@ export declare class RushConfiguration {
2669
2565
  *
2670
2566
  * Example: `C:\MyRepo\common\temp\npm-cache`
2671
2567
  */
2672
- get npmCacheFolder(): string;
2568
+ readonly npmCacheFolder: string;
2673
2569
  /**
2674
2570
  * The local folder where npm's temporary files will be written during installation.
2675
2571
  * Rush does not rely on the global default folder, because it may be on a different
@@ -2677,31 +2573,20 @@ export declare class RushConfiguration {
2677
2573
  *
2678
2574
  * Example: `C:\MyRepo\common\temp\npm-tmp`
2679
2575
  */
2680
- get npmTmpFolder(): string;
2576
+ readonly npmTmpFolder: string;
2681
2577
  /**
2682
2578
  * The local folder that will store the Yarn package cache.
2683
2579
  *
2684
2580
  * Example: `C:\MyRepo\common\temp\yarn-cache`
2685
2581
  */
2686
- get yarnCacheFolder(): string;
2687
- /**
2688
- * The full path of the shrinkwrap file that is tracked by Git. (The "rush install"
2689
- * command uses a temporary copy, whose path is tempShrinkwrapFilename.)
2690
- * @remarks
2691
- * This property merely reports the filename; the file itself may not actually exist.
2692
- * Example: `C:\MyRepo\common\npm-shrinkwrap.json` or `C:\MyRepo\common\pnpm-lock.yaml`
2693
- *
2694
- * @deprecated Use `getCommittedShrinkwrapFilename` instead, which gets the correct common
2695
- * shrinkwrap file name for a given active variant.
2696
- */
2697
- get committedShrinkwrapFilename(): string;
2582
+ readonly yarnCacheFolder: string;
2698
2583
  /**
2699
2584
  * The filename (without any path) of the shrinkwrap file that is used by the package manager.
2700
2585
  * @remarks
2701
2586
  * This property merely reports the filename; the file itself may not actually exist.
2702
2587
  * Example: `npm-shrinkwrap.json` or `pnpm-lock.yaml`
2703
2588
  */
2704
- get shrinkwrapFilename(): string;
2589
+ readonly shrinkwrapFilename: string;
2705
2590
  /**
2706
2591
  * The full path of the temporary shrinkwrap file that is used during "rush install".
2707
2592
  * This file may get rewritten by the package manager during installation.
@@ -2709,7 +2594,7 @@ export declare class RushConfiguration {
2709
2594
  * This property merely reports the filename; the file itself may not actually exist.
2710
2595
  * Example: `C:\MyRepo\common\temp\npm-shrinkwrap.json` or `C:\MyRepo\common\temp\pnpm-lock.yaml`
2711
2596
  */
2712
- get tempShrinkwrapFilename(): string;
2597
+ readonly tempShrinkwrapFilename: string;
2713
2598
  /**
2714
2599
  * The full path of a backup copy of tempShrinkwrapFilename. This backup copy is made
2715
2600
  * before installation begins, and can be compared to determine how the package manager
@@ -2719,24 +2604,7 @@ export declare class RushConfiguration {
2719
2604
  * Example: `C:\MyRepo\common\temp\npm-shrinkwrap-preinstall.json`
2720
2605
  * or `C:\MyRepo\common\temp\pnpm-lock-preinstall.yaml`
2721
2606
  */
2722
- get tempShrinkwrapPreinstallFilename(): string;
2723
- /**
2724
- * Returns an English phrase such as "shrinkwrap file" that can be used in logging messages
2725
- * to refer to the shrinkwrap file using appropriate terminology for the currently selected
2726
- * package manager.
2727
- */
2728
- get shrinkwrapFilePhrase(): string;
2729
- /**
2730
- * The filename of the build dependency data file. By default this is
2731
- * called 'rush-link.json' resides in the Rush common folder.
2732
- * Its data structure is defined by IRushLinkJson.
2733
- *
2734
- * Example: `C:\MyRepo\common\temp\rush-link.json`
2735
- *
2736
- * @deprecated The "rush-link.json" file was removed in Rush 5.30.0.
2737
- * Use `RushConfigurationProject.localDependencyProjects` instead.
2738
- */
2739
- get rushLinkJsonFilename(): string;
2607
+ readonly tempShrinkwrapPreinstallFilename: string;
2740
2608
  /**
2741
2609
  * The filename of the variant dependency data file. By default this is
2742
2610
  * called 'current-variant.json' resides in the Rush common folder.
@@ -2744,31 +2612,31 @@ export declare class RushConfiguration {
2744
2612
  *
2745
2613
  * Example: `C:\MyRepo\common\temp\current-variant.json`
2746
2614
  */
2747
- get currentVariantJsonFilename(): string;
2615
+ readonly currentVariantJsonFilename: string;
2748
2616
  /**
2749
2617
  * The version of the locally installed NPM tool. (Example: "1.2.3")
2750
2618
  */
2751
- get packageManagerToolVersion(): string;
2619
+ readonly packageManagerToolVersion: string;
2752
2620
  /**
2753
2621
  * The absolute path to the locally installed NPM tool. If "rush install" has not
2754
2622
  * been run, then this file may not exist yet.
2755
2623
  * Example: `C:\MyRepo\common\temp\npm-local\node_modules\.bin\npm`
2756
2624
  */
2757
- get packageManagerToolFilename(): string;
2625
+ readonly packageManagerToolFilename: string;
2758
2626
  /**
2759
2627
  * The minimum allowable folder depth for the projectFolder field in the rush.json file.
2760
2628
  * This setting provides a way for repository maintainers to discourage nesting of project folders
2761
2629
  * that makes the directory tree more difficult to navigate. The default value is 2,
2762
2630
  * which implements a standard 2-level hierarchy of `<categoryFolder>/<projectFolder>/package.json`.
2763
2631
  */
2764
- get projectFolderMinDepth(): number;
2632
+ readonly projectFolderMinDepth: number;
2765
2633
  /**
2766
2634
  * The maximum allowable folder depth for the projectFolder field in the rush.json file.
2767
2635
  * This setting provides a way for repository maintainers to discourage nesting of project folders
2768
2636
  * that makes the directory tree more difficult to navigate. The default value is 2,
2769
2637
  * which implements on a standard convention of `<categoryFolder>/<projectFolder>/package.json`.
2770
2638
  */
2771
- get projectFolderMaxDepth(): number;
2639
+ readonly projectFolderMaxDepth: number;
2772
2640
  /**
2773
2641
  * Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early
2774
2642
  * days there was no standard and hardly any enforcement. A few large legacy projects are still using
@@ -2780,11 +2648,11 @@ export declare class RushConfiguration {
2780
2648
  *
2781
2649
  * The default value is false.
2782
2650
  */
2783
- get allowMostlyStandardPackageNames(): boolean;
2651
+ readonly allowMostlyStandardPackageNames: boolean;
2784
2652
  /**
2785
2653
  * The "approvedPackagesPolicy" settings.
2786
2654
  */
2787
- get approvedPackagesPolicy(): ApprovedPackagesPolicy;
2655
+ readonly approvedPackagesPolicy: ApprovedPackagesPolicy;
2788
2656
  /**
2789
2657
  * [Part of the "gitPolicy" feature.]
2790
2658
  * A list of regular expressions describing allowable email patterns for Git commits.
@@ -2792,59 +2660,55 @@ export declare class RushConfiguration {
2792
2660
  * Example: `".*@example\.com"`
2793
2661
  * This array will never be undefined.
2794
2662
  */
2795
- get gitAllowedEmailRegExps(): string[];
2663
+ readonly gitAllowedEmailRegExps: string[];
2796
2664
  /**
2797
2665
  * [Part of the "gitPolicy" feature.]
2798
2666
  * An example valid email address that conforms to one of the allowedEmailRegExps.
2799
2667
  * Example: `"foxtrot@example\.com"`
2800
2668
  * This will never be undefined, and will always be nonempty if gitAllowedEmailRegExps is used.
2801
2669
  */
2802
- get gitSampleEmail(): string;
2670
+ readonly gitSampleEmail: string;
2803
2671
  /**
2804
2672
  * [Part of the "gitPolicy" feature.]
2805
2673
  * The commit message to use when committing changes during 'rush publish'
2806
2674
  */
2807
- get gitVersionBumpCommitMessage(): string | undefined;
2675
+ readonly gitVersionBumpCommitMessage: string | undefined;
2808
2676
  /**
2809
2677
  * [Part of the "gitPolicy" feature.]
2810
2678
  * The commit message to use when committing change log files 'rush version'
2811
2679
  */
2812
- get gitChangeLogUpdateCommitMessage(): string | undefined;
2680
+ readonly gitChangeLogUpdateCommitMessage: string | undefined;
2813
2681
  /**
2814
2682
  * [Part of the "gitPolicy" feature.]
2815
2683
  * The commit message to use when committing change log files 'rush version'
2816
2684
  */
2817
- get gitChangefilesCommitMessage(): string | undefined;
2685
+ readonly gitChangefilesCommitMessage: string | undefined;
2818
2686
  /**
2819
2687
  * [Part of the "gitPolicy" feature.]
2820
2688
  * The separator between package name and version in git tag.
2821
2689
  */
2822
- get gitTagSeparator(): string | undefined;
2690
+ readonly gitTagSeparator: string | undefined;
2823
2691
  /**
2824
2692
  * [Part of the "hotfixChange" feature.]
2825
2693
  * Enables creating hotfix changes
2826
2694
  */
2827
- get hotfixChangeEnabled(): boolean;
2695
+ readonly hotfixChangeEnabled: boolean;
2828
2696
  /**
2829
2697
  * Remote URL(s) of the repository. If a value is provided, \"rush change\" will
2830
2698
  * use one of these to find the right remote to compare against. Specifying multiple URLs
2831
2699
  * is useful if a GitHub repository is renamed or for `<projectName>.visualstudio.com` versus
2832
2700
  * `dev.azure.com/<projectName>` URLs.
2833
2701
  */
2834
- get repositoryUrls(): string[];
2702
+ readonly repositoryUrls: string[];
2835
2703
  /**
2836
2704
  * The default branch name. This tells "rush change" which remote branch to compare against.
2837
2705
  */
2838
- get repositoryDefaultBranch(): string;
2706
+ readonly repositoryDefaultBranch: string;
2839
2707
  /**
2840
2708
  * The default remote. This tells "rush change" which remote to compare against if the remote URL is not set
2841
2709
  * or if a remote matching the provided remote URL is not found.
2842
2710
  */
2843
- get repositoryDefaultRemote(): string;
2844
- /**
2845
- * The default fully-qualified git remote branch of the repository. This helps "rush change" find the right branch to compare against.
2846
- */
2847
- get repositoryDefaultFullyQualifiedRemoteBranch(): string;
2711
+ readonly repositoryDefaultRemote: string;
2848
2712
  /**
2849
2713
  * Odd-numbered major versions of Node.js are experimental. Even-numbered releases
2850
2714
  * spend six months in a stabilization period before the first Long Term Support (LTS) version.
@@ -2856,43 +2720,146 @@ export declare class RushConfiguration {
2856
2720
  * pre-LTS versions in preparation for supporting the first LTS version, you can use this setting
2857
2721
  * to disable Rush's warning.
2858
2722
  */
2859
- get suppressNodeLtsWarning(): boolean;
2723
+ readonly suppressNodeLtsWarning: boolean;
2860
2724
  /**
2861
2725
  * If true, then consistent version specifiers for dependencies will be enforced.
2862
2726
  * I.e. "rush check" is run before some commands.
2863
2727
  */
2864
- get ensureConsistentVersions(): boolean;
2728
+ readonly ensureConsistentVersions: boolean;
2865
2729
  /**
2866
2730
  * Indicates whether telemetry collection is enabled for Rush runs.
2867
2731
  * @beta
2868
2732
  */
2869
- get telemetryEnabled(): boolean;
2870
- get projects(): RushConfigurationProject[];
2871
- get projectsByName(): Map<string, RushConfigurationProject>;
2872
- /**
2873
- * Obtains the mapping from custom tags to projects.
2874
- * @beta
2875
- */
2876
- get projectsByTag(): ReadonlyMap<string, ReadonlySet<RushConfigurationProject>>;
2733
+ readonly telemetryEnabled: boolean;
2877
2734
  /**
2878
2735
  * {@inheritDoc NpmOptionsConfiguration}
2879
2736
  */
2880
- get npmOptions(): NpmOptionsConfiguration;
2737
+ readonly npmOptions: NpmOptionsConfiguration;
2881
2738
  /**
2882
2739
  * {@inheritDoc PnpmOptionsConfiguration}
2883
2740
  */
2884
- get pnpmOptions(): PnpmOptionsConfiguration;
2741
+ readonly pnpmOptions: PnpmOptionsConfiguration;
2885
2742
  /**
2886
2743
  * {@inheritDoc YarnOptionsConfiguration}
2887
2744
  */
2888
- get yarnOptions(): YarnOptionsConfiguration;
2745
+ readonly yarnOptions: YarnOptionsConfiguration;
2889
2746
  /**
2890
2747
  * The configuration options used by the current package manager.
2891
2748
  * @remarks
2892
2749
  * For package manager specific variants, reference {@link RushConfiguration.npmOptions | npmOptions},
2893
2750
  * {@link RushConfiguration.pnpmOptions | pnpmOptions}, or {@link RushConfiguration.yarnOptions | yarnOptions}.
2894
2751
  */
2895
- get packageManagerOptions(): PackageManagerOptionsConfigurationBase;
2752
+ readonly packageManagerOptions: PackageManagerOptionsConfigurationBase;
2753
+ /**
2754
+ * The rush hooks. It allows customized scripts to run at the specified point.
2755
+ * @beta
2756
+ */
2757
+ readonly eventHooks: EventHooks;
2758
+ /**
2759
+ * The rush hooks. It allows customized scripts to run at the specified point.
2760
+ */
2761
+ readonly packageNameParser: PackageNameParser;
2762
+ /**
2763
+ * @beta
2764
+ */
2765
+ readonly versionPolicyConfiguration: VersionPolicyConfiguration;
2766
+ /**
2767
+ * @beta
2768
+ */
2769
+ readonly versionPolicyConfigurationFilePath: string;
2770
+ /**
2771
+ * This configuration object contains settings repo maintainers have specified to enable
2772
+ * and disable experimental Rush features.
2773
+ *
2774
+ * @beta
2775
+ */
2776
+ readonly experimentsConfiguration: ExperimentsConfiguration;
2777
+ /**
2778
+ * @internal
2779
+ */
2780
+ readonly _rushPluginsConfiguration: RushPluginsConfiguration;
2781
+ /**
2782
+ * Use RushConfiguration.loadFromConfigurationFile() or Use RushConfiguration.loadFromDefaultLocation()
2783
+ * instead.
2784
+ */
2785
+ private constructor();
2786
+ private _initializeAndValidateLocalProjects;
2787
+ /**
2788
+ * Loads the configuration data from an Rush.json configuration file and returns
2789
+ * an RushConfiguration object.
2790
+ */
2791
+ static loadFromConfigurationFile(rushJsonFilename: string): RushConfiguration;
2792
+ static loadFromDefaultLocation(options?: ITryFindRushJsonLocationOptions): RushConfiguration;
2793
+ /**
2794
+ * Find the rush.json location and return the path, or undefined if a rush.json can't be found.
2795
+ *
2796
+ * @privateRemarks
2797
+ * Keep this in sync with `findRushJsonLocation` in `rush-sdk/src/index.ts`.
2798
+ */
2799
+ static tryFindRushJsonLocation(options?: ITryFindRushJsonLocationOptions): string | undefined;
2800
+ /**
2801
+ * This generates the unique names that are used to create temporary projects
2802
+ * in the Rush common folder.
2803
+ * NOTE: sortedProjectJsons is sorted by the caller.
2804
+ */
2805
+ private static _generateTempNameForProject;
2806
+ /**
2807
+ * If someone adds a config file in the "common/rush/config" folder, it would be a bad
2808
+ * experience for Rush to silently ignore their file simply because they misspelled the
2809
+ * filename, or maybe it's an old format that's no longer supported. The
2810
+ * _validateCommonRushConfigFolder() function makes sure that this folder only contains
2811
+ * recognized config files.
2812
+ */
2813
+ private static _validateCommonRushConfigFolder;
2814
+ /**
2815
+ * The fully resolved path for the "autoinstallers" folder.
2816
+ * Example: `C:\MyRepo\common\autoinstallers`
2817
+ */
2818
+ get commonAutoinstallersFolder(): string;
2819
+ /**
2820
+ * The folder where rush-plugin options json files are stored.
2821
+ * Example: `C:\MyRepo\common\config\rush-plugins`
2822
+ */
2823
+ get rushPluginOptionsFolder(): string;
2824
+ /**
2825
+ * The full path of the shrinkwrap file that is tracked by Git. (The "rush install"
2826
+ * command uses a temporary copy, whose path is tempShrinkwrapFilename.)
2827
+ * @remarks
2828
+ * This property merely reports the filename; the file itself may not actually exist.
2829
+ * Example: `C:\MyRepo\common\npm-shrinkwrap.json` or `C:\MyRepo\common\pnpm-lock.yaml`
2830
+ *
2831
+ * @deprecated Use `getCommittedShrinkwrapFilename` instead, which gets the correct common
2832
+ * shrinkwrap file name for a given active variant.
2833
+ */
2834
+ get committedShrinkwrapFilename(): string;
2835
+ /**
2836
+ * Returns an English phrase such as "shrinkwrap file" that can be used in logging messages
2837
+ * to refer to the shrinkwrap file using appropriate terminology for the currently selected
2838
+ * package manager.
2839
+ */
2840
+ get shrinkwrapFilePhrase(): string;
2841
+ /**
2842
+ * The filename of the build dependency data file. By default this is
2843
+ * called 'rush-link.json' resides in the Rush common folder.
2844
+ * Its data structure is defined by IRushLinkJson.
2845
+ *
2846
+ * Example: `C:\MyRepo\common\temp\rush-link.json`
2847
+ *
2848
+ * @deprecated The "rush-link.json" file was removed in Rush 5.30.0.
2849
+ * Use `RushConfigurationProject.localDependencyProjects` instead.
2850
+ */
2851
+ get rushLinkJsonFilename(): string;
2852
+ /**
2853
+ * The default fully-qualified git remote branch of the repository. This helps "rush change" find the right branch to compare against.
2854
+ */
2855
+ get repositoryDefaultFullyQualifiedRemoteBranch(): string;
2856
+ get projects(): RushConfigurationProject[];
2857
+ get projectsByName(): Map<string, RushConfigurationProject>;
2858
+ /**
2859
+ * Obtains the mapping from custom tags to projects.
2860
+ * @beta
2861
+ */
2862
+ get projectsByTag(): ReadonlyMap<string, ReadonlySet<RushConfigurationProject>>;
2896
2863
  /**
2897
2864
  * Settings from the common-versions.json config file.
2898
2865
  * @remarks
@@ -2911,15 +2878,6 @@ export declare class RushConfiguration {
2911
2878
  * or "rush update".
2912
2879
  */
2913
2880
  get currentInstalledVariant(): string | undefined;
2914
- /**
2915
- * The rush hooks. It allows customized scripts to run at the specified point.
2916
- * @beta
2917
- */
2918
- get eventHooks(): EventHooks;
2919
- /**
2920
- * The rush hooks. It allows customized scripts to run at the specified point.
2921
- */
2922
- get packageNameParser(): PackageNameParser;
2923
2881
  /**
2924
2882
  * Gets the path to the common-versions.json config file for a specific variant.
2925
2883
  * @param variant - The name of the current variant in use by the active command.
@@ -2981,25 +2939,6 @@ export declare class RushConfiguration {
2981
2939
  * @beta
2982
2940
  */
2983
2941
  getProjectLookupForRoot(rootPath: string): LookupByPath<RushConfigurationProject>;
2984
- /**
2985
- * @beta
2986
- */
2987
- get versionPolicyConfiguration(): VersionPolicyConfiguration;
2988
- /**
2989
- * @beta
2990
- */
2991
- get versionPolicyConfigurationFilePath(): string;
2992
- /**
2993
- * This configuration object contains settings repo maintainers have specified to enable
2994
- * and disable experimental Rush features.
2995
- *
2996
- * @beta
2997
- */
2998
- get experimentsConfiguration(): ExperimentsConfiguration;
2999
- /**
3000
- * @internal
3001
- */
3002
- get _rushPluginsConfiguration(): RushPluginsConfiguration;
3003
2942
  /**
3004
2943
  * Returns the project for which the specified path is underneath that project's folder.
3005
2944
  * If the path is not under any project's folder, returns undefined.
@@ -3014,68 +2953,50 @@ export declare class RushConfiguration {
3014
2953
  * @public
3015
2954
  */
3016
2955
  export declare class RushConfigurationProject {
3017
- private readonly _packageName;
3018
- private readonly _projectFolder;
3019
- private readonly _projectRelativeFolder;
3020
- private readonly _projectRushConfigFolder;
3021
- private readonly _projectRushTempFolder;
3022
- private readonly _reviewCategory;
3023
- private readonly _packageJson;
3024
- private readonly _packageJsonEditor;
3025
- private readonly _tempProjectName;
3026
- private readonly _unscopedTempProjectName;
3027
- private readonly _decoupledLocalDependencies;
3028
- private readonly _versionPolicyName;
3029
2956
  private readonly _shouldPublish;
3030
- private readonly _skipRushCheck;
3031
- private readonly _publishFolder;
3032
- private readonly _rushConfiguration;
3033
- private readonly _tags;
3034
2957
  private _versionPolicy;
3035
2958
  private _dependencyProjects;
3036
2959
  private _consumingProjects;
3037
- /** @internal */
3038
- constructor(options: IRushConfigurationProjectOptions);
3039
2960
  /**
3040
2961
  * The name of the NPM package. An error is reported if this name is not
3041
2962
  * identical to packageJson.name.
3042
2963
  *
3043
2964
  * Example: `@scope/MyProject`
3044
2965
  */
3045
- get packageName(): string;
2966
+ readonly packageName: string;
3046
2967
  /**
3047
2968
  * The full path of the folder that contains the project to be built by Rush.
3048
2969
  *
3049
2970
  * Example: `C:\MyRepo\libraries\my-project`
3050
2971
  */
3051
- get projectFolder(): string;
2972
+ readonly projectFolder: string;
3052
2973
  /**
3053
2974
  * The relative path of the folder that contains the project to be built by Rush.
3054
2975
  *
3055
2976
  * Example: `libraries/my-project`
3056
2977
  */
3057
- get projectRelativeFolder(): string;
2978
+ readonly projectRelativeFolder: string;
3058
2979
  /**
3059
2980
  * The project-specific Rush configuration folder.
3060
2981
  *
3061
2982
  * Example: `C:\MyRepo\libraries\my-project\config\rush`
3062
2983
  */
3063
- get projectRushConfigFolder(): string;
2984
+ readonly projectRushConfigFolder: string;
3064
2985
  /**
3065
2986
  * The project-specific Rush temp folder. This folder is used to store Rush-specific temporary files.
3066
2987
  *
3067
2988
  * Example: `C:\MyRepo\libraries\my-project\.rush\temp`
3068
2989
  */
3069
- get projectRushTempFolder(): string;
2990
+ readonly projectRushTempFolder: string;
3070
2991
  /**
3071
2992
  * The Rush configuration for the monorepo that the project belongs to.
3072
2993
  */
3073
- get rushConfiguration(): RushConfiguration;
2994
+ readonly rushConfiguration: RushConfiguration;
3074
2995
  /**
3075
2996
  * The review category name, or undefined if no category was assigned.
3076
2997
  * This name must be one of the valid choices listed in RushConfiguration.reviewCategories.
3077
2998
  */
3078
- get reviewCategory(): string | undefined;
2999
+ readonly reviewCategory: string | undefined;
3079
3000
  /**
3080
3001
  * A list of local projects that appear as devDependencies for this project, but cannot be
3081
3002
  * locally linked because it would create a cyclic dependency; instead, the last published
@@ -3083,7 +3004,63 @@ export declare class RushConfigurationProject {
3083
3004
  *
3084
3005
  * These are package names that would be found by RushConfiguration.getProjectByName().
3085
3006
  */
3086
- get decoupledLocalDependencies(): Set<string>;
3007
+ readonly decoupledLocalDependencies: Set<string>;
3008
+ /**
3009
+ * The parsed NPM "package.json" file from projectFolder.
3010
+ */
3011
+ readonly packageJson: IPackageJson;
3012
+ /**
3013
+ * A useful wrapper around the package.json file for making modifications
3014
+ * @beta
3015
+ */
3016
+ readonly packageJsonEditor: PackageJsonEditor;
3017
+ /**
3018
+ * The unique name for the temporary project that will be generated in the Common folder.
3019
+ * For example, if the project name is `@scope/MyProject`, the temporary project name
3020
+ * might be `@rush-temp/MyProject-2`.
3021
+ *
3022
+ * Example: `@rush-temp/MyProject-2`
3023
+ */
3024
+ readonly tempProjectName: string;
3025
+ /**
3026
+ * The unscoped temporary project name
3027
+ *
3028
+ * Example: `my-project-2`
3029
+ */
3030
+ readonly unscopedTempProjectName: string;
3031
+ /**
3032
+ * If true, then this project will be ignored by the "rush check" command.
3033
+ * The default value is false.
3034
+ */
3035
+ readonly skipRushCheck: boolean;
3036
+ /**
3037
+ * Name of the version policy used by this project.
3038
+ * @beta
3039
+ */
3040
+ readonly versionPolicyName: string | undefined;
3041
+ /**
3042
+ * The full path of the folder that will get published by Rush.
3043
+ *
3044
+ * @remarks
3045
+ * By default this is the same as the project folder, but a custom folder can be specified
3046
+ * using the the "publishFolder" setting in rush.json.
3047
+ *
3048
+ * Example: `C:\MyRepo\libraries\my-project\temp\publish`
3049
+ */
3050
+ readonly publishFolder: string;
3051
+ /**
3052
+ * An optional set of custom tags that can be used to select this project.
3053
+ *
3054
+ * @remarks
3055
+ * For example, adding `my-custom-tag` will allow this project to be selected by the
3056
+ * command `rush list --only tag:my-custom-tag`. The tag name must be one or more words separated
3057
+ * by hyphens, where a word may contain lowercase letters, digits, and the period character.
3058
+ *
3059
+ * @beta
3060
+ */
3061
+ readonly tags: ReadonlySet<string>;
3062
+ /** @internal */
3063
+ constructor(options: IRushConfigurationProjectOptions);
3087
3064
  /**
3088
3065
  * A list of local projects that appear as devDependencies for this project, but cannot be
3089
3066
  * locally linked because it would create a cyclic dependency; instead, the last published
@@ -3123,55 +3100,12 @@ export declare class RushConfigurationProject {
3123
3100
  * graph to find all projects which will be impacted by changes to this project.
3124
3101
  */
3125
3102
  get consumingProjects(): ReadonlySet<RushConfigurationProject>;
3126
- /**
3127
- * The parsed NPM "package.json" file from projectFolder.
3128
- */
3129
- get packageJson(): IPackageJson;
3130
- /**
3131
- * A useful wrapper around the package.json file for making modifications
3132
- * @beta
3133
- */
3134
- get packageJsonEditor(): PackageJsonEditor;
3135
- /**
3136
- * The unique name for the temporary project that will be generated in the Common folder.
3137
- * For example, if the project name is `@scope/MyProject`, the temporary project name
3138
- * might be `@rush-temp/MyProject-2`.
3139
- *
3140
- * Example: `@rush-temp/MyProject-2`
3141
- */
3142
- get tempProjectName(): string;
3143
- /**
3144
- * The unscoped temporary project name
3145
- *
3146
- * Example: `my-project-2`
3147
- */
3148
- get unscopedTempProjectName(): string;
3149
3103
  /**
3150
3104
  * A flag which indicates whether changes to this project should be published. This controls
3151
3105
  * whether or not the project would show up when running `rush change`, and whether or not it
3152
3106
  * should be published during `rush publish`.
3153
3107
  */
3154
3108
  get shouldPublish(): boolean;
3155
- /**
3156
- * If true, then this project will be ignored by the "rush check" command.
3157
- * The default value is false.
3158
- */
3159
- get skipRushCheck(): boolean;
3160
- /**
3161
- * Name of the version policy used by this project.
3162
- * @beta
3163
- */
3164
- get versionPolicyName(): string | undefined;
3165
- /**
3166
- * The full path of the folder that will get published by Rush.
3167
- *
3168
- * @remarks
3169
- * By default this is the same as the project folder, but a custom folder can be specified
3170
- * using the the "publishFolder" setting in rush.json.
3171
- *
3172
- * Example: `C:\MyRepo\libraries\my-project\temp\publish`
3173
- */
3174
- get publishFolder(): string;
3175
3109
  /**
3176
3110
  * Version policy of the project
3177
3111
  * @beta
@@ -3187,17 +3121,6 @@ export declare class RushConfigurationProject {
3187
3121
  * @beta
3188
3122
  */
3189
3123
  get isMainProject(): boolean;
3190
- /**
3191
- * An optional set of custom tags that can be used to select this project.
3192
- *
3193
- * @remarks
3194
- * For example, adding `my-custom-tag` will allow this project to be selected by the
3195
- * command `rush list --only tag:my-custom-tag`. The tag name must be one or more words separated
3196
- * by hyphens, where a word may contain lowercase letters, digits, and the period character.
3197
- *
3198
- * @beta
3199
- */
3200
- get tags(): ReadonlySet<string>;
3201
3124
  }
3202
3125
 
3203
3126
  /**
@@ -3411,6 +3334,12 @@ export declare class RushConstants {
3411
3334
  * The expected prefix for phase names in "common/config/rush/command-line.json"
3412
3335
  */
3413
3336
  static readonly phaseNamePrefix: '_phase:';
3337
+ /**
3338
+ * The default debounce value for Rush multi-project watch mode. When watching, controls
3339
+ * how long to wait after the last encountered file system event before execution. If another
3340
+ * file system event occurs in this interval, the timeout will reset.
3341
+ */
3342
+ static readonly defaultWatchDebounceMs: number;
3414
3343
  }
3415
3344
 
3416
3345
  /**
@@ -3419,8 +3348,6 @@ export declare class RushConstants {
3419
3348
  * @internal
3420
3349
  */
3421
3350
  export declare class _RushGlobalFolder {
3422
- private _rushGlobalFolder;
3423
- private _rushNodeSpecificUserFolder;
3424
3351
  /**
3425
3352
  * The global folder where Rush stores temporary files.
3426
3353
  *
@@ -3438,12 +3365,12 @@ export declare class _RushGlobalFolder {
3438
3365
  *
3439
3366
  * POSIX is a registered trademark of the Institute of Electrical and Electronic Engineers, Inc.
3440
3367
  */
3441
- get path(): string;
3368
+ readonly path: string;
3442
3369
  /**
3443
3370
  * The absolute path to Rush's storage in the home directory for the current user and node version.
3444
3371
  * On Windows, it would be something like `C:\Users\YourName\.rush\node-v3.4.5`.
3445
3372
  */
3446
- get nodeSpecificPath(): string;
3373
+ readonly nodeSpecificPath: string;
3447
3374
  constructor();
3448
3375
  }
3449
3376
 
@@ -3485,10 +3412,9 @@ export declare class RushLifecycleHooks {
3485
3412
 
3486
3413
  declare class RushPluginsConfiguration {
3487
3414
  private static _jsonSchema;
3488
- private _rushPluginsConfigurationJson;
3489
3415
  private _jsonFilename;
3416
+ readonly configuration: Readonly<IRushPluginsConfigurationJson>;
3490
3417
  constructor(jsonFilename: string);
3491
- get configuration(): Readonly<IRushPluginsConfigurationJson>;
3492
3418
  }
3493
3419
 
3494
3420
  /**
@@ -3536,12 +3462,24 @@ declare enum VersionFormatForPublish {
3536
3462
  * @public
3537
3463
  */
3538
3464
  export declare abstract class VersionPolicy {
3539
- private _policyName;
3540
- private _definitionName;
3541
- private _exemptFromRushChange;
3542
- private _includeEmailInChangeFile;
3543
3465
  private _versionFormatForCommit;
3544
3466
  private _versionFormatForPublish;
3467
+ /**
3468
+ * Version policy name
3469
+ */
3470
+ readonly policyName: string;
3471
+ /**
3472
+ * Version policy definition name
3473
+ */
3474
+ readonly definitionName: VersionPolicyDefinitionName;
3475
+ /**
3476
+ * Determines if a version policy wants to opt out of changelog files.
3477
+ */
3478
+ readonly exemptFromRushChange: boolean;
3479
+ /**
3480
+ * Determines if a version policy wants to opt in to including email.
3481
+ */
3482
+ readonly includeEmailInChangeFile: boolean;
3545
3483
  /**
3546
3484
  * @internal
3547
3485
  */
@@ -3554,26 +3492,10 @@ export declare abstract class VersionPolicy {
3554
3492
  * @internal
3555
3493
  */
3556
3494
  static load(versionPolicyJson: IVersionPolicyJson): VersionPolicy | undefined;
3557
- /**
3558
- * Version policy name
3559
- */
3560
- get policyName(): string;
3561
- /**
3562
- * Version policy definition name
3563
- */
3564
- get definitionName(): VersionPolicyDefinitionName;
3565
3495
  /**
3566
3496
  * Whether it is a lockstepped version policy
3567
3497
  */
3568
3498
  get isLockstepped(): boolean;
3569
- /**
3570
- * Determines if a version policy wants to opt out of changelog files.
3571
- */
3572
- get exemptFromRushChange(): boolean;
3573
- /**
3574
- * Determines if a version policy wants to opt in to including email.
3575
- */
3576
- get includeEmailInChangeFile(): boolean;
3577
3499
  /**
3578
3500
  * Returns an updated package json that satisfies the policy.
3579
3501
  *
@@ -3621,8 +3543,11 @@ export declare abstract class VersionPolicy {
3621
3543
  */
3622
3544
  export declare class VersionPolicyConfiguration {
3623
3545
  private static _jsonSchema;
3624
- private _versionPolicies;
3625
3546
  private _jsonFileName;
3547
+ /**
3548
+ * Gets all the version policies
3549
+ */
3550
+ readonly versionPolicies: Map<string, VersionPolicy>;
3626
3551
  /**
3627
3552
  * @internal
3628
3553
  */
@@ -3637,10 +3562,6 @@ export declare class VersionPolicyConfiguration {
3637
3562
  * @param policyName - Name of the version policy
3638
3563
  */
3639
3564
  getVersionPolicy(policyName: string): VersionPolicy;
3640
- /**
3641
- * Gets all the version policies
3642
- */
3643
- get versionPolicies(): Map<string, VersionPolicy>;
3644
3565
  /**
3645
3566
  * Bumps up versions for the specified version policy or all version policies
3646
3567
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.86.0",
3
+ "version": "5.88.0",
4
4
  "description": "An API for interacting with the Rush engine",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,18 +12,18 @@
12
12
  "typings": "dist/rush-lib.d.ts",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@rushstack/node-core-library": "3.53.2",
15
+ "@rushstack/node-core-library": "3.53.3",
16
16
  "@types/node-fetch": "1.6.9",
17
17
  "tapable": "2.2.1"
18
18
  },
19
19
  "devDependencies": {
20
- "@microsoft/rush-lib": "5.86.0",
20
+ "@microsoft/rush-lib": "5.88.0",
21
21
  "@rushstack/eslint-config": "3.1.1",
22
- "@rushstack/heft": "0.48.8",
23
- "@rushstack/heft-node-rig": "1.11.8",
24
- "@rushstack/stream-collator": "4.0.215",
22
+ "@rushstack/heft": "0.49.0",
23
+ "@rushstack/heft-node-rig": "1.11.11",
24
+ "@rushstack/stream-collator": "4.0.219",
25
25
  "@rushstack/ts-command-line": "4.13.1",
26
- "@rushstack/terminal": "0.3.84",
26
+ "@rushstack/terminal": "0.3.88",
27
27
  "@types/heft-jest": "1.0.1",
28
28
  "@types/semver": "7.3.5",
29
29
  "@types/webpack-env": "1.13.0"