@rushstack/rush-sdk 5.75.0 → 5.77.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 +118 -25
  2. package/package.json +9 -9
@@ -517,12 +517,12 @@ export declare enum EnvironmentVariableNames {
517
517
  */
518
518
  RUSH_GLOBAL_FOLDER = "RUSH_GLOBAL_FOLDER",
519
519
  /**
520
- * Provides a credential for a remote build cache, if configured. Setting this environment variable
521
- * overrides whatever credential has been saved in the local cloud cache credentials using
522
- * `rush update-cloud-credentials`.
520
+ * Provides a credential for a remote build cache, if configured. This credential overrides any cached credentials.
523
521
  *
524
522
  * @remarks
525
- * This credential overrides any cached credentials.
523
+ * Setting this environment variable overrides whatever credential has been saved in the
524
+ * local cloud cache credentials using `rush update-cloud-credentials`.
525
+ *
526
526
  *
527
527
  * If Azure Blob Storage is used to store cache entries, this must be a SAS token serialized as query
528
528
  * parameters.
@@ -532,22 +532,28 @@ export declare enum EnvironmentVariableNames {
532
532
  RUSH_BUILD_CACHE_CREDENTIAL = "RUSH_BUILD_CACHE_CREDENTIAL",
533
533
  /**
534
534
  * Setting this environment variable overrides the value of `buildCacheEnabled` in the `build-cache.json`
535
- * configuration file. Specify `1` to enable the build cache or `0` to disable it.
535
+ * configuration file.
536
+ *
537
+ * @remarks
538
+ * Specify `1` to enable the build cache or `0` to disable it.
536
539
  *
537
540
  * If set to `0`, this is equivalent to passing the `--disable-build-cache` flag.
541
+ *
542
+ * If there is no build cache configured, then this environment variable is ignored.
538
543
  */
539
544
  RUSH_BUILD_CACHE_ENABLED = "RUSH_BUILD_CACHE_ENABLED",
540
545
  /**
541
- * Setting this environment variable overrides the value of `isCacheWriteAllowed` in the `build-cache.json`
542
- * configuration file. Specify `1` to allow cache write and `0` to disable it.
546
+ * Overrides the value of `isCacheWriteAllowed` in the `build-cache.json` configuration file. The value of this
547
+ * environment variable must be `1` (for true) or `0` (for false). If there is no build cache configured, then
548
+ * this environment variable is ignored.
543
549
  */
544
550
  RUSH_BUILD_CACHE_WRITE_ALLOWED = "RUSH_BUILD_CACHE_WRITE_ALLOWED",
545
551
  /**
546
- * Allows the git binary path to be explicitly specified.
552
+ * Explicitly specifies the path for the Git binary that is invoked by certain Rush operations.
547
553
  */
548
554
  RUSH_GIT_BINARY_PATH = "RUSH_GIT_BINARY_PATH",
549
555
  /**
550
- * Allows the tar binary path to be explicitly specified.
556
+ * Explicitly specifies the path for the `tar` binary that is invoked by certain Rush operations.
551
557
  */
552
558
  RUSH_TAR_BINARY_PATH = "RUSH_TAR_BINARY_PATH",
553
559
  /**
@@ -1240,6 +1246,11 @@ export declare interface _IPnpmOptionsJson extends IPackageManagerOptionsJsonBas
1240
1246
  useWorkspaces?: boolean;
1241
1247
  }
1242
1248
 
1249
+ declare interface IRawRepoState {
1250
+ projectState: Map<RushConfigurationProject, Map<string, string>> | undefined;
1251
+ rootDir: string;
1252
+ }
1253
+
1243
1254
  /**
1244
1255
  * Information about the currently executing command provided to plugins.
1245
1256
  * @beta
@@ -1288,7 +1299,8 @@ declare interface IRushConfigurationProjectJson {
1288
1299
  packageName: string;
1289
1300
  projectFolder: string;
1290
1301
  reviewCategory?: string;
1291
- cyclicDependencyProjects: string[];
1302
+ decoupledLocalDependencies: string[];
1303
+ cyclicDependencyProjects?: string[];
1292
1304
  versionPolicyName?: string;
1293
1305
  shouldPublish?: boolean;
1294
1306
  skipRushCheck?: boolean;
@@ -1373,8 +1385,8 @@ declare interface IRushRepositoryJsonMultipleUrls extends IRushRepositoryJsonBas
1373
1385
  /**
1374
1386
  * Remote url(s) of the repository. If a value is provided, \"rush change\" will
1375
1387
  * use one of these to find the right remote to compare against. Specifying multiple URLs
1376
- * is useful if a GitHub repository is renamed or for "<projectName>.visualstudio.com" vs
1377
- * "dev.azure.com/<projectName>" URLs.
1388
+ * is useful if a GitHub repository is renamed or for `<projectName>.visualstudio.com` versus
1389
+ * `dev.azure.com/<projectName>` URLs.
1378
1390
  */
1379
1391
  urls?: string[];
1380
1392
  }
@@ -1434,7 +1446,7 @@ export declare interface IStopwatchResult {
1434
1446
  export declare interface ITelemetryData {
1435
1447
  /**
1436
1448
  * Command name
1437
- * @example 'build'
1449
+ * @example `"build"`
1438
1450
  */
1439
1451
  readonly name: string;
1440
1452
  /**
@@ -1446,25 +1458,86 @@ export declare interface ITelemetryData {
1446
1458
  */
1447
1459
  readonly result: 'Succeeded' | 'Failed';
1448
1460
  /**
1449
- * The timestamp of the telemetry logging
1461
+ * The millisecond-resolution timestamp of the telemetry logging
1450
1462
  * @example 1648001893024
1451
1463
  */
1452
- readonly timestamp?: number;
1464
+ readonly timestampMs?: number;
1453
1465
  /**
1454
- * The platform the command was executed on, reads from process.platform
1455
- * @example darwin, win32, linux...
1466
+ * The platform the command was executed on, based on the Node.js `process.platform()` API
1467
+ * @example `"darwin"`, `"win32"`, `"linux"`
1456
1468
  */
1457
1469
  readonly platform?: string;
1458
1470
  /**
1459
- * The rush version
1460
- * @example 5.63.0
1471
+ * The Rush version
1472
+ * @example `5.63.0`
1461
1473
  */
1462
1474
  readonly rushVersion?: string;
1475
+ /**
1476
+ * Detailed information about the host machine.
1477
+ */
1478
+ readonly machineInfo?: ITelemetryMachineInfo;
1479
+ /**
1480
+ * Only applicable to phased commands. Provides detailed results by operation.
1481
+ * Keys are operation names, values contain result, timing information, and dependencies.
1482
+ */
1483
+ readonly operationResults?: Record<string, ITelemetryOperationResult>;
1463
1484
  readonly extraData?: {
1464
1485
  [key: string]: string | number | boolean;
1465
1486
  };
1466
1487
  }
1467
1488
 
1489
+ /**
1490
+ * @beta
1491
+ */
1492
+ export declare interface ITelemetryMachineInfo {
1493
+ /**
1494
+ * The CPU architecture
1495
+ * @example `"AMD64"`
1496
+ */
1497
+ machineArchitecture: string;
1498
+ /**
1499
+ * The CPU model
1500
+ * * @example `"AMD Ryzen 7 3700X 8-Core Processor"`
1501
+ */
1502
+ machineCpu: string;
1503
+ /**
1504
+ * The number of logical CPU cores.
1505
+ */
1506
+ machineCores: number;
1507
+ /**
1508
+ * The total amount of RAM on the machine, in MiB.
1509
+ */
1510
+ machineTotalMemoryMiB: number;
1511
+ /**
1512
+ * The amount of free RAM on the machine at the end of execution, in MiB.
1513
+ */
1514
+ machineFreeMemoryMiB: number;
1515
+ }
1516
+
1517
+ /**
1518
+ * @beta
1519
+ */
1520
+ export declare interface ITelemetryOperationResult {
1521
+ /**
1522
+ * The names of operations that this operation depends on.
1523
+ */
1524
+ dependencies: string[];
1525
+ /**
1526
+ * The status code for the operation.
1527
+ */
1528
+ result: string;
1529
+ /**
1530
+ * A timestamp in milliseconds (from `performance.now()`) when the operation started.
1531
+ * If the operation was blocked, will be `undefined`.
1532
+ */
1533
+ startTimestampMs?: number;
1534
+ /**
1535
+ * A timestamp in milliseconds (from `performance.now()`) when the operation finished.
1536
+ * If the operation was blocked, will be `undefined`.
1537
+ */
1538
+ endTimestampMs?: number;
1539
+ }
1540
+
1468
1541
  /**
1469
1542
  * Options for `RushConfiguration.tryFindRushJsonLocation`.
1470
1543
  * @public
@@ -2050,6 +2123,10 @@ export declare class ProjectChangeAnalyzer {
2050
2123
  * @internal
2051
2124
  */
2052
2125
  _tryGetProjectDependenciesAsync(project: RushConfigurationProject, terminal: ITerminal): Promise<Map<string, string> | undefined>;
2126
+ /**
2127
+ * @internal
2128
+ */
2129
+ _ensureInitialized(terminal: ITerminal): IRawRepoState | undefined;
2053
2130
  /**
2054
2131
  * The project state hash is calculated in the following way:
2055
2132
  * - Project dependencies are collected (see ProjectChangeAnalyzer.getPackageDeps)
@@ -2442,14 +2519,14 @@ export declare class RushConfiguration {
2442
2519
  * The minimum allowable folder depth for the projectFolder field in the rush.json file.
2443
2520
  * This setting provides a way for repository maintainers to discourage nesting of project folders
2444
2521
  * that makes the directory tree more difficult to navigate. The default value is 2,
2445
- * which implements a standard 2-level hierarchy of <categoryFolder>/<projectFolder>/package.json.
2522
+ * which implements a standard 2-level hierarchy of `<categoryFolder>/<projectFolder>/package.json`.
2446
2523
  */
2447
2524
  get projectFolderMinDepth(): number;
2448
2525
  /**
2449
2526
  * The maximum allowable folder depth for the projectFolder field in the rush.json file.
2450
2527
  * This setting provides a way for repository maintainers to discourage nesting of project folders
2451
2528
  * that makes the directory tree more difficult to navigate. The default value is 2,
2452
- * which implements on a standard convention of <categoryFolder>/<projectFolder>/package.json.
2529
+ * which implements on a standard convention of `<categoryFolder>/<projectFolder>/package.json`.
2453
2530
  */
2454
2531
  get projectFolderMaxDepth(): number;
2455
2532
  /**
@@ -2506,8 +2583,8 @@ export declare class RushConfiguration {
2506
2583
  /**
2507
2584
  * Remote URL(s) of the repository. If a value is provided, \"rush change\" will
2508
2585
  * use one of these to find the right remote to compare against. Specifying multiple URLs
2509
- * is useful if a GitHub repository is renamed or for "<projectName>.visualstudio.com" vs
2510
- * "dev.azure.com/<projectName>" URLs.
2586
+ * is useful if a GitHub repository is renamed or for `<projectName>.visualstudio.com` versus
2587
+ * `dev.azure.com/<projectName>` URLs.
2511
2588
  */
2512
2589
  get repositoryUrls(): string[];
2513
2590
  /**
@@ -2702,7 +2779,7 @@ export declare class RushConfigurationProject {
2702
2779
  private readonly _packageJsonEditor;
2703
2780
  private readonly _tempProjectName;
2704
2781
  private readonly _unscopedTempProjectName;
2705
- private readonly _cyclicDependencyProjects;
2782
+ private readonly _decoupledLocalDependencies;
2706
2783
  private readonly _versionPolicyName;
2707
2784
  private readonly _shouldPublish;
2708
2785
  private readonly _skipRushCheck;
@@ -2761,6 +2838,16 @@ export declare class RushConfigurationProject {
2761
2838
  *
2762
2839
  * These are package names that would be found by RushConfiguration.getProjectByName().
2763
2840
  */
2841
+ get decoupledLocalDependencies(): Set<string>;
2842
+ /**
2843
+ * A list of local projects that appear as devDependencies for this project, but cannot be
2844
+ * locally linked because it would create a cyclic dependency; instead, the last published
2845
+ * version will be installed in the Common folder.
2846
+ *
2847
+ * These are package names that would be found by RushConfiguration.getProjectByName().
2848
+ *
2849
+ * @deprecated Use `decoupledLocalDependencies` instead, as it better describes the purpose of the data.
2850
+ */
2764
2851
  get cyclicDependencyProjects(): Set<string>;
2765
2852
  /**
2766
2853
  * An array of projects within the Rush configuration which directly depend on this package.
@@ -2856,7 +2943,13 @@ export declare class RushConfigurationProject {
2856
2943
  */
2857
2944
  get isMainProject(): boolean;
2858
2945
  /**
2859
- * The set of tags applied to this project.
2946
+ * An optional set of custom tags that can be used to select this project.
2947
+ *
2948
+ * @remarks
2949
+ * For example, adding `my-custom-tag` will allow this project to be selected by the
2950
+ * command `rush list --only tag:my-custom-tag`. The tag name must be one or more words separated
2951
+ * by hyphens, where a word may contain lowercase letters, digits, and the period character.
2952
+ *
2860
2953
  * @beta
2861
2954
  */
2862
2955
  get tags(): ReadonlySet<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.75.0",
3
+ "version": "5.77.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.48.0",
15
+ "@rushstack/node-core-library": "3.51.1",
16
16
  "@types/node-fetch": "1.6.9",
17
17
  "tapable": "2.2.1"
18
18
  },
19
19
  "devDependencies": {
20
- "@microsoft/rush-lib": "5.75.0",
21
- "@rushstack/eslint-config": "2.6.2",
22
- "@rushstack/heft": "0.45.14",
23
- "@rushstack/heft-node-rig": "1.9.15",
24
- "@rushstack/stream-collator": "4.0.184",
25
- "@rushstack/ts-command-line": "4.12.1",
26
- "@rushstack/terminal": "0.3.53",
20
+ "@microsoft/rush-lib": "5.77.0",
21
+ "@rushstack/eslint-config": "3.0.0",
22
+ "@rushstack/heft": "0.47.5",
23
+ "@rushstack/heft-node-rig": "1.10.5",
24
+ "@rushstack/stream-collator": "4.0.198",
25
+ "@rushstack/ts-command-line": "4.12.2",
26
+ "@rushstack/terminal": "0.3.67",
27
27
  "@types/heft-jest": "1.0.1",
28
28
  "@types/semver": "7.3.5",
29
29
  "@types/webpack-env": "1.13.0"