@gitwand/core 1.6.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/LICENSE +21 -0
- package/README.md +52 -0
- package/dist/__tests__/bench.bench.d.ts +14 -0
- package/dist/__tests__/bench.bench.d.ts.map +1 -0
- package/dist/__tests__/bench.bench.js +137 -0
- package/dist/__tests__/bench.bench.js.map +1 -0
- package/dist/__tests__/confidence-v14.test.d.ts +13 -0
- package/dist/__tests__/confidence-v14.test.d.ts.map +1 -0
- package/dist/__tests__/confidence-v14.test.js +284 -0
- package/dist/__tests__/confidence-v14.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +317 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/corpus.d.ts +36 -0
- package/dist/__tests__/corpus.d.ts.map +1 -0
- package/dist/__tests__/corpus.js +541 -0
- package/dist/__tests__/corpus.js.map +1 -0
- package/dist/__tests__/corpus.test.d.ts +17 -0
- package/dist/__tests__/corpus.test.d.ts.map +1 -0
- package/dist/__tests__/corpus.test.js +179 -0
- package/dist/__tests__/corpus.test.js.map +1 -0
- package/dist/__tests__/diff.test.d.ts +10 -0
- package/dist/__tests__/diff.test.d.ts.map +1 -0
- package/dist/__tests__/diff.test.js +178 -0
- package/dist/__tests__/diff.test.js.map +1 -0
- package/dist/__tests__/format-resolvers.test.d.ts +2 -0
- package/dist/__tests__/format-resolvers.test.d.ts.map +1 -0
- package/dist/__tests__/format-resolvers.test.js +577 -0
- package/dist/__tests__/format-resolvers.test.js.map +1 -0
- package/dist/__tests__/imports-extended.test.d.ts +2 -0
- package/dist/__tests__/imports-extended.test.d.ts.map +1 -0
- package/dist/__tests__/imports-extended.test.js +94 -0
- package/dist/__tests__/imports-extended.test.js.map +1 -0
- package/dist/__tests__/lockfile-resolvers.test.d.ts +2 -0
- package/dist/__tests__/lockfile-resolvers.test.d.ts.map +1 -0
- package/dist/__tests__/lockfile-resolvers.test.js +200 -0
- package/dist/__tests__/lockfile-resolvers.test.js.map +1 -0
- package/dist/__tests__/patterns/insertion-at-boundary.test.d.ts +10 -0
- package/dist/__tests__/patterns/insertion-at-boundary.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/insertion-at-boundary.test.js +185 -0
- package/dist/__tests__/patterns/insertion-at-boundary.test.js.map +1 -0
- package/dist/__tests__/patterns/reorder-only.test.d.ts +10 -0
- package/dist/__tests__/patterns/reorder-only.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/reorder-only.test.js +181 -0
- package/dist/__tests__/patterns/reorder-only.test.js.map +1 -0
- package/dist/__tests__/phase-7-2-3b.test.d.ts +6 -0
- package/dist/__tests__/phase-7-2-3b.test.d.ts.map +1 -0
- package/dist/__tests__/phase-7-2-3b.test.js +730 -0
- package/dist/__tests__/phase-7-2-3b.test.js.map +1 -0
- package/dist/__tests__/resolver.test.d.ts +2 -0
- package/dist/__tests__/resolver.test.d.ts.map +1 -0
- package/dist/__tests__/resolver.test.js +927 -0
- package/dist/__tests__/resolver.test.js.map +1 -0
- package/dist/__tests__/resolvers/cargo.test.d.ts +10 -0
- package/dist/__tests__/resolvers/cargo.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/cargo.test.js +158 -0
- package/dist/__tests__/resolvers/cargo.test.js.map +1 -0
- package/dist/__tests__/resolvers/dockerfile.test.d.ts +8 -0
- package/dist/__tests__/resolvers/dockerfile.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/dockerfile.test.js +120 -0
- package/dist/__tests__/resolvers/dockerfile.test.js.map +1 -0
- package/dist/__tests__/resolvers/dotenv.test.d.ts +9 -0
- package/dist/__tests__/resolvers/dotenv.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/dotenv.test.js +113 -0
- package/dist/__tests__/resolvers/dotenv.test.js.map +1 -0
- package/dist/__tests__/resolvers/improvements-v14.test.d.ts +8 -0
- package/dist/__tests__/resolvers/improvements-v14.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/improvements-v14.test.js +306 -0
- package/dist/__tests__/resolvers/improvements-v14.test.js.map +1 -0
- package/dist/__tests__/validation.test.d.ts +12 -0
- package/dist/__tests__/validation.test.d.ts.map +1 -0
- package/dist/__tests__/validation.test.js +136 -0
- package/dist/__tests__/validation.test.js.map +1 -0
- package/dist/classifier.d.ts +21 -0
- package/dist/classifier.d.ts.map +1 -0
- package/dist/classifier.js +127 -0
- package/dist/classifier.js.map +1 -0
- package/dist/config.d.ts +108 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +200 -0
- package/dist/config.js.map +1 -0
- package/dist/diff.d.ts +69 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +328 -0
- package/dist/diff.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/parser.d.ts +39 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +164 -0
- package/dist/parser.js.map +1 -0
- package/dist/patterns/complex.d.ts +5 -0
- package/dist/patterns/complex.d.ts.map +1 -0
- package/dist/patterns/complex.js +27 -0
- package/dist/patterns/complex.js.map +1 -0
- package/dist/patterns/delete-no-change.d.ts +4 -0
- package/dist/patterns/delete-no-change.d.ts.map +1 -0
- package/dist/patterns/delete-no-change.js +75 -0
- package/dist/patterns/delete-no-change.js.map +1 -0
- package/dist/patterns/insertion-at-boundary.d.ts +22 -0
- package/dist/patterns/insertion-at-boundary.d.ts.map +1 -0
- package/dist/patterns/insertion-at-boundary.js +164 -0
- package/dist/patterns/insertion-at-boundary.js.map +1 -0
- package/dist/patterns/non-overlapping.d.ts +4 -0
- package/dist/patterns/non-overlapping.d.ts.map +1 -0
- package/dist/patterns/non-overlapping.js +28 -0
- package/dist/patterns/non-overlapping.js.map +1 -0
- package/dist/patterns/one-side-change.d.ts +4 -0
- package/dist/patterns/one-side-change.d.ts.map +1 -0
- package/dist/patterns/one-side-change.js +45 -0
- package/dist/patterns/one-side-change.js.map +1 -0
- package/dist/patterns/reorder-only.d.ts +14 -0
- package/dist/patterns/reorder-only.d.ts.map +1 -0
- package/dist/patterns/reorder-only.js +81 -0
- package/dist/patterns/reorder-only.js.map +1 -0
- package/dist/patterns/same-change.d.ts +4 -0
- package/dist/patterns/same-change.d.ts.map +1 -0
- package/dist/patterns/same-change.js +25 -0
- package/dist/patterns/same-change.js.map +1 -0
- package/dist/patterns/utils.d.ts +70 -0
- package/dist/patterns/utils.d.ts.map +1 -0
- package/dist/patterns/utils.js +206 -0
- package/dist/patterns/utils.js.map +1 -0
- package/dist/patterns/value-only-change.d.ts +4 -0
- package/dist/patterns/value-only-change.d.ts.map +1 -0
- package/dist/patterns/value-only-change.js +34 -0
- package/dist/patterns/value-only-change.js.map +1 -0
- package/dist/patterns/whitespace-only.d.ts +4 -0
- package/dist/patterns/whitespace-only.d.ts.map +1 -0
- package/dist/patterns/whitespace-only.js +32 -0
- package/dist/patterns/whitespace-only.js.map +1 -0
- package/dist/resolver/assemble.d.ts +25 -0
- package/dist/resolver/assemble.d.ts.map +1 -0
- package/dist/resolver/assemble.js +170 -0
- package/dist/resolver/assemble.js.map +1 -0
- package/dist/resolver/format-dispatch.d.ts +40 -0
- package/dist/resolver/format-dispatch.d.ts.map +1 -0
- package/dist/resolver/format-dispatch.js +51 -0
- package/dist/resolver/format-dispatch.js.map +1 -0
- package/dist/resolver/generated-detection.d.ts +48 -0
- package/dist/resolver/generated-detection.d.ts.map +1 -0
- package/dist/resolver/generated-detection.js +123 -0
- package/dist/resolver/generated-detection.js.map +1 -0
- package/dist/resolver/index.d.ts +26 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +147 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/policy.d.ts +53 -0
- package/dist/resolver/policy.d.ts.map +1 -0
- package/dist/resolver/policy.js +99 -0
- package/dist/resolver/policy.js.map +1 -0
- package/dist/resolver/validation.d.ts +28 -0
- package/dist/resolver/validation.d.ts.map +1 -0
- package/dist/resolver/validation.js +96 -0
- package/dist/resolver/validation.js.map +1 -0
- package/dist/resolver.d.ts +18 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +18 -0
- package/dist/resolver.js.map +1 -0
- package/dist/resolvers/cargo.d.ts +34 -0
- package/dist/resolvers/cargo.d.ts.map +1 -0
- package/dist/resolvers/cargo.js +262 -0
- package/dist/resolvers/cargo.js.map +1 -0
- package/dist/resolvers/css.d.ts +60 -0
- package/dist/resolvers/css.d.ts.map +1 -0
- package/dist/resolvers/css.js +531 -0
- package/dist/resolvers/css.js.map +1 -0
- package/dist/resolvers/dispatcher.d.ts +78 -0
- package/dist/resolvers/dispatcher.d.ts.map +1 -0
- package/dist/resolvers/dispatcher.js +290 -0
- package/dist/resolvers/dispatcher.js.map +1 -0
- package/dist/resolvers/dockerfile.d.ts +24 -0
- package/dist/resolvers/dockerfile.d.ts.map +1 -0
- package/dist/resolvers/dockerfile.js +221 -0
- package/dist/resolvers/dockerfile.js.map +1 -0
- package/dist/resolvers/dotenv.d.ts +27 -0
- package/dist/resolvers/dotenv.d.ts.map +1 -0
- package/dist/resolvers/dotenv.js +114 -0
- package/dist/resolvers/dotenv.js.map +1 -0
- package/dist/resolvers/imports.d.ts +63 -0
- package/dist/resolvers/imports.d.ts.map +1 -0
- package/dist/resolvers/imports.js +513 -0
- package/dist/resolvers/imports.js.map +1 -0
- package/dist/resolvers/json.d.ts +48 -0
- package/dist/resolvers/json.d.ts.map +1 -0
- package/dist/resolvers/json.js +363 -0
- package/dist/resolvers/json.js.map +1 -0
- package/dist/resolvers/lockfile-npm.d.ts +38 -0
- package/dist/resolvers/lockfile-npm.d.ts.map +1 -0
- package/dist/resolvers/lockfile-npm.js +267 -0
- package/dist/resolvers/lockfile-npm.js.map +1 -0
- package/dist/resolvers/lockfile-pnpm.d.ts +44 -0
- package/dist/resolvers/lockfile-pnpm.d.ts.map +1 -0
- package/dist/resolvers/lockfile-pnpm.js +277 -0
- package/dist/resolvers/lockfile-pnpm.js.map +1 -0
- package/dist/resolvers/lockfile-yarn.d.ts +40 -0
- package/dist/resolvers/lockfile-yarn.d.ts.map +1 -0
- package/dist/resolvers/lockfile-yarn.js +184 -0
- package/dist/resolvers/lockfile-yarn.js.map +1 -0
- package/dist/resolvers/markdown.d.ts +64 -0
- package/dist/resolvers/markdown.d.ts.map +1 -0
- package/dist/resolvers/markdown.js +335 -0
- package/dist/resolvers/markdown.js.map +1 -0
- package/dist/resolvers/vue.d.ts +65 -0
- package/dist/resolvers/vue.d.ts.map +1 -0
- package/dist/resolvers/vue.js +258 -0
- package/dist/resolvers/vue.js.map +1 -0
- package/dist/resolvers/yaml.d.ts +65 -0
- package/dist/resolvers/yaml.d.ts.map +1 -0
- package/dist/resolvers/yaml.js +405 -0
- package/dist/resolvers/yaml.js.map +1 -0
- package/dist/types.d.ts +256 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile-npm.js","sourceRoot":"","sources":["../../src/resolvers/lockfile-npm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur sémantique pour pnpm-lock.yaml
|
|
3
|
+
*
|
|
4
|
+
* Format pnpm-lock.yaml :
|
|
5
|
+
* lockfileVersion: '9.0'
|
|
6
|
+
* settings:
|
|
7
|
+
* ...
|
|
8
|
+
* importers:
|
|
9
|
+
* .:
|
|
10
|
+
* dependencies:
|
|
11
|
+
* react:
|
|
12
|
+
* specifier: ^18.0.0
|
|
13
|
+
* version: 18.2.0
|
|
14
|
+
* packages:
|
|
15
|
+
* /react@18.2.0:
|
|
16
|
+
* resolution: {integrity: sha512-...}
|
|
17
|
+
* ...
|
|
18
|
+
* snapshots:
|
|
19
|
+
* /react@18.2.0:
|
|
20
|
+
* dependencies: ...
|
|
21
|
+
*
|
|
22
|
+
* Stratégie :
|
|
23
|
+
* Le fichier est structuré en sections YAML top-level.
|
|
24
|
+
* On fusionne chaque section indépendamment au niveau des entrées clé-valeur.
|
|
25
|
+
* Les sections `packages` et `snapshots` ont des entrées par paquet résolvable.
|
|
26
|
+
* La section `importers` décrit les dépendances directes.
|
|
27
|
+
*
|
|
28
|
+
* Le merge 3-way utilise les lignes YAML indentées pour identifier les blocs.
|
|
29
|
+
*/
|
|
30
|
+
export interface PnpmLockMergeResult {
|
|
31
|
+
/** Contenu fusionné ou null si échec */
|
|
32
|
+
merged: string | null;
|
|
33
|
+
/** Raison de la résolution */
|
|
34
|
+
reason: string;
|
|
35
|
+
/** Nombre d'entrées fusionnées */
|
|
36
|
+
resolvedEntries: number;
|
|
37
|
+
/** Nombre de conflits */
|
|
38
|
+
conflicts: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Fusionne trois versions d'un pnpm-lock.yaml par section et sous-entrée.
|
|
42
|
+
*/
|
|
43
|
+
export declare function tryResolvePnpmLockConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): PnpmLockMergeResult;
|
|
44
|
+
//# sourceMappingURL=lockfile-pnpm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile-pnpm.d.ts","sourceRoot":"","sources":["../../src/resolvers/lockfile-pnpm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AA0KD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,mBAAmB,CAsGrB"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur sémantique pour pnpm-lock.yaml
|
|
3
|
+
*
|
|
4
|
+
* Format pnpm-lock.yaml :
|
|
5
|
+
* lockfileVersion: '9.0'
|
|
6
|
+
* settings:
|
|
7
|
+
* ...
|
|
8
|
+
* importers:
|
|
9
|
+
* .:
|
|
10
|
+
* dependencies:
|
|
11
|
+
* react:
|
|
12
|
+
* specifier: ^18.0.0
|
|
13
|
+
* version: 18.2.0
|
|
14
|
+
* packages:
|
|
15
|
+
* /react@18.2.0:
|
|
16
|
+
* resolution: {integrity: sha512-...}
|
|
17
|
+
* ...
|
|
18
|
+
* snapshots:
|
|
19
|
+
* /react@18.2.0:
|
|
20
|
+
* dependencies: ...
|
|
21
|
+
*
|
|
22
|
+
* Stratégie :
|
|
23
|
+
* Le fichier est structuré en sections YAML top-level.
|
|
24
|
+
* On fusionne chaque section indépendamment au niveau des entrées clé-valeur.
|
|
25
|
+
* Les sections `packages` et `snapshots` ont des entrées par paquet résolvable.
|
|
26
|
+
* La section `importers` décrit les dépendances directes.
|
|
27
|
+
*
|
|
28
|
+
* Le merge 3-way utilise les lignes YAML indentées pour identifier les blocs.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Parse un fichier YAML en blocs top-level.
|
|
32
|
+
* Chaque bloc est identifié par une clé au niveau d'indentation 0.
|
|
33
|
+
*/
|
|
34
|
+
function parseTopLevelBlocks(lines) {
|
|
35
|
+
const preamble = [];
|
|
36
|
+
const blocks = new Map();
|
|
37
|
+
const blockOrder = [];
|
|
38
|
+
let currentKey = null;
|
|
39
|
+
let currentBody = [];
|
|
40
|
+
for (const line of lines) {
|
|
41
|
+
// Top-level key: starts at column 0, ends with ':'
|
|
42
|
+
const topLevelMatch = line.match(/^(\S[^:]*?):\s*(.*)?$/);
|
|
43
|
+
if (topLevelMatch && !line.startsWith(" ") && !line.startsWith("\t")) {
|
|
44
|
+
// Save previous block
|
|
45
|
+
if (currentKey !== null) {
|
|
46
|
+
blocks.set(currentKey, currentBody);
|
|
47
|
+
blockOrder.push(currentKey);
|
|
48
|
+
}
|
|
49
|
+
currentKey = topLevelMatch[1];
|
|
50
|
+
const inlineValue = topLevelMatch[2]?.trim();
|
|
51
|
+
// If there's an inline value (e.g., `lockfileVersion: '9.0'`), store as single line
|
|
52
|
+
currentBody = inlineValue ? [line] : [];
|
|
53
|
+
}
|
|
54
|
+
else if (currentKey === null) {
|
|
55
|
+
// Before any top-level key → preamble (comments, blank lines)
|
|
56
|
+
preamble.push(line);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
currentBody.push(line);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Save last block
|
|
63
|
+
if (currentKey !== null) {
|
|
64
|
+
blocks.set(currentKey, currentBody);
|
|
65
|
+
blockOrder.push(currentKey);
|
|
66
|
+
}
|
|
67
|
+
return { preamble, blocks, blockOrder };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Pour une section comme `packages` ou `snapshots`, parse les sous-entrées
|
|
71
|
+
* (chaque clé indentée de 2 espaces avec son body).
|
|
72
|
+
*/
|
|
73
|
+
function parseSubEntries(bodyLines) {
|
|
74
|
+
const entries = new Map();
|
|
75
|
+
let currentKey = null;
|
|
76
|
+
let currentBody = [];
|
|
77
|
+
for (const line of bodyLines) {
|
|
78
|
+
// Sub-entry key: indented exactly 2 spaces (top-level sub-entries only), key ends with ':'
|
|
79
|
+
const subMatch = line.match(/^(\s{2})(\S[^:]*?):\s*$/);
|
|
80
|
+
const subInlineMatch = line.match(/^(\s{2})(\S[^:]*?):\s+(.+)$/);
|
|
81
|
+
if (subMatch || subInlineMatch) {
|
|
82
|
+
// Save previous sub-entry
|
|
83
|
+
if (currentKey !== null) {
|
|
84
|
+
entries.set(currentKey, currentBody.join("\n"));
|
|
85
|
+
}
|
|
86
|
+
if (subMatch) {
|
|
87
|
+
currentKey = subMatch[2].trim();
|
|
88
|
+
currentBody = [];
|
|
89
|
+
}
|
|
90
|
+
else if (subInlineMatch) {
|
|
91
|
+
currentKey = subInlineMatch[2].trim();
|
|
92
|
+
currentBody = [line];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (currentKey !== null) {
|
|
96
|
+
currentBody.push(line);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Save last entry
|
|
100
|
+
if (currentKey !== null) {
|
|
101
|
+
entries.set(currentKey, currentBody.join("\n"));
|
|
102
|
+
}
|
|
103
|
+
return entries;
|
|
104
|
+
}
|
|
105
|
+
// ─── 3-way merge ─────────────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Merge 3-way d'une Map de sous-entrées.
|
|
108
|
+
*/
|
|
109
|
+
function mergeEntryMap(base, ours, theirs) {
|
|
110
|
+
const allKeys = new Set([...base.keys(), ...ours.keys(), ...theirs.keys()]);
|
|
111
|
+
const merged = new Map();
|
|
112
|
+
let resolved = 0;
|
|
113
|
+
let conflicts = 0;
|
|
114
|
+
for (const key of allKeys) {
|
|
115
|
+
const b = base.get(key);
|
|
116
|
+
const o = ours.get(key);
|
|
117
|
+
const t = theirs.get(key);
|
|
118
|
+
if (b === undefined) {
|
|
119
|
+
// New entry
|
|
120
|
+
if (o !== undefined && t !== undefined) {
|
|
121
|
+
merged.set(key, o === t ? o : t);
|
|
122
|
+
}
|
|
123
|
+
else if (o !== undefined) {
|
|
124
|
+
merged.set(key, o);
|
|
125
|
+
}
|
|
126
|
+
else if (t !== undefined) {
|
|
127
|
+
merged.set(key, t);
|
|
128
|
+
}
|
|
129
|
+
resolved++;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (o === undefined && t === undefined) {
|
|
133
|
+
resolved++;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (o === undefined) {
|
|
137
|
+
if (t === b) {
|
|
138
|
+
resolved++;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
merged.set(key, t);
|
|
142
|
+
resolved++;
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (t === undefined) {
|
|
146
|
+
if (o === b) {
|
|
147
|
+
resolved++;
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
merged.set(key, o);
|
|
151
|
+
resolved++;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
const oChanged = o !== b;
|
|
155
|
+
const tChanged = t !== b;
|
|
156
|
+
if (!oChanged && !tChanged) {
|
|
157
|
+
merged.set(key, b);
|
|
158
|
+
}
|
|
159
|
+
else if (!oChanged) {
|
|
160
|
+
merged.set(key, t);
|
|
161
|
+
}
|
|
162
|
+
else if (!tChanged) {
|
|
163
|
+
merged.set(key, o);
|
|
164
|
+
}
|
|
165
|
+
else if (o === t) {
|
|
166
|
+
merged.set(key, o);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
// Conflit → prefer theirs
|
|
170
|
+
merged.set(key, t);
|
|
171
|
+
conflicts++;
|
|
172
|
+
}
|
|
173
|
+
resolved++;
|
|
174
|
+
}
|
|
175
|
+
return { merged, resolved, conflicts };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Fusionne trois versions d'un pnpm-lock.yaml par section et sous-entrée.
|
|
179
|
+
*/
|
|
180
|
+
export function tryResolvePnpmLockConflict(baseLines, oursLines, theirsLines) {
|
|
181
|
+
const baseParsed = parseTopLevelBlocks(baseLines);
|
|
182
|
+
const oursParsed = parseTopLevelBlocks(oursLines);
|
|
183
|
+
const theirsParsed = parseTopLevelBlocks(theirsLines);
|
|
184
|
+
let totalResolved = 0;
|
|
185
|
+
let totalConflicts = 0;
|
|
186
|
+
// Merge section par section
|
|
187
|
+
const allSections = new Set([
|
|
188
|
+
...baseParsed.blockOrder,
|
|
189
|
+
...oursParsed.blockOrder,
|
|
190
|
+
...theirsParsed.blockOrder,
|
|
191
|
+
]);
|
|
192
|
+
const mergedSections = new Map();
|
|
193
|
+
// Preserve section order from ours
|
|
194
|
+
const sectionOrder = [...oursParsed.blockOrder];
|
|
195
|
+
for (const s of allSections) {
|
|
196
|
+
if (!sectionOrder.includes(s))
|
|
197
|
+
sectionOrder.push(s);
|
|
198
|
+
}
|
|
199
|
+
// Sections with sub-entries that should be merged at entry level
|
|
200
|
+
const entryLevelSections = new Set(["packages", "snapshots", "importers"]);
|
|
201
|
+
for (const section of allSections) {
|
|
202
|
+
const baseBody = baseParsed.blocks.get(section);
|
|
203
|
+
const oursBody = oursParsed.blocks.get(section);
|
|
204
|
+
const theirsBody = theirsParsed.blocks.get(section);
|
|
205
|
+
if (entryLevelSections.has(section) && baseBody && oursBody && theirsBody) {
|
|
206
|
+
// Merge at sub-entry level
|
|
207
|
+
const baseEntries = parseSubEntries(baseBody);
|
|
208
|
+
const oursEntries = parseSubEntries(oursBody);
|
|
209
|
+
const theirsEntries = parseSubEntries(theirsBody);
|
|
210
|
+
const { merged, resolved, conflicts } = mergeEntryMap(baseEntries, oursEntries, theirsEntries);
|
|
211
|
+
totalResolved += resolved;
|
|
212
|
+
totalConflicts += conflicts;
|
|
213
|
+
// Reconstruct section body
|
|
214
|
+
const body = [];
|
|
215
|
+
const sortedKeys = [...merged.keys()].sort();
|
|
216
|
+
for (const key of sortedKeys) {
|
|
217
|
+
const value = merged.get(key);
|
|
218
|
+
if (value.includes("\n") || value === "") {
|
|
219
|
+
body.push(` ${key}:`);
|
|
220
|
+
if (value)
|
|
221
|
+
body.push(...value.split("\n"));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
// Inline value — reconstruct the line
|
|
225
|
+
body.push(value);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
mergedSections.set(section, body);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// Simple section (scalar/header) — use 3-way text compare
|
|
232
|
+
const baseText = baseBody?.join("\n") ?? "";
|
|
233
|
+
const oursText = oursBody?.join("\n") ?? "";
|
|
234
|
+
const theirsText = theirsBody?.join("\n") ?? "";
|
|
235
|
+
if (oursText === theirsText || oursText === baseText) {
|
|
236
|
+
mergedSections.set(section, theirsBody ?? oursBody ?? []);
|
|
237
|
+
}
|
|
238
|
+
else if (theirsText === baseText) {
|
|
239
|
+
mergedSections.set(section, oursBody ?? []);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// Both changed differently → prefer theirs
|
|
243
|
+
mergedSections.set(section, theirsBody ?? oursBody ?? []);
|
|
244
|
+
totalConflicts++;
|
|
245
|
+
}
|
|
246
|
+
totalResolved++;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Reconstruct file
|
|
250
|
+
const outputLines = [...oursParsed.preamble];
|
|
251
|
+
for (const section of sectionOrder) {
|
|
252
|
+
const body = mergedSections.get(section);
|
|
253
|
+
if (!body)
|
|
254
|
+
continue;
|
|
255
|
+
if (body.length === 1 && body[0].startsWith(section + ":")) {
|
|
256
|
+
// Inline section (e.g., `lockfileVersion: '9.0'`)
|
|
257
|
+
outputLines.push(body[0]);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
outputLines.push(`${section}:`);
|
|
261
|
+
if (body.length > 0) {
|
|
262
|
+
outputLines.push(...body);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
outputLines.push(""); // blank line between sections
|
|
266
|
+
}
|
|
267
|
+
const reason = totalConflicts > 0
|
|
268
|
+
? `Fusion sémantique pnpm-lock.yaml : ${totalResolved} entrée(s), ${totalConflicts} conflit(s) résolu(s) (prefer-theirs).`
|
|
269
|
+
: `Fusion sémantique pnpm-lock.yaml réussie : ${totalResolved} entrée(s) fusionnée(s) sans conflit.`;
|
|
270
|
+
return {
|
|
271
|
+
merged: outputLines.join("\n"),
|
|
272
|
+
reason,
|
|
273
|
+
resolvedEntries: totalResolved,
|
|
274
|
+
conflicts: totalConflicts,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=lockfile-pnpm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile-pnpm.js","sourceRoot":"","sources":["../../src/resolvers/lockfile-pnpm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur sémantique pour yarn.lock
|
|
3
|
+
*
|
|
4
|
+
* Format yarn.lock (v1) : blocs indépendants de la forme :
|
|
5
|
+
*
|
|
6
|
+
* "package@^version":
|
|
7
|
+
* version "1.2.3"
|
|
8
|
+
* resolved "https://registry..."
|
|
9
|
+
* integrity sha512-...
|
|
10
|
+
* dependencies:
|
|
11
|
+
* dep-a "^1.0"
|
|
12
|
+
*
|
|
13
|
+
* Chaque bloc est identifié par son header (la/les ligne(s) de clé).
|
|
14
|
+
* Le merge se fait par bloc.
|
|
15
|
+
*
|
|
16
|
+
* Stratégie :
|
|
17
|
+
* 1. Parser en blocs (header → body)
|
|
18
|
+
* 2. Merge 3-way par header :
|
|
19
|
+
* - Ajouté d'un seul côté → prendre
|
|
20
|
+
* - Supprimé d'un seul côté (pas modifié de l'autre) → supprimer
|
|
21
|
+
* - Modifié d'un seul côté → prendre la modification
|
|
22
|
+
* - Modifié des deux côtés, même résultat → ok
|
|
23
|
+
* - Conflit → prefer theirs
|
|
24
|
+
* 3. Reconstruire le fichier trié
|
|
25
|
+
*/
|
|
26
|
+
export interface YarnLockMergeResult {
|
|
27
|
+
/** Contenu fusionné ou null si échec */
|
|
28
|
+
merged: string | null;
|
|
29
|
+
/** Raison de la résolution */
|
|
30
|
+
reason: string;
|
|
31
|
+
/** Nombre de blocs fusionnés */
|
|
32
|
+
resolvedBlocks: number;
|
|
33
|
+
/** Nombre de conflits de version */
|
|
34
|
+
versionConflicts: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Fusionne trois versions d'un yarn.lock par bloc de paquet.
|
|
38
|
+
*/
|
|
39
|
+
export declare function tryResolveYarnLockConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): YarnLockMergeResult;
|
|
40
|
+
//# sourceMappingURL=lockfile-yarn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile-yarn.d.ts","sourceRoot":"","sources":["../../src/resolvers/lockfile-yarn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAsED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,mBAAmB,CAiHrB"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur sémantique pour yarn.lock
|
|
3
|
+
*
|
|
4
|
+
* Format yarn.lock (v1) : blocs indépendants de la forme :
|
|
5
|
+
*
|
|
6
|
+
* "package@^version":
|
|
7
|
+
* version "1.2.3"
|
|
8
|
+
* resolved "https://registry..."
|
|
9
|
+
* integrity sha512-...
|
|
10
|
+
* dependencies:
|
|
11
|
+
* dep-a "^1.0"
|
|
12
|
+
*
|
|
13
|
+
* Chaque bloc est identifié par son header (la/les ligne(s) de clé).
|
|
14
|
+
* Le merge se fait par bloc.
|
|
15
|
+
*
|
|
16
|
+
* Stratégie :
|
|
17
|
+
* 1. Parser en blocs (header → body)
|
|
18
|
+
* 2. Merge 3-way par header :
|
|
19
|
+
* - Ajouté d'un seul côté → prendre
|
|
20
|
+
* - Supprimé d'un seul côté (pas modifié de l'autre) → supprimer
|
|
21
|
+
* - Modifié d'un seul côté → prendre la modification
|
|
22
|
+
* - Modifié des deux côtés, même résultat → ok
|
|
23
|
+
* - Conflit → prefer theirs
|
|
24
|
+
* 3. Reconstruire le fichier trié
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Parse un yarn.lock en blocs indépendants.
|
|
28
|
+
* Retourne le commentaire d'en-tête et une Map<header, body>.
|
|
29
|
+
*/
|
|
30
|
+
function parseYarnLock(content) {
|
|
31
|
+
const lines = content.split("\n");
|
|
32
|
+
let preamble = "";
|
|
33
|
+
const blocks = new Map();
|
|
34
|
+
let i = 0;
|
|
35
|
+
// Preamble : commentaires en tête
|
|
36
|
+
while (i < lines.length && (lines[i].startsWith("#") || lines[i].trim() === "")) {
|
|
37
|
+
preamble += lines[i] + "\n";
|
|
38
|
+
i++;
|
|
39
|
+
}
|
|
40
|
+
// Parse blocks
|
|
41
|
+
while (i < lines.length) {
|
|
42
|
+
const line = lines[i];
|
|
43
|
+
// Skip blank lines between blocks
|
|
44
|
+
if (line.trim() === "") {
|
|
45
|
+
i++;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// A header line starts at column 0 and is not a comment
|
|
49
|
+
if (!line.startsWith(" ") && !line.startsWith("\t") && !line.startsWith("#")) {
|
|
50
|
+
const header = line;
|
|
51
|
+
i++;
|
|
52
|
+
// Collect body lines (indented)
|
|
53
|
+
const bodyLines = [];
|
|
54
|
+
while (i < lines.length && (lines[i].startsWith(" ") || lines[i].startsWith("\t") || lines[i].trim() === "")) {
|
|
55
|
+
// Stop at blank line that precedes next header
|
|
56
|
+
if (lines[i].trim() === "" && i + 1 < lines.length && !lines[i + 1].startsWith(" ") && !lines[i + 1].startsWith("\t") && lines[i + 1].trim() !== "") {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
if (lines[i].trim() !== "") {
|
|
60
|
+
bodyLines.push(lines[i]);
|
|
61
|
+
}
|
|
62
|
+
i++;
|
|
63
|
+
}
|
|
64
|
+
blocks.set(header, bodyLines.join("\n"));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
i++;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { preamble, blocks };
|
|
71
|
+
}
|
|
72
|
+
// ─── 3-way merge ─────────────────────────────────────────
|
|
73
|
+
/**
|
|
74
|
+
* Fusionne trois versions d'un yarn.lock par bloc de paquet.
|
|
75
|
+
*/
|
|
76
|
+
export function tryResolveYarnLockConflict(baseLines, oursLines, theirsLines) {
|
|
77
|
+
const baseParsed = parseYarnLock(baseLines.join("\n"));
|
|
78
|
+
const oursParsed = parseYarnLock(oursLines.join("\n"));
|
|
79
|
+
const theirsParsed = parseYarnLock(theirsLines.join("\n"));
|
|
80
|
+
if (!baseParsed || !oursParsed || !theirsParsed) {
|
|
81
|
+
return {
|
|
82
|
+
merged: null,
|
|
83
|
+
reason: "Impossible de parser une des versions du yarn.lock.",
|
|
84
|
+
resolvedBlocks: 0,
|
|
85
|
+
versionConflicts: 0,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const baseBlocks = baseParsed.blocks;
|
|
89
|
+
const oursBlocks = oursParsed.blocks;
|
|
90
|
+
const theirsBlocks = theirsParsed.blocks;
|
|
91
|
+
const allHeaders = new Set([...baseBlocks.keys(), ...oursBlocks.keys(), ...theirsBlocks.keys()]);
|
|
92
|
+
const mergedBlocks = new Map();
|
|
93
|
+
let resolvedBlocks = 0;
|
|
94
|
+
let versionConflicts = 0;
|
|
95
|
+
for (const header of allHeaders) {
|
|
96
|
+
const base = baseBlocks.get(header);
|
|
97
|
+
const ours = oursBlocks.get(header);
|
|
98
|
+
const theirs = theirsBlocks.get(header);
|
|
99
|
+
// Pas dans base → ajout
|
|
100
|
+
if (base === undefined) {
|
|
101
|
+
if (ours !== undefined && theirs !== undefined) {
|
|
102
|
+
mergedBlocks.set(header, ours === theirs ? ours : theirs);
|
|
103
|
+
resolvedBlocks++;
|
|
104
|
+
}
|
|
105
|
+
else if (ours !== undefined) {
|
|
106
|
+
mergedBlocks.set(header, ours);
|
|
107
|
+
resolvedBlocks++;
|
|
108
|
+
}
|
|
109
|
+
else if (theirs !== undefined) {
|
|
110
|
+
mergedBlocks.set(header, theirs);
|
|
111
|
+
resolvedBlocks++;
|
|
112
|
+
}
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
// Supprimé des deux → ok
|
|
116
|
+
if (ours === undefined && theirs === undefined) {
|
|
117
|
+
resolvedBlocks++;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// Supprimé d'un côté
|
|
121
|
+
if (ours === undefined) {
|
|
122
|
+
if (theirs === base) {
|
|
123
|
+
resolvedBlocks++; // pas modifié, supprimé par ours → ok
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
mergedBlocks.set(header, theirs); // modifié par theirs → garder
|
|
127
|
+
resolvedBlocks++;
|
|
128
|
+
}
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (theirs === undefined) {
|
|
132
|
+
if (ours === base) {
|
|
133
|
+
resolvedBlocks++; // pas modifié, supprimé par theirs → ok
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
mergedBlocks.set(header, ours); // modifié par ours → garder
|
|
137
|
+
resolvedBlocks++;
|
|
138
|
+
}
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Présent partout
|
|
142
|
+
const oursChanged = ours !== base;
|
|
143
|
+
const theirsChanged = theirs !== base;
|
|
144
|
+
if (!oursChanged && !theirsChanged) {
|
|
145
|
+
mergedBlocks.set(header, base);
|
|
146
|
+
resolvedBlocks++;
|
|
147
|
+
}
|
|
148
|
+
else if (!oursChanged) {
|
|
149
|
+
mergedBlocks.set(header, theirs);
|
|
150
|
+
resolvedBlocks++;
|
|
151
|
+
}
|
|
152
|
+
else if (!theirsChanged) {
|
|
153
|
+
mergedBlocks.set(header, ours);
|
|
154
|
+
resolvedBlocks++;
|
|
155
|
+
}
|
|
156
|
+
else if (ours === theirs) {
|
|
157
|
+
mergedBlocks.set(header, ours);
|
|
158
|
+
resolvedBlocks++;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Vrai conflit → prefer theirs
|
|
162
|
+
mergedBlocks.set(header, theirs);
|
|
163
|
+
versionConflicts++;
|
|
164
|
+
resolvedBlocks++;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Reconstruire le fichier : preamble + blocs triés
|
|
168
|
+
const sortedHeaders = [...mergedBlocks.keys()].sort();
|
|
169
|
+
let output = oursParsed.preamble;
|
|
170
|
+
for (const header of sortedHeaders) {
|
|
171
|
+
output += `${header}\n`;
|
|
172
|
+
output += `${mergedBlocks.get(header)}\n\n`;
|
|
173
|
+
}
|
|
174
|
+
const reason = versionConflicts > 0
|
|
175
|
+
? `Fusion sémantique yarn.lock : ${resolvedBlocks} bloc(s), ${versionConflicts} conflit(s) résolu(s) (prefer-theirs).`
|
|
176
|
+
: `Fusion sémantique yarn.lock réussie : ${resolvedBlocks} bloc(s) fusionné(s) sans conflit.`;
|
|
177
|
+
return {
|
|
178
|
+
merged: output,
|
|
179
|
+
reason,
|
|
180
|
+
resolvedBlocks,
|
|
181
|
+
versionConflicts,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=lockfile-yarn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile-yarn.js","sourceRoot":"","sources":["../../src/resolvers/lockfile-yarn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur Markdown section-aware
|
|
3
|
+
*
|
|
4
|
+
* Résout les conflits dans les fichiers Markdown en identifiant
|
|
5
|
+
* la structure de sections (headings H1..H6) et en fusionnant
|
|
6
|
+
* section par section lorsque les modifications sont non-overlapping.
|
|
7
|
+
*
|
|
8
|
+
* Stratégie :
|
|
9
|
+
* 1. Détecter les headings dans les trois versions
|
|
10
|
+
* 2. Découper chaque version en sections (heading + contenu jusqu'au prochain heading de niveau ≤)
|
|
11
|
+
* 3. Pour chaque section :
|
|
12
|
+
* a. Si identique dans ours et theirs → garder
|
|
13
|
+
* b. Si modifiée d'un seul côté → accepter la modification
|
|
14
|
+
* c. Si section ajoutée d'un côté → ajouter
|
|
15
|
+
* d. Si modifiée des deux côtés différemment → conflit partiel (insert les deux versions)
|
|
16
|
+
* 4. Gestion du frontmatter YAML (entre --- au début du fichier) : traité séparément
|
|
17
|
+
*
|
|
18
|
+
* Limites :
|
|
19
|
+
* - Ne pas résoudre les conflits intra-section (renvoyés au moteur textuel)
|
|
20
|
+
* - Pas de merge sémantique du contenu riche (listes, tableaux, code)
|
|
21
|
+
*/
|
|
22
|
+
export interface MarkdownSection {
|
|
23
|
+
/** Heading complet (ex: "## Mon titre") ou null pour le bloc avant le 1er heading */
|
|
24
|
+
heading: string | null;
|
|
25
|
+
/** Niveau du heading (1..6) ou 0 pour le prologue */
|
|
26
|
+
level: number;
|
|
27
|
+
/** Lignes du contenu (sans le heading) */
|
|
28
|
+
lines: string[];
|
|
29
|
+
/** Index de début dans le tableau de lignes source */
|
|
30
|
+
startIdx: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Détecte et extrait le frontmatter YAML si présent (--- au début).
|
|
34
|
+
* Retourne { frontmatter: string[], rest: string[] }.
|
|
35
|
+
*/
|
|
36
|
+
export declare function extractFrontmatter(lines: string[]): {
|
|
37
|
+
frontmatter: string[];
|
|
38
|
+
rest: string[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Découpe un tableau de lignes en sections Markdown.
|
|
42
|
+
* Chaque section commence par un heading ATX.
|
|
43
|
+
* Le contenu avant le premier heading forme une section "prologue" (level 0).
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseSections(lines: string[]): MarkdownSection[];
|
|
46
|
+
export interface MarkdownMergeResult {
|
|
47
|
+
/** Lignes fusionnées (null si conflit non résolvable) */
|
|
48
|
+
mergedLines: string[] | null;
|
|
49
|
+
/** Sections avec conflit non résolu */
|
|
50
|
+
conflictedSections: string[];
|
|
51
|
+
/** Nombre de sections fusionnées automatiquement */
|
|
52
|
+
resolvedSections: number;
|
|
53
|
+
/** Description de la fusion */
|
|
54
|
+
reason: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Fusionne deux versions Markdown section par section avec une base commune.
|
|
58
|
+
*
|
|
59
|
+
* @param baseLines - Lignes de la version base
|
|
60
|
+
* @param oursLines - Lignes de la version ours
|
|
61
|
+
* @param theirsLines - Lignes de la version theirs
|
|
62
|
+
*/
|
|
63
|
+
export declare function tryResolveMarkdownConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): MarkdownMergeResult;
|
|
64
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/resolvers/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IACnD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAsBA;AAaD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CA8BhE;AAuBD,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,mBAAmB,CAwFrB"}
|