sfdx-git-delta 7.4.2 → 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 +49 -15
- package/lib/constant/metadataConstants.d.ts +2 -0
- package/lib/constant/metadataConstants.js +11 -1
- package/lib/constant/metadataConstants.js.map +1 -1
- package/lib/main.js +13 -0
- package/lib/main.js.map +1 -1
- package/lib/service/inFileHandler.d.ts +1 -0
- package/lib/service/inFileHandler.js +17 -1
- package/lib/service/inFileHandler.js.map +1 -1
- package/lib/utils/changeSet.d.ts +4 -0
- package/lib/utils/changeSet.js +51 -5
- package/lib/utils/changeSet.js.map +1 -1
- package/lib/utils/ignoreHelper.js +0 -5
- package/lib/utils/ignoreHelper.js.map +1 -1
- package/lib/utils/renameResolver.d.ts +7 -3
- package/lib/utils/renameResolver.js +19 -7
- package/lib/utils/renameResolver.js.map +1 -1
- package/messages/delta.md +4 -0
- package/oclif.manifest.json +1 -1
- package/package.json +27 -19
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
|
-
- [
|
|
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.
|
|
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,12 +480,20 @@ $ 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.
|
|
487
488
|
|
|
488
489
|
Note: when only using the `--ignore-file [-i]` parameter (and not `--ignore-destructive-file [-D]`) the plugin will apply it to added/changed/deleted elements.
|
|
489
490
|
|
|
491
|
+
Independently of any ignore file, SGD also keeps components of a type the Metadata API cannot delete — today only `RecordType` — out of `destructiveChanges.xml` on every route: an ordinary deletion, a rename, and `--include-destructive-file` alike. A destructive entry for one of these is a component failure (`Cannot delete record type through API`) that fails the whole deployment. The component is not deleted anywhere; it is only omitted from the manifest SGD would otherwise emit, so it remains in the target org until you remove it by hand in Setup. SGD raises a warning naming the type and the affected members:
|
|
492
|
+
|
|
493
|
+
```
|
|
494
|
+
Warning: The Metadata API cannot delete 'RecordType' components, so destructiveChanges.xml omits 'Account.Alpha'. Remove them from the target org manually in Setup.
|
|
495
|
+
```
|
|
496
|
+
|
|
490
497
|
### Explicitly including specific files for inclusion or destruction regardless of diff
|
|
491
498
|
|
|
492
499
|
The `--include-file [-n]` parameter allows you to specify a file based on [gitignore glob matching](https://git-scm.com/docs/gitignore) to include specific files. Regardless whether they appears in the diff or not.
|
|
@@ -569,12 +576,39 @@ sf sgd source delta --from baseline --to HEAD --output-dir ./delta --generate-de
|
|
|
569
576
|
> See [Scoping delta generation to specific folders](#scoping-delta-generation-to-specific-folders) for the `--source-dir` behavior.
|
|
570
577
|
> Prefer `--ignore-file [-i]` when you only need to skip a few known paths (e.g. `**/.claude/**`) without coupling to `sfdx-project.json`.
|
|
571
578
|
|
|
572
|
-
###
|
|
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.
|
|
593
|
+
|
|
594
|
+
#### 2. Resolve tests from annotations with apex-test-list
|
|
573
595
|
|
|
574
|
-
|
|
575
|
-
To cover this need, parse the content of the package.xml file produced by SGD using [yq](https://github.com/kislyuk/yq):
|
|
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:
|
|
576
597
|
|
|
577
|
-
|
|
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.
|
|
578
612
|
|
|
579
613
|
### Review-centric: list components by change kind
|
|
580
614
|
|
|
@@ -603,7 +637,14 @@ Produces (bare form example) `incremental/changes.manifest.json`. Setting `--cha
|
|
|
603
637
|
}
|
|
604
638
|
```
|
|
605
639
|
|
|
606
|
-
`package.xml` still lists `NewName` and `destructiveChanges.xml` still lists `OldName` for renames — the deployment contract is unchanged.
|
|
640
|
+
`package.xml` still lists `NewName` and `destructiveChanges.xml` still lists `OldName` for renames — the deployment contract is unchanged, and the manifests are identical whether or not `--changes-manifest` is set. Both sides of a rename still pass through the ignore files: a `from` path covered by `--ignore-destructive-file` keeps its member out of `destructiveChanges.xml`, a `to` path covered by `--ignore-file` keeps its member out of `package.xml`, and the change is then reported in `changes.manifest.json` as a plain addition or deletion rather than a rename: an ignored `from` leaves `to` in the `add` bucket, an ignored `to` leaves `from` in the `delete` bucket. When the move keeps the component name, the deletion is cancelled against the ignored addition and neither side is reported at all.
|
|
641
|
+
|
|
642
|
+
Two default-configuration behaviours changed with no dedicated changelog entry — the kind of thing you notice the first time you diff a JSON manifest across the upgrade:
|
|
643
|
+
|
|
644
|
+
- a **renamed** record type is still reported in the `rename` bucket, but its former name is no longer emitted into `destructiveChanges.xml` — that entry previously made the whole deployment fail;
|
|
645
|
+
- a **deleted** record type now appears in the `delete` bucket, where previously it appeared nowhere.
|
|
646
|
+
|
|
647
|
+
Both are consequences of the undeletable-component warning described above: `RecordType` (today's only such type) is kept out of `destructiveChanges.xml`, but still reported in `changes.manifest.json` for review.
|
|
607
648
|
|
|
608
649
|
Works for file-backed metadata, in-file sub-components (CustomLabels members, Workflow rules, etc.), decomposed metadata, in-resource bundles and in-folder metadata.
|
|
609
650
|
|
|
@@ -766,13 +807,6 @@ example:
|
|
|
766
807
|
DEBUG=sfdx-git-delta SF_LOG_LEVEL=trace sf sgd source delta --from "HEAD~1" --to "HEAD"
|
|
767
808
|
```
|
|
768
809
|
|
|
769
|
-
## Complementary Plugins
|
|
770
|
-
|
|
771
|
-
These plugins have been designed to work with SGD:
|
|
772
|
-
|
|
773
|
-
- [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.
|
|
774
|
-
- [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.
|
|
775
|
-
|
|
776
810
|
## Changelog
|
|
777
811
|
|
|
778
812
|
[changelog.md](CHANGELOG.md) is available for consultation.
|
|
@@ -24,10 +24,12 @@ export declare const OBJECT_TRANSLATION_META_XML_SUFFIX = "objectTranslation-met
|
|
|
24
24
|
export declare const OBJECT_TRANSLATION_TYPE = "CustomObjectTranslation";
|
|
25
25
|
export declare const OBJECT_TYPE = "CustomObject";
|
|
26
26
|
export declare const PERMISSIONSET_TYPE = "PermissionSet";
|
|
27
|
+
export declare const RECORD_TYPE = "RecordType";
|
|
27
28
|
export declare const REPORT_TYPE = "Report";
|
|
28
29
|
export declare const FOLDER_MOVE_ON_DEPLOY_TYPES: ReadonlySet<string>;
|
|
29
30
|
export declare const SHARING_RULE_TYPE = "SharingRules";
|
|
30
31
|
export declare const SUB_OBJECT_TYPES: string[];
|
|
32
|
+
export declare const UNDELETABLE_TYPES: ReadonlySet<string>;
|
|
31
33
|
export declare const TRANSLATION_EXTENSION = "translation";
|
|
32
34
|
export declare const TRANSLATION_TYPE = "Translations";
|
|
33
35
|
export declare const VIRTUAL_BOT_TYPE = "VirtualBot";
|
|
@@ -40,6 +40,7 @@ export const OBJECT_TRANSLATION_META_XML_SUFFIX = `objectTranslation${METAFILE_S
|
|
|
40
40
|
export const OBJECT_TRANSLATION_TYPE = 'CustomObjectTranslation';
|
|
41
41
|
export const OBJECT_TYPE = 'CustomObject';
|
|
42
42
|
export const PERMISSIONSET_TYPE = 'PermissionSet';
|
|
43
|
+
export const RECORD_TYPE = 'RecordType';
|
|
43
44
|
export const REPORT_TYPE = 'Report';
|
|
44
45
|
// The Metadata API relocates these when the package lists them under a new
|
|
45
46
|
// folder, so their former path must not be destroyed alongside the move.
|
|
@@ -58,7 +59,7 @@ export const SUB_OBJECT_TYPES = [
|
|
|
58
59
|
'FieldSet',
|
|
59
60
|
'Index',
|
|
60
61
|
'ListView',
|
|
61
|
-
|
|
62
|
+
RECORD_TYPE,
|
|
62
63
|
'SharingCriteriaRule',
|
|
63
64
|
'SharingGuestRule',
|
|
64
65
|
'SharingOwnerRule',
|
|
@@ -76,6 +77,15 @@ export const SUB_OBJECT_TYPES = [
|
|
|
76
77
|
'WorkflowSend',
|
|
77
78
|
'WorkflowTask',
|
|
78
79
|
];
|
|
80
|
+
// The Metadata API cannot delete these, so a destructive entry for one is a
|
|
81
|
+
// component failure that fails the whole deploy: the destructive view omits
|
|
82
|
+
// them and a warning names them instead.
|
|
83
|
+
// See: https://github.com/scolladon/sfdx-git-delta/wiki/Metadata-Specificities#recordtype-destructive-changes
|
|
84
|
+
// Must stay disjoint from FOLDER_MOVE_ON_DEPLOY_TYPES, BOT_TYPE and
|
|
85
|
+
// BOT_VERSION_TYPE: undeletableDeletions() reports from the pre-suppressor
|
|
86
|
+
// view, so an overlap would let the warning name a member those suppressors
|
|
87
|
+
// drop anyway, and the manifest and the warning would disagree.
|
|
88
|
+
export const UNDELETABLE_TYPES = new Set([RECORD_TYPE]);
|
|
79
89
|
export const TRANSLATION_EXTENSION = 'translation';
|
|
80
90
|
export const TRANSLATION_TYPE = 'Translations';
|
|
81
91
|
export const VIRTUAL_BOT_TYPE = 'VirtualBot';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataConstants.js","sourceRoot":"","sources":["../../src/constant/metadataConstants.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAA;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAA;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAA;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AACzC,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAAmB,CAAA;AAC7D,+EAA+E;AAC/E,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IAChD,QAAQ;IACR,0BAA0B;IAC1B,cAAc;CACf,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAA;AACvE,wDAAwD;AACxD,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAA;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAA;AAC1D,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAA;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAA;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAA;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC,GAAG,eAAe,GAAG,CAAC,CAAA;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,2BAA2B,CAAA;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAA;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,eAAe,GAAG,CAAC,CAAA;AAC3D,MAAM,CAAC,MAAM,kCAAkC,GAAG,oBAAoB,eAAe,EAAE,CAAA;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAA;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAA;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA;AACnC,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,4EAA4E;AAC5E,kCAAkC;AAClC,MAAM,CAAC,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IACtE,WAAW;IACX,cAAc;CACf,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,eAAe;IACf,aAAa;IACb,UAAU;IACV,OAAO;IACP,UAAU;IACV,
|
|
1
|
+
{"version":3,"file":"metadataConstants.js","sourceRoot":"","sources":["../../src/constant/metadataConstants.ts"],"names":[],"mappings":"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"}
|
package/lib/main.js
CHANGED
|
@@ -22,6 +22,18 @@ const collectLines = async (lines) => {
|
|
|
22
22
|
}
|
|
23
23
|
return materialized;
|
|
24
24
|
};
|
|
25
|
+
// The Metadata API refuses to delete these, so the destructive manifest
|
|
26
|
+
// omits them — but the components really are gone from the source and
|
|
27
|
+
// stay in the org, so the user has to remove them by hand. One warning
|
|
28
|
+
// per type, listing its members: fifty orphaned record types must not
|
|
29
|
+
// produce fifty lines.
|
|
30
|
+
const undeletableWarnings = (changes, messages) => [...changes.undeletableDeletions()].map(([type, members]) => new Error(messages.getMessage('warning.UndeletableComponentsOmitted', [
|
|
31
|
+
type,
|
|
32
|
+
// Sanitize each member before joining: the length cap in
|
|
33
|
+
// sanitizeForMessage applies per value, so a single long member
|
|
34
|
+
// name would otherwise silently elide every member after it.
|
|
35
|
+
[...members].map(sanitizeForMessage).join(', '),
|
|
36
|
+
])));
|
|
25
37
|
export default async (configInput) => {
|
|
26
38
|
// Stryker disable next-line StringLiteral -- equivalent: log content is observability only; tests assert on the returned Work, not lazy log lines
|
|
27
39
|
Logger.trace('main: entry');
|
|
@@ -127,6 +139,7 @@ export default async (configInput) => {
|
|
|
127
139
|
...sourceScopeWarnings,
|
|
128
140
|
...ignoredMoveWarnings,
|
|
129
141
|
...treeIndexWarnings,
|
|
142
|
+
...undeletableWarnings(changes, messages),
|
|
130
143
|
],
|
|
131
144
|
};
|
|
132
145
|
// Stryker disable next-line StringLiteral -- equivalent: log content is observability only
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,mBAAmB,MAAM,kCAAkC,CAAA;AAIlE,OAAO,SAAS,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,WAAW,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,YAAY,GAAG,KAAK,EACxB,KAA4B,EACT,EAAE;IACrB,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,eAAe,KAAK,EAAE,WAAwB,EAAiB,EAAE;IAC/D,kJAAkJ;IAClJ,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,2FAA2F;IAC3F,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,mBAAmB,WAAW,EAAE,CAAC,CAAA;IAElD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAW,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC5D,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAA;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,eAAe,CAC9C,MAAM,EACN,UAAU,CACX,CAAC,cAAc,EAAE,CAAA;QAElB,MAAM,QAAQ,GAAuB,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAChE,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE3D,qEAAqE;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;QACxE,MAAM,YAAY,GAAG,kBAAkB;YACrC,CAAC,CAAC,MAAM,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAClD,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,KAAK,GAAG,YAAY,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAA;QAE1D,wEAAwE;QACxE,qEAAqE;QACrE,qEAAqE;QACrE,yEAAyE;QACzE,qEAAqE;QACrE,yEAAyE;QACzE,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,UAAU,GAAsB,YAAY;YAChD,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QACjB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB,CACnD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAC9B,MAAM,EACN,UAAU,CACX,CAAA;QACD,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QAEnD,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAE7C,2EAA2E;QAC3E,6EAA6E;QAC7E,uBAAuB;QACvB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA,CAAC,oBAAoB;QAE/E,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC/D,gEAAgE;QAChE,yEAAyE;QACzE,sEAAsE;QACtE,+BAA+B;QAC/B,MAAM,aAAa,GAAG,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CACzD,iBAAiB,CAAC,cAAc,EAAE,CACnC,CAAA;QACD,MAAM,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EAAE,gBAAgB,GAC3B,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;QAE7D,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAExE,+DAA+D;QAC/D,8DAA8D;QAC9D,iEAAiE;QACjE,iEAAiE;QACjE,kEAAkE;QAClE,sDAAsD;QACtD,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAA;QACrC,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,CACb,SAAkB,EAClB,GAAW,EACX,MAAsB,EACb,EAAE,CACX,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAElE,MAAM,eAAe,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,CAAA;QACpE,MAAM,mBAAmB,GAAG,MAAM,CAChC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAC/C,iCAAiC,EACjC,GAAG,EAAE,CAAC;YACJ,wDAAwD;YACxD,sDAAsD;YACtD,oDAAoD;YACpD,sCAAsC;YACtC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,kBAAkB,CAAC,aAAa,CAAC;YACjC,kBAAkB,CAAC,WAAW,CAAC;SAChC,CACF,CAAA;QAED,qEAAqE;QACrE,oEAAoE;QACpE,oEAAoE;QACpE,sEAAsE;QACtE,MAAM,YAAY,GAAG,iBAAiB,CAAC,2BAA2B,EAAE,CAAA;QACpE,MAAM,mBAAmB,GAAG,MAAM,CAChC,CAAC,CAAC,YAAY,EACd,iCAAiC;QACjC,0EAA0E;QAC1E,sEAAsE;QACtE,GAAG,EAAE,CAAC;YACJ,kBAAkB,CAAC,WAAW,CAAC;YAC/B,YAAa,CAAC,cAAc,CAAC,QAAQ,EAAE;SACxC,CACF,CAAA;QAED,sEAAsE;QACtE,+DAA+D;QAC/D,mEAAmE;QACnE,iEAAiE;QACjE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,MAAM,CAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAC7B,8BAA8B,EAC9B,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CACxC,CAAA;QAED,MAAM,IAAI,GAAS;YACjB,MAAM;YACN,OAAO;YACP,QAAQ,EAAE;gBACR,GAAG,cAAc;gBACjB,GAAG,gBAAgB;gBACnB,GAAG,iBAAiB;gBACpB,GAAG,mBAAmB;gBACtB,GAAG,mBAAmB;gBACtB,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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":"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"}
|
package/lib/utils/changeSet.d.ts
CHANGED
|
@@ -39,6 +39,10 @@ export default class ChangeSet {
|
|
|
39
39
|
private _recordRename;
|
|
40
40
|
forPackageManifest(): Manifest;
|
|
41
41
|
forDestructiveManifest(): Manifest;
|
|
42
|
+
private _orphanedDeletes;
|
|
43
|
+
private _stripUndeletableTypes;
|
|
44
|
+
undeletableDeletions(): Manifest;
|
|
45
|
+
private _withoutDeletedHolders;
|
|
42
46
|
private _suppressVersionsOfDeletedBots;
|
|
43
47
|
private _suppressMovedFolderMembers;
|
|
44
48
|
isEmpty(): boolean;
|
package/lib/utils/changeSet.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
import { DOT, PATH_SEP } from '../constant/fsConstants.js';
|
|
3
|
-
import { BOT_TYPE, BOT_VERSION_TYPE, FOLDER_MOVE_ON_DEPLOY_TYPES, } from '../constant/metadataConstants.js';
|
|
3
|
+
import { BOT_TYPE, BOT_VERSION_TYPE, FOLDER_MOVE_ON_DEPLOY_TYPES, OBJECT_TYPE, UNDELETABLE_TYPES, } from '../constant/metadataConstants.js';
|
|
4
4
|
import { ChangeKind, ManifestTarget, } from '../types/handlerResult.js';
|
|
5
5
|
const KEY_SEPARATOR = '\0';
|
|
6
6
|
const MANIFEST_TARGETS = [
|
|
@@ -103,12 +103,58 @@ export default class ChangeSet {
|
|
|
103
103
|
]);
|
|
104
104
|
}
|
|
105
105
|
forDestructiveManifest() {
|
|
106
|
-
const
|
|
106
|
+
const packaged = this.forPackageManifest();
|
|
107
|
+
return this._suppressVersionsOfDeletedBots(this._suppressMovedFolderMembers(this._stripUndeletableTypes(this._orphanedDeletes(packaged)), packaged));
|
|
108
|
+
}
|
|
109
|
+
// Everything the destructive view would carry before any suppressor runs:
|
|
110
|
+
// the destructive-target members unioned with the rename sources, minus
|
|
111
|
+
// whatever the package view already covers. Extracted because the
|
|
112
|
+
// undeletable-type strip and its reporting query must agree on exactly
|
|
113
|
+
// this input.
|
|
114
|
+
_orphanedDeletes(packaged) {
|
|
115
|
+
return this._subtractByType(this._unionByType([
|
|
107
116
|
this.byTarget[ManifestTarget.DestructiveChanges],
|
|
108
117
|
this._renameSourcesByType(),
|
|
109
|
-
]);
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
]), packaged);
|
|
119
|
+
}
|
|
120
|
+
// The Metadata API refuses to delete these types, and one such member
|
|
121
|
+
// fails the whole deploy — so the destructive view drops the type
|
|
122
|
+
// wholesale. The review view (byChangeKind) deliberately keeps it,
|
|
123
|
+
// mirroring _suppressVersionsOfDeletedBots: the file really was deleted.
|
|
124
|
+
_stripUndeletableTypes(deletes) {
|
|
125
|
+
const result = new Map(deletes);
|
|
126
|
+
for (const type of UNDELETABLE_TYPES)
|
|
127
|
+
result.delete(type);
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
// Members omitted from the destructive view because their type cannot be
|
|
131
|
+
// deleted through the Metadata API, and which therefore need removing by
|
|
132
|
+
// hand. Reads the same input the strip consumes, so a member the package
|
|
133
|
+
// view already covers is neither stripped nor reported here. A query,
|
|
134
|
+
// never an emitter: main.ts turns the result into a warning.
|
|
135
|
+
undeletableDeletions() {
|
|
136
|
+
const orphaned = this._orphanedDeletes(this.forPackageManifest());
|
|
137
|
+
const deletedHolders = orphaned.get(OBJECT_TYPE);
|
|
138
|
+
const result = new Map();
|
|
139
|
+
for (const type of UNDELETABLE_TYPES) {
|
|
140
|
+
const members = orphaned.get(type);
|
|
141
|
+
if (!members)
|
|
142
|
+
continue;
|
|
143
|
+
const orphans = this._withoutDeletedHolders(members, deletedHolders);
|
|
144
|
+
if (orphans.size > 0)
|
|
145
|
+
result.set(type, orphans);
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
// A deleted CustomObject takes its record types with it, so a member whose
|
|
150
|
+
// holder the same deploy destroys needs no manual cleanup and must not be
|
|
151
|
+
// reported. Same shape as _suppressVersionsOfDeletedBots: the member is
|
|
152
|
+
// `<holder>.<name>` and an API name cannot contain a dot, so the segment
|
|
153
|
+
// before the first one names the holder.
|
|
154
|
+
_withoutDeletedHolders(members, deletedHolders) {
|
|
155
|
+
if (!deletedHolders?.size)
|
|
156
|
+
return new Set(members);
|
|
157
|
+
return new Set([...members].filter(member => !deletedHolders.has(member.split(DOT)[0])));
|
|
112
158
|
}
|
|
113
159
|
// A deleted Bot takes its versions with it, so a BotVersion listed beside
|
|
114
160
|
// its own deleted parent is redundant. A BotVersion member is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeSet.js","sourceRoot":"","sources":["../../src/utils/changeSet.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"changeSet.js","sourceRoot":"","sources":["../../src/utils/changeSet.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,6 @@ import ignore from 'ignore';
|
|
|
8
8
|
import { ADDITION, DELETION, GIT_DIFF_TYPE_REGEX, MODIFICATION, } from '../constant/gitConstants.js';
|
|
9
9
|
import { readFile } from './fsUtils.js';
|
|
10
10
|
import { log } from './LoggingDecorator.js';
|
|
11
|
-
// RATIONALE: Why are recordTypes excluded from destructive changes?
|
|
12
|
-
// The Metadata API does not support deleting RecordType via destructiveChanges.xml.
|
|
13
|
-
// See: https://github.com/scolladon/sfdx-git-delta/wiki/Metadata-Specificities#recordtype-destructive-changes
|
|
14
|
-
const BASE_DESTRUCTIVE_IGNORE = ['recordTypes/'];
|
|
15
11
|
export class IgnoreHelper {
|
|
16
12
|
globalIgnore;
|
|
17
13
|
destructiveIgnore;
|
|
@@ -49,7 +45,6 @@ export class IgnoreHelper {
|
|
|
49
45
|
const destructiveIgnore = await _buildIgnore(
|
|
50
46
|
// Stryker disable next-line ConditionalExpression,LogicalOperator -- equivalent: ignoreDestructive falls back to the global ignorePath when not set; flipping || to && would only use the destructive path when global is also set, but the cached singleton observable behavior remains stable for the test surface that always provides one of the two
|
|
51
47
|
ignoreDestructive || ignorePath);
|
|
52
|
-
destructiveIgnore.add(BASE_DESTRUCTIVE_IGNORE);
|
|
53
48
|
IgnoreHelper.ignoreInstance = new IgnoreHelper(globalIgnore, destructiveIgnore);
|
|
54
49
|
}
|
|
55
50
|
return IgnoreHelper.ignoreInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignoreHelper.js","sourceRoot":"","sources":["../../src/utils/ignoreHelper.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAkB,MAAM,QAAQ,CAAA;AAEvC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,
|
|
1
|
+
{"version":3,"file":"ignoreHelper.js","sourceRoot":"","sources":["../../src/utils/ignoreHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,15 @@ import type { RenamePathPair } from './repoGitDiff.js';
|
|
|
6
6
|
* `RenameTriple` values by re-using the handler machinery to resolve each
|
|
7
7
|
* side to its Salesforce (type, member).
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
11
|
-
*
|
|
9
|
+
* The `from` side is gated by the destructive ignore and the `to` side by
|
|
10
|
+
* the global ignore; a pair rejected on either side yields no triple,
|
|
11
|
+
* degrading to the add/delete shape the handler pipeline already produces.
|
|
12
|
+
* Pairs where metadata resolution fails (unknown type) or where the from/to
|
|
13
|
+
* side land on the same component are skipped too — those reduce to normal
|
|
14
|
+
* add/delete or no-ops already covered by the handler pipeline.
|
|
12
15
|
*/
|
|
13
16
|
export default class RenameResolver {
|
|
17
|
+
private readonly config;
|
|
14
18
|
private readonly factory;
|
|
15
19
|
constructor(ctx: RunContext);
|
|
16
20
|
resolve(pairs: readonly RenamePathPair[]): Promise<readonly RenameTriple[]>;
|
|
@@ -9,6 +9,7 @@ import { TAB } from '../constant/cliConstants.js';
|
|
|
9
9
|
import { ADDITION, DELETION } from '../constant/gitConstants.js';
|
|
10
10
|
import TypeHandlerFactory from '../service/typeHandlerFactory.js';
|
|
11
11
|
import { getErrorMessage } from './errorUtils.js';
|
|
12
|
+
import { buildIgnoreHelper } from './ignoreHelper.js';
|
|
12
13
|
import { log } from './LoggingDecorator.js';
|
|
13
14
|
import { Logger, lazy } from './LoggingService.js';
|
|
14
15
|
/**
|
|
@@ -16,28 +17,39 @@ import { Logger, lazy } from './LoggingService.js';
|
|
|
16
17
|
* `RenameTriple` values by re-using the handler machinery to resolve each
|
|
17
18
|
* side to its Salesforce (type, member).
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
* the
|
|
21
|
-
*
|
|
20
|
+
* The `from` side is gated by the destructive ignore and the `to` side by
|
|
21
|
+
* the global ignore; a pair rejected on either side yields no triple,
|
|
22
|
+
* degrading to the add/delete shape the handler pipeline already produces.
|
|
23
|
+
* Pairs where metadata resolution fails (unknown type) or where the from/to
|
|
24
|
+
* side land on the same component are skipped too — those reduce to normal
|
|
25
|
+
* add/delete or no-ops already covered by the handler pipeline.
|
|
22
26
|
*/
|
|
23
27
|
export default class RenameResolver {
|
|
28
|
+
config;
|
|
24
29
|
factory;
|
|
25
30
|
constructor(ctx) {
|
|
31
|
+
this.config = ctx.config;
|
|
26
32
|
this.factory = new TypeHandlerFactory(ctx);
|
|
27
33
|
}
|
|
28
34
|
async resolve(pairs) {
|
|
35
|
+
const ignoreHelper = await buildIgnoreHelper(this.config);
|
|
29
36
|
const triples = [];
|
|
30
37
|
for (const pair of pairs) {
|
|
31
|
-
const resolved = await this._resolve(pair);
|
|
38
|
+
const resolved = await this._resolve(pair, ignoreHelper);
|
|
32
39
|
if (resolved)
|
|
33
40
|
triples.push(resolved);
|
|
34
41
|
}
|
|
35
42
|
return triples;
|
|
36
43
|
}
|
|
37
|
-
async _resolve(pair) {
|
|
44
|
+
async _resolve(pair, ignoreHelper) {
|
|
38
45
|
try {
|
|
39
|
-
const
|
|
40
|
-
const
|
|
46
|
+
const fromLine = `${DELETION}${TAB}${pair.fromPath}`;
|
|
47
|
+
const toLine = `${ADDITION}${TAB}${pair.toPath}`;
|
|
48
|
+
if (!ignoreHelper.keep(fromLine) || !ignoreHelper.keep(toLine)) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const fromHandler = await this.factory.getTypeHandler(fromLine);
|
|
52
|
+
const toHandler = await this.factory.getTypeHandler(toLine);
|
|
41
53
|
const from = fromHandler.getElementDescriptor();
|
|
42
54
|
const to = toHandler.getElementDescriptor();
|
|
43
55
|
if (from.type !== to.type)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renameResolver.js","sourceRoot":"","sources":["../../src/utils/renameResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAEZ,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"renameResolver.js","sourceRoot":"","sources":["../../src/utils/renameResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAEZ,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAChB,MAAM,CAAQ;IACd,OAAO,CAAoB;IAE5C,YAAY,GAAe;QACzB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,OAAO,CAClB,KAAgC;QAEhC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACxD,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,IAAoB,EACpB,YAA0B;QAE1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YACpD,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAA;YAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAA;YAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YACtC,gOAAgO;YAChO,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAA;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI;YACT,0IAA0I;YAC1I,IAAI,CAAA,qCAAqC,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF;AAtCc;IADZ,GAAG;6CAWH"}
|
package/messages/delta.md
CHANGED
|
@@ -186,3 +186,7 @@ Could not read the file list at '%s', so %s component(s) moved into an ignored d
|
|
|
186
186
|
# warning.TreeIndexUnavailable
|
|
187
187
|
|
|
188
188
|
Could not build the file tree index for '%s', so components that still exist there may be listed in destructiveChanges.xml as deleted. Check that the commit's tree objects are present locally (a partial clone created with --filter may not have them).
|
|
189
|
+
|
|
190
|
+
# warning.UndeletableComponentsOmitted
|
|
191
|
+
|
|
192
|
+
The Metadata API cannot delete '%s' components, so destructiveChanges.xml omits '%s'. Remove them from the target org manually in Setup.
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sfdx-git-delta",
|
|
3
|
-
"version": "7.4.
|
|
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.
|
|
52
|
-
"@salesforce/core": "9.2.
|
|
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.
|
|
54
|
+
"@salesforce/source-deploy-retrieve": "13.4.2",
|
|
55
55
|
"@scolladon/tsgit": "4.0.0",
|
|
56
|
-
"ignore": "7.0.
|
|
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.
|
|
63
|
-
"@commitlint/config-conventional": "21.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.
|
|
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.
|
|
71
|
-
"@vitest/coverage-v8": "5.0.
|
|
70
|
+
"@types/node": "26.6.3",
|
|
71
|
+
"@vitest/coverage-v8": "5.0.2",
|
|
72
72
|
"husky": "9.1.7",
|
|
73
|
-
"knip": "6.
|
|
74
|
-
"lint-staged": "17.
|
|
73
|
+
"knip": "6.38.0",
|
|
74
|
+
"lint-staged": "17.6.0",
|
|
75
75
|
"ls-engines": "0.10.1",
|
|
76
|
-
"oclif": "6.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.
|
|
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": {
|