@gitwand/core 2.0.1 → 2.2.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/README.md +58 -0
- package/dist/__tests__/bench.bench.js +39 -0
- package/dist/__tests__/bench.bench.js.map +1 -1
- package/dist/__tests__/corpus.d.ts.map +1 -1
- package/dist/__tests__/corpus.js +363 -0
- package/dist/__tests__/corpus.js.map +1 -1
- package/dist/__tests__/diff/block-move.test.d.ts +5 -0
- package/dist/__tests__/diff/block-move.test.d.ts.map +1 -0
- package/dist/__tests__/diff/block-move.test.js +132 -0
- package/dist/__tests__/diff/block-move.test.js.map +1 -0
- package/dist/__tests__/diff/histogram.test.d.ts +8 -0
- package/dist/__tests__/diff/histogram.test.d.ts.map +1 -0
- package/dist/__tests__/diff/histogram.test.js +150 -0
- package/dist/__tests__/diff/histogram.test.js.map +1 -0
- package/dist/__tests__/diff/parity.test.d.ts +17 -0
- package/dist/__tests__/diff/parity.test.d.ts.map +1 -0
- package/dist/__tests__/diff/parity.test.js +149 -0
- package/dist/__tests__/diff/parity.test.js.map +1 -0
- package/dist/__tests__/diff.test.js +6 -2
- package/dist/__tests__/diff.test.js.map +1 -1
- package/dist/__tests__/format-profiles/integration.test.d.ts +7 -0
- package/dist/__tests__/format-profiles/integration.test.d.ts.map +1 -0
- package/dist/__tests__/format-profiles/integration.test.js +193 -0
- package/dist/__tests__/format-profiles/integration.test.js.map +1 -0
- package/dist/__tests__/format-profiles/json-patch.test.d.ts +12 -0
- package/dist/__tests__/format-profiles/json-patch.test.d.ts.map +1 -0
- package/dist/__tests__/format-profiles/json-patch.test.js +222 -0
- package/dist/__tests__/format-profiles/json-patch.test.js.map +1 -0
- package/dist/__tests__/format-profiles/registry.test.d.ts +5 -0
- package/dist/__tests__/format-profiles/registry.test.d.ts.map +1 -0
- package/dist/__tests__/format-profiles/registry.test.js +124 -0
- package/dist/__tests__/format-profiles/registry.test.js.map +1 -0
- package/dist/__tests__/patterns/make-score.test.d.ts +9 -0
- package/dist/__tests__/patterns/make-score.test.d.ts.map +1 -0
- package/dist/__tests__/patterns/make-score.test.js +49 -0
- package/dist/__tests__/patterns/make-score.test.js.map +1 -0
- package/dist/diff/block-move.d.ts +53 -0
- package/dist/diff/block-move.d.ts.map +1 -0
- package/dist/diff/block-move.js +192 -0
- package/dist/diff/block-move.js.map +1 -0
- package/dist/diff/histogram.d.ts +45 -0
- package/dist/diff/histogram.d.ts.map +1 -0
- package/dist/diff/histogram.js +172 -0
- package/dist/diff/histogram.js.map +1 -0
- package/dist/diff/index.d.ts +30 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +47 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/lcs.d.ts +34 -0
- package/dist/diff/lcs.d.ts.map +1 -0
- package/dist/diff/lcs.js +184 -0
- package/dist/diff/lcs.js.map +1 -0
- package/dist/diff/shared.d.ts +54 -0
- package/dist/diff/shared.d.ts.map +1 -0
- package/dist/diff/shared.js +164 -0
- package/dist/diff/shared.js.map +1 -0
- package/dist/diff.d.ts +6 -65
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +6 -324
- package/dist/diff.js.map +1 -1
- package/dist/format-profiles/index.d.ts +34 -0
- package/dist/format-profiles/index.d.ts.map +1 -0
- package/dist/format-profiles/index.js +86 -0
- package/dist/format-profiles/index.js.map +1 -0
- package/dist/format-profiles/json-patch.d.ts +61 -0
- package/dist/format-profiles/json-patch.d.ts.map +1 -0
- package/dist/format-profiles/json-patch.js +269 -0
- package/dist/format-profiles/json-patch.js.map +1 -0
- package/dist/format-profiles/merge-strategies.d.ts +54 -0
- package/dist/format-profiles/merge-strategies.d.ts.map +1 -0
- package/dist/format-profiles/merge-strategies.js +156 -0
- package/dist/format-profiles/merge-strategies.js.map +1 -0
- package/dist/format-profiles/profiles/composer.d.ts +18 -0
- package/dist/format-profiles/profiles/composer.d.ts.map +1 -0
- package/dist/format-profiles/profiles/composer.js +45 -0
- package/dist/format-profiles/profiles/composer.js.map +1 -0
- package/dist/format-profiles/profiles/helm-values.d.ts +21 -0
- package/dist/format-profiles/profiles/helm-values.d.ts.map +1 -0
- package/dist/format-profiles/profiles/helm-values.js +40 -0
- package/dist/format-profiles/profiles/helm-values.js.map +1 -0
- package/dist/format-profiles/profiles/kubernetes.d.ts +22 -0
- package/dist/format-profiles/profiles/kubernetes.d.ts.map +1 -0
- package/dist/format-profiles/profiles/kubernetes.js +60 -0
- package/dist/format-profiles/profiles/kubernetes.js.map +1 -0
- package/dist/format-profiles/profiles/package-json.d.ts +18 -0
- package/dist/format-profiles/profiles/package-json.d.ts.map +1 -0
- package/dist/format-profiles/profiles/package-json.js +36 -0
- package/dist/format-profiles/profiles/package-json.js.map +1 -0
- package/dist/format-profiles/profiles/tsconfig.d.ts +21 -0
- package/dist/format-profiles/profiles/tsconfig.d.ts.map +1 -0
- package/dist/format-profiles/profiles/tsconfig.js +47 -0
- package/dist/format-profiles/profiles/tsconfig.js.map +1 -0
- package/dist/format-profiles/types.d.ts +67 -0
- package/dist/format-profiles/types.d.ts.map +1 -0
- package/dist/format-profiles/types.js +9 -0
- package/dist/format-profiles/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/patterns/insertion-at-boundary.d.ts.map +1 -1
- package/dist/patterns/insertion-at-boundary.js +15 -33
- package/dist/patterns/insertion-at-boundary.js.map +1 -1
- package/dist/patterns/utils.d.ts +11 -8
- package/dist/patterns/utils.d.ts.map +1 -1
- package/dist/patterns/utils.js +28 -10
- package/dist/patterns/utils.js.map +1 -1
- package/dist/resolver/format-dispatch.d.ts.map +1 -1
- package/dist/resolver/format-dispatch.js +3 -1
- package/dist/resolver/format-dispatch.js.map +1 -1
- package/dist/resolver/policy.d.ts.map +1 -1
- package/dist/resolver/policy.js +2 -0
- package/dist/resolver/policy.js.map +1 -1
- package/dist/resolvers/dispatcher.d.ts +5 -1
- package/dist/resolvers/dispatcher.d.ts.map +1 -1
- package/dist/resolvers/dispatcher.js +8 -3
- package/dist/resolvers/dispatcher.js.map +1 -1
- package/dist/resolvers/json.d.ts +11 -2
- package/dist/resolvers/json.d.ts.map +1 -1
- package/dist/resolvers/json.js +55 -7
- package/dist/resolvers/json.js.map +1 -1
- package/dist/resolvers/yaml.d.ts +8 -2
- package/dist/resolvers/yaml.d.ts.map +1 -1
- package/dist/resolvers/yaml.js +156 -2
- package/dist/resolvers/yaml.js.map +1 -1
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,9 @@ import { computeEffectivePolicy } from "./policy.js";
|
|
|
21
21
|
* tagué que le moteur principal sait router.
|
|
22
22
|
*/
|
|
23
23
|
export function dispatchFormatAware(hunk, filePath, options) {
|
|
24
|
-
const formatResult = tryFormatAwareResolve(hunk, filePath
|
|
24
|
+
const formatResult = tryFormatAwareResolve(hunk, filePath, {
|
|
25
|
+
disableFormatProfiles: options.disableFormatProfiles,
|
|
26
|
+
});
|
|
25
27
|
if (formatResult.resolverUsed === "none") {
|
|
26
28
|
return { status: "not-applicable", note: "" };
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-dispatch.js","sourceRoot":"","sources":["../../src/resolver/format-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAUrD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAkB,EAClB,QAAgB,EAChB,OAAiC;IAEjC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"format-dispatch.js","sourceRoot":"","sources":["../../src/resolver/format-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAUrD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAkB,EAClB,QAAgB,EAChB,OAAiC;IAEjC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE;QACzD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;KACrD,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAChC,sEAAsE;QACtE,kEAAkE;QAClE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;IAED,iEAAiE;IACjE,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnC,OAAO;gBACL,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE,+FAA+F;aACxG,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO;gBACL,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE,uEAAuE,MAAM,IAAI;aAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;AACxF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/resolver/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/resolver/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,cAAc,CAWpD,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKvD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAChC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,CAO5C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAChC,UAAU,CAIZ;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,MAAM,GACxB,YAAY,CAiCd"}
|
package/dist/resolver/policy.js
CHANGED
|
@@ -24,6 +24,8 @@ export const DEFAULT_OPTIONS = {
|
|
|
24
24
|
policy: DEFAULT_POLICY,
|
|
25
25
|
patternOverrides: {},
|
|
26
26
|
generatedFiles: [],
|
|
27
|
+
// v2.2 — profils de format actifs par défaut
|
|
28
|
+
disableFormatProfiles: false,
|
|
27
29
|
};
|
|
28
30
|
/** Ordre de confiance pour comparaison. */
|
|
29
31
|
export const CONFIDENCE_ORDER = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/resolver/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc,GAGf,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,iBAAiB,EAAE,IAAI;IACvB,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,cAAc;IACtB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/resolver/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,10 @@ export interface FormatResolveResult {
|
|
|
73
73
|
*
|
|
74
74
|
* @param hunk - Le hunk de conflit à résoudre
|
|
75
75
|
* @param filePath - Le chemin du fichier (pour déterminer le résolveur)
|
|
76
|
+
* @param opts - (v2.2) `disableFormatProfiles` désactive le hook FormatProfile
|
|
77
|
+
* dans les résolveurs JSON / YAML — comportement v2.1 strict.
|
|
76
78
|
*/
|
|
77
|
-
export declare function tryFormatAwareResolve(hunk: ConflictHunk, filePath: string
|
|
79
|
+
export declare function tryFormatAwareResolve(hunk: ConflictHunk, filePath: string, opts?: {
|
|
80
|
+
disableFormatProfiles?: boolean;
|
|
81
|
+
}): FormatResolveResult;
|
|
78
82
|
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/resolvers/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgBhD,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAID,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;CAC1K;AAID
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/resolvers/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgBhD,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAID,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;CAC1K;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,mBAAmB,CAoRrB"}
|
|
@@ -101,8 +101,13 @@ export function isDockerfile(filePath) {
|
|
|
101
101
|
*
|
|
102
102
|
* @param hunk - Le hunk de conflit à résoudre
|
|
103
103
|
* @param filePath - Le chemin du fichier (pour déterminer le résolveur)
|
|
104
|
+
* @param opts - (v2.2) `disableFormatProfiles` désactive le hook FormatProfile
|
|
105
|
+
* dans les résolveurs JSON / YAML — comportement v2.1 strict.
|
|
104
106
|
*/
|
|
105
|
-
export function tryFormatAwareResolve(hunk, filePath) {
|
|
107
|
+
export function tryFormatAwareResolve(hunk, filePath, opts) {
|
|
108
|
+
// v2.2 — si disableFormatProfiles, on coupe le filePath transmis aux
|
|
109
|
+
// résolveurs JSON/YAML, ce qui désactive leur lookup profil.
|
|
110
|
+
const profileFilePath = opts?.disableFormatProfiles ? undefined : filePath;
|
|
106
111
|
// ── Cargo.toml / Cargo.lock (avant JSON) ──────────────────
|
|
107
112
|
if (isCargoFile(filePath)) {
|
|
108
113
|
const result = tryResolveCargoConflict(filePath, hunk.baseLines, hunk.oursLines, hunk.theirsLines);
|
|
@@ -175,7 +180,7 @@ export function tryFormatAwareResolve(hunk, filePath) {
|
|
|
175
180
|
}
|
|
176
181
|
// ── JSON / JSONC ──────────────────────────────────────
|
|
177
182
|
if (isJsonFile(filePath)) {
|
|
178
|
-
const result = tryResolveJsonConflict(hunk.baseLines, hunk.oursLines, hunk.theirsLines);
|
|
183
|
+
const result = tryResolveJsonConflict(hunk.baseLines, hunk.oursLines, hunk.theirsLines, profileFilePath);
|
|
179
184
|
if (result.merged !== null) {
|
|
180
185
|
const mergedText = typeof result.merged === "string"
|
|
181
186
|
? result.merged
|
|
@@ -210,7 +215,7 @@ export function tryFormatAwareResolve(hunk, filePath) {
|
|
|
210
215
|
}
|
|
211
216
|
// ── YAML ──────────────────────────────────────────────
|
|
212
217
|
if (isYamlFile(filePath)) {
|
|
213
|
-
const result = tryResolveYamlConflict(hunk.baseLines, hunk.oursLines, hunk.theirsLines);
|
|
218
|
+
const result = tryResolveYamlConflict(hunk.baseLines, hunk.oursLines, hunk.theirsLines, profileFilePath);
|
|
214
219
|
if (result.mergedLines !== null) {
|
|
215
220
|
return {
|
|
216
221
|
lines: result.mergedLines,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/resolvers/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D,6DAA6D;AAE7D,8CAA8C;AAC9C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,8CAA8C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAgBD,6DAA6D;AAE7D
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/resolvers/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/resolvers/json.d.ts
CHANGED
|
@@ -11,13 +11,19 @@
|
|
|
11
11
|
* 3. Si tous les conflits de clés sont trivialement résolvables → merge
|
|
12
12
|
* 4. Sinon → retourner null (fallback textuel dans resolver.ts)
|
|
13
13
|
*
|
|
14
|
+
* v2.2 — Hook profil de format : si un FormatProfile est applicable au
|
|
15
|
+
* filePath, ses stratégies par path (set / ordered-list / merge-keys / opaque)
|
|
16
|
+
* routent vers mergeArrayAsSet ou mergeOrderedListViaPatch au lieu du fallback
|
|
17
|
+
* "tableau impossible à merger". Ouvre l'auto-résolution sur /dependencies,
|
|
18
|
+
* /scripts, tsconfig#/include, etc.
|
|
19
|
+
*
|
|
14
20
|
* Cas gérés :
|
|
15
21
|
* - Clé ajoutée des deux côtés avec valeurs différentes → conflit non résolvable
|
|
16
22
|
* - Clé ajoutée d'un seul côté → accepter l'ajout
|
|
17
23
|
* - Clé supprimée d'un seul côté, pas modifiée de l'autre → supprimer
|
|
18
24
|
* - Clé modifiée des deux côtés de la même façon → prendre la valeur
|
|
19
25
|
* - Clé modifiée des deux côtés différemment → conflit non résolvable
|
|
20
|
-
* - Merge récursif pour les objets imbriqués
|
|
26
|
+
* - Merge récursif pour les objets imbriqués (avec stratégie de profil par path)
|
|
21
27
|
*/
|
|
22
28
|
/** Résultat d'une fusion JSON */
|
|
23
29
|
export interface JsonMergeResult {
|
|
@@ -42,7 +48,10 @@ export declare function stripJsoncComments(text: string): string;
|
|
|
42
48
|
* @param baseLines - Lignes de la version base
|
|
43
49
|
* @param oursLines - Lignes de la version ours
|
|
44
50
|
* @param theirsLines - Lignes de la version theirs
|
|
51
|
+
* @param filePath - (v2.2) Chemin du fichier — utilisé pour résoudre un
|
|
52
|
+
* FormatProfile applicable. Optionnel : sans filePath,
|
|
53
|
+
* comportement identique à v2.1 (pas de profil consulté).
|
|
45
54
|
* @returns `JsonMergeResult` avec `merged !== null` si résolu, `null` sinon
|
|
46
55
|
*/
|
|
47
|
-
export declare function tryResolveJsonConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): JsonMergeResult;
|
|
56
|
+
export declare function tryResolveJsonConflict(baseLines: string[], oursLines: string[], theirsLines: string[], filePath?: string): JsonMergeResult;
|
|
48
57
|
//# sourceMappingURL=json.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/resolvers/json.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/resolvers/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsDvD;AAmPD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CAsGjB"}
|
package/dist/resolvers/json.js
CHANGED
|
@@ -11,14 +11,22 @@
|
|
|
11
11
|
* 3. Si tous les conflits de clés sont trivialement résolvables → merge
|
|
12
12
|
* 4. Sinon → retourner null (fallback textuel dans resolver.ts)
|
|
13
13
|
*
|
|
14
|
+
* v2.2 — Hook profil de format : si un FormatProfile est applicable au
|
|
15
|
+
* filePath, ses stratégies par path (set / ordered-list / merge-keys / opaque)
|
|
16
|
+
* routent vers mergeArrayAsSet ou mergeOrderedListViaPatch au lieu du fallback
|
|
17
|
+
* "tableau impossible à merger". Ouvre l'auto-résolution sur /dependencies,
|
|
18
|
+
* /scripts, tsconfig#/include, etc.
|
|
19
|
+
*
|
|
14
20
|
* Cas gérés :
|
|
15
21
|
* - Clé ajoutée des deux côtés avec valeurs différentes → conflit non résolvable
|
|
16
22
|
* - Clé ajoutée d'un seul côté → accepter l'ajout
|
|
17
23
|
* - Clé supprimée d'un seul côté, pas modifiée de l'autre → supprimer
|
|
18
24
|
* - Clé modifiée des deux côtés de la même façon → prendre la valeur
|
|
19
25
|
* - Clé modifiée des deux côtés différemment → conflit non résolvable
|
|
20
|
-
* - Merge récursif pour les objets imbriqués
|
|
26
|
+
* - Merge récursif pour les objets imbriqués (avec stratégie de profil par path)
|
|
21
27
|
*/
|
|
28
|
+
import { profileForFile, strategyForPath } from "../format-profiles/index.js";
|
|
29
|
+
import { applyStrategy } from "../format-profiles/merge-strategies.js";
|
|
22
30
|
// ─── Strip JSONC comments ─────────────────────────────────
|
|
23
31
|
/**
|
|
24
32
|
* Supprime les commentaires // et /* *\/ d'un fichier JSONC.
|
|
@@ -109,7 +117,7 @@ function jsonEqual(a, b) {
|
|
|
109
117
|
* Retourne `{ merged, resolvedKeys, unresolvedKeys }`.
|
|
110
118
|
* Si `merged === null`, au moins un conflit est non résolvable.
|
|
111
119
|
*/
|
|
112
|
-
function mergeObjects(base, ours, theirs) {
|
|
120
|
+
function mergeObjects(base, ours, theirs, profile = null, currentPath = "") {
|
|
113
121
|
const result = {};
|
|
114
122
|
let resolvedKeys = 0;
|
|
115
123
|
let unresolvedKeys = 0;
|
|
@@ -126,6 +134,9 @@ function mergeObjects(base, ours, theirs) {
|
|
|
126
134
|
const baseVal = base[key];
|
|
127
135
|
const oursVal = ours[key];
|
|
128
136
|
const theirsVal = theirs[key];
|
|
137
|
+
// v2.2 — Path JSON Pointer pour cette clé (escape RFC 6901 : ~ → ~0, / → ~1)
|
|
138
|
+
const pointerKey = key.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
139
|
+
const childPath = currentPath + "/" + pointerKey;
|
|
129
140
|
// Clé présente dans les deux branches, absente de la base → ajout des deux côtés
|
|
130
141
|
if (!inBase && inOurs && inTheirs) {
|
|
131
142
|
if (jsonEqual(oursVal, theirsVal)) {
|
|
@@ -135,7 +146,7 @@ function mergeObjects(base, ours, theirs) {
|
|
|
135
146
|
}
|
|
136
147
|
else if (isObject(oursVal) && isObject(theirsVal)) {
|
|
137
148
|
// Objets ajoutés différemment → fusion récursive depuis base vide
|
|
138
|
-
const sub = mergeObjects({}, oursVal, theirsVal);
|
|
149
|
+
const sub = mergeObjects({}, oursVal, theirsVal, profile, childPath);
|
|
139
150
|
if (sub.merged !== null) {
|
|
140
151
|
result[key] = sub.merged;
|
|
141
152
|
resolvedKeys += sub.resolvedKeys + 1;
|
|
@@ -146,6 +157,22 @@ function mergeObjects(base, ours, theirs) {
|
|
|
146
157
|
return { merged: null, resolvedKeys, unresolvedKeys };
|
|
147
158
|
}
|
|
148
159
|
}
|
|
160
|
+
else if (profile !== null &&
|
|
161
|
+
Array.isArray(oursVal) &&
|
|
162
|
+
Array.isArray(theirsVal)) {
|
|
163
|
+
// v2.2 — Tableau ajouté différemment des deux côtés. Si le profil
|
|
164
|
+
// annote ce path comme "set" ou "ordered-list", on tente la stratégie
|
|
165
|
+
// avec une base vide.
|
|
166
|
+
const strategy = strategyForPath(profile, childPath);
|
|
167
|
+
const applied = applyStrategy(strategy, [], oursVal, theirsVal);
|
|
168
|
+
if (applied.handled && applied.value !== null) {
|
|
169
|
+
result[key] = applied.value;
|
|
170
|
+
resolvedKeys++;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
unresolvedKeys++;
|
|
174
|
+
return { merged: null, resolvedKeys, unresolvedKeys };
|
|
175
|
+
}
|
|
149
176
|
else {
|
|
150
177
|
// Valeurs scalaires différentes → conflit non résolvable
|
|
151
178
|
unresolvedKeys++;
|
|
@@ -225,7 +252,7 @@ function mergeObjects(base, ours, theirs) {
|
|
|
225
252
|
}
|
|
226
253
|
else if (isObject(oursVal) && isObject(theirsVal) && isObject(baseVal)) {
|
|
227
254
|
// Les deux ont modifié des objets → fusion récursive
|
|
228
|
-
const sub = mergeObjects(baseVal, oursVal, theirsVal);
|
|
255
|
+
const sub = mergeObjects(baseVal, oursVal, theirsVal, profile, childPath);
|
|
229
256
|
if (sub.merged !== null) {
|
|
230
257
|
result[key] = sub.merged;
|
|
231
258
|
resolvedKeys += sub.resolvedKeys + 1;
|
|
@@ -236,6 +263,22 @@ function mergeObjects(base, ours, theirs) {
|
|
|
236
263
|
return { merged: null, resolvedKeys, unresolvedKeys };
|
|
237
264
|
}
|
|
238
265
|
}
|
|
266
|
+
else if (profile !== null &&
|
|
267
|
+
Array.isArray(oursVal) &&
|
|
268
|
+
Array.isArray(theirsVal) &&
|
|
269
|
+
Array.isArray(baseVal)) {
|
|
270
|
+
// v2.2 — Tableau modifié des deux côtés. Routage selon le profil.
|
|
271
|
+
const strategy = strategyForPath(profile, childPath);
|
|
272
|
+
const applied = applyStrategy(strategy, baseVal, oursVal, theirsVal);
|
|
273
|
+
if (applied.handled && applied.value !== null) {
|
|
274
|
+
result[key] = applied.value;
|
|
275
|
+
resolvedKeys++;
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
unresolvedKeys++;
|
|
279
|
+
return { merged: null, resolvedKeys, unresolvedKeys };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
239
282
|
else {
|
|
240
283
|
// Scalaires modifiés différemment → conflit non résolvable
|
|
241
284
|
unresolvedKeys++;
|
|
@@ -271,9 +314,12 @@ function detectIndentation(jsonText) {
|
|
|
271
314
|
* @param baseLines - Lignes de la version base
|
|
272
315
|
* @param oursLines - Lignes de la version ours
|
|
273
316
|
* @param theirsLines - Lignes de la version theirs
|
|
317
|
+
* @param filePath - (v2.2) Chemin du fichier — utilisé pour résoudre un
|
|
318
|
+
* FormatProfile applicable. Optionnel : sans filePath,
|
|
319
|
+
* comportement identique à v2.1 (pas de profil consulté).
|
|
274
320
|
* @returns `JsonMergeResult` avec `merged !== null` si résolu, `null` sinon
|
|
275
321
|
*/
|
|
276
|
-
export function tryResolveJsonConflict(baseLines, oursLines, theirsLines) {
|
|
322
|
+
export function tryResolveJsonConflict(baseLines, oursLines, theirsLines, filePath) {
|
|
277
323
|
const baseText = baseLines.join("\n");
|
|
278
324
|
const oursText = oursLines.join("\n");
|
|
279
325
|
const theirsText = theirsLines.join("\n");
|
|
@@ -340,8 +386,10 @@ export function tryResolveJsonConflict(baseLines, oursLines, theirsLines) {
|
|
|
340
386
|
};
|
|
341
387
|
}
|
|
342
388
|
const baseObj = isObject(baseJson) ? baseJson : {};
|
|
343
|
-
//
|
|
344
|
-
const
|
|
389
|
+
// v2.2 — Lookup du profil applicable au filePath (null si aucun)
|
|
390
|
+
const profile = filePath ? profileForFile(filePath) : null;
|
|
391
|
+
// Fusion sémantique (avec routage par profil sur les paths annotés)
|
|
392
|
+
const { merged, resolvedKeys, unresolvedKeys } = mergeObjects(baseObj, oursJson, theirsJson, profile, "");
|
|
345
393
|
if (merged === null) {
|
|
346
394
|
return {
|
|
347
395
|
merged: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/resolvers/json.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/resolvers/json.ts"],"names":[],"mappings":"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"}
|
package/dist/resolvers/yaml.d.ts
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
* Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
|
|
5
5
|
* la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* v2.2 — Si un FormatProfile s'applique au filePath, un fast path parse-merge-
|
|
8
|
+
* serialize est tenté en premier (perd les commentaires mais débloque
|
|
9
|
+
* helm/values.yaml et kubernetes manifests sur containers/env/volumes/…).
|
|
10
|
+
* Le pipeline line-based reste le défaut quand aucun profil n'est applicable.
|
|
11
|
+
*
|
|
12
|
+
* Implémenté sans dépendance externe pour le pipeline line-based — la lib
|
|
13
|
+
* `yaml` est utilisée uniquement par le fast path profil.
|
|
8
14
|
*
|
|
9
15
|
* Stratégie :
|
|
10
16
|
* 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
|
|
@@ -61,5 +67,5 @@ export interface YamlMergeResult {
|
|
|
61
67
|
* @param theirsLines - Lignes de la version theirs
|
|
62
68
|
* @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
|
|
63
69
|
*/
|
|
64
|
-
export declare function tryResolveYamlConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): YamlMergeResult;
|
|
70
|
+
export declare function tryResolveYamlConflict(baseLines: string[], oursLines: string[], theirsLines: string[], filePath?: string): YamlMergeResult;
|
|
65
71
|
//# sourceMappingURL=yaml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;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,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CAqEjB"}
|
package/dist/resolvers/yaml.js
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
* Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
|
|
5
5
|
* la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* v2.2 — Si un FormatProfile s'applique au filePath, un fast path parse-merge-
|
|
8
|
+
* serialize est tenté en premier (perd les commentaires mais débloque
|
|
9
|
+
* helm/values.yaml et kubernetes manifests sur containers/env/volumes/…).
|
|
10
|
+
* Le pipeline line-based reste le défaut quand aucun profil n'est applicable.
|
|
11
|
+
*
|
|
12
|
+
* Implémenté sans dépendance externe pour le pipeline line-based — la lib
|
|
13
|
+
* `yaml` est utilisée uniquement par le fast path profil.
|
|
8
14
|
*
|
|
9
15
|
* Stratégie :
|
|
10
16
|
* 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
|
|
@@ -355,7 +361,18 @@ function mergeYamlBlocks(baseLines, oursLines, theirsLines) {
|
|
|
355
361
|
* @param theirsLines - Lignes de la version theirs
|
|
356
362
|
* @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
|
|
357
363
|
*/
|
|
358
|
-
export function tryResolveYamlConflict(baseLines, oursLines, theirsLines) {
|
|
364
|
+
export function tryResolveYamlConflict(baseLines, oursLines, theirsLines, filePath) {
|
|
365
|
+
// v2.2 — Fast path profil-aware. Si un FormatProfile s'applique au filePath
|
|
366
|
+
// (ex: helm/values.yaml ou kubernetes/deployment.yaml) ET que les trois
|
|
367
|
+
// versions parsent comme des objets propres, on tente le merge sémantique
|
|
368
|
+
// avec routage par stratégie (set sur containers/env/volumes…). Si ça
|
|
369
|
+
// échoue (parse impossible, merge en conflit), on retombe sur le pipeline
|
|
370
|
+
// line-based existant qui préserve les commentaires.
|
|
371
|
+
if (filePath) {
|
|
372
|
+
const profileResult = tryProfileBasedYamlMerge(baseLines, oursLines, theirsLines, filePath);
|
|
373
|
+
if (profileResult !== null)
|
|
374
|
+
return profileResult;
|
|
375
|
+
}
|
|
359
376
|
// Rejeter les constructions non supportées
|
|
360
377
|
if (hasUnsupportedConstruct(oursLines) ||
|
|
361
378
|
hasUnsupportedConstruct(theirsLines)) {
|
|
@@ -402,4 +419,141 @@ export function tryResolveYamlConflict(baseLines, oursLines, theirsLines) {
|
|
|
402
419
|
unresolvedKeys,
|
|
403
420
|
};
|
|
404
421
|
}
|
|
422
|
+
// ─── v2.2 — Fast path parse-merge-serialize via FormatProfile ────────────
|
|
423
|
+
import * as YAML from "yaml";
|
|
424
|
+
import { profileForFile, strategyForPath } from "../format-profiles/index.js";
|
|
425
|
+
import { applyStrategy } from "../format-profiles/merge-strategies.js";
|
|
426
|
+
/**
|
|
427
|
+
* Tente le merge YAML sémantique via parse → merge avec profil → serialize.
|
|
428
|
+
* Retourne `null` si pas applicable (pas de profil, parse échoue, ou merge
|
|
429
|
+
* en conflit) ; le caller retombera sur le pipeline line-based.
|
|
430
|
+
*/
|
|
431
|
+
function tryProfileBasedYamlMerge(baseLines, oursLines, theirsLines, filePath) {
|
|
432
|
+
const profile = profileForFile(filePath);
|
|
433
|
+
if (profile === null)
|
|
434
|
+
return null;
|
|
435
|
+
let baseObj;
|
|
436
|
+
let oursObj;
|
|
437
|
+
let theirsObj;
|
|
438
|
+
try {
|
|
439
|
+
const baseText = baseLines.join("\n").trim();
|
|
440
|
+
baseObj = baseText.length === 0 ? {} : (YAML.parse(baseText) ?? {});
|
|
441
|
+
oursObj = YAML.parse(oursLines.join("\n")) ?? {};
|
|
442
|
+
theirsObj = YAML.parse(theirsLines.join("\n")) ?? {};
|
|
443
|
+
}
|
|
444
|
+
catch {
|
|
445
|
+
return null; // parse échoué → fallback line-based
|
|
446
|
+
}
|
|
447
|
+
if (!isPlainObject(oursObj) || !isPlainObject(theirsObj))
|
|
448
|
+
return null;
|
|
449
|
+
const baseObjSafe = isPlainObject(baseObj) ? baseObj : {};
|
|
450
|
+
const merged = mergeProfileObjects(baseObjSafe, oursObj, theirsObj, profile, "");
|
|
451
|
+
if (merged === null)
|
|
452
|
+
return null;
|
|
453
|
+
// Serialize avec un style proche du source (line width par défaut, indent 2).
|
|
454
|
+
const serialized = YAML.stringify(merged, { indent: 2, lineWidth: 0 }).trimEnd();
|
|
455
|
+
return {
|
|
456
|
+
mergedLines: serialized.split("\n"),
|
|
457
|
+
reason: `Fusion YAML via profil '${profile.name}'.`,
|
|
458
|
+
resolvedKeys: 1,
|
|
459
|
+
unresolvedKeys: 0,
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
function isPlainObject(v) {
|
|
463
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Merge récursif d'objets parsés YAML, avec routage par profil.
|
|
467
|
+
* Variante simplifiée du `mergeObjects` de json.ts — pas de tracking précis
|
|
468
|
+
* resolved/unresolved (le caller utilise un total binaire 0 ou 1).
|
|
469
|
+
*/
|
|
470
|
+
function mergeProfileObjects(base, ours, theirs, profile, currentPath) {
|
|
471
|
+
const result = {};
|
|
472
|
+
const allKeys = new Set([
|
|
473
|
+
...Object.keys(base),
|
|
474
|
+
...Object.keys(ours),
|
|
475
|
+
...Object.keys(theirs),
|
|
476
|
+
]);
|
|
477
|
+
for (const key of allKeys) {
|
|
478
|
+
const inBase = key in base;
|
|
479
|
+
const inOurs = key in ours;
|
|
480
|
+
const inTheirs = key in theirs;
|
|
481
|
+
const baseVal = base[key];
|
|
482
|
+
const oursVal = ours[key];
|
|
483
|
+
const theirsVal = theirs[key];
|
|
484
|
+
const pointerKey = key.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
485
|
+
const childPath = currentPath + "/" + pointerKey;
|
|
486
|
+
// Cas symétriques : ajouts simples, suppressions sans modif
|
|
487
|
+
if (inOurs && !inTheirs) {
|
|
488
|
+
if (inBase && !structEqual(baseVal, oursVal))
|
|
489
|
+
return null;
|
|
490
|
+
if (!inBase)
|
|
491
|
+
result[key] = oursVal;
|
|
492
|
+
continue;
|
|
493
|
+
}
|
|
494
|
+
if (!inOurs && inTheirs) {
|
|
495
|
+
if (inBase && !structEqual(baseVal, theirsVal))
|
|
496
|
+
return null;
|
|
497
|
+
if (!inBase)
|
|
498
|
+
result[key] = theirsVal;
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
if (!inOurs && !inTheirs)
|
|
502
|
+
continue;
|
|
503
|
+
// Présent partout — modifs éventuelles
|
|
504
|
+
if (structEqual(oursVal, theirsVal)) {
|
|
505
|
+
result[key] = oursVal;
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
const oursChanged = !inBase || !structEqual(baseVal, oursVal);
|
|
509
|
+
const theirsChanged = !inBase || !structEqual(baseVal, theirsVal);
|
|
510
|
+
if (oursChanged && !theirsChanged) {
|
|
511
|
+
result[key] = oursVal;
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
if (!oursChanged && theirsChanged) {
|
|
515
|
+
result[key] = theirsVal;
|
|
516
|
+
continue;
|
|
517
|
+
}
|
|
518
|
+
// Les deux ont changé différemment — routage par stratégie de profil
|
|
519
|
+
const strategy = strategyForPath(profile, childPath);
|
|
520
|
+
if (Array.isArray(oursVal) && Array.isArray(theirsVal)) {
|
|
521
|
+
const baseArr = Array.isArray(baseVal) ? baseVal : [];
|
|
522
|
+
const applied = applyStrategy(strategy, baseArr, oursVal, theirsVal);
|
|
523
|
+
if (applied.handled && applied.value !== null) {
|
|
524
|
+
result[key] = applied.value;
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
527
|
+
return null;
|
|
528
|
+
}
|
|
529
|
+
if (isPlainObject(oursVal) && isPlainObject(theirsVal)) {
|
|
530
|
+
const baseObj = isPlainObject(baseVal) ? baseVal : {};
|
|
531
|
+
const sub = mergeProfileObjects(baseObj, oursVal, theirsVal, profile, childPath);
|
|
532
|
+
if (sub === null)
|
|
533
|
+
return null;
|
|
534
|
+
result[key] = sub;
|
|
535
|
+
continue;
|
|
536
|
+
}
|
|
537
|
+
// Scalaires divergents → conflit
|
|
538
|
+
return null;
|
|
539
|
+
}
|
|
540
|
+
return result;
|
|
541
|
+
}
|
|
542
|
+
function structEqual(a, b) {
|
|
543
|
+
if (a === b)
|
|
544
|
+
return true;
|
|
545
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
546
|
+
if (a.length !== b.length)
|
|
547
|
+
return false;
|
|
548
|
+
return a.every((v, i) => structEqual(v, b[i]));
|
|
549
|
+
}
|
|
550
|
+
if (isPlainObject(a) && isPlainObject(b)) {
|
|
551
|
+
const ak = Object.keys(a);
|
|
552
|
+
const bk = Object.keys(b);
|
|
553
|
+
if (ak.length !== bk.length)
|
|
554
|
+
return false;
|
|
555
|
+
return ak.every((k) => k in b && structEqual(a[k], b[k]));
|
|
556
|
+
}
|
|
557
|
+
return false;
|
|
558
|
+
}
|
|
405
559
|
//# sourceMappingURL=yaml.js.map
|