sf-decomposer 5.4.0 → 5.4.2

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,21 @@
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
+ ## [5.4.2](https://github.com/mcarvin8/sf-decomposer/compare/v5.4.1...v5.4.2) (2025-03-21)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **deps:** bump @salesforce/source-deploy-retrieve ([f074b4f](https://github.com/mcarvin8/sf-decomposer/commit/f074b4f90ab149e064eb88892e0846e90a501984))
14
+ * **deps:** bump the xml-disassemblers group with 4 updates ([abe8ec7](https://github.com/mcarvin8/sf-decomposer/commit/abe8ec7d53b88ecdd8131eb32c80fadfe51c73f4))
15
+
16
+ ## [5.4.1](https://github.com/mcarvin8/sf-decomposer/compare/v5.4.0...v5.4.1) (2025-03-14)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **deps:** bump @salesforce/source-deploy-retrieve ([e636bb9](https://github.com/mcarvin8/sf-decomposer/commit/e636bb975a661e7018c99bbf17f359ac7c86747b))
22
+
8
23
  ## [5.4.0](https://github.com/mcarvin8/sf-decomposer/compare/v5.3.13...v5.4.0) (2025-03-07)
9
24
 
10
25
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # sf-decomposer
1
+ # `sf-decomposer`
2
2
 
3
3
  [![NPM](https://img.shields.io/npm/v/sf-decomposer.svg?label=sf-decomposer)](https://www.npmjs.com/package/sf-decomposer) [![Downloads/week](https://img.shields.io/npm/dw/sf-decomposer.svg)](https://npmjs.org/package/sf-decomposer) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/LICENSE.md)
4
4
 
@@ -7,7 +7,7 @@
7
7
  <summary>Table of Contents</summary>
8
8
 
9
9
  - [Quick Start](#quick-start)
10
- - [Why SF Decomposer](#why-sf-decomposer)
10
+ - [Why Choose `sf-decomposer`](#why-choose-sf-decomposer)
11
11
  - [Commands](#commands)
12
12
  - [`sf decomposer decompose`](#sf-decomposer-decompose)
13
13
  - [`sf decomposer recompose`](#sf-decomposer-recompose)
@@ -21,11 +21,12 @@
21
21
  - [`.sfdecomposerignore`](#.sfdecomposerignore)
22
22
  - [`.gitignore`](#.gitignore)
23
23
  - [Issues](#issues)
24
+ - [Built With](#built-with)
24
25
  - [Contributing](#contributing)
25
26
  - [License](#license)
26
27
  </details>
27
28
 
28
- Break down large Salesforce metadata files into smaller, more manageable files for version control and then recreate deployment-compatible files.
29
+ Break down large Salesforce metadata files (XML) into smaller, more manageable files (XML/JSON/YAML/JSON5) for version control and then recreate deployment-compatible files.
29
30
 
30
31
  ## Quick Start
31
32
 
@@ -41,13 +42,13 @@ sf plugins install sf-decomposer@x.y.z
41
42
  sf decomposer decompose -m "flow" -m "labels"
42
43
  ```
43
44
 
44
- 3. Add decomposed files to `.forceignore`
45
+ 3. Add decomposed files to [`.forceignore`](#.forceignore)
45
46
 
46
- > This is **REQUIRED** to avoid errors when running `sf`commands. See [Ignore Files](#ignore-files) section.
47
+ > This is **REQUIRED** to avoid errors when running `sf`commands
47
48
 
48
- 4. Stage files in version control
49
+ 4. Stage decomposed files in version control
49
50
 
50
- 5. [Recompose](#sf-decomposer-recompose) the metadata type(s)
51
+ 5. [Recompose](#sf-decomposer-recompose) the metadata type(s) before deployment
51
52
 
52
53
  ```bash
53
54
  sf decomposer recompose -m "flow" -m "labels"
@@ -55,21 +56,25 @@ sf decomposer recompose -m "flow" -m "labels"
55
56
 
56
57
  6. Deploy recomposed metadata
57
58
 
58
- ## Why SF Decomposer
59
+ ## Why Choose `sf-decomposer`
59
60
 
60
- Why should you consider using `sf-decomposer` over Salesforce's decomposition?
61
+ Salesforce's built-in decomposition has limitations. `sf-decomposer` offers more control, flexibility, and versioning benefits for Admins and Developers.
61
62
 
62
- - **Broad Metadata Support**: Unlike Salesforce's decomposition, `sf-decomposer` supports most metadata types available in the Metadata API.
63
- - **Selective Decomposition**: `sf-decomposer` allows you to decompose only the metadata you need instead of Salesforce's all-or-nothing approach.
64
- - See [.sfdecomposerignore](#.sfdecomposerignore)
65
- - **Complete Decomposition**: Partially decomposed metadata types (e.g., Salesforce's `decomposePermissionSetBeta2`) can be fully decomposed by `sf-decomposer`.
66
- - **Consistent Sorting**: `sf-decomposer` recomposition ensures elements are always sorted consistently for better version control.
67
- - **Multiple Decompose Formats**: `sf-decomposer` allows you to decompose the original XML file into smaller XML, JSON, JSON5, or YAML files depending on your preference.
63
+ ### Key Advantages
68
64
 
69
- In general, `sf-decomposer` helps Salesforce Admins do a few things with their source deployments:
65
+ - **Supports More Metadata** Works with most Metadata API types, unlike Salesforce’s limited decomposition.
66
+ - **Selective Decomposition** – Decompose only what you need, avoiding Salesforce’s all-or-nothing approach.
67
+ - See [.sfdecomposerignore](#.sfdecomposerignore)
68
+ - **Fully Decomposes Metadata** – Ensures complete decomposition for types that Salesforce only partially decomposes (e.g., `decomposePermissionSetBeta2`).
69
+ - **Consistent Sorting** – Keeps elements in a predictable order to reduce unnecessary version control noise.
70
+ - **Multiple Output Formats** – Supports XML, JSON, JSON5, and YAML for greater flexibility.
71
+ - **CI/CD Integration** – Hooks enable seamless decomposition and recomposition in automated workflows.
72
+ - **Improved Version Control** – Smaller, structured files make pull requests easier to review and reduce merge conflicts.
70
73
 
71
- - Enhance peer reviews of large metadata in CI/CD platforms like GitHub, i.e. easier-to-review diffs in pull requests
72
- - Make deployments safer by ensuring only the intended changes are deployed, improving the overall version control process
74
+ ### How It Helps Salesforce Teams
75
+
76
+ - **Better Peer Reviews** – More readable diffs for large metadata in GitHub and other CI/CD platforms.
77
+ - **Safer Deployments** – Ensures only intended changes are deployed, improving release quality.
73
78
 
74
79
  ## Commands
75
80
 
@@ -106,19 +111,14 @@ FLAGS
106
111
  GLOBAL FLAGS
107
112
  --json Format output as json.
108
113
 
109
- DESCRIPTION
110
- Decompose large metadata files into smaller files.
111
-
112
- You should run this after you retrieve metadata from an org.
113
-
114
114
  EXAMPLES
115
- Decompose all flows:
115
+ Decompose all flows in XML format:
116
116
 
117
117
  $ sf decomposer decompose -m "flow" -f "xml" --prepurge --postpurge --debug
118
118
 
119
- Decompose all flows and custom labels:
119
+ Decompose all flows and custom labels in YAML format
120
120
 
121
- $ sf decomposer decompose -m "flow" -m "labels" -f "xml" --prepurge --postpurge --debug
121
+ $ sf decomposer decompose -m "flow" -m "labels" -f "yaml" --prepurge --postpurge --debug
122
122
 
123
123
  Decompose flows except for those in the "force-app" package directory.
124
124
 
@@ -152,19 +152,14 @@ FLAGS
152
152
  GLOBAL FLAGS
153
153
  --json Format output as json.
154
154
 
155
- DESCRIPTION
156
- Recompose the decomposed files into deployment-compatible metadata files.
157
-
158
- You should run this before you deploy decomposed metadata to an org.
159
-
160
155
  EXAMPLES
161
156
  Recompose all flows:
162
157
 
163
158
  $ sf decomposer recompose -m "flow" -f "xml" --postpurge --debug
164
159
 
165
- Recompose all flows and custom labels:
160
+ Recompose all decomposed flows and custom labels YAMLs into XMLs
166
161
 
167
- $ sf decomposer recompose -m "flow" -m "labels" -f "xml" --postpurge --debug
162
+ $ sf decomposer recompose -m "flow" -m "labels" -f "yaml" --postpurge --debug
168
163
 
169
164
  Recompose flows except for those in the "force-app" package directory.
170
165
 
@@ -199,7 +194,7 @@ When custom labels are decomposed, each custom label will have its own file in t
199
194
 
200
195
  All parent metadata types imported from this plugin's version of `@salesforce/source-deploy-retrieve` (SDR) toolkit are supported except for certain types.
201
196
 
202
- The `--metadata-type`/`-m` flag should be the metadata's `suffix` value as listed in the [metadataRegistry.json](https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json).
197
+ The `--metadata-type`/`-m` flag should be the metadata's `suffix` value as listed in the [metadataRegistry.json](https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json). You can also infer the suffix by looking at the original XML file-name, i.e. `*.{suffix}-meta.xml`.
203
198
 
204
199
  Here are some examples:
205
200
 
@@ -210,7 +205,6 @@ Here are some examples:
210
205
  - AI Scoring Model Definition (`--metadata-type "aiScoringModelDefinition"`)
211
206
  - Decision Matrix Definition (`--metadata-type "decisionMatrixDefinition"`)
212
207
  - Bot (`--metadata-type "bot"`)
213
- - **NOTE**: Running "bot" will also decompose and recompose Bot Version meta files. The `botVersion` meta suffix will be blocked from running directly.
214
208
  - Marketing App Extension (`--metadata-type "marketingappextension"`)
215
209
 
216
210
  ### Metadata Exceptions
@@ -240,36 +234,38 @@ Here are some examples:
240
234
  Error (1): sfdx-project.json not found in any parent directory.
241
235
  ```
242
236
 
243
- The `xml-disassembler` package will log errors, and optionally debugging statements, to a log file, `disassemble.log`. This log will be created in the working directory and will be created when running this plugin at all times. If there were no errors, this log will be empty. By default, the log will only contain errors. This plugin will print the errors as warnings in the command terminal to allow all other files to be processed. These warnings when decomposing or recomposing will look like:
237
+ The `xml-disassembler` package will create a log file, `disassemble.log`, at all times. By default, the log will only contain XML decomposing/recomposing errors. XML decomposing/recomposing errors do not cause the Salesforce CLI to fail. The CLI will proceed to decompose/recompose all remaining metadata.
238
+
239
+ The Salesforce CLI will print XML errors as warnings in the terminal:
244
240
 
245
241
  ```
246
242
  Warning: C:\Users\matth\Documents\sf-decomposer\test\baselines\flows\Get_Info\actionCalls\Get_Info.actionCalls-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
247
243
  ```
248
244
 
249
- To add additional debugging statements to the log file, provide the `--debug` flag to the decompose or recompose command. Debugging statements will look like:
245
+ To add debugging to the log, provide the `--debug` flag to the decompose or recompose command.
250
246
 
251
247
  ```
252
248
  [2024-03-30T14:28:37.959] [DEBUG] default - Created disassembled file: mock\no-nested-elements\HR_Admin\HR_Admin.permissionset-meta.xml
253
249
  ```
254
250
 
255
- Recommend adding the `disassemble.log` to your `.gitignore` file if you are using this in a git-based repo.
256
-
257
251
  ## Hooks
258
252
 
259
- > **NOTE:** In order to avoid errors when running `sf` commands, you must configure your `.forceignore` file to have the Salesforce CLI ignore the decomposed files. See [Ignore Files](#ignore-files) section.
253
+ > **NOTE:** In order to avoid errors when running `sf` commands, you must configure your `.forceignore` file to have the Salesforce CLI ignore the decomposed files. See [Ignore Files](#ignore-files).
254
+
255
+ `sf-decomposer` supports automatic decomposition and recomposition by defining a `.sfdecomposer.config.json` file in your project root.
260
256
 
261
- To automate decomposing and recomposing before and after `sf` commands, create `.sfdecomposer.config.json` in the root of your Salesforce DX project. You can copy and update the sample [.sfdecomposer.config.json](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.sfdecomposer.config.json) provided.
257
+ You can copy and update the sample [.sfdecomposer.config.json](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.sfdecomposer.config.json).
262
258
 
263
- - `metadataSuffixes` is required and should be a comma-separated string of metadata suffixes to decompose automatically after retrievals.
259
+ - `metadataSuffixes` is required and should be a comma-separated string of metadata suffixes to decompose and recompose based on the CLI command.
264
260
  - `ignorePackageDirectories` is optional and should be a comma-separated string of package directories to ignore.
265
- - `prePurge` is optional and should be a boolean. If true, this will delete any existing decomposed files before decomposing the files. If you do not provide this, the default will be `false`. This flag is not used by the recompose command/pre-run hook.
266
- - `postPurge` is optional and should be a boolean. If true, this will delete the retrieval file after decomposing it or delete the decomposed files after recomposing them. If you do not provide this, the default will be `false`.
267
- - `decomposedFormat` is optional and should be either `xml`, `json`, `json5`, or `yaml`, depending on what file format you want the decomposed files created as. If you do not provide this, the default will be `xml`.
261
+ - `prePurge` is optional and should be `true` or `false`. If true, this will delete any existing decomposed files before decomposing the files. This defauls to `false`.
262
+ - `postPurge` is optional and should be `true` or `false`. If true, this will delete the retrieval file after decomposing it or delete the decomposed files after recomposing them. This defauls to `false`.
263
+ - `decomposedFormat` is optional and should be either `xml`, `json`, `json5`, or `yaml`, depending on the decomposed file format. This defaults to `xml`.
268
264
 
269
- If `.sfdecomposer.config.json` is found, the hooks will fire:
265
+ If `.sfdecomposer.config.json` is found, the hooks will run:
270
266
 
271
- - the decompose command after a `sf project retrieve start` command completes successfully (post-run)
272
- - the recompose command before a `sf project deploy [start/validate]` command starts (pre-run)
267
+ - the decompose command **after** a `sf project retrieve start` command completes successfully (post-run)
268
+ - the recompose command **before** a `sf project deploy [start/validate]` command starts (pre-run)
273
269
 
274
270
  If `.sfdecomposer.config.json` isn't found, the hooks will be skipped.
275
271
 
@@ -279,30 +275,37 @@ If `.sfdecomposer.config.json` isn't found, the hooks will be skipped.
279
275
 
280
276
  The Salesforce CLI **must** ignore the decomposed files and allow the recomposed files.
281
277
 
282
- You can use the sample [.forceignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.forceignore) provided. Update the decomposed file extensions based on what format you're using (`.xml`, `.json`, or `.yaml`).
278
+ You can use the sample [.forceignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.forceignore). Update the decomposed file extensions based on what format you're using (`.xml`, `.json`, `.json5`, or `.yaml`).
283
279
 
284
280
  ### `.sfdecomposerignore`
285
281
 
286
- If you wish, you can create a `.sfdecomposerignore` file in the root of your Salesforce DX project to ignore specific XMLs when running the decompose command. The `.sfdecomposerignore` file should follow [.gitignore spec 2.22.1](https://git-scm.com/docs/gitignore).
282
+ Optionally, you can create a `.sfdecomposerignore` file in the root of your Salesforce DX project to ignore specific XMLs when decomposing. The `.sfdecomposerignore` file should follow [.gitignore spec 2.22.1](https://git-scm.com/docs/gitignore).
287
283
 
288
- When the decompose command is ran with the `--debug` flag and it processes a file that matches an entry in `.sfdecomposerignore`, a warning will be printed to the `disassemble.log`:
284
+ When you run `sf decomposer decompose --debug` and it processes a file that matches an entry in `.sfdecomposerignore`, a warning will be printed to the `disassemble.log`:
289
285
 
290
286
  ```
291
287
  [2024-05-22T09:32:12.078] [WARN] default - File ignored by .sfdecomposerignore: C:\Users\matth\Documents\sf-decomposer\test\baselines\bots\Assessment_Bot\v1.botVersion-meta.xml
292
288
  ```
293
289
 
294
- `.sfdecomposerignore` is not read by the recompose command.
290
+ `.sfdecomposerignore` is not read when recomposing metadata.
295
291
 
296
292
  ### `.gitignore`
297
293
 
298
294
  Optionally, git can ignore the recomposed files so you don't stage those in your repositories. You can also have git ignore the `disassemble.log` created by the `xml-disassembler` package.
299
295
 
300
- You can use the sample [.gitignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.gitignore) provided.
296
+ You can use the sample [.gitignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.gitignore).
301
297
 
302
298
  ## Issues
303
299
 
304
300
  If you encounter any bugs or would like to request features, please create an [issue](https://github.com/mcarvin8/sf-decomposer/issues).
305
301
 
302
+ ## Built With
303
+
304
+ - [`xml-disassembler`](https://github.com/mcarvin8/xml-disassembler)
305
+ - [`xml2json-disassembler`](https://github.com/mcarvin8/xml2json-disassembler)
306
+ - [`xml2yaml-disassembler`](https://github.com/mcarvin8/xml2yaml-disassembler)
307
+ - [`xml2json5-disassembler`](https://github.com/mcarvin8/xml2json5-disassembler)
308
+
306
309
  ## Contributing
307
310
 
308
311
  Contributions are welcome! See [Contributing](https://github.com/mcarvin8/sf-decomposer/blob/main/CONTRIBUTING.md).
package/oclif.lock CHANGED
@@ -1500,10 +1500,10 @@
1500
1500
  strip-ansi "6.0.1"
1501
1501
  ts-retry-promise "^0.8.1"
1502
1502
 
1503
- "@salesforce/core@^8.1.1", "@salesforce/core@^8.2.1", "@salesforce/core@^8.2.3", "@salesforce/core@^8.8.3":
1504
- version "8.8.4"
1505
- resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.8.4.tgz#1995d387a62c48810b4e0a66c68192ccdcf8001f"
1506
- integrity sha512-TKioMWh/QWmXjnD0bMNvFHEqaH175TCYWNXUCO1CixdhhI0p1MQj4AnQsk8wuRJiH5kVhiYw6Z7NukcIxLtbUw==
1503
+ "@salesforce/core@^8.1.1", "@salesforce/core@^8.2.1", "@salesforce/core@^8.2.3", "@salesforce/core@^8.8.5":
1504
+ version "8.8.5"
1505
+ resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.8.5.tgz#4004e22523e4e45b42631733d06dc8aec9fdc23d"
1506
+ integrity sha512-eCiiO4NptvKkz04A4ivBVLzEBy/6IIFmaXoZ4tnF1FcD5MESvC+Xuc+0RFSRiYmPi5oloKNl6njrfVCKAho2zQ==
1507
1507
  dependencies:
1508
1508
  "@jsforce/jsforce-node" "^3.6.5"
1509
1509
  "@salesforce/kit" "^3.2.2"
@@ -1596,12 +1596,12 @@
1596
1596
  string-width "^7.2.0"
1597
1597
  terminal-link "^3.0.0"
1598
1598
 
1599
- "@salesforce/source-deploy-retrieve@^12.16.4":
1600
- version "12.16.4"
1601
- resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.16.4.tgz#56f20625bf9e0a51a273b2cb036e9b14fa63fa57"
1602
- integrity sha512-V7kECbfKE+tk46NjexWPuFHucHJDYg/HLPDTinJq7KTQgrtE4DEzheCEbyh8mku6queZZOaxZe9vlTemasrmGA==
1599
+ "@salesforce/source-deploy-retrieve@^12.16.10":
1600
+ version "12.16.10"
1601
+ resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.16.10.tgz#b38ee71f9e5691212beae6575078ec8459b59a00"
1602
+ integrity sha512-O1K5I5ZmMTfCZ4SV+/w5iWMjGsHSU+PtHCx7gJVcgH8emY25OUhxrQPqb7BS2jupKQZy6U6hhVhkcD9yYqClag==
1603
1603
  dependencies:
1604
- "@salesforce/core" "^8.8.3"
1604
+ "@salesforce/core" "^8.8.5"
1605
1605
  "@salesforce/kit" "^3.2.3"
1606
1606
  "@salesforce/ts-types" "^2.0.12"
1607
1607
  "@salesforce/types" "^1.3.0"
@@ -1615,7 +1615,7 @@
1615
1615
  mime "2.6.0"
1616
1616
  minimatch "^9.0.5"
1617
1617
  proxy-agent "^6.4.0"
1618
- yaml "^2.6.1"
1618
+ yaml "^2.7.0"
1619
1619
 
1620
1620
  "@salesforce/ts-types@^2.0.10", "@salesforce/ts-types@^2.0.12":
1621
1621
  version "2.0.12"
@@ -4118,10 +4118,10 @@ fast-xml-parser@^4.5.3:
4118
4118
  dependencies:
4119
4119
  strnum "^1.1.1"
4120
4120
 
4121
- fast-xml-parser@^5.0.8:
4122
- version "5.0.8"
4123
- resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.0.8.tgz#cb84ca077c0c5c45906051c13c4075ed44d3f271"
4124
- integrity sha512-qY8NiI5L8ff00F2giyICiJxSSKHO52tC36LJqx2JtvGyAd5ZfehC/l4iUVVHpmpIa6sM9N5mneSLHQG2INGoHA==
4121
+ fast-xml-parser@^5.0.9:
4122
+ version "5.0.9"
4123
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.0.9.tgz#5b64c810e70941a9c07b07ead8299841fbb8dd76"
4124
+ integrity sha512-2mBwCiuW3ycKQQ6SOesSB8WeF+fIGb6I/GG5vU5/XEptwFFhp9PE8b9O7fbs2dpq9fXn4ULR3UsfydNUCntf5A==
4125
4125
  dependencies:
4126
4126
  strnum "^2.0.5"
4127
4127
 
@@ -4785,11 +4785,16 @@ ieee754@^1.2.1:
4785
4785
  resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
4786
4786
  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
4787
4787
 
4788
- ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.0, ignore@^5.3.1, ignore@^5.3.2:
4788
+ ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.0, ignore@^5.3.2:
4789
4789
  version "5.3.2"
4790
4790
  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
4791
4791
  integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
4792
4792
 
4793
+ ignore@^7.0.3:
4794
+ version "7.0.3"
4795
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733"
4796
+ integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==
4797
+
4793
4798
  immediate@~3.0.5:
4794
4799
  version "3.0.6"
4795
4800
  resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
@@ -7814,13 +7819,13 @@ write-file-atomic@^3.0.0:
7814
7819
  signal-exit "^3.0.2"
7815
7820
  typedarray-to-buffer "^3.1.5"
7816
7821
 
7817
- xml-disassembler@^1.3.13:
7818
- version "1.3.13"
7819
- resolved "https://registry.yarnpkg.com/xml-disassembler/-/xml-disassembler-1.3.13.tgz#fade68d62add9992340b94b6e4537bc040333c87"
7820
- integrity sha512-qjfNcTNSAXbLDErLw6hlckpm9ARQDQDJ+CMDFPV2LrheMUhlDF3Z4vZKSNBWyTrb+4PgUOTpGXnXRpgFPtcO9Q==
7822
+ xml-disassembler@^1.3.15:
7823
+ version "1.3.15"
7824
+ resolved "https://registry.yarnpkg.com/xml-disassembler/-/xml-disassembler-1.3.15.tgz#ddd25995caa311aa7168875d82abb5bad9c89ec1"
7825
+ integrity sha512-YcBJK0HwS70v74q3aU6jMOfEeD8+irzMAI9ImPBxhezZNq6zjxTJg9TNlECDvjpzKMHGuscWoYLhrF9eyMM7eg==
7821
7826
  dependencies:
7822
- fast-xml-parser "^5.0.8"
7823
- ignore "^5.3.1"
7827
+ fast-xml-parser "^5.0.9"
7828
+ ignore "^7.0.3"
7824
7829
  log4js "^6.9.1"
7825
7830
  tslib "^2.6.2"
7826
7831
 
@@ -7832,30 +7837,30 @@ xml2js@^0.6.2:
7832
7837
  sax ">=0.6.0"
7833
7838
  xmlbuilder "~11.0.0"
7834
7839
 
7835
- xml2json-disassembler@^1.1.13:
7836
- version "1.1.13"
7837
- resolved "https://registry.yarnpkg.com/xml2json-disassembler/-/xml2json-disassembler-1.1.13.tgz#04f8577fda4bbcbf5c167d5320b6ed88e46f75c7"
7838
- integrity sha512-YWIybFAJ59yiuUbQ+DgeJ/aOd5ACfVquCmZNbMlqJGlqVhON3IUCJ8SPyhfRJwuuJScAbBBbi+kXrhI8KMRz7w==
7840
+ xml2json-disassembler@^1.1.14:
7841
+ version "1.1.14"
7842
+ resolved "https://registry.yarnpkg.com/xml2json-disassembler/-/xml2json-disassembler-1.1.14.tgz#d6cbdd6ce8f6f2599294d8aecc70180d28761b4c"
7843
+ integrity sha512-X+UyuqrJHOQFROlLTLe5RtN6Z0Xy/6GhKSclDrQgzpkT2dKSTnILb1KQhcfkEtMLj1IppKtoH7f3ol9wweonDQ==
7839
7844
  dependencies:
7840
7845
  tslib "^2.6.2"
7841
- xml-disassembler "^1.3.13"
7846
+ xml-disassembler "^1.3.15"
7842
7847
 
7843
- xml2json5-disassembler@^1.0.0:
7844
- version "1.0.0"
7845
- resolved "https://registry.yarnpkg.com/xml2json5-disassembler/-/xml2json5-disassembler-1.0.0.tgz#26c2693038cee332558d98d16abc378b62abf263"
7846
- integrity sha512-PeNQcVNyLhZ90gG/1bCHSQQ7SYlk7IIYQxgqUOj9Tc27OCjpJ3ZPGidbHZ4HfCjrYQMxrNd6FnozkieVEGTuXw==
7848
+ xml2json5-disassembler@^1.0.1:
7849
+ version "1.0.1"
7850
+ resolved "https://registry.yarnpkg.com/xml2json5-disassembler/-/xml2json5-disassembler-1.0.1.tgz#85ca4c7c13e1a0981ce66a0c9193f64380d738ba"
7851
+ integrity sha512-lZmw7SE4rNMFDlpfZXIKFKQqIWMJEu5JH3GubRVVCC1HMHmEZdD0RPfw49JN/PuwVTcTHwWh/EXvIdrrVNLtAQ==
7847
7852
  dependencies:
7848
7853
  json5 "^2.2.3"
7849
7854
  tslib "^2.6.2"
7850
- xml-disassembler "^1.3.13"
7855
+ xml-disassembler "^1.3.15"
7851
7856
 
7852
- xml2yaml-disassembler@^1.1.13:
7853
- version "1.1.13"
7854
- resolved "https://registry.yarnpkg.com/xml2yaml-disassembler/-/xml2yaml-disassembler-1.1.13.tgz#8c524cacce2f6741691e2958c3fab25fa4479195"
7855
- integrity sha512-itP9OrE77LRNqWbsU0Fs6rJJT59R1k0lqY6+ycm4IZKITMSvnCVFznbCaZ6EUv+GvDZd73+hreO4so6vcqDRDw==
7857
+ xml2yaml-disassembler@^1.1.14:
7858
+ version "1.1.14"
7859
+ resolved "https://registry.yarnpkg.com/xml2yaml-disassembler/-/xml2yaml-disassembler-1.1.14.tgz#fe1d732519f4dc14dd8570b741bee338e1e8fabc"
7860
+ integrity sha512-4bfalNt7wXctsrBoh/VJhtCrAIRYCDXiTJeMmzNvEvn2Uffi3R32AjTwWPVXdHqlMV8csNr7bO/riFqy/o67pg==
7856
7861
  dependencies:
7857
7862
  tslib "^2.6.2"
7858
- xml-disassembler "^1.3.13"
7863
+ xml-disassembler "^1.3.15"
7859
7864
  yaml "^2.7.0"
7860
7865
 
7861
7866
  xmlbuilder@~11.0.0:
@@ -7883,7 +7888,7 @@ yallist@^4.0.0:
7883
7888
  resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
7884
7889
  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
7885
7890
 
7886
- yaml@^2.4.5, yaml@^2.6.1, yaml@^2.7.0:
7891
+ yaml@^2.4.5, yaml@^2.7.0:
7887
7892
  version "2.7.0"
7888
7893
  resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98"
7889
7894
  integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
@@ -200,5 +200,5 @@
200
200
  ]
201
201
  }
202
202
  },
203
- "version": "5.4.0"
203
+ "version": "5.4.2"
204
204
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "sf-decomposer",
3
3
  "description": "Break down large Salesforce metadata files into smaller, more manageable files for version control and then recreate deployment-compatible files.",
4
- "version": "5.4.0",
4
+ "version": "5.4.2",
5
5
  "dependencies": {
6
6
  "@oclif/core": "^4",
7
7
  "@salesforce/core": "^8.2.1",
8
8
  "@salesforce/sf-plugins-core": "^11.2.1",
9
- "@salesforce/source-deploy-retrieve": "^12.16.4",
9
+ "@salesforce/source-deploy-retrieve": "^12.16.10",
10
10
  "fs-extra": "^11.2.0",
11
- "xml-disassembler": "^1.3.13",
12
- "xml2json-disassembler": "^1.1.13",
13
- "xml2json5-disassembler": "^1.0.0",
14
- "xml2yaml-disassembler": "^1.1.13"
11
+ "xml-disassembler": "^1.3.15",
12
+ "xml2json-disassembler": "^1.1.14",
13
+ "xml2json5-disassembler": "^1.0.1",
14
+ "xml2yaml-disassembler": "^1.1.14"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@commitlint/cli": "^18.6.1",
@@ -51,6 +51,7 @@
51
51
  "xml",
52
52
  "yaml",
53
53
  "json",
54
+ "json5",
54
55
  "decompose",
55
56
  "reassemble",
56
57
  "recompose",