semver-conflict-resolver
Version:
Plugin for git-json-resolver that applies semver-based merge strategies (max, min, secure, override) to resolve version conflicts in package.json and similar files.
2 lines (1 loc) • 3 kB
JavaScript
var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var h=(e,r)=>{for(var s in r)g(e,s,{get:r[s],enumerable:!0})},F=(e,r,s,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of k(r))!A.call(e,i)&&i!==s&&g(e,i,{get:()=>r[i],enumerable:!(a=C(r,i))||a.enumerable});return e};var V=e=>F(g({},"__esModule",{value:!0}),e);var R={};h(R,{default:()=>b,init:()=>j,semverMax:()=>I,semverMin:()=>M,semverOurs:()=>N,semverTheirs:()=>O});module.exports=V(R);var v=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,p=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");let r=e.match(v);if(!r)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return r.shift(),r},P=e=>e==="*"||e==="x"||e==="X",w=e=>{let r=parseInt(e,10);return isNaN(r)?e:r},T=(e,r)=>typeof e!=typeof r?[String(e),String(r)]:[e,r],Z=(e,r)=>{if(P(e)||P(r))return 0;let[s,a]=T(w(e),w(r));return s>a?1:s<a?-1:0},d=(e,r)=>{for(let s=0;s<Math.max(e.length,r.length);s++){let a=Z(e[s]||"0",r[s]||"0");if(a!==0)return a}return 0};var u=(e,r)=>{let s=p(e),a=p(r),i=s.pop(),m=a.pop(),c=d(s,a);return c!==0?c:i&&m?d(i.split("."),m.split(".")):i||m?i?-1:1:0};var S=e=>typeof e=="string"&&/^[v\d]/.test(e)&&v.test(e),x=e=>typeof e=="string"&&/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.test(e);var o=require("git-json-resolver/utils"),y={strict:!0,fallback:"continue",preferValid:!0,preferRange:!1,workspacePattern:""},z=(e=y)=>{let r=t=>{if(typeof t!="string")return!1;let n=t.trim().replace(/^\^/,"");return e.strict&&x(n),S(n)},s=({ours:t,theirs:n})=>{if(r(t)&&r(n)){let f=u(t,n)>=0?t:n;return{status:o.StrategyStatus_OK,value:f}}return c({ours:t,theirs:n})},a=({ours:t,theirs:n})=>{if(r(t)&&r(n)){let f=u(t,n)<=0?t:n;return{status:o.StrategyStatus_OK,value:f}}return c({ours:t,theirs:n})},i=({ours:t,theirs:n})=>r(t)?{status:o.StrategyStatus_OK,value:t}:c({ours:t,theirs:n}),m=({ours:t,theirs:n})=>r(n)?{status:o.StrategyStatus_OK,value:n}:c({ours:t,theirs:n}),c=({ours:t,theirs:n})=>{if(e.preferValid){if(r(t))return{status:o.StrategyStatus_OK,value:t};if(r(n))return{status:o.StrategyStatus_OK,value:n}}switch(e.fallback){case"ours":return{status:o.StrategyStatus_OK,value:t};case"theirs":return{status:o.StrategyStatus_OK,value:n};case"error":return{status:o.StrategyStatus_FAIL,reason:"No valid semver found"};case"continue":default:return{status:o.StrategyStatus_CONTINUE}}};return{strategies:{"semver-max":s,"semver-min":a,"semver-ours":i,"semver-theirs":m}}},b=z,{strategies:l}=z(y),I=l["semver-max"],M=l["semver-min"],N=l["semver-ours"],O=l["semver-theirs"],j=e=>{Object.assign(y,e)};0&&(module.exports={init,semverMax,semverMin,semverOurs,semverTheirs});
;