sf-decomposer 4.1.5 → 4.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,9 +2,9 @@
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
 
5
- The `sf-decomposer` is a Salesforce plugin to read the original metadata files (XML) and create smaller, more manageable files for version control. The inverse function (`recompose`) will recreate metadata files for deployments. This plugin is intended for users who deploy their Salesforce codebase from a git repository that follows the Salesforce DX Project Configuration (`sfdx-project.json` file).
5
+ The `sf-decomposer` is a Salesforce plugin that reads the original metadata files (XML) and creates smaller, more manageable files for version control. The inverse function (`recompose`) will recreate deployment-compatible metadata files. This plugin is intended for users who deploy their Salesforce codebase from a git repository that follows the Salesforce DX Project Configuration (`sfdx-project.json` file).
6
6
 
7
- This plugin requires [git](https://git-scm.com/downloads) to be installed and that it can be called using the command `git`.
7
+ This plugin requires [git](https://git-scm.com/downloads) to be installed and it can be called using the command `git`.
8
8
 
9
9
  This will parse and retain the following in the original XMLs:
10
10
 
@@ -12,14 +12,14 @@ This will parse and retain the following in the original XMLs:
12
12
  - Comments
13
13
  - Attributes
14
14
 
15
- The decomposed file format can be XML, JSON, or YAML. Based on testing, XML and YAML handles CDATA formatting nicer than JSON.
15
+ The decomposed file format can be XML, JSON, or YAML. Based on testing, XML and YAML handle CDATA formatting more nicely than JSON.
16
16
 
17
17
  **DISCLAIMERS:**
18
18
 
19
- - You must update the `.forceignore` to have the Salesforce CLI ignore the decomposed files created by this plugin. See section `Ignore Files`. Updates to the `.gitignore` are optional and can be updated based on what you want staged in your repo.
20
- - It is highly recommended that you extensively test this plugin in a sandbox environment on the metadata types you wish to use this tool for.
19
+ - You must update the `.forceignore` to have the Salesforce CLI ignore the decomposed files created by this plugin. See section `Ignore Files`. Updates to the `.gitignore` are optional and can be updated based on what you want to be staged in your repo.
20
+ - 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.
21
21
  - Do not change your production/QA pipelines until you have tested this and are happy with the results.
22
- - Confirm your deployment pipelines are stable prior to implementing this plugin.
22
+ - Ensure your deployment pipelines are stable before implementing this plugin.
23
23
 
24
24
  ## Install
25
25
 
@@ -34,17 +34,17 @@ The `sf-decomposer` supports 2 commands:
34
34
  - `sf decomposer decompose`
35
35
  - `sf decomposer recompose`
36
36
 
37
- Both commands need to be ran somewhere inside your Salesforce DX git repository (root folder is preferred). This plugin will read the `sfdx-project.json` file and it will process all package directories listed in the file.
37
+ Both commands need to be run somewhere inside your Salesforce DX git repository (root folder is preferred). This plugin will read the `sfdx-project.json` file and process all package directories listed in the file.
38
38
 
39
39
  ## `sf decomposer decompose`
40
40
 
41
- Decomposes the original metadata files into smaller files for version control. Excluding custom labels, the smaller files will be placed into new sub-directories:
41
+ Decomposes the original metadata files into smaller files for version control. Except for custom labels, the smaller files will be placed into new sub-directories:
42
42
 
43
43
  <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-perm-set.png">
44
44
 
45
45
  <br>
46
46
 
47
- Custom Labels will be decomposed directly in the root labels folder:
47
+ Custom labels will be decomposed directly in the root labels folder:
48
48
 
49
49
  <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-labels.png">
50
50
 
@@ -62,13 +62,11 @@ Unique ID elements are used to name decomposed files for nested elements. The de
62
62
  </labels>
63
63
  ```
64
64
 
65
- If the default unique ID elements are not found in the nested element, the plugin will look for any other metadata specific unique ID elements (see `CONTRIBUTING` section for more information).
65
+ If the default unique ID elements are not found in the nested element, the plugin will look for any other metadata-specific unique ID elements (see the `Contributing` section for more information). If a unique ID element is not found, the short SHA-256 hash of the element contents will be used to name the decomposed file, as shown below. It's recommended to add the `--prepurge` flag to the `decompose` command to remove pre-existing decomposed files that may conflict with newer decomposed files due to different SHA hashes.
66
66
 
67
- If a unique ID element is not found in the nested element, the short SHA-256 hash of the element contents will be used to name the decomposed file, as shown below.
67
+ Using the `--format` flag, you can set the desired file type for the decomposed files to XML (default), YAML, or JSON.
68
68
 
69
- It's recommended to add the `--prepurge` flag to the `decompose` command to remove pre-existing decomposed files that may conflict with newer decomposed files due to different SHA hashes.
70
-
71
- Using the `--format` flag, you can set the desired file type for the decomposed files to XML (default), YAML, or JSON. **Note**: The `--format` flag for the recompose command must match what you selected for the decompose `--format`.
69
+ **Note**: The `--format` flag for the recompose command must match what you selected for the decompose `--format`.
72
70
 
73
71
  <img src="https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/.github/images/decomposed-apps-hashes.png">
74
72
 
@@ -79,7 +77,7 @@ USAGE
79
77
  $ sf decomposer decompose -m <value> -f <value> [--prepurge --postpurge --debug --json]
80
78
 
81
79
  FLAGS
82
- -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types at once.
80
+ -m, --metadata-type=<value> 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.
83
81
  -f, --format=<value> [default: 'xml'] The file type for the decomposed files.
84
82
  --prepurge [default: false] If provided, purge directories of pre-existing decomposed files.
85
83
  --postpurge [default: false] If provided, purge the original files after decomposing them.
@@ -93,7 +91,7 @@ DESCRIPTION
93
91
 
94
92
  These smaller decomposed files can be XMLs, YAMLs, or JSONs.
95
93
 
96
- You should run this after retrieving metadata from an org.
94
+ You should run this after you retrieve metadata from an org.
97
95
 
98
96
  EXAMPLES
99
97
  Decompose all flows:
@@ -108,7 +106,7 @@ EXAMPLES
108
106
 
109
107
  ## `sf decomposer recompose`
110
108
 
111
- Reads all of the files created by the decompose command and recreates metadata files suitable for deployments.
109
+ Reads the files created by the decompose command and recreates deployment-compatible metadata files.
112
110
 
113
111
  Ensure the `--format` flag of the recompose command matches the file format selected for the `--format` flag in the decompose command. File formats for the decomposed files can be XML (default), YAML, or JSON.
114
112
 
@@ -119,7 +117,7 @@ USAGE
119
117
  $ sf decomposer recompose -m <value> -f <value> [--postpurge --debug --json]
120
118
 
121
119
  FLAGS
122
- -m, --metadata-type=<value> The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types at once.
120
+ -m, --metadata-type=<value> 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.
123
121
  -f, --format=<value> [default: 'xml'] The file format for the decomposed files.
124
122
  --postpurge [default: false] If provided, purge the decomposed files after recomposing them.
125
123
  --debug [default: false] If provided, log debugging results to a text file (disassemble.log).
@@ -128,9 +126,9 @@ GLOBAL FLAGS
128
126
  --json Format output as json.
129
127
 
130
128
  DESCRIPTION
131
- This command will read all of the decomposed files and recreate deployment compatible metadata files in each package directory.
129
+ This command will read the decomposed files and recreate deployment-compatible metadata files in each package directory.
132
130
 
133
- You should run this before you deploy the metadata to an org.
131
+ You should run this before you deploy decomposed metadata to an org.
134
132
 
135
133
  EXAMPLES
136
134
  Recompose all flows:
@@ -175,7 +173,7 @@ Here are some examples:
175
173
  - The `botVersion` meta suffix will be blocked from running directly
176
174
  - Marketing App Extension (`--metadata-type "marketingappextension"`)
177
175
 
178
- ### Exceptions
176
+ ### Metadata Exceptions
179
177
 
180
178
  `botVersion` is blocked from being ran directly. Please use the `bot` meta suffix to decompose and recompose bots and bot versions.
181
179
 
@@ -201,13 +199,9 @@ Children metadata types (ex: custom fields) are not supported and will result in
201
199
  Error (1): Metadata type not found for the given suffix: field.
202
200
  ```
203
201
 
204
- ### Issues
205
-
206
- Please create "Issues" in this repository if you experience problems decomposing and recomposing specific metadata types or if this plugin's version of SDR needs to be updated to account for new metadata types.
207
-
208
202
  ## Warnings and Logging
209
203
 
210
- The package used to decompose and recompose XMLs, `xml-disassembler`, 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 runnign this plugin at all times. If there were no XML decomposing/recomposing errors, this log will simply be empty.
204
+ The package used to decompose and recompose XMLs, `xml-disassembler`, 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 XML decomposing/recomposing errors, this log will simply be empty.
211
205
 
212
206
  By default, this package will only log errors to the file. This plugin will print `xml-disassembler` errors as warnings in the command terminal to allow all other files to be processed.
213
207
 
@@ -273,43 +267,7 @@ If the `.sfdecomposer.config.json` file isn't found, the hooks will be skipped.
273
267
 
274
268
  ## Ignore Files
275
269
 
276
- The `.gitignore` and `.forceignore` files in your repository should be updated based on the metadata types you wish to decompose.
277
-
278
- Reference the below examples:
279
-
280
- ### `.gitignore` updates
281
-
282
- Git should ignore the recomposed files.
283
-
284
- ```
285
- # Ignore recomposed files
286
- **/permissionsets/*.permissionset-meta.xml
287
- **/profiles/*.profile-meta.xml
288
- **/labels/CustomLabels.labels-meta.xml
289
- **/workflows/*.workflow-meta.xml
290
- **/flows/*.flow-meta.xml
291
- **/matchingRules/*.matchingRule-meta.xml
292
- **/assignmentRules/*.assignmentRules-meta.xml
293
- **/escalationRules/*.escalationRules-meta.xml
294
- **/sharingRules/*.sharingRules-meta.xml
295
- **/autoResponseRules/*.autoResponseRules-meta.xml
296
- **/globalValueSetTranslations/*.globalValueSetTranslation-meta.xml
297
- **/standardValueSetTranslations/*.standardValueSetTranslation-meta.xml
298
- **/translations/*.translation-meta.xml
299
- **/globalValueSets/*.globalValueSet-meta.xml
300
- **/standardValueSets/*.standardValueSet-meta.xml
301
- **/decisionMatrixDefinition/*.decisionMatrixDefinition-meta.xml
302
- **/aiScoringModelDefinitions/*.aiScoringModelDefinition-meta.xml
303
- **/bots/*/*.botVersion-meta.xml
304
- **/bots/*/*.bot-meta.xml
305
- **/marketingappextensions/*.marketingappextension-meta.xml
306
- ```
307
-
308
- Git should also ignore the log created by the `xml-disassembler` package (see previous section).
309
-
310
- ```
311
- disassemble.log
312
- ```
270
+ You must update the `.forceignore` to have the Salesforce CLI ignore the decomposed files created by this plugin. Optionally, you can add the recomposed files to your `.gitignore` to avoid staging those in your repoisotry.
313
271
 
314
272
  ### `.forceignore` updates
315
273
 
@@ -359,3 +317,53 @@ The Salesforce CLI should ignore the decomposed files and should allow the recom
359
317
  !**/bots/*/*.bot-meta.xml
360
318
  !**/marketingappextensions/*.marketingappextension-meta.xml
361
319
  ```
320
+
321
+ ### `.gitignore` updates
322
+
323
+ Git should ignore the recomposed files.
324
+
325
+ ```
326
+ # Ignore recomposed files
327
+ **/permissionsets/*.permissionset-meta.xml
328
+ **/profiles/*.profile-meta.xml
329
+ **/labels/CustomLabels.labels-meta.xml
330
+ **/workflows/*.workflow-meta.xml
331
+ **/flows/*.flow-meta.xml
332
+ **/matchingRules/*.matchingRule-meta.xml
333
+ **/assignmentRules/*.assignmentRules-meta.xml
334
+ **/escalationRules/*.escalationRules-meta.xml
335
+ **/sharingRules/*.sharingRules-meta.xml
336
+ **/autoResponseRules/*.autoResponseRules-meta.xml
337
+ **/globalValueSetTranslations/*.globalValueSetTranslation-meta.xml
338
+ **/standardValueSetTranslations/*.standardValueSetTranslation-meta.xml
339
+ **/translations/*.translation-meta.xml
340
+ **/globalValueSets/*.globalValueSet-meta.xml
341
+ **/standardValueSets/*.standardValueSet-meta.xml
342
+ **/decisionMatrixDefinition/*.decisionMatrixDefinition-meta.xml
343
+ **/aiScoringModelDefinitions/*.aiScoringModelDefinition-meta.xml
344
+ **/bots/*/*.botVersion-meta.xml
345
+ **/bots/*/*.bot-meta.xml
346
+ **/marketingappextensions/*.marketingappextension-meta.xml
347
+ ```
348
+
349
+ Git should also ignore the log created by the `xml-disassembler` package.
350
+
351
+ ```
352
+ disassemble.log
353
+ ```
354
+
355
+ ## Contributing
356
+
357
+ Contributions are welcome! If you would like to contribute, please fork the repository, make your changes, and submit a pull request.
358
+
359
+ ### Unique ID Elements
360
+
361
+ To add more unique ID elements for a metadata type, you can update the `src/metadata/uniqueIdElements.json` file. The metadata type's suffix should be used as the key.
362
+
363
+ ## Issues
364
+
365
+ 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).
366
+
367
+ ## License
368
+
369
+ This project is licensed under the MIT license. Please see the [LICENSE](https://raw.githubusercontent.com/mcarvin8/sf-decomposer/main/LICENSE.md) file for details.
@@ -7,11 +7,11 @@ export default class DecomposerDecompose extends SfCommand<DecomposerDecomposeRe
7
7
  static readonly description: string;
8
8
  static readonly examples: string[];
9
9
  static readonly flags: {
10
- 'metadata-type': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
- prepurge: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
- postpurge: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
- debug: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
- format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ 'metadata-type': import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
11
+ prepurge: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ postpurge: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
15
  };
16
16
  run(): Promise<DecomposerDecomposeResult>;
17
17
  }
@@ -7,10 +7,10 @@ export default class DecomposerRecompose extends SfCommand<DecomposerRecomposeRe
7
7
  static readonly description: string;
8
8
  static readonly examples: string[];
9
9
  static readonly flags: {
10
- 'metadata-type': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
- postpurge: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
- debug: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
- format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ 'metadata-type': import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
11
+ postpurge: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
14
  };
15
15
  run(): Promise<DecomposerRecomposeResult>;
16
16
  }
@@ -1,6 +1,23 @@
1
- export interface ConfigFile {
1
+ export type ConfigFile = {
2
2
  metadataSuffixes: string;
3
3
  prePurge: boolean;
4
4
  postPurge: boolean;
5
5
  decomposedFormat: string;
6
- }
6
+ };
7
+ export type SfdxProject = {
8
+ packageDirectories: Array<{
9
+ path: string;
10
+ }>;
11
+ };
12
+ export type MetaAttributes = {
13
+ metaSuffix: string;
14
+ strictDirectoryName: boolean;
15
+ folderType: string;
16
+ metadataPaths: string[];
17
+ uniqueIdElements: string;
18
+ };
19
+ export type UniqueIdElements = {
20
+ [key: string]: {
21
+ uniqueIdElements: string[];
22
+ };
23
+ };
@@ -1,2 +1,3 @@
1
+ 'use strict';
1
2
  export {};
2
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/helpers/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/helpers/types.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageDirectories.js","sourceRoot":"","sources":["../../src/metadata/getPackageDirectories.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,qCAAqC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IAC/D,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,0DAA0D,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,cAAc,GAAW,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAgB,CAAC;IAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChH,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAuB,MAAM,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,gBAAwB;IAC5E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACnE,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5D,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"getPackageDirectories.js","sourceRoot":"","sources":["../../src/metadata/getPackageDirectories.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,qCAAqC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IAC/D,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,0DAA0D,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,cAAc,GAAW,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAgB,CAAC;IAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChH,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAuB,MAAM,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,gBAAwB;IAC5E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACnE,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5D,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,9 +1,2 @@
1
- interface MetaAttributes {
2
- metaSuffix: string;
3
- strictDirectoryName: boolean;
4
- folderType: string;
5
- metadataPaths: string[];
6
- uniqueIdElements: string;
7
- }
1
+ import { MetaAttributes } from '../helpers/types.js';
8
2
  export declare function getRegistryValuesBySuffix(metaSuffix: string, command: string): Promise<MetaAttributes>;
9
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"getRegistryValuesBySuffix.js","sourceRoot":"","sources":["../../src/metadata/getRegistryValuesBySuffix.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,cAAc,EAAgB,MAAM,oCAAoC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAUnE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAkB,EAAE,OAAe;IACjF,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,CACT,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAA6B,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/F,IAAI,iBAAiB,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAC;IAEjH,IACE,iBAAiB,CAAC,UAAU,EAAE,OAAO;QACrC,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAC7E,iBAAiB,CAAC,UAAU,CAAC,OAAO,CACrC,EACD,CAAC;QACD,MAAM,KAAK,CACT,uBAAuB,iBAAiB,CAAC,UAAU,CAAC,OAAO,+CAA+C,CAC3G,CAAC;IACJ,CAAC;IAED,IAAI,gBAAoC,CAAC;IACzC,IAAI,OAAO,KAAK,WAAW;QAAE,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,aAAa,GAAa,MAAM,qBAAqB,CAAC,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAClG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM,KAAK,CAAC,wBAAwB,iBAAiB,CAAC,aAAa,uCAAuC,CAAC,CAAC;IAE9G,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,iBAAiB,CAAC,MAAgB;QAC9C,mBAAmB,EAAE,iBAAiB,CAAC,mBAA8B;QACrE,UAAU,EAAE,iBAAiB,CAAC,UAAoB;QAClD,aAAa;QACb,gBAAgB,EAAE,gBAAgB;YAChC,CAAC,CAAC,GAAG,0BAA0B,IAAI,gBAAgB,EAAE;YACrD,CAAC,CAAC,0BAA0B;KAC/B,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"getRegistryValuesBySuffix.js","sourceRoot":"","sources":["../../src/metadata/getRegistryValuesBySuffix.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,cAAc,EAAgB,MAAM,oCAAoC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAkB,EAAE,OAAe;IACjF,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,CACT,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAA6B,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/F,IAAI,iBAAiB,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAC;IAEjH,IACE,iBAAiB,CAAC,UAAU,EAAE,OAAO;QACrC,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAC7E,iBAAiB,CAAC,UAAU,CAAC,OAAO,CACrC,EACD,CAAC;QACD,MAAM,KAAK,CACT,uBAAuB,iBAAiB,CAAC,UAAU,CAAC,OAAO,+CAA+C,CAC3G,CAAC;IACJ,CAAC;IAED,IAAI,gBAAoC,CAAC;IACzC,IAAI,OAAO,KAAK,WAAW;QAAE,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,aAAa,GAAa,MAAM,qBAAqB,CAAC,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAClG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM,KAAK,CAAC,wBAAwB,iBAAiB,CAAC,aAAa,uCAAuC,CAAC,CAAC;IAE9G,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,iBAAiB,CAAC,MAAgB;QAC9C,mBAAmB,EAAE,iBAAiB,CAAC,mBAA8B;QACrE,UAAU,EAAE,iBAAiB,CAAC,UAAoB;QAClD,aAAa;QACb,gBAAgB,EAAE,gBAAgB;YAChC,CAAC,CAAC,GAAG,0BAA0B,IAAI,gBAAgB,EAAE;YACrD,CAAC,CAAC,0BAA0B;KAC/B,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getUniqueIdElements.js","sourceRoot":"","sources":["../../src/metadata/getUniqueIdElements.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IAC1D,MAAM,WAAW,GAAW,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAqB,CAAC;IAE/E,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getUniqueIdElements.js","sourceRoot":"","sources":["../../src/metadata/getUniqueIdElements.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IAC1D,MAAM,WAAW,GAAW,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAqB,CAAC;IAE/E,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -62,5 +62,8 @@
62
62
  },
63
63
  "marketingappextension": {
64
64
  "uniqueIdElements": ["apiName"]
65
+ },
66
+ "loyaltyProgramSetup": {
67
+ "uniqueIdElements": ["processName"]
65
68
  }
66
69
  }
@@ -4,11 +4,9 @@ Decomposes the metadata files created by retrievals.
4
4
 
5
5
  # description
6
6
 
7
- This command will read all of the original metadata files and separate them into smaller files.
7
+ This command will read the original metadata files and decompose them into smaller files. The decomposed file format can be XML, YAML, or JSON.
8
8
 
9
- These smaller decomposed files can be XMLs, YAMLs, or JSONs.
10
-
11
- You should use this to create files for version control after retrieving metadata from an org.
9
+ You should run this after you retrieve metadata from an org and before you commit the metadata to your git repository.
12
10
 
13
11
  # examples
14
12
 
@@ -17,7 +15,7 @@ You should use this to create files for version control after retrieving metadat
17
15
 
18
16
  # flags.metadata-type.summary
19
17
 
20
- The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types at once.
18
+ 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.
21
19
 
22
20
  # flags.prepurge.summary
23
21
 
@@ -29,7 +27,7 @@ If provided, purge the original files after decomposing them.
29
27
 
30
28
  # flags.debug.summary
31
29
 
32
- If provided, debug to log file.
30
+ If provided, debug to a log file.
33
31
 
34
32
  # flags.format.summary
35
33
 
@@ -1,12 +1,12 @@
1
1
  # summary
2
2
 
3
- Recomposes the files created by the `decompose` command prior to deployments.
3
+ Recomposes the files created by the `decompose` command before deployments.
4
4
 
5
5
  # description
6
6
 
7
- This command will read all of the decomposed files and recreate deployment compatible metadata files in each package directory.
7
+ This command will read the decomposed files and recreate deployment-compatible metadata files in each package directory.
8
8
 
9
- You should run this before you deploy the metadata to an org.
9
+ You should run this before you deploy decomposed metadata to an org.
10
10
 
11
11
  # examples
12
12
 
@@ -15,7 +15,7 @@ You should run this before you deploy the metadata to an org.
15
15
 
16
16
  # flags.metadata-type.summary
17
17
 
18
- The metadata suffix to process, such as 'flow', 'labels', etc. You can provide this flag multiple times to process multiple metadata types at once.
18
+ 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
19
 
20
20
  # flags.postpurge.summary
21
21
 
@@ -23,7 +23,7 @@ If provided, purge the decomposed files after recomposing them.
23
23
 
24
24
  # flags.debug.summary
25
25
 
26
- If provided, debug to log file.
26
+ If provided, debug to a log file.
27
27
 
28
28
  # flags.format.summary
29
29