sf-git-merge-driver 1.0.0-dev-3.13905678209-1 → 1.0.0-dev-3.13990488196-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 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.13905678209-1/src/commands/git/merge/driver/install.ts)_
50
+ _See code: [src/commands/git/merge/driver/install.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13990488196-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.13905678209-1/src/commands/git/merge/driver/run.ts)_
88
+ _See code: [src/commands/git/merge/driver/run.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13990488196-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.13905678209-1/src/commands/git/merge/driver/uninstall.ts)_
115
+ _See code: [src/commands/git/merge/driver/uninstall.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.0-dev-3.13990488196-1/src/commands/git/merge/driver/uninstall.ts)_
116
116
  <!-- commandsstop -->
117
117
 
118
118
 
@@ -8,7 +8,12 @@ export declare class JsonMerger {
8
8
  /**
9
9
  * Main entry point for merging JSON values
10
10
  */
11
- mergeObjects(ancestor: JsonValue | undefined, ours: JsonValue, theirs: JsonValue): JsonValue;
11
+ mergeObjects(ancestor: JsonObject | JsonArray, ours: JsonObject | JsonArray, theirs: JsonObject | JsonArray, parent?: JsonObject | JsonArray): JsonArray;
12
+ private mergeTextAttribute;
13
+ /**
14
+ * Gets the typeof of the attribute
15
+ */
16
+ private getAttributePrimarytype;
12
17
  /**
13
18
  * Ensures a value is an array
14
19
  */
@@ -29,9 +34,5 @@ export declare class JsonMerger {
29
34
  * Merges arrays using a key field
30
35
  */
31
36
  private mergeByKeyField;
32
- /**
33
- * Gets the key value for an item using the specified key field
34
- */
35
- private getItemKey;
36
37
  }
37
38
  export {};
@@ -1,67 +1,293 @@
1
- import { castArray, differenceWith, isEqual, isNil, unionWith } from 'lodash-es';
1
+ import { castArray, isEqual, isNil, keyBy, unionWith } from 'lodash-es'; // , differenceWith
2
2
  import { KEY_FIELD_METADATA } from '../constant/metadataConstant.js';
3
- const XML_HEADER_ATTRIBUTE_KEY = '?xml';
4
- const ATTRIBUTE_PREFIX = '@_';
5
3
  export class JsonMerger {
6
4
  /**
7
5
  * Main entry point for merging JSON values
8
6
  */
9
- mergeObjects(ancestor, ours, theirs) {
10
- // Handle root object (e.g., Profile)
11
- if (!isNil(ours) &&
12
- !isNil(theirs) &&
13
- typeof ours === 'object' &&
14
- typeof theirs === 'object' &&
15
- !Array.isArray(ours) &&
16
- !Array.isArray(theirs)) {
17
- // Get the base attribute (e.g., Profile)
18
- // At this point, ours and theirs are guaranteed to be non-null objects
19
- const oursObj = ours;
20
- const theirsObj = theirs;
21
- const baseKey = Object.keys(oursObj).find(key => key !== XML_HEADER_ATTRIBUTE_KEY);
22
- if (baseKey &&
23
- Object.keys(theirsObj).find(key => key !== XML_HEADER_ATTRIBUTE_KEY) ===
24
- baseKey) {
25
- const result = { ...oursObj };
26
- // Get the content of the base attribute
27
- const ourContent = oursObj[baseKey];
28
- const theirContent = theirsObj[baseKey];
29
- const ancestorContent = ancestor &&
30
- typeof ancestor === 'object' &&
31
- !Array.isArray(ancestor) &&
32
- baseKey in ancestor
33
- ? ancestor[baseKey]
34
- : {};
35
- // Get all properties from both contents
36
- const allProperties = new Set([...Object.keys(ourContent), ...Object.keys(theirContent)].filter(key => !key.startsWith(ATTRIBUTE_PREFIX)));
37
- // Process each property
38
- const mergedContent = { ...ourContent };
39
- for (const property of allProperties) {
40
- // Skip if property doesn't exist in their content
41
- if (!(property in theirContent))
42
- continue;
43
- // Use their version if property doesn't exist in our content
44
- if (!(property in mergedContent)) {
45
- mergedContent[property] = this.ensureArray(theirContent[property]);
46
- continue;
7
+ mergeObjects(ancestor, ours, theirs, parent //,
8
+ // attrib?: string
9
+ ) {
10
+ // Get all properties from three ways
11
+ const arrProperties = [];
12
+ let caseCode = 0;
13
+ if (ancestor && !isEqual(ancestor, {})) {
14
+ caseCode += 100;
15
+ arrProperties.push(...Object.keys(ancestor));
16
+ }
17
+ else {
18
+ ancestor = {};
19
+ }
20
+ if (ours && !isEqual(ours, {})) {
21
+ caseCode += 10;
22
+ arrProperties.push(...Object.keys(ours));
23
+ }
24
+ else {
25
+ ours = {};
26
+ }
27
+ if (theirs && !isEqual(theirs, {})) {
28
+ caseCode += 1;
29
+ arrProperties.push(...Object.keys(theirs));
30
+ }
31
+ else {
32
+ theirs = {};
33
+ }
34
+ const allProperties = new Set(arrProperties.sort());
35
+ // TODO filter the namespace here and reapply it in the end of the loop if necessary
36
+ // Process each property
37
+ const mergedContent = [];
38
+ for (const property of allProperties) {
39
+ // console.info('property: '+property+'\ntypeof: '+this.getAttributePrimarytype(
40
+ // ancestor[property],
41
+ // ours[property],
42
+ // theirs[property]
43
+ // ))
44
+ switch (this.getAttributePrimarytype(ancestor[property], ours[property], theirs[property])) {
45
+ case 'object': {
46
+ if (parent) {
47
+ mergedContent.push(...this.mergeArrays(this.ensureArray(ancestor[property]), this.ensureArray(ours[property]), this.ensureArray(theirs[property]), this.ensureArray(parent), property, this.getKeyField(property)));
48
+ }
49
+ else {
50
+ let propObject = {};
51
+ switch (caseCode) {
52
+ case 100:
53
+ return [];
54
+ case 11:
55
+ if (isEqual(ours, theirs)) {
56
+ propObject[property] = [];
57
+ propObject[property].push(...this.mergeObjects({}, ours[property], {}, propObject));
58
+ mergedContent.push(propObject);
59
+ }
60
+ else {
61
+ mergedContent.push({ '#text': '\n<<<<<<< LOCAL' });
62
+ propObject[property] = [];
63
+ propObject[property].push(...this.mergeObjects({}, ours[property], {}, propObject));
64
+ mergedContent.push(propObject);
65
+ mergedContent.push({ '#text': '||||||| BASE' });
66
+ mergedContent.push({ '#text': '\n' });
67
+ mergedContent.push({ '#text': '=======' });
68
+ propObject = {};
69
+ propObject[property] = [];
70
+ propObject[property].push(...this.mergeObjects({}, {}, theirs[property], propObject));
71
+ mergedContent.push(propObject);
72
+ mergedContent.push({ '#text': '>>>>>>> REMOTE' });
73
+ }
74
+ break;
75
+ case 101:
76
+ if (isEqual(ancestor, theirs)) {
77
+ return [];
78
+ }
79
+ else {
80
+ mergedContent.push({ '#text': '\n<<<<<<< LOCAL' });
81
+ mergedContent.push({ '#text': '\n' });
82
+ mergedContent.push({ '#text': '||||||| BASE' });
83
+ propObject[property] = [];
84
+ propObject[property].push(...this.mergeObjects({}, ancestor[property], {}, propObject));
85
+ mergedContent.push(propObject);
86
+ mergedContent.push({ '#text': '=======' });
87
+ propObject = {};
88
+ propObject[property] = [];
89
+ propObject[property].push(...this.mergeObjects({}, {}, theirs[property], propObject));
90
+ mergedContent.push(propObject);
91
+ mergedContent.push({ '#text': '>>>>>>> REMOTE' });
92
+ }
93
+ break;
94
+ case 110:
95
+ if (isEqual(ancestor, ours)) {
96
+ return [];
97
+ }
98
+ else {
99
+ mergedContent.push({ '#text': '\n<<<<<<< LOCAL' });
100
+ propObject[property] = [];
101
+ propObject[property].push(...this.mergeObjects({}, ours[property], {}, propObject));
102
+ mergedContent.push(propObject);
103
+ mergedContent.push({ '#text': '||||||| BASE' });
104
+ propObject = {};
105
+ propObject[property] = [];
106
+ propObject[property].push(...this.mergeObjects({}, {}, ancestor[property], propObject));
107
+ mergedContent.push(propObject);
108
+ mergedContent.push({ '#text': '=======' });
109
+ mergedContent.push({ '#text': '\n' });
110
+ mergedContent.push({ '#text': '>>>>>>> REMOTE' });
111
+ }
112
+ break;
113
+ default:
114
+ propObject[property] = [];
115
+ propObject[property].push(...this.mergeObjects(ancestor[property], ours[property], theirs[property], propObject));
116
+ mergedContent.push(propObject);
117
+ break;
118
+ }
47
119
  }
48
- // Ensure both values are arrays
49
- const ourArray = this.ensureArray(mergedContent[property]);
50
- const theirArray = this.ensureArray(theirContent[property]);
51
- const ancestorArray = property in ancestorContent
52
- ? this.ensureArray(ancestorContent[property])
53
- : [];
54
- // Get the key field for this property if available
55
- const keyField = this.getKeyField(property);
56
- // Merge the arrays
57
- mergedContent[property] = this.mergeArrays(ancestorArray, ourArray, theirArray, keyField);
120
+ break;
58
121
  }
59
- result[baseKey] = mergedContent;
60
- return result;
122
+ default:
123
+ if (property.startsWith('@_') && parent) {
124
+ if (parent[':@']) {
125
+ parent[':@'][property] = ancestor[property];
126
+ }
127
+ else {
128
+ parent[':@'] = {};
129
+ parent[':@'][property] = ancestor[property];
130
+ }
131
+ }
132
+ else {
133
+ mergedContent.push(...this.mergeTextAttribute(property, ancestor[property], ours[property], theirs[property]));
134
+ }
135
+ break;
61
136
  }
62
137
  }
63
- // Default to our version for other cases
64
- return ours;
138
+ return mergedContent;
139
+ // Handle root object (e.g., Profile)
140
+ // if (
141
+ // typeof ours === 'object' &&
142
+ // ours !== null &&
143
+ // !Array.isArray(ours) &&
144
+ // typeof theirs === 'object' &&
145
+ // theirs !== null &&
146
+ // !Array.isArray(theirs)
147
+ // ) {
148
+ // // Get the base attribute (e.g., Profile)
149
+ // const baseKey = Object.keys(ours)[0]
150
+ // if (baseKey && Object.keys(theirs)[0] === baseKey) {
151
+ // const result = { ...ours } as JsonObject
152
+ // // Get the content of the base attribute
153
+ // const ourContent = ours[baseKey] as JsonObject
154
+ // const theirContent = theirs[baseKey] as JsonObject
155
+ // const ancestorContent =
156
+ // ancestor &&
157
+ // typeof ancestor === 'object' &&
158
+ // !Array.isArray(ancestor) &&
159
+ // baseKey in ancestor
160
+ // ? ((ancestor as JsonObject)[baseKey] as JsonObject)
161
+ // : {}
162
+ // // Get all properties from both contents
163
+ // const allProperties = new Set([
164
+ // ...Object.keys(ourContent),
165
+ // ...Object.keys(theirContent),
166
+ // ])
167
+ // // Process each property
168
+ // const mergedContent = { ...ourContent } as JsonObject
169
+ // for (const property of allProperties) {
170
+ // // Skip if property doesn't exist in their content
171
+ // if (!(property in theirContent)) continue
172
+ // // Use their version if property doesn't exist in our content
173
+ // if (!(property in mergedContent)) {
174
+ // mergedContent[property] = this.ensureArray(theirContent[property])
175
+ // continue
176
+ // }
177
+ // // Ensure both values are arrays
178
+ // const ourArray = this.ensureArray(mergedContent[property])
179
+ // const theirArray = this.ensureArray(theirContent[property])
180
+ // const ancestorArray =
181
+ // property in ancestorContent
182
+ // ? this.ensureArray(ancestorContent[property])
183
+ // : []
184
+ // // Get the key field for this property if available
185
+ // const keyField = this.getKeyField(property)
186
+ // // Merge the arrays
187
+ // mergedContent[property] = this.mergeArrays(
188
+ // ancestorArray,
189
+ // ourArray,
190
+ // theirArray,
191
+ // keyField
192
+ // )
193
+ // }
194
+ // result[baseKey] = mergedContent
195
+ // return result
196
+ // }
197
+ // }
198
+ // // Default to our version for other cases
199
+ // return ours
200
+ }
201
+ mergeTextAttribute(attrib, ancestor, ours, theirs) {
202
+ const objAnc = {};
203
+ const objOurs = {};
204
+ const objTheirs = {};
205
+ let caseCode = 0;
206
+ if (!isNil(ancestor)) {
207
+ objAnc[attrib] = [{ '#text': ancestor }];
208
+ caseCode += 100;
209
+ }
210
+ if (!isNil(ours)) {
211
+ objOurs[attrib] = [{ '#text': ours }];
212
+ caseCode += 10;
213
+ }
214
+ if (!isNil(theirs)) {
215
+ objTheirs[attrib] = [{ '#text': theirs }];
216
+ caseCode += 1;
217
+ }
218
+ const finalArray = [];
219
+ switch (caseCode) {
220
+ case 1:
221
+ finalArray.push(objTheirs);
222
+ break;
223
+ case 10:
224
+ finalArray.push(objOurs);
225
+ break;
226
+ case 11:
227
+ if (ours === theirs) {
228
+ finalArray.push(objOurs);
229
+ }
230
+ else {
231
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
232
+ finalArray.push(objOurs);
233
+ finalArray.push({ '#text': '||||||| BASE' });
234
+ finalArray.push({ '#text': '\n' });
235
+ finalArray.push({ '#text': '=======' });
236
+ finalArray.push(objTheirs);
237
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
238
+ }
239
+ break;
240
+ case 101:
241
+ if (ancestor !== theirs) {
242
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
243
+ finalArray.push({ '#text': '\n' });
244
+ finalArray.push({ '#text': '||||||| BASE' });
245
+ finalArray.push(objAnc);
246
+ finalArray.push({ '#text': '=======' });
247
+ finalArray.push(objTheirs);
248
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
249
+ }
250
+ break;
251
+ case 110:
252
+ if (ancestor !== ours) {
253
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
254
+ finalArray.push(objOurs);
255
+ finalArray.push({ '#text': '||||||| BASE' });
256
+ finalArray.push(objAnc);
257
+ finalArray.push({ '#text': '=======' });
258
+ finalArray.push({ '#text': '\n' });
259
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
260
+ }
261
+ break;
262
+ case 111:
263
+ if (ours === theirs) {
264
+ finalArray.push(objOurs);
265
+ }
266
+ else if (ancestor === ours) {
267
+ finalArray.push(objTheirs);
268
+ }
269
+ else if (ancestor === theirs) {
270
+ finalArray.push(objOurs);
271
+ }
272
+ else {
273
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
274
+ finalArray.push(objOurs);
275
+ finalArray.push({ '#text': '||||||| BASE' });
276
+ finalArray.push(objAnc);
277
+ finalArray.push({ '#text': '=======' });
278
+ finalArray.push(objTheirs);
279
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
280
+ }
281
+ break;
282
+ default:
283
+ }
284
+ return finalArray;
285
+ }
286
+ /**
287
+ * Gets the typeof of the attribute
288
+ */
289
+ getAttributePrimarytype(ancestor, ours, theirs) {
290
+ return typeof [ancestor, theirs, ours].find(ele => !isNil(ele));
65
291
  }
66
292
  /**
67
293
  * Ensures a value is an array
@@ -80,17 +306,20 @@ export class JsonMerger {
80
306
  /**
81
307
  * Merges arrays using the specified key field if available
82
308
  */
83
- mergeArrays(ancestor, ours, theirs, keyField) {
309
+ mergeArrays(ancestor, ours, theirs, parent, attribute, keyField) {
310
+ const propObject = {};
84
311
  // If no key field, use unionWith to merge arrays without duplicates
85
312
  if (!keyField) {
86
- return unionWith([...ours], theirs, isEqual);
313
+ propObject[attribute] = unionWith([...ours], theirs, isEqual);
314
+ return [propObject];
87
315
  }
88
316
  // Special case for array position
89
317
  if (keyField === '<array>') {
90
- return this.mergeByPosition(ancestor, ours, theirs);
318
+ propObject[attribute] = this.mergeByPosition(ancestor, ours, theirs);
319
+ return [propObject];
91
320
  }
92
321
  // Merge using key field
93
- return this.mergeByKeyField(ancestor, ours, theirs, keyField);
322
+ return this.mergeByKeyField(ancestor, ours, theirs, keyField, attribute, parent);
94
323
  }
95
324
  /**
96
325
  * Merges arrays by position
@@ -116,62 +345,216 @@ export class JsonMerger {
116
345
  /**
117
346
  * Merges arrays using a key field
118
347
  */
119
- mergeByKeyField(ancestor, ours, theirs, keyField) {
120
- const result = [...ours];
121
- const processed = new Set();
122
- // Create maps for efficient lookups
123
- const ourMap = new Map();
124
- const theirMap = new Map();
125
- const ancestorMap = new Map();
126
- // Populate maps
127
- for (const item of ours) {
128
- const key = this.getItemKey(item, keyField);
129
- if (key)
130
- ourMap.set(key, item);
131
- }
132
- for (const item of theirs) {
133
- const key = this.getItemKey(item, keyField);
134
- if (key)
135
- theirMap.set(key, item);
136
- }
137
- for (const item of ancestor) {
138
- const key = this.getItemKey(item, keyField);
139
- if (key)
140
- ancestorMap.set(key, item);
141
- }
142
- // Process items in our version
143
- for (let i = 0; i < result.length; i++) {
144
- const key = this.getItemKey(result[i], keyField);
145
- if (!key)
146
- continue;
147
- processed.add(key);
148
- // If item exists in both versions
149
- if (theirMap.has(key)) {
150
- const theirItem = theirMap.get(key);
151
- const ancestorItem = ancestorMap.get(key);
152
- // If they changed it from ancestor but we didn't, use their version
153
- if (!isEqual(theirItem, ancestorItem) &&
154
- isEqual(result[i], ancestorItem)) {
155
- result[i] = theirItem;
156
- }
348
+ mergeByKeyField(ancestor, ours, theirs, keyField, attribute, parent) {
349
+ const finalArray = [];
350
+ let caseCode = 0;
351
+ if (ancestor.length !== 0) {
352
+ caseCode += 100;
353
+ }
354
+ if (ours.length !== 0) {
355
+ caseCode += 10;
356
+ }
357
+ if (theirs.length !== 0) {
358
+ caseCode += 1;
359
+ }
360
+ // console.info(
361
+ // 'attribute: ' +
362
+ // attribute +
363
+ // '\nkeyField: ' +
364
+ // keyField +
365
+ // '\ncaseCode: ' +
366
+ // caseCode
367
+ // )
368
+ // console.dir(ours, {depth: null})
369
+ const keyedAnc = keyBy(ancestor, keyField);
370
+ const keyedOurs = keyBy(ours, keyField);
371
+ const keyedTheirs = keyBy(theirs, keyField);
372
+ const allKeys = new Set([
373
+ ...Object.keys(keyedAnc),
374
+ ...Object.keys(keyedOurs),
375
+ ...Object.keys(keyedTheirs),
376
+ ].sort());
377
+ for (const key of allKeys) {
378
+ caseCode = 0;
379
+ if (keyedAnc[key]) {
380
+ caseCode += 100;
381
+ }
382
+ if (keyedOurs[key]) {
383
+ caseCode += 10;
384
+ }
385
+ if (keyedTheirs[key]) {
386
+ caseCode += 1;
387
+ }
388
+ // console.log('caseCode: ' + caseCode);
389
+ let propObject = {};
390
+ switch (caseCode) {
391
+ case 1:
392
+ propObject[attribute] = [
393
+ ...this.mergeObjects({}, {}, keyedTheirs[key], parent),
394
+ ];
395
+ finalArray.push(propObject);
396
+ break;
397
+ case 10:
398
+ propObject[attribute] = [
399
+ ...this.mergeObjects({}, {}, keyedOurs[key], parent),
400
+ ];
401
+ finalArray.push(propObject);
402
+ break;
403
+ case 100:
404
+ break;
405
+ case 11:
406
+ if (isEqual(ours, theirs)) {
407
+ propObject[attribute] = [
408
+ ...this.mergeObjects({}, {}, keyedOurs[key], parent),
409
+ ];
410
+ finalArray.push(propObject);
411
+ }
412
+ else {
413
+ // finalArray.push({ '#text': '<<<<<<< LOCAL' })
414
+ // propObject[attribute] = [
415
+ // ...this.mergeObjects({}, {}, keyedOurs[key], parent),
416
+ // ]
417
+ // finalArray.push(propObject)
418
+ // finalArray.push({ '#text': '||||||| BASE' })
419
+ // finalArray.push({ '#text': '\n' })
420
+ // finalArray.push({ '#text': '=======' })
421
+ // propObject[attribute] = [
422
+ // ...this.mergeObjects({}, {}, keyedTheirs[key], parent),
423
+ // ]
424
+ // finalArray.push(propObject)
425
+ // finalArray.push({ '#text': '>>>>>>> REMOTE' })
426
+ propObject[attribute] = [
427
+ ...this.mergeObjects({}, keyedOurs[key], keyedTheirs[key], parent),
428
+ ];
429
+ finalArray.push(propObject);
430
+ }
431
+ break;
432
+ case 101:
433
+ if (!isEqual(ancestor, theirs)) {
434
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
435
+ finalArray.push({ '#text': '\n' });
436
+ finalArray.push({ '#text': '||||||| BASE' });
437
+ propObject = {};
438
+ propObject[attribute] = [
439
+ ...this.mergeObjects({}, {}, keyedAnc[key], parent),
440
+ ];
441
+ finalArray.push(propObject);
442
+ finalArray.push({ '#text': '=======' });
443
+ propObject = {};
444
+ propObject[attribute] = [
445
+ ...this.mergeObjects({}, {}, keyedTheirs[key], parent),
446
+ ];
447
+ finalArray.push(propObject);
448
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
449
+ // propObject[attribute] = [
450
+ // ...this.mergeObjects(keyedAnc[key], {}, keyedTheirs[key], parent),
451
+ // ]
452
+ // finalArray.push(propObject)
453
+ }
454
+ break;
455
+ case 110:
456
+ if (!isEqual(ancestor, ours)) {
457
+ finalArray.push({ '#text': '\n<<<<<<< LOCAL' });
458
+ propObject = {};
459
+ propObject[attribute] = [
460
+ ...this.mergeObjects({}, {}, keyedOurs[key], parent),
461
+ ];
462
+ finalArray.push(propObject);
463
+ finalArray.push({ '#text': '||||||| BASE' });
464
+ propObject = {};
465
+ propObject[attribute] = [
466
+ ...this.mergeObjects({}, {}, keyedAnc[key], parent),
467
+ ];
468
+ finalArray.push(propObject);
469
+ finalArray.push({ '#text': '=======' });
470
+ finalArray.push({ '#text': '\n' });
471
+ finalArray.push({ '#text': '>>>>>>> REMOTE' });
472
+ // propObject[attribute] = [
473
+ // ...this.mergeObjects(keyedAnc[key], keyedOurs[key], {}, parent),
474
+ // ]
475
+ // finalArray.push(propObject)
476
+ }
477
+ break;
478
+ case 111:
479
+ if (isEqual(ours, theirs)) {
480
+ propObject[attribute] = [
481
+ ...this.mergeObjects({}, {}, keyedOurs[key], parent),
482
+ ];
483
+ }
484
+ else if (isEqual(ancestor, ours)) {
485
+ propObject[attribute] = [
486
+ ...this.mergeObjects({}, {}, keyedTheirs[key], parent),
487
+ ];
488
+ }
489
+ else if (isEqual(ancestor, theirs)) {
490
+ propObject[attribute] = [
491
+ ...this.mergeObjects({}, {}, keyedOurs[key], parent),
492
+ ];
493
+ }
494
+ else {
495
+ // finalArray.push({ '#text': '<<<<<<< LOCAL' })
496
+ // finalArray.push(...this.mergeObjects({}, {}, keyedOurs[key], parent))
497
+ // finalArray.push({ '#text': '||||||| BASE' })
498
+ // finalArray.push(...this.mergeObjects({}, {}, keyedAnc[key], parent))
499
+ // finalArray.push({ '#text': '=======' })
500
+ // finalArray.push(...this.mergeObjects({}, {}, keyedTheirs[key], parent))
501
+ // finalArray.push({ '#text': '>>>>>>> REMOTE' })
502
+ propObject[attribute] = [
503
+ ...this.mergeObjects(keyedAnc[key], keyedOurs[key], keyedTheirs[key], parent),
504
+ ];
505
+ }
506
+ finalArray.push(propObject);
507
+ break;
508
+ default:
157
509
  }
158
510
  }
159
- // Add items that only exist in their version
160
- const uniqueTheirItems = differenceWith(Array.from(theirMap.values()), result, (a, b) => this.getItemKey(a, keyField) === this.getItemKey(b, keyField));
161
- result.push(...uniqueTheirItems);
162
- return result;
163
- }
164
- /**
165
- * Gets the key value for an item using the specified key field
166
- */
167
- getItemKey(item, keyField) {
168
- if (typeof item === 'object' &&
169
- item !== null &&
170
- !Array.isArray(item) &&
171
- keyField in item) {
172
- return String(item[keyField]);
173
- }
174
- return undefined;
511
+ return finalArray;
512
+ // original by scolladon
513
+ // const result = [...ours]
514
+ // const processed = new Set<string>()
515
+ // // Create maps for efficient lookups
516
+ // const ourMap = new Map<string, JsonValue>()
517
+ // const theirMap = new Map<string, JsonValue>()
518
+ // const ancestorMap = new Map<string, JsonValue>()
519
+ // // Populate maps
520
+ // for (const item of ours) {
521
+ // const key = this.getItemKey(item, keyField)
522
+ // if (key) ourMap.set(key, item)
523
+ // }
524
+ // for (const item of theirs) {
525
+ // const key = this.getItemKey(item, keyField)
526
+ // if (key) theirMap.set(key, item)
527
+ // }
528
+ // for (const item of ancestor) {
529
+ // const key = this.getItemKey(item, keyField)
530
+ // if (key) ancestorMap.set(key, item)
531
+ // }
532
+ // // Process items in our version
533
+ // for (let i = 0; i < result.length; i++) {
534
+ // const key = this.getItemKey(result[i], keyField)
535
+ // if (!key) continue
536
+ // processed.add(key)
537
+ // // If item exists in both versions
538
+ // if (theirMap.has(key)) {
539
+ // const theirItem = theirMap.get(key)!
540
+ // const ancestorItem = ancestorMap.get(key)
541
+ // // If they changed it from ancestor but we didn't, use their version
542
+ // if (
543
+ // !isEqual(theirItem, ancestorItem) &&
544
+ // isEqual(result[i], ancestorItem)
545
+ // ) {
546
+ // result[i] = theirItem
547
+ // }
548
+ // }
549
+ // }
550
+ // // Add items that only exist in their version
551
+ // const uniqueTheirItems = differenceWith(
552
+ // Array.from(theirMap.values()),
553
+ // result,
554
+ // (a, b) => this.getItemKey(a, keyField) === this.getItemKey(b, keyField)
555
+ // )
556
+ // result.push(...uniqueTheirItems)
557
+ // return result
175
558
  }
176
559
  }
177
560
  //# sourceMappingURL=JsonMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonMerger.js","sourceRoot":"","sources":["../../src/merger/JsonMerger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonMerger.js","sourceRoot":"","sources":["../../src/merger/JsonMerger.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,55 @@
1
1
  import { XMLBuilder, XMLParser } from 'fast-xml-parser';
2
2
  import { JsonMerger } from './JsonMerger.js';
3
+ const XML_DECL = '<?xml version="1.0" encoding="UTF-8"?>\n';
3
4
  const XML_COMMENT_PROP_NAME = '#xml__comment';
4
- const parserOptions = {
5
+ const baseOptions = {
6
+ cdataPropName: '__cdata',
5
7
  commentPropName: XML_COMMENT_PROP_NAME,
6
8
  ignoreAttributes: false,
7
- ignoreNameSpace: false,
9
+ };
10
+ const parserOptions = {
11
+ ...baseOptions,
12
+ ignoreDeclaration: true,
8
13
  numberParseOptions: { leadingZeros: false, hex: false },
9
14
  parseAttributeValue: false,
10
- parseNodeValue: false,
11
15
  parseTagValue: false,
12
- processEntities: false,
13
- trimValues: true,
16
+ // preserveOrder: true,
14
17
  };
15
18
  const builderOptions = {
16
- ...parserOptions,
19
+ ...baseOptions,
17
20
  format: true,
18
21
  indentBy: ' ',
19
- suppressBooleanAttributes: false,
20
- suppressEmptyNode: false,
22
+ preserveOrder: true,
21
23
  };
22
24
  const correctComments = (xml) => xml.includes('<!--') ? xml.replace(/\s+<!--(.*?)-->\s+/g, '<!--$1-->') : xml;
23
- const handleSpecialEntities = (xml) => xml.replaceAll('&amp;#160;', '&#160;');
25
+ const correctConflictIndent = (xml) => xml
26
+ .replace(/[ \t]+(<<<<<<<|\|\|\|\|\|\|\||=======|>>>>>>>)/g, '$1')
27
+ .replace(/^[ \t]*[\n\r]+/gm, '');
28
+ const handleSpecialEntities = (xml) => xml
29
+ .replaceAll('&amp;#160;', '&#160;')
30
+ .replaceAll('&lt;&lt;&lt;&lt;&lt;&lt;&lt;', '<<<<<<<')
31
+ .replaceAll('&gt;&gt;&gt;&gt;&gt;&gt;&gt;', '>>>>>>>');
24
32
  export class XmlMerger {
25
33
  tripartXmlMerge(ancestorContent, ourContent, theirContent) {
26
34
  const parser = new XMLParser(parserOptions);
27
35
  const ancestorObj = parser.parse(ancestorContent);
28
36
  const ourObj = parser.parse(ourContent);
29
37
  const theirObj = parser.parse(theirContent);
38
+ // console.log('ancestorObj ' + typeof ancestorObj)
39
+ // console.dir(ancestorObj, {depth:null})
30
40
  // Perform deep merge of XML objects
31
41
  const jsonMerger = new JsonMerger();
32
42
  const mergedObj = jsonMerger.mergeObjects(ancestorObj, ourObj, theirObj);
43
+ // console.log('mergedObj')
44
+ // console.dir(mergedObj, {depth:null})
33
45
  // Convert back to XML and format
34
46
  const builder = new XMLBuilder(builderOptions);
35
47
  const mergedXml = builder.build(mergedObj);
36
- return correctComments(handleSpecialEntities(mergedXml));
48
+ // console.log('mergedXml')
49
+ // console.dir(mergedXml, {depth:null})
50
+ return mergedXml.length
51
+ ? correctConflictIndent(correctComments(XML_DECL.concat(handleSpecialEntities(mergedXml))))
52
+ : '';
37
53
  }
38
54
  }
39
55
  //# 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,qBAAqB,GAAG,eAAe,CAAA;AAE7C,MAAM,aAAa,GAAG;IACpB,eAAe,EAAE,qBAAqB;IACtC,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IACvD,mBAAmB,EAAE,KAAK;IAC1B,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA;AAED,MAAM,cAAc,GAAG;IACrB,GAAG,aAAa;IAChB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,MAAM;IAChB,yBAAyB,EAAE,KAAK;IAChC,iBAAiB,EAAE,KAAK;CACzB,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,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC1D,CAAC;CACF"}
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,WAAW,GAAG;IAClB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,qBAAqB;IACtC,gBAAgB,EAAE,KAAK;CACxB,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,GAAG,WAAW;IACd,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IACvD,mBAAmB,EAAE,KAAK;IAC1B,aAAa,EAAE,KAAK;IACpB,uBAAuB;CACxB,CAAA;AAED,MAAM,cAAc,GAAG;IACrB,GAAG,WAAW;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,IAAI;CACpB,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;KACA,OAAO,CAAC,iDAAiD,EAAE,IAAI,CAAC;KAChE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;AAEpC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAU,EAAE,CACpD,GAAG;KACA,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC;KAClC,UAAU,CAAC,8BAA8B,EAAE,SAAS,CAAC;KACrD,UAAU,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAA;AAE1D,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;QAC3C,mDAAmD;QACnD,yCAAyC;QAEzC,oCAAoC;QAEpC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QACnC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxE,2BAA2B;QAC3B,uCAAuC;QAEvC,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAW,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAClD,2BAA2B;QAC3B,uCAAuC;QACvC,OAAO,SAAS,CAAC,MAAM;YACrB,CAAC,CAAC,qBAAqB,CACnB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CACnE;YACH,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;CACF"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "sf-git-merge-driver",
3
- "version": "1.0.0-dev-3.13905678209-1",
3
+ "version": "1.0.0-dev-3.13990488196-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.13905678209-1",
9
+ "version": "1.0.0-dev-3.13990488196-1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@oclif/core": "^4.2.10",
@@ -4027,9 +4027,9 @@
4027
4027
  }
4028
4028
  },
4029
4029
  "node_modules/@salesforce/core": {
4030
- "version": "8.8.5",
4031
- "resolved": "https://registry.npmjs.org/@salesforce/core/-/core-8.8.5.tgz",
4032
- "integrity": "sha512-eCiiO4NptvKkz04A4ivBVLzEBy/6IIFmaXoZ4tnF1FcD5MESvC+Xuc+0RFSRiYmPi5oloKNl6njrfVCKAho2zQ==",
4030
+ "version": "8.8.6",
4031
+ "resolved": "https://registry.npmjs.org/@salesforce/core/-/core-8.8.6.tgz",
4032
+ "integrity": "sha512-RQK7iUvOv579qZkz93DtXOTFY6HZrOF1iJB5JntnzzmWgKXwdeRdoyIYlLksrDp0vkNtjtNTZZz+IJY4x6eCig==",
4033
4033
  "license": "BSD-3-Clause",
4034
4034
  "dependencies": {
4035
4035
  "@jsforce/jsforce-node": "^3.6.5",
@@ -4078,16 +4078,16 @@
4078
4078
  "license": "ISC"
4079
4079
  },
4080
4080
  "node_modules/@salesforce/sf-plugins-core": {
4081
- "version": "12.2.0",
4082
- "resolved": "https://registry.npmjs.org/@salesforce/sf-plugins-core/-/sf-plugins-core-12.2.0.tgz",
4083
- "integrity": "sha512-aGNk74rMt8I+HTP7hRsX6kxiGTuun9ONrWkX7JvWDdtIoO9TsEbNVZENH8GFxHFalWPFCj31IMUQD/bGbxMFbg==",
4081
+ "version": "12.2.1",
4082
+ "resolved": "https://registry.npmjs.org/@salesforce/sf-plugins-core/-/sf-plugins-core-12.2.1.tgz",
4083
+ "integrity": "sha512-b3eRSzGO0weBLL1clHaJNgNP1aKkD1Qy2DQEc0ieteEm+fh1FfPA0QpJ9rh/hdmkJRip2x2R2zz9tflJ0wflbg==",
4084
4084
  "license": "BSD-3-Clause",
4085
4085
  "dependencies": {
4086
4086
  "@inquirer/confirm": "^3.1.22",
4087
4087
  "@inquirer/password": "^2.2.0",
4088
- "@oclif/core": "^4.2.4",
4088
+ "@oclif/core": "^4.2.10",
4089
4089
  "@oclif/table": "^0.4.6",
4090
- "@salesforce/core": "^8.5.1",
4090
+ "@salesforce/core": "^8.8.5",
4091
4091
  "@salesforce/kit": "^3.2.3",
4092
4092
  "@salesforce/ts-types": "^2.0.12",
4093
4093
  "ansis": "^3.3.2",
@@ -248,5 +248,5 @@
248
248
  ]
249
249
  }
250
250
  },
251
- "version": "1.0.0-dev-3.13905678209-1"
251
+ "version": "1.0.0-dev-3.13990488196-1"
252
252
  }
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.13905678209-1",
4
+ "version": "1.0.0-dev-3.13990488196-1",
5
5
  "exports": "./lib/driver/MergeDriver.js",
6
6
  "type": "module",
7
7
  "author": "Sébastien Colladon (colladonsebastien@gmail.com)",