sfdx-git-delta 7.4.3 → 7.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -55,13 +55,12 @@
55
55
  - [Explicitly including specific files for inclusion or destruction regardless of diff](#explicitly-including-specific-files-for-inclusion-or-destruction-regardless-of-diff)
56
56
  - [Scoping delta generation to a specific folder](#scoping-delta-generation-to-a-specific-folder)
57
57
  - [Scope delta generation to the sfdx-project.json package directories](#scope-delta-generation-to-the-sfdx-projectjson-package-directories)
58
- - [Generate a comma-separated list of the added and modified Apex classes](#generate-a-comma-separated-list-of-the-added-and-modified-apex-classes)
58
+ - [Run specified tests using the SGD manifest](#run-specified-tests-using-the-sgd-manifest)
59
59
  - [Condition deployment on package.xml and destructiveChange content](#condition-deployment-on-packagexml-and-destructivechange-content)
60
60
  - [Use the module in your own node application](#use-the-module-in-your-own-node-application)
61
61
  - [Handle flow deletion](#handle-flow-deletion)
62
62
  - [Decomposed Metadata Types](#decomposed-metadata-types)
63
63
  - [Debugging](#debugging)
64
- - [Complementary Plugins](#complementary-plugins)
65
64
  - [Changelog](#changelog)
66
65
  - [Built With](#built-with)
67
66
  - [Used by](#used-by)
@@ -214,7 +213,7 @@ FLAG DESCRIPTIONS
214
213
  `--source-dir force-app` does not match `nested/force-app/...`.
215
214
  ```
216
215
 
217
- _See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.4.3/src/commands/sgd/source/delta.ts)_
216
+ _See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.4.4/src/commands/sgd/source/delta.ts)_
218
217
  <!-- commandsstop -->
219
218
 
220
219
  ### Windows users
@@ -481,6 +480,8 @@ $ sf sgd source delta --from commit --ignore-destructive-file destructiveignore
481
480
 
482
481
  ```
483
482
 
483
+ `--ignore-destructive-file [-D]` also covers sub-components deleted inside a modified file (a label removed from `CustomLabels.labels-meta.xml`, a workflow rule removed from a `.workflow-meta.xml`, etc.), while the additions and modifications of that same file still reach `package.xml`. Patterns match file paths, so a pattern matching `CustomLabels.labels-meta.xml` keeps every label deleted from that file out of `destructiveChanges.xml`, not a single label.
484
+
484
485
  `--ignore-destructive-file [-D]` does not affect the move detection described above. Whether a moved addition can cancel its deletion is decided purely against the `--ignore-file [-i]` patterns — the same file that held the addition in the first place — never the destructive-only one. A permissive `--ignore-destructive-file [-D]` does not turn the move back into a destructive change: as long as the component has no file outside `--ignore-file [-i]`'s patterns at `--to`, the deletion still cancels.
485
486
 
486
487
  If SGD cannot read the file listing at `--to`, the move check is skipped, the deletion is reported as usual, and SGD emits a warning noting the check could not run.
@@ -575,12 +576,39 @@ sf sgd source delta --from baseline --to HEAD --output-dir ./delta --generate-de
575
576
  > See [Scoping delta generation to specific folders](#scoping-delta-generation-to-specific-folders) for the `--source-dir` behavior.
576
577
  > Prefer `--ignore-file [-i]` when you only need to skip a few known paths (e.g. `**/.claude/**`) without coupling to `sfdx-project.json`.
577
578
 
578
- ### Generate a comma-separated list of the added and modified Apex classes
579
+ ### Run specified tests using the SGD manifest
580
+
581
+ Depending on your testing strategy, you may want to run only the Apex tests related to the delta instead of every local test. Three options use the `package.xml` produced by SGD to drive the test selection:
582
+
583
+ #### 1. Build the test list from the added and modified Apex classes
584
+
585
+ [Generate a space-separated list of the added and modified Apex classes](https://github.com/scolladon/sfdx-git-delta/issues/126) by parsing the `package.xml` produced by SGD with [yq](https://github.com/kislyuk/yq):
586
+
587
+ ```sh
588
+ TESTS=$(xq . < package/package.xml | jq -r '.Package.types | [.] | flatten | map(select(.name=="ApexClass")) | .[] | .members | [.] | flatten | map(select(. | index("*") | not)) | unique | join(" ")')
589
+ sf project deploy start -x package/package.xml --test-level RunSpecifiedTests --tests $TESTS
590
+ ```
591
+
592
+ `--tests` expects a space-separated list, so `$TESTS` is left unquoted to expand into one argument per class. This only works when the delta contains the test classes themselves, or when your test class names can be derived from the changed classes.
579
593
 
580
- Depending on your testing strategy, [you may want to generate a comma-separated list of the added and modified Apex classes](https://github.com/scolladon/sfdx-git-delta/issues/126). This list can feed the `sf project deploy start --testlevel RunSpecifiedTests` command, for example.
581
- To cover this need, parse the content of the package.xml file produced by SGD using [yq](https://github.com/kislyuk/yq):
594
+ #### 2. Resolve tests from annotations with apex-test-list
582
595
 
583
- `xq . < package/package.xml | jq '.Package.types | [.] | flatten | map(select(.name=="ApexClass")) | .[] | .members | [.] | flatten | map(select(. | index("*") | not)) | unique | join(",")'`
596
+ The [apex-test-list](https://github.com/renatoliveira/apex-test-list) plugin (by [renatoliveira](https://github.com/renatoliveira)) reads `@Tests:` / `@TestSuites:` annotations in your Apex classes and resolves the tests to run for the components listed in the SGD manifest:
597
+
598
+ ```apex
599
+ // @Tests: AccountServiceTest, AccountTriggerTest
600
+ public class AccountService { }
601
+ ```
602
+
603
+ ```sh
604
+ echo y | sf plugins install apextestlist
605
+ sf sgd source delta --to "HEAD" --from "HEAD~1" --output-dir "."
606
+ sf project deploy start -x package/package.xml --test-level RunSpecifiedTests $(sf apextests list -x package/package.xml --format sf)
607
+ ```
608
+
609
+ #### 3. Let Salesforce pick with RunRelevantTests
610
+
611
+ Salesforce's [`RunRelevantTests`](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_run_relevant_tests.htm&release=260&type=5) test level (beta, Spring '26) analyzes the deployment payload server-side and runs only the tests relevant to it. Deploy the SGD manifest with it.
584
612
 
585
613
  ### Review-centric: list components by change kind
586
614
 
@@ -779,13 +807,6 @@ example:
779
807
  DEBUG=sfdx-git-delta SF_LOG_LEVEL=trace sf sgd source delta --from "HEAD~1" --to "HEAD"
780
808
  ```
781
809
 
782
- ## Complementary Plugins
783
-
784
- These plugins have been designed to work with SGD:
785
-
786
- - [apex-test-list](https://github.com/renatoliveira/apex-test-list) - Developer: [renatoliveira](https://github.com/renatoliveira) - This plugin determines the specified Apex tests by reading test annotations made anywhere inside your Apex classes. You can have this plugin scan the package.xml created by SGD to determine the required Apex tests to run during deployment.
787
- - [apex-tests-git-delta](https://github.com/mcarvin8/apex-tests-git-delta) - Developer: [mcarvin8](https://github.com/mcarvin8) - This plugin determines the specified Apex tests by reading the commit messages in the commit range. You can use the same `--from` and `--to` commit hashes when using SGD and apex-tests-git-delta to determine the required Apex tests to run during deployment.
788
-
789
810
  ## Changelog
790
811
 
791
812
  [changelog.md](CHANGELOG.md) is available for consultation.
@@ -15,6 +15,7 @@ export default class InFileHandler extends StandardHandler {
15
15
  type: string;
16
16
  member: string;
17
17
  }[]): void;
18
+ protected _keepsDestructiveChanges(): Promise<boolean>;
18
19
  protected _getQualifiedName(): string;
19
20
  protected _delegateFileCopy(): boolean;
20
21
  protected _shouldTreatDeletionAsDeletion(): boolean | undefined;
@@ -1,10 +1,13 @@
1
1
  'use strict';
2
2
  import { basename } from 'node:path/posix';
3
+ import { TAB } from '../constant/cliConstants.js';
3
4
  import { DOT } from '../constant/fsConstants.js';
5
+ import { DELETION, MODIFICATION } from '../constant/gitConstants.js';
4
6
  import { isPackable } from '../metadata/metadataManager.js';
5
7
  import { ChangeKind, CopyOperationKind, ManifestTarget, } from '../types/handlerResult.js';
6
8
  import { pushAll } from '../utils/arrayUtils.js';
7
9
  import { wrapError } from '../utils/errorUtils.js';
10
+ import { buildIgnoreHelper } from '../utils/ignoreHelper.js';
8
11
  import { Logger, lazy } from '../utils/LoggingService.js';
9
12
  import { MessageService } from '../utils/MessageService.js';
10
13
  import MetadataDiff from '../utils/metadataDiff/index.js';
@@ -34,7 +37,14 @@ export default class InFileHandler extends StandardHandler {
34
37
  const elements = [];
35
38
  const copies = [];
36
39
  const outcome = await this.metadataDiff.run(this.element.basePath);
37
- this._collectManifestFromComparison(elements, ManifestTarget.DestructiveChanges, ChangeKind.Delete, outcome.manifests.deleted);
40
+ // RATIONALE: members deleted inside a modified file arrive on an `M`
41
+ // line, which the upstream line filter checks against the global
42
+ // ignore only. The destructive ignore must still apply to them.
43
+ // Deletion lines are left alone: the main diff already filtered them,
44
+ // and the include pass's ones must win over the ignore.
45
+ if (await this._keepsDestructiveChanges()) {
46
+ this._collectManifestFromComparison(elements, ManifestTarget.DestructiveChanges, ChangeKind.Delete, outcome.manifests.deleted);
47
+ }
38
48
  this._collectManifestFromComparison(elements, ManifestTarget.Package, ChangeKind.Add, outcome.manifests.added);
39
49
  this._collectManifestFromComparison(elements, ManifestTarget.Package, ChangeKind.Modify, outcome.manifests.modified);
40
50
  // RATIONALE: InFile elements are not independently deployable; the
@@ -86,6 +96,12 @@ export default class InFileHandler extends StandardHandler {
86
96
  }
87
97
  }
88
98
  }
99
+ async _keepsDestructiveChanges() {
100
+ if (this.changeType !== MODIFICATION)
101
+ return true;
102
+ const ignoreHelper = await buildIgnoreHelper(this.config);
103
+ return ignoreHelper.keep(`${DELETION}${TAB}${this.element.basePath}`);
104
+ }
89
105
  _getQualifiedName() {
90
106
  return `${getRootType(this.element.basePath)}${DOT}`;
91
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inFileHandler.js","sourceRoot":"","sources":["../../src/service/inFileHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inFileHandler.js","sourceRoot":"","sources":["../../src/service/inFileHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAO3D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,GACf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,YAAY,MAAM,gCAAgC,CAAA;AAEzD,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAElD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IACrC,YAAY,CAAc;IAE7C,YAAY,UAAkB,EAAE,OAAwB,EAAE,GAAe;QACvE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACnE,CAAC;IAEe,KAAK,CAAC,eAAe;QACnC,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC3C,CAAC;IAEe,KAAK,CAAC,eAAe;QACnC,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE,CAAC;YAC1C,OAAO,MAAM,KAAK,CAAC,eAAe,EAAE,CAAA;QACtC,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;IACrC,CAAC;IAEe,KAAK,CAAC,mBAAmB;QACvC,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,qBAAqB;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAsB,EAAE,CAAA;YACtC,MAAM,MAAM,GAAoB,EAAE,CAAA;YAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAElE,qEAAqE;YACrE,iEAAiE;YACjE,gEAAgE;YAChE,sEAAsE;YACtE,wDAAwD;YACxD,IAAI,MAAM,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBAC1C,IAAI,CAAC,8BAA8B,CACjC,QAAQ,EACR,cAAc,CAAC,kBAAkB,EACjC,UAAU,CAAC,MAAM,EACjB,OAAO,CAAC,SAAS,CAAC,OAAO,CAC1B,CAAA;YACH,CAAC;YACD,IAAI,CAAC,8BAA8B,CACjC,QAAQ,EACR,cAAc,CAAC,OAAO,EACtB,UAAU,CAAC,GAAG,EACd,OAAO,CAAC,SAAS,CAAC,KAAK,CACxB,CAAA;YACD,IAAI,CAAC,8BAA8B,CACjC,QAAQ,EACR,cAAc,CAAC,OAAO,EACtB,UAAU,CAAC,MAAM,EACjB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAC3B,CAAA;YAED,mEAAmE;YACnE,iEAAiE;YACjE,2DAA2D;YAC3D,kEAAkE;YAClE,+DAA+D;YAC/D,8DAA8D;YAC9D,sBAAsB;YACtB,+FAA+F;YAC/F,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC3D,MAAM,eAAe,GACnB,MAAM,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5D,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC;YAED,oEAAoE;YACpE,qEAAqE;YACrE,sEAAsE;YACtE,2CAA2C;YAC3C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB,CAAC,eAAe;oBACvC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;YAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,sBAAsB,EAAE;gBAChE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI;gBAChB,IAAI,CAAC,MAAM,CAAC,EAAE;aACf,CAAC,CAAA;YACF,+MAA+M;YAC/M,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC,CAAA;YAC7B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAA;QAC5E,CAAC;IACH,CAAC;IAES,8BAA8B,CACtC,QAA2B,EAC3B,MAAsB,EACtB,UAAmB,EACnB,OAA2C;QAE3C,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACvC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,IAAI;oBACJ,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,MAAM,EAAE;oBAC9C,UAAU;iBACX,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,wBAAwB;QACtC,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QACjD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvE,CAAC;IAES,iBAAiB;QACzB,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAA;IACtD,CAAC;IAED,mPAAmP;IAChO,iBAAiB;QAClC,iHAAiH;QACjH,OAAO,KAAK,CAAA;IACd,CAAC;IAES,8BAA8B;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAA;IACpC,CAAC;IAES,kBAAkB;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -206,5 +206,5 @@
206
206
  ]
207
207
  }
208
208
  },
209
- "version": "7.4.3"
209
+ "version": "7.4.4"
210
210
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfdx-git-delta",
3
- "version": "7.4.3",
3
+ "version": "7.4.4",
4
4
  "description": "Generate the sfdx content in source format and destructive change from two git commits",
5
5
  "keywords": [
6
6
  "salesforce",
@@ -48,37 +48,37 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@oclif/core": "5.0.0",
52
- "@salesforce/core": "9.2.0",
51
+ "@oclif/core": "5.1.2",
52
+ "@salesforce/core": "9.2.2",
53
53
  "@salesforce/sf-plugins-core": "13.0.4",
54
- "@salesforce/source-deploy-retrieve": "13.4.0",
54
+ "@salesforce/source-deploy-retrieve": "13.4.2",
55
55
  "@scolladon/tsgit": "4.0.0",
56
- "ignore": "7.0.9",
56
+ "ignore": "7.0.10",
57
57
  "txml": "6.0.3",
58
58
  "zod": "4.6.5"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@biomejs/biome": "2.5.14",
62
- "@commitlint/cli": "21.2.2",
63
- "@commitlint/config-conventional": "21.2.2",
62
+ "@commitlint/cli": "21.2.3",
63
+ "@commitlint/config-conventional": "21.2.3",
64
64
  "@ls-lint/ls-lint": "2.3.1",
65
- "@oclif/plugin-help": "7.0.0",
65
+ "@oclif/plugin-help": "7.0.2",
66
66
  "@salesforce/cli-plugins-testkit": "5.3.66",
67
67
  "@salesforce/dev-config": "4.3.3",
68
68
  "@stryker-mutator/core": "10.0.0",
69
69
  "@stryker-mutator/vitest-runner": "10.0.0",
70
- "@types/node": "26.6.1",
71
- "@vitest/coverage-v8": "5.0.1",
70
+ "@types/node": "26.6.3",
71
+ "@vitest/coverage-v8": "5.0.2",
72
72
  "husky": "9.1.7",
73
- "knip": "6.37.0",
74
- "lint-staged": "17.5.1",
73
+ "knip": "6.38.0",
74
+ "lint-staged": "17.6.0",
75
75
  "ls-engines": "0.10.1",
76
- "oclif": "6.0.0",
76
+ "oclif": "6.0.2",
77
77
  "pkg-pr-new": "0.0.88",
78
78
  "shx": "0.4.0",
79
79
  "typescript": "7.0.2",
80
80
  "validate-branch-name": "1.3.2",
81
- "vitest": "5.0.1",
81
+ "vitest": "5.0.2",
82
82
  "wireit": "0.14.13"
83
83
  },
84
84
  "overrides": {
@@ -186,7 +186,8 @@
186
186
  "**/biome.json",
187
187
  "tsconfig.json",
188
188
  "__tests__/tsconfig.json",
189
- "tooling/tsconfig.json"
189
+ "tooling/tsconfig.json",
190
+ "__tests__/perf/tsconfig.json"
190
191
  ],
191
192
  "output": [],
192
193
  "dependencies": [
@@ -203,7 +204,8 @@
203
204
  "**/biome.json",
204
205
  "tsconfig.json",
205
206
  "__tests__/tsconfig.json",
206
- "tooling/tsconfig.json"
207
+ "tooling/tsconfig.json",
208
+ "__tests__/perf/tsconfig.json"
207
209
  ],
208
210
  "output": [],
209
211
  "dependencies": [
@@ -219,6 +221,7 @@
219
221
  "tsconfig.json",
220
222
  "__tests__/tsconfig.json",
221
223
  "tooling/tsconfig.json",
224
+ "__tests__/perf/tsconfig.json",
222
225
  "knip.config.ts"
223
226
  ],
224
227
  "output": [],
@@ -245,7 +248,7 @@
245
248
  "output": []
246
249
  },
247
250
  "lint:types": {
248
- "command": "tsc -p tooling && tsc -p __tests__",
251
+ "command": "tsc -p tooling && tsc -p __tests__ && tsc -p __tests__/perf",
249
252
  "files": [
250
253
  "tooling/**",
251
254
  "src/**/*.ts",
@@ -254,10 +257,14 @@
254
257
  "tsconfig.json",
255
258
  "__tests__/tsconfig.json",
256
259
  "tooling/tsconfig.json",
260
+ "__tests__/perf/tsconfig.json",
257
261
  "package.json",
258
262
  "package-lock.json"
259
263
  ],
260
- "output": []
264
+ "output": [],
265
+ "dependencies": [
266
+ "build"
267
+ ]
261
268
  },
262
269
  "prepack": {
263
270
  "command": "oclif manifest && oclif readme",
@@ -334,7 +341,8 @@
334
341
  "perf-memory.json"
335
342
  ],
336
343
  "dependencies": [
337
- "build"
344
+ "build",
345
+ "lint:types"
338
346
  ]
339
347
  },
340
348
  "test:mutation": {