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 +7 -0
- package/disassemble.log +93 -93
- package/dist/index.cjs +96 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.min.cjs +1 -1
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.min.umd.js +1 -1
- package/dist/index.min.umd.js.map +1 -1
- package/dist/index.mjs +98 -103
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +97 -124
- package/dist/index.umd.js.map +1 -1
- package/dist/typings/index.d.ts +1 -2
- package/dist/typings/service/buildDisassembledFiles.d.ts +1 -1
- package/dist/typings/service/parseXML.d.ts +2 -0
- package/dist/typings/service/processFilesForRootElement.d.ts +2 -0
- package/dist/typings/service/reassembleXMLFileHandler.d.ts +0 -2
- package/package.json +1 -1
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-
|
|
2
|
-
[2024-04-
|
|
3
|
-
[2024-04-
|
|
4
|
-
[2024-04-
|
|
5
|
-
[2024-04-
|
|
6
|
-
[2024-04-
|
|
7
|
-
[2024-04-
|
|
8
|
-
[2024-04-
|
|
9
|
-
[2024-04-
|
|
10
|
-
[2024-04-
|
|
11
|
-
[2024-04-
|
|
12
|
-
[2024-04-
|
|
13
|
-
[2024-04-
|
|
14
|
-
[2024-04-
|
|
15
|
-
[2024-04-
|
|
16
|
-
[2024-04-
|
|
17
|
-
[2024-04-
|
|
18
|
-
[2024-04-
|
|
19
|
-
[2024-04-
|
|
20
|
-
[2024-04-
|
|
21
|
-
[2024-04-
|
|
22
|
-
[2024-04-
|
|
23
|
-
[2024-04-
|
|
24
|
-
[2024-04-
|
|
25
|
-
[2024-04-
|
|
26
|
-
[2024-04-
|
|
27
|
-
[2024-04-
|
|
28
|
-
[2024-04-
|
|
29
|
-
[2024-04-
|
|
30
|
-
[2024-04-
|
|
31
|
-
[2024-04-
|
|
32
|
-
[2024-04-
|
|
33
|
-
[2024-04-
|
|
34
|
-
[2024-04-
|
|
35
|
-
[2024-04-
|
|
36
|
-
[2024-04-
|
|
37
|
-
[2024-04-
|
|
38
|
-
[2024-04-
|
|
39
|
-
[2024-04-
|
|
40
|
-
[2024-04-
|
|
41
|
-
[2024-04-
|
|
42
|
-
[2024-04-
|
|
43
|
-
[2024-04-
|
|
44
|
-
[2024-04-
|
|
45
|
-
[2024-04-
|
|
46
|
-
[2024-04-
|
|
47
|
-
[2024-04-
|
|
48
|
-
[2024-04-
|
|
49
|
-
[2024-04-
|
|
50
|
-
[2024-04-
|
|
51
|
-
[2024-04-
|
|
52
|
-
[2024-04-
|
|
53
|
-
[2024-04-
|
|
54
|
-
[2024-04-
|
|
55
|
-
[2024-04-
|
|
56
|
-
[2024-04-
|
|
57
|
-
[2024-04-
|
|
58
|
-
[2024-04-
|
|
59
|
-
[2024-04-
|
|
60
|
-
[2024-04-
|
|
61
|
-
[2024-04-
|
|
62
|
-
[2024-04-
|
|
63
|
-
[2024-04-
|
|
64
|
-
[2024-04-
|
|
65
|
-
[2024-04-
|
|
66
|
-
[2024-04-
|
|
67
|
-
[2024-04-
|
|
68
|
-
[2024-04-
|
|
69
|
-
[2024-04-
|
|
70
|
-
[2024-04-
|
|
71
|
-
[2024-04-
|
|
72
|
-
[2024-04-
|
|
73
|
-
[2024-04-
|
|
74
|
-
[2024-04-
|
|
75
|
-
[2024-04-
|
|
76
|
-
[2024-04-
|
|
77
|
-
[2024-04-
|
|
78
|
-
[2024-04-
|
|
79
|
-
[2024-04-
|
|
80
|
-
[2024-04-
|
|
81
|
-
[2024-04-
|
|
82
|
-
[2024-04-
|
|
83
|
-
[2024-04-
|
|
84
|
-
[2024-04-
|
|
85
|
-
[2024-04-
|
|
86
|
-
[2024-04-
|
|
87
|
-
[2024-04-
|
|
88
|
-
[2024-04-
|
|
89
|
-
[2024-04-
|
|
90
|
-
[2024-04-
|
|
91
|
-
[2024-04-
|
|
92
|
-
[2024-04-
|
|
93
|
-
[2024-04-
|
|
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
|
|
6
|
-
var
|
|
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
|
|
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
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
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 =
|
|
138
|
-
const fileStat = yield
|
|
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
|
|
141
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
188
|
-
const subdirectoryBasename =
|
|
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 =
|
|
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
|
|
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 =
|
|
223
|
+
const outputDirectory = node_path.join(metadataPath, parentKey);
|
|
240
224
|
const outputFileName = `${fieldName}.${parentKey}-meta.xml`;
|
|
241
|
-
const outputPath =
|
|
242
|
-
yield
|
|
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
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
yield
|
|
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 =
|
|
283
|
-
yield
|
|
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(
|
|
272
|
+
function buildDisassembledFiles(xmlPath, metadataPath, uniqueIdElements, baseName, indent, postPurge) {
|
|
289
273
|
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
-
const
|
|
291
|
-
|
|
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
|
|
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 ${
|
|
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
|
-
|
|
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
|
|
338
|
+
const fileStat = yield promises.stat(xmlPath);
|
|
362
339
|
if (fileStat.isFile()) {
|
|
363
|
-
const filePath =
|
|
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 =
|
|
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
|
|
355
|
+
const files = yield promises.readdir(xmlPath);
|
|
379
356
|
for (const file of files) {
|
|
380
|
-
const filePath =
|
|
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
|
|
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 =
|
|
403
|
-
if (prePurge)
|
|
404
|
-
|
|
405
|
-
|
|
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
|
-
|
|
387
|
+
log4js.getLogger().level = level;
|
|
415
388
|
}
|
|
416
|
-
const logger =
|
|
417
|
-
|
|
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
|
});
|