@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,541 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Corpus de conflits de référence
|
|
3
|
+
*
|
|
4
|
+
* Phase 7.5 : 20 fixtures réalistes couvrant tous les types de conflit,
|
|
5
|
+
* les deux formats (diff2 / diff3), et différents types de fichiers.
|
|
6
|
+
*
|
|
7
|
+
* Chaque fixture définit :
|
|
8
|
+
* - `input` : le fichier avec marqueurs de conflit
|
|
9
|
+
* - `expectedType` : le type attendu (ex: "same_change")
|
|
10
|
+
* - `expectedResolved`: si le moteur doit auto-résoudre
|
|
11
|
+
* - `expectedOutput` : le contenu attendu après résolution (optionnel)
|
|
12
|
+
* - `category` : famille du conflit
|
|
13
|
+
*/
|
|
14
|
+
// ─── Trivial — same_change ──────────────────────────────────
|
|
15
|
+
const F01 = {
|
|
16
|
+
id: "F01",
|
|
17
|
+
description: "same_change — même import ajouté des deux côtés (diff3)",
|
|
18
|
+
filePath: "src/utils.ts",
|
|
19
|
+
category: "trivial",
|
|
20
|
+
input: [
|
|
21
|
+
`<<<<<<< ours`,
|
|
22
|
+
`import { z } from "zod";`,
|
|
23
|
+
`import { resolve } from "path";`,
|
|
24
|
+
`||||||| base`,
|
|
25
|
+
`import { resolve } from "path";`,
|
|
26
|
+
`=======`,
|
|
27
|
+
`import { z } from "zod";`,
|
|
28
|
+
`import { resolve } from "path";`,
|
|
29
|
+
`>>>>>>> theirs`,
|
|
30
|
+
].join("\n"),
|
|
31
|
+
expectedType: "same_change",
|
|
32
|
+
expectedResolved: true,
|
|
33
|
+
expectedOutput: `import { z } from "zod";\nimport { resolve } from "path";`,
|
|
34
|
+
};
|
|
35
|
+
const F02 = {
|
|
36
|
+
id: "F02",
|
|
37
|
+
description: "same_change — même bump de version dans package.json (diff3)",
|
|
38
|
+
filePath: "package.json",
|
|
39
|
+
category: "trivial",
|
|
40
|
+
input: [
|
|
41
|
+
`<<<<<<< ours`,
|
|
42
|
+
` "version": "2.1.0",`,
|
|
43
|
+
`||||||| base`,
|
|
44
|
+
` "version": "2.0.0",`,
|
|
45
|
+
`=======`,
|
|
46
|
+
` "version": "2.1.0",`,
|
|
47
|
+
`>>>>>>> theirs`,
|
|
48
|
+
].join("\n"),
|
|
49
|
+
expectedType: "same_change",
|
|
50
|
+
expectedResolved: true,
|
|
51
|
+
expectedOutput: ` "version": "2.1.0",`,
|
|
52
|
+
};
|
|
53
|
+
// ─── Trivial — one_side_change ──────────────────────────────
|
|
54
|
+
const F03 = {
|
|
55
|
+
id: "F03",
|
|
56
|
+
description: "one_side_change — refactoring theirs uniquement (diff3)",
|
|
57
|
+
filePath: "src/api/client.ts",
|
|
58
|
+
category: "trivial",
|
|
59
|
+
input: [
|
|
60
|
+
`<<<<<<< ours`,
|
|
61
|
+
`async function fetchUser(id: string) {`,
|
|
62
|
+
` return fetch(\`/api/users/\${id}\`);`,
|
|
63
|
+
`}`,
|
|
64
|
+
`||||||| base`,
|
|
65
|
+
`async function fetchUser(id: string) {`,
|
|
66
|
+
` return fetch(\`/api/users/\${id}\`);`,
|
|
67
|
+
`}`,
|
|
68
|
+
`=======`,
|
|
69
|
+
`async function fetchUser(id: string): Promise<Response> {`,
|
|
70
|
+
` return fetch(\`/api/users/\${id}\`, { credentials: "include" });`,
|
|
71
|
+
`}`,
|
|
72
|
+
`>>>>>>> theirs`,
|
|
73
|
+
].join("\n"),
|
|
74
|
+
expectedType: "one_side_change",
|
|
75
|
+
expectedResolved: true,
|
|
76
|
+
};
|
|
77
|
+
const F04 = {
|
|
78
|
+
id: "F04",
|
|
79
|
+
description: "one_side_change — mise à jour couleur ours uniquement (diff3)",
|
|
80
|
+
filePath: "src/styles/theme.css",
|
|
81
|
+
category: "trivial",
|
|
82
|
+
input: [
|
|
83
|
+
`<<<<<<< ours`,
|
|
84
|
+
` --color-primary: #3b82f6;`,
|
|
85
|
+
` --color-secondary: #64748b;`,
|
|
86
|
+
`||||||| base`,
|
|
87
|
+
` --color-primary: #2563eb;`,
|
|
88
|
+
` --color-secondary: #64748b;`,
|
|
89
|
+
`=======`,
|
|
90
|
+
` --color-primary: #2563eb;`,
|
|
91
|
+
` --color-secondary: #64748b;`,
|
|
92
|
+
`>>>>>>> theirs`,
|
|
93
|
+
].join("\n"),
|
|
94
|
+
expectedType: "one_side_change",
|
|
95
|
+
expectedResolved: true,
|
|
96
|
+
};
|
|
97
|
+
// ─── Trivial — delete_no_change ────────────────────────────
|
|
98
|
+
const F05 = {
|
|
99
|
+
id: "F05",
|
|
100
|
+
description: "delete_no_change — ours supprime une fonction dépréciée (diff3)",
|
|
101
|
+
filePath: "src/helpers.ts",
|
|
102
|
+
category: "trivial",
|
|
103
|
+
input: [
|
|
104
|
+
`<<<<<<< ours`,
|
|
105
|
+
`||||||| base`,
|
|
106
|
+
`/** @deprecated Use formatDate() instead */`,
|
|
107
|
+
`function legacyFormat(d: Date) {`,
|
|
108
|
+
` return d.toISOString();`,
|
|
109
|
+
`}`,
|
|
110
|
+
`=======`,
|
|
111
|
+
`/** @deprecated Use formatDate() instead */`,
|
|
112
|
+
`function legacyFormat(d: Date) {`,
|
|
113
|
+
` return d.toISOString();`,
|
|
114
|
+
`}`,
|
|
115
|
+
`>>>>>>> theirs`,
|
|
116
|
+
].join("\n"),
|
|
117
|
+
expectedType: "delete_no_change",
|
|
118
|
+
expectedResolved: true,
|
|
119
|
+
expectedOutput: "",
|
|
120
|
+
};
|
|
121
|
+
const F06 = {
|
|
122
|
+
id: "F06",
|
|
123
|
+
// theirs retire un import inutilisé → one_side_change (theirs ≠ base, ours = base)
|
|
124
|
+
// delete_no_change requiert theirsLines.length === 0 (suppression totale)
|
|
125
|
+
description: "one_side_change — theirs supprime un import inutilisé (diff3)",
|
|
126
|
+
filePath: "src/components/Button.vue",
|
|
127
|
+
category: "trivial",
|
|
128
|
+
input: [
|
|
129
|
+
`<<<<<<< ours`,
|
|
130
|
+
`import { ref, computed } from "vue";`,
|
|
131
|
+
`import { storeToRefs } from "pinia";`,
|
|
132
|
+
`||||||| base`,
|
|
133
|
+
`import { ref, computed } from "vue";`,
|
|
134
|
+
`import { storeToRefs } from "pinia";`,
|
|
135
|
+
`=======`,
|
|
136
|
+
`import { ref, computed } from "vue";`,
|
|
137
|
+
`>>>>>>> theirs`,
|
|
138
|
+
].join("\n"),
|
|
139
|
+
expectedType: "one_side_change",
|
|
140
|
+
expectedResolved: true,
|
|
141
|
+
};
|
|
142
|
+
// ─── Structural — non_overlapping ──────────────────────────
|
|
143
|
+
const F07 = {
|
|
144
|
+
id: "F07",
|
|
145
|
+
// ours ajoute avant useCartStore, theirs ajoute APRÈS useCartStore → positions distinctes
|
|
146
|
+
description: "non_overlapping — imports ajoutés en tête et en queue (diff3)",
|
|
147
|
+
filePath: "src/store/index.ts",
|
|
148
|
+
category: "structural",
|
|
149
|
+
input: [
|
|
150
|
+
`<<<<<<< ours`,
|
|
151
|
+
`import { defineStore } from "pinia";`,
|
|
152
|
+
`import { useAuthStore } from "./auth";`,
|
|
153
|
+
`import { useCartStore } from "./cart";`,
|
|
154
|
+
`||||||| base`,
|
|
155
|
+
`import { defineStore } from "pinia";`,
|
|
156
|
+
`import { useCartStore } from "./cart";`,
|
|
157
|
+
`=======`,
|
|
158
|
+
`import { defineStore } from "pinia";`,
|
|
159
|
+
`import { useCartStore } from "./cart";`,
|
|
160
|
+
`import { useProductStore } from "./products";`,
|
|
161
|
+
`>>>>>>> theirs`,
|
|
162
|
+
].join("\n"),
|
|
163
|
+
expectedType: "non_overlapping",
|
|
164
|
+
expectedResolved: true,
|
|
165
|
+
};
|
|
166
|
+
const F08 = {
|
|
167
|
+
id: "F08",
|
|
168
|
+
description: "non_overlapping — champs JSON ajoutés dans deux zones séparées (diff3)",
|
|
169
|
+
filePath: ".env.schema.json",
|
|
170
|
+
category: "structural",
|
|
171
|
+
input: [
|
|
172
|
+
`<<<<<<< ours`,
|
|
173
|
+
`{`,
|
|
174
|
+
` "APP_NAME": { "type": "string" },`,
|
|
175
|
+
` "API_URL": { "type": "string" },`,
|
|
176
|
+
` "DB_HOST": { "type": "string" },`,
|
|
177
|
+
` "DB_PORT": { "type": "number" }`,
|
|
178
|
+
`}`,
|
|
179
|
+
`||||||| base`,
|
|
180
|
+
`{`,
|
|
181
|
+
` "APP_NAME": { "type": "string" },`,
|
|
182
|
+
` "DB_HOST": { "type": "string" },`,
|
|
183
|
+
` "DB_PORT": { "type": "number" }`,
|
|
184
|
+
`}`,
|
|
185
|
+
`=======`,
|
|
186
|
+
`{`,
|
|
187
|
+
` "APP_NAME": { "type": "string" },`,
|
|
188
|
+
` "DB_HOST": { "type": "string" },`,
|
|
189
|
+
` "DB_PORT": { "type": "number" },`,
|
|
190
|
+
` "REDIS_URL": { "type": "string" }`,
|
|
191
|
+
`}`,
|
|
192
|
+
`>>>>>>> theirs`,
|
|
193
|
+
].join("\n"),
|
|
194
|
+
expectedType: "non_overlapping",
|
|
195
|
+
expectedResolved: true,
|
|
196
|
+
};
|
|
197
|
+
// ─── Structural — whitespace_only ──────────────────────────
|
|
198
|
+
const F09 = {
|
|
199
|
+
id: "F09",
|
|
200
|
+
// ours = 4 espaces, base = 2 espaces, theirs = 2 espaces
|
|
201
|
+
// → theirs = base, seul ours a changé → one_side_change
|
|
202
|
+
// Pour avoir whitespace_only, il faut que OURS et THEIRS diffèrent tous deux de la base
|
|
203
|
+
// mais uniquement en whitespace — ex: base=2esp, ours=4esp, theirs=tabs
|
|
204
|
+
description: "one_side_change — reformatage ours uniquement (diff3, theirs = base)",
|
|
205
|
+
filePath: "src/utils/date.ts",
|
|
206
|
+
category: "structural",
|
|
207
|
+
input: [
|
|
208
|
+
`<<<<<<< ours`,
|
|
209
|
+
`function formatDate(date: Date): string {`,
|
|
210
|
+
` const year = date.getFullYear();`,
|
|
211
|
+
` const month = String(date.getMonth() + 1).padStart(2, "0");`,
|
|
212
|
+
` return \`\${year}-\${month}\`;`,
|
|
213
|
+
`}`,
|
|
214
|
+
`||||||| base`,
|
|
215
|
+
`function formatDate(date: Date): string {`,
|
|
216
|
+
` const year = date.getFullYear();`,
|
|
217
|
+
` const month = String(date.getMonth() + 1).padStart(2, "0");`,
|
|
218
|
+
` return \`\${year}-\${month}\`;`,
|
|
219
|
+
`}`,
|
|
220
|
+
`=======`,
|
|
221
|
+
`function formatDate(date: Date): string {`,
|
|
222
|
+
` const year = date.getFullYear();`,
|
|
223
|
+
` const month = String(date.getMonth() + 1).padStart(2, "0");`,
|
|
224
|
+
` return \`\${year}-\${month}\`;`,
|
|
225
|
+
`}`,
|
|
226
|
+
`>>>>>>> theirs`,
|
|
227
|
+
].join("\n"),
|
|
228
|
+
expectedType: "one_side_change",
|
|
229
|
+
expectedResolved: true,
|
|
230
|
+
};
|
|
231
|
+
const F10 = {
|
|
232
|
+
id: "F10",
|
|
233
|
+
description: "whitespace_only — reformatage CSS, sans base (diff2)",
|
|
234
|
+
filePath: "src/styles/reset.css",
|
|
235
|
+
category: "structural",
|
|
236
|
+
input: [
|
|
237
|
+
`<<<<<<< ours`,
|
|
238
|
+
`*,`,
|
|
239
|
+
`*::before,`,
|
|
240
|
+
`*::after {`,
|
|
241
|
+
` box-sizing: border-box;`,
|
|
242
|
+
` margin: 0;`,
|
|
243
|
+
` padding: 0;`,
|
|
244
|
+
`}`,
|
|
245
|
+
`=======`,
|
|
246
|
+
`*,`,
|
|
247
|
+
`*::before,`,
|
|
248
|
+
`*::after {`,
|
|
249
|
+
` box-sizing: border-box;`,
|
|
250
|
+
` margin: 0;`,
|
|
251
|
+
` padding: 0;`,
|
|
252
|
+
`}`,
|
|
253
|
+
`>>>>>>> theirs`,
|
|
254
|
+
].join("\n"),
|
|
255
|
+
expectedType: "whitespace_only",
|
|
256
|
+
expectedResolved: true,
|
|
257
|
+
};
|
|
258
|
+
// ─── Semantic — value_only_change ──────────────────────────
|
|
259
|
+
const F11 = {
|
|
260
|
+
id: "F11",
|
|
261
|
+
description: "value_only_change — hash Vite d'assets différents (diff2)",
|
|
262
|
+
filePath: "dist/manifest.json",
|
|
263
|
+
category: "semantic",
|
|
264
|
+
input: [
|
|
265
|
+
`<<<<<<< ours`,
|
|
266
|
+
` "src/main.ts": {`,
|
|
267
|
+
` "file": "assets/main-BVdDe8aQ.js",`,
|
|
268
|
+
` "css": ["assets/main-C1xPLZoN.css"]`,
|
|
269
|
+
` }`,
|
|
270
|
+
`=======`,
|
|
271
|
+
` "src/main.ts": {`,
|
|
272
|
+
` "file": "assets/main-Dx9QwPzM.js",`,
|
|
273
|
+
` "css": ["assets/main-Bz7KpRvN.css"]`,
|
|
274
|
+
` }`,
|
|
275
|
+
`>>>>>>> theirs`,
|
|
276
|
+
].join("\n"),
|
|
277
|
+
expectedType: "value_only_change",
|
|
278
|
+
expectedResolved: true,
|
|
279
|
+
};
|
|
280
|
+
const F12 = {
|
|
281
|
+
id: "F12",
|
|
282
|
+
description: "value_only_change — bump de semver dans package.json (diff2)",
|
|
283
|
+
filePath: "package.json",
|
|
284
|
+
category: "semantic",
|
|
285
|
+
input: [
|
|
286
|
+
`<<<<<<< ours`,
|
|
287
|
+
` "dependencies": {`,
|
|
288
|
+
` "vue": "^3.4.15",`,
|
|
289
|
+
` "pinia": "^2.1.7"`,
|
|
290
|
+
` }`,
|
|
291
|
+
`=======`,
|
|
292
|
+
` "dependencies": {`,
|
|
293
|
+
` "vue": "^3.4.21",`,
|
|
294
|
+
` "pinia": "^2.1.7"`,
|
|
295
|
+
` }`,
|
|
296
|
+
`>>>>>>> theirs`,
|
|
297
|
+
].join("\n"),
|
|
298
|
+
expectedType: "value_only_change",
|
|
299
|
+
expectedResolved: true,
|
|
300
|
+
options: { minConfidence: "medium" },
|
|
301
|
+
};
|
|
302
|
+
// ─── Semantic — generated_file ──────────────────────────────
|
|
303
|
+
const F13 = {
|
|
304
|
+
id: "F13",
|
|
305
|
+
// hash/version/URL = tokens volatiles → value_only_change (avant le reclassement generated_file)
|
|
306
|
+
// generated_file n'est déclenché que sur les hunks complex — ici le moteur détecte
|
|
307
|
+
// d'abord value_only_change (tous les tokens différents sont des volatils)
|
|
308
|
+
description: "value_only_change — package-lock.json : version bump + hash (diff2)",
|
|
309
|
+
filePath: "package-lock.json",
|
|
310
|
+
category: "semantic",
|
|
311
|
+
input: [
|
|
312
|
+
`<<<<<<< ours`,
|
|
313
|
+
` "node_modules/typescript": {`,
|
|
314
|
+
` "version": "5.3.3",`,
|
|
315
|
+
` "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",`,
|
|
316
|
+
` "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oqEnVA=="`,
|
|
317
|
+
` }`,
|
|
318
|
+
`=======`,
|
|
319
|
+
` "node_modules/typescript": {`,
|
|
320
|
+
` "version": "5.4.5",`,
|
|
321
|
+
` "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",`,
|
|
322
|
+
` "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqZ0ytsUoiWZ2SDcTib8w=="`,
|
|
323
|
+
` }`,
|
|
324
|
+
`>>>>>>> theirs`,
|
|
325
|
+
].join("\n"),
|
|
326
|
+
expectedType: "value_only_change",
|
|
327
|
+
expectedResolved: true,
|
|
328
|
+
options: { minConfidence: "medium" },
|
|
329
|
+
};
|
|
330
|
+
const F14 = {
|
|
331
|
+
id: "F14",
|
|
332
|
+
// build/manifest.json avec structure identique, hashes différents → value_only_change
|
|
333
|
+
// Le reclassement generated_file ne se fait que depuis complex (sans base, le
|
|
334
|
+
// résolveur détecte ici des tokens volatils → value_only_change en priorité)
|
|
335
|
+
description: "generated_file — build/manifest.json : reclassifié, résolu via theirs",
|
|
336
|
+
filePath: "public/build/manifest.json",
|
|
337
|
+
category: "semantic",
|
|
338
|
+
input: [
|
|
339
|
+
`<<<<<<< ours`,
|
|
340
|
+
`{"/js/app.js": "/js/app.abc123.js", "/css/app.css": "/css/app.def456.css"}`,
|
|
341
|
+
`||||||| base`,
|
|
342
|
+
`{"/js/app.js": "/js/app.aaa000.js", "/css/app.css": "/css/app.aaa000.css"}`,
|
|
343
|
+
`=======`,
|
|
344
|
+
`{"/js/app.js": "/js/app.xyz789.js", "/css/app.css": "/css/app.uvw012.css"}`,
|
|
345
|
+
`>>>>>>> theirs`,
|
|
346
|
+
].join("\n"),
|
|
347
|
+
// diff3 + les deux côtés changent + tokens non-volatils (clés) → complex → generated_file
|
|
348
|
+
expectedType: "generated_file",
|
|
349
|
+
expectedResolved: true,
|
|
350
|
+
};
|
|
351
|
+
// ─── Format-aware — JSON sémantique ────────────────────────
|
|
352
|
+
const F15 = {
|
|
353
|
+
id: "F15",
|
|
354
|
+
description: "format-aware JSON — dépendances ajoutées des deux côtés (fichier entier)",
|
|
355
|
+
filePath: "config.json",
|
|
356
|
+
category: "format-aware",
|
|
357
|
+
input: [
|
|
358
|
+
`<<<<<<< ours`,
|
|
359
|
+
`{`,
|
|
360
|
+
` "name": "my-app",`,
|
|
361
|
+
` "version": "1.0.0",`,
|
|
362
|
+
` "features": ["auth", "logging"]`,
|
|
363
|
+
`}`,
|
|
364
|
+
`||||||| base`,
|
|
365
|
+
`{`,
|
|
366
|
+
` "name": "my-app",`,
|
|
367
|
+
` "version": "1.0.0",`,
|
|
368
|
+
` "features": ["auth"]`,
|
|
369
|
+
`}`,
|
|
370
|
+
`=======`,
|
|
371
|
+
`{`,
|
|
372
|
+
` "name": "my-app",`,
|
|
373
|
+
` "version": "1.0.0",`,
|
|
374
|
+
` "features": ["auth"],`,
|
|
375
|
+
` "theme": "dark"`,
|
|
376
|
+
`}`,
|
|
377
|
+
`>>>>>>> theirs`,
|
|
378
|
+
].join("\n"),
|
|
379
|
+
// JSON resolver tenté en premier, peut échouer sur les tableaux → textuel prend le relais
|
|
380
|
+
expectedType: "one_side_change",
|
|
381
|
+
expectedResolved: true,
|
|
382
|
+
};
|
|
383
|
+
// ─── Format-aware — Markdown section-aware ─────────────────
|
|
384
|
+
const F16 = {
|
|
385
|
+
id: "F16",
|
|
386
|
+
// v1.4 — Le résolveur Markdown merge maintenant les listes à puces en union.
|
|
387
|
+
// theirs a ajouté "- fix: memory leak in session handler" dans [2.1.0].
|
|
388
|
+
// Le merge bullet-list produit: ours items ∪ theirs items → résolu automatiquement.
|
|
389
|
+
description: "format-aware Markdown — bullet-list merge dans une section (diff2, résolu en v1.4)",
|
|
390
|
+
filePath: "CHANGELOG.md",
|
|
391
|
+
category: "format-aware",
|
|
392
|
+
input: [
|
|
393
|
+
`<<<<<<< ours`,
|
|
394
|
+
`# Changelog`,
|
|
395
|
+
``,
|
|
396
|
+
`## [2.1.0] - 2025-01-15`,
|
|
397
|
+
``,
|
|
398
|
+
`- feat: new authentication flow`,
|
|
399
|
+
``,
|
|
400
|
+
`## [2.0.0] - 2024-12-01`,
|
|
401
|
+
``,
|
|
402
|
+
`- Initial release`,
|
|
403
|
+
`=======`,
|
|
404
|
+
`# Changelog`,
|
|
405
|
+
``,
|
|
406
|
+
`## [2.1.0] - 2025-01-15`,
|
|
407
|
+
``,
|
|
408
|
+
`- feat: new authentication flow`,
|
|
409
|
+
`- fix: memory leak in session handler`,
|
|
410
|
+
``,
|
|
411
|
+
`## [2.0.0] - 2024-12-01`,
|
|
412
|
+
``,
|
|
413
|
+
`- Initial release`,
|
|
414
|
+
`>>>>>>> theirs`,
|
|
415
|
+
].join("\n"),
|
|
416
|
+
expectedType: "complex", // Le type textuel reste complex (pas de base diff3)
|
|
417
|
+
expectedResolved: true, // v1.4 : bullet-list merge résout ce cas
|
|
418
|
+
expectedOutput: undefined, // Contenu vérifié dans les tests Markdown dédiés
|
|
419
|
+
};
|
|
420
|
+
// ─── Complex — résolution manuelle requise ──────────────────
|
|
421
|
+
const F17 = {
|
|
422
|
+
id: "F17",
|
|
423
|
+
description: "complex — deux branches modifient la même fonction différemment",
|
|
424
|
+
filePath: "src/auth/session.ts",
|
|
425
|
+
category: "complex",
|
|
426
|
+
input: [
|
|
427
|
+
`<<<<<<< ours`,
|
|
428
|
+
`export function createSession(userId: string): Session {`,
|
|
429
|
+
` const token = generateSecureToken(32);`,
|
|
430
|
+
` const expiresAt = new Date(Date.now() + 7 * 24 * 3600 * 1000);`,
|
|
431
|
+
` return { userId, token, expiresAt, createdAt: new Date() };`,
|
|
432
|
+
`}`,
|
|
433
|
+
`||||||| base`,
|
|
434
|
+
`export function createSession(userId: string): Session {`,
|
|
435
|
+
` const token = generateToken();`,
|
|
436
|
+
` return { userId, token };`,
|
|
437
|
+
`}`,
|
|
438
|
+
`=======`,
|
|
439
|
+
`export function createSession(userId: string, options: SessionOptions = {}): Session {`,
|
|
440
|
+
` const token = generateToken();`,
|
|
441
|
+
` const ttl = options.ttl ?? DEFAULT_TTL;`,
|
|
442
|
+
` return { userId, token, ttl };`,
|
|
443
|
+
`}`,
|
|
444
|
+
`>>>>>>> theirs`,
|
|
445
|
+
].join("\n"),
|
|
446
|
+
expectedType: "complex",
|
|
447
|
+
expectedResolved: false,
|
|
448
|
+
expectedOutput: null,
|
|
449
|
+
};
|
|
450
|
+
const F18 = {
|
|
451
|
+
id: "F18",
|
|
452
|
+
// v1.4 : les deux branches ont uniquement inséré des gardes différentes
|
|
453
|
+
// sans supprimer de lignes de la base → insertion_at_boundary résout par union.
|
|
454
|
+
// Résultat : [case block] + [cart-full guard] + [dedup guard] + [return] + [}]
|
|
455
|
+
description: "insertion_at_boundary — gardes additives dans un reducer (diff3)",
|
|
456
|
+
filePath: "src/store/cart.ts",
|
|
457
|
+
category: "structural",
|
|
458
|
+
input: [
|
|
459
|
+
`<<<<<<< ours`,
|
|
460
|
+
`case "ADD_ITEM": {`,
|
|
461
|
+
` if (state.items.length >= MAX_ITEMS) throw new Error("Cart full");`,
|
|
462
|
+
` return { ...state, items: [...state.items, action.item] };`,
|
|
463
|
+
`}`,
|
|
464
|
+
`||||||| base`,
|
|
465
|
+
`case "ADD_ITEM": {`,
|
|
466
|
+
` return { ...state, items: [...state.items, action.item] };`,
|
|
467
|
+
`}`,
|
|
468
|
+
`=======`,
|
|
469
|
+
`case "ADD_ITEM": {`,
|
|
470
|
+
` const existing = state.items.find(i => i.id === action.item.id);`,
|
|
471
|
+
` if (existing) return { ...state };`,
|
|
472
|
+
` return { ...state, items: [...state.items, action.item] };`,
|
|
473
|
+
`}`,
|
|
474
|
+
`>>>>>>> theirs`,
|
|
475
|
+
].join("\n"),
|
|
476
|
+
expectedType: "insertion_at_boundary",
|
|
477
|
+
expectedResolved: true,
|
|
478
|
+
};
|
|
479
|
+
// ─── Edge cases ────────────────────────────────────────────
|
|
480
|
+
const F19 = {
|
|
481
|
+
id: "F19",
|
|
482
|
+
description: "delete_no_change (diff2) — ours supprime un bloc (confiance medium)",
|
|
483
|
+
filePath: "src/legacy/adapter.ts",
|
|
484
|
+
category: "structural",
|
|
485
|
+
input: [
|
|
486
|
+
`<<<<<<< ours`,
|
|
487
|
+
`=======`,
|
|
488
|
+
`// @deprecated — migrated to new API`,
|
|
489
|
+
`export function legacyAdapter(data: any) {`,
|
|
490
|
+
` return { ...data, _migrated: false };`,
|
|
491
|
+
`}`,
|
|
492
|
+
`>>>>>>> theirs`,
|
|
493
|
+
].join("\n"),
|
|
494
|
+
expectedType: "delete_no_change",
|
|
495
|
+
expectedResolved: true,
|
|
496
|
+
options: { minConfidence: "medium" },
|
|
497
|
+
};
|
|
498
|
+
const F20 = {
|
|
499
|
+
id: "F20",
|
|
500
|
+
description: "value_only_change rejeté — trop de tokens non-volatiles (reste complex)",
|
|
501
|
+
filePath: "src/config/defaults.ts",
|
|
502
|
+
category: "complex",
|
|
503
|
+
input: [
|
|
504
|
+
`<<<<<<< ours`,
|
|
505
|
+
`export const CONFIG = {`,
|
|
506
|
+
` maxRetries: 5,`,
|
|
507
|
+
` timeout: 30000,`,
|
|
508
|
+
` baseUrl: "https://api.prod.example.com",`,
|
|
509
|
+
` debug: false,`,
|
|
510
|
+
` logLevel: "warn",`,
|
|
511
|
+
`};`,
|
|
512
|
+
`=======`,
|
|
513
|
+
`export const CONFIG = {`,
|
|
514
|
+
` maxRetries: 3,`,
|
|
515
|
+
` timeout: 10000,`,
|
|
516
|
+
` baseUrl: "https://api.staging.example.com",`,
|
|
517
|
+
` debug: true,`,
|
|
518
|
+
` logLevel: "debug",`,
|
|
519
|
+
`};`,
|
|
520
|
+
`>>>>>>> theirs`,
|
|
521
|
+
].join("\n"),
|
|
522
|
+
expectedType: "complex",
|
|
523
|
+
expectedResolved: false,
|
|
524
|
+
expectedOutput: null,
|
|
525
|
+
};
|
|
526
|
+
// ─── Export ─────────────────────────────────────────────────
|
|
527
|
+
export const CORPUS = [
|
|
528
|
+
F01, F02, F03, F04, F05,
|
|
529
|
+
F06, F07, F08, F09, F10,
|
|
530
|
+
F11, F12, F13, F14, F15,
|
|
531
|
+
F16, F17, F18, F19, F20,
|
|
532
|
+
];
|
|
533
|
+
/** Résumé par catégorie */
|
|
534
|
+
export const CORPUS_CATEGORIES = {
|
|
535
|
+
trivial: CORPUS.filter(f => f.category === "trivial"),
|
|
536
|
+
structural: CORPUS.filter(f => f.category === "structural"),
|
|
537
|
+
semantic: CORPUS.filter(f => f.category === "semantic"),
|
|
538
|
+
"format-aware": CORPUS.filter(f => f.category === "format-aware"),
|
|
539
|
+
complex: CORPUS.filter(f => f.category === "complex"),
|
|
540
|
+
};
|
|
541
|
+
//# sourceMappingURL=corpus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus.js","sourceRoot":"","sources":["../../src/__tests__/corpus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWand — Tests sur le corpus de référence (Phase 7.5)
|
|
3
|
+
*
|
|
4
|
+
* Ce fichier sert à la fois de suite de régression (chaque fixture doit
|
|
5
|
+
* continuer à produire le résultat attendu) et de générateur de métriques
|
|
6
|
+
* (taux de résolution par type, par catégorie, faux positifs / négatifs).
|
|
7
|
+
*
|
|
8
|
+
* ## Métriques produites
|
|
9
|
+
*
|
|
10
|
+
* - Taux global d'auto-résolution
|
|
11
|
+
* - Taux par ConflictType
|
|
12
|
+
* - Faux positifs : fixture avec expectedResolved=false mais résolue
|
|
13
|
+
* - Faux négatifs : fixture avec expectedResolved=true mais non résolue
|
|
14
|
+
* - Score de confiance moyen par type
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=corpus.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/corpus.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|