sf-decomposer 6.15.0 → 6.16.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.
- package/CHANGELOG.md +14 -0
- package/HANDBOOK.md +27 -17
- package/README.md +94 -10
- package/lib/metadata/getMultiLevelDefault.d.ts +6 -0
- package/lib/metadata/getMultiLevelDefault.js +11 -0
- package/lib/metadata/getMultiLevelDefault.js.map +1 -0
- package/lib/metadata/multiLevelDefaults.d.ts +17 -0
- package/lib/metadata/multiLevelDefaults.js +30 -0
- package/lib/metadata/multiLevelDefaults.js.map +1 -0
- package/lib/service/decompose/decomposeFileHandler.js +5 -3
- package/lib/service/decompose/decomposeFileHandler.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@
|
|
|
5
5
|
|
|
6
6
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## [6.16.0](https://github.com/mcarvin8/sf-decomposer/compare/v6.15.1...v6.16.0) (2026-05-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **decompose:** apply multiLevel defaults to bot by default ([#426](https://github.com/mcarvin8/sf-decomposer/issues/426)) ([f824ffe](https://github.com/mcarvin8/sf-decomposer/commit/f824ffef439f7a00153a729330adbcdb31b816b9))
|
|
14
|
+
|
|
15
|
+
## [6.15.1](https://github.com/mcarvin8/sf-decomposer/compare/v6.15.0...v6.15.1) (2026-05-01)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **deps:** bump config-disassembler to 1.1.2 and harden perf suite ([#423](https://github.com/mcarvin8/sf-decomposer/issues/423)) ([a4aefe6](https://github.com/mcarvin8/sf-decomposer/commit/a4aefe64a3a2458d3cabfd23835c27045ac85941))
|
|
21
|
+
|
|
8
22
|
## [6.15.0](https://github.com/mcarvin8/sf-decomposer/compare/v6.14.0...v6.15.0) (2026-04-30)
|
|
9
23
|
|
|
10
24
|
|
package/HANDBOOK.md
CHANGED
|
@@ -32,7 +32,15 @@ Three knobs cover almost every case:
|
|
|
32
32
|
Hard rules the plugin always enforces (so you don't have to):
|
|
33
33
|
|
|
34
34
|
- `labels` and `loyaltyProgramSetup` are always treated as `unique-id` regardless of any override.
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
Built-in `multiLevel` defaults — applied automatically when `strategy` is `unique-id` and you do not supply your own `multiLevel` for that type. You can replace any of them by setting an explicit `multiLevel` on the override.
|
|
37
|
+
|
|
38
|
+
| Metadata type | Built-in `multiLevel` |
|
|
39
|
+
| --------------------- | ------------------------------------------------------------------- |
|
|
40
|
+
| `bot` | `["botDialogs:botDialogs:developerName", "botSteps:botSteps:type"]` |
|
|
41
|
+
| `loyaltyProgramSetup` | `"programProcesses:programProcesses:parameterName,ruleName"` |
|
|
42
|
+
|
|
43
|
+
The full registry lives in [`src/metadata/multiLevelDefaults.ts`](./src/metadata/multiLevelDefaults.ts).
|
|
36
44
|
|
|
37
45
|
Everything else in this handbook is opt-in.
|
|
38
46
|
|
|
@@ -49,22 +57,14 @@ Everything else in this handbook is opt-in.
|
|
|
49
57
|
|
|
50
58
|
A flat `unique-id` decomposition of a `BotVersion` produces one giant per-dialog file with hundreds of nested steps inside. That's only marginally easier to review than the original.
|
|
51
59
|
|
|
52
|
-
**
|
|
60
|
+
**The two-rule recipe — applied by default.** Under `strategy: unique-id` (the default) the plugin automatically applies:
|
|
53
61
|
|
|
54
62
|
```json
|
|
55
|
-
|
|
56
|
-
"metadataSuffixes": "bot",
|
|
57
|
-
"strategy": "unique-id",
|
|
58
|
-
"decomposedFormat": "xml",
|
|
59
|
-
"overrides": [
|
|
60
|
-
{
|
|
61
|
-
"metadataTypes": ["bot"],
|
|
62
|
-
"multiLevel": ["botDialogs:botDialogs:developerName", "botSteps:botSteps:type"]
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
}
|
|
63
|
+
"multiLevel": ["botDialogs:botDialogs:developerName", "botSteps:botSteps:type"]
|
|
66
64
|
```
|
|
67
65
|
|
|
66
|
+
to every `bot` you decompose. You don't need to add anything to `.sfdecomposer.config.json` for the canonical Bot layout — just run `sf decomposer decompose --metadata-type bot` and you get the structure documented below. Add an explicit `multiLevel` override only if you want a different layout (see "When to use a single rule instead" further down).
|
|
67
|
+
|
|
68
68
|
What this produces on disk for `Sample_Chat_Bot/v1.botVersion-meta.xml` (an Einstein chat bot from the plugin's own fixtures):
|
|
69
69
|
|
|
70
70
|
```
|
|
@@ -105,16 +105,26 @@ A few things worth knowing before you commit this:
|
|
|
105
105
|
- **Each step is one of two shapes**: a leaf `<hash>.botSteps-meta.xml` file when the step has no nested content (e.g. a `Wait` step), or a `<hash>/` directory containing `<hash>.xml` plus subdirectories for the nested content (e.g. a `Message` step with `<botMessages>`, a `Navigation` step with `<botNavigation>`, an Agentforce `Action` step with `<botFlowInvocation>`). Both shapes recompose back to identical `<botSteps>` XML.
|
|
106
106
|
- **The two rules do different things.** The outer `botDialogs` rule is what gives you per-dialog folders — that's the headline win for review-ability. The inner `botSteps` rule additionally splits each step's nested content out of the per-dialog file into per-step subdirectories. For small Einstein bots with shallow steps you can drop the inner rule and still get the dialog-level split; for heavier Agentforce bots the inner rule is the difference between a 50-line per-step subtree and a 500-line per-dialog file.
|
|
107
107
|
|
|
108
|
-
**When to use a single rule instead.** If your bots have shallow steps (most Einstein chat bots, or pre-Agentforce bots),
|
|
108
|
+
**When to use a single rule instead.** If your bots have shallow steps (most Einstein chat bots, or pre-Agentforce bots), you can override the default with a single outer rule:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"overrides": [{ "metadataTypes": ["bot"], "multiLevel": ["botDialogs:botDialogs:developerName"] }]
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Each dialog still gets its own folder, but steps live as flat `*.botSteps-meta.xml` files inside instead of per-type subdirectories. Recompose is byte-identical either way; the choice is purely about how granular you want the per-step diff to be. Your override fully replaces the built-in default — no merging.
|
|
109
117
|
|
|
110
|
-
> **Per-bot precision.**
|
|
118
|
+
> **Per-bot precision.** When one bot in your repo wants a different layout than the rest, scope the override to a single component:
|
|
111
119
|
>
|
|
112
120
|
> ```json
|
|
113
121
|
> {
|
|
114
|
-
> "components": ["bot:
|
|
115
|
-
> "multiLevel": ["botDialogs:botDialogs:developerName"
|
|
122
|
+
> "components": ["bot:Legacy_Chat_Bot"],
|
|
123
|
+
> "multiLevel": ["botDialogs:botDialogs:developerName"]
|
|
116
124
|
> }
|
|
117
125
|
> ```
|
|
126
|
+
>
|
|
127
|
+
> The default still applies to every other bot.
|
|
118
128
|
|
|
119
129
|
> **Agentforce vs Einstein.** Both share the `bot` suffix, so a single override entry covers both bot families. The structural difference (Agentforce uses richer `botFlowInvocation` and `genAi*` blocks where Einstein uses `botNavigation` and `mlIntents`) is invisible to this recipe — `multiLevel` rules only target the repeating sections that exist on each side. The plugin ships an `Internal_Copilot_Sample` fixture that exercises the Agentforce-style shape and an Einstein-style `Sample_Chat_Bot` fixture; both round-trip with the same recipe.
|
|
120
130
|
|
package/README.md
CHANGED
|
@@ -59,6 +59,8 @@ A Salesforce CLI plugin that **decomposes** large metadata XML files into smalle
|
|
|
59
59
|
sf decomposer decompose -m "flow" -m "labels" --postpurge
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
> Combine steps 2 & 3 by configuring the [hooks](#hooks).
|
|
63
|
+
|
|
62
64
|
4. **Add decomposed paths to [.forceignore](#forceignore)**
|
|
63
65
|
This is **required** so the Salesforce CLI does not treat decomposed files as source. Use the [sample .forceignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/examples/.forceignore) and adjust extensions for your chosen format (`.xml`, `.json`, `.yaml`, etc.).
|
|
64
66
|
|
|
@@ -78,6 +80,8 @@ A Salesforce CLI plugin that **decomposes** large metadata XML files into smalle
|
|
|
78
80
|
sf project deploy start -x "manifest/package.xml"
|
|
79
81
|
```
|
|
80
82
|
|
|
83
|
+
Or run the deploy command directly after configuring the [hooks](#hooks) to run the recompose automatically before deploying.
|
|
84
|
+
|
|
81
85
|
---
|
|
82
86
|
|
|
83
87
|
## Requirements
|
|
@@ -283,17 +287,57 @@ sf project deploy start -x "manifest/package.xml"
|
|
|
283
287
|
|
|
284
288
|
**Permission set – unique-id**
|
|
285
289
|
|
|
286
|
-
|
|
290
|
+
```
|
|
291
|
+
permissionsets/
|
|
292
|
+
└── HR_Admin/
|
|
293
|
+
├── HR_Admin.permissionset-meta.xml ← leaf properties (label, description, userLicense, ...)
|
|
294
|
+
├── .key_order.json ← preserves original element order
|
|
295
|
+
├── applicationVisibilities/
|
|
296
|
+
│ └── JobApps__Recruiting.applicationVisibilities-meta.xml
|
|
297
|
+
├── classAccesses/
|
|
298
|
+
│ └── Send_Email_Confirmation.classAccesses-meta.xml
|
|
299
|
+
├── fieldPermissions/
|
|
300
|
+
│ ├── Job_Request__c.SalaryPay__c.fieldPermissions-meta.xml
|
|
301
|
+
│ └── Job_Request__c.Salary__c.fieldPermissions-meta.xml
|
|
302
|
+
├── objectPermissions/
|
|
303
|
+
│ └── Job_Request__c.objectPermissions-meta.xml
|
|
304
|
+
├── pageAccesses/
|
|
305
|
+
│ └── Job_Request_Web_Form.pageAccesses-meta.xml
|
|
306
|
+
├── recordTypeVisibilities/
|
|
307
|
+
│ └── Recruiting.DevManager.recordTypeVisibilities-meta.xml
|
|
308
|
+
├── tabSettings/
|
|
309
|
+
│ └── Job_Request__c.tabSettings-meta.xml
|
|
310
|
+
└── userPermissions/
|
|
311
|
+
└── APIEnabled.userPermissions-meta.xml
|
|
312
|
+
```
|
|
287
313
|
|
|
288
314
|
**Permission set – grouped-by-tag**
|
|
289
315
|
|
|
290
|
-
|
|
316
|
+
```
|
|
317
|
+
permissionsets/
|
|
318
|
+
└── HR_Admin/
|
|
319
|
+
├── HR_Admin.permissionset-meta.xml ← leaf properties only
|
|
320
|
+
├── .key_order.json
|
|
321
|
+
├── applicationVisibilities.xml ← all applicationVisibilities entries
|
|
322
|
+
├── classAccesses.xml ← all classAccesses entries
|
|
323
|
+
├── fieldPermissions.xml ← all fieldPermissions entries
|
|
324
|
+
├── objectPermissions.xml
|
|
325
|
+
├── pageAccesses.xml
|
|
326
|
+
├── recordTypeVisibilities.xml
|
|
327
|
+
├── tabSettings.xml
|
|
328
|
+
└── userPermissions.xml
|
|
329
|
+
```
|
|
291
330
|
|
|
292
331
|
### Custom Labels Decomposition
|
|
293
332
|
|
|
294
333
|
Custom labels use only the **unique-id** strategy. If you pass `grouped-by-tag`, the plugin overrides to `unique-id` and continues. Grouping labels by tag would produce no difference from the original file since all elements share the same tag. Each label is written to its own file.
|
|
295
334
|
|
|
296
|
-
|
|
335
|
+
```
|
|
336
|
+
labels/
|
|
337
|
+
├── CustomLabels.labels-meta.xml ← original wrapper kept (empty after decompose)
|
|
338
|
+
├── quoteAuto.label-meta.xml ← one file per <labels> entry, named by fullName
|
|
339
|
+
└── quoteManual.label-meta.xml
|
|
340
|
+
```
|
|
297
341
|
|
|
298
342
|
### Additional Permission Set Decomposition
|
|
299
343
|
|
|
@@ -309,7 +353,22 @@ sf decomposer decompose -m "permissionset" -s "grouped-by-tag" -p
|
|
|
309
353
|
sf decomposer decompose -m "mutingpermissionset" -s "grouped-by-tag" -p
|
|
310
354
|
```
|
|
311
355
|
|
|
312
|
-
|
|
356
|
+
```
|
|
357
|
+
permissionsets/
|
|
358
|
+
└── HR_Admin/
|
|
359
|
+
├── HR_Admin.permissionset-meta.xml ← leaf properties
|
|
360
|
+
├── .key_order.json
|
|
361
|
+
├── applicationVisibilities.xml ← grouped-by-tag stays grouped
|
|
362
|
+
├── classAccesses.xml
|
|
363
|
+
├── pageAccesses.xml
|
|
364
|
+
├── recordTypeVisibilities.xml
|
|
365
|
+
├── tabSettings.xml
|
|
366
|
+
├── userPermissions.xml
|
|
367
|
+
├── fieldPermissions/ ← grouped per object (decompose-nested-permissions)
|
|
368
|
+
│ └── Job_Request__c.fieldPermissions-meta.xml
|
|
369
|
+
└── objectPermissions/ ← one file per object
|
|
370
|
+
└── Job_Request__c.objectPermissions-meta.xml
|
|
371
|
+
```
|
|
313
372
|
|
|
314
373
|
### Loyalty Program Setup Decomposition
|
|
315
374
|
|
|
@@ -320,7 +379,30 @@ sf decomposer decompose -m "mutingpermissionset" -s "grouped-by-tag" -p
|
|
|
320
379
|
|
|
321
380
|
> Recomposition for loyalty program setup removes decomposed files even without `--postpurge`. Use version control or CI to keep them if needed.
|
|
322
381
|
|
|
323
|
-
|
|
382
|
+
```
|
|
383
|
+
loyaltyProgramSetups/
|
|
384
|
+
└── Cloud_Kicks_Inner_Circle/
|
|
385
|
+
├── Cloud_Kicks_Inner_Circle.loyaltyProgramSetup-meta.xml ← leaf properties (e.g. label)
|
|
386
|
+
├── .key_order.json
|
|
387
|
+
├── .multi_level.json ← required for recompose; do not hand-edit
|
|
388
|
+
└── programProcesses/ ← one folder per process, named by processName
|
|
389
|
+
├── Manual Points Adjustments/
|
|
390
|
+
│ ├── Manual Points Adjustments.xml ← process leaf properties
|
|
391
|
+
│ ├── .key_order.json
|
|
392
|
+
│ ├── parameters/ ← one file per parameter, named by parameterName
|
|
393
|
+
│ │ ├── EA_PerAdjustmentRewardTracking.parameters-meta.xml
|
|
394
|
+
│ │ ├── EventType.parameters-meta.xml
|
|
395
|
+
│ │ └── ...
|
|
396
|
+
│ └── rules/ ← one file per rule, named by ruleName
|
|
397
|
+
│ ├── Bulk Voucher Upload.rules-meta.xml
|
|
398
|
+
│ ├── Finalize.rules-meta.xml
|
|
399
|
+
│ └── Set Up Step.rules-meta.xml
|
|
400
|
+
├── Member Enrollment Process/
|
|
401
|
+
│ └── ... ← same shape per process
|
|
402
|
+
└── ...
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
> **Tip:** This three-level layout (`programProcesses` → `parameters`/`rules`) is exactly the multi-level decomposition pattern. The same pattern powers Bots, Flexipages, and Layouts via opt-in `multiLevel` overrides — see the [admin handbook](https://github.com/mcarvin8/sf-decomposer/blob/main/HANDBOOK.md) for those recipes.
|
|
324
406
|
|
|
325
407
|
---
|
|
326
408
|
|
|
@@ -555,19 +637,21 @@ Within one scope, the `(file_pattern, root_to_strip)` pair must be unique across
|
|
|
555
637
|
```json
|
|
556
638
|
"overrides": [
|
|
557
639
|
{
|
|
558
|
-
"metadataTypes": ["
|
|
559
|
-
"multiLevel": "
|
|
640
|
+
"metadataTypes": ["dashboard"],
|
|
641
|
+
"multiLevel": "components:components:title"
|
|
560
642
|
},
|
|
561
643
|
{
|
|
562
|
-
"
|
|
644
|
+
"metadataTypes": ["layout"],
|
|
563
645
|
"multiLevel": [
|
|
564
|
-
"
|
|
565
|
-
"
|
|
646
|
+
"layoutSections:layoutSections:label",
|
|
647
|
+
"layoutItems:layoutItems:field,customLink,emptySpace"
|
|
566
648
|
]
|
|
567
649
|
}
|
|
568
650
|
]
|
|
569
651
|
```
|
|
570
652
|
|
|
653
|
+
> **`bot` and `loyaltyProgramSetup` ship with built-in `multiLevel` defaults**, so you don't need to add an override for either type to get the canonical decomposed layout — supply your own only if you want to replace the default. The full registry lives in [`src/metadata/multiLevelDefaults.ts`](https://github.com/mcarvin8/sf-decomposer/blob/main/src/metadata/multiLevelDefaults.ts).
|
|
654
|
+
|
|
571
655
|
> **Why one call:** Pass every rule for a given component in a single override. Sequential single-rule decompositions rewrite the on-disk `.multi_level.json` and only the last rule survives — so multi-rule scenarios must travel together.
|
|
572
656
|
|
|
573
657
|
> **Tip:** Use [`sf decomposer verify`](#sf-decomposer-verify) to non-destructively confirm a new override config still round-trips before committing it.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in `multiLevel` rules for a metadata suffix, or `undefined` if the
|
|
3
|
+
* suffix has no default. The caller is responsible for honoring user-supplied
|
|
4
|
+
* `multiLevel` overrides first - this function only returns the fallback.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getMultiLevelDefault(metaSuffix: string): string[] | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
import { multiLevelDefaults } from './multiLevelDefaults.js';
|
|
3
|
+
/**
|
|
4
|
+
* Built-in `multiLevel` rules for a metadata suffix, or `undefined` if the
|
|
5
|
+
* suffix has no default. The caller is responsible for honoring user-supplied
|
|
6
|
+
* `multiLevel` overrides first - this function only returns the fallback.
|
|
7
|
+
*/
|
|
8
|
+
export function getMultiLevelDefault(metaSuffix) {
|
|
9
|
+
return multiLevelDefaults[metaSuffix];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=getMultiLevelDefault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMultiLevelDefault.js","sourceRoot":"","sources":["../../src/metadata/getMultiLevelDefault.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in `multiLevel` rules applied when the user does not supply their own
|
|
3
|
+
* `multiLevel` override for a metadata suffix and `strategy === 'unique-id'`.
|
|
4
|
+
*
|
|
5
|
+
* Rule shape: `<file_pattern>:<root_to_strip>:<unique_id_elements>` (the third
|
|
6
|
+
* segment is itself a comma-separated list). See the `multiLevel` JSDoc on
|
|
7
|
+
* `DecomposerOverride` in src/helpers/types.ts for the full grammar.
|
|
8
|
+
*
|
|
9
|
+
* Adding an entry here makes the rule the default for that metadata suffix.
|
|
10
|
+
* User-supplied overrides always win because the resolver only falls back to
|
|
11
|
+
* this map when `options.multiLevel === undefined`.
|
|
12
|
+
*
|
|
13
|
+
* To use a different multi-level layout, supply your own `multiLevel` in
|
|
14
|
+
* `.sfdecomposer.config.json` (component- or type-scoped). To get fully flat
|
|
15
|
+
* output, pass `--strategy grouped-by-tag`, which skips multi-level entirely.
|
|
16
|
+
*/
|
|
17
|
+
export declare const multiLevelDefaults: Record<string, string[]>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* Built-in `multiLevel` rules applied when the user does not supply their own
|
|
4
|
+
* `multiLevel` override for a metadata suffix and `strategy === 'unique-id'`.
|
|
5
|
+
*
|
|
6
|
+
* Rule shape: `<file_pattern>:<root_to_strip>:<unique_id_elements>` (the third
|
|
7
|
+
* segment is itself a comma-separated list). See the `multiLevel` JSDoc on
|
|
8
|
+
* `DecomposerOverride` in src/helpers/types.ts for the full grammar.
|
|
9
|
+
*
|
|
10
|
+
* Adding an entry here makes the rule the default for that metadata suffix.
|
|
11
|
+
* User-supplied overrides always win because the resolver only falls back to
|
|
12
|
+
* this map when `options.multiLevel === undefined`.
|
|
13
|
+
*
|
|
14
|
+
* To use a different multi-level layout, supply your own `multiLevel` in
|
|
15
|
+
* `.sfdecomposer.config.json` (component- or type-scoped). To get fully flat
|
|
16
|
+
* output, pass `--strategy grouped-by-tag`, which skips multi-level entirely.
|
|
17
|
+
*/
|
|
18
|
+
export const multiLevelDefaults = {
|
|
19
|
+
// Bot: dialogs split out by developerName so each dialog gets its own
|
|
20
|
+
// subdirectory; steps within a dialog split by step type so distinct steps
|
|
21
|
+
// (Message vs Navigation vs Wait, etc.) live in separate shards. Without
|
|
22
|
+
// these the output is a flat blob of indistinguishable <botSteps> shards
|
|
23
|
+
// since most botSteps elements share structural shape and the SHA-256
|
|
24
|
+
// fallback alone produces opaque file names.
|
|
25
|
+
bot: ['botDialogs:botDialogs:developerName', 'botSteps:botSteps:type'],
|
|
26
|
+
// LoyaltyProgramSetup: programProcesses keyed by parameterName + ruleName.
|
|
27
|
+
// (Previously hardcoded inline in decomposeFileHandler.ts.)
|
|
28
|
+
loyaltyProgramSetup: ['programProcesses:programProcesses:parameterName,ruleName'],
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=multiLevelDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiLevelDefaults.js","sourceRoot":"","sources":["../../src/metadata/multiLevelDefaults.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,sEAAsE;IACtE,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,sEAAsE;IACtE,6CAA6C;IAC7C,GAAG,EAAE,CAAC,qCAAqC,EAAE,wBAAwB,CAAC;IAEtE,2EAA2E;IAC3E,4DAA4D;IAC5D,mBAAmB,EAAE,CAAC,0DAA0D,CAAC;CAClF,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { DisassembleXMLFileHandler } from 'config-disassembler';
|
|
|
5
5
|
import pLimit from 'p-limit';
|
|
6
6
|
import { CUSTOM_LABELS_FILE, CONCURRENCY_LIMITS } from '../../helpers/constants.js';
|
|
7
7
|
import { hasComponentOverridesForType, resolveDecomposeOptionsForComponent, } from '../../helpers/configOverrides.js';
|
|
8
|
+
import { getMultiLevelDefault } from '../../metadata/getMultiLevelDefault.js';
|
|
8
9
|
import { prePurgeLabels, moveAndRenameLabels } from './customLabels.js';
|
|
9
10
|
import { renameWorkflows } from './renameWorkflows.js';
|
|
10
11
|
export async function decomposeFileHandler(metaAttributes, typeResolved, ignorePath, overrides, manifestXmlPaths) {
|
|
@@ -91,13 +92,14 @@ function disassembleHandler(filePath, uniqueIdElements, options, ignorePath, met
|
|
|
91
92
|
const effectiveStrategy = applyHardStrategyRules(metaSuffix, options.strategy);
|
|
92
93
|
// Resolve multiLevel with this precedence:
|
|
93
94
|
// 1. an explicit `multiLevel` set in the override (any metadata type);
|
|
94
|
-
// 2. the
|
|
95
|
+
// 2. the built-in default for this metadata suffix when running unique-id strategy
|
|
96
|
+
// (see src/metadata/multiLevelDefaults.ts; covers `bot` and `loyaltyProgramSetup`).
|
|
95
97
|
// The override may be a single rule (string) or several rules (string[]); both shapes are
|
|
96
98
|
// forwarded verbatim — the crate decides how to split them. Empty arrays are rejected
|
|
97
99
|
// upstream by validateMultiLevelSpec, so we don't need to guard against them here.
|
|
98
100
|
let multiLevel = options.multiLevel;
|
|
99
|
-
if (multiLevel === undefined &&
|
|
100
|
-
multiLevel =
|
|
101
|
+
if (multiLevel === undefined && effectiveStrategy === 'unique-id') {
|
|
102
|
+
multiLevel = getMultiLevelDefault(metaSuffix);
|
|
101
103
|
}
|
|
102
104
|
// Resolve splitTags with this precedence:
|
|
103
105
|
// 1. an explicit `splitTags` set in the override (any metadata type, gated to grouped-by-tag);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decomposeFileHandler.js","sourceRoot":"","sources":["../../../src/service/decompose/decomposeFileHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"decomposeFileHandler.js","sourceRoot":"","sources":["../../../src/service/decompose/decomposeFileHandler.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-decomposer",
|
|
3
3
|
"description": "Split large Salesforce metadata files into version-control-friendly pieces and rebuild deployment-ready files.",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.16.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@oclif/core": "^4",
|
|
7
7
|
"@salesforce/core": "^8.26.3",
|
|
8
8
|
"@salesforce/sf-plugins-core": "^12.2.6",
|
|
9
9
|
"@salesforce/source-deploy-retrieve": "^12.35.0",
|
|
10
|
-
"config-disassembler": "^1.1.
|
|
10
|
+
"config-disassembler": "^1.1.2",
|
|
11
11
|
"fast-xml-parser": "^5.7.2",
|
|
12
12
|
"p-limit": "^7.3.0"
|
|
13
13
|
},
|
|
@@ -93,6 +93,8 @@
|
|
|
93
93
|
"test": "wireit",
|
|
94
94
|
"test:nuts": "oclif manifest && vitest run --config ./vitest.nut.config.ts",
|
|
95
95
|
"test:only": "wireit",
|
|
96
|
+
"test:perf": "vitest run --config ./vitest.perf.config.ts",
|
|
97
|
+
"test:perf:gen": "node --import ts-node/esm scripts/gen-perf-fixtures.ts",
|
|
96
98
|
"version": "oclif readme"
|
|
97
99
|
},
|
|
98
100
|
"publishConfig": {
|