xml-disassembler 1.3.2 → 1.3.5

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
@@ -1,3 +1,30 @@
1
+ <!-- markdownlint-disable MD024 MD025 -->
2
+ <!-- markdown-link-check-disable -->
3
+
4
+ # Changelog
5
+
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
+
8
+ ## [1.3.5](https://github.com/mcarvin8/xml-disassembler/compare/v1.3.4...v1.3.5) (2025-01-04)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **deps:** bump fast-xml-parser from 4.3.4 to 4.5.1 ([f133c15](https://github.com/mcarvin8/xml-disassembler/commit/f133c15064b7595fff837c60c2d32d15aac26358))
14
+
15
+ ## [1.3.4](https://github.com/mcarvin8/xml-disassembler/compare/v1.3.3...v1.3.4) (2024-12-15)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * changelog formatting and build process ([b39b482](https://github.com/mcarvin8/xml-disassembler/commit/b39b482f953f9a3f1f18f7a3bb6398b9b94952fe))
21
+
22
+ ## [1.3.3](https://github.com/mcarvin8/xml-disassembler/compare/v1.3.2...v1.3.3) (2024-12-15)
23
+
24
+ ### Bug Fixes
25
+
26
+ - normalize paths to unix style ([ef0ec01](https://github.com/mcarvin8/xml-disassembler/commit/ef0ec01f832af5d78ded3845c9dc248740db7ed6))
27
+
1
28
  ## [1.3.2](https://github.com/mcarvin8/xml-disassembler/compare/v1.3.1...v1.3.2) (2024-05-22)
2
29
 
3
30
  ### Bug Fixes
package/README.md CHANGED
@@ -4,6 +4,24 @@
4
4
 
5
5
  A JavaScript package to disassemble XML files into smaller, more manageable files and re-assemble them when needed.
6
6
 
7
+ <!-- TABLE OF CONTENTS -->
8
+ <details>
9
+ <summary>Table of Contents</summary>
10
+
11
+ - [Background](#background)
12
+ - [Trade-offs](#trade-offs)
13
+ - [Install](#install)
14
+ - [Disassembling Files](#disassembling-files)
15
+ - [Reassembling Files](#reassembling-files)
16
+ - [Use Case](#use-case)
17
+ - [Ignore File](#ignore-file)
18
+ - [XML Parser](#xml-parser)
19
+ - [Logging](#logging)
20
+ - [Extensions](#extensions)
21
+ - [Template](#template)
22
+ </details>
23
+
24
+
7
25
  ## Background
8
26
 
9
27
  Large XML files, especially those generated by external tools, can be challenging to review and manage. These files contains thousands of lines of elements, making it difficult to track changes during version control and easy to lose changes if these files are automatically generated.
@@ -29,7 +47,7 @@ npm install xml-disassembler
29
47
 
30
48
  ## Disassembling Files
31
49
 
32
- Disassemble 1 XML file or multiple XML files in the immediate directory, without recursion. Each XML file will be disassembled into their own sub-directories using their base name (everything before the first `.` in the file-name).
50
+ Disassemble 1 XML file or multiple XML files in the immediate directory, without recursion. Each XML file will be disassembled into their own sub-directories using their base name (everything before the first `.` in the file-name). The paths you provide must be **relative** paths.
33
51
 
34
52
  Example:
35
53
 
@@ -100,7 +118,7 @@ Import the `DisassembleXMLFileHandler` class from the package.
100
118
  ```typescript
101
119
  /*
102
120
  FLAGS
103
- - filePath: Path to 1 XML file or a directory of XML files to disassemble. If the path provided is a directory, only the files in the immediate directory will be disassembled.
121
+ - filePath: Relative path to 1 XML file or a directory of XML files to disassemble. If the path provided is a directory, only the files in the immediate directory will be disassembled.
104
122
  - uniqueIdElements: (Optional) Comma-separated list of unique and required ID elements used to name disassembled files for nested elements.
105
123
  Defaults to SHA-256 hash if unique ID elements are undefined or not found.
106
124
  - prePurge: (Optional) Boolean value. If set to true, purge pre-existing disassembled directories prior to disassembling the file.
@@ -124,7 +142,7 @@ await handler.disassemble({
124
142
 
125
143
  ## Reassembling Files
126
144
 
127
- Reassemble 1 XML directory (`filePath`) containing disassembled files back into 1 XML file.
145
+ Reassemble 1 XML directory (`filePath`) containing disassembled files back into 1 XML file. The paths you provide must be **relative** paths.
128
146
 
129
147
  **NOTE**: You should be reassembling files created by this package's `DisassembleXMLFileHandler` class for intended results. This class will assume all disassembled files in `filePath` have the same XML Root Element. The reassembled XML file will be created in the parent directory of `filePath` and will overwrite the original file used to create the original disassembled directories, if it still exists and the `fileExtension` flag matches the original file extension.
130
148
 
@@ -133,7 +151,7 @@ Import the `ReassembleXMLFileHandler` class from the package.
133
151
  ```typescript
134
152
  /*
135
153
  FLAGS
136
- - filePath: Path to the disassembled XML files to reassemble (must be a directory)
154
+ - filePath: Relative path to the disassembled XML files to reassemble (must be a directory)
137
155
  - fileExtension: (Optional) Desired file extension for the final XML (default: `.xml`)
138
156
  - postPurge: (Optional) Boolean value. If set to true, purge the disassembled file directory (filePath) after reassembly.
139
157
  Defaults to false.
@@ -228,6 +246,14 @@ await reassembleHandler.reassemble({
228
246
  });
229
247
  ```
230
248
 
249
+ ## Extensions
250
+
251
+ These 2 extension packages depend on XML disassembler:
252
+
253
+ - [XML2JSON Disassembler](https://github.com/mcarvin8/xml2json-disassembler): Disassemble large XML files into smaller JSON files and reassemble the original XML file when needed
254
+ - [XML2YAML Disassembler](https://github.com/mcarvin8/xml2yaml-disassembler): Disassemble large XML files into smaller YAML files and reassemble the original XML file when needed
255
+
256
+
231
257
  ## Template
232
258
 
233
259
  This project was created from a template provided by [Allan Oricil](https://github.com/AllanOricil). Thank you Allan!
package/disassemble.log CHANGED
@@ -1,95 +1,95 @@
1
- [2024-05-22T16:31:20.803] [DEBUG] default - Parsing file to disassemble: mock/general/HR_Admin.permissionset-meta.xml
2
- [2024-05-22T16:31:20.811] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
3
- [2024-05-22T16:31:20.811] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
4
- [2024-05-22T16:31:20.811] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
5
- [2024-05-22T16:31:20.812] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
6
- [2024-05-22T16:31:20.813] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
7
- [2024-05-22T16:31:20.813] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
8
- [2024-05-22T16:31:20.814] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
9
- [2024-05-22T16:31:20.814] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
10
- [2024-05-22T16:31:20.815] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/HR_Admin.permissionset-meta.xml
11
- [2024-05-22T16:31:20.818] [DEBUG] default - Parsing directory to reassemble: mock/general/HR_Admin
12
- [2024-05-22T16:31:20.832] [DEBUG] default - Created reassembled file: mock/general/HR_Admin.permissionset-meta.xml
13
- [2024-05-22T16:31:20.834] [DEBUG] default - Parsing file to disassemble: mock/attributes/notes.xml
14
- [2024-05-22T16:31:20.835] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/103c6c8b.nest-meta.xml
15
- [2024-05-22T16:31:20.835] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/f876f2be.nest-meta.xml
16
- [2024-05-22T16:31:20.836] [DEBUG] default - Parsing directory to reassemble: mock/attributes/notes
17
- [2024-05-22T16:31:20.838] [DEBUG] default - Created reassembled file: mock/attributes/notes.xml
18
- [2024-05-22T16:31:20.839] [DEBUG] default - Parsing file to disassemble: mock/cdata/VidLand_US.marketingappextension-meta.xml
19
- [2024-05-22T16:31:20.840] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/marketingAppExtActions/register_user.marketingAppExtActions-meta.xml
20
- [2024-05-22T16:31:20.841] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/VidLand_US.marketingappextension-meta.xml
21
- [2024-05-22T16:31:20.842] [DEBUG] default - Parsing directory to reassemble: mock/cdata/VidLand_US
22
- [2024-05-22T16:31:20.843] [DEBUG] default - Created reassembled file: mock/cdata/VidLand_US.xml
23
- [2024-05-22T16:31:20.844] [DEBUG] default - Parsing file to disassemble: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
24
- [2024-05-22T16:31:20.845] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/30e8b6d2.valueTranslation-meta.xml
25
- [2024-05-22T16:31:20.846] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d7dd1420.valueTranslation-meta.xml
26
- [2024-05-22T16:31:20.846] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d8852ede.valueTranslation-meta.xml
27
- [2024-05-22T16:31:20.847] [DEBUG] default - Parsing directory to reassemble: mock/comments/Numbers-fr
28
- [2024-05-22T16:31:20.849] [DEBUG] default - Created reassembled file: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
29
- [2024-05-22T16:31:20.850] [DEBUG] default - Parsing file to disassemble: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
30
- [2024-05-22T16:31:20.855] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Get_Info.actionCalls-meta.xml
31
- [2024-05-22T16:31:20.856] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Post_to_Contact_s_Feed.actionCalls-meta.xml
32
- [2024-05-22T16:31:20.856] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/assignments/Set_Contact_ID.assignments-meta.xml
33
- [2024-05-22T16:31:20.857] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_If_Existing.decisions-meta.xml
34
- [2024-05-22T16:31:20.857] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_or_Create.decisions-meta.xml
35
- [2024-05-22T16:31:20.858] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/dynamicChoiceSets/accounts.dynamicChoiceSets-meta.xml
36
- [2024-05-22T16:31:20.858] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/formulas/created_or_updated.formulas-meta.xml
37
- [2024-05-22T16:31:20.859] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/BuilderType.processMetadataValues-meta.xml
38
- [2024-05-22T16:31:20.859] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/CanvasMode.processMetadataValues-meta.xml
39
- [2024-05-22T16:31:20.860] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/OriginBuilderType.processMetadataValues-meta.xml
40
- [2024-05-22T16:31:20.860] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordCreates/Create_Contact.recordCreates-meta.xml
41
- [2024-05-22T16:31:20.861] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordLookups/Find_a_Match.recordLookups-meta.xml
42
- [2024-05-22T16:31:20.861] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordUpdates/Update_Contact.recordUpdates-meta.xml
43
- [2024-05-22T16:31:20.861] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Confirm.screens-meta.xml
44
- [2024-05-22T16:31:20.862] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Contact_Info.screens-meta.xml
45
- [2024-05-22T16:31:20.862] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/start/Contact_Info.start-meta.xml
46
- [2024-05-22T16:31:20.862] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/textTemplates/chatterMessage.textTemplates-meta.xml
47
- [2024-05-22T16:31:20.863] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/ComplexObjectExample.variables-meta.xml
48
- [2024-05-22T16:31:20.863] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/contact.variables-meta.xml
49
- [2024-05-22T16:31:20.863] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/existingId.variables-meta.xml
50
- [2024-05-22T16:31:20.863] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/updateExisting.variables-meta.xml
51
- [2024-05-22T16:31:20.864] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/Get_Info.flow-meta.xml
52
- [2024-05-22T16:31:20.864] [DEBUG] default - Parsing directory to reassemble: mock/deeply-nested-unique-id-element/Get_Info
53
- [2024-05-22T16:31:20.883] [DEBUG] default - Created reassembled file: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
54
- [2024-05-22T16:31:20.884] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
55
- [2024-05-22T16:31:20.886] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
56
- [2024-05-22T16:31:20.886] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
57
- [2024-05-22T16:31:20.887] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
58
- [2024-05-22T16:31:20.887] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
59
- [2024-05-22T16:31:20.887] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
60
- [2024-05-22T16:31:20.888] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
61
- [2024-05-22T16:31:20.889] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
62
- [2024-05-22T16:31:20.892] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
63
- [2024-05-22T16:31:20.893] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
64
- [2024-05-22T16:31:20.896] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
65
- [2024-05-22T16:31:20.897] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
66
- [2024-05-22T16:31:20.897] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
67
- [2024-05-22T16:31:20.897] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
68
- [2024-05-22T16:31:20.898] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
69
- [2024-05-22T16:31:20.898] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
70
- [2024-05-22T16:31:20.899] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
71
- [2024-05-22T16:31:20.901] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
72
- [2024-05-22T16:31:20.903] [DEBUG] default - Parsing file to disassemble: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin.permissionset-meta.xml
73
- [2024-05-22T16:31:20.904] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
74
- [2024-05-22T16:31:20.904] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
75
- [2024-05-22T16:31:20.905] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
76
- [2024-05-22T16:31:20.905] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
77
- [2024-05-22T16:31:20.905] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
78
- [2024-05-22T16:31:20.906] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
79
- [2024-05-22T16:31:20.906] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
80
- [2024-05-22T16:31:20.907] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
81
- [2024-05-22T16:31:20.907] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
82
- [2024-05-22T16:31:20.907] [DEBUG] default - Parsing directory to reassemble: mock/no-namespace/HR_Admin
83
- [2024-05-22T16:31:20.912] [DEBUG] default - Created reassembled file: mock/no-namespace/HR_Admin.permissionset-meta.xml
84
- [2024-05-22T16:31:20.913] [ERROR] default - The file path provided is not an XML file: /home/runner/work/xml-disassembler/xml-disassembler/mock/not-an-xml.txt
85
- [2024-05-22T16:31:20.913] [ERROR] default - The provided path to reassemble is not a directory: mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
86
- [2024-05-22T16:31:20.914] [DEBUG] default - Parsing file to disassemble: mock/no-root-element/Assessment_Bot.bot-meta.xml
87
- [2024-05-22T16:31:20.915] [ERROR] default - mock/no-root-element/Assessment_Bot.bot-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
88
- [2024-05-22T16:31:20.915] [DEBUG] default - Parsing directory to reassemble: mock/no-root-element/Assessment_Bot
89
- [2024-05-22T16:31:20.916] [ERROR] default - mock/no-root-element/Assessment_Bot/Assessment_Bot.bot-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
90
- [2024-05-22T16:31:20.916] [ERROR] default - mock/no-root-element/Assessment_Bot/botMlDomain/419e0199.botMlDomain-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
91
- [2024-05-22T16:31:20.916] [ERROR] default - No files under mock/no-root-element/Assessment_Bot were parsed successfully. A reassembled XML file was not created.
92
- [2024-05-22T16:31:20.917] [DEBUG] default - Parsing file to disassemble: mock/no-nested-elements/HR_Admin.xml
93
- [2024-05-22T16:31:20.918] [ERROR] default - The XML file mock/no-nested-elements/HR_Admin.xml only has leaf elements. This file will not be disassembled.
94
- [2024-05-22T16:31:20.918] [WARN] default - File ignored by .xmldisassemblerignore: mock/ignore/HR_Admin.permissionset-meta.xml
95
- [2024-05-22T16:31:20.919] [WARN] default - File ignored by .xmldisassemblerignore: /home/runner/work/xml-disassembler/xml-disassembler/mock/ignore/HR_Admin.permissionset-meta.xml
1
+ [2025-01-04T18:32:35.774] [DEBUG] default - Parsing file to disassemble: mock/general/HR_Admin.permissionset-meta.xml
2
+ [2025-01-04T18:32:35.781] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
3
+ [2025-01-04T18:32:35.782] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
4
+ [2025-01-04T18:32:35.782] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
5
+ [2025-01-04T18:32:35.783] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
6
+ [2025-01-04T18:32:35.783] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
7
+ [2025-01-04T18:32:35.784] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
8
+ [2025-01-04T18:32:35.785] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
9
+ [2025-01-04T18:32:35.785] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
10
+ [2025-01-04T18:32:35.786] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/HR_Admin.permissionset-meta.xml
11
+ [2025-01-04T18:32:35.789] [DEBUG] default - Parsing directory to reassemble: mock/general/HR_Admin
12
+ [2025-01-04T18:32:35.803] [DEBUG] default - Created reassembled file: mock/general/HR_Admin.permissionset-meta.xml
13
+ [2025-01-04T18:32:35.805] [DEBUG] default - Parsing file to disassemble: mock/attributes/notes.xml
14
+ [2025-01-04T18:32:35.806] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/103c6c8b.nest-meta.xml
15
+ [2025-01-04T18:32:35.807] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/f876f2be.nest-meta.xml
16
+ [2025-01-04T18:32:35.808] [DEBUG] default - Parsing directory to reassemble: mock/attributes/notes
17
+ [2025-01-04T18:32:35.809] [DEBUG] default - Created reassembled file: mock/attributes/notes.xml
18
+ [2025-01-04T18:32:35.811] [DEBUG] default - Parsing file to disassemble: mock/cdata/VidLand_US.marketingappextension-meta.xml
19
+ [2025-01-04T18:32:35.812] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/marketingAppExtActions/register_user.marketingAppExtActions-meta.xml
20
+ [2025-01-04T18:32:35.812] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/VidLand_US.marketingappextension-meta.xml
21
+ [2025-01-04T18:32:35.816] [DEBUG] default - Parsing directory to reassemble: mock/cdata/VidLand_US
22
+ [2025-01-04T18:32:35.821] [DEBUG] default - Created reassembled file: mock/cdata/VidLand_US.xml
23
+ [2025-01-04T18:32:35.823] [DEBUG] default - Parsing file to disassemble: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
24
+ [2025-01-04T18:32:35.825] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/30e8b6d2.valueTranslation-meta.xml
25
+ [2025-01-04T18:32:35.826] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d7dd1420.valueTranslation-meta.xml
26
+ [2025-01-04T18:32:35.827] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d8852ede.valueTranslation-meta.xml
27
+ [2025-01-04T18:32:35.829] [DEBUG] default - Parsing directory to reassemble: mock/comments/Numbers-fr
28
+ [2025-01-04T18:32:35.833] [DEBUG] default - Created reassembled file: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
29
+ [2025-01-04T18:32:35.836] [DEBUG] default - Parsing file to disassemble: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
30
+ [2025-01-04T18:32:35.846] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Get_Info.actionCalls-meta.xml
31
+ [2025-01-04T18:32:35.847] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Post_to_Contact_s_Feed.actionCalls-meta.xml
32
+ [2025-01-04T18:32:35.848] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/assignments/Set_Contact_ID.assignments-meta.xml
33
+ [2025-01-04T18:32:35.849] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_If_Existing.decisions-meta.xml
34
+ [2025-01-04T18:32:35.850] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_or_Create.decisions-meta.xml
35
+ [2025-01-04T18:32:35.851] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/dynamicChoiceSets/accounts.dynamicChoiceSets-meta.xml
36
+ [2025-01-04T18:32:35.852] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/formulas/created_or_updated.formulas-meta.xml
37
+ [2025-01-04T18:32:35.853] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/BuilderType.processMetadataValues-meta.xml
38
+ [2025-01-04T18:32:35.854] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/CanvasMode.processMetadataValues-meta.xml
39
+ [2025-01-04T18:32:35.855] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/OriginBuilderType.processMetadataValues-meta.xml
40
+ [2025-01-04T18:32:35.856] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordCreates/Create_Contact.recordCreates-meta.xml
41
+ [2025-01-04T18:32:35.857] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordLookups/Find_a_Match.recordLookups-meta.xml
42
+ [2025-01-04T18:32:35.858] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordUpdates/Update_Contact.recordUpdates-meta.xml
43
+ [2025-01-04T18:32:35.858] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Confirm.screens-meta.xml
44
+ [2025-01-04T18:32:35.860] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Contact_Info.screens-meta.xml
45
+ [2025-01-04T18:32:35.860] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/start/Contact_Info.start-meta.xml
46
+ [2025-01-04T18:32:35.861] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/textTemplates/chatterMessage.textTemplates-meta.xml
47
+ [2025-01-04T18:32:35.862] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/ComplexObjectExample.variables-meta.xml
48
+ [2025-01-04T18:32:35.862] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/contact.variables-meta.xml
49
+ [2025-01-04T18:32:35.863] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/existingId.variables-meta.xml
50
+ [2025-01-04T18:32:35.864] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/updateExisting.variables-meta.xml
51
+ [2025-01-04T18:32:35.865] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/Get_Info.flow-meta.xml
52
+ [2025-01-04T18:32:35.867] [DEBUG] default - Parsing directory to reassemble: mock/deeply-nested-unique-id-element/Get_Info
53
+ [2025-01-04T18:32:35.911] [DEBUG] default - Created reassembled file: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
54
+ [2025-01-04T18:32:35.925] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
55
+ [2025-01-04T18:32:35.928] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
56
+ [2025-01-04T18:32:35.928] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
57
+ [2025-01-04T18:32:35.928] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
58
+ [2025-01-04T18:32:35.929] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
59
+ [2025-01-04T18:32:35.929] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
60
+ [2025-01-04T18:32:35.930] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
61
+ [2025-01-04T18:32:35.931] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
62
+ [2025-01-04T18:32:35.939] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
63
+ [2025-01-04T18:32:35.940] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
64
+ [2025-01-04T18:32:35.944] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
65
+ [2025-01-04T18:32:35.945] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
66
+ [2025-01-04T18:32:35.945] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
67
+ [2025-01-04T18:32:35.945] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
68
+ [2025-01-04T18:32:35.946] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
69
+ [2025-01-04T18:32:35.946] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
70
+ [2025-01-04T18:32:35.947] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
71
+ [2025-01-04T18:32:35.951] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
72
+ [2025-01-04T18:32:35.953] [DEBUG] default - Parsing file to disassemble: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin.permissionset-meta.xml
73
+ [2025-01-04T18:32:35.953] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
74
+ [2025-01-04T18:32:35.954] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
75
+ [2025-01-04T18:32:35.954] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
76
+ [2025-01-04T18:32:35.954] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
77
+ [2025-01-04T18:32:35.955] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
78
+ [2025-01-04T18:32:35.955] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
79
+ [2025-01-04T18:32:35.955] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
80
+ [2025-01-04T18:32:35.956] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
81
+ [2025-01-04T18:32:35.956] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
82
+ [2025-01-04T18:32:35.957] [DEBUG] default - Parsing directory to reassemble: mock/no-namespace/HR_Admin
83
+ [2025-01-04T18:32:35.961] [DEBUG] default - Created reassembled file: mock/no-namespace/HR_Admin.permissionset-meta.xml
84
+ [2025-01-04T18:32:35.962] [ERROR] default - The file path provided is not an XML file: /home/runner/work/xml-disassembler/xml-disassembler/mock/not-an-xml.txt
85
+ [2025-01-04T18:32:35.963] [ERROR] default - The provided path to reassemble is not a directory: mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
86
+ [2025-01-04T18:32:35.964] [DEBUG] default - Parsing file to disassemble: mock/no-root-element/Assessment_Bot.bot-meta.xml
87
+ [2025-01-04T18:32:35.964] [ERROR] default - mock/no-root-element/Assessment_Bot.bot-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
88
+ [2025-01-04T18:32:35.965] [DEBUG] default - Parsing directory to reassemble: mock/no-root-element/Assessment_Bot
89
+ [2025-01-04T18:32:35.965] [ERROR] default - mock/no-root-element/Assessment_Bot/Assessment_Bot.bot-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
90
+ [2025-01-04T18:32:35.966] [ERROR] default - mock/no-root-element/Assessment_Bot/botMlDomain/419e0199.botMlDomain-meta.xml was unabled to be parsed and will not be processed. Confirm formatting and try again.
91
+ [2025-01-04T18:32:35.966] [ERROR] default - No files under mock/no-root-element/Assessment_Bot were parsed successfully. A reassembled XML file was not created.
92
+ [2025-01-04T18:32:35.967] [DEBUG] default - Parsing file to disassemble: mock/no-nested-elements/HR_Admin.xml
93
+ [2025-01-04T18:32:35.967] [ERROR] default - The XML file mock/no-nested-elements/HR_Admin.xml only has leaf elements. This file will not be disassembled.
94
+ [2025-01-04T18:32:35.968] [WARN] default - File ignored by .xmldisassemblerignore: mock/ignore/HR_Admin.permissionset-meta.xml
95
+ [2025-01-04T18:32:35.968] [WARN] default - File ignored by .xmldisassemblerignore: /home/runner/work/xml-disassembler/xml-disassembler/mock/ignore/HR_Admin.permissionset-meta.xml
package/dist/index.cjs CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  var log4js = require('log4js');
4
4
  var promises = require('node:fs/promises');
5
- var node_path = require('node:path');
5
+ var posix = require('node:path/posix');
6
6
  var node_fs = require('node:fs');
7
+ var node_path = require('node:path');
7
8
  var ignore = require('ignore');
8
9
  var node_crypto = require('node:crypto');
9
10
  var fastXmlParser = require('fast-xml-parser');
@@ -22,7 +23,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
22
23
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
23
24
  PERFORMANCE OF THIS SOFTWARE.
24
25
  ***************************************************************************** */
25
- /* global Reflect, Promise, SuppressedError, Symbol */
26
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
26
27
 
27
28
 
28
29
  function __awaiter(thisArg, _arguments, P, generator) {
@@ -137,7 +138,7 @@ class ReassembleXMLFileHandler {
137
138
  return fullNameA.localeCompare(fullNameB);
138
139
  });
139
140
  for (const file of files) {
140
- const filePath = node_path.join(dirPath, file);
141
+ const filePath = posix.join(dirPath, file);
141
142
  const fileStat = yield promises.stat(filePath);
142
143
  if (fileStat.isFile() && filePath.endsWith(".xml")) {
143
144
  const xmlParsed = yield parseXML(filePath);
@@ -169,12 +170,12 @@ class ReassembleXMLFileHandler {
169
170
  logger.debug(`Parsing directory to reassemble: ${filePath}`);
170
171
  const [subCombinedXmlContents, rootResult] = yield this.processFilesInDirectory(filePath);
171
172
  combinedXmlContents = subCombinedXmlContents;
172
- const parentDirectory = node_path.dirname(filePath);
173
- const subdirectoryBasename = node_path.basename(filePath);
173
+ const parentDirectory = posix.dirname(filePath);
174
+ const subdirectoryBasename = posix.basename(filePath);
174
175
  const fileName = fileExtension
175
176
  ? `${subdirectoryBasename}.${fileExtension}`
176
177
  : `${subdirectoryBasename}.xml`;
177
- const outputPath = node_path.join(parentDirectory, fileName);
178
+ const outputPath = posix.join(parentDirectory, fileName);
178
179
  if (rootResult !== undefined) {
179
180
  const [rootElementName, rootElementHeader] = rootResult;
180
181
  yield buildReassembledFile(combinedXmlContents, outputPath, rootElementName, rootElementHeader);
@@ -221,9 +222,9 @@ function buildNestedFile(element, disassembledPath, uniqueIdElements, rootElemen
221
222
  return __awaiter(this, void 0, void 0, function* () {
222
223
  let elementContent = "";
223
224
  const fieldName = findUniqueIdElement(element, uniqueIdElements);
224
- const outputDirectory = node_path.join(disassembledPath, parentKey);
225
+ const outputDirectory = posix.join(disassembledPath, parentKey);
225
226
  const outputFileName = `${fieldName}.${parentKey}-meta.xml`;
226
- const outputPath = node_path.join(outputDirectory, outputFileName);
227
+ const outputPath = posix.join(outputDirectory, outputFileName);
227
228
  yield promises.mkdir(outputDirectory, { recursive: true });
228
229
  const parentKeyHeader = buildRootElementHeader(element, parentKey);
229
230
  elementContent = buildXMLString(element, 2);
@@ -258,7 +259,7 @@ function buildLeafFile(leafContent, disassembledPath, baseName, rootElementName,
258
259
  leafFile += `${rootElementHeader}\n`;
259
260
  leafFile += leafContent;
260
261
  leafFile += `</${rootElementName}>`;
261
- const leafOutputPath = node_path.join(disassembledPath, `${baseName}.xml`);
262
+ const leafOutputPath = posix.join(disassembledPath, `${baseName}.xml`);
262
263
  yield promises.writeFile(leafOutputPath, leafFile);
263
264
  logger.debug(`Created disassembled file: ${leafOutputPath}`);
264
265
  });
@@ -339,7 +340,7 @@ class DisassembleXMLFileHandler {
339
340
  this.ign.add(content.toString());
340
341
  }
341
342
  const fileStat = yield promises.stat(filePath);
342
- const relativePath = node_path.relative(process.cwd(), filePath);
343
+ const relativePath = this.posixPath(node_path.relative(process.cwd(), filePath));
343
344
  if (fileStat.isFile()) {
344
345
  const resolvedPath = node_path.resolve(filePath);
345
346
  if (!resolvedPath.endsWith(".xml")) {
@@ -363,7 +364,7 @@ class DisassembleXMLFileHandler {
363
364
  const subFiles = yield promises.readdir(filePath);
364
365
  for (const subFile of subFiles) {
365
366
  const subFilePath = node_path.join(filePath, subFile);
366
- const relativeSubFilePath = node_path.relative(process.cwd(), subFilePath);
367
+ const relativeSubFilePath = this.posixPath(node_path.relative(process.cwd(), subFilePath));
367
368
  if (subFilePath.endsWith(".xml") &&
368
369
  !this.ign.ignores(relativeSubFilePath)) {
369
370
  yield this.processFile({
@@ -394,6 +395,9 @@ class DisassembleXMLFileHandler {
394
395
  yield buildDisassembledFiles(filePath, outputPath, uniqueIdElements, fullName, INDENT, postPurge);
395
396
  });
396
397
  }
398
+ posixPath(path) {
399
+ return path.replace(/\\+/g, "/");
400
+ }
397
401
  }
398
402
 
399
403
  function setLogLevel(level) {