sf-git-merge-driver 1.4.0-dev-156.21254415558-1 → 1.4.0-dev-159.21317248282-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 +30 -6
- package/lib/commands/git/merge/driver/run.js +3 -5
- package/lib/commands/git/merge/driver/run.js.map +1 -1
- package/lib/constant/conflictConstant.d.ts +3 -3
- package/lib/constant/conflictConstant.js +3 -3
- package/lib/constant/conflictConstant.js.map +1 -1
- package/lib/constant/parserConstant.d.ts +6 -0
- package/lib/constant/parserConstant.js +6 -0
- package/lib/constant/parserConstant.js.map +1 -1
- package/lib/driver/MergeDriver.d.ts +3 -0
- package/lib/driver/MergeDriver.js +5 -1
- package/lib/driver/MergeDriver.js.map +1 -1
- package/lib/merger/ConflictMarkerBuilder.d.ts +3 -0
- package/lib/merger/ConflictMarkerBuilder.js +33 -0
- package/lib/merger/ConflictMarkerBuilder.js.map +1 -0
- package/lib/merger/ConflictMarkerFormatter.d.ts +14 -0
- package/lib/merger/ConflictMarkerFormatter.js +43 -0
- package/lib/merger/ConflictMarkerFormatter.js.map +1 -0
- package/lib/merger/JsonMerger.d.ts +3 -0
- package/lib/merger/JsonMerger.js +20 -212
- package/lib/merger/JsonMerger.js.map +1 -1
- package/lib/merger/MergeContext.d.ts +17 -0
- package/lib/merger/MergeContext.js +2 -0
- package/lib/merger/MergeContext.js.map +1 -0
- package/lib/merger/MergeOrchestrator.d.ts +13 -0
- package/lib/merger/MergeOrchestrator.js +46 -0
- package/lib/merger/MergeOrchestrator.js.map +1 -0
- package/lib/merger/MergeScenarioFactory.d.ts +2 -0
- package/lib/merger/MergeScenarioFactory.js +22 -0
- package/lib/merger/MergeScenarioFactory.js.map +1 -0
- package/lib/merger/XmlMerger.d.ts +5 -0
- package/lib/merger/XmlMerger.js +19 -16
- package/lib/merger/XmlMerger.js.map +1 -1
- package/lib/merger/nodes/KeyedArrayMergeNode.d.ts +12 -0
- package/lib/merger/nodes/KeyedArrayMergeNode.js +67 -0
- package/lib/merger/nodes/KeyedArrayMergeNode.js.map +1 -0
- package/lib/merger/nodes/MergeNode.d.ts +5 -0
- package/lib/merger/nodes/MergeNode.js +2 -0
- package/lib/merger/nodes/MergeNode.js.map +1 -0
- package/lib/merger/nodes/MergeNodeFactory.d.ts +9 -0
- package/lib/merger/nodes/MergeNodeFactory.js +21 -0
- package/lib/merger/nodes/MergeNodeFactory.js.map +1 -0
- package/lib/merger/nodes/ObjectMergeNode.d.ts +20 -0
- package/lib/merger/nodes/ObjectMergeNode.js +49 -0
- package/lib/merger/nodes/ObjectMergeNode.js.map +1 -0
- package/lib/merger/nodes/TextArrayMergeNode.d.ts +12 -0
- package/lib/merger/nodes/TextArrayMergeNode.js +66 -0
- package/lib/merger/nodes/TextArrayMergeNode.js.map +1 -0
- package/lib/merger/nodes/TextMergeNode.d.ts +12 -0
- package/lib/merger/nodes/TextMergeNode.js +36 -0
- package/lib/merger/nodes/TextMergeNode.js.map +1 -0
- package/lib/merger/nodes/nodeUtils.d.ts +5 -0
- package/lib/merger/nodes/nodeUtils.js +20 -0
- package/lib/merger/nodes/nodeUtils.js.map +1 -0
- package/lib/merger/strategies/AllPresentStrategy.d.ts +7 -0
- package/lib/merger/strategies/AllPresentStrategy.js +36 -0
- package/lib/merger/strategies/AllPresentStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.d.ts +8 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.js +64 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.d.ts +8 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.js +64 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.js +19 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.d.ts +7 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.js +45 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.js.map +1 -0
- package/lib/merger/strategies/LocalOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/LocalOnlyStrategy.js +14 -0
- package/lib/merger/strategies/LocalOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/NoneStrategy.d.ts +6 -0
- package/lib/merger/strategies/NoneStrategy.js +8 -0
- package/lib/merger/strategies/NoneStrategy.js.map +1 -0
- package/lib/merger/strategies/OtherOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/OtherOnlyStrategy.js +14 -0
- package/lib/merger/strategies/OtherOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/ScenarioStrategy.d.ts +5 -0
- package/lib/merger/strategies/ScenarioStrategy.js +2 -0
- package/lib/merger/strategies/ScenarioStrategy.js.map +1 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.d.ts +3 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.js +23 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.js.map +1 -0
- package/lib/merger/strategies/TextMergeStrategy.d.ts +32 -0
- package/lib/merger/strategies/TextMergeStrategy.js +80 -0
- package/lib/merger/strategies/TextMergeStrategy.js.map +1 -0
- package/lib/service/NamespaceHandler.js +1 -2
- package/lib/service/NamespaceHandler.js.map +1 -1
- package/lib/types/conflictTypes.d.ts +1 -1
- package/lib/types/mergeResult.d.ts +8 -0
- package/lib/types/mergeResult.js +33 -0
- package/lib/types/mergeResult.js.map +1 -0
- package/lib/types/mergeScenario.d.ts +0 -1
- package/lib/types/mergeScenario.js +0 -20
- package/lib/types/mergeScenario.js.map +1 -1
- package/lib/utils/mergeUtils.d.ts +0 -5
- package/lib/utils/mergeUtils.js +0 -14
- package/lib/utils/mergeUtils.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +4 -4
- package/package.json +2 -2
- package/lib/merger/conflictMarker.d.ts +0 -12
- package/lib/merger/conflictMarker.js +0 -48
- package/lib/merger/conflictMarker.js.map +0 -1
- package/lib/merger/textAttribute.d.ts +0 -3
- package/lib/merger/textAttribute.js +0 -56
- package/lib/merger/textAttribute.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isEmpty } from 'lodash-es';
|
|
2
1
|
/**
|
|
3
2
|
* Enum representing different merge scenarios based on content presence:
|
|
4
3
|
* - First position: Ancestor content present (1) or absent (0)
|
|
@@ -16,23 +15,4 @@ export var MergeScenario;
|
|
|
16
15
|
MergeScenario[MergeScenario["ANCESTOR_AND_LOCAL"] = 110] = "ANCESTOR_AND_LOCAL";
|
|
17
16
|
MergeScenario[MergeScenario["ALL"] = 111] = "ALL";
|
|
18
17
|
})(MergeScenario || (MergeScenario = {}));
|
|
19
|
-
export const getScenario = (
|
|
20
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
21
|
-
ancestor,
|
|
22
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
23
|
-
local,
|
|
24
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
25
|
-
other) => {
|
|
26
|
-
let scenario = MergeScenario.NONE;
|
|
27
|
-
if (!isEmpty(ancestor)) {
|
|
28
|
-
scenario += 100;
|
|
29
|
-
}
|
|
30
|
-
if (!isEmpty(local)) {
|
|
31
|
-
scenario += 10;
|
|
32
|
-
}
|
|
33
|
-
if (!isEmpty(other)) {
|
|
34
|
-
scenario += 1;
|
|
35
|
-
}
|
|
36
|
-
return scenario;
|
|
37
|
-
};
|
|
38
18
|
//# sourceMappingURL=mergeScenario.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeScenario.js","sourceRoot":"","sources":["../../src/types/mergeScenario.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mergeScenario.js","sourceRoot":"","sources":["../../src/types/mergeScenario.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,6DAAc,CAAA;IACd,8DAAe,CAAA;IACf,wEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+EAAwB,CAAA;IACxB,+EAAwB,CAAA;IACxB,iDAAS,CAAA;AACX,CAAC,EATW,aAAa,KAAb,aAAa,QASxB"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import type { JsonArray, JsonObject, JsonValue } from '../types/jsonTypes.js';
|
|
2
|
-
export declare const isObject: (ancestor: JsonValue | undefined | null, local: JsonValue | undefined | null, other: JsonValue | undefined | null) => boolean;
|
|
3
|
-
export declare const isStringArray: (ancestor: JsonValue | undefined | null, local: JsonValue | undefined | null, other: JsonValue | undefined | null) => boolean;
|
|
4
|
-
export declare const ensureArray: (value: JsonValue) => JsonArray;
|
|
5
|
-
export declare const getUniqueSortedProps: (...objects: (JsonObject | JsonArray)[]) => string[];
|
|
6
1
|
export declare const detectEol: (text: string) => string;
|
|
7
2
|
export declare const normalizeEol: (text: string, eol?: string) => string;
|
package/lib/utils/mergeUtils.js
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
import { castArray, isNil } from 'lodash-es';
|
|
2
1
|
import { EOL } from 'os';
|
|
3
2
|
const CR = '\r';
|
|
4
3
|
const LF = '\n';
|
|
5
4
|
const CRLF = `${CR}${LF}`;
|
|
6
5
|
const RE_CRLF = /\r\n/g;
|
|
7
6
|
const RE_LF_OR_CRLF = /\r\n|\n/g;
|
|
8
|
-
export const isObject = (ancestor, local, other) =>
|
|
9
|
-
// typeof [ancestor, other, local].find(ele => !isNil(ele)) === 'object'
|
|
10
|
-
[ancestor, local, other].some(ele => !isNil(ele) && typeof ele === 'object');
|
|
11
|
-
export const isStringArray = (ancestor, local, other) =>
|
|
12
|
-
// typeof [ancestor, other, local].find(ele => !isNil(ele)) === 'object'
|
|
13
|
-
[ancestor, local, other].some(ele => !isNil(ele) &&
|
|
14
|
-
Array.isArray(ele) &&
|
|
15
|
-
ele.every(item => typeof item === 'string' || item instanceof String));
|
|
16
|
-
export const ensureArray = (value) => isNil(value) ? [] : castArray(value);
|
|
17
|
-
export const getUniqueSortedProps = (...objects) => Array.from(new Set([...objects]
|
|
18
|
-
.filter(jsonElement => ![undefined, null].includes(jsonElement))
|
|
19
|
-
.map(Object.keys)
|
|
20
|
-
.flat())).sort();
|
|
21
7
|
export const detectEol = (text) => {
|
|
22
8
|
if (!text) {
|
|
23
9
|
return EOL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAExB,MAAM,EAAE,GAAG,IAAI,CAAA;AACf,MAAM,EAAE,GAAG,IAAI,CAAA;AACf,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAA;AACzB,MAAM,OAAO,GAAG,OAAO,CAAA;AACvB,MAAM,aAAa,GAAG,UAAU,CAAA;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,KAAK,GAAG,KAAK,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAc,GAAG,EAAU,EAAE;IACtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAA;IACnB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,KAAK,GAAG,aAAa,CAAA;IACvB,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC,CAAA"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-merge-driver",
|
|
3
|
-
"version": "1.4.0-dev-
|
|
3
|
+
"version": "1.4.0-dev-159.21317248282-1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "sf-git-merge-driver",
|
|
9
|
-
"version": "1.4.0-dev-
|
|
9
|
+
"version": "1.4.0-dev-159.21317248282-1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@oclif/core": "^4.8.0",
|
package/oclif.manifest.json
CHANGED
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"char": "S",
|
|
171
171
|
"name": "ancestor-conflict-tag",
|
|
172
172
|
"summary": "string used to tag ancestor version in conflicts",
|
|
173
|
-
"default": "
|
|
173
|
+
"default": "base",
|
|
174
174
|
"hasDynamicHelp": false,
|
|
175
175
|
"multiple": false,
|
|
176
176
|
"type": "option"
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
"char": "X",
|
|
180
180
|
"name": "local-conflict-tag",
|
|
181
181
|
"summary": "string used to tag local version in conflicts",
|
|
182
|
-
"default": "
|
|
182
|
+
"default": "ours",
|
|
183
183
|
"hasDynamicHelp": false,
|
|
184
184
|
"multiple": false,
|
|
185
185
|
"type": "option"
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
"char": "Y",
|
|
189
189
|
"name": "other-conflict-tag",
|
|
190
190
|
"summary": "string used to tag other version in conflicts",
|
|
191
|
-
"default": "
|
|
191
|
+
"default": "theirs",
|
|
192
192
|
"hasDynamicHelp": false,
|
|
193
193
|
"multiple": false,
|
|
194
194
|
"type": "option"
|
|
@@ -338,5 +338,5 @@
|
|
|
338
338
|
]
|
|
339
339
|
}
|
|
340
340
|
},
|
|
341
|
-
"version": "1.4.0-dev-
|
|
341
|
+
"version": "1.4.0-dev-159.21317248282-1"
|
|
342
342
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-merge-driver",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "1.4.0-dev-
|
|
3
|
+
"description": "Git merge driver for Salesforce metadata XML files - automatically resolves merge conflicts in profiles, permission sets, and 50+ metadata types",
|
|
4
|
+
"version": "1.4.0-dev-159.21317248282-1",
|
|
5
5
|
"exports": "./lib/driver/MergeDriver.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Sébastien Colladon (colladonsebastien@gmail.com)",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { conflicConfig } from '../types/conflictTypes.js';
|
|
2
|
-
import type { JsonArray, JsonObject } from '../types/jsonTypes.js';
|
|
3
|
-
export declare class ConflictMarker {
|
|
4
|
-
private static hasConflict;
|
|
5
|
-
private static baseMarker;
|
|
6
|
-
private static localMarker;
|
|
7
|
-
private static otherMarker;
|
|
8
|
-
private static separatorMarker;
|
|
9
|
-
static hasConflictMarker(): boolean;
|
|
10
|
-
static addConflictMarkers(acc: JsonArray, local: JsonObject | JsonArray, ancestor: JsonObject | JsonArray, other: JsonObject | JsonArray): void;
|
|
11
|
-
static setConflictConfig(conflictConfig: conflicConfig): void;
|
|
12
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { isEmpty } from 'lodash-es';
|
|
2
|
-
import { ANCESTOR_CONFLICT_MARKER, LOCAL_CONFLICT_MARKER, OTHER_CONFLICT_MARKER, SEPARATOR, } from '../constant/conflictConstant.js';
|
|
3
|
-
import { SALESFORCE_EOL } from '../constant/metadataConstant.js';
|
|
4
|
-
import { TEXT_TAG } from '../constant/parserConstant.js';
|
|
5
|
-
const buildMarker = (marker, size, tag) => {
|
|
6
|
-
return `${marker.repeat(size)} ${tag}`;
|
|
7
|
-
};
|
|
8
|
-
const buildSeparator = (size) => {
|
|
9
|
-
return `${SEPARATOR.repeat(size)}`;
|
|
10
|
-
};
|
|
11
|
-
const getEmptyValue = () => {
|
|
12
|
-
return { [TEXT_TAG]: SALESFORCE_EOL };
|
|
13
|
-
};
|
|
14
|
-
const getMarkerValue = (marker, withEol = false) => {
|
|
15
|
-
return { [TEXT_TAG]: `${withEol ? SALESFORCE_EOL : ''}${marker}` };
|
|
16
|
-
};
|
|
17
|
-
export class ConflictMarker {
|
|
18
|
-
static hasConflict = false;
|
|
19
|
-
static baseMarker;
|
|
20
|
-
static localMarker;
|
|
21
|
-
static otherMarker;
|
|
22
|
-
static separatorMarker;
|
|
23
|
-
static hasConflictMarker() {
|
|
24
|
-
return ConflictMarker.hasConflict;
|
|
25
|
-
}
|
|
26
|
-
static addConflictMarkers(acc, local, ancestor, other) {
|
|
27
|
-
ConflictMarker.hasConflict = true;
|
|
28
|
-
const [localValue, ancestorValue, otherValue] = [
|
|
29
|
-
local,
|
|
30
|
-
ancestor,
|
|
31
|
-
other,
|
|
32
|
-
].map(value => (isEmpty(value) ? getEmptyValue() : value));
|
|
33
|
-
acc.push(getMarkerValue(ConflictMarker.localMarker, true));
|
|
34
|
-
acc.push(localValue);
|
|
35
|
-
acc.push(getMarkerValue(ConflictMarker.baseMarker));
|
|
36
|
-
acc.push(ancestorValue);
|
|
37
|
-
acc.push(getMarkerValue(ConflictMarker.separatorMarker));
|
|
38
|
-
acc.push(otherValue);
|
|
39
|
-
acc.push(getMarkerValue(ConflictMarker.otherMarker));
|
|
40
|
-
}
|
|
41
|
-
static setConflictConfig(conflictConfig) {
|
|
42
|
-
ConflictMarker.baseMarker = buildMarker(ANCESTOR_CONFLICT_MARKER, conflictConfig.conflictMarkerSize, conflictConfig.ancestorConflictTag);
|
|
43
|
-
ConflictMarker.localMarker = buildMarker(LOCAL_CONFLICT_MARKER, conflictConfig.conflictMarkerSize, conflictConfig.localConflictTag);
|
|
44
|
-
ConflictMarker.otherMarker = buildMarker(OTHER_CONFLICT_MARKER, conflictConfig.conflictMarkerSize, conflictConfig.otherConflictTag);
|
|
45
|
-
ConflictMarker.separatorMarker = buildSeparator(conflictConfig.conflictMarkerSize);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=conflictMarker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conflictMarker.js","sourceRoot":"","sources":["../../src/merger/conflictMarker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { JsonArray, JsonObject, JsonValue } from '../types/jsonTypes.js';
|
|
2
|
-
export declare const generateObj: (value: JsonValue | null, attrib: string) => JsonObject;
|
|
3
|
-
export declare const mergeTextAttribute: (ancestor: JsonValue | null, local: JsonValue | null, other: JsonValue | null, attrib: string) => JsonArray;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { deepEqual } from 'fast-equals';
|
|
2
|
-
import { isNil } from 'lodash-es';
|
|
3
|
-
import { TEXT_TAG } from '../constant/parserConstant.js';
|
|
4
|
-
import { getScenario, MergeScenario } from '../types/mergeScenario.js';
|
|
5
|
-
import { ConflictMarker } from './conflictMarker.js';
|
|
6
|
-
export const generateObj = (value, attrib) => {
|
|
7
|
-
return isNil(value) ? {} : { [attrib]: [{ [TEXT_TAG]: value }] };
|
|
8
|
-
};
|
|
9
|
-
export const mergeTextAttribute = (ancestor, local, other, attrib) => {
|
|
10
|
-
const objAnc = generateObj(ancestor, attrib);
|
|
11
|
-
const objlocal = generateObj(local, attrib);
|
|
12
|
-
const objother = generateObj(other, attrib);
|
|
13
|
-
const scenario = getScenario(objAnc, objlocal, objother);
|
|
14
|
-
const acc = [];
|
|
15
|
-
// Early return for identical values
|
|
16
|
-
if (deepEqual(local, other) &&
|
|
17
|
-
(scenario === MergeScenario.LOCAL_AND_OTHER ||
|
|
18
|
-
scenario === MergeScenario.ALL)) {
|
|
19
|
-
return [objlocal];
|
|
20
|
-
}
|
|
21
|
-
// Handle specific merge scenarios
|
|
22
|
-
switch (scenario) {
|
|
23
|
-
case MergeScenario.OTHER_ONLY:
|
|
24
|
-
acc.push(objother);
|
|
25
|
-
break;
|
|
26
|
-
case MergeScenario.LOCAL_ONLY:
|
|
27
|
-
acc.push(objlocal);
|
|
28
|
-
break;
|
|
29
|
-
case MergeScenario.LOCAL_AND_OTHER:
|
|
30
|
-
ConflictMarker.addConflictMarkers(acc, objlocal, {}, objother);
|
|
31
|
-
break;
|
|
32
|
-
case MergeScenario.ANCESTOR_AND_OTHER:
|
|
33
|
-
if (ancestor !== other) {
|
|
34
|
-
ConflictMarker.addConflictMarkers(acc, {}, objAnc, objother);
|
|
35
|
-
}
|
|
36
|
-
break;
|
|
37
|
-
case MergeScenario.ANCESTOR_AND_LOCAL:
|
|
38
|
-
if (ancestor !== local) {
|
|
39
|
-
ConflictMarker.addConflictMarkers(acc, objlocal, objAnc, {});
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
case MergeScenario.ALL:
|
|
43
|
-
if (ancestor === local) {
|
|
44
|
-
acc.push(objother);
|
|
45
|
-
}
|
|
46
|
-
else if (ancestor === other) {
|
|
47
|
-
acc.push(objlocal);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
ConflictMarker.addConflictMarkers(acc, objlocal, objAnc, objother);
|
|
51
|
-
}
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
return acc;
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=textAttribute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textAttribute.js","sourceRoot":"","sources":["../../src/merger/textAttribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAuB,EACvB,MAAc,EACF,EAAE;IACd,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAA0B,EAC1B,KAAuB,EACvB,KAAuB,EACvB,MAAc,EACH,EAAE;IACb,MAAM,MAAM,GAAe,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAe,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAe,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAkB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACvE,MAAM,GAAG,GAAc,EAAE,CAAA;IAEzB,oCAAoC;IACpC,IACE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;QACvB,CAAC,QAAQ,KAAK,aAAa,CAAC,eAAe;YACzC,QAAQ,KAAK,aAAa,CAAC,GAAG,CAAC,EACjC,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED,kCAAkC;IAClC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAClB,MAAK;QAEP,KAAK,aAAa,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAClB,MAAK;QAEP,KAAK,aAAa,CAAC,eAAe;YAChC,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC9D,MAAK;QAEP,KAAK,aAAa,CAAC,kBAAkB;YACnC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC9D,CAAC;YACD,MAAK;QAEP,KAAK,aAAa,CAAC,kBAAkB;YACnC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,MAAK;QAEP,KAAK,aAAa,CAAC,GAAG;YACpB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpB,CAAC;iBAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YACpE,CAAC;YACD,MAAK;IACT,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|