@rushstack/rush-sdk 5.78.1 → 5.79.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 +145 -4
  2. package/package.json +2 -2
@@ -1241,11 +1241,11 @@ export declare interface IPhasedCommand extends IRushCommand {
1241
1241
  */
1242
1242
  export declare interface _IPnpmOptionsJson extends IPackageManagerOptionsJsonBase {
1243
1243
  /**
1244
- * The store resolution method for PNPM to use
1244
+ * {@inheritDoc PnpmOptionsConfiguration.pnpmStore}
1245
1245
  */
1246
1246
  pnpmStore?: PnpmStoreOptions;
1247
1247
  /**
1248
- * Should PNPM fail if peer dependencies aren't installed?
1248
+ * {@inheritDoc PnpmOptionsConfiguration.strictPeerDependencies}
1249
1249
  */
1250
1250
  strictPeerDependencies?: boolean;
1251
1251
  /**
@@ -1256,6 +1256,52 @@ export declare interface _IPnpmOptionsJson extends IPackageManagerOptionsJsonBas
1256
1256
  * {@inheritDoc PnpmOptionsConfiguration.useWorkspaces}
1257
1257
  */
1258
1258
  useWorkspaces?: boolean;
1259
+ /**
1260
+ * {@inheritDoc PnpmOptionsConfiguration.globalOverrides}
1261
+ */
1262
+ globalOverrides?: Record<string, string>;
1263
+ /**
1264
+ * {@inheritDoc PnpmOptionsConfiguration.globalPeerDependencyRules}
1265
+ */
1266
+ globalPeerDependencyRules?: IPnpmPeerDependencyRules;
1267
+ /**
1268
+ * {@inheritDoc PnpmOptionsConfiguration.globalPackageExtensions}
1269
+ */
1270
+ globalPackageExtensions?: Record<string, IPnpmPackageExtension>;
1271
+ /**
1272
+ * {@inheritDoc PnpmOptionsConfiguration.globalNeverBuiltDependencies}
1273
+ */
1274
+ globalNeverBuiltDependencies?: string[];
1275
+ /**
1276
+ * {@inheritDoc PnpmOptionsConfiguration.globalAllowedDeprecatedVersions}
1277
+ */
1278
+ globalAllowedDeprecatedVersions?: Record<string, string>;
1279
+ /**
1280
+ * {@inheritDoc PnpmOptionsConfiguration.unsupportedPackageJsonSettings}
1281
+ */
1282
+ unsupportedPackageJsonSettings?: unknown;
1283
+ }
1284
+
1285
+ declare interface IPnpmPackageExtension {
1286
+ dependencies?: Record<string, string>;
1287
+ optionalDependencies?: Record<string, string>;
1288
+ peerDependencies?: Record<string, string>;
1289
+ peerDependenciesMeta?: IPnpmPeerDependenciesMeta;
1290
+ }
1291
+
1292
+ declare interface IPnpmPeerDependenciesMeta {
1293
+ [packageName: string]: {
1294
+ optional?: boolean;
1295
+ };
1296
+ }
1297
+
1298
+ /**
1299
+ * @beta
1300
+ */
1301
+ declare interface IPnpmPeerDependencyRules {
1302
+ ignoreMissing?: string[];
1303
+ allowAny?: string[];
1304
+ allowedVersions?: Record<string, string>;
1259
1305
  }
1260
1306
 
1261
1307
  declare interface IRawRepoState {
@@ -1350,6 +1396,7 @@ declare interface IRushGitPolicyJson {
1350
1396
  sampleEmail?: string;
1351
1397
  versionBumpCommitMessage?: string;
1352
1398
  changeLogUpdateCommitMessage?: string;
1399
+ changefilesCommitMessage?: string;
1353
1400
  tagSeparator?: string;
1354
1401
  }
1355
1402
 
@@ -2042,6 +2089,8 @@ export declare class PhasedCommandHooks {
2042
2089
 
2043
2090
  /**
2044
2091
  * Options that are only used when the PNPM package manager is selected.
2092
+ * Use this class to load "common/config/rush/pnpm-config.json" file,
2093
+ * or, load json from "pnpmOptions" field in "rush.json" for legacy support.
2045
2094
  *
2046
2095
  * @remarks
2047
2096
  * It is valid to define these options in rush.json even if the PNPM package manager
@@ -2050,6 +2099,7 @@ export declare class PhasedCommandHooks {
2050
2099
  * @public
2051
2100
  */
2052
2101
  export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfigurationBase {
2102
+ private static _jsonSchema;
2053
2103
  /**
2054
2104
  * The method used to resolve the store used by PNPM.
2055
2105
  *
@@ -2099,11 +2149,92 @@ export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfi
2099
2149
  * If true, then Rush will use the workspaces feature to install and link packages when invoking PNPM.
2100
2150
  *
2101
2151
  * @remarks
2102
- * The default value is false. (For now.)
2152
+ * The default value is true. (For now.)
2103
2153
  */
2104
2154
  readonly useWorkspaces: boolean;
2155
+ /**
2156
+ * The "globalOverrides" setting provides a simple mechanism for overriding version selections
2157
+ * for all dependencies of all projects in the monorepo workspace. The settings are copied
2158
+ * into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated
2159
+ * by Rush during installation.
2160
+ *
2161
+ * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
2162
+ * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
2163
+ * and `globalOverrides` has lowest precedence.
2164
+ *
2165
+ * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides
2166
+ */
2167
+ readonly globalOverrides: Record<string, string> | undefined;
2168
+ /**
2169
+ * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors
2170
+ * that are reported during installation with `strictPeerDependencies=true`. The settings are copied
2171
+ * into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated
2172
+ * by Rush during installation.
2173
+ *
2174
+ * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
2175
+ * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
2176
+ * and `globalOverrides` has lowest precedence.
2177
+ *
2178
+ * https://pnpm.io/package_json#pnpmpeerdependencyrules
2179
+ */
2180
+ readonly globalPeerDependencyRules: IPnpmPeerDependencyRules | undefined;
2181
+ /**
2182
+ * The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields
2183
+ * for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions`
2184
+ * field of the `common/temp/package.json` file that is generated by Rush during installation.
2185
+ * The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without
2186
+ * the downsides of an executable script (nondeterminism, unreliable caching, performance concerns).
2187
+ *
2188
+ * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
2189
+ * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
2190
+ * and `globalOverrides` has lowest precedence.
2191
+ *
2192
+ * PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions
2193
+ */
2194
+ readonly globalPackageExtensions: Record<string, IPnpmPackageExtension> | undefined;
2195
+ /**
2196
+ * The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall`
2197
+ * lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices
2198
+ * such as downloading large binaries without retries or attempting to invoke OS tools such as
2199
+ * a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package;
2200
+ * it has nothing to do with build system operations such as `rush build` or `rushx build`.)
2201
+ * The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json`
2202
+ * file that is generated by Rush during installation.
2203
+ *
2204
+ * PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies
2205
+ */
2206
+ readonly globalNeverBuiltDependencies: string[] | undefined;
2207
+ /**
2208
+ * The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package
2209
+ * versions that the NPM registry reports as being deprecated. This is useful if the
2210
+ * deprecated package is an indirect dependency of an external package that has not released a fix.
2211
+ * The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json`
2212
+ * file that is generated by Rush during installation.
2213
+ *
2214
+ * PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions
2215
+ *
2216
+ * If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions`
2217
+ * in the package.json file for individual Rush projects.
2218
+ */
2219
+ readonly globalAllowedDeprecatedVersions: Record<string, string> | undefined;
2220
+ /**
2221
+ * (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into
2222
+ * the `common/temp/package.json` file that is generated by Rush during installation.
2223
+ * This provides a way to experiment with new PNPM features. These settings will override
2224
+ * any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`.
2225
+ *
2226
+ * USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH
2227
+ * TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should
2228
+ * be supported, please create a GitHub issue or PR. Note that Rush does not aim to
2229
+ * support every possible PNPM setting, but rather to promote a battle-tested installation
2230
+ * strategy that is known to provide a good experience for large teams with lots of projects.
2231
+ */
2232
+ readonly unsupportedPackageJsonSettings: unknown | undefined;
2233
+ private constructor();
2234
+ /** @internal */
2235
+ static loadFromJsonFileOrThrow(jsonFilename: string, commonTempFolder: string): PnpmOptionsConfiguration;
2105
2236
  /** @internal */
2106
- constructor(json: _IPnpmOptionsJson, commonTempFolder: string);
2237
+ static loadFromJsonObject(json: _IPnpmOptionsJson, commonTempFolder: string): PnpmOptionsConfiguration;
2107
2238
  }
2108
2239
 
2109
2240
  /**
@@ -2310,6 +2441,7 @@ export declare class RushConfiguration {
2310
2441
  private _gitSampleEmail;
2311
2442
  private _gitVersionBumpCommitMessage;
2312
2443
  private _gitChangeLogUpdateCommitMessage;
2444
+ private _gitChangefilesCommitMessage;
2313
2445
  private _gitTagSeparator;
2314
2446
  private _hotfixChangeEnabled;
2315
2447
  private _repositoryUrls;
@@ -2582,6 +2714,11 @@ export declare class RushConfiguration {
2582
2714
  * The commit message to use when committing change log files 'rush version'
2583
2715
  */
2584
2716
  get gitChangeLogUpdateCommitMessage(): string | undefined;
2717
+ /**
2718
+ * [Part of the "gitPolicy" feature.]
2719
+ * The commit message to use when committing change log files 'rush version'
2720
+ */
2721
+ get gitChangefilesCommitMessage(): string | undefined;
2585
2722
  /**
2586
2723
  * [Part of the "gitPolicy" feature.]
2587
2724
  * The separator between package name and version in git tag.
@@ -3086,6 +3223,10 @@ export declare class RushConstants {
3086
3223
  * Experiments configuration file.
3087
3224
  */
3088
3225
  static readonly experimentsFilename: string;
3226
+ /**
3227
+ * Pnpm configuration file
3228
+ */
3229
+ static readonly pnpmConfigFilename: string;
3089
3230
  /**
3090
3231
  * Rush plugins configuration file name.
3091
3232
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.78.1",
3
+ "version": "5.79.0",
4
4
  "description": "An API for interacting with the Rush engine",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "tapable": "2.2.1"
18
18
  },
19
19
  "devDependencies": {
20
- "@microsoft/rush-lib": "5.78.1",
20
+ "@microsoft/rush-lib": "5.79.0",
21
21
  "@rushstack/eslint-config": "3.0.1",
22
22
  "@rushstack/heft": "0.47.10",
23
23
  "@rushstack/heft-node-rig": "1.10.12",