@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":"vue.js","sourceRoot":"","sources":["../../src/resolvers/vue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur YAML structurel
|
|
3
|
+
*
|
|
4
|
+
* Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
|
|
5
|
+
* la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
|
|
6
|
+
*
|
|
7
|
+
* Implémenté sans dépendance externe — parsing structurel basé sur l'indentation.
|
|
8
|
+
*
|
|
9
|
+
* Stratégie :
|
|
10
|
+
* 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
|
|
11
|
+
* 2. Pour chaque clé au même niveau :
|
|
12
|
+
* - Ajoutée d'un seul côté → accepter
|
|
13
|
+
* - Supprimée d'un seul côté, l'autre intact → supprimer
|
|
14
|
+
* - Modifiée des deux côtés de façon identique → accepter
|
|
15
|
+
* - Modifiée d'un seul côté → accepter la modification
|
|
16
|
+
* - Modifiée des deux côtés différemment → conflit non résolvable
|
|
17
|
+
* 3. Pour les valeurs scalaires strictement identiques → garder
|
|
18
|
+
* 4. Pour les blocs imbriqués → récursion
|
|
19
|
+
*
|
|
20
|
+
* Limites (cas non gérés → fallback textuel) :
|
|
21
|
+
* - Anchors et aliases YAML (&anchor / *alias)
|
|
22
|
+
* - Multi-line strings (| et > block scalars)
|
|
23
|
+
* - Séquences (listes avec -) : fusion conservatrice (union si disjoint, sinon conflit)
|
|
24
|
+
* - Flow mappings/sequences inline ({ } / [ ])
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Une entrée YAML parsée.
|
|
28
|
+
* Peut représenter :
|
|
29
|
+
* - key: value (scalaire)
|
|
30
|
+
* - key: (début d'objet indenté)
|
|
31
|
+
* - - item (élément de liste)
|
|
32
|
+
* - # commentaire ou ligne vide
|
|
33
|
+
*/
|
|
34
|
+
export interface YamlEntry {
|
|
35
|
+
/** Indentation en espaces */
|
|
36
|
+
indent: number;
|
|
37
|
+
/** Clé de l'entrée, ou null pour les lignes non-clé (commentaires, listes) */
|
|
38
|
+
key: string | null;
|
|
39
|
+
/** Valeur scalaire sur la même ligne que la clé, ou null si objet/liste */
|
|
40
|
+
scalar: string | null;
|
|
41
|
+
/** Lignes brutes constituant cette entrée (clé + contenu indenté suivant) */
|
|
42
|
+
rawLines: string[];
|
|
43
|
+
}
|
|
44
|
+
/** Résultat du merge YAML */
|
|
45
|
+
export interface YamlMergeResult {
|
|
46
|
+
/** Lignes fusionnées (null = conflit non résolvable) */
|
|
47
|
+
mergedLines: string[] | null;
|
|
48
|
+
/** Description de la fusion */
|
|
49
|
+
reason: string;
|
|
50
|
+
/** Clés résolues automatiquement */
|
|
51
|
+
resolvedKeys: number;
|
|
52
|
+
/** Clés en conflit */
|
|
53
|
+
unresolvedKeys: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Tente de résoudre un conflit YAML en fusionnant structurellement
|
|
57
|
+
* les trois versions.
|
|
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
|
+
* @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
|
|
63
|
+
*/
|
|
64
|
+
export declare function tryResolveYamlConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): YamlMergeResult;
|
|
65
|
+
//# sourceMappingURL=yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsHD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AA4ND;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,eAAe,CAwDjB"}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Résolveur YAML structurel
|
|
3
|
+
*
|
|
4
|
+
* Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
|
|
5
|
+
* la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
|
|
6
|
+
*
|
|
7
|
+
* Implémenté sans dépendance externe — parsing structurel basé sur l'indentation.
|
|
8
|
+
*
|
|
9
|
+
* Stratégie :
|
|
10
|
+
* 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
|
|
11
|
+
* 2. Pour chaque clé au même niveau :
|
|
12
|
+
* - Ajoutée d'un seul côté → accepter
|
|
13
|
+
* - Supprimée d'un seul côté, l'autre intact → supprimer
|
|
14
|
+
* - Modifiée des deux côtés de façon identique → accepter
|
|
15
|
+
* - Modifiée d'un seul côté → accepter la modification
|
|
16
|
+
* - Modifiée des deux côtés différemment → conflit non résolvable
|
|
17
|
+
* 3. Pour les valeurs scalaires strictement identiques → garder
|
|
18
|
+
* 4. Pour les blocs imbriqués → récursion
|
|
19
|
+
*
|
|
20
|
+
* Limites (cas non gérés → fallback textuel) :
|
|
21
|
+
* - Anchors et aliases YAML (&anchor / *alias)
|
|
22
|
+
* - Multi-line strings (| et > block scalars)
|
|
23
|
+
* - Séquences (listes avec -) : fusion conservatrice (union si disjoint, sinon conflit)
|
|
24
|
+
* - Flow mappings/sequences inline ({ } / [ ])
|
|
25
|
+
*/
|
|
26
|
+
// ─── Parser structurel ────────────────────────────────────
|
|
27
|
+
const RE_KEY_VALUE = /^(\s*)([\w.-][\w.\- ]*?):\s+(.+)$/;
|
|
28
|
+
const RE_KEY_ONLY = /^(\s*)([\w.-][\w.\- ]*?):\s*$/;
|
|
29
|
+
const RE_LIST_ITEM = /^(\s*)-\s/;
|
|
30
|
+
const RE_COMMENT = /^\s*#/;
|
|
31
|
+
const RE_ANCHOR = /[&*]/;
|
|
32
|
+
/**
|
|
33
|
+
* Vérifie si un bloc de lignes est entièrement une séquence scalaire YAML.
|
|
34
|
+
* Une séquence scalaire = chaque élément est `- <valeur>` sans clé imbriquée.
|
|
35
|
+
* Les commentaires et lignes vides sont tolérés.
|
|
36
|
+
*/
|
|
37
|
+
function isAllScalarSequence(lines) {
|
|
38
|
+
if (lines.length === 0)
|
|
39
|
+
return false;
|
|
40
|
+
let hasItem = false;
|
|
41
|
+
for (const l of lines) {
|
|
42
|
+
const trimmed = l.trim();
|
|
43
|
+
if (trimmed === "" || RE_COMMENT.test(trimmed))
|
|
44
|
+
continue;
|
|
45
|
+
if (!RE_LIST_ITEM.test(l))
|
|
46
|
+
return false;
|
|
47
|
+
// Item value must be scalar: no unquoted colon (would indicate a mapping)
|
|
48
|
+
const itemVal = trimmed.replace(/^-\s+/, "");
|
|
49
|
+
const isQuoted = itemVal.startsWith('"') || itemVal.startsWith("'");
|
|
50
|
+
if (!isQuoted && /:\s/.test(itemVal))
|
|
51
|
+
return false; // nested mapping
|
|
52
|
+
if (itemVal.startsWith("{") || itemVal.startsWith("["))
|
|
53
|
+
return false; // flow collection
|
|
54
|
+
hasItem = true;
|
|
55
|
+
}
|
|
56
|
+
return hasItem;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Détecte si un bloc YAML contient des constructions non gérées (anchors, block scalars).
|
|
60
|
+
*/
|
|
61
|
+
function hasUnsupportedConstruct(lines) {
|
|
62
|
+
return lines.some((l) => RE_ANCHOR.test(l) ||
|
|
63
|
+
/:\s*[|>]/.test(l) || // block scalar
|
|
64
|
+
/^\s*[|>]/.test(l));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Détecte le niveau d'indentation de base (indentation minimale des lignes non vides).
|
|
68
|
+
*/
|
|
69
|
+
function baseIndent(lines) {
|
|
70
|
+
let min = Infinity;
|
|
71
|
+
for (const l of lines) {
|
|
72
|
+
if (l.trim() === "" || RE_COMMENT.test(l))
|
|
73
|
+
continue;
|
|
74
|
+
const m = l.match(/^(\s*)/);
|
|
75
|
+
if (m && m[1].length < min)
|
|
76
|
+
min = m[1].length;
|
|
77
|
+
}
|
|
78
|
+
return min === Infinity ? 0 : min;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Groupe les lignes en entrées au niveau d'indentation `rootIndent`.
|
|
82
|
+
* Chaque entrée commence par une ligne à `rootIndent` et absorbe
|
|
83
|
+
* toutes les lignes suivantes avec une indentation strictement supérieure.
|
|
84
|
+
*/
|
|
85
|
+
function groupEntries(lines, rootIndent) {
|
|
86
|
+
const entries = [];
|
|
87
|
+
let i = 0;
|
|
88
|
+
while (i < lines.length) {
|
|
89
|
+
const line = lines[i];
|
|
90
|
+
// Lignes vides et commentaires : entrée sans clé
|
|
91
|
+
if (line.trim() === "" || RE_COMMENT.test(line)) {
|
|
92
|
+
entries.push({ indent: rootIndent, key: null, scalar: null, rawLines: [line] });
|
|
93
|
+
i++;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const m = line.match(/^(\s*)/);
|
|
97
|
+
const indent = m ? m[1].length : 0;
|
|
98
|
+
// Ligne d'un niveau plus profond que rootIndent : appartient à l'entrée précédente
|
|
99
|
+
if (indent > rootIndent && entries.length > 0) {
|
|
100
|
+
entries[entries.length - 1].rawLines.push(line);
|
|
101
|
+
i++;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
// Nouvelle entrée au niveau rootIndent
|
|
105
|
+
const keyValue = line.match(RE_KEY_VALUE);
|
|
106
|
+
const keyOnly = line.match(RE_KEY_ONLY);
|
|
107
|
+
const listItem = RE_LIST_ITEM.test(line);
|
|
108
|
+
if (keyValue) {
|
|
109
|
+
entries.push({
|
|
110
|
+
indent,
|
|
111
|
+
key: keyValue[2].trim(),
|
|
112
|
+
scalar: keyValue[3].trim(),
|
|
113
|
+
rawLines: [line],
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else if (keyOnly) {
|
|
117
|
+
entries.push({
|
|
118
|
+
indent,
|
|
119
|
+
key: keyOnly[2].trim(),
|
|
120
|
+
scalar: null,
|
|
121
|
+
rawLines: [line],
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else if (listItem) {
|
|
125
|
+
entries.push({ indent, key: null, scalar: null, rawLines: [line] });
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
entries.push({ indent, key: null, scalar: null, rawLines: [line] });
|
|
129
|
+
}
|
|
130
|
+
i++;
|
|
131
|
+
}
|
|
132
|
+
return entries;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Compare deux tableaux de strings pour égalité.
|
|
136
|
+
*/
|
|
137
|
+
function linesEqual(a, b) {
|
|
138
|
+
return a.length === b.length && a.every((l, i) => l === b[i]);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Fusionne deux séquences YAML (listes `-`).
|
|
142
|
+
* Stratégie : union des éléments (éléments de ours + éléments de theirs absents de ours).
|
|
143
|
+
* Retourne null si les listes sont divergentes de façon non triviale.
|
|
144
|
+
*/
|
|
145
|
+
function mergeSequences(baseLines, oursLines, theirsLines) {
|
|
146
|
+
// Si ours et theirs sont identiques → garder
|
|
147
|
+
if (linesEqual(oursLines, theirsLines))
|
|
148
|
+
return [...oursLines];
|
|
149
|
+
// Si ours = base → prendre theirs
|
|
150
|
+
if (linesEqual(oursLines, baseLines))
|
|
151
|
+
return [...theirsLines];
|
|
152
|
+
// Si theirs = base → prendre ours
|
|
153
|
+
if (linesEqual(theirsLines, baseLines))
|
|
154
|
+
return [...oursLines];
|
|
155
|
+
// Les deux ont modifié → union simple des lignes uniques
|
|
156
|
+
// (conservative : ne pas réordonner, ajouter les nouvelles lignes de theirs à la fin de ours)
|
|
157
|
+
const oursSet = new Set(oursLines.map((l) => l.trim()));
|
|
158
|
+
const extra = theirsLines.filter((l) => !oursSet.has(l.trim()));
|
|
159
|
+
if (extra.length > 0) {
|
|
160
|
+
return [...oursLines, ...extra];
|
|
161
|
+
}
|
|
162
|
+
// theirs est un sous-ensemble de ours (ou identique) → garder ours
|
|
163
|
+
return [...oursLines];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Fusionne récursivement deux blocs YAML structurés.
|
|
167
|
+
* Retourne les lignes fusionnées ou null si un conflit non résolvable est détecté.
|
|
168
|
+
*/
|
|
169
|
+
function mergeYamlBlocks(baseLines, oursLines, theirsLines) {
|
|
170
|
+
// Cas triviaux
|
|
171
|
+
if (linesEqual(oursLines, theirsLines)) {
|
|
172
|
+
return { lines: [...oursLines], resolvedKeys: 1, unresolvedKeys: 0 };
|
|
173
|
+
}
|
|
174
|
+
if (linesEqual(oursLines, baseLines)) {
|
|
175
|
+
return { lines: [...theirsLines], resolvedKeys: 1, unresolvedKeys: 0 };
|
|
176
|
+
}
|
|
177
|
+
if (linesEqual(theirsLines, baseLines)) {
|
|
178
|
+
return { lines: [...oursLines], resolvedKeys: 1, unresolvedKeys: 0 };
|
|
179
|
+
}
|
|
180
|
+
// Déterminer l'indentation de base
|
|
181
|
+
const ri = baseIndent([...oursLines, ...theirsLines, ...baseLines]);
|
|
182
|
+
// Grouper en entrées
|
|
183
|
+
const baseEntries = groupEntries(baseLines, ri);
|
|
184
|
+
const oursEntries = groupEntries(oursLines, ri);
|
|
185
|
+
const theirsEntries = groupEntries(theirsLines, ri);
|
|
186
|
+
// Index par clé
|
|
187
|
+
const baseMap = new Map();
|
|
188
|
+
const oursMap = new Map();
|
|
189
|
+
const theirsMap = new Map();
|
|
190
|
+
for (const e of baseEntries)
|
|
191
|
+
if (e.key)
|
|
192
|
+
baseMap.set(e.key, e);
|
|
193
|
+
for (const e of oursEntries)
|
|
194
|
+
if (e.key)
|
|
195
|
+
oursMap.set(e.key, e);
|
|
196
|
+
for (const e of theirsEntries)
|
|
197
|
+
if (e.key)
|
|
198
|
+
theirsMap.set(e.key, e);
|
|
199
|
+
// Ordre des clés : ours first, puis nouvelles clés de theirs
|
|
200
|
+
const oursOrder = oursEntries.filter((e) => e.key).map((e) => e.key);
|
|
201
|
+
const theirsKeys = theirsEntries.filter((e) => e.key).map((e) => e.key);
|
|
202
|
+
const allKeys = [...oursOrder];
|
|
203
|
+
for (const k of theirsKeys) {
|
|
204
|
+
if (!allKeys.includes(k))
|
|
205
|
+
allKeys.push(k);
|
|
206
|
+
}
|
|
207
|
+
const resultLines = [];
|
|
208
|
+
let resolvedKeys = 0;
|
|
209
|
+
let unresolvedKeys = 0;
|
|
210
|
+
// Conserver les lignes non-clé (commentaires, vides) de ours en tête
|
|
211
|
+
for (const e of oursEntries) {
|
|
212
|
+
if (!e.key)
|
|
213
|
+
resultLines.push(...e.rawLines);
|
|
214
|
+
else
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
for (const key of allKeys) {
|
|
218
|
+
const base = baseMap.get(key);
|
|
219
|
+
const ours = oursMap.get(key);
|
|
220
|
+
const theirs = theirsMap.get(key);
|
|
221
|
+
// Clé absente de base → ajout d'un ou des deux côtés
|
|
222
|
+
if (!base) {
|
|
223
|
+
if (ours && theirs) {
|
|
224
|
+
if (linesEqual(ours.rawLines, theirs.rawLines)) {
|
|
225
|
+
// Même ajout des deux côtés
|
|
226
|
+
resultLines.push(...ours.rawLines);
|
|
227
|
+
resolvedKeys++;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
// Ajout conflictuel → non résolvable
|
|
231
|
+
unresolvedKeys++;
|
|
232
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else if (ours) {
|
|
236
|
+
resultLines.push(...ours.rawLines);
|
|
237
|
+
resolvedKeys++;
|
|
238
|
+
}
|
|
239
|
+
else if (theirs) {
|
|
240
|
+
resultLines.push(...theirs.rawLines);
|
|
241
|
+
resolvedKeys++;
|
|
242
|
+
}
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
// Clé dans base → peut avoir été modifiée/supprimée
|
|
246
|
+
const oursChanged = ours ? !linesEqual(base.rawLines, ours.rawLines) : true; // absent = supprimé
|
|
247
|
+
const theirsChanged = theirs ? !linesEqual(base.rawLines, theirs.rawLines) : true;
|
|
248
|
+
if (!ours && !theirs) {
|
|
249
|
+
// Supprimée des deux côtés → supprimer
|
|
250
|
+
resolvedKeys++;
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
if (!ours && theirs) {
|
|
254
|
+
if (!theirsChanged) {
|
|
255
|
+
// Ours supprimé, theirs intact → supprimer
|
|
256
|
+
resolvedKeys++;
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
// Ours supprimé, theirs modifié → conflit
|
|
260
|
+
unresolvedKeys++;
|
|
261
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
262
|
+
}
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
if (ours && !theirs) {
|
|
266
|
+
if (!oursChanged) {
|
|
267
|
+
// Theirs supprimé, ours intact → supprimer
|
|
268
|
+
resolvedKeys++;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// Theirs supprimé, ours modifié → conflit
|
|
272
|
+
unresolvedKeys++;
|
|
273
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
274
|
+
}
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
// Ours et theirs présents
|
|
278
|
+
if (!oursChanged && !theirsChanged) {
|
|
279
|
+
// Aucun côté n'a changé → garder base
|
|
280
|
+
resultLines.push(...base.rawLines);
|
|
281
|
+
resolvedKeys++;
|
|
282
|
+
}
|
|
283
|
+
else if (linesEqual(ours.rawLines, theirs.rawLines)) {
|
|
284
|
+
// Same change des deux côtés
|
|
285
|
+
resultLines.push(...ours.rawLines);
|
|
286
|
+
resolvedKeys++;
|
|
287
|
+
}
|
|
288
|
+
else if (!oursChanged) {
|
|
289
|
+
// Seul theirs a changé
|
|
290
|
+
resultLines.push(...theirs.rawLines);
|
|
291
|
+
resolvedKeys++;
|
|
292
|
+
}
|
|
293
|
+
else if (!theirsChanged) {
|
|
294
|
+
// Seul ours a changé
|
|
295
|
+
resultLines.push(...ours.rawLines);
|
|
296
|
+
resolvedKeys++;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
// Les deux ont changé différemment
|
|
300
|
+
// Tenter récursion si la clé est un objet indenté (ours.scalar === null)
|
|
301
|
+
if (ours.scalar === null && theirs.scalar === null) {
|
|
302
|
+
// Les deux ont un sous-bloc → récursion sur le contenu indenté
|
|
303
|
+
const oursContent = ours.rawLines.slice(1); // sans la ligne-clé
|
|
304
|
+
const theirsContent = theirs.rawLines.slice(1);
|
|
305
|
+
const baseContent = base.rawLines.slice(1);
|
|
306
|
+
const sub = mergeYamlBlocks(baseContent, oursContent, theirsContent);
|
|
307
|
+
if (sub.lines !== null) {
|
|
308
|
+
resultLines.push(ours.rawLines[0]); // ligne-clé de ours
|
|
309
|
+
resultLines.push(...sub.lines);
|
|
310
|
+
resolvedKeys += sub.resolvedKeys;
|
|
311
|
+
unresolvedKeys += sub.unresolvedKeys;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
unresolvedKeys++;
|
|
315
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (ours.scalar !== null && theirs.scalar !== null) {
|
|
319
|
+
// Séquences imbriquées ?
|
|
320
|
+
const allList = [...ours.rawLines, ...theirs.rawLines, ...base.rawLines]
|
|
321
|
+
.every((l) => RE_LIST_ITEM.test(l) || l.trim() === "" || RE_COMMENT.test(l));
|
|
322
|
+
if (allList) {
|
|
323
|
+
const merged = mergeSequences(base.rawLines, ours.rawLines, theirs.rawLines);
|
|
324
|
+
if (merged) {
|
|
325
|
+
resultLines.push(...merged);
|
|
326
|
+
resolvedKeys++;
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
unresolvedKeys++;
|
|
330
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
// Scalaires différents → conflit non résolvable
|
|
335
|
+
unresolvedKeys++;
|
|
336
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
// Type de valeur différent → conflit
|
|
341
|
+
unresolvedKeys++;
|
|
342
|
+
return { lines: null, resolvedKeys, unresolvedKeys };
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return { lines: resultLines, resolvedKeys, unresolvedKeys };
|
|
347
|
+
}
|
|
348
|
+
// ─── Public API ───────────────────────────────────────────
|
|
349
|
+
/**
|
|
350
|
+
* Tente de résoudre un conflit YAML en fusionnant structurellement
|
|
351
|
+
* les trois versions.
|
|
352
|
+
*
|
|
353
|
+
* @param baseLines - Lignes de la version base
|
|
354
|
+
* @param oursLines - Lignes de la version ours
|
|
355
|
+
* @param theirsLines - Lignes de la version theirs
|
|
356
|
+
* @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
|
|
357
|
+
*/
|
|
358
|
+
export function tryResolveYamlConflict(baseLines, oursLines, theirsLines) {
|
|
359
|
+
// Rejeter les constructions non supportées
|
|
360
|
+
if (hasUnsupportedConstruct(oursLines) ||
|
|
361
|
+
hasUnsupportedConstruct(theirsLines)) {
|
|
362
|
+
return {
|
|
363
|
+
mergedLines: null,
|
|
364
|
+
reason: "YAML contient des anchors, aliases ou block scalars — fusion structurelle non supportée (fallback textuel).",
|
|
365
|
+
resolvedKeys: 0,
|
|
366
|
+
unresolvedKeys: 1,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
// ── Cas spécial v1.4 : séquence scalaire de premier niveau ──
|
|
370
|
+
// Quand tout le hunk est une liste `- item` sans imbrication,
|
|
371
|
+
// appeler mergeSequences directement (le parser clé-valeur ne gère pas ce cas).
|
|
372
|
+
if (isAllScalarSequence(oursLines) && isAllScalarSequence(theirsLines)) {
|
|
373
|
+
const merged = mergeSequences(baseLines, oursLines, theirsLines);
|
|
374
|
+
if (merged !== null) {
|
|
375
|
+
return {
|
|
376
|
+
mergedLines: merged,
|
|
377
|
+
reason: `YAML séquence scalaire — union des éléments (${merged.length} entrées).`,
|
|
378
|
+
resolvedKeys: 1,
|
|
379
|
+
unresolvedKeys: 0,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
return {
|
|
383
|
+
mergedLines: null,
|
|
384
|
+
reason: "YAML séquence scalaire — fusion impossible (éléments en conflit).",
|
|
385
|
+
resolvedKeys: 0,
|
|
386
|
+
unresolvedKeys: 1,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
const { lines, resolvedKeys, unresolvedKeys } = mergeYamlBlocks(baseLines, oursLines, theirsLines);
|
|
390
|
+
if (lines === null) {
|
|
391
|
+
return {
|
|
392
|
+
mergedLines: null,
|
|
393
|
+
reason: `Fusion YAML impossible : ${unresolvedKeys} clé(s) en conflit non résolvable.`,
|
|
394
|
+
resolvedKeys,
|
|
395
|
+
unresolvedKeys,
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
return {
|
|
399
|
+
mergedLines: lines,
|
|
400
|
+
reason: `Fusion YAML structurelle réussie : ${resolvedKeys} clé(s) fusionnée(s).`,
|
|
401
|
+
resolvedKeys,
|
|
402
|
+
unresolvedKeys,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=yaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"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"}
|