@rushstack/rush-sdk 5.160.0 → 5.161.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.
@@ -301,6 +301,7 @@ export declare class CommonVersionsConfiguration {
301
301
  private _preferredVersions;
302
302
  private _allowedAlternativeVersions;
303
303
  private _modified;
304
+ private _commonVersionsJsonHasEnsureConsistentVersionsProperty;
304
305
  /**
305
306
  * Get the absolute file path of the common-versions.json file.
306
307
  */
@@ -2282,6 +2283,14 @@ export declare interface _IPnpmOptionsJson extends IPackageManagerOptionsJsonBas
2282
2283
  * {@inheritDoc PnpmOptionsConfiguration.autoInstallPeers}
2283
2284
  */
2284
2285
  autoInstallPeers?: boolean;
2286
+ /**
2287
+ * {@inheritDoc PnpmOptionsConfiguration.minimumReleaseAge}
2288
+ */
2289
+ minimumReleaseAge?: number;
2290
+ /**
2291
+ * {@inheritDoc PnpmOptionsConfiguration.minimumReleaseAgeExclude}
2292
+ */
2293
+ minimumReleaseAgeExclude?: string[];
2285
2294
  /**
2286
2295
  * {@inheritDoc PnpmOptionsConfiguration.alwaysInjectDependenciesFromOtherSubspaces}
2287
2296
  */
@@ -3419,6 +3428,31 @@ export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfi
3419
3428
  * The default value is same as PNPM default value. (In PNPM 8.x, this value is true)
3420
3429
  */
3421
3430
  readonly autoInstallPeers: boolean | undefined;
3431
+ /**
3432
+ * The minimum number of minutes that must pass after a version is published before pnpm will install it.
3433
+ * This setting helps reduce the risk of installing compromised packages, as malicious releases are typically
3434
+ * discovered and removed within a short time frame.
3435
+ *
3436
+ * @remarks
3437
+ * (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
3438
+ *
3439
+ * PNPM documentation: https://pnpm.io/settings#minimumreleaseage
3440
+ *
3441
+ * The default value is 0 (disabled).
3442
+ */
3443
+ readonly minimumReleaseAge: number | undefined;
3444
+ /**
3445
+ * List of package names or patterns that are excluded from the minimumReleaseAge check.
3446
+ * These packages will always install the newest version immediately, even if minimumReleaseAge is set.
3447
+ *
3448
+ * @remarks
3449
+ * (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
3450
+ *
3451
+ * PNPM documentation: https://pnpm.io/settings#minimumreleaseageexclude
3452
+ *
3453
+ * Example: ["webpack", "react", "\@myorg/*"]
3454
+ */
3455
+ readonly minimumReleaseAgeExclude: string[] | undefined;
3422
3456
  /**
3423
3457
  * If true, then `rush update` add injected install options for all cross-subspace
3424
3458
  * workspace dependencies, to avoid subspace doppelganger issue.
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.15"
8
+ "packageVersion": "7.53.1"
9
9
  }
10
10
  ]
11
11
  }
@@ -19,6 +19,7 @@ export interface IBaseCommandJson {
19
19
  export interface IBulkCommandJson extends IBaseCommandJson {
20
20
  commandKind: 'bulk';
21
21
  enableParallelism: boolean;
22
+ allowOversubscription?: boolean;
22
23
  ignoreDependencyOrder?: boolean;
23
24
  ignoreMissingScript?: boolean;
24
25
  incremental?: boolean;
@@ -33,6 +34,7 @@ export interface IBulkCommandJson extends IBaseCommandJson {
33
34
  export interface IPhasedCommandWithoutPhasesJson extends IBaseCommandJson {
34
35
  commandKind: 'phased';
35
36
  enableParallelism: boolean;
37
+ allowOversubscription?: boolean;
36
38
  incremental?: boolean;
37
39
  }
38
40
  /**
@@ -29,6 +29,7 @@ export declare class CommonVersionsConfiguration {
29
29
  private _preferredVersions;
30
30
  private _allowedAlternativeVersions;
31
31
  private _modified;
32
+ private _commonVersionsJsonHasEnsureConsistentVersionsProperty;
32
33
  /**
33
34
  * Get the absolute file path of the common-versions.json file.
34
35
  */
@@ -1,16 +1,13 @@
1
- import type { CommandLineFlagParameter, CommandLineStringListParameter } from '@rushstack/ts-command-line';
2
1
  import { BaseAddAndRemoveAction } from './BaseAddAndRemoveAction';
3
2
  import type { RushCommandLineParser } from '../RushCommandLineParser';
4
3
  import { type IPackageJsonUpdaterRushAddOptions } from '../../logic/PackageJsonUpdaterTypes';
4
+ export declare const MAKE_CONSISTENT_FLAG_NAME: '--make-consistent';
5
5
  export declare class AddAction extends BaseAddAndRemoveAction {
6
- protected readonly _allFlag: CommandLineFlagParameter;
7
- protected readonly _packageNameList: CommandLineStringListParameter;
8
6
  private readonly _exactFlag;
9
7
  private readonly _caretFlag;
10
8
  private readonly _devDependencyFlag;
11
9
  private readonly _peerDependencyFlag;
12
10
  private readonly _makeConsistentFlag;
13
- private readonly _variantParameter;
14
11
  constructor(parser: RushCommandLineParser);
15
12
  getUpdateOptionsAsync(): Promise<IPackageJsonUpdaterRushAddOptions>;
16
13
  }
@@ -1,7 +1,8 @@
1
- import type { CommandLineFlagParameter, CommandLineStringListParameter } from '@rushstack/ts-command-line';
1
+ import type { CommandLineFlagParameter, CommandLineStringListParameter, CommandLineStringParameter } from '@rushstack/ts-command-line';
2
2
  import { BaseRushAction, type IBaseRushActionOptions } from './BaseRushAction';
3
3
  import type { RushConfigurationProject } from '../../api/RushConfigurationProject';
4
4
  import type { IPackageForRushUpdate, IPackageJsonUpdaterRushBaseUpdateOptions } from '../../logic/PackageJsonUpdaterTypes';
5
+ export declare const PACKAGE_PARAMETER_NAME: '--package';
5
6
  export interface IBasePackageJsonUpdaterRushOptions {
6
7
  /**
7
8
  * The projects whose package.jsons should get updated
@@ -20,15 +21,20 @@ export interface IBasePackageJsonUpdaterRushOptions {
20
21
  */
21
22
  debugInstall: boolean;
22
23
  }
24
+ export interface IBaseAddAndRemoveActionOptions extends IBaseRushActionOptions {
25
+ allFlagDescription: string;
26
+ packageNameListParameterDescription: string;
27
+ }
23
28
  /**
24
29
  * This is the common base class for AddAction and RemoveAction.
25
30
  */
26
31
  export declare abstract class BaseAddAndRemoveAction extends BaseRushAction {
27
- protected abstract readonly _allFlag: CommandLineFlagParameter;
28
32
  protected readonly _skipUpdateFlag: CommandLineFlagParameter;
29
- protected abstract readonly _packageNameList: CommandLineStringListParameter;
33
+ protected readonly _packageNameListParameter: CommandLineStringListParameter;
34
+ protected readonly _allFlag: CommandLineFlagParameter;
35
+ protected readonly _variantParameter: CommandLineStringParameter;
30
36
  protected get specifiedPackageNameList(): readonly string[];
31
- constructor(options: IBaseRushActionOptions);
37
+ constructor(options: IBaseAddAndRemoveActionOptions);
32
38
  protected abstract getUpdateOptionsAsync(): Promise<IPackageJsonUpdaterRushBaseUpdateOptions>;
33
39
  protected getProjects(): RushConfigurationProject[];
34
40
  runAsync(): Promise<void>;
@@ -1,11 +1,7 @@
1
- import type { CommandLineFlagParameter, CommandLineStringListParameter } from '@rushstack/ts-command-line';
2
1
  import { BaseAddAndRemoveAction } from './BaseAddAndRemoveAction';
3
2
  import type { RushCommandLineParser } from '../RushCommandLineParser';
4
3
  import type { IPackageJsonUpdaterRushRemoveOptions } from '../../logic/PackageJsonUpdaterTypes';
5
4
  export declare class RemoveAction extends BaseAddAndRemoveAction {
6
- protected readonly _allFlag: CommandLineFlagParameter;
7
- protected readonly _packageNameList: CommandLineStringListParameter;
8
- private readonly _variantParameter;
9
5
  constructor(parser: RushCommandLineParser);
10
6
  getUpdateOptionsAsync(): Promise<IPackageJsonUpdaterRushRemoveOptions>;
11
7
  }
@@ -7,6 +7,7 @@ import type { IPhase, IPhasedCommandConfig } from '../../api/CommandLineConfigur
7
7
  */
8
8
  export interface IPhasedScriptActionOptions extends IBaseScriptActionOptions<IPhasedCommandConfig> {
9
9
  enableParallelism: boolean;
10
+ allowOversubscription: boolean;
10
11
  incremental: boolean;
11
12
  disableBuildCache: boolean;
12
13
  originalPhases: Set<IPhase>;
@@ -34,6 +35,7 @@ export declare class PhasedScriptAction extends BaseScriptAction<IPhasedCommandC
34
35
  readonly hooks: PhasedCommandHooks;
35
36
  readonly sessionAbortController: AbortController;
36
37
  private readonly _enableParallelism;
38
+ private readonly _allowOversubscription;
37
39
  private readonly _isIncrementalBuildAllowed;
38
40
  private readonly _disableBuildCache;
39
41
  private readonly _originalPhases;
@@ -9,6 +9,7 @@ export interface IOperationExecutionManagerOptions {
9
9
  quietMode: boolean;
10
10
  debugMode: boolean;
11
11
  parallelism: number;
12
+ allowOversubscription: boolean;
12
13
  inputsSnapshot?: IInputsSnapshot;
13
14
  destination?: TerminalWritable;
14
15
  beforeExecuteOperationAsync?: (operation: OperationExecutionRecord) => Promise<OperationStatus | undefined>;
@@ -27,6 +28,7 @@ export declare class OperationExecutionManager {
27
28
  private readonly _executionRecords;
28
29
  private readonly _quietMode;
29
30
  private readonly _parallelism;
31
+ private readonly _allowOversubscription;
30
32
  private readonly _totalOperations;
31
33
  private readonly _outputWritable;
32
34
  private readonly _colorsNewlinesTransform;
@@ -118,6 +118,14 @@ export interface IPnpmOptionsJson extends IPackageManagerOptionsJsonBase {
118
118
  * {@inheritDoc PnpmOptionsConfiguration.autoInstallPeers}
119
119
  */
120
120
  autoInstallPeers?: boolean;
121
+ /**
122
+ * {@inheritDoc PnpmOptionsConfiguration.minimumReleaseAge}
123
+ */
124
+ minimumReleaseAge?: number;
125
+ /**
126
+ * {@inheritDoc PnpmOptionsConfiguration.minimumReleaseAgeExclude}
127
+ */
128
+ minimumReleaseAgeExclude?: string[];
121
129
  /**
122
130
  * {@inheritDoc PnpmOptionsConfiguration.alwaysInjectDependenciesFromOtherSubspaces}
123
131
  */
@@ -229,6 +237,31 @@ export declare class PnpmOptionsConfiguration extends PackageManagerOptionsConfi
229
237
  * The default value is same as PNPM default value. (In PNPM 8.x, this value is true)
230
238
  */
231
239
  readonly autoInstallPeers: boolean | undefined;
240
+ /**
241
+ * The minimum number of minutes that must pass after a version is published before pnpm will install it.
242
+ * This setting helps reduce the risk of installing compromised packages, as malicious releases are typically
243
+ * discovered and removed within a short time frame.
244
+ *
245
+ * @remarks
246
+ * (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
247
+ *
248
+ * PNPM documentation: https://pnpm.io/settings#minimumreleaseage
249
+ *
250
+ * The default value is 0 (disabled).
251
+ */
252
+ readonly minimumReleaseAge: number | undefined;
253
+ /**
254
+ * List of package names or patterns that are excluded from the minimumReleaseAge check.
255
+ * These packages will always install the newest version immediately, even if minimumReleaseAge is set.
256
+ *
257
+ * @remarks
258
+ * (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
259
+ *
260
+ * PNPM documentation: https://pnpm.io/settings#minimumreleaseageexclude
261
+ *
262
+ * Example: ["webpack", "react", "\@myorg/*"]
263
+ */
264
+ readonly minimumReleaseAgeExclude: string[] | undefined;
232
265
  /**
233
266
  * If true, then `rush update` add injected install options for all cross-subspace
234
267
  * workspace dependencies, to avoid subspace doppelganger issue.
@@ -87,6 +87,12 @@ export interface IEnvironmentPathOptions {
87
87
  export interface IDisposable {
88
88
  dispose(): void;
89
89
  }
90
+ type OptionalKeys<T> = {
91
+ [K in keyof T]-?: {} extends Pick<T, K> ? K : never;
92
+ }[keyof T];
93
+ export type OptionalToUndefined<T> = Omit<T, OptionalKeys<T>> & {
94
+ [K in OptionalKeys<T>]-?: Exclude<T[K], undefined> | undefined;
95
+ };
90
96
  export declare class Utilities {
91
97
  static syncNpmrc: typeof syncNpmrc;
92
98
  private static _homeFolder;
@@ -193,4 +199,5 @@ export declare class Utilities {
193
199
  private static _executeCommandInternalAsync;
194
200
  private static _processResult;
195
201
  }
202
+ export {};
196
203
  //# sourceMappingURL=Utilities.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.160.0",
3
+ "version": "5.161.0",
4
4
  "description": "An API for interacting with the Rush engine",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,23 +36,23 @@
36
36
  "dependencies": {
37
37
  "@pnpm/lockfile.types": "~1.0.3",
38
38
  "tapable": "2.2.1",
39
- "@rushstack/lookup-by-path": "0.8.2",
40
- "@rushstack/node-core-library": "5.16.0",
41
- "@rushstack/package-deps-hash": "4.5.0",
42
- "@rushstack/terminal": "0.19.0"
39
+ "@rushstack/node-core-library": "5.17.0",
40
+ "@rushstack/lookup-by-path": "0.8.3",
41
+ "@rushstack/package-deps-hash": "4.5.1",
42
+ "@rushstack/terminal": "0.19.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/semver": "7.5.0",
46
46
  "@types/webpack-env": "1.18.8",
47
- "eslint": "~9.25.1",
47
+ "eslint": "~9.37.0",
48
48
  "webpack": "~5.98.0",
49
- "@rushstack/heft-webpack5-plugin": "1.1.0",
50
- "@microsoft/rush-lib": "5.160.0",
51
- "@rushstack/heft": "1.1.0",
52
- "@rushstack/webpack-preserve-dynamic-require-plugin": "0.11.111",
53
- "@rushstack/ts-command-line": "5.1.0",
49
+ "@microsoft/rush-lib": "5.161.0",
50
+ "@rushstack/heft": "1.1.1",
51
+ "@rushstack/heft-webpack5-plugin": "1.2.1",
52
+ "@rushstack/ts-command-line": "5.1.1",
54
53
  "local-node-rig": "1.0.0",
55
- "@rushstack/stream-collator": "4.1.112"
54
+ "@rushstack/webpack-preserve-dynamic-require-plugin": "0.11.112",
55
+ "@rushstack/stream-collator": "4.1.113"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "heft build --clean",