sf-git-merge-driver 1.0.0-dev-3.13729918030-1 → 1.0.0-dev-3.13770819265-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/lib/driver/MergeDriver.js +1 -1
- package/lib/driver/MergeDriver.js.map +1 -1
- package/lib/merger/XmlMerger.d.ts +1 -1
- package/lib/merger/XmlMerger.js +21 -15
- package/lib/merger/XmlMerger.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ EXAMPLES
|
|
|
47
47
|
$ sf git merge driver install
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
_See code: [src/commands/git/merge/driver/install.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.
|
|
50
|
+
_See code: [src/commands/git/merge/driver/install.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13770819265-1/src/commands/git/merge/driver/install.ts)_
|
|
51
51
|
|
|
52
52
|
## `sf git merge driver run`
|
|
53
53
|
|
|
@@ -85,7 +85,7 @@ EXAMPLES
|
|
|
85
85
|
- output-file is the path to the file where the merged content will be written
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
_See code: [src/commands/git/merge/driver/run.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.
|
|
88
|
+
_See code: [src/commands/git/merge/driver/run.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13770819265-1/src/commands/git/merge/driver/run.ts)_
|
|
89
89
|
|
|
90
90
|
## `sf git merge driver uninstall`
|
|
91
91
|
|
|
@@ -112,7 +112,7 @@ EXAMPLES
|
|
|
112
112
|
$ sf git merge driver uninstall
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
_See code: [src/commands/git/merge/driver/uninstall.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.
|
|
115
|
+
_See code: [src/commands/git/merge/driver/uninstall.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13770819265-1/src/commands/git/merge/driver/uninstall.ts)_
|
|
116
116
|
<!-- commandsstop -->
|
|
117
117
|
|
|
118
118
|
|
|
@@ -9,7 +9,7 @@ export class MergeDriver {
|
|
|
9
9
|
readFile(theirFile, 'utf8'),
|
|
10
10
|
]);
|
|
11
11
|
const xmlMerger = new XmlMerger();
|
|
12
|
-
const mergedContent =
|
|
12
|
+
const mergedContent = xmlMerger.tripartXmlMerge(ancestorContent, ourContent, theirContent);
|
|
13
13
|
// Write the merged content to the output file
|
|
14
14
|
await writeFile(outputFile, mergedContent);
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeDriver.js","sourceRoot":"","sources":["../../src/driver/MergeDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU;QAC3D,0BAA0B;QAC1B,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;SAC5B,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;QAEjC,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"MergeDriver.js","sourceRoot":"","sources":["../../src/driver/MergeDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU;QAC3D,0BAA0B;QAC1B,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;SAC5B,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;QAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAC7C,eAAe,EACf,UAAU,EACV,YAAY,CACb,CAAA;QAED,8CAA8C;QAC9C,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAC5C,CAAC;CACF"}
|
package/lib/merger/XmlMerger.js
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { XMLBuilder, XMLParser } from 'fast-xml-parser';
|
|
2
2
|
import { JsonMerger } from './JsonMerger.js';
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
format: true,
|
|
3
|
+
const XML_DECL = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
4
|
+
const XML_COMMENT_PROP_NAME = '#xml__comment';
|
|
5
|
+
const parserOptions = {
|
|
7
6
|
ignoreAttributes: false,
|
|
8
|
-
ignoreNameSpace: false,
|
|
9
|
-
indentBy: ' ',
|
|
10
|
-
parseAttributeValue: false,
|
|
11
|
-
parseNodeValue: false,
|
|
12
7
|
parseTagValue: false,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
parseAttributeValue: false,
|
|
9
|
+
cdataPropName: '__cdata',
|
|
10
|
+
ignoreDeclaration: true,
|
|
11
|
+
numberParseOptions: { leadingZeros: false, hex: false },
|
|
12
|
+
commentPropName: XML_COMMENT_PROP_NAME,
|
|
13
|
+
};
|
|
14
|
+
const builderOptions = {
|
|
15
|
+
format: true,
|
|
16
|
+
indentBy: ' ',
|
|
17
|
+
ignoreAttributes: false,
|
|
18
|
+
cdataPropName: '__cdata',
|
|
19
|
+
commentPropName: XML_COMMENT_PROP_NAME,
|
|
16
20
|
};
|
|
21
|
+
const correctComments = (xml) => xml.includes('<!--') ? xml.replace(/\s+<!--(.*?)-->\s+/g, '<!--$1-->') : xml;
|
|
22
|
+
const handleSpecialEntities = (xml) => xml.replaceAll('&#160;', ' ');
|
|
17
23
|
export class XmlMerger {
|
|
18
|
-
|
|
19
|
-
const parser = new XMLParser(
|
|
24
|
+
tripartXmlMerge(ancestorContent, ourContent, theirContent) {
|
|
25
|
+
const parser = new XMLParser(parserOptions);
|
|
20
26
|
const ancestorObj = parser.parse(ancestorContent);
|
|
21
27
|
const ourObj = parser.parse(ourContent);
|
|
22
28
|
const theirObj = parser.parse(theirContent);
|
|
@@ -24,9 +30,9 @@ export class XmlMerger {
|
|
|
24
30
|
const jsonMerger = new JsonMerger();
|
|
25
31
|
const mergedObj = jsonMerger.mergeObjects(ancestorObj, ourObj, theirObj);
|
|
26
32
|
// Convert back to XML and format
|
|
27
|
-
const builder = new XMLBuilder(
|
|
33
|
+
const builder = new XMLBuilder(builderOptions);
|
|
28
34
|
const mergedXml = builder.build(mergedObj);
|
|
29
|
-
return mergedXml;
|
|
35
|
+
return correctComments(XML_DECL.concat(handleSpecialEntities(mergedXml)));
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
//# sourceMappingURL=XmlMerger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlMerger.js","sourceRoot":"","sources":["../../src/merger/XmlMerger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,
|
|
1
|
+
{"version":3,"file":"XmlMerger.js","sourceRoot":"","sources":["../../src/merger/XmlMerger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,QAAQ,GAAG,0CAA0C,CAAA;AAC3D,MAAM,qBAAqB,GAAG,eAAe,CAAA;AAE7C,MAAM,aAAa,GAAG;IACpB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,mBAAmB,EAAE,KAAK;IAC1B,aAAa,EAAE,SAAS;IACxB,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IACvD,eAAe,EAAE,qBAAqB;CACvC,CAAA;AAED,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,MAAM;IAChB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,qBAAqB;CACvC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE,CAC9C,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAE9E,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAU,EAAE,CACpD,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;AAExC,MAAM,OAAO,SAAS;IACpB,eAAe,CACb,eAAuB,EACvB,UAAkB,EAClB,YAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAA;QAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAE3C,oCAAoC;QAEpC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QACnC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAExE,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC1C,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;CACF"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-merge-driver",
|
|
3
|
-
"version": "1.0.0-dev-3.
|
|
3
|
+
"version": "1.0.0-dev-3.13770819265-1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "sf-git-merge-driver",
|
|
9
|
-
"version": "1.0.0-dev-3.
|
|
9
|
+
"version": "1.0.0-dev-3.13770819265-1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@oclif/core": "^4.2.8",
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-merge-driver",
|
|
3
3
|
"description": "git remote add origin git@github.com:scolladon/sf-git-merge-driver.git",
|
|
4
|
-
"version": "1.0.0-dev-3.
|
|
4
|
+
"version": "1.0.0-dev-3.13770819265-1",
|
|
5
5
|
"exports": "./lib/driver/MergeDriver.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Sébastien Colladon (colladonsebastien@gmail.com)",
|