/** * GitWand — Résolveur sémantique pour package-lock.json (npm) * * Au lieu de traiter package-lock.json comme un fichier opaque (→ theirs), * ce résolveur comprend la structure : chaque entrée dans "packages" ou * "dependencies" est un nœud indépendant. * * Stratégie : * 1. Parser les trois versions (base, ours, theirs) en maps de dépendances * 2. Merge 3-way par clé (path de package) : * - Ajouté d'un seul côté → prendre l'ajout * - Supprimé d'un seul côté (pas modifié de l'autre) → supprimer * - Modifié d'un seul côté → prendre la modification * - Modifié des deux côtés avec même résultat → ok * - Modifié des deux côtés avec résultat différent → conflit (prefer-theirs par défaut) * 3. Reconstruire le JSON avec l'indentation d'origine * * Limitations : * - Ne valide pas la cohérence sémantique (ranges vs resolved) * - Après merge, un `npm install` reste recommandé */ export interface LockfileMergeResult { /** Contenu JSON fusionné ou null si échec */ merged: string | null; /** Raison de la résolution */ reason: string; /** Nombre de paquets fusionnés */ resolvedPackages: number; /** Nombre de conflits de versions */ versionConflicts: number; /** Paquets en conflit (versions incompatibles) */ conflictedPackages: string[]; } /** * Fusionne trois versions d'un package-lock.json par entrée de paquet. */ export declare function tryResolveLockfileNpmConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): LockfileMergeResult; //# sourceMappingURL=lockfile-npm.d.ts.map