xml-disassembler 1.2.7 → 1.2.8

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,10 @@
1
+ ## [1.2.8](https://github.com/mcarvin8/xml-disassembler/compare/v1.2.7...v1.2.8) (2024-04-08)
2
+
3
+ ### Bug Fixes
4
+
5
+ - define functions from each import over using a wildcard ([1246857](https://github.com/mcarvin8/xml-disassembler/commit/1246857d5774460d74bdecb323f76c230dfe708b))
6
+ - parse XML separately to reduce complexity ([aaefd04](https://github.com/mcarvin8/xml-disassembler/commit/aaefd04f7a33da239b4135d5a224fd7b3db63cd7))
7
+
1
8
  ## [1.2.7](https://github.com/mcarvin8/xml-disassembler/compare/v1.2.6...v1.2.7) (2024-04-08)
2
9
 
3
10
  ### Bug Fixes
package/disassemble.log CHANGED
@@ -1,93 +1,93 @@
1
- [2024-04-08T12:39:27.992] [DEBUG] default - Parsing file to disassemble: mock/general/HR_Admin.permissionset-meta.xml
2
- [2024-04-08T12:39:28.000] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
3
- [2024-04-08T12:39:28.000] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
4
- [2024-04-08T12:39:28.001] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
5
- [2024-04-08T12:39:28.001] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
6
- [2024-04-08T12:39:28.002] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
7
- [2024-04-08T12:39:28.002] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
8
- [2024-04-08T12:39:28.003] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
9
- [2024-04-08T12:39:28.004] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
10
- [2024-04-08T12:39:28.011] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/HR_Admin.permissionset-meta.xml
11
- [2024-04-08T12:39:28.014] [DEBUG] default - Parsing directory to reassemble: mock/general/HR_Admin
12
- [2024-04-08T12:39:28.021] [DEBUG] default - Created reassembled file: mock/general/HR_Admin.permissionset-meta.xml
13
- [2024-04-08T12:39:28.022] [DEBUG] default - Parsing file to disassemble: mock/attributes/notes.xml
14
- [2024-04-08T12:39:28.024] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/103c6c8b.nest-meta.xml
15
- [2024-04-08T12:39:28.024] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/f876f2be.nest-meta.xml
16
- [2024-04-08T12:39:28.025] [DEBUG] default - Parsing directory to reassemble: mock/attributes/notes
17
- [2024-04-08T12:39:28.027] [DEBUG] default - Created reassembled file: mock/attributes/notes.xml
18
- [2024-04-08T12:39:28.028] [DEBUG] default - Parsing file to disassemble: mock/cdata/VidLand_US.marketingappextension-meta.xml
19
- [2024-04-08T12:39:28.029] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/marketingAppExtActions/register_user.marketingAppExtActions-meta.xml
20
- [2024-04-08T12:39:28.030] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/VidLand_US.marketingappextension-meta.xml
21
- [2024-04-08T12:39:28.030] [DEBUG] default - Parsing directory to reassemble: mock/cdata/VidLand_US
22
- [2024-04-08T12:39:28.032] [DEBUG] default - Created reassembled file: mock/cdata/VidLand_US.xml
23
- [2024-04-08T12:39:28.033] [DEBUG] default - Parsing file to disassemble: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
24
- [2024-04-08T12:39:28.034] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/30e8b6d2.valueTranslation-meta.xml
25
- [2024-04-08T12:39:28.034] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d7dd1420.valueTranslation-meta.xml
26
- [2024-04-08T12:39:28.035] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d8852ede.valueTranslation-meta.xml
27
- [2024-04-08T12:39:28.036] [DEBUG] default - Parsing directory to reassemble: mock/comments/Numbers-fr
28
- [2024-04-08T12:39:28.037] [DEBUG] default - Created reassembled file: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
29
- [2024-04-08T12:39:28.038] [DEBUG] default - Parsing file to disassemble: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
30
- [2024-04-08T12:39:28.044] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Get_Info.actionCalls-meta.xml
31
- [2024-04-08T12:39:28.044] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Post_to_Contact_s_Feed.actionCalls-meta.xml
32
- [2024-04-08T12:39:28.045] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/assignments/Set_Contact_ID.assignments-meta.xml
33
- [2024-04-08T12:39:28.045] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_If_Existing.decisions-meta.xml
34
- [2024-04-08T12:39:28.046] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_or_Create.decisions-meta.xml
35
- [2024-04-08T12:39:28.046] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/dynamicChoiceSets/accounts.dynamicChoiceSets-meta.xml
36
- [2024-04-08T12:39:28.047] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/formulas/created_or_updated.formulas-meta.xml
37
- [2024-04-08T12:39:28.047] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/BuilderType.processMetadataValues-meta.xml
38
- [2024-04-08T12:39:28.048] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/CanvasMode.processMetadataValues-meta.xml
39
- [2024-04-08T12:39:28.048] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/OriginBuilderType.processMetadataValues-meta.xml
40
- [2024-04-08T12:39:28.049] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordCreates/Create_Contact.recordCreates-meta.xml
41
- [2024-04-08T12:39:28.049] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordLookups/Find_a_Match.recordLookups-meta.xml
42
- [2024-04-08T12:39:28.049] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordUpdates/Update_Contact.recordUpdates-meta.xml
43
- [2024-04-08T12:39:28.050] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Confirm.screens-meta.xml
44
- [2024-04-08T12:39:28.050] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Contact_Info.screens-meta.xml
45
- [2024-04-08T12:39:28.050] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/start/Contact_Info.start-meta.xml
46
- [2024-04-08T12:39:28.051] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/textTemplates/chatterMessage.textTemplates-meta.xml
47
- [2024-04-08T12:39:28.051] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/ComplexObjectExample.variables-meta.xml
48
- [2024-04-08T12:39:28.051] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/contact.variables-meta.xml
49
- [2024-04-08T12:39:28.052] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/existingId.variables-meta.xml
50
- [2024-04-08T12:39:28.052] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/updateExisting.variables-meta.xml
51
- [2024-04-08T12:39:28.052] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/Get_Info.flow-meta.xml
52
- [2024-04-08T12:39:28.053] [DEBUG] default - Parsing directory to reassemble: mock/deeply-nested-unique-id-element/Get_Info
53
- [2024-04-08T12:39:28.075] [DEBUG] default - Created reassembled file: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
54
- [2024-04-08T12:39:28.076] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
55
- [2024-04-08T12:39:28.078] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
56
- [2024-04-08T12:39:28.078] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
57
- [2024-04-08T12:39:28.079] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
58
- [2024-04-08T12:39:28.079] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
59
- [2024-04-08T12:39:28.080] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
60
- [2024-04-08T12:39:28.080] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
61
- [2024-04-08T12:39:28.081] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
62
- [2024-04-08T12:39:28.085] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
63
- [2024-04-08T12:39:28.086] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
64
- [2024-04-08T12:39:28.090] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
65
- [2024-04-08T12:39:28.090] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
66
- [2024-04-08T12:39:28.090] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
67
- [2024-04-08T12:39:28.091] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
68
- [2024-04-08T12:39:28.091] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
69
- [2024-04-08T12:39:28.091] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
70
- [2024-04-08T12:39:28.092] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
71
- [2024-04-08T12:39:28.095] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
72
- [2024-04-08T12:39:28.097] [DEBUG] default - Parsing file to disassemble: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin.permissionset-meta.xml
73
- [2024-04-08T12:39:28.098] [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-04-08T12:39:28.098] [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-04-08T12:39:28.098] [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-04-08T12:39:28.099] [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-04-08T12:39:28.099] [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-04-08T12:39:28.099] [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-04-08T12:39:28.100] [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-04-08T12:39:28.100] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
81
- [2024-04-08T12:39:28.100] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
82
- [2024-04-08T12:39:28.101] [DEBUG] default - Parsing directory to reassemble: mock/no-namespace/HR_Admin
83
- [2024-04-08T12:39:28.105] [DEBUG] default - Created reassembled file: mock/no-namespace/HR_Admin.permissionset-meta.xml
84
- [2024-04-08T12:39:28.106] [ERROR] default - The file path /home/runner/work/xml-disassembler/xml-disassembler/mock/not-an-xml.txt is not an XML file.
85
- [2024-04-08T12:39:28.107] [ERROR] default - The provided xmlPath mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml to reassemble is not a directory.
86
- [2024-04-08T12:39:28.108] [DEBUG] default - Parsing file to disassemble: mock/no-root-element/Assessment_Bot.bot-meta.xml
87
- [2024-04-08T12:39:28.108] [ERROR] default - Assessment_Bot.bot-meta.xml was unable to be parsed. Confirm formatting and try again.
88
- [2024-04-08T12:39:28.109] [DEBUG] default - Parsing directory to reassemble: mock/no-root-element/Assessment_Bot
89
- [2024-04-08T12:39:28.109] [ERROR] default - mock/no-root-element/Assessment_Bot/Assessment_Bot.bot-meta.xml was unable to be parsed and was not added to the reassembled file. Confirm formatting and try again.
90
- [2024-04-08T12:39:28.110] [ERROR] default - mock/no-root-element/Assessment_Bot/botMlDomain/419e0199.botMlDomain-meta.xml was unable to be parsed and was not added to the reassembled file. Confirm formatting and try again.
91
- [2024-04-08T12:39:28.110] [ERROR] default - No files under mock/no-root-element/Assessment_Bot were parsed successfully. A reassembled XML file was not created.
92
- [2024-04-08T12:39:28.111] [DEBUG] default - Parsing file to disassemble: mock/no-nested-elements/HR_Admin.xml
93
- [2024-04-08T12:39:28.111] [ERROR] default - The XML file HR_Admin.xml only has leaf elements. This file will not be disassembled.
1
+ [2024-04-08T17:04:13.237] [DEBUG] default - Parsing file to disassemble: mock/general/HR_Admin.permissionset-meta.xml
2
+ [2024-04-08T17:04:13.245] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/applicationVisibilities/JobApps__Recruiting.applicationVisibilities-meta.xml
3
+ [2024-04-08T17:04:13.246] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/classAccesses/Send_Email_Confirmation.classAccesses-meta.xml
4
+ [2024-04-08T17:04:13.246] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/fieldPermissions/Job_Request__c.Salary__c.fieldPermissions-meta.xml
5
+ [2024-04-08T17:04:13.247] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/objectPermissions/Job_Request__c.objectPermissions-meta.xml
6
+ [2024-04-08T17:04:13.247] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/pageAccesses/Job_Request_Web_Form.pageAccesses-meta.xml
7
+ [2024-04-08T17:04:13.248] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/recordTypeVisibilities/Recruiting.DevManager.recordTypeVisibilities-meta.xml
8
+ [2024-04-08T17:04:13.248] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/tabSettings/Job_Request__c.tabSettings-meta.xml
9
+ [2024-04-08T17:04:13.249] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
10
+ [2024-04-08T17:04:13.257] [DEBUG] default - Created disassembled file: mock/general/HR_Admin/HR_Admin.permissionset-meta.xml
11
+ [2024-04-08T17:04:13.259] [DEBUG] default - Parsing directory to reassemble: mock/general/HR_Admin
12
+ [2024-04-08T17:04:13.267] [DEBUG] default - Created reassembled file: mock/general/HR_Admin.permissionset-meta.xml
13
+ [2024-04-08T17:04:13.268] [DEBUG] default - Parsing file to disassemble: mock/attributes/notes.xml
14
+ [2024-04-08T17:04:13.269] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/103c6c8b.nest-meta.xml
15
+ [2024-04-08T17:04:13.270] [DEBUG] default - Created disassembled file: mock/attributes/notes/nest/f876f2be.nest-meta.xml
16
+ [2024-04-08T17:04:13.271] [DEBUG] default - Parsing directory to reassemble: mock/attributes/notes
17
+ [2024-04-08T17:04:13.272] [DEBUG] default - Created reassembled file: mock/attributes/notes.xml
18
+ [2024-04-08T17:04:13.273] [DEBUG] default - Parsing file to disassemble: mock/cdata/VidLand_US.marketingappextension-meta.xml
19
+ [2024-04-08T17:04:13.275] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/marketingAppExtActions/register_user.marketingAppExtActions-meta.xml
20
+ [2024-04-08T17:04:13.275] [DEBUG] default - Created disassembled file: mock/cdata/VidLand_US/VidLand_US.marketingappextension-meta.xml
21
+ [2024-04-08T17:04:13.276] [DEBUG] default - Parsing directory to reassemble: mock/cdata/VidLand_US
22
+ [2024-04-08T17:04:13.277] [DEBUG] default - Created reassembled file: mock/cdata/VidLand_US.xml
23
+ [2024-04-08T17:04:13.278] [DEBUG] default - Parsing file to disassemble: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
24
+ [2024-04-08T17:04:13.279] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/30e8b6d2.valueTranslation-meta.xml
25
+ [2024-04-08T17:04:13.280] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d7dd1420.valueTranslation-meta.xml
26
+ [2024-04-08T17:04:13.280] [DEBUG] default - Created disassembled file: mock/comments/Numbers-fr/valueTranslation/d8852ede.valueTranslation-meta.xml
27
+ [2024-04-08T17:04:13.281] [DEBUG] default - Parsing directory to reassemble: mock/comments/Numbers-fr
28
+ [2024-04-08T17:04:13.283] [DEBUG] default - Created reassembled file: mock/comments/Numbers-fr.globalValueSetTranslation-meta.xml
29
+ [2024-04-08T17:04:13.284] [DEBUG] default - Parsing file to disassemble: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
30
+ [2024-04-08T17:04:13.289] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Get_Info.actionCalls-meta.xml
31
+ [2024-04-08T17:04:13.290] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/actionCalls/Post_to_Contact_s_Feed.actionCalls-meta.xml
32
+ [2024-04-08T17:04:13.290] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/assignments/Set_Contact_ID.assignments-meta.xml
33
+ [2024-04-08T17:04:13.291] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_If_Existing.decisions-meta.xml
34
+ [2024-04-08T17:04:13.291] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/decisions/Update_or_Create.decisions-meta.xml
35
+ [2024-04-08T17:04:13.291] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/dynamicChoiceSets/accounts.dynamicChoiceSets-meta.xml
36
+ [2024-04-08T17:04:13.292] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/formulas/created_or_updated.formulas-meta.xml
37
+ [2024-04-08T17:04:13.293] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/BuilderType.processMetadataValues-meta.xml
38
+ [2024-04-08T17:04:13.293] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/CanvasMode.processMetadataValues-meta.xml
39
+ [2024-04-08T17:04:13.293] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/processMetadataValues/OriginBuilderType.processMetadataValues-meta.xml
40
+ [2024-04-08T17:04:13.294] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordCreates/Create_Contact.recordCreates-meta.xml
41
+ [2024-04-08T17:04:13.294] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordLookups/Find_a_Match.recordLookups-meta.xml
42
+ [2024-04-08T17:04:13.295] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/recordUpdates/Update_Contact.recordUpdates-meta.xml
43
+ [2024-04-08T17:04:13.295] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Confirm.screens-meta.xml
44
+ [2024-04-08T17:04:13.295] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/screens/Contact_Info.screens-meta.xml
45
+ [2024-04-08T17:04:13.296] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/start/Contact_Info.start-meta.xml
46
+ [2024-04-08T17:04:13.296] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/textTemplates/chatterMessage.textTemplates-meta.xml
47
+ [2024-04-08T17:04:13.296] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/ComplexObjectExample.variables-meta.xml
48
+ [2024-04-08T17:04:13.296] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/contact.variables-meta.xml
49
+ [2024-04-08T17:04:13.297] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/existingId.variables-meta.xml
50
+ [2024-04-08T17:04:13.297] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/variables/updateExisting.variables-meta.xml
51
+ [2024-04-08T17:04:13.297] [DEBUG] default - Created disassembled file: mock/deeply-nested-unique-id-element/Get_Info/Get_Info.flow-meta.xml
52
+ [2024-04-08T17:04:13.298] [DEBUG] default - Parsing directory to reassemble: mock/deeply-nested-unique-id-element/Get_Info
53
+ [2024-04-08T17:04:13.312] [DEBUG] default - Created reassembled file: mock/deeply-nested-unique-id-element/Get_Info.flow-meta.xml
54
+ [2024-04-08T17:04:13.313] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
55
+ [2024-04-08T17:04:13.315] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
56
+ [2024-04-08T17:04:13.315] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
57
+ [2024-04-08T17:04:13.316] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
58
+ [2024-04-08T17:04:13.316] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
59
+ [2024-04-08T17:04:13.316] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
60
+ [2024-04-08T17:04:13.317] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
61
+ [2024-04-08T17:04:13.318] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
62
+ [2024-04-08T17:04:13.321] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
63
+ [2024-04-08T17:04:13.322] [DEBUG] default - Parsing file to disassemble: mock/array-of-leafs/Dreamhouse.app-meta.xml
64
+ [2024-04-08T17:04:13.326] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/39049d21.actionOverrides-meta.xml
65
+ [2024-04-08T17:04:13.326] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/735c1659.actionOverrides-meta.xml
66
+ [2024-04-08T17:04:13.327] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/b04e9f9b.actionOverrides-meta.xml
67
+ [2024-04-08T17:04:13.327] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/actionOverrides/c8cc7a99.actionOverrides-meta.xml
68
+ [2024-04-08T17:04:13.327] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/brand/c9db422b.brand-meta.xml
69
+ [2024-04-08T17:04:13.328] [DEBUG] default - Created disassembled file: mock/array-of-leafs/Dreamhouse/Dreamhouse.app-meta.xml
70
+ [2024-04-08T17:04:13.328] [DEBUG] default - Parsing directory to reassemble: mock/array-of-leafs/Dreamhouse
71
+ [2024-04-08T17:04:13.334] [DEBUG] default - Created reassembled file: mock/array-of-leafs/Dreamhouse.app-meta.xml
72
+ [2024-04-08T17:04:13.336] [DEBUG] default - Parsing file to disassemble: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin.permissionset-meta.xml
73
+ [2024-04-08T17:04:13.337] [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-04-08T17:04:13.337] [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-04-08T17:04:13.337] [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-04-08T17:04:13.338] [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-04-08T17:04:13.338] [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-04-08T17:04:13.338] [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-04-08T17:04:13.339] [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-04-08T17:04:13.339] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/userPermissions/APIEnabled.userPermissions-meta.xml
81
+ [2024-04-08T17:04:13.339] [DEBUG] default - Created disassembled file: /home/runner/work/xml-disassembler/xml-disassembler/mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml
82
+ [2024-04-08T17:04:13.340] [DEBUG] default - Parsing directory to reassemble: mock/no-namespace/HR_Admin
83
+ [2024-04-08T17:04:13.344] [DEBUG] default - Created reassembled file: mock/no-namespace/HR_Admin.permissionset-meta.xml
84
+ [2024-04-08T17:04:13.345] [ERROR] default - The file path /home/runner/work/xml-disassembler/xml-disassembler/mock/not-an-xml.txt is not an XML file.
85
+ [2024-04-08T17:04:13.345] [ERROR] default - The provided xmlPath mock/no-namespace/HR_Admin/HR_Admin.permissionset-meta.xml to reassemble is not a directory.
86
+ [2024-04-08T17:04:13.346] [DEBUG] default - Parsing file to disassemble: mock/no-root-element/Assessment_Bot.bot-meta.xml
87
+ [2024-04-08T17:04:13.346] [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-04-08T17:04:13.347] [DEBUG] default - Parsing directory to reassemble: mock/no-root-element/Assessment_Bot
89
+ [2024-04-08T17:04:13.347] [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-04-08T17:04:13.348] [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-04-08T17:04:13.348] [ERROR] default - No files under mock/no-root-element/Assessment_Bot were parsed successfully. A reassembled XML file was not created.
92
+ [2024-04-08T17:04:13.348] [DEBUG] default - Parsing file to disassemble: mock/no-nested-elements/HR_Admin.xml
93
+ [2024-04-08T17:04:13.349] [ERROR] default - The XML file mock/no-nested-elements/HR_Admin.xml only has leaf elements. This file will not be disassembled.
package/dist/index.cjs CHANGED
@@ -2,32 +2,10 @@
2
2
 
3
3
  var log4js = require('log4js');
4
4
  var promises = require('node:fs/promises');
5
- var path = require('node:path');
6
- var fastXmlParser = require('fast-xml-parser');
7
- var fs = require('node:fs');
5
+ var node_path = require('node:path');
6
+ var node_fs = require('node:fs');
8
7
  var node_crypto = require('node:crypto');
9
-
10
- function _interopNamespaceDefault(e) {
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var log4js__namespace = /*#__PURE__*/_interopNamespaceDefault(log4js);
28
- var promises__namespace = /*#__PURE__*/_interopNamespaceDefault(promises);
29
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
30
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
8
+ var fastXmlParser = require('fast-xml-parser');
31
9
 
32
10
  /******************************************************************************
33
11
  Copyright (c) Microsoft Corporation.
@@ -64,19 +42,6 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
64
42
  const XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>';
65
43
  const INDENT = " ";
66
44
 
67
- const XML_PARSER_OPTION = {
68
- commentPropName: "!---",
69
- ignoreAttributes: false,
70
- ignoreNameSpace: false,
71
- parseTagValue: false,
72
- parseNodeValue: false,
73
- parseAttributeValue: false,
74
- trimValues: true,
75
- processEntities: false,
76
- cdataPropName: "![CDATA[",
77
- };
78
- const JSON_PARSER_OPTION = Object.assign(Object.assign({}, XML_PARSER_OPTION), { format: true, indentBy: INDENT, suppressBooleanAttributes: false, suppressEmptyNode: false });
79
-
80
45
  function buildReassembledFile(combinedXmlContents, filePath, xmlElement, xmlRootElementHeader) {
81
46
  return __awaiter(this, void 0, void 0, function* () {
82
47
  let finalXmlContent = combinedXmlContents.join("\n");
@@ -93,11 +58,51 @@ function buildReassembledFile(combinedXmlContents, filePath, xmlElement, xmlRoot
93
58
  });
94
59
  finalXmlContent = finalXmlContent.replace(/(\n\s*){2,}/g, `\n${INDENT}`);
95
60
  const closeTag = `</${xmlElement}>`;
96
- yield promises__namespace.writeFile(filePath, `${XML_HEADER}\n${xmlRootElementHeader}${finalXmlContent}${closeTag}`);
61
+ yield promises.writeFile(filePath, `${XML_HEADER}\n${xmlRootElementHeader}${finalXmlContent}${closeTag}`);
97
62
  logger.debug(`Created reassembled file: ${filePath}`);
98
63
  });
99
64
  }
100
65
 
66
+ const XML_PARSER_OPTION = {
67
+ commentPropName: "!---",
68
+ ignoreAttributes: false,
69
+ ignoreNameSpace: false,
70
+ parseTagValue: false,
71
+ parseNodeValue: false,
72
+ parseAttributeValue: false,
73
+ trimValues: true,
74
+ processEntities: false,
75
+ cdataPropName: "![CDATA[",
76
+ };
77
+ const JSON_PARSER_OPTION = Object.assign(Object.assign({}, XML_PARSER_OPTION), { format: true, indentBy: INDENT, suppressBooleanAttributes: false, suppressEmptyNode: false });
78
+
79
+ function buildXMLString(element, indentLevel = 0) {
80
+ const xmlBuilder = new fastXmlParser.XMLBuilder(JSON_PARSER_OPTION);
81
+ const xmlString = xmlBuilder.build(element);
82
+ const formattedXml = xmlString
83
+ .split("\n")
84
+ .map((line) => `${" ".repeat(indentLevel * INDENT.length)}${line}`)
85
+ .join("\n")
86
+ .trimEnd();
87
+ return formattedXml;
88
+ }
89
+
90
+ function parseXML(filePath) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const xmlParser = new fastXmlParser.XMLParser(XML_PARSER_OPTION);
93
+ const xmlContent = yield promises.readFile(filePath, "utf-8");
94
+ let xmlParsed;
95
+ try {
96
+ xmlParsed = xmlParser.parse(xmlContent, true);
97
+ return xmlParsed;
98
+ }
99
+ catch (err) {
100
+ logger.error(`${filePath} was unabled to be parsed and will not be processed. Confirm formatting and try again.`);
101
+ return undefined;
102
+ }
103
+ });
104
+ }
105
+
101
106
  function buildRootElementHeader(rootElement, rootElementName) {
102
107
  let rootElementHeader = `<${rootElementName}`;
103
108
  for (const [attrKey, attrValue] of Object.entries(rootElement)) {
@@ -110,73 +115,52 @@ function buildRootElementHeader(rootElement, rootElementName) {
110
115
  return rootElementHeader;
111
116
  }
112
117
 
113
- function buildXMLString(element, indentLevel = 0) {
114
- const xmlBuilder = new fastXmlParser.XMLBuilder(JSON_PARSER_OPTION);
115
- const xmlString = xmlBuilder.build(element);
116
- const formattedXml = xmlString
117
- .split("\n")
118
- .map((line) => `${" ".repeat(indentLevel * INDENT.length)}${line}`)
119
- .join("\n")
120
- .trimEnd();
121
- return formattedXml;
118
+ function processFilesForRootElement(xmlParsed) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ const rootElementName = Object.keys(xmlParsed)[1];
121
+ const rootElement = xmlParsed[rootElementName];
122
+ const rootElementHeader = buildRootElementHeader(rootElement, rootElementName);
123
+ return [rootElementName, rootElementHeader];
124
+ });
122
125
  }
123
126
 
124
- const xmlParser = new fastXmlParser.XMLParser(XML_PARSER_OPTION);
125
127
  class ReassembleXMLFileHandler {
126
128
  processFilesInDirectory(dirPath) {
127
129
  return __awaiter(this, void 0, void 0, function* () {
128
130
  const combinedXmlContents = [];
129
131
  let rootResult = undefined;
130
- const files = yield promises__namespace.readdir(dirPath);
132
+ const files = yield promises.readdir(dirPath);
131
133
  files.sort((fileA, fileB) => {
132
134
  const fullNameA = fileA.split(".")[0].toLowerCase();
133
135
  const fullNameB = fileB.split(".")[0].toLowerCase();
134
136
  return fullNameA.localeCompare(fullNameB);
135
137
  });
136
138
  for (const file of files) {
137
- const filePath = path__namespace.join(dirPath, file);
138
- const fileStat = yield promises__namespace.stat(filePath);
139
+ const filePath = node_path.join(dirPath, file);
140
+ const fileStat = yield promises.stat(filePath);
139
141
  if (fileStat.isFile() && filePath.endsWith(".xml")) {
140
- const xmlContent = yield promises__namespace.readFile(filePath, "utf-8");
141
- let xmlParsed;
142
- try {
143
- xmlParsed = xmlParser.parse(xmlContent, true);
144
- }
145
- catch (err) {
146
- logger.error(`${filePath} was unable to be parsed and was not added to the reassembled file. Confirm formatting and try again.`);
142
+ const xmlParsed = yield parseXML(filePath);
143
+ if (xmlParsed === undefined)
147
144
  continue;
148
- }
149
- const rootResultFromFile = yield this.processFilesForRootElement(xmlParsed);
150
- if (rootResultFromFile && !rootResult) {
151
- rootResult = rootResultFromFile;
152
- }
145
+ const rootResultFromFile = yield processFilesForRootElement(xmlParsed);
146
+ rootResult = rootResultFromFile;
153
147
  const combinedXmlString = buildXMLString(xmlParsed);
154
148
  combinedXmlContents.push(combinedXmlString);
155
149
  }
156
150
  else if (fileStat.isDirectory()) {
157
151
  const [subCombinedXmlContents, subRootResult] = yield this.processFilesInDirectory(filePath);
158
152
  combinedXmlContents.push(...subCombinedXmlContents);
159
- if (subRootResult && !rootResult) {
160
- rootResult = subRootResult;
161
- }
153
+ rootResult = subRootResult;
162
154
  }
163
155
  }
164
156
  return [combinedXmlContents, rootResult];
165
157
  });
166
158
  }
167
- processFilesForRootElement(xmlParsed) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- const rootElementName = Object.keys(xmlParsed)[1];
170
- const rootElement = xmlParsed[rootElementName];
171
- const rootElementHeader = buildRootElementHeader(rootElement, rootElementName);
172
- return [rootElementName, rootElementHeader];
173
- });
174
- }
175
159
  reassemble(xmlAttributes) {
176
160
  return __awaiter(this, void 0, void 0, function* () {
177
161
  const { xmlPath, fileExtension, postPurge = false } = xmlAttributes;
178
162
  let combinedXmlContents = [];
179
- const fileStat = yield promises__namespace.stat(xmlPath);
163
+ const fileStat = yield promises.stat(xmlPath);
180
164
  if (!fileStat.isDirectory()) {
181
165
  logger.error(`The provided xmlPath ${xmlPath} to reassemble is not a directory.`);
182
166
  return;
@@ -184,17 +168,17 @@ class ReassembleXMLFileHandler {
184
168
  logger.debug(`Parsing directory to reassemble: ${xmlPath}`);
185
169
  const [subCombinedXmlContents, rootResult] = yield this.processFilesInDirectory(xmlPath);
186
170
  combinedXmlContents = subCombinedXmlContents;
187
- const parentDirectory = path__namespace.dirname(xmlPath);
188
- const subdirectoryBasename = path__namespace.basename(xmlPath);
171
+ const parentDirectory = node_path.dirname(xmlPath);
172
+ const subdirectoryBasename = node_path.basename(xmlPath);
189
173
  const fileName = fileExtension
190
174
  ? `${subdirectoryBasename}.${fileExtension}`
191
175
  : `${subdirectoryBasename}.xml`;
192
- const filePath = path__namespace.join(parentDirectory, fileName);
176
+ const filePath = node_path.join(parentDirectory, fileName);
193
177
  if (rootResult !== undefined) {
194
178
  const [rootElementName, rootElementHeader] = rootResult;
195
179
  yield buildReassembledFile(combinedXmlContents, filePath, rootElementName, rootElementHeader);
196
180
  if (postPurge)
197
- yield promises__namespace.rm(xmlPath, { recursive: true });
181
+ yield promises.rm(xmlPath, { recursive: true });
198
182
  }
199
183
  else {
200
184
  logger.error(`No files under ${xmlPath} were parsed successfully. A reassembled XML file was not created.`);
@@ -236,19 +220,19 @@ function buildNestedFile(element, metadataPath, uniqueIdElements, rootElementNam
236
220
  return __awaiter(this, void 0, void 0, function* () {
237
221
  let elementContent = "";
238
222
  const fieldName = findUniqueIdElement(element, uniqueIdElements);
239
- const outputDirectory = path__namespace.join(metadataPath, parentKey);
223
+ const outputDirectory = node_path.join(metadataPath, parentKey);
240
224
  const outputFileName = `${fieldName}.${parentKey}-meta.xml`;
241
- const outputPath = path__namespace.join(outputDirectory, outputFileName);
242
- yield promises__namespace.mkdir(outputDirectory, { recursive: true });
225
+ const outputPath = node_path.join(outputDirectory, outputFileName);
226
+ yield promises.mkdir(outputDirectory, { recursive: true });
243
227
  const parentKeyHeader = buildRootElementHeader(element, parentKey);
244
228
  elementContent = buildXMLString(element, 2);
245
- let decomposeFileContents = `${XML_HEADER}\n`;
246
- decomposeFileContents += `${rootElementHeader}\n`;
247
- decomposeFileContents += `${indent}${parentKeyHeader}\n`;
248
- decomposeFileContents += `${elementContent}\n`;
249
- decomposeFileContents += `${indent}</${parentKey}>\n`;
250
- decomposeFileContents += `</${rootElementName}>`;
251
- yield promises__namespace.writeFile(outputPath, decomposeFileContents);
229
+ let nestedFileContents = `${XML_HEADER}\n`;
230
+ nestedFileContents += `${rootElementHeader}\n`;
231
+ nestedFileContents += `${indent}${parentKeyHeader}\n`;
232
+ nestedFileContents += `${elementContent}\n`;
233
+ nestedFileContents += `${indent}</${parentKey}>\n`;
234
+ nestedFileContents += `</${rootElementName}>`;
235
+ yield promises.writeFile(outputPath, nestedFileContents);
252
236
  logger.debug(`Created disassembled file: ${outputPath}`);
253
237
  });
254
238
  }
@@ -279,25 +263,19 @@ function buildLeafFile(leafContent, metadataPath, baseName, rootElementName, roo
279
263
  .join("\n");
280
264
  leafFile += sortedLeafContent;
281
265
  leafFile += `\n</${rootElementName}>`;
282
- const leafOutputPath = path__namespace.join(metadataPath, `${baseName}.xml`);
283
- yield promises__namespace.writeFile(leafOutputPath, leafFile);
266
+ const leafOutputPath = node_path.join(metadataPath, `${baseName}.xml`);
267
+ yield promises.writeFile(leafOutputPath, leafFile);
284
268
  logger.debug(`Created disassembled file: ${leafOutputPath}`);
285
269
  });
286
270
  }
287
271
 
288
- function buildDisassembledFiles(xmlString, metadataPath, uniqueIdElements, baseName, indent, postPurge, parentPath) {
272
+ function buildDisassembledFiles(xmlPath, metadataPath, uniqueIdElements, baseName, indent, postPurge) {
289
273
  return __awaiter(this, void 0, void 0, function* () {
290
- const xmlParser = new fastXmlParser.XMLParser(XML_PARSER_OPTION);
291
- let result;
292
- try {
293
- result = xmlParser.parse(xmlString, true);
294
- }
295
- catch (err) {
296
- logger.error(`${baseName}.xml was unable to be parsed. Confirm formatting and try again.`);
274
+ const parsedXml = yield parseXML(xmlPath);
275
+ if (parsedXml === undefined)
297
276
  return;
298
- }
299
- const rootElementName = Object.keys(result)[1];
300
- const rootElement = result[rootElementName];
277
+ const rootElementName = Object.keys(parsedXml)[1];
278
+ const rootElement = parsedXml[rootElementName];
301
279
  const rootElementHeader = buildRootElementHeader(rootElement, rootElementName);
302
280
  let leafContent = "";
303
281
  let leafCount = 0;
@@ -341,15 +319,14 @@ function buildDisassembledFiles(xmlString, metadataPath, uniqueIdElements, baseN
341
319
  }
342
320
  }
343
321
  if (!hasNestedElements) {
344
- logger.error(`The XML file ${baseName}.xml only has leaf elements. This file will not be disassembled.`);
322
+ logger.error(`The XML file ${xmlPath} only has leaf elements. This file will not be disassembled.`);
345
323
  return;
346
324
  }
347
325
  if (leafCount > 0) {
348
326
  yield buildLeafFile(leafContent, metadataPath, baseName, rootElementName, rootElementHeader);
349
327
  }
350
328
  if (postPurge) {
351
- const originalFilePath = path__namespace.resolve(`${parentPath}/${baseName}.xml`);
352
- promises__namespace.unlink(originalFilePath);
329
+ promises.unlink(xmlPath);
353
330
  }
354
331
  });
355
332
  }
@@ -358,14 +335,14 @@ class DisassembleXMLFileHandler {
358
335
  disassemble(xmlAttributes) {
359
336
  return __awaiter(this, void 0, void 0, function* () {
360
337
  const { xmlPath, uniqueIdElements, prePurge = false, postPurge = false, } = xmlAttributes;
361
- const fileStat = yield promises__namespace.stat(xmlPath);
338
+ const fileStat = yield promises.stat(xmlPath);
362
339
  if (fileStat.isFile()) {
363
- const filePath = path__namespace.resolve(xmlPath);
340
+ const filePath = node_path.resolve(xmlPath);
364
341
  if (!filePath.endsWith(".xml")) {
365
342
  logger.error(`The file path ${filePath} is not an XML file.`);
366
343
  return;
367
344
  }
368
- const basePath = path__namespace.dirname(filePath);
345
+ const basePath = node_path.dirname(filePath);
369
346
  yield this.processFile({
370
347
  xmlPath: basePath,
371
348
  filePath,
@@ -375,9 +352,9 @@ class DisassembleXMLFileHandler {
375
352
  });
376
353
  }
377
354
  else if (fileStat.isDirectory()) {
378
- const files = yield promises__namespace.readdir(xmlPath);
355
+ const files = yield promises.readdir(xmlPath);
379
356
  for (const file of files) {
380
- const filePath = path__namespace.join(xmlPath, file);
357
+ const filePath = node_path.join(xmlPath, file);
381
358
  if (filePath.endsWith(".xml")) {
382
359
  yield this.processFile({
383
360
  xmlPath,
@@ -395,26 +372,22 @@ class DisassembleXMLFileHandler {
395
372
  return __awaiter(this, void 0, void 0, function* () {
396
373
  const { xmlPath, filePath, uniqueIdElements, prePurge, postPurge } = xmlAttributes;
397
374
  logger.debug(`Parsing file to disassemble: ${filePath}`);
398
- const xmlContent = yield promises__namespace.readFile(filePath, "utf-8");
399
- const fullName = path__namespace.basename(filePath, path__namespace.extname(filePath));
375
+ const fullName = node_path.basename(filePath, node_path.extname(filePath));
400
376
  const baseName = fullName.split(".")[0];
401
377
  let outputPath;
402
- outputPath = path__namespace.join(xmlPath, baseName);
403
- if (prePurge) {
404
- if (fs__namespace.existsSync(outputPath)) {
405
- yield promises__namespace.rm(outputPath, { recursive: true });
406
- }
407
- }
408
- yield buildDisassembledFiles(xmlContent, outputPath, uniqueIdElements, fullName, INDENT, postPurge, xmlPath);
378
+ outputPath = node_path.join(xmlPath, baseName);
379
+ if (prePurge && node_fs.existsSync(outputPath))
380
+ yield promises.rm(outputPath, { recursive: true });
381
+ yield buildDisassembledFiles(filePath, outputPath, uniqueIdElements, fullName, INDENT, postPurge);
409
382
  });
410
383
  }
411
384
  }
412
385
 
413
386
  function setLogLevel(level) {
414
- log4js__namespace.getLogger().level = level;
387
+ log4js.getLogger().level = level;
415
388
  }
416
- const logger = log4js__namespace.getLogger();
417
- log4js__namespace.configure({
389
+ const logger = log4js.getLogger();
390
+ log4js.configure({
418
391
  appenders: { disassemble: { type: "file", filename: "disassemble.log" } },
419
392
  categories: { default: { appenders: ["disassemble"], level: "error" } },
420
393
  });