@gitwand/core 2.3.0 → 2.5.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/dist/__tests__/corpus.d.ts.map +1 -1
- package/dist/__tests__/corpus.js +377 -0
- package/dist/__tests__/corpus.js.map +1 -1
- package/dist/__tests__/patterns/complex.test.d.ts +9 -0
- package/dist/__tests__/patterns/complex.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/complex.test.js +198 -0
- package/dist/__tests__/patterns/complex.test.js.map +1 -0
- package/dist/__tests__/patterns/delete-no-change.test.d.ts +11 -0
- package/dist/__tests__/patterns/delete-no-change.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/delete-no-change.test.js +178 -0
- package/dist/__tests__/patterns/delete-no-change.test.js.map +1 -0
- package/dist/__tests__/patterns/llm-proposed.test.d.ts +10 -0
- package/dist/__tests__/patterns/llm-proposed.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/llm-proposed.test.js +306 -0
- package/dist/__tests__/patterns/llm-proposed.test.js.map +1 -0
- package/dist/__tests__/patterns/non-overlapping.test.d.ts +11 -0
- package/dist/__tests__/patterns/non-overlapping.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/non-overlapping.test.js +240 -0
- package/dist/__tests__/patterns/non-overlapping.test.js.map +1 -0
- package/dist/__tests__/patterns/one-side-change.test.d.ts +10 -0
- package/dist/__tests__/patterns/one-side-change.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/one-side-change.test.js +191 -0
- package/dist/__tests__/patterns/one-side-change.test.js.map +1 -0
- package/dist/__tests__/patterns/same-change.test.d.ts +9 -0
- package/dist/__tests__/patterns/same-change.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/same-change.test.js +173 -0
- package/dist/__tests__/patterns/same-change.test.js.map +1 -0
- package/dist/__tests__/patterns/value-only-change.test.d.ts +11 -0
- package/dist/__tests__/patterns/value-only-change.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/value-only-change.test.js +159 -0
- package/dist/__tests__/patterns/value-only-change.test.js.map +1 -0
- package/dist/__tests__/patterns/whitespace-only.test.d.ts +10 -0
- package/dist/__tests__/patterns/whitespace-only.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/whitespace-only.test.js +177 -0
- package/dist/__tests__/patterns/whitespace-only.test.js.map +1 -0
- package/dist/__tests__/resolvers/css.test.d.ts +12 -0
- package/dist/__tests__/resolvers/css.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/css.test.js +171 -0
- package/dist/__tests__/resolvers/css.test.js.map +1 -0
- package/dist/__tests__/resolvers/imports.test.d.ts +12 -0
- package/dist/__tests__/resolvers/imports.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/imports.test.js +135 -0
- package/dist/__tests__/resolvers/imports.test.js.map +1 -0
- package/dist/__tests__/resolvers/json.test.d.ts +12 -0
- package/dist/__tests__/resolvers/json.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/json.test.js +184 -0
- package/dist/__tests__/resolvers/json.test.js.map +1 -0
- package/dist/__tests__/resolvers/lockfile-npm.test.d.ts +12 -0
- package/dist/__tests__/resolvers/lockfile-npm.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/lockfile-npm.test.js +187 -0
- package/dist/__tests__/resolvers/lockfile-npm.test.js.map +1 -0
- package/dist/__tests__/resolvers/lockfile-pnpm.test.d.ts +12 -0
- package/dist/__tests__/resolvers/lockfile-pnpm.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/lockfile-pnpm.test.js +175 -0
- package/dist/__tests__/resolvers/lockfile-pnpm.test.js.map +1 -0
- package/dist/__tests__/resolvers/lockfile-yarn.test.d.ts +12 -0
- package/dist/__tests__/resolvers/lockfile-yarn.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/lockfile-yarn.test.js +165 -0
- package/dist/__tests__/resolvers/lockfile-yarn.test.js.map +1 -0
- package/dist/__tests__/resolvers/markdown.test.d.ts +12 -0
- package/dist/__tests__/resolvers/markdown.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/markdown.test.js +188 -0
- package/dist/__tests__/resolvers/markdown.test.js.map +1 -0
- package/dist/__tests__/resolvers/vue.test.d.ts +12 -0
- package/dist/__tests__/resolvers/vue.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/vue.test.js +225 -0
- package/dist/__tests__/resolvers/vue.test.js.map +1 -0
- package/dist/__tests__/resolvers/yaml.test.d.ts +12 -0
- package/dist/__tests__/resolvers/yaml.test.d.ts.map +1 -0
- package/dist/__tests__/resolvers/yaml.test.js +203 -0
- package/dist/__tests__/resolvers/yaml.test.js.map +1 -0
- package/dist/__tests__/v2-core-scenarios.test.d.ts +35 -0
- package/dist/__tests__/v2-core-scenarios.test.d.ts.map +1 -0
- package/dist/__tests__/v2-core-scenarios.test.js +692 -0
- package/dist/__tests__/v2-core-scenarios.test.js.map +1 -0
- package/dist/__tests__/validation-parse-tree.test.d.ts +15 -0
- package/dist/__tests__/validation-parse-tree.test.d.ts.map +1 -0
- package/dist/__tests__/validation-parse-tree.test.js +243 -0
- package/dist/__tests__/validation-parse-tree.test.js.map +1 -0
- package/dist/classifier.d.ts.map +1 -1
- package/dist/classifier.js +3 -0
- package/dist/classifier.js.map +1 -1
- package/dist/config.d.ts +54 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +42 -0
- package/dist/config.js.map +1 -1
- package/dist/diff/index.d.ts.map +1 -1
- package/dist/diff/index.js +1 -3
- package/dist/diff/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/patterns/llm-proposed.d.ts +8 -0
- package/dist/patterns/llm-proposed.d.ts.map +1 -0
- package/dist/patterns/llm-proposed.js +66 -0
- package/dist/patterns/llm-proposed.js.map +1 -0
- package/dist/patterns/utils.d.ts +8 -7
- package/dist/patterns/utils.d.ts.map +1 -1
- package/dist/patterns/utils.js +13 -12
- package/dist/patterns/utils.js.map +1 -1
- package/dist/resolver/adapters/strict-node.d.ts +32 -0
- package/dist/resolver/adapters/strict-node.d.ts.map +1 -0
- package/dist/resolver/adapters/strict-node.js +117 -0
- package/dist/resolver/adapters/strict-node.js.map +1 -0
- package/dist/resolver/index.d.ts +20 -1
- package/dist/resolver/index.d.ts.map +1 -1
- package/dist/resolver/index.js +106 -5
- package/dist/resolver/index.js.map +1 -1
- package/dist/resolver/llm-pipeline.d.ts +33 -0
- package/dist/resolver/llm-pipeline.d.ts.map +1 -0
- package/dist/resolver/llm-pipeline.js +218 -0
- package/dist/resolver/llm-pipeline.js.map +1 -0
- package/dist/resolver/policy.d.ts.map +1 -1
- package/dist/resolver/policy.js +5 -0
- package/dist/resolver/policy.js.map +1 -1
- package/dist/resolver/validate-parse-tree.d.ts +52 -0
- package/dist/resolver/validate-parse-tree.d.ts.map +1 -0
- package/dist/resolver/validate-parse-tree.js +87 -0
- package/dist/resolver/validate-parse-tree.js.map +1 -0
- package/dist/resolver/validate-strict.d.ts +27 -0
- package/dist/resolver/validate-strict.d.ts.map +1 -0
- package/dist/resolver/validate-strict.js +41 -0
- package/dist/resolver/validate-strict.js.map +1 -0
- package/dist/resolver/validation.d.ts.map +1 -1
- package/dist/resolver/validation.js +15 -1
- package/dist/resolver/validation.js.map +1 -1
- package/dist/resolvers/dispatcher.d.ts.map +1 -1
- package/dist/resolvers/dispatcher.js.map +1 -1
- package/dist/resolvers/llm-fallback.d.ts +41 -0
- package/dist/resolvers/llm-fallback.d.ts.map +1 -0
- package/dist/resolvers/llm-fallback.js +231 -0
- package/dist/resolvers/llm-fallback.js.map +1 -0
- package/dist/types.d.ts +183 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests du resolver YAML (GitWand)
|
|
3
|
+
*
|
|
4
|
+
* Fixtures :
|
|
5
|
+
* F1 — clé ajoutée d'un seul côté
|
|
6
|
+
* F2 — même clé modifiée des deux côtés → conflit non résolvable
|
|
7
|
+
* F3 — YAML minimal (1 ligne)
|
|
8
|
+
* F4 — conflit dans values.yaml Helm (clés indépendantes)
|
|
9
|
+
* F5 — conflit dans un workflow GitHub Actions
|
|
10
|
+
*/
|
|
11
|
+
import { describe, it, expect } from "vitest";
|
|
12
|
+
import { resolve } from "../../resolver.js";
|
|
13
|
+
// ─── F1 — clé ajoutée d'un seul côté ─────────────────────────────────────────
|
|
14
|
+
describe("F1 — YAML : clé ajoutée d'un seul côté (diff3)", () => {
|
|
15
|
+
const input = [
|
|
16
|
+
`<<<<<<< ours`,
|
|
17
|
+
`app:`,
|
|
18
|
+
` name: my-app`,
|
|
19
|
+
` version: 1.0.0`,
|
|
20
|
+
` debug: true`,
|
|
21
|
+
`||||||| base`,
|
|
22
|
+
`app:`,
|
|
23
|
+
` name: my-app`,
|
|
24
|
+
` version: 1.0.0`,
|
|
25
|
+
`=======`,
|
|
26
|
+
`app:`,
|
|
27
|
+
` name: my-app`,
|
|
28
|
+
` version: 1.0.0`,
|
|
29
|
+
`>>>>>>> theirs`,
|
|
30
|
+
].join("\n");
|
|
31
|
+
it("auto-résout via le resolver yaml", () => {
|
|
32
|
+
const result = resolve(input, "config.yaml");
|
|
33
|
+
expect(result.stats.autoResolved).toBe(1);
|
|
34
|
+
});
|
|
35
|
+
it("le résultat contient la clé ajoutée", () => {
|
|
36
|
+
const result = resolve(input, "config.yaml");
|
|
37
|
+
expect(result.mergedContent).toContain("debug");
|
|
38
|
+
});
|
|
39
|
+
it("la raison mentionne [yaml]", () => {
|
|
40
|
+
const result = resolve(input, "config.yaml");
|
|
41
|
+
expect(result.resolutions[0].resolutionReason).toMatch(/\[yaml\]/i);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
// ─── F2 — même clé modifiée des deux côtés ────────────────────────────────────
|
|
45
|
+
describe("F2 — YAML : même clé modifiée des deux côtés → conflit non résolvable", () => {
|
|
46
|
+
const input = [
|
|
47
|
+
`<<<<<<< ours`,
|
|
48
|
+
`app:`,
|
|
49
|
+
` name: my-app`,
|
|
50
|
+
` port: 8080`,
|
|
51
|
+
`||||||| base`,
|
|
52
|
+
`app:`,
|
|
53
|
+
` name: my-app`,
|
|
54
|
+
` port: 3000`,
|
|
55
|
+
`=======`,
|
|
56
|
+
`app:`,
|
|
57
|
+
` name: my-app`,
|
|
58
|
+
` port: 9090`,
|
|
59
|
+
`>>>>>>> theirs`,
|
|
60
|
+
].join("\n");
|
|
61
|
+
it("ne lève pas d'exception", () => {
|
|
62
|
+
expect(() => resolve(input, "config.yaml")).not.toThrow();
|
|
63
|
+
});
|
|
64
|
+
it("la raison mentionne [yaml]", () => {
|
|
65
|
+
const result = resolve(input, "config.yaml");
|
|
66
|
+
expect(result.resolutions[0].resolutionReason).toMatch(/\[yaml\]/i);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
// ─── F3 — YAML minimal ───────────────────────────────────────────────────────
|
|
70
|
+
describe("F3 — YAML minimal : ne plante pas", () => {
|
|
71
|
+
const input = [
|
|
72
|
+
`<<<<<<< ours`,
|
|
73
|
+
`key: value-ours`,
|
|
74
|
+
`||||||| base`,
|
|
75
|
+
`key: value-base`,
|
|
76
|
+
`=======`,
|
|
77
|
+
`key: value-theirs`,
|
|
78
|
+
`>>>>>>> theirs`,
|
|
79
|
+
].join("\n");
|
|
80
|
+
it("ne lève pas d'exception", () => {
|
|
81
|
+
expect(() => resolve(input, "minimal.yaml")).not.toThrow();
|
|
82
|
+
});
|
|
83
|
+
it("produit un résultat avec au moins un hunk", () => {
|
|
84
|
+
const result = resolve(input, "minimal.yaml");
|
|
85
|
+
expect(result.hunks.length).toBeGreaterThanOrEqual(1);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
// ─── F4 — conflit dans values.yaml Helm (clés indépendantes) ─────────────────
|
|
89
|
+
describe("F4 — values.yaml Helm : merge de clés indépendantes (diff3)", () => {
|
|
90
|
+
const input = [
|
|
91
|
+
`<<<<<<< ours`,
|
|
92
|
+
`replicaCount: 2`,
|
|
93
|
+
``,
|
|
94
|
+
`image:`,
|
|
95
|
+
` repository: my-registry/my-app`,
|
|
96
|
+
` tag: v1.2.0`,
|
|
97
|
+
``,
|
|
98
|
+
`resources:`,
|
|
99
|
+
` limits:`,
|
|
100
|
+
` cpu: 500m`,
|
|
101
|
+
` memory: 512Mi`,
|
|
102
|
+
`||||||| base`,
|
|
103
|
+
`replicaCount: 1`,
|
|
104
|
+
``,
|
|
105
|
+
`image:`,
|
|
106
|
+
` repository: my-registry/my-app`,
|
|
107
|
+
` tag: v1.1.0`,
|
|
108
|
+
`||||||| base`,
|
|
109
|
+
`replicaCount: 1`,
|
|
110
|
+
``,
|
|
111
|
+
`image:`,
|
|
112
|
+
` repository: my-registry/my-app`,
|
|
113
|
+
` tag: v1.1.0`,
|
|
114
|
+
`=======`,
|
|
115
|
+
`replicaCount: 1`,
|
|
116
|
+
``,
|
|
117
|
+
`image:`,
|
|
118
|
+
` repository: my-registry/my-app`,
|
|
119
|
+
` tag: v1.2.0`,
|
|
120
|
+
``,
|
|
121
|
+
`service:`,
|
|
122
|
+
` type: ClusterIP`,
|
|
123
|
+
` port: 80`,
|
|
124
|
+
`>>>>>>> theirs`,
|
|
125
|
+
].join("\n");
|
|
126
|
+
it("ne lève pas d'exception", () => {
|
|
127
|
+
expect(() => resolve(input, "values.yaml")).not.toThrow();
|
|
128
|
+
});
|
|
129
|
+
it("la raison mentionne [yaml]", () => {
|
|
130
|
+
const result = resolve(input, "values.yaml");
|
|
131
|
+
expect(result.resolutions[0].resolutionReason).toMatch(/\[yaml\]/i);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe("F4b — values.yml Helm simple : merge de clés indépendantes (diff3)", () => {
|
|
135
|
+
const input = [
|
|
136
|
+
`<<<<<<< ours`,
|
|
137
|
+
`replicaCount: 2`,
|
|
138
|
+
`image:`,
|
|
139
|
+
` repository: my-registry/my-app`,
|
|
140
|
+
` tag: v1.2.0`,
|
|
141
|
+
`resources:`,
|
|
142
|
+
` limits:`,
|
|
143
|
+
` cpu: 500m`,
|
|
144
|
+
`||||||| base`,
|
|
145
|
+
`replicaCount: 1`,
|
|
146
|
+
`image:`,
|
|
147
|
+
` repository: my-registry/my-app`,
|
|
148
|
+
` tag: v1.1.0`,
|
|
149
|
+
`=======`,
|
|
150
|
+
`replicaCount: 1`,
|
|
151
|
+
`image:`,
|
|
152
|
+
` repository: my-registry/my-app`,
|
|
153
|
+
` tag: v1.2.0`,
|
|
154
|
+
`service:`,
|
|
155
|
+
` type: ClusterIP`,
|
|
156
|
+
`>>>>>>> theirs`,
|
|
157
|
+
].join("\n");
|
|
158
|
+
it("auto-résout ou ne plante pas", () => {
|
|
159
|
+
expect(() => resolve(input, "values.yml")).not.toThrow();
|
|
160
|
+
});
|
|
161
|
+
it("la raison mentionne [yaml]", () => {
|
|
162
|
+
const result = resolve(input, "values.yml");
|
|
163
|
+
expect(result.resolutions[0].resolutionReason).toMatch(/\[yaml\]/i);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
// ─── F5 — clé ajoutée d'un seul côté (conflit YAML réel nécessitant le resolver) ─
|
|
167
|
+
describe("F5 — YAML : clé de config ajoutée d'un seul côté (diff3)", () => {
|
|
168
|
+
// Ours ajoute `cache:`, theirs n'a pas changé la base → one_side_change trop simple,
|
|
169
|
+
// on utilise deux clés imbriquées différentes pour forcer le resolver YAML.
|
|
170
|
+
const input = [
|
|
171
|
+
`<<<<<<< ours`,
|
|
172
|
+
`database:`,
|
|
173
|
+
` host: localhost`,
|
|
174
|
+
` port: 5432`,
|
|
175
|
+
` name: mydb`,
|
|
176
|
+
` pool: 10`,
|
|
177
|
+
`||||||| base`,
|
|
178
|
+
`database:`,
|
|
179
|
+
` host: localhost`,
|
|
180
|
+
` port: 5432`,
|
|
181
|
+
` name: mydb`,
|
|
182
|
+
`=======`,
|
|
183
|
+
`database:`,
|
|
184
|
+
` host: localhost`,
|
|
185
|
+
` port: 5432`,
|
|
186
|
+
` name: mydb`,
|
|
187
|
+
` timeout: 30`,
|
|
188
|
+
`>>>>>>> theirs`,
|
|
189
|
+
].join("\n");
|
|
190
|
+
it("ne lève pas d'exception", () => {
|
|
191
|
+
expect(() => resolve(input, "config.yml")).not.toThrow();
|
|
192
|
+
});
|
|
193
|
+
it("auto-résout (deux ajouts indépendants)", () => {
|
|
194
|
+
const result = resolve(input, "config.yml");
|
|
195
|
+
expect(result.stats.autoResolved).toBe(1);
|
|
196
|
+
});
|
|
197
|
+
it("le résultat contient les deux nouvelles clés", () => {
|
|
198
|
+
const result = resolve(input, "config.yml");
|
|
199
|
+
expect(result.mergedContent).toContain("pool: 10");
|
|
200
|
+
expect(result.mergedContent).toContain("timeout: 30");
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
//# sourceMappingURL=yaml.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.test.js","sourceRoot":"","sources":["../../../src/__tests__/resolvers/yaml.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests d'intégration "grandeur nature" v2.x — scénarios de régression
|
|
3
|
+
*
|
|
4
|
+
* Couvre les apports majeurs de chaque release mineure du moteur :
|
|
5
|
+
*
|
|
6
|
+
* v2.1 — Histogram diff & block-move detection
|
|
7
|
+
* · `same_change` (renommage a,b→x,y) isolé malgré des insertions adjacentes
|
|
8
|
+
* · `insertion_at_boundary` (multiply vs divide) résolu sans conflit
|
|
9
|
+
* · `detectBlockMove` détecte un déplacement de bloc
|
|
10
|
+
*
|
|
11
|
+
* v2.2 — Format profile registry + JSON Patch arrays
|
|
12
|
+
* · `package.json` /dependencies, /keywords, /scripts résolu via profil
|
|
13
|
+
* · `tsconfig.json` /include résolu via stratégie "set"
|
|
14
|
+
* · `disableFormatProfiles` rétablit le comportement v2.1
|
|
15
|
+
*
|
|
16
|
+
* v2.3 — Structural TypeScript merge (tree-sitter)
|
|
17
|
+
* · Deux branches ajoutent des fonctions TS différentes → merge structural
|
|
18
|
+
* · Conflit sur le corps d'une même fonction → structural retourne null
|
|
19
|
+
*
|
|
20
|
+
* v2.4 — Validation parse-tree post-merge & rétraction
|
|
21
|
+
* · parseTreeValid: true après résolution propre
|
|
22
|
+
* · parseTreeValid: false + rétraction sur fichier syntaxiquement cassé
|
|
23
|
+
* · parseTreeValid: null sur fichier non supporté (.json)
|
|
24
|
+
* · resolve() synchrone → parseTreeValid toujours null
|
|
25
|
+
*
|
|
26
|
+
* Convention de non-flakiness (héritée de grandeur-nature.test.ts) :
|
|
27
|
+
* Les assertions qui requièrent WASM sont gardées par
|
|
28
|
+
* `if (merged === null) return;` ou `if (!WASM) return;`
|
|
29
|
+
* afin que les tests restent verts en CI sans peer optionnels.
|
|
30
|
+
*
|
|
31
|
+
* Le contenu hardcodé correspond exactement aux fichiers créés dans
|
|
32
|
+
* `_tmp_split_scenario` par `setup-v2-scenarios.sh`.
|
|
33
|
+
*/
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=v2-core-scenarios.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-core-scenarios.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/v2-core-scenarios.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
|