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 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
- - `loyaltyProgramSetup` automatically gets `multiLevel: programProcesses:programProcesses:parameterName,ruleName` when run under `unique-id` — you can replace it but you don't have to set it.
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
- **Recipe two-rule multi-level decomposition.**
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), `multiLevel: ["botDialogs:botDialogs:developerName"]` alone is enough. Each dialog gets its own folder and steps live as flat `*.botSteps-meta.xml` files inside. Recompose is byte-identical either way; the choice is purely about how granular you want the per-step diff to be.
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.** Scope the override to a single component when one bot in your repo has a different shape than the rest. The plugin's own bot fixture suite uses this pattern:
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:Sample_Chat_Bot", "bot:Internal_Copilot_Sample"],
115
- > "multiLevel": ["botDialogs:botDialogs:developerName", "botSteps:botSteps:type"]
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
- ![Unique ID](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-uid.png)
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
- ![Grouped By Tag](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-tags.png)
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
- ![Decomposed Custom Labels](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-labels.png)
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
- ![Decomposed Perm Set](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/additional-perm-set-decomposed.png)
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
- ![Decomposed Loyalty Program Setup](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-loyalty-program.png)
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": ["loyaltyProgramSetup"],
559
- "multiLevel": "programProcesses:programProcesses:parameterName,ruleName"
640
+ "metadataTypes": ["dashboard"],
641
+ "multiLevel": "components:components:title"
560
642
  },
561
643
  {
562
- "components": ["bot:Assessment_Bot"],
644
+ "metadataTypes": ["layout"],
563
645
  "multiLevel": [
564
- "botDialogs:botDialogs:developerName",
565
- "botSteps:botSteps:type"
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 hardcoded loyaltyProgramSetup default when running unique-id strategy.
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 && metaSuffix === 'loyaltyProgramSetup' && effectiveStrategy === 'unique-id') {
100
- multiLevel = 'programProcesses:programProcesses:parameterName,ruleName';
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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"}
@@ -342,5 +342,5 @@
342
342
  ]
343
343
  }
344
344
  },
345
- "version": "6.15.0"
345
+ "version": "6.16.0"
346
346
  }
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.15.0",
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.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": {