ll-package
Version:
2 lines (1 loc) • 5.91 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var w=-1,R=1,S=0;function P(r,a,n,v){if(r===a)return r?[[S,r]]:[];if(n!=null){var i=N(r,a,n);if(i)return i}var l=U(r,a),e=r.substring(0,l);r=r.substring(l),a=a.substring(l),l=z(r,a);var g=r.substring(r.length-l);r=r.substring(0,r.length-l),a=a.substring(0,a.length-l);var h=X(r,a);return e&&h.unshift([S,e]),g&&h.push([S,g]),H(h,v),h}function X(r,a){var n;if(!r)return[[R,a]];if(!a)return[[w,r]];var v=r.length>a.length?r:a,i=r.length>a.length?a:r,l=v.indexOf(i);if(l!==-1)return n=[[R,v.substring(0,l)],[S,i],[R,v.substring(l+i.length)]],r.length>a.length&&(n[0][0]=n[2][0]=w),n;if(i.length===1)return[[w,r],[R,a]];var e=Z(r,a);if(e){var g=e[0],h=e[1],u=e[2],t=e[3],c=e[4],D=P(g,u),A=P(h,t);return D.concat([[S,c]],A)}return Y(r,a)}function Y(r,a){for(var n=r.length,v=a.length,i=Math.ceil((n+v)/2),l=i,e=2*i,g=new Array(e),h=new Array(e),u=0;u<e;u++)g[u]=-1,h[u]=-1;g[l+1]=0,h[l+1]=0;for(var t=n-v,c=t%2!==0,D=0,A=0,m=0,F=0,E=0;E<i;E++){for(var b=-E+D;b<=E-A;b+=2){var s=l+b,_;b===-E||b!==E&&g[s-1]<g[s+1]?_=g[s+1]:_=g[s-1]+1;for(var M=_-b;_<n&&M<v&&r.charAt(_)===a.charAt(M);)_++,M++;if(g[s]=_,_>n)A+=2;else if(M>v)D+=2;else if(c){var p=l+t-b;if(p>=0&&p<e&&h[p]!==-1){var o=n-h[p];if(_>=o)return G(r,a,_,M)}}}for(var I=-E+m;I<=E-F;I+=2){var p=l+I,o;I===-E||I!==E&&h[p-1]<h[p+1]?o=h[p+1]:o=h[p-1]+1;for(var O=o-I;o<n&&O<v&&r.charAt(n-o-1)===a.charAt(v-O-1);)o++,O++;if(h[p]=o,o>n)F+=2;else if(O>v)m+=2;else if(!c){var s=l+t-I;if(s>=0&&s<e&&g[s]!==-1){var _=g[s],M=l+_-s;if(o=n-o,_>=o)return G(r,a,_,M)}}}}return[[w,r],[R,a]]}function G(r,a,n,v){var i=r.substring(0,n),l=a.substring(0,v),e=r.substring(n),g=a.substring(v),h=P(i,l),u=P(e,g);return h.concat(u)}function U(r,a){if(!r||!a||r.charAt(0)!==a.charAt(0))return 0;for(var n=0,v=Math.min(r.length,a.length),i=v,l=0;n<i;)r.substring(l,i)==a.substring(l,i)?(n=i,l=n):v=i,i=Math.floor((v-n)/2+n);return J(r.charCodeAt(i-1))&&i--,i}function z(r,a){if(!r||!a||r.slice(-1)!==a.slice(-1))return 0;for(var n=0,v=Math.min(r.length,a.length),i=v,l=0;n<i;)r.substring(r.length-i,r.length-l)==a.substring(a.length-i,a.length-l)?(n=i,l=n):v=i,i=Math.floor((v-n)/2+n);return K(r.charCodeAt(r.length-i))&&i--,i}function Z(r,a){var n=r.length>a.length?r:a,v=r.length>a.length?a:r;if(n.length<4||v.length*2<n.length)return null;function i(A,m,F){for(var E=A.substring(F,F+Math.floor(A.length/4)),b=-1,s="",_,M,p,o;(b=m.indexOf(E,b+1))!==-1;){var I=U(A.substring(F),m.substring(b)),O=z(A.substring(0,F),m.substring(0,b));s.length<O+I&&(s=m.substring(b-O,b)+m.substring(b,b+I),_=A.substring(0,F-O),M=A.substring(F+I),p=m.substring(0,b-O),o=m.substring(b+I))}return s.length*2>=A.length?[_,M,p,o,s]:null}var l=i(n,v,Math.ceil(n.length/4)),e=i(n,v,Math.ceil(n.length/2)),g;if(!l&&!e)return null;e?l?g=l[4].length>e[4].length?l:e:g=e:g=l;var h,u,t,c;r.length>a.length?(h=g[0],u=g[1],t=g[2],c=g[3]):(t=g[0],c=g[1],h=g[2],u=g[3]);var D=g[4];return[h,u,t,c,D]}function H(r,a){r.push([S,""]);for(var n=0,v=0,i=0,l="",e="",g;n<r.length;){if(n<r.length-1&&!r[n][1]){r.splice(n,1);continue}switch(r[n][0]){case R:i++,e+=r[n][1],n++;break;case w:v++,l+=r[n][1],n++;break;case S:var h=n-i-v-1;if(a){if(h>=0&&W(r[h][1])){var u=r[h][1].slice(-1);if(r[h][1]=r[h][1].slice(0,-1),l=u+l,e=u+e,!r[h][1]){r.splice(h,1),n--;var t=h-1;r[t]&&r[t][0]===R&&(i++,e=r[t][1]+e,t--),r[t]&&r[t][0]===w&&(v++,l=r[t][1]+l,t--),h=t}}if(V(r[n][1])){var u=r[n][1].charAt(0);r[n][1]=r[n][1].slice(1),l+=u,e+=u}}if(n<r.length-1&&!r[n][1]){r.splice(n,1);break}if(l.length>0||e.length>0){l.length>0&&e.length>0&&(g=U(e,l),g!==0&&(h>=0?r[h][1]+=e.substring(0,g):(r.splice(0,0,[S,e.substring(0,g)]),n++),e=e.substring(g),l=l.substring(g)),g=z(e,l),g!==0&&(r[n][1]=e.substring(e.length-g)+r[n][1],e=e.substring(0,e.length-g),l=l.substring(0,l.length-g)));var c=i+v;l.length===0&&e.length===0?(r.splice(n-c,c),n=n-c):l.length===0?(r.splice(n-c,c,[R,e]),n=n-c+1):e.length===0?(r.splice(n-c,c,[w,l]),n=n-c+1):(r.splice(n-c,c,[w,l],[R,e]),n=n-c+2)}n!==0&&r[n-1][0]===S?(r[n-1][1]+=r[n][1],r.splice(n,1)):n++,i=0,v=0,l="",e="";break}}r[r.length-1][1]===""&&r.pop();var D=!1;for(n=1;n<r.length-1;)r[n-1][0]===S&&r[n+1][0]===S&&(r[n][1].substring(r[n][1].length-r[n-1][1].length)===r[n-1][1]?(r[n][1]=r[n-1][1]+r[n][1].substring(0,r[n][1].length-r[n-1][1].length),r[n+1][1]=r[n-1][1]+r[n+1][1],r.splice(n-1,1),D=!0):r[n][1].substring(0,r[n+1][1].length)==r[n+1][1]&&(r[n-1][1]+=r[n+1][1],r[n][1]=r[n][1].substring(r[n+1][1].length)+r[n+1][1],r.splice(n+1,1),D=!0)),n++;D&&H(r,a)}function J(r){return r>=55296&&r<=56319}function K(r){return r>=56320&&r<=57343}function V(r){return K(r.charCodeAt(0))}function W(r){return J(r.charCodeAt(r.length-1))}function $(r){for(var a=[],n=0;n<r.length;n++)r[n][1].length>0&&a.push(r[n]);return a}function Q(r,a,n,v){return W(r)||V(v)?null:$([[S,r],[w,a],[R,n],[S,v]])}function N(r,a,n){var v=typeof n=="number"?{index:n,length:0}:n.oldRange,i=typeof n=="number"?null:n.newRange,l=r.length,e=a.length;if(v.length===0&&(i===null||i.length===0)){var g=v.index,h=r.slice(0,g),u=r.slice(g),t=i?i.index:null;r:{var c=g+e-l;if(t!==null&&t!==c||c<0||c>e)break r;var D=a.slice(0,c),A=a.slice(c);if(A!==u)break r;var m=Math.min(g,c),F=h.slice(0,m),E=D.slice(0,m);if(F!==E)break r;var b=h.slice(m),s=D.slice(m);return Q(F,b,s,u)}r:{if(t!==null&&t!==g)break r;var _=g,D=a.slice(0,_),A=a.slice(_);if(D!==h)break r;var M=Math.min(l-_,e-_),p=u.slice(u.length-M),o=A.slice(A.length-M);if(p!==o)break r;var b=u.slice(0,u.length-M),s=A.slice(0,A.length-M);return Q(h,b,s,p)}}if(v.length>0&&i&&i.length===0)r:{var F=r.slice(0,v.index),p=r.slice(v.index+v.length),m=F.length,M=p.length;if(e<m+M)break r;var E=a.slice(0,m),o=a.slice(e-M);if(F!==E||p!==o)break r;var b=r.slice(m,l-M),s=a.slice(m,e-M);return Q(F,b,s,p)}return null}function j(r,a,n){return P(r,a,n,!0)}j.INSERT=R;j.DELETE=w;j.EQUAL=S;var B=j;exports.diff_1=B;