@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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -0
  3. package/dist/__tests__/bench.bench.d.ts +14 -0
  4. package/dist/__tests__/bench.bench.d.ts.map +1 -0
  5. package/dist/__tests__/bench.bench.js +137 -0
  6. package/dist/__tests__/bench.bench.js.map +1 -0
  7. package/dist/__tests__/confidence-v14.test.d.ts +13 -0
  8. package/dist/__tests__/confidence-v14.test.d.ts.map +1 -0
  9. package/dist/__tests__/confidence-v14.test.js +284 -0
  10. package/dist/__tests__/confidence-v14.test.js.map +1 -0
  11. package/dist/__tests__/config.test.d.ts +2 -0
  12. package/dist/__tests__/config.test.d.ts.map +1 -0
  13. package/dist/__tests__/config.test.js +317 -0
  14. package/dist/__tests__/config.test.js.map +1 -0
  15. package/dist/__tests__/corpus.d.ts +36 -0
  16. package/dist/__tests__/corpus.d.ts.map +1 -0
  17. package/dist/__tests__/corpus.js +541 -0
  18. package/dist/__tests__/corpus.js.map +1 -0
  19. package/dist/__tests__/corpus.test.d.ts +17 -0
  20. package/dist/__tests__/corpus.test.d.ts.map +1 -0
  21. package/dist/__tests__/corpus.test.js +179 -0
  22. package/dist/__tests__/corpus.test.js.map +1 -0
  23. package/dist/__tests__/diff.test.d.ts +10 -0
  24. package/dist/__tests__/diff.test.d.ts.map +1 -0
  25. package/dist/__tests__/diff.test.js +178 -0
  26. package/dist/__tests__/diff.test.js.map +1 -0
  27. package/dist/__tests__/format-resolvers.test.d.ts +2 -0
  28. package/dist/__tests__/format-resolvers.test.d.ts.map +1 -0
  29. package/dist/__tests__/format-resolvers.test.js +577 -0
  30. package/dist/__tests__/format-resolvers.test.js.map +1 -0
  31. package/dist/__tests__/imports-extended.test.d.ts +2 -0
  32. package/dist/__tests__/imports-extended.test.d.ts.map +1 -0
  33. package/dist/__tests__/imports-extended.test.js +94 -0
  34. package/dist/__tests__/imports-extended.test.js.map +1 -0
  35. package/dist/__tests__/lockfile-resolvers.test.d.ts +2 -0
  36. package/dist/__tests__/lockfile-resolvers.test.d.ts.map +1 -0
  37. package/dist/__tests__/lockfile-resolvers.test.js +200 -0
  38. package/dist/__tests__/lockfile-resolvers.test.js.map +1 -0
  39. package/dist/__tests__/patterns/insertion-at-boundary.test.d.ts +10 -0
  40. package/dist/__tests__/patterns/insertion-at-boundary.test.d.ts.map +1 -0
  41. package/dist/__tests__/patterns/insertion-at-boundary.test.js +185 -0
  42. package/dist/__tests__/patterns/insertion-at-boundary.test.js.map +1 -0
  43. package/dist/__tests__/patterns/reorder-only.test.d.ts +10 -0
  44. package/dist/__tests__/patterns/reorder-only.test.d.ts.map +1 -0
  45. package/dist/__tests__/patterns/reorder-only.test.js +181 -0
  46. package/dist/__tests__/patterns/reorder-only.test.js.map +1 -0
  47. package/dist/__tests__/phase-7-2-3b.test.d.ts +6 -0
  48. package/dist/__tests__/phase-7-2-3b.test.d.ts.map +1 -0
  49. package/dist/__tests__/phase-7-2-3b.test.js +730 -0
  50. package/dist/__tests__/phase-7-2-3b.test.js.map +1 -0
  51. package/dist/__tests__/resolver.test.d.ts +2 -0
  52. package/dist/__tests__/resolver.test.d.ts.map +1 -0
  53. package/dist/__tests__/resolver.test.js +927 -0
  54. package/dist/__tests__/resolver.test.js.map +1 -0
  55. package/dist/__tests__/resolvers/cargo.test.d.ts +10 -0
  56. package/dist/__tests__/resolvers/cargo.test.d.ts.map +1 -0
  57. package/dist/__tests__/resolvers/cargo.test.js +158 -0
  58. package/dist/__tests__/resolvers/cargo.test.js.map +1 -0
  59. package/dist/__tests__/resolvers/dockerfile.test.d.ts +8 -0
  60. package/dist/__tests__/resolvers/dockerfile.test.d.ts.map +1 -0
  61. package/dist/__tests__/resolvers/dockerfile.test.js +120 -0
  62. package/dist/__tests__/resolvers/dockerfile.test.js.map +1 -0
  63. package/dist/__tests__/resolvers/dotenv.test.d.ts +9 -0
  64. package/dist/__tests__/resolvers/dotenv.test.d.ts.map +1 -0
  65. package/dist/__tests__/resolvers/dotenv.test.js +113 -0
  66. package/dist/__tests__/resolvers/dotenv.test.js.map +1 -0
  67. package/dist/__tests__/resolvers/improvements-v14.test.d.ts +8 -0
  68. package/dist/__tests__/resolvers/improvements-v14.test.d.ts.map +1 -0
  69. package/dist/__tests__/resolvers/improvements-v14.test.js +306 -0
  70. package/dist/__tests__/resolvers/improvements-v14.test.js.map +1 -0
  71. package/dist/__tests__/validation.test.d.ts +12 -0
  72. package/dist/__tests__/validation.test.d.ts.map +1 -0
  73. package/dist/__tests__/validation.test.js +136 -0
  74. package/dist/__tests__/validation.test.js.map +1 -0
  75. package/dist/classifier.d.ts +21 -0
  76. package/dist/classifier.d.ts.map +1 -0
  77. package/dist/classifier.js +127 -0
  78. package/dist/classifier.js.map +1 -0
  79. package/dist/config.d.ts +108 -0
  80. package/dist/config.d.ts.map +1 -0
  81. package/dist/config.js +200 -0
  82. package/dist/config.js.map +1 -0
  83. package/dist/diff.d.ts +69 -0
  84. package/dist/diff.d.ts.map +1 -0
  85. package/dist/diff.js +328 -0
  86. package/dist/diff.js.map +1 -0
  87. package/dist/index.d.ts +47 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +38 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/parser.d.ts +39 -0
  92. package/dist/parser.d.ts.map +1 -0
  93. package/dist/parser.js +164 -0
  94. package/dist/parser.js.map +1 -0
  95. package/dist/patterns/complex.d.ts +5 -0
  96. package/dist/patterns/complex.d.ts.map +1 -0
  97. package/dist/patterns/complex.js +27 -0
  98. package/dist/patterns/complex.js.map +1 -0
  99. package/dist/patterns/delete-no-change.d.ts +4 -0
  100. package/dist/patterns/delete-no-change.d.ts.map +1 -0
  101. package/dist/patterns/delete-no-change.js +75 -0
  102. package/dist/patterns/delete-no-change.js.map +1 -0
  103. package/dist/patterns/insertion-at-boundary.d.ts +22 -0
  104. package/dist/patterns/insertion-at-boundary.d.ts.map +1 -0
  105. package/dist/patterns/insertion-at-boundary.js +164 -0
  106. package/dist/patterns/insertion-at-boundary.js.map +1 -0
  107. package/dist/patterns/non-overlapping.d.ts +4 -0
  108. package/dist/patterns/non-overlapping.d.ts.map +1 -0
  109. package/dist/patterns/non-overlapping.js +28 -0
  110. package/dist/patterns/non-overlapping.js.map +1 -0
  111. package/dist/patterns/one-side-change.d.ts +4 -0
  112. package/dist/patterns/one-side-change.d.ts.map +1 -0
  113. package/dist/patterns/one-side-change.js +45 -0
  114. package/dist/patterns/one-side-change.js.map +1 -0
  115. package/dist/patterns/reorder-only.d.ts +14 -0
  116. package/dist/patterns/reorder-only.d.ts.map +1 -0
  117. package/dist/patterns/reorder-only.js +81 -0
  118. package/dist/patterns/reorder-only.js.map +1 -0
  119. package/dist/patterns/same-change.d.ts +4 -0
  120. package/dist/patterns/same-change.d.ts.map +1 -0
  121. package/dist/patterns/same-change.js +25 -0
  122. package/dist/patterns/same-change.js.map +1 -0
  123. package/dist/patterns/utils.d.ts +70 -0
  124. package/dist/patterns/utils.d.ts.map +1 -0
  125. package/dist/patterns/utils.js +206 -0
  126. package/dist/patterns/utils.js.map +1 -0
  127. package/dist/patterns/value-only-change.d.ts +4 -0
  128. package/dist/patterns/value-only-change.d.ts.map +1 -0
  129. package/dist/patterns/value-only-change.js +34 -0
  130. package/dist/patterns/value-only-change.js.map +1 -0
  131. package/dist/patterns/whitespace-only.d.ts +4 -0
  132. package/dist/patterns/whitespace-only.d.ts.map +1 -0
  133. package/dist/patterns/whitespace-only.js +32 -0
  134. package/dist/patterns/whitespace-only.js.map +1 -0
  135. package/dist/resolver/assemble.d.ts +25 -0
  136. package/dist/resolver/assemble.d.ts.map +1 -0
  137. package/dist/resolver/assemble.js +170 -0
  138. package/dist/resolver/assemble.js.map +1 -0
  139. package/dist/resolver/format-dispatch.d.ts +40 -0
  140. package/dist/resolver/format-dispatch.d.ts.map +1 -0
  141. package/dist/resolver/format-dispatch.js +51 -0
  142. package/dist/resolver/format-dispatch.js.map +1 -0
  143. package/dist/resolver/generated-detection.d.ts +48 -0
  144. package/dist/resolver/generated-detection.d.ts.map +1 -0
  145. package/dist/resolver/generated-detection.js +123 -0
  146. package/dist/resolver/generated-detection.js.map +1 -0
  147. package/dist/resolver/index.d.ts +26 -0
  148. package/dist/resolver/index.d.ts.map +1 -0
  149. package/dist/resolver/index.js +147 -0
  150. package/dist/resolver/index.js.map +1 -0
  151. package/dist/resolver/policy.d.ts +53 -0
  152. package/dist/resolver/policy.d.ts.map +1 -0
  153. package/dist/resolver/policy.js +99 -0
  154. package/dist/resolver/policy.js.map +1 -0
  155. package/dist/resolver/validation.d.ts +28 -0
  156. package/dist/resolver/validation.d.ts.map +1 -0
  157. package/dist/resolver/validation.js +96 -0
  158. package/dist/resolver/validation.js.map +1 -0
  159. package/dist/resolver.d.ts +18 -0
  160. package/dist/resolver.d.ts.map +1 -0
  161. package/dist/resolver.js +18 -0
  162. package/dist/resolver.js.map +1 -0
  163. package/dist/resolvers/cargo.d.ts +34 -0
  164. package/dist/resolvers/cargo.d.ts.map +1 -0
  165. package/dist/resolvers/cargo.js +262 -0
  166. package/dist/resolvers/cargo.js.map +1 -0
  167. package/dist/resolvers/css.d.ts +60 -0
  168. package/dist/resolvers/css.d.ts.map +1 -0
  169. package/dist/resolvers/css.js +531 -0
  170. package/dist/resolvers/css.js.map +1 -0
  171. package/dist/resolvers/dispatcher.d.ts +78 -0
  172. package/dist/resolvers/dispatcher.d.ts.map +1 -0
  173. package/dist/resolvers/dispatcher.js +290 -0
  174. package/dist/resolvers/dispatcher.js.map +1 -0
  175. package/dist/resolvers/dockerfile.d.ts +24 -0
  176. package/dist/resolvers/dockerfile.d.ts.map +1 -0
  177. package/dist/resolvers/dockerfile.js +221 -0
  178. package/dist/resolvers/dockerfile.js.map +1 -0
  179. package/dist/resolvers/dotenv.d.ts +27 -0
  180. package/dist/resolvers/dotenv.d.ts.map +1 -0
  181. package/dist/resolvers/dotenv.js +114 -0
  182. package/dist/resolvers/dotenv.js.map +1 -0
  183. package/dist/resolvers/imports.d.ts +63 -0
  184. package/dist/resolvers/imports.d.ts.map +1 -0
  185. package/dist/resolvers/imports.js +513 -0
  186. package/dist/resolvers/imports.js.map +1 -0
  187. package/dist/resolvers/json.d.ts +48 -0
  188. package/dist/resolvers/json.d.ts.map +1 -0
  189. package/dist/resolvers/json.js +363 -0
  190. package/dist/resolvers/json.js.map +1 -0
  191. package/dist/resolvers/lockfile-npm.d.ts +38 -0
  192. package/dist/resolvers/lockfile-npm.d.ts.map +1 -0
  193. package/dist/resolvers/lockfile-npm.js +267 -0
  194. package/dist/resolvers/lockfile-npm.js.map +1 -0
  195. package/dist/resolvers/lockfile-pnpm.d.ts +44 -0
  196. package/dist/resolvers/lockfile-pnpm.d.ts.map +1 -0
  197. package/dist/resolvers/lockfile-pnpm.js +277 -0
  198. package/dist/resolvers/lockfile-pnpm.js.map +1 -0
  199. package/dist/resolvers/lockfile-yarn.d.ts +40 -0
  200. package/dist/resolvers/lockfile-yarn.d.ts.map +1 -0
  201. package/dist/resolvers/lockfile-yarn.js +184 -0
  202. package/dist/resolvers/lockfile-yarn.js.map +1 -0
  203. package/dist/resolvers/markdown.d.ts +64 -0
  204. package/dist/resolvers/markdown.d.ts.map +1 -0
  205. package/dist/resolvers/markdown.js +335 -0
  206. package/dist/resolvers/markdown.js.map +1 -0
  207. package/dist/resolvers/vue.d.ts +65 -0
  208. package/dist/resolvers/vue.d.ts.map +1 -0
  209. package/dist/resolvers/vue.js +258 -0
  210. package/dist/resolvers/vue.js.map +1 -0
  211. package/dist/resolvers/yaml.d.ts +65 -0
  212. package/dist/resolvers/yaml.d.ts.map +1 -0
  213. package/dist/resolvers/yaml.js +405 -0
  214. package/dist/resolvers/yaml.js.map +1 -0
  215. package/dist/types.d.ts +256 -0
  216. package/dist/types.d.ts.map +1 -0
  217. package/dist/types.js +8 -0
  218. package/dist/types.js.map +1 -0
  219. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","sourceRoot":"","sources":["../../src/resolvers/vue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAoBH,6DAA6D;AAE7D,MAAM,WAAW,GAAI,8CAA8C,CAAC;AACpE,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC,kFAAkF;AAClF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,mDAAmD;IACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAI,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAElC,yDAAyD;YACzD,0DAA0D;YAC1D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,8CAA8C;gBAC9C,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC;oBACpB,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAC;gBACH,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,IAAI,GAAG,CAAC;YACjC,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,CAAC,EAAE,CAAC;YAEJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;oBACvD,MAAM;gBACR,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,EAAE,CAAC;YACN,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;gBACpB,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,qBAAqB;YAC1B,SAAS;QACX,CAAC;QAED,mDAAmD;QACnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,EAAE,CAAC;IACN,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC;gBACpB,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAe;IAC/B,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,CAAW,EAAE,CAAW;IAClD,OAAO,CACL,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;QACvB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM;QACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAe;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAmB,EACnB,SAAmB,EACnB,WAAqB;IAErB,MAAM,UAAU,GAAK,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAK,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEjD,kBAAkB;IAClB,MAAM,OAAO,GAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,oDAAoD;IACpD,MAAM,SAAS,GAAK,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAa,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,oDAAoD;QACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,IAAI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxC,cAAc,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,OAAO;wBACL,WAAW,EAAE,IAAI;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,yCAAyC;qBACnF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxC,cAAc,EAAE,CAAC;YACnB,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1C,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAK,IAAI,CAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAG,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExE,6BAA6B;QAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC,CAAC,2CAA2C;YAC/D,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO;oBACL,WAAW,EAAE,IAAI;oBACjB,gBAAgB;oBAChB,cAAc;oBACd,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,4CAA4C;iBACtF,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC,CAAC,2CAA2C;YAC/D,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO;oBACL,WAAW,EAAE,IAAI;oBACjB,gBAAgB;oBAChB,cAAc;oBACd,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,4CAA4C;iBACtF,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,cAAc,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,cAAc,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,cAAc,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,cAAc,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,gBAAgB;gBAChB,cAAc;gBACd,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,mDAAmD;aAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW;QACxB,gBAAgB,EAAE,EAAE;QACpB,cAAc;QACd,MAAM,EAAE,4BAA4B,cAAc,uBAAuB;KAC1E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * GitWand — Résolveur YAML structurel
3
+ *
4
+ * Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
5
+ * la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
6
+ *
7
+ * Implémenté sans dépendance externe — parsing structurel basé sur l'indentation.
8
+ *
9
+ * Stratégie :
10
+ * 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
11
+ * 2. Pour chaque clé au même niveau :
12
+ * - Ajoutée d'un seul côté → accepter
13
+ * - Supprimée d'un seul côté, l'autre intact → supprimer
14
+ * - Modifiée des deux côtés de façon identique → accepter
15
+ * - Modifiée d'un seul côté → accepter la modification
16
+ * - Modifiée des deux côtés différemment → conflit non résolvable
17
+ * 3. Pour les valeurs scalaires strictement identiques → garder
18
+ * 4. Pour les blocs imbriqués → récursion
19
+ *
20
+ * Limites (cas non gérés → fallback textuel) :
21
+ * - Anchors et aliases YAML (&anchor / *alias)
22
+ * - Multi-line strings (| et > block scalars)
23
+ * - Séquences (listes avec -) : fusion conservatrice (union si disjoint, sinon conflit)
24
+ * - Flow mappings/sequences inline ({ } / [ ])
25
+ */
26
+ /**
27
+ * Une entrée YAML parsée.
28
+ * Peut représenter :
29
+ * - key: value (scalaire)
30
+ * - key: (début d'objet indenté)
31
+ * - - item (élément de liste)
32
+ * - # commentaire ou ligne vide
33
+ */
34
+ export interface YamlEntry {
35
+ /** Indentation en espaces */
36
+ indent: number;
37
+ /** Clé de l'entrée, ou null pour les lignes non-clé (commentaires, listes) */
38
+ key: string | null;
39
+ /** Valeur scalaire sur la même ligne que la clé, ou null si objet/liste */
40
+ scalar: string | null;
41
+ /** Lignes brutes constituant cette entrée (clé + contenu indenté suivant) */
42
+ rawLines: string[];
43
+ }
44
+ /** Résultat du merge YAML */
45
+ export interface YamlMergeResult {
46
+ /** Lignes fusionnées (null = conflit non résolvable) */
47
+ mergedLines: string[] | null;
48
+ /** Description de la fusion */
49
+ reason: string;
50
+ /** Clés résolues automatiquement */
51
+ resolvedKeys: number;
52
+ /** Clés en conflit */
53
+ unresolvedKeys: number;
54
+ }
55
+ /**
56
+ * Tente de résoudre un conflit YAML en fusionnant structurellement
57
+ * les trois versions.
58
+ *
59
+ * @param baseLines - Lignes de la version base
60
+ * @param oursLines - Lignes de la version ours
61
+ * @param theirsLines - Lignes de la version theirs
62
+ * @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
63
+ */
64
+ export declare function tryResolveYamlConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): YamlMergeResult;
65
+ //# sourceMappingURL=yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsHD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AA4ND;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,eAAe,CAwDjB"}
@@ -0,0 +1,405 @@
1
+ /**
2
+ * GitWand — Résolveur YAML structurel
3
+ *
4
+ * Résout les conflits dans les fichiers YAML (.yaml / .yml) en analysant
5
+ * la structure indentée et en fusionnant clé par clé, similaire au résolveur JSON.
6
+ *
7
+ * Implémenté sans dépendance externe — parsing structurel basé sur l'indentation.
8
+ *
9
+ * Stratégie :
10
+ * 1. Parser chaque version en "entrées" hiérarchiques (clé + contenu indenté)
11
+ * 2. Pour chaque clé au même niveau :
12
+ * - Ajoutée d'un seul côté → accepter
13
+ * - Supprimée d'un seul côté, l'autre intact → supprimer
14
+ * - Modifiée des deux côtés de façon identique → accepter
15
+ * - Modifiée d'un seul côté → accepter la modification
16
+ * - Modifiée des deux côtés différemment → conflit non résolvable
17
+ * 3. Pour les valeurs scalaires strictement identiques → garder
18
+ * 4. Pour les blocs imbriqués → récursion
19
+ *
20
+ * Limites (cas non gérés → fallback textuel) :
21
+ * - Anchors et aliases YAML (&anchor / *alias)
22
+ * - Multi-line strings (| et > block scalars)
23
+ * - Séquences (listes avec -) : fusion conservatrice (union si disjoint, sinon conflit)
24
+ * - Flow mappings/sequences inline ({ } / [ ])
25
+ */
26
+ // ─── Parser structurel ────────────────────────────────────
27
+ const RE_KEY_VALUE = /^(\s*)([\w.-][\w.\- ]*?):\s+(.+)$/;
28
+ const RE_KEY_ONLY = /^(\s*)([\w.-][\w.\- ]*?):\s*$/;
29
+ const RE_LIST_ITEM = /^(\s*)-\s/;
30
+ const RE_COMMENT = /^\s*#/;
31
+ const RE_ANCHOR = /[&*]/;
32
+ /**
33
+ * Vérifie si un bloc de lignes est entièrement une séquence scalaire YAML.
34
+ * Une séquence scalaire = chaque élément est `- <valeur>` sans clé imbriquée.
35
+ * Les commentaires et lignes vides sont tolérés.
36
+ */
37
+ function isAllScalarSequence(lines) {
38
+ if (lines.length === 0)
39
+ return false;
40
+ let hasItem = false;
41
+ for (const l of lines) {
42
+ const trimmed = l.trim();
43
+ if (trimmed === "" || RE_COMMENT.test(trimmed))
44
+ continue;
45
+ if (!RE_LIST_ITEM.test(l))
46
+ return false;
47
+ // Item value must be scalar: no unquoted colon (would indicate a mapping)
48
+ const itemVal = trimmed.replace(/^-\s+/, "");
49
+ const isQuoted = itemVal.startsWith('"') || itemVal.startsWith("'");
50
+ if (!isQuoted && /:\s/.test(itemVal))
51
+ return false; // nested mapping
52
+ if (itemVal.startsWith("{") || itemVal.startsWith("["))
53
+ return false; // flow collection
54
+ hasItem = true;
55
+ }
56
+ return hasItem;
57
+ }
58
+ /**
59
+ * Détecte si un bloc YAML contient des constructions non gérées (anchors, block scalars).
60
+ */
61
+ function hasUnsupportedConstruct(lines) {
62
+ return lines.some((l) => RE_ANCHOR.test(l) ||
63
+ /:\s*[|>]/.test(l) || // block scalar
64
+ /^\s*[|>]/.test(l));
65
+ }
66
+ /**
67
+ * Détecte le niveau d'indentation de base (indentation minimale des lignes non vides).
68
+ */
69
+ function baseIndent(lines) {
70
+ let min = Infinity;
71
+ for (const l of lines) {
72
+ if (l.trim() === "" || RE_COMMENT.test(l))
73
+ continue;
74
+ const m = l.match(/^(\s*)/);
75
+ if (m && m[1].length < min)
76
+ min = m[1].length;
77
+ }
78
+ return min === Infinity ? 0 : min;
79
+ }
80
+ /**
81
+ * Groupe les lignes en entrées au niveau d'indentation `rootIndent`.
82
+ * Chaque entrée commence par une ligne à `rootIndent` et absorbe
83
+ * toutes les lignes suivantes avec une indentation strictement supérieure.
84
+ */
85
+ function groupEntries(lines, rootIndent) {
86
+ const entries = [];
87
+ let i = 0;
88
+ while (i < lines.length) {
89
+ const line = lines[i];
90
+ // Lignes vides et commentaires : entrée sans clé
91
+ if (line.trim() === "" || RE_COMMENT.test(line)) {
92
+ entries.push({ indent: rootIndent, key: null, scalar: null, rawLines: [line] });
93
+ i++;
94
+ continue;
95
+ }
96
+ const m = line.match(/^(\s*)/);
97
+ const indent = m ? m[1].length : 0;
98
+ // Ligne d'un niveau plus profond que rootIndent : appartient à l'entrée précédente
99
+ if (indent > rootIndent && entries.length > 0) {
100
+ entries[entries.length - 1].rawLines.push(line);
101
+ i++;
102
+ continue;
103
+ }
104
+ // Nouvelle entrée au niveau rootIndent
105
+ const keyValue = line.match(RE_KEY_VALUE);
106
+ const keyOnly = line.match(RE_KEY_ONLY);
107
+ const listItem = RE_LIST_ITEM.test(line);
108
+ if (keyValue) {
109
+ entries.push({
110
+ indent,
111
+ key: keyValue[2].trim(),
112
+ scalar: keyValue[3].trim(),
113
+ rawLines: [line],
114
+ });
115
+ }
116
+ else if (keyOnly) {
117
+ entries.push({
118
+ indent,
119
+ key: keyOnly[2].trim(),
120
+ scalar: null,
121
+ rawLines: [line],
122
+ });
123
+ }
124
+ else if (listItem) {
125
+ entries.push({ indent, key: null, scalar: null, rawLines: [line] });
126
+ }
127
+ else {
128
+ entries.push({ indent, key: null, scalar: null, rawLines: [line] });
129
+ }
130
+ i++;
131
+ }
132
+ return entries;
133
+ }
134
+ /**
135
+ * Compare deux tableaux de strings pour égalité.
136
+ */
137
+ function linesEqual(a, b) {
138
+ return a.length === b.length && a.every((l, i) => l === b[i]);
139
+ }
140
+ /**
141
+ * Fusionne deux séquences YAML (listes `-`).
142
+ * Stratégie : union des éléments (éléments de ours + éléments de theirs absents de ours).
143
+ * Retourne null si les listes sont divergentes de façon non triviale.
144
+ */
145
+ function mergeSequences(baseLines, oursLines, theirsLines) {
146
+ // Si ours et theirs sont identiques → garder
147
+ if (linesEqual(oursLines, theirsLines))
148
+ return [...oursLines];
149
+ // Si ours = base → prendre theirs
150
+ if (linesEqual(oursLines, baseLines))
151
+ return [...theirsLines];
152
+ // Si theirs = base → prendre ours
153
+ if (linesEqual(theirsLines, baseLines))
154
+ return [...oursLines];
155
+ // Les deux ont modifié → union simple des lignes uniques
156
+ // (conservative : ne pas réordonner, ajouter les nouvelles lignes de theirs à la fin de ours)
157
+ const oursSet = new Set(oursLines.map((l) => l.trim()));
158
+ const extra = theirsLines.filter((l) => !oursSet.has(l.trim()));
159
+ if (extra.length > 0) {
160
+ return [...oursLines, ...extra];
161
+ }
162
+ // theirs est un sous-ensemble de ours (ou identique) → garder ours
163
+ return [...oursLines];
164
+ }
165
+ /**
166
+ * Fusionne récursivement deux blocs YAML structurés.
167
+ * Retourne les lignes fusionnées ou null si un conflit non résolvable est détecté.
168
+ */
169
+ function mergeYamlBlocks(baseLines, oursLines, theirsLines) {
170
+ // Cas triviaux
171
+ if (linesEqual(oursLines, theirsLines)) {
172
+ return { lines: [...oursLines], resolvedKeys: 1, unresolvedKeys: 0 };
173
+ }
174
+ if (linesEqual(oursLines, baseLines)) {
175
+ return { lines: [...theirsLines], resolvedKeys: 1, unresolvedKeys: 0 };
176
+ }
177
+ if (linesEqual(theirsLines, baseLines)) {
178
+ return { lines: [...oursLines], resolvedKeys: 1, unresolvedKeys: 0 };
179
+ }
180
+ // Déterminer l'indentation de base
181
+ const ri = baseIndent([...oursLines, ...theirsLines, ...baseLines]);
182
+ // Grouper en entrées
183
+ const baseEntries = groupEntries(baseLines, ri);
184
+ const oursEntries = groupEntries(oursLines, ri);
185
+ const theirsEntries = groupEntries(theirsLines, ri);
186
+ // Index par clé
187
+ const baseMap = new Map();
188
+ const oursMap = new Map();
189
+ const theirsMap = new Map();
190
+ for (const e of baseEntries)
191
+ if (e.key)
192
+ baseMap.set(e.key, e);
193
+ for (const e of oursEntries)
194
+ if (e.key)
195
+ oursMap.set(e.key, e);
196
+ for (const e of theirsEntries)
197
+ if (e.key)
198
+ theirsMap.set(e.key, e);
199
+ // Ordre des clés : ours first, puis nouvelles clés de theirs
200
+ const oursOrder = oursEntries.filter((e) => e.key).map((e) => e.key);
201
+ const theirsKeys = theirsEntries.filter((e) => e.key).map((e) => e.key);
202
+ const allKeys = [...oursOrder];
203
+ for (const k of theirsKeys) {
204
+ if (!allKeys.includes(k))
205
+ allKeys.push(k);
206
+ }
207
+ const resultLines = [];
208
+ let resolvedKeys = 0;
209
+ let unresolvedKeys = 0;
210
+ // Conserver les lignes non-clé (commentaires, vides) de ours en tête
211
+ for (const e of oursEntries) {
212
+ if (!e.key)
213
+ resultLines.push(...e.rawLines);
214
+ else
215
+ break;
216
+ }
217
+ for (const key of allKeys) {
218
+ const base = baseMap.get(key);
219
+ const ours = oursMap.get(key);
220
+ const theirs = theirsMap.get(key);
221
+ // Clé absente de base → ajout d'un ou des deux côtés
222
+ if (!base) {
223
+ if (ours && theirs) {
224
+ if (linesEqual(ours.rawLines, theirs.rawLines)) {
225
+ // Même ajout des deux côtés
226
+ resultLines.push(...ours.rawLines);
227
+ resolvedKeys++;
228
+ }
229
+ else {
230
+ // Ajout conflictuel → non résolvable
231
+ unresolvedKeys++;
232
+ return { lines: null, resolvedKeys, unresolvedKeys };
233
+ }
234
+ }
235
+ else if (ours) {
236
+ resultLines.push(...ours.rawLines);
237
+ resolvedKeys++;
238
+ }
239
+ else if (theirs) {
240
+ resultLines.push(...theirs.rawLines);
241
+ resolvedKeys++;
242
+ }
243
+ continue;
244
+ }
245
+ // Clé dans base → peut avoir été modifiée/supprimée
246
+ const oursChanged = ours ? !linesEqual(base.rawLines, ours.rawLines) : true; // absent = supprimé
247
+ const theirsChanged = theirs ? !linesEqual(base.rawLines, theirs.rawLines) : true;
248
+ if (!ours && !theirs) {
249
+ // Supprimée des deux côtés → supprimer
250
+ resolvedKeys++;
251
+ continue;
252
+ }
253
+ if (!ours && theirs) {
254
+ if (!theirsChanged) {
255
+ // Ours supprimé, theirs intact → supprimer
256
+ resolvedKeys++;
257
+ }
258
+ else {
259
+ // Ours supprimé, theirs modifié → conflit
260
+ unresolvedKeys++;
261
+ return { lines: null, resolvedKeys, unresolvedKeys };
262
+ }
263
+ continue;
264
+ }
265
+ if (ours && !theirs) {
266
+ if (!oursChanged) {
267
+ // Theirs supprimé, ours intact → supprimer
268
+ resolvedKeys++;
269
+ }
270
+ else {
271
+ // Theirs supprimé, ours modifié → conflit
272
+ unresolvedKeys++;
273
+ return { lines: null, resolvedKeys, unresolvedKeys };
274
+ }
275
+ continue;
276
+ }
277
+ // Ours et theirs présents
278
+ if (!oursChanged && !theirsChanged) {
279
+ // Aucun côté n'a changé → garder base
280
+ resultLines.push(...base.rawLines);
281
+ resolvedKeys++;
282
+ }
283
+ else if (linesEqual(ours.rawLines, theirs.rawLines)) {
284
+ // Same change des deux côtés
285
+ resultLines.push(...ours.rawLines);
286
+ resolvedKeys++;
287
+ }
288
+ else if (!oursChanged) {
289
+ // Seul theirs a changé
290
+ resultLines.push(...theirs.rawLines);
291
+ resolvedKeys++;
292
+ }
293
+ else if (!theirsChanged) {
294
+ // Seul ours a changé
295
+ resultLines.push(...ours.rawLines);
296
+ resolvedKeys++;
297
+ }
298
+ else {
299
+ // Les deux ont changé différemment
300
+ // Tenter récursion si la clé est un objet indenté (ours.scalar === null)
301
+ if (ours.scalar === null && theirs.scalar === null) {
302
+ // Les deux ont un sous-bloc → récursion sur le contenu indenté
303
+ const oursContent = ours.rawLines.slice(1); // sans la ligne-clé
304
+ const theirsContent = theirs.rawLines.slice(1);
305
+ const baseContent = base.rawLines.slice(1);
306
+ const sub = mergeYamlBlocks(baseContent, oursContent, theirsContent);
307
+ if (sub.lines !== null) {
308
+ resultLines.push(ours.rawLines[0]); // ligne-clé de ours
309
+ resultLines.push(...sub.lines);
310
+ resolvedKeys += sub.resolvedKeys;
311
+ unresolvedKeys += sub.unresolvedKeys;
312
+ }
313
+ else {
314
+ unresolvedKeys++;
315
+ return { lines: null, resolvedKeys, unresolvedKeys };
316
+ }
317
+ }
318
+ else if (ours.scalar !== null && theirs.scalar !== null) {
319
+ // Séquences imbriquées ?
320
+ const allList = [...ours.rawLines, ...theirs.rawLines, ...base.rawLines]
321
+ .every((l) => RE_LIST_ITEM.test(l) || l.trim() === "" || RE_COMMENT.test(l));
322
+ if (allList) {
323
+ const merged = mergeSequences(base.rawLines, ours.rawLines, theirs.rawLines);
324
+ if (merged) {
325
+ resultLines.push(...merged);
326
+ resolvedKeys++;
327
+ }
328
+ else {
329
+ unresolvedKeys++;
330
+ return { lines: null, resolvedKeys, unresolvedKeys };
331
+ }
332
+ }
333
+ else {
334
+ // Scalaires différents → conflit non résolvable
335
+ unresolvedKeys++;
336
+ return { lines: null, resolvedKeys, unresolvedKeys };
337
+ }
338
+ }
339
+ else {
340
+ // Type de valeur différent → conflit
341
+ unresolvedKeys++;
342
+ return { lines: null, resolvedKeys, unresolvedKeys };
343
+ }
344
+ }
345
+ }
346
+ return { lines: resultLines, resolvedKeys, unresolvedKeys };
347
+ }
348
+ // ─── Public API ───────────────────────────────────────────
349
+ /**
350
+ * Tente de résoudre un conflit YAML en fusionnant structurellement
351
+ * les trois versions.
352
+ *
353
+ * @param baseLines - Lignes de la version base
354
+ * @param oursLines - Lignes de la version ours
355
+ * @param theirsLines - Lignes de la version theirs
356
+ * @returns `YamlMergeResult` avec `mergedLines !== null` si résolu, `null` sinon
357
+ */
358
+ export function tryResolveYamlConflict(baseLines, oursLines, theirsLines) {
359
+ // Rejeter les constructions non supportées
360
+ if (hasUnsupportedConstruct(oursLines) ||
361
+ hasUnsupportedConstruct(theirsLines)) {
362
+ return {
363
+ mergedLines: null,
364
+ reason: "YAML contient des anchors, aliases ou block scalars — fusion structurelle non supportée (fallback textuel).",
365
+ resolvedKeys: 0,
366
+ unresolvedKeys: 1,
367
+ };
368
+ }
369
+ // ── Cas spécial v1.4 : séquence scalaire de premier niveau ──
370
+ // Quand tout le hunk est une liste `- item` sans imbrication,
371
+ // appeler mergeSequences directement (le parser clé-valeur ne gère pas ce cas).
372
+ if (isAllScalarSequence(oursLines) && isAllScalarSequence(theirsLines)) {
373
+ const merged = mergeSequences(baseLines, oursLines, theirsLines);
374
+ if (merged !== null) {
375
+ return {
376
+ mergedLines: merged,
377
+ reason: `YAML séquence scalaire — union des éléments (${merged.length} entrées).`,
378
+ resolvedKeys: 1,
379
+ unresolvedKeys: 0,
380
+ };
381
+ }
382
+ return {
383
+ mergedLines: null,
384
+ reason: "YAML séquence scalaire — fusion impossible (éléments en conflit).",
385
+ resolvedKeys: 0,
386
+ unresolvedKeys: 1,
387
+ };
388
+ }
389
+ const { lines, resolvedKeys, unresolvedKeys } = mergeYamlBlocks(baseLines, oursLines, theirsLines);
390
+ if (lines === null) {
391
+ return {
392
+ mergedLines: null,
393
+ reason: `Fusion YAML impossible : ${unresolvedKeys} clé(s) en conflit non résolvable.`,
394
+ resolvedKeys,
395
+ unresolvedKeys,
396
+ };
397
+ }
398
+ return {
399
+ mergedLines: lines,
400
+ reason: `Fusion YAML structurelle réussie : ${resolvedKeys} clé(s) fusionnée(s).`,
401
+ resolvedKeys,
402
+ unresolvedKeys,
403
+ };
404
+ }
405
+ //# sourceMappingURL=yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/resolvers/yaml.ts"],"names":[],"mappings":"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"}