sf-decomposer 5.3.9 → 5.3.11

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.3.11](https://github.com/mcarvin8/sf-decomposer/compare/v5.3.10...v5.3.11) (2025-02-24)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **deps:** bump @salesforce/source-deploy-retrieve ([bbd3ec4](https://github.com/mcarvin8/sf-decomposer/commit/bbd3ec4a807ef9277aec4e8e22b58c4e4820be61))
14
+ * **deps:** bump the xml-disassemblers group across 1 directory with 3 updates ([8b9966f](https://github.com/mcarvin8/sf-decomposer/commit/8b9966f071666c56f19851eb4962ccc1424b0ba0))
15
+
16
+ ## [5.3.10](https://github.com/mcarvin8/sf-decomposer/compare/v5.3.9...v5.3.10) (2025-02-16)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **deps:** bump @salesforce/source-deploy-retrieve ([38a9946](https://github.com/mcarvin8/sf-decomposer/commit/38a9946f306cac16537fd19d95fadb8fe00e25bb))
22
+
8
23
  ## [5.3.9](https://github.com/mcarvin8/sf-decomposer/compare/v5.3.8...v5.3.9) (2025-02-10)
9
24
 
10
25
 
package/README.md CHANGED
@@ -7,18 +7,19 @@
7
7
  <summary>Table of Contents</summary>
8
8
 
9
9
  - [Install](#install)
10
- - [Why Use This Plugin?](#why-use-this-plugin)
10
+ - [Why SF Decomposer](#why-sf-decomposer)
11
11
  - [Commands](#commands)
12
12
  - [`sf decomposer decompose`](#sf-decomposer-decompose)
13
13
  - [`sf decomposer recompose`](#sf-decomposer-recompose)
14
+ - [Decompose Structure](#decompose-structure)
14
15
  - [Supported Metadata](#supported-metadata)
15
16
  - [Metadata Exceptions](#metadata-exceptions)
16
17
  - [Debugging](#debugging)
17
- - [Ignore Files when Decomposing](#ignore-files-when-decomposing)
18
18
  - [Hooks](#hooks)
19
19
  - [Ignore Files](#ignore-files)
20
- - [`.forceignore` updates](#.forceignore-updates)
21
- - [`.gitignore` updates](#.gitignore-updates)
20
+ - [`.forceignore`](#.forceignore)
21
+ - [`.sfdecomposerignore`](#.sfdecomposerignore)
22
+ - [`.gitignore`](#.gitignore)
22
23
  - [Contributing](#contributing)
23
24
  - [Issues](#issues)
24
25
  - [License](#license)
@@ -26,28 +27,21 @@
26
27
 
27
28
  A Salesforce CLI plugin to break down large metadata files into smaller, more manageable files for version control and then recreate deployment-compatible files.
28
29
 
29
- **DISCLAIMERS:**
30
-
31
- - You must update the `.forceignore` to have the Salesforce CLI ignore the decomposed files created by this plugin. See [Ignore Files](#ignore-files).
32
- - It is recommended that you extensively test this plugin in a sandbox environment on the metadata types for which you wish to use this tool.
33
- - Do not change your production/QA pipelines until you have tested this and are happy with the results.
34
- - Ensure your deployment pipelines are stable before implementing this plugin.
35
-
36
30
  ## Install
37
31
 
38
32
  ```bash
39
33
  sf plugins install sf-decomposer@x.y.z
40
34
  ```
41
35
 
42
- ## Why Use this Plugin?
36
+ ## Why SF Decomposer
43
37
 
44
- Why should you consider using this Salesforce CLI Plugin over Salesforce's decomposition?
38
+ Why should you consider using `sf-decomposer` over Salesforce's decomposition?
45
39
 
46
- - Salesforce's decomposition betas are evaluated for each metadata type before they are considered. My plugin supports the vast majority of Salesforce metadata types available from the Metadata API.
47
- - Salesforce's decomposition is all or nothing for each metadata type. Meaning, if you want to decompose workflows, all of your workflows will need to be decomposed to work with Salesforce's approach. My plugin allows you to selectively decompose for each metadata type.
48
- - See [Ignore Files when Decomposing](#ignore-files-when-decomposing)
49
- - Some metadata types may only be partially decomposed by Salesforce such as permission sets based on what designs are picked. My plugin will allow for total decomposition. So if a user wants to fully decompose permission sets, they can use this plugin.
50
- - When this plugin recomposes the decomposed files, it will sort the elements consistently compared to native Salesforce files.
40
+ - Salesforce's decomposition betas are evaluated for each metadata type before they are considered. `sf-decomposer` supports the vast majority of Salesforce metadata types available from the Metadata API.
41
+ - Salesforce's decomposition is all or nothing for each metadata type. Meaning, if you want to decompose workflows, all of your workflows will need to be decomposed to work with Salesforce's approach. `sf-decomposer` allows you to selectively decompose for each metadata type.
42
+ - See [.sfdecomposerignore](#.sfdecomposerignore)
43
+ - Some metadata types may only be partially decomposed by Salesforce such as permission sets based on what designs are picked. `sf-decomposer` will allow for total decomposition. So if a user wants to fully decompose permission sets, they can use this plugin.
44
+ - When `sf-decomposer` recomposes the decomposed files, it will sort the elements consistently compared to native Salesforce files.
51
45
 
52
46
  ## Commands
53
47
 
@@ -60,40 +54,25 @@ The `sf-decomposer` supports 2 commands:
60
54
 
61
55
  Decomposes the original metadata files in all local package directories into smaller files for version control.
62
56
 
63
- When the files are decomposed, it will:
64
- - decompose leaf elements (i.e. `<userLicense>Salesforce</userLicense>`) in the same file. The leaf file-name will match the original file-name, just in a decomposed directory.
65
- - decompose nested elements into their own files.
66
- - If unique ID elements are found, the decomposed files will be named using them.
67
- - Otherwise, the decomposed files will be named with the SHA-256 hash of the element contents.
68
- - See [Contributing](#contributing) for more information on unique ID elements.
69
-
70
- <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-perm-set.png">
71
- <p><em>Decomposed Permission Sets named using unique ID elements</em></p>
72
-
73
- <br>
74
-
75
- <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-labels.png" alt="Description">
76
- <p><em>Decomposed Custom Labels named using unique ID elements</em></p>
77
-
78
- <br>
79
-
80
- <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-apps-hashes.png">
81
- <p><em>Decomposed Application named using SHA-256 hashes of elements</em></p>
82
-
83
- <br>
84
-
85
57
  ```
86
58
  USAGE
87
59
  $ sf decomposer decompose -m <value> -f <value> -i <value> [--prepurge --postpurge --debug --json]
88
60
 
89
61
  FLAGS
90
- -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times.
91
- -f, --format=<value> [default: 'xml'] The file type for the decomposed files. Must match what format you provide for recompose.
92
- -i, --ignore-package-directory=<value> Package directories to ignore. Should be as they appear in the "sfdx-project.json" file.
62
+ -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc.
93
63
  Can be declared multiple times.
94
- --prepurge [default: false] If provided, purge directories of pre-existing decomposed files.
95
- --postpurge [default: false] If provided, purge the original files after decomposing them.
96
- --debug [default: false] If provided, log debugging results to a text file (disassemble.log).
64
+ -f, --format=<value> The file type for the decomposed files.
65
+ Must match what format you provide for recompose.
66
+ [default: 'xml']
67
+ -i, --ignore-package-directory=<value> Package directory to ignore.
68
+ Should be as they appear in the "sfdx-project.json".
69
+ Can be declared multiple times.
70
+ --prepurge Purgd directories of pre-existing decomposed files.
71
+ [default: false]
72
+ --postpurge Purge the original files after decomposing them.
73
+ [default: false]
74
+ --debug Log debugging results to a text file (disassemble.log).
75
+ [default: false]
97
76
 
98
77
  GLOBAL FLAGS
99
78
  --json Format output as json.
@@ -127,12 +106,18 @@ USAGE
127
106
  $ sf decomposer recompose -m <value> -f <value> -i <value> [--postpurge --debug --json]
128
107
 
129
108
  FLAGS
130
- -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times.
131
- -f, --format=<value> [default: 'xml'] The file format for the decomposed files.
132
- -i, --ignore-package-directory=<value> Package directories to ignore. Should be as they appear in the "sfdx-project.json" file.
109
+ -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc.
110
+ Can be declared multiple times.
111
+ -f, --format=<value> The file format for the decomposed files.
112
+ Must match what format you provide for decompose.
113
+ [default: 'xml']
114
+ -i, --ignore-package-directory=<value> Package directory to ignore.
115
+ Should be as they appear in the "sfdx-project.json".
133
116
  Can be declared multiple times.
134
- --postpurge [default: false] If provided, purge the decomposed files after recomposing them.
135
- --debug [default: false] If provided, log debugging results to a text file (disassemble.log).
117
+ --postpurge Purge the decomposed files after recomposing them.
118
+ [default: false]
119
+ --debug Log debugging results to a text file (disassemble.log).
120
+ [default: false]
136
121
 
137
122
  GLOBAL FLAGS
138
123
  --json Format output as json.
@@ -157,6 +142,29 @@ EXAMPLES
157
142
 
158
143
  ```
159
144
 
145
+ ## Decompose Structure
146
+
147
+ When the original metadata files are decomposed, this structure is followed for all metadata types except for custom labels:
148
+
149
+ - Leaf elements (i.e. `<userLicense>Salesforce</userLicense>`) will be decomposed in the same file in the root of the decomposed directory. The leaf file-name will match the original file-name.
150
+ - Nested elements will be decomposed into their own files under sub-directories by the element type, i.e. custom permissions in a permission set will have their own decomposed file under a custom permissions sub-folder.
151
+ - If unique ID elements are found, the decomposed nested files will be named using them.
152
+ - Otherwise, the decomposed nested files will be named with the SHA-256 hash of the element contents.
153
+ - See [Contributing](#contributing) for more information on unique ID elements.
154
+
155
+ <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-perm-set.png">
156
+ <p><em>Decomposed Permission Sets named using unique ID elements</em></p>
157
+
158
+ <br>
159
+
160
+ <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-apps-hashes.png">
161
+ <p><em>Decomposed Application named using SHA-256 hashes of elements</em></p>
162
+
163
+ When custom labels are decomposed, each custom label will have its own file in the original labels directory.
164
+
165
+ <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-labels.png" alt="Description">
166
+ <p><em>Decomposed Custom Labels</em></p>
167
+
160
168
  ## Supported Metadata
161
169
 
162
170
  All metadata types imported from this plugin's version of `@salesforce/source-deploy-retrieve` (SDR) toolkit are supported except for certain types.
@@ -196,13 +204,13 @@ Here are some examples:
196
204
 
197
205
  ## Debugging
198
206
 
199
- The plugin searches the current working directory for the `sfdx-project.json`, and if it's not found in the current working directory, it will search upwards for it until it hits your root drive. If the `sfdx-project.json` file isn't found, the plugin will fail with:
207
+ `sf-decomposer` searches the current working directory for the `sfdx-project.json`, and if it's not found in the current working directory, it will search upwards for it until it hits your root drive. If the `sfdx-project.json` file isn't found, the plugin will fail with:
200
208
 
201
209
  ```
202
210
  Error (1): sfdx-project.json not found in any parent directory.
203
211
  ```
204
212
 
205
- 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:
213
+ 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:
206
214
 
207
215
  ```
208
216
  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.
@@ -216,21 +224,9 @@ To add additional debugging statements to the log file, provide the `--debug` fl
216
224
 
217
225
  Recommend adding the `disassemble.log` to your `.gitignore` file if you are using this in a git-based repo.
218
226
 
219
- ## Ignore Files when Decomposing
220
-
221
- If you wish, you can create an ignore file in the root of your repository named `.sfdecomposerignore` to ignore specific XMLs when running the decompose command. The ignore file should follow [.gitignore spec 2.22.1](https://git-scm.com/docs/gitignore).
222
-
223
- 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`:
224
-
225
- ```
226
- [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
227
- ```
228
-
229
- The ignore file is not read by the recompose command.
230
-
231
227
  ## Hooks
232
228
 
233
- **NOTE:** In order to avoid errors during the retrieval, you must configure your `.forceignore` file to have the Salesforce CLI ignore the decomposed files. See [Ignore Files](#ignore-files) section.
229
+ > **NOTE:** In order to avoid errors during the retrieval, you must configure your `.forceignore` file to have the Salesforce CLI ignore the decomposed files. See [Ignore Files](#ignore-files) section.
234
230
 
235
231
  A post-retrieve hook (for the decompose command) and a pre-run hook (for the recompose command) have been configured if you elect to use them. The post-retrieve hook will automatically decompose the desired metadata types after every Salesforce CLI retrieval (`sf project retrieve start` command). The pre-run hook will automatically recompose the desired metadata types before every Salesforce CLI deployment/validation (`sf project deploy start` and `sf project deploy validate` commands).
236
232
 
@@ -246,15 +242,27 @@ If the `.sfdecomposer.config.json` file isn't found, the hooks will be skipped.
246
242
 
247
243
  ## Ignore Files
248
244
 
249
- ### `.forceignore` updates
245
+ ### `.forceignore`
250
246
 
251
247
  The Salesforce CLI **must** ignore the decomposed files and allow the recomposed files.
252
248
 
253
249
  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`).
254
250
 
255
- ### `.gitignore` updates
251
+ ### `.sfdecomposerignore`
252
+
253
+ If you wish, you can create a `.sfdecomposerignore` file in the root of your repository 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).
254
+
255
+ 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`:
256
+
257
+ ```
258
+ [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
259
+ ```
260
+
261
+ `.sfdecomposerignore` is not read by the recompose command.
262
+
263
+ ### `.gitignore`
256
264
 
257
- Optionally, Git (or whatever version control system you are using) can ignore the recomposed files so you don't stage those in your repositories. You can also ignore the log created by the disassembler package.
265
+ Optionally, Git (or whatever version control system you are using) 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.
258
266
 
259
267
  You can use the sample [.gitignore](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/samples/.gitignore) provided.
260
268
 
@@ -264,7 +272,7 @@ Contributions are welcome! See [Contributing](https://github.com/mcarvin8/sf-dec
264
272
 
265
273
  ## Issues
266
274
 
267
- If you encounter any issues, please create an issue in the repository's [issue tracker](https://github.com/mcarvin8/sf-decomposer/issues). Please also create issues for feature enhancements or to support newer metadata types added to the [SDR toolkit](https://github.com/forcedotcom/source-deploy-retrieve).
275
+ If you encounter any bugs or would like to request features, please create an [issue](https://github.com/mcarvin8/sf-decomposer/issues).
268
276
 
269
277
  ## License
270
278
 
@@ -16,19 +16,19 @@ You should run this after you retrieve metadata from an org.
16
16
 
17
17
  # flags.metadata-type.summary
18
18
 
19
- The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types with a single command.
19
+ The metadata suffix to process, such as 'flow', 'labels', etc.
20
20
 
21
21
  # flags.prepurge.summary
22
22
 
23
- If provided, purge directories of pre-existing decomposed files.
23
+ Purge directories of pre-existing decomposed files.
24
24
 
25
25
  # flags.postpurge.summary
26
26
 
27
- If provided, purge the original files after decomposing them.
27
+ Purge the original files after decomposing them.
28
28
 
29
29
  # flags.debug.summary
30
30
 
31
- If provided, debug to a log file.
31
+ Debug to a log file.
32
32
 
33
33
  # flags.format.summary
34
34
 
@@ -16,15 +16,15 @@ You should run this before you deploy decomposed metadata to an org.
16
16
 
17
17
  # flags.metadata-type.summary
18
18
 
19
- The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types with a single command.
19
+ The metadata suffix to process, such as 'flow', 'labels', etc.
20
20
 
21
21
  # flags.postpurge.summary
22
22
 
23
- If provided, purge the decomposed files after recomposing them.
23
+ Purge the decomposed files after recomposing them.
24
24
 
25
25
  # flags.debug.summary
26
26
 
27
- If provided, debug to a log file.
27
+ Debug to a log file.
28
28
 
29
29
  # flags.format.summary
30
30
 
package/oclif.lock CHANGED
@@ -1596,10 +1596,10 @@
1596
1596
  string-width "^7.2.0"
1597
1597
  terminal-link "^3.0.0"
1598
1598
 
1599
- "@salesforce/source-deploy-retrieve@^12.14.6":
1600
- version "12.14.6"
1601
- resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.14.6.tgz#19fee9916619cac38d4b703de3ad9eba10343143"
1602
- integrity sha512-7a9tzVmRhuja1w05zhW/UpoViA5xYXJGsZlSjAqOPHH5n4e2/q9Q+XeOb2kfusOr34oEHoU+YFcsZXWc9hu0SA==
1599
+ "@salesforce/source-deploy-retrieve@^12.15.1":
1600
+ version "12.15.1"
1601
+ resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.15.1.tgz#72e86cf950a7abf0b5f2d1b1b4db88260d41b426"
1602
+ integrity sha512-wJRdTYMv8W/W4Y5ml7V2uW9/drS34My0y4CB9I+eaR1pls9a6QorAa5NgFYoi5Re+UuiojOcIUNGuKKvsA4Wbg==
1603
1603
  dependencies:
1604
1604
  "@salesforce/core" "^8.8.2"
1605
1605
  "@salesforce/kit" "^3.2.3"
@@ -4112,6 +4112,13 @@ fast-xml-parser@^4.5.1:
4112
4112
  dependencies:
4113
4113
  strnum "^1.0.5"
4114
4114
 
4115
+ fast-xml-parser@^5.0.6:
4116
+ version "5.0.6"
4117
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.0.6.tgz#3531c630ea334bd67b91f236117fbf439a19b21f"
4118
+ integrity sha512-5zIl0jWsewL5LdneswG6aJXx1YH1FXQ02UVIe/CZI3wXhI3SqP62bjcIYRNOgU43/MnN1t/MCpH6UoOtBrDNug==
4119
+ dependencies:
4120
+ strnum "^2.0.4"
4121
+
4115
4122
  fastest-levenshtein@^1.0.7:
4116
4123
  version "1.0.16"
4117
4124
  resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz"
@@ -7223,6 +7230,11 @@ strnum@^1.0.5:
7223
7230
  resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz"
7224
7231
  integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
7225
7232
 
7233
+ strnum@^2.0.4:
7234
+ version "2.0.4"
7235
+ resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.0.4.tgz#7b2ace8a55d8c92a41c2d339ddb1bc306f337820"
7236
+ integrity sha512-qrXhLMohxtEPKMlajtNaOp5zvAQUo6L3fNcdiJKzWH98kGfklqGwmxhFjM7DzxsuoVM7rJeiYr+lEcu4Jlu9UQ==
7237
+
7226
7238
  supports-color@^5.3.0:
7227
7239
  version "5.5.0"
7228
7240
  resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@@ -7791,12 +7803,12 @@ write-file-atomic@^3.0.0:
7791
7803
  signal-exit "^3.0.2"
7792
7804
  typedarray-to-buffer "^3.1.5"
7793
7805
 
7794
- xml-disassembler@^1.3.11:
7795
- version "1.3.11"
7796
- resolved "https://registry.yarnpkg.com/xml-disassembler/-/xml-disassembler-1.3.11.tgz#427ea0ef5ab679dce3ff931136834c821dd1e374"
7797
- integrity sha512-SK20Co9nxwnQIDh7qlSX9lPsp4Zho+ysMXulsUmDhEAYLe57WHaBfi0DcdgTrB9cWBgjrM8TtipK7FZ81rzCag==
7806
+ xml-disassembler@^1.3.12:
7807
+ version "1.3.12"
7808
+ resolved "https://registry.yarnpkg.com/xml-disassembler/-/xml-disassembler-1.3.12.tgz#f3fa2ea6573e815c20e6ca2e7a758dfe68a7b807"
7809
+ integrity sha512-P/aApcGRfq568GHwNBQDqdsKq686rwX03ZusyDugbokxd7CDPB5AXBP79bdrJWdKV4k6l/dHBfRwMzJ/kgcNbg==
7798
7810
  dependencies:
7799
- fast-xml-parser "^4.5.1"
7811
+ fast-xml-parser "^5.0.6"
7800
7812
  ignore "^5.3.1"
7801
7813
  log4js "^6.9.1"
7802
7814
  tslib "^2.6.2"
@@ -7809,21 +7821,21 @@ xml2js@^0.6.2:
7809
7821
  sax ">=0.6.0"
7810
7822
  xmlbuilder "~11.0.0"
7811
7823
 
7812
- xml2json-disassembler@^1.1.11:
7813
- version "1.1.11"
7814
- resolved "https://registry.yarnpkg.com/xml2json-disassembler/-/xml2json-disassembler-1.1.11.tgz#3500612985d0139021bf960031b4cfbde719dc2a"
7815
- integrity sha512-SeiOFYNo5+T0wLNBWuQaePYo7P+LDIBGK8ZfbWolkWtK5o3isoR+955oDdnc/M3edpVElUi2hHq338PgG56ing==
7824
+ xml2json-disassembler@^1.1.12:
7825
+ version "1.1.12"
7826
+ resolved "https://registry.yarnpkg.com/xml2json-disassembler/-/xml2json-disassembler-1.1.12.tgz#b7feba01bd575f9d68e1fc0341ab0b3f5d09b4fc"
7827
+ integrity sha512-YQJd7XPdq8pxLZK++Ld6GGOowQalZsarg3UXh2GA4RwM6yPL4vpKPW6kFE3aa9llsHDgpBVZH3TYoirtfAWvUA==
7816
7828
  dependencies:
7817
7829
  tslib "^2.6.2"
7818
- xml-disassembler "^1.3.11"
7830
+ xml-disassembler "^1.3.12"
7819
7831
 
7820
- xml2yaml-disassembler@^1.1.11:
7821
- version "1.1.11"
7822
- resolved "https://registry.yarnpkg.com/xml2yaml-disassembler/-/xml2yaml-disassembler-1.1.11.tgz#cd3f2a1394fed8df41d62184eecefb112d129f62"
7823
- integrity sha512-gvEYlHVn0nqiP0P0iGZrtL4RlTg1jFCvP+QHSWSTDhsdCQP66B5qgaiKgjkPLrwq1aMsEQf0C4Wxxc1ogNwlnw==
7832
+ xml2yaml-disassembler@^1.1.12:
7833
+ version "1.1.12"
7834
+ resolved "https://registry.yarnpkg.com/xml2yaml-disassembler/-/xml2yaml-disassembler-1.1.12.tgz#3f933b33a4f6a30b19e43277890be7914fa6b096"
7835
+ integrity sha512-BpTbiJsECMWxDme/ZwkVsDkDQuGXb14YswViajIWkNOMnzH6/8ITUqLMUsL0GGajufhM9a3+xNiZF0k/9Kzk5A==
7824
7836
  dependencies:
7825
7837
  tslib "^2.6.2"
7826
- xml-disassembler "^1.3.11"
7838
+ xml-disassembler "^1.3.12"
7827
7839
  yaml "^2.7.0"
7828
7840
 
7829
7841
  xmlbuilder@~11.0.0:
@@ -29,7 +29,7 @@
29
29
  "char": "m",
30
30
  "name": "metadata-type",
31
31
  "required": true,
32
- "summary": "The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types with a single command.",
32
+ "summary": "The metadata suffix to process, such as 'flow', 'labels', etc.",
33
33
  "hasDynamicHelp": false,
34
34
  "multiple": true,
35
35
  "type": "option"
@@ -37,21 +37,21 @@
37
37
  "prepurge": {
38
38
  "name": "prepurge",
39
39
  "required": false,
40
- "summary": "If provided, purge directories of pre-existing decomposed files.",
40
+ "summary": "Purge directories of pre-existing decomposed files.",
41
41
  "allowNo": false,
42
42
  "type": "boolean"
43
43
  },
44
44
  "postpurge": {
45
45
  "name": "postpurge",
46
46
  "required": false,
47
- "summary": "If provided, purge the original files after decomposing them.",
47
+ "summary": "Purge the original files after decomposing them.",
48
48
  "allowNo": false,
49
49
  "type": "boolean"
50
50
  },
51
51
  "debug": {
52
52
  "name": "debug",
53
53
  "required": false,
54
- "summary": "If provided, debug to a log file.",
54
+ "summary": "Debug to a log file.",
55
55
  "allowNo": false,
56
56
  "type": "boolean"
57
57
  },
@@ -131,7 +131,7 @@
131
131
  "char": "m",
132
132
  "name": "metadata-type",
133
133
  "required": true,
134
- "summary": "The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types with a single command.",
134
+ "summary": "The metadata suffix to process, such as 'flow', 'labels', etc.",
135
135
  "hasDynamicHelp": false,
136
136
  "multiple": true,
137
137
  "type": "option"
@@ -139,14 +139,14 @@
139
139
  "postpurge": {
140
140
  "name": "postpurge",
141
141
  "required": false,
142
- "summary": "If provided, purge the decomposed files after recomposing them.",
142
+ "summary": "Purge the decomposed files after recomposing them.",
143
143
  "allowNo": false,
144
144
  "type": "boolean"
145
145
  },
146
146
  "debug": {
147
147
  "name": "debug",
148
148
  "required": false,
149
- "summary": "If provided, debug to a log file.",
149
+ "summary": "Debug to a log file.",
150
150
  "allowNo": false,
151
151
  "type": "boolean"
152
152
  },
@@ -198,5 +198,5 @@
198
198
  ]
199
199
  }
200
200
  },
201
- "version": "5.3.9"
201
+ "version": "5.3.11"
202
202
  }
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "sf-decomposer",
3
- "description": "Decomposes Salesforce metadata into more manageable files.",
4
- "version": "5.3.9",
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.3.11",
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.14.6",
9
+ "@salesforce/source-deploy-retrieve": "^12.15.1",
10
10
  "fs-extra": "^11.2.0",
11
- "xml-disassembler": "^1.3.11",
12
- "xml2json-disassembler": "^1.1.11",
13
- "xml2yaml-disassembler": "^1.1.11"
11
+ "xml-disassembler": "^1.3.12",
12
+ "xml2json-disassembler": "^1.1.12",
13
+ "xml2yaml-disassembler": "^1.1.12"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@commitlint/cli": "^18.6.1",