sf-git-merge-driver 1.0.2-dev-83.16864602749-1 → 1.0.2-dev-87.16914634440-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/commands/git/merge/driver/run.js +4 -7
- package/lib/commands/git/merge/driver/run.js.map +1 -1
- package/lib/driver/MergeDriver.d.ts +1 -1
- package/lib/driver/MergeDriver.js +10 -8
- package/lib/driver/MergeDriver.js.map +1 -1
- package/lib/merger/XmlMerger.js +1 -0
- package/lib/merger/XmlMerger.js.map +1 -1
- package/lib/service/installService.js +1 -1
- package/lib/service/installService.js.map +1 -1
- package/lib/utils/mergeUtils.d.ts +2 -0
- package/lib/utils/mergeUtils.js +41 -1
- package/lib/utils/mergeUtils.js.map +1 -1
- package/messages/run.md +0 -8
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -48,7 +48,7 @@ EXAMPLES
|
|
|
48
48
|
$ sf git merge driver install
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
_See code: [src/commands/git/merge/driver/install.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-
|
|
51
|
+
_See code: [src/commands/git/merge/driver/install.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-87.16914634440-1/src/commands/git/merge/driver/install.ts)_
|
|
52
52
|
|
|
53
53
|
## `sf git merge driver run`
|
|
54
54
|
|
|
@@ -92,7 +92,7 @@ EXAMPLES
|
|
|
92
92
|
- output-file is the path to the file where the merged content will be written
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
_See code: [src/commands/git/merge/driver/run.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-
|
|
95
|
+
_See code: [src/commands/git/merge/driver/run.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-87.16914634440-1/src/commands/git/merge/driver/run.ts)_
|
|
96
96
|
|
|
97
97
|
## `sf git merge driver uninstall`
|
|
98
98
|
|
|
@@ -119,7 +119,7 @@ EXAMPLES
|
|
|
119
119
|
$ sf git merge driver uninstall
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
_See code: [src/commands/git/merge/driver/uninstall.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-
|
|
122
|
+
_See code: [src/commands/git/merge/driver/uninstall.ts](https://github.com/scolladon/sf-git-merge-driver/blob/v1.0.2-dev-87.16914634440-1/src/commands/git/merge/driver/uninstall.ts)_
|
|
123
123
|
<!-- commandsstop -->
|
|
124
124
|
|
|
125
125
|
## How It Works
|
|
@@ -5,6 +5,8 @@ import { MergeDriver } from '../../../../driver/MergeDriver.js';
|
|
|
5
5
|
import { ConflictMarker } from '../../../../merger/conflictMarker.js';
|
|
6
6
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
7
7
|
const messages = Messages.loadMessages('sf-git-merge-driver', 'run');
|
|
8
|
+
const ERROR_EXIT_CODE = 1;
|
|
9
|
+
const SUCCESS_EXIT_CODE = 0;
|
|
8
10
|
export default class Run extends SfCommand {
|
|
9
11
|
static summary = messages.getMessage('summary');
|
|
10
12
|
static description = messages.getMessage('description');
|
|
@@ -66,13 +68,8 @@ export default class Run extends SfCommand {
|
|
|
66
68
|
};
|
|
67
69
|
ConflictMarker.setConflictConfig(conflicConfig);
|
|
68
70
|
const mergeDriver = new MergeDriver();
|
|
69
|
-
const hasConflict = await mergeDriver.mergeFiles(flags['ancestor-file'], flags['local-file'], flags['other-file']
|
|
70
|
-
|
|
71
|
-
this.error(messages.getMessage('result.withconflict') + ' ' + flags['output-file'], { exit: 1 });
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.info(messages.getMessage('result.successful') + ' ' + flags['output-file']);
|
|
75
|
-
}
|
|
71
|
+
const hasConflict = await mergeDriver.mergeFiles(flags['ancestor-file'], flags['local-file'], flags['other-file']);
|
|
72
|
+
process.exitCode = hasConflict ? ERROR_EXIT_CODE : SUCCESS_EXIT_CODE;
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
//# sourceMappingURL=run.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../src/commands/git/merge/driver/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../src/commands/git/merge/driver/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { normalize } from 'node:path';
|
|
2
3
|
import { XmlMerger } from '../merger/XmlMerger.js';
|
|
4
|
+
import { detectEol, normalizeEol } from '../utils/mergeUtils.js';
|
|
3
5
|
export class MergeDriver {
|
|
4
|
-
async mergeFiles(ancestorFile, ourFile, theirFile
|
|
6
|
+
async mergeFiles(ancestorFile, ourFile, theirFile) {
|
|
5
7
|
// Read all three versions
|
|
6
|
-
const [ancestorContent, ourContent, theirContent] = await Promise.all([
|
|
7
|
-
|
|
8
|
-
readFile(
|
|
9
|
-
readFile(theirFile, 'utf8'),
|
|
10
|
-
]);
|
|
8
|
+
const [ancestorContent, ourContent, theirContent] = await Promise.all([ancestorFile, ourFile, theirFile]
|
|
9
|
+
.map(normalize)
|
|
10
|
+
.map(path => readFile(path, 'utf8')));
|
|
11
11
|
const xmlMerger = new XmlMerger();
|
|
12
12
|
const mergedContent = xmlMerger.mergeThreeWay(ancestorContent, ourContent, theirContent);
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const targetEol = detectEol(ourContent);
|
|
14
|
+
const outputWithEol = normalizeEol(mergedContent.output, targetEol);
|
|
15
|
+
// Write the merged content to the our file
|
|
16
|
+
await writeFile(normalize(ourFile), outputWithEol);
|
|
15
17
|
return mergedContent.hasConflict;
|
|
16
18
|
}
|
|
17
19
|
}
|
|
@@ -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;
|
|
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,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEhE,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,UAAU,CACd,YAAoB,EACpB,OAAe,EACf,SAAiB;QAEjB,0BAA0B;QAC1B,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACnE,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC;aAC/B,GAAG,CAAC,SAAS,CAAC;aACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACvC,CAAA;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;QAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAC3C,eAAe,EACf,UAAU,EACV,YAAY,CACb,CAAA;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACvC,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEnE,2CAA2C;QAC3C,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;QAClD,OAAO,aAAa,CAAC,WAAW,CAAA;IAClC,CAAC;CACF"}
|
package/lib/merger/XmlMerger.js
CHANGED
|
@@ -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,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;
|
|
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;IACvB,eAAe,EAAE,KAAK;CACvB,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,aAAa,CACX,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;QACpC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QACnC,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE5E,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAW,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,MAAM;gBACtB,CAAC,CAAC,qBAAqB,CACnB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CACnE;gBACH,CAAC,CAAC,EAAE;YACN,WAAW,EAAE,YAAY,CAAC,WAAW;SACtC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -7,7 +7,7 @@ export class InstallService {
|
|
|
7
7
|
async installMergeDriver() {
|
|
8
8
|
const git = simpleGit();
|
|
9
9
|
await git.addConfig(`merge.${DRIVER_NAME}.name`, 'Salesforce source merge driver');
|
|
10
|
-
await git.addConfig(`merge.${DRIVER_NAME}.driver`,
|
|
10
|
+
await git.addConfig(`merge.${DRIVER_NAME}.driver`, `sh -c '${RUN_PLUGIN_COMMAND} -O "$1" -A "$2" -B "$3" -P "$4" -L "$5" -X "$6" -Y "$7"' -- %O %A %B %P %L %X %Y`);
|
|
11
11
|
await git.addConfig(`merge.${DRIVER_NAME}.recursive`, 'true');
|
|
12
12
|
// Configure merge driver for each metadata type pattern
|
|
13
13
|
const patterns = METADATA_TYPES_PATTERNS.map(pattern => `*.${pattern}-meta.xml merge=${DRIVER_NAME}`).join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installService.js","sourceRoot":"","sources":["../../src/service/installService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,OAAO,cAAc;IAClB,KAAK,CAAC,kBAAkB;QAC7B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;QACvB,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,OAAO,EAC3B,gCAAgC,CACjC,CAAA;QACD,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,SAAS,EAC7B,
|
|
1
|
+
{"version":3,"file":"installService.js","sourceRoot":"","sources":["../../src/service/installService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,OAAO,cAAc;IAClB,KAAK,CAAC,kBAAkB;QAC7B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;QACvB,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,OAAO,EAC3B,gCAAgC,CACjC,CAAA;QACD,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,SAAS,EAC7B,UAAU,kBAAkB,mFAAmF,CAChH,CAAA;QACD,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,WAAW,YAAY,EAAE,MAAM,CAAC,CAAA;QAE7D,wDAAwD;QACxD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,mBAAmB,WAAW,EAAE,CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,CAAA;QAE/B,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,EAAE,CAAA;QAEtD,MAAM,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF"}
|
|
@@ -2,3 +2,5 @@ import type { JsonArray, JsonObject, JsonValue } from '../types/jsonTypes.js';
|
|
|
2
2
|
export declare const isObject: (ancestor: JsonValue | undefined | null, local: JsonValue | undefined | null, other: JsonValue | undefined | null) => boolean;
|
|
3
3
|
export declare const ensureArray: (value: JsonValue) => JsonArray;
|
|
4
4
|
export declare const getUniqueSortedProps: (...objects: (JsonObject | JsonArray)[]) => string[];
|
|
5
|
+
export declare const detectEol: (text: string) => string;
|
|
6
|
+
export declare const normalizeEol: (text: string, eol?: string) => string;
|
package/lib/utils/mergeUtils.js
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
import { castArray, isNil } from 'lodash-es';
|
|
2
|
+
import { EOL } from 'os';
|
|
3
|
+
const CR = '\r';
|
|
4
|
+
const LF = '\n';
|
|
5
|
+
const CRLF = `${CR}${LF}`;
|
|
6
|
+
const RE_CRLF = /\r\n/g;
|
|
7
|
+
const RE_LF_OR_CRLF = /\r\n|\n/g;
|
|
2
8
|
export const isObject = (ancestor, local, other) => typeof [ancestor, other, local].find(ele => !isNil(ele)) === 'object';
|
|
3
9
|
export const ensureArray = (value) => isNil(value) ? [] : castArray(value);
|
|
4
|
-
export const getUniqueSortedProps = (...objects) => Array.from(new Set([...objects]
|
|
10
|
+
export const getUniqueSortedProps = (...objects) => Array.from(new Set([...objects]
|
|
11
|
+
.filter(jsonElement => ![undefined, null].includes(jsonElement))
|
|
12
|
+
.map(Object.keys)
|
|
13
|
+
.flat())).sort();
|
|
14
|
+
export const detectEol = (text) => {
|
|
15
|
+
if (!text) {
|
|
16
|
+
return EOL;
|
|
17
|
+
}
|
|
18
|
+
let hasCRLF = false;
|
|
19
|
+
let hasLF = false;
|
|
20
|
+
for (let i = 0; i < text.length; ++i) {
|
|
21
|
+
if (text[i] === LF) {
|
|
22
|
+
if (i > 0 && text[i - 1] === CR) {
|
|
23
|
+
hasCRLF = true;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
hasLF = true;
|
|
27
|
+
}
|
|
28
|
+
if (hasCRLF && hasLF) {
|
|
29
|
+
return EOL;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return hasCRLF ? CRLF : hasLF ? LF : EOL;
|
|
34
|
+
};
|
|
35
|
+
export const normalizeEol = (text, eol = EOL) => {
|
|
36
|
+
if (!text) {
|
|
37
|
+
return text;
|
|
38
|
+
}
|
|
39
|
+
let regex = RE_CRLF;
|
|
40
|
+
if (eol === CRLF) {
|
|
41
|
+
regex = RE_LF_OR_CRLF;
|
|
42
|
+
}
|
|
43
|
+
return text.replace(regex, eol);
|
|
44
|
+
};
|
|
5
45
|
//# sourceMappingURL=mergeUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAGxB,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,QAAQ,GAAG,CACtB,QAAsC,EACtC,KAAmC,EACnC,KAAmC,EAC1B,EAAE,CACX,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAA;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAa,EAAE,CACzD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAK,CAAe,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,GAAG,OAAmC,EAC5B,EAAE,CACZ,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CACL,CAAC,GAAG,OAAO,CAAC;KACT,MAAM,CACL,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAoB,CAAC,CACjE;KACA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;KAChB,IAAI,EAAE,CACV,CACF,CAAC,IAAI,EAAE,CAAA;AAEV,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/messages/run.md
CHANGED
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-git-merge-driver",
|
|
3
|
-
"version": "1.0.2-dev-
|
|
3
|
+
"version": "1.0.2-dev-87.16914634440-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.2-dev-
|
|
9
|
+
"version": "1.0.2-dev-87.16914634440-1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@oclif/core": "^4.5.2",
|
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.2-dev-
|
|
4
|
+
"version": "1.0.2-dev-87.16914634440-1",
|
|
5
5
|
"exports": "./lib/driver/MergeDriver.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Sébastien Colladon (colladonsebastien@gmail.com)",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"clean:package-manager": "wireit",
|
|
75
75
|
"clean": "wireit",
|
|
76
76
|
"compile": "wireit",
|
|
77
|
-
"dependencies:upgrade": "
|
|
77
|
+
"dependencies:upgrade": "npm update ; npm audit fix",
|
|
78
78
|
"lint": "wireit",
|
|
79
79
|
"lint:dependencies": "wireit",
|
|
80
80
|
"lint:fix": "wireit",
|