xml-disassembler 1.0.0
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/.eslintignore +2 -0
- package/.eslintrc.json +11 -0
- package/.gitattributes +1 -0
- package/.prettierignore +3 -0
- package/.prettierrc +1 -0
- package/CHANGELOG.md +11 -0
- package/LICENSE +7 -0
- package/README.md +143 -0
- package/dist/index.cjs +291 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.min.cjs +2 -0
- package/dist/index.min.cjs.map +1 -0
- package/dist/index.min.mjs +2 -0
- package/dist/index.min.mjs.map +1 -0
- package/dist/index.min.umd.js +2 -0
- package/dist/index.min.umd.js.map +1 -0
- package/dist/index.mjs +267 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +291 -0
- package/dist/index.umd.js.map +1 -0
- package/jest.config.json +21 -0
- package/package.json +56 -0
package/.eslintignore
ADDED
package/.eslintrc.json
ADDED
package/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
package/.prettierignore
ADDED
package/.prettierrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 1.0.0 (2024-02-21)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- add jests to tsconfig ([d90f1ec](https://github.com/mcarvin8/xml-disassembler/commit/d90f1ecbabb73901efc21bf9e1fdc3a1fd442375))
|
|
6
|
+
- add types node to tsconfig.json ([9fb9a64](https://github.com/mcarvin8/xml-disassembler/commit/9fb9a643dba86bb2f884c781314065b5b9f0054a))
|
|
7
|
+
- re-add index file, rename package due to existing xml-transformer package ([9d67cdc](https://github.com/mcarvin8/xml-disassembler/commit/9d67cdca3fbfbbf9bbe065cc15300f6d7e58a577))
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- initial commit ([1598834](https://github.com/mcarvin8/xml-disassembler/commit/1598834b5734c395c27d8907bc7ca38096e3724b))
|
package/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, Allan Oricil
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# XML Disassembler
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/xml-disassembler) [](https://npmjs.org/package/xml-disassembler)
|
|
4
|
+
|
|
5
|
+
A JS package to disassemble XML files into smaller, more manageable files and re-assemble them when needed.
|
|
6
|
+
|
|
7
|
+
This package is in active development and may have bugs. Once this is deemed stable, this plugin will be released as v1.0.0.
|
|
8
|
+
|
|
9
|
+
## Background
|
|
10
|
+
|
|
11
|
+
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.
|
|
12
|
+
Traditional diff algorithms are not always suitable for these types of files, and manually reviewing changes can be time-consuming and error-prone.
|
|
13
|
+
|
|
14
|
+
The XML Disassembler package addresses this issue by breaking down large XML files into smaller, more digestible chunks. This makes it easier to review changes, identify additions and deletions, and collaborate on projects involving XML files.
|
|
15
|
+
|
|
16
|
+
## Trade-offs
|
|
17
|
+
|
|
18
|
+
Using a custom XML diff algorithm can be beneficial in some cases. However, these algorithms are often complex and require significant expertise to implement correctly. Additionally, they may not be compatible with all types of XML files or your version control instance and could introduce errors during the diffing process.
|
|
19
|
+
|
|
20
|
+
The XML Disassembler package offers a simpler alternative by breaking down XML files into smaller parts. This approach is more straightforward and easier to understand, making it suitable for a wider range of users. It also allows for more granular control over the review process, as each individual file can be reviewed separately.
|
|
21
|
+
|
|
22
|
+
While there are trade-offs between using a custom diff algorithm and the XML Disassembler package, the latter provides a practical and accessible solution for managing large XML files.
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
Install the package using NPM:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
npm install xml-disassembler
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Diassembling Files
|
|
33
|
+
|
|
34
|
+
Import the `DisassembleXMLFileHandler` class from the package.
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
/*
|
|
38
|
+
FLAGS
|
|
39
|
+
- xmlElement: XML Root Element used for disassembled leaf file
|
|
40
|
+
- xmlPath: Directory containing the XML files to disassemble (must be directory). This will only disassemble files in the immediate directory.
|
|
41
|
+
- uniqueIdElements: (Optional) Comma-separated list of unique and required ID elements used to name disassembled files for nested elements. Defaults to SHA-256 hash if unique ID elements are undefined or not found.
|
|
42
|
+
*/
|
|
43
|
+
const handler = new DisassembleXMLFileHandler();
|
|
44
|
+
await handler.disassemble({
|
|
45
|
+
xmlPath: "test/baselines/general",
|
|
46
|
+
uniqueIdElements:
|
|
47
|
+
"application,apexClass,name,externalDataSource,flow,object,apexPage,recordType,tab,field",
|
|
48
|
+
xmlElement: "PermissionSet",
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Example:
|
|
53
|
+
|
|
54
|
+
An XML with the following nested and leaf elements
|
|
55
|
+
|
|
56
|
+
```xml
|
|
57
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
58
|
+
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
59
|
+
<applicationVisibilities>
|
|
60
|
+
<application>JobApps__Recruiting</application>
|
|
61
|
+
<visible>true</visible>
|
|
62
|
+
</applicationVisibilities>
|
|
63
|
+
<classAccesses>
|
|
64
|
+
<apexClass>Send_Email_Confirmation</apexClass>
|
|
65
|
+
<enabled>true</enabled>
|
|
66
|
+
</classAccesses>
|
|
67
|
+
<fieldPermissions>
|
|
68
|
+
<editable>true</editable>
|
|
69
|
+
<field>Job_Request__c.Salary__c</field>
|
|
70
|
+
<readable>true</readable>
|
|
71
|
+
</fieldPermissions>
|
|
72
|
+
<description>Grants all rights needed for an HR administrator to manage employees.</description>
|
|
73
|
+
<label>HR Administration</label>
|
|
74
|
+
<userLicense>Salesforce</userLicense>
|
|
75
|
+
<objectPermissions>
|
|
76
|
+
<allowCreate>true</allowCreate>
|
|
77
|
+
<allowDelete>true</allowDelete>
|
|
78
|
+
<allowEdit>true</allowEdit>
|
|
79
|
+
<allowRead>true</allowRead>
|
|
80
|
+
<viewAllRecords>true</viewAllRecords>
|
|
81
|
+
<modifyAllRecords>true</modifyAllRecords>
|
|
82
|
+
<object>Job_Request__c</object>
|
|
83
|
+
</objectPermissions>
|
|
84
|
+
<pageAccesses>
|
|
85
|
+
<apexPage>Job_Request_Web_Form</apexPage>
|
|
86
|
+
<enabled>true</enabled>
|
|
87
|
+
</pageAccesses>
|
|
88
|
+
<recordTypeVisibilities>
|
|
89
|
+
<recordType>Recruiting.DevManager</recordType>
|
|
90
|
+
<visible>true</visible>
|
|
91
|
+
</recordTypeVisibilities>
|
|
92
|
+
<tabSettings>
|
|
93
|
+
<tab>Job_Request__c</tab>
|
|
94
|
+
<visibility>Available</visibility>
|
|
95
|
+
</tabSettings>
|
|
96
|
+
<userPermissions>
|
|
97
|
+
<enabled>true</enabled>
|
|
98
|
+
<name>APIEnabled</name>
|
|
99
|
+
</userPermissions>
|
|
100
|
+
</PermissionSet>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
will be diassembled as such:
|
|
104
|
+
|
|
105
|
+
- Each nested element (`<recordTypeVisibilities>`, `<applicationVisibilities>`, `pageAccesses`, etc.) will be disassembled into sub-directories by the nested element name. If a unique & required ID element (`application` is the unique ID element for `<applicationVisibilities>`) is found, the disassembled file will be named using it.
|
|
106
|
+
- Each leaf element (`<description>`, `<label>`, `<userLicense>`) will be disassembled into the same file.
|
|
107
|
+
|
|
108
|
+
<img src="https://raw.githubusercontent.com/mcarvin8/xml-disassembler/main/.github/images/disassembled.png">
|
|
109
|
+
|
|
110
|
+
<br>
|
|
111
|
+
|
|
112
|
+
### File Handlers
|
|
113
|
+
|
|
114
|
+
It is up to the user to add additional file handlers before they run the `DisassembleXMLFileHandler` class.
|
|
115
|
+
|
|
116
|
+
## Reassembling Files
|
|
117
|
+
|
|
118
|
+
Import the `ReassembleXMLFileHandler` class from the package.
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
/*
|
|
122
|
+
FLAGS
|
|
123
|
+
- xmlElement: XML Root Element for the final reassembled file
|
|
124
|
+
- xmlPath: Path to the disassembled XML files to reassemble (must be a directory)
|
|
125
|
+
- xmlNamespace: (Optional) Namespace for the final XML (default: None)
|
|
126
|
+
- fileExtension: (Optional) Desired file extension for the final XML (default: `.xml`)
|
|
127
|
+
*/
|
|
128
|
+
const handler = new ReassembleXMLFileHandler();
|
|
129
|
+
await handler.reassemble({
|
|
130
|
+
xmlPath: "test/baselines/general/HR_Admin",
|
|
131
|
+
xmlElement: "PermissionSet",
|
|
132
|
+
xmlNamespace: "http://soap.sforce.com/2006/04/metadata",
|
|
133
|
+
fileExtension: "permissionset-meta.xml",
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
The reassembled XML file will be created in the parent directory of `xmlPath` 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.
|
|
138
|
+
|
|
139
|
+
## Template
|
|
140
|
+
|
|
141
|
+
This project was created from a template provided by [Allan Oricil](https://github.com/AllanOricil). Thank you Allan!
|
|
142
|
+
|
|
143
|
+
His original [license](https://github.com/AllanOricil/js-template/blob/main/LICENSE) remains in this project.
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('node:fs/promises');
|
|
4
|
+
var path = require('node:path');
|
|
5
|
+
var fs$1 = require('node:fs');
|
|
6
|
+
var fastXmlParser = require('fast-xml-parser');
|
|
7
|
+
var node_crypto = require('node:crypto');
|
|
8
|
+
|
|
9
|
+
function _interopNamespaceDefault(e) {
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
27
|
+
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
28
|
+
var fs__namespace$1 = /*#__PURE__*/_interopNamespaceDefault(fs$1);
|
|
29
|
+
|
|
30
|
+
/******************************************************************************
|
|
31
|
+
Copyright (c) Microsoft Corporation.
|
|
32
|
+
|
|
33
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
34
|
+
purpose with or without fee is hereby granted.
|
|
35
|
+
|
|
36
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
37
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
38
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
39
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
40
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
41
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
42
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
43
|
+
***************************************************************************** */
|
|
44
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
48
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
49
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
50
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
51
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
52
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
53
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
58
|
+
var e = new Error(message);
|
|
59
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>';
|
|
63
|
+
const INDENT = " ";
|
|
64
|
+
|
|
65
|
+
function buildReassembledFile(combinedXmlContents, filePath, xmlElement, xmlNamespace) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
let finalXmlContent = combinedXmlContents.join("\n");
|
|
68
|
+
finalXmlContent = finalXmlContent.replace(/<\?xml version="1.0" encoding="UTF-8"\?>/g, "");
|
|
69
|
+
finalXmlContent = finalXmlContent.replace(`<${xmlElement}>`, "");
|
|
70
|
+
finalXmlContent = finalXmlContent.replace(`</${xmlElement}>`, "");
|
|
71
|
+
finalXmlContent = finalXmlContent.replace(/<!\[CDATA\[\s*([\s\S]*?)\s*]]>/g, (match, cdataContent) => {
|
|
72
|
+
const trimmedContent = cdataContent.trim();
|
|
73
|
+
const lines = trimmedContent.split("\n");
|
|
74
|
+
const indentedLines = lines.map((line) => line.replace(/^\s*/, ""));
|
|
75
|
+
return `<![CDATA[\n${INDENT}${indentedLines.join(`\n${INDENT}`)}\n]]>`;
|
|
76
|
+
});
|
|
77
|
+
finalXmlContent = finalXmlContent.replace(/(\n\s*){2,}/g, `\n${INDENT}`);
|
|
78
|
+
const openTag = xmlNamespace
|
|
79
|
+
? `<${xmlElement} xmlns="${xmlNamespace}">`
|
|
80
|
+
: `<${xmlElement}>`;
|
|
81
|
+
const closeTag = `</${xmlElement}>`;
|
|
82
|
+
yield fs__namespace.writeFile(filePath, `${XML_HEADER}\n${openTag}${finalXmlContent}${closeTag}`);
|
|
83
|
+
console.log(`Created reassembled file: ${filePath}`);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
class ReassembleXMLFileHandler {
|
|
88
|
+
processFilesInDirectory(dirPath) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const combinedXmlContents = [];
|
|
91
|
+
const files = yield fs__namespace.readdir(dirPath);
|
|
92
|
+
files.sort((fileA, fileB) => {
|
|
93
|
+
const fullNameA = fileA.split(".")[0].toLowerCase();
|
|
94
|
+
const fullNameB = fileB.split(".")[0].toLowerCase();
|
|
95
|
+
return fullNameA.localeCompare(fullNameB);
|
|
96
|
+
});
|
|
97
|
+
for (const file of files) {
|
|
98
|
+
const filePath = path__namespace.join(dirPath, file);
|
|
99
|
+
const fileStat = yield fs__namespace.stat(filePath);
|
|
100
|
+
if (fileStat.isFile()) {
|
|
101
|
+
const xmlContent = yield fs__namespace.readFile(filePath, "utf-8");
|
|
102
|
+
combinedXmlContents.push(xmlContent);
|
|
103
|
+
}
|
|
104
|
+
else if (fileStat.isDirectory()) {
|
|
105
|
+
const subdirectoryContents = yield this.processFilesInDirectory(filePath);
|
|
106
|
+
combinedXmlContents.push(...subdirectoryContents);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return combinedXmlContents;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
reassemble(xmlAttributes) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const { xmlElement, xmlPath, xmlNamespace, fileExtension } = xmlAttributes;
|
|
115
|
+
const combinedXmlContents = [];
|
|
116
|
+
const filesInxmlPath = yield fs__namespace.readdir(xmlPath);
|
|
117
|
+
for (const file of filesInxmlPath) {
|
|
118
|
+
const filePath = path__namespace.join(xmlPath, file);
|
|
119
|
+
const fileStat = yield fs__namespace.stat(filePath);
|
|
120
|
+
if (fileStat.isFile()) {
|
|
121
|
+
const xmlContent = yield fs__namespace.readFile(filePath, "utf-8");
|
|
122
|
+
combinedXmlContents.push(xmlContent);
|
|
123
|
+
}
|
|
124
|
+
else if (fileStat.isDirectory()) {
|
|
125
|
+
const subdirectoryContents = yield this.processFilesInDirectory(filePath);
|
|
126
|
+
combinedXmlContents.push(...subdirectoryContents);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const parentDirectory = path__namespace.dirname(xmlPath);
|
|
130
|
+
const subdirectoryBasename = path__namespace.basename(xmlPath);
|
|
131
|
+
const fileName = fileExtension
|
|
132
|
+
? `${subdirectoryBasename}.${fileExtension}`
|
|
133
|
+
: `${subdirectoryBasename}.xml`;
|
|
134
|
+
const filePath = path__namespace.join(parentDirectory, fileName);
|
|
135
|
+
yield buildReassembledFile(combinedXmlContents, filePath, xmlElement, xmlNamespace);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const XML_PARSER_OPTION = {
|
|
141
|
+
commentPropName: "!---",
|
|
142
|
+
ignoreAttributes: false,
|
|
143
|
+
ignoreNameSpace: false,
|
|
144
|
+
parseTagValue: false,
|
|
145
|
+
parseNodeValue: false,
|
|
146
|
+
parseAttributeValue: false,
|
|
147
|
+
trimValues: true,
|
|
148
|
+
processEntities: false,
|
|
149
|
+
cdataPropName: "![CDATA[",
|
|
150
|
+
};
|
|
151
|
+
const JSON_PARSER_OPTION = Object.assign(Object.assign({}, XML_PARSER_OPTION), { format: true, indentBy: INDENT, suppressBooleanAttributes: false, suppressEmptyNode: false });
|
|
152
|
+
|
|
153
|
+
function findUniqueIdElement(element, uniqueIdElements) {
|
|
154
|
+
if (uniqueIdElements === undefined) {
|
|
155
|
+
return getShortHash(element);
|
|
156
|
+
}
|
|
157
|
+
const uniqueIdElementsArray = uniqueIdElements.split(",");
|
|
158
|
+
for (const fieldName of uniqueIdElementsArray) {
|
|
159
|
+
if (element[fieldName] !== undefined) {
|
|
160
|
+
if (typeof element[fieldName] === "string") {
|
|
161
|
+
return element[fieldName];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
for (const key in element) {
|
|
166
|
+
if (typeof element[key] === "object" && element[key] !== null) {
|
|
167
|
+
const childFieldName = findUniqueIdElement(element[key], uniqueIdElements);
|
|
168
|
+
if (childFieldName !== undefined) {
|
|
169
|
+
return childFieldName;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return getShortHash(element);
|
|
174
|
+
}
|
|
175
|
+
function getShortHash(element) {
|
|
176
|
+
const hash = node_crypto.createHash("sha256");
|
|
177
|
+
hash.update(JSON.stringify(element));
|
|
178
|
+
const fullHash = hash.digest("hex");
|
|
179
|
+
return fullHash.slice(0, 8);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function buildNestedElements(element, indentLevel = 2) {
|
|
183
|
+
const xmlBuilder = new fastXmlParser.XMLBuilder(JSON_PARSER_OPTION);
|
|
184
|
+
const xmlString = xmlBuilder.build(element);
|
|
185
|
+
const formattedXml = xmlString
|
|
186
|
+
.split("\n")
|
|
187
|
+
.map((line) => `${" ".repeat(indentLevel * INDENT.length)}${line}`)
|
|
188
|
+
.join("\n")
|
|
189
|
+
.trimEnd();
|
|
190
|
+
return formattedXml;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function buildDisassembledFiles(xmlString, metadataPath, uniqueIdElements, xmlElement, baseName, indent) {
|
|
194
|
+
const xmlParser = new fastXmlParser.XMLParser(XML_PARSER_OPTION);
|
|
195
|
+
const result = xmlParser.parse(xmlString);
|
|
196
|
+
const rootElementName = Object.keys(result)[1];
|
|
197
|
+
const rootElement = result[rootElementName];
|
|
198
|
+
let leafContent = "";
|
|
199
|
+
let leafCount = 0;
|
|
200
|
+
Object.keys(rootElement)
|
|
201
|
+
.filter((key) => !key.startsWith("@"))
|
|
202
|
+
.forEach((key) => {
|
|
203
|
+
if (Array.isArray(rootElement[key])) {
|
|
204
|
+
for (const element of rootElement[key]) {
|
|
205
|
+
if (typeof element === "object") {
|
|
206
|
+
buildNestedFile(element, metadataPath, uniqueIdElements, key, indent);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
const fieldValue = element;
|
|
210
|
+
leafContent += `${indent}<${key}>${String(fieldValue)}</${key}>\n`;
|
|
211
|
+
leafCount++;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else if (typeof rootElement[key] === "object") {
|
|
216
|
+
buildNestedFile(rootElement[key], metadataPath, uniqueIdElements, key, indent);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
const fieldValue = rootElement[key];
|
|
220
|
+
leafContent += `${indent}<${key}>${String(fieldValue)}</${key}>\n`;
|
|
221
|
+
leafCount++;
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
if (leafCount > 0) {
|
|
225
|
+
let leafFile = `${XML_HEADER}\n`;
|
|
226
|
+
leafFile += `<${xmlElement}>\n`;
|
|
227
|
+
const sortedLeafContent = leafContent
|
|
228
|
+
.split("\n")
|
|
229
|
+
.filter((line) => line.trim() !== "")
|
|
230
|
+
.sort()
|
|
231
|
+
.join("\n");
|
|
232
|
+
leafFile += sortedLeafContent;
|
|
233
|
+
leafFile += `\n</${xmlElement}>`;
|
|
234
|
+
const leafOutputPath = path__namespace.join(metadataPath, `${baseName}.xml`);
|
|
235
|
+
fs__namespace$1.writeFileSync(leafOutputPath, leafFile);
|
|
236
|
+
console.log(`All leaf elements saved to: ${leafOutputPath}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
function buildNestedFile(element, metadataPath, uniqueIdElements, parentKey, indent) {
|
|
240
|
+
let elementContent = "";
|
|
241
|
+
elementContent += `${XML_HEADER}\n`;
|
|
242
|
+
const fieldName = findUniqueIdElement(element, uniqueIdElements);
|
|
243
|
+
const outputDirectory = path__namespace.join(metadataPath, parentKey);
|
|
244
|
+
const outputFileName = `${fieldName}.${parentKey}-meta.xml`;
|
|
245
|
+
const outputPath = path__namespace.join(outputDirectory, outputFileName);
|
|
246
|
+
fs__namespace$1.mkdirSync(outputDirectory, { recursive: true });
|
|
247
|
+
elementContent = buildNestedElements(element);
|
|
248
|
+
let decomposeFileContents = `${XML_HEADER}\n`;
|
|
249
|
+
decomposeFileContents += `${indent}<${parentKey}>\n`;
|
|
250
|
+
decomposeFileContents += `${elementContent}\n`;
|
|
251
|
+
decomposeFileContents += `${indent}</${parentKey}>\n`;
|
|
252
|
+
fs__namespace$1.writeFileSync(outputPath, decomposeFileContents);
|
|
253
|
+
console.log(`XML content saved to: ${outputPath}`);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
class DisassembleXMLFileHandler {
|
|
257
|
+
disassemble(xmlAttributes) {
|
|
258
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
259
|
+
const { xmlPath, xmlElement, uniqueIdElements } = xmlAttributes;
|
|
260
|
+
const files = yield fs__namespace.readdir(xmlPath);
|
|
261
|
+
for (const file of files) {
|
|
262
|
+
const filePath = path__namespace.join(xmlPath, file);
|
|
263
|
+
yield this.processFile({
|
|
264
|
+
xmlPath,
|
|
265
|
+
filePath,
|
|
266
|
+
uniqueIdElements,
|
|
267
|
+
xmlElement,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
processFile(xmlAttributes) {
|
|
273
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
274
|
+
const { xmlPath, filePath, xmlElement, uniqueIdElements } = xmlAttributes;
|
|
275
|
+
if (filePath.endsWith(".xml")) {
|
|
276
|
+
console.log(`Parsing file: ${filePath}`);
|
|
277
|
+
const xmlContent = yield fs__namespace.readFile(filePath, "utf-8");
|
|
278
|
+
const baseName = path__namespace
|
|
279
|
+
.basename(filePath, path__namespace.extname(filePath))
|
|
280
|
+
.split(".")[0];
|
|
281
|
+
let outputPath;
|
|
282
|
+
outputPath = path__namespace.join(xmlPath, baseName);
|
|
283
|
+
buildDisassembledFiles(xmlContent, outputPath, uniqueIdElements, xmlElement, baseName, INDENT);
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
exports.DisassembleXMLFileHandler = DisassembleXMLFileHandler;
|
|
290
|
+
exports.ReassembleXMLFileHandler = ReassembleXMLFileHandler;
|
|
291
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.9.6_tslib@2.6.2_typescript@5.3.3/node_modules/tslib/tslib.es6.js","../../src/helpers/constants.ts","../../src/service/buildReassembledFiles.ts","../../src/service/reassembleXMLFileHandler.ts","../../src/helpers/types.ts","../../src/service/findUniqueIdElement.ts","../../src/service/buildNestedElements.ts","../../src/service/buildDisassembledFiles.ts","../../src/service/disassembleXMLFileHandler.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null],"names":["fs","path","createHash","XMLBuilder","XMLParser"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("node:fs/promises"),t=require("node:path"),n=require("node:fs"),i=require("fast-xml-parser"),r=require("node:crypto");function s(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=s(e),l=s(t),c=s(n);function a(e,t,n,i){return new(n||(n=Promise))((function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function l(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const u='<?xml version="1.0" encoding="UTF-8"?>',f=" ";const d={commentPropName:"!---",ignoreAttributes:!1,ignoreNameSpace:!1,parseTagValue:!1,parseNodeValue:!1,parseAttributeValue:!1,trimValues:!0,processEntities:!1,cdataPropName:"![CDATA["},p=Object.assign(Object.assign({},d),{format:!0,indentBy:f,suppressBooleanAttributes:!1,suppressEmptyNode:!1});function m(e,t){if(void 0===t)return $(e);const n=t.split(",");for(const t of n)if(void 0!==e[t]&&"string"==typeof e[t])return e[t];for(const n in e)if("object"==typeof e[n]&&null!==e[n]){const i=m(e[n],t);if(void 0!==i)return i}return $(e)}function $(e){const t=r.createHash("sha256");t.update(JSON.stringify(e));return t.digest("hex").slice(0,8)}function y(e,t,n,r,s){let o="";o+=`${u}\n`;const a=m(e,n),d=l.join(t,r),$=`${a}.${r}-meta.xml`,y=l.join(d,$);c.mkdirSync(d,{recursive:!0}),o=function(e,t=2){return new i.XMLBuilder(p).build(e).split("\n").map((e=>`${" ".repeat(t*f.length)}${e}`)).join("\n").trimEnd()}(e);let h=`${u}\n`;h+=`${s}<${r}>\n`,h+=`${o}\n`,h+=`${s}</${r}>\n`,c.writeFileSync(y,h),console.log(`XML content saved to: ${y}`)}exports.DisassembleXMLFileHandler=class{disassemble(e){return a(this,void 0,void 0,(function*(){const{xmlPath:t,xmlElement:n,uniqueIdElements:i}=e,r=yield o.readdir(t);for(const e of r){const r=l.join(t,e);yield this.processFile({xmlPath:t,filePath:r,uniqueIdElements:i,xmlElement:n})}}))}processFile(e){return a(this,void 0,void 0,(function*(){const{xmlPath:t,filePath:n,xmlElement:r,uniqueIdElements:s}=e;if(n.endsWith(".xml")){console.log(`Parsing file: ${n}`);const e=yield o.readFile(n,"utf-8"),a=l.basename(n,l.extname(n)).split(".")[0];let p;p=l.join(t,a),function(e,t,n,r,s,o){const a=new i.XMLParser(d).parse(e),f=a[Object.keys(a)[1]];let p="",m=0;if(Object.keys(f).filter((e=>!e.startsWith("@"))).forEach((e=>{if(Array.isArray(f[e]))for(const i of f[e])"object"==typeof i?y(i,t,n,e,o):(p+=`${o}<${e}>${String(i)}</${e}>\n`,m++);else if("object"==typeof f[e])y(f[e],t,n,e,o);else{const t=f[e];p+=`${o}<${e}>${String(t)}</${e}>\n`,m++}})),m>0){let e=`${u}\n`;e+=`<${r}>\n`,e+=p.split("\n").filter((e=>""!==e.trim())).sort().join("\n"),e+=`\n</${r}>`;const n=l.join(t,`${s}.xml`);c.writeFileSync(n,e),console.log(`All leaf elements saved to: ${n}`)}}(e,p,s,r,a,f)}}))}},exports.ReassembleXMLFileHandler=class{processFilesInDirectory(e){return a(this,void 0,void 0,(function*(){const t=[],n=yield o.readdir(e);n.sort(((e,t)=>{const n=e.split(".")[0].toLowerCase(),i=t.split(".")[0].toLowerCase();return n.localeCompare(i)}));for(const i of n){const n=l.join(e,i),r=yield o.stat(n);if(r.isFile()){const e=yield o.readFile(n,"utf-8");t.push(e)}else if(r.isDirectory()){const e=yield this.processFilesInDirectory(n);t.push(...e)}}return t}))}reassemble(e){return a(this,void 0,void 0,(function*(){const{xmlElement:t,xmlPath:n,xmlNamespace:i,fileExtension:r}=e,s=[],c=yield o.readdir(n);for(const e of c){const t=l.join(n,e),i=yield o.stat(t);if(i.isFile()){const e=yield o.readFile(t,"utf-8");s.push(e)}else if(i.isDirectory()){const e=yield this.processFilesInDirectory(t);s.push(...e)}}const d=l.dirname(n),p=l.basename(n),m=r?`${p}.${r}`:`${p}.xml`,$=l.join(d,m);yield function(e,t,n,i){return a(this,void 0,void 0,(function*(){let r=e.join("\n");r=r.replace(/<\?xml version="1.0" encoding="UTF-8"\?>/g,""),r=r.replace(`<${n}>`,""),r=r.replace(`</${n}>`,""),r=r.replace(/<!\[CDATA\[\s*([\s\S]*?)\s*]]>/g,((e,t)=>{const n=t.trim().split("\n").map((e=>e.replace(/^\s*/,"")));return`<![CDATA[\n${f}${n.join(`\n${f}`)}\n]]>`})),r=r.replace(/(\n\s*){2,}/g,`\n${f}`);const s=i?`<${n} xmlns="${i}">`:`<${n}>`,l=`</${n}>`;yield o.writeFile(t,`${u}\n${s}${r}${l}`),console.log(`Created reassembled file: ${t}`)}))}(s,$,t,i)}))}};
|
|
2
|
+
//# sourceMappingURL=index.min.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.min.cjs","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.9.6_tslib@2.6.2_typescript@5.3.3/node_modules/tslib/tslib.es6.js","../../src/helpers/constants.ts","../../src/helpers/types.ts","../../src/service/findUniqueIdElement.ts","../../src/service/buildDisassembledFiles.ts","../../src/service/buildNestedElements.ts","../../src/service/disassembleXMLFileHandler.ts","../../src/service/reassembleXMLFileHandler.ts","../../src/service/buildReassembledFiles.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","XML_HEADER","INDENT","XML_PARSER_OPTION","commentPropName","ignoreAttributes","ignoreNameSpace","parseTagValue","parseNodeValue","parseAttributeValue","trimValues","processEntities","cdataPropName","JSON_PARSER_OPTION","Object","assign","format","indentBy","suppressBooleanAttributes","suppressEmptyNode","findUniqueIdElement","element","uniqueIdElements","undefined","getShortHash","uniqueIdElementsArray","split","fieldName","key","childFieldName","hash","createHash","update","JSON","stringify","digest","slice","buildNestedFile","metadataPath","parentKey","indent","elementContent","outputDirectory","path","join","outputFileName","outputPath","fs","mkdirSync","recursive","indentLevel","XMLBuilder","build","map","line","repeat","length","trimEnd","buildNestedElements","decomposeFileContents","writeFileSync","console","log","disassemble","xmlAttributes","xmlPath","xmlElement","files","readdir","file","filePath","this","processFile","endsWith","xmlContent","readFile","baseName","basename","extname","xmlString","XMLParser","parse","rootElement","keys","leafContent","leafCount","filter","startsWith","forEach","Array","isArray","String","fieldValue","leafFile","trim","sort","leafOutputPath","buildDisassembledFiles","processFilesInDirectory","dirPath","combinedXmlContents","fileA","fileB","fullNameA","toLowerCase","fullNameB","localeCompare","fileStat","stat","isFile","push","isDirectory","subdirectoryContents","reassemble","xmlNamespace","fileExtension","filesInxmlPath","parentDirectory","dirname","subdirectoryBasename","fileName","finalXmlContent","replace","match","cdataContent","indentedLines","openTag","closeTag","writeFile","buildReassembledFile"],"mappings":"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","x_google_ignoreList":[0]}
|