v-code-diff 1.14.0 → 1.14.1

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.
@@ -8,7 +8,9 @@
8
8
  https://github.com/highlightjs/highlight.js/issues/2277`),x=E,U=M),k===void 0&&(k=!0);const W={code:U,language:x};se("before:highlight",W);const j=W.result?W.result:o(W.language,W.code,k);return j.code=W.code,se("after:highlight",j),j}function o(E,M,k,U){const x=Object.create(null);function W(A,C){return A.keywords[C]}function j(){if(!O.keywords){V.addText(H);return}let A=0;O.keywordPatternRe.lastIndex=0;let C=O.keywordPatternRe.exec(H),I="";for(;C;){I+=H.substring(A,C.index);const z=ne.case_insensitive?C[0].toLowerCase():C[0],G=W(O,z);if(G){const[te,Yr]=G;if(V.addText(I),I="",x[z]=(x[z]||0)+1,x[z]<=Ct&&(Ae+=Yr),te.startsWith("_"))I+=C[0];else{const Xr=ne.classNameAliases[te]||te;ee(C[0],Xr)}}else I+=C[0];A=O.keywordPatternRe.lastIndex,C=O.keywordPatternRe.exec(H)}I+=H.substring(A),V.addText(I)}function we(){if(H==="")return;let A=null;if(typeof O.subLanguage=="string"){if(!t[O.subLanguage]){V.addText(H);return}A=o(O.subLanguage,H,!0,Ln[O.subLanguage]),Ln[O.subLanguage]=A._top}else A=d(H,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(Ae+=A.relevance),V.__addSublanguage(A._emitter,A.language)}function Z(){O.subLanguage!=null?we():j(),H=""}function ee(A,C){A!==""&&(V.startScope(C),V.addText(A),V.endScope())}function Mn(A,C){let I=1;const z=C.length-1;for(;I<=z;){if(!A._emit[I]){I++;continue}const G=ne.classNameAliases[A[I]]||A[I],te=C[I];G?ee(te,G):(H=te,j(),H=""),I++}}function Sn(A,C){return A.scope&&typeof A.scope=="string"&&V.openNode(ne.classNameAliases[A.scope]||A.scope),A.beginScope&&(A.beginScope._wrap?(ee(H,ne.classNameAliases[A.beginScope._wrap]||A.beginScope._wrap),H=""):A.beginScope._multi&&(Mn(A.beginScope,C),H="")),O=Object.create(A,{parent:{value:O}}),O}function Tn(A,C,I){let z=Qn(A.endRe,I);if(z){if(A["on:end"]){const G=new We(A);A["on:end"](C,G),G.isMatchIgnored&&(z=!1)}if(z){for(;A.endsParent&&A.parent;)A=A.parent;return A}}if(A.endsWithParent)return Tn(A.parent,C,I)}function Gr(A){return O.matcher.regexIndex===0?(H+=A[0],1):(xe=!0,0)}function Kr(A){const C=A[0],I=A.rule,z=new We(I),G=[I.__beforeBegin,I["on:begin"]];for(const te of G)if(te&&(te(A,z),z.isMatchIgnored))return Gr(C);return I.skip?H+=C:(I.excludeBegin&&(H+=C),Z(),!I.returnBegin&&!I.excludeBegin&&(H=C)),Sn(I,A),I.returnBegin?0:C.length}function Wr(A){const C=A[0],I=M.substring(A.index),z=Tn(O,A,I);if(!z)return cn;const G=O;O.endScope&&O.endScope._wrap?(Z(),ee(C,O.endScope._wrap)):O.endScope&&O.endScope._multi?(Z(),Mn(O.endScope,A)):G.skip?H+=C:(G.returnEnd||G.excludeEnd||(H+=C),Z(),G.excludeEnd&&(H=C));do O.scope&&V.closeNode(),!O.skip&&!O.subLanguage&&(Ae+=O.relevance),O=O.parent;while(O!==z.parent);return z.starts&&Sn(z.starts,A),G.returnEnd?0:C.length}function Qr(){const A=[];for(let C=O;C!==ne;C=C.parent)C.scope&&A.unshift(C.scope);A.forEach(C=>V.openNode(C))}let Ne={};function Dn(A,C){const I=C&&C[0];if(H+=A,I==null)return Z(),0;if(Ne.type==="begin"&&C.type==="end"&&Ne.index===C.index&&I===""){if(H+=M.slice(C.index,C.index+1),!h){const z=new Error(`0 width match regex (${E})`);throw z.languageName=E,z.badRule=Ne.rule,z}return 1}if(Ne=C,C.type==="begin")return Kr(C);if(C.type==="illegal"&&!k){const z=new Error('Illegal lexeme "'+I+'" for mode "'+(O.scope||"<unnamed>")+'"');throw z.mode=O,z}else if(C.type==="end"){const z=Wr(C);if(z!==cn)return z}if(C.type==="illegal"&&I==="")return 1;if(He>1e5&&He>C.index*3)throw new Error("potential infinite loop, way more iterations than matches");return H+=I,I.length}const ne=S(E);if(!ne)throw oe(n.replace("{}",E)),new Error('Unknown language: "'+E+'"');const Zr=St(ne);let ze="",O=U||Zr;const Ln={},V=new i.__emitter(i);Qr();let H="",Ae=0,le=0,He=0,xe=!1;try{if(ne.__emitTokens)ne.__emitTokens(M,V);else{for(O.matcher.considerAll();;){He++,xe?xe=!1:O.matcher.considerAll(),O.matcher.lastIndex=le;const A=O.matcher.exec(M);if(!A)break;const C=M.substring(le,A.index),I=Dn(C,A);le=A.index+I}Dn(M.substring(le))}return V.finalize(),ze=V.toHTML(),{language:E,value:ze,relevance:Ae,illegal:!1,_emitter:V,_top:O}}catch(A){if(A.message&&A.message.includes("Illegal"))return{language:E,value:Ie(M),illegal:!0,relevance:0,_illegalBy:{message:A.message,index:le,context:M.slice(le-100,le+100),mode:A.mode,resultSoFar:ze},_emitter:V};if(h)return{language:E,value:Ie(M),illegal:!1,relevance:0,errorRaised:A,_emitter:V,_top:O};throw A}}function u(E){const M={value:Ie(E),illegal:!1,relevance:0,_top:r,_emitter:new i.__emitter(i)};return M._emitter.addText(E),M}function d(E,M){M=M||i.languages||Object.keys(t);const k=u(E),U=M.filter(S).filter($).map(Z=>o(Z,E,!1));U.unshift(k);const x=U.sort((Z,ee)=>{if(Z.relevance!==ee.relevance)return ee.relevance-Z.relevance;if(Z.language&&ee.language){if(S(Z.language).supersetOf===ee.language)return 1;if(S(ee.language).supersetOf===Z.language)return-1}return 0}),[W,j]=x,we=W;return we.secondBest=j,we}function _(E,M,k){const U=M&&c[M]||k;E.classList.add("hljs"),E.classList.add(`language-${U}`)}function p(E){let M=null;const k=l(E);if(s(k))return;if(se("before:highlightElement",{el:E,language:k}),E.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",E);return}if(E.children.length>0&&(i.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(E)),i.throwUnescapedHTML))throw new Lt("One of your code blocks includes unescaped HTML.",E.innerHTML);M=E;const U=M.textContent,x=k?a(U,{language:k,ignoreIllegals:!0}):d(U);E.innerHTML=x.value,E.dataset.highlighted="yes",_(E,k,x.language),E.result={language:x.language,re:x.relevance,relevance:x.relevance},x.secondBest&&(E.secondBest={language:x.secondBest.language,relevance:x.secondBest.relevance}),se("after:highlightElement",{el:E,result:x,text:U})}function b(E){i=ln(i,E)}const m=()=>{w(),ce("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){w(),ce("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function w(){if(document.readyState==="loading"){y=!0;return}document.querySelectorAll(i.cssSelector).forEach(p)}function D(){y&&w()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",D,!1);function T(E,M){let k=null;try{k=M(e)}catch(U){if(oe("Language definition for '{}' could not be registered.".replace("{}",E)),h)oe(U);else throw U;k=r}k.name||(k.name=E),t[E]=k,k.rawDefinition=M.bind(null,e),k.aliases&&R(k.aliases,{languageName:E})}function L(E){delete t[E];for(const M of Object.keys(c))c[M]===E&&delete c[M]}function B(){return Object.keys(t)}function S(E){return E=(E||"").toLowerCase(),t[E]||t[c[E]]}function R(E,{languageName:M}){typeof E=="string"&&(E=[E]),E.forEach(k=>{c[k.toLowerCase()]=M})}function $(E){const M=S(E);return M&&!M.disableAutodetect}function P(E){E["before:highlightBlock"]&&!E["before:highlightElement"]&&(E["before:highlightElement"]=M=>{E["before:highlightBlock"](Object.assign({block:M.el},M))}),E["after:highlightBlock"]&&!E["after:highlightElement"]&&(E["after:highlightElement"]=M=>{E["after:highlightBlock"](Object.assign({block:M.el},M))})}function F(E){P(E),g.push(E)}function K(E){const M=g.indexOf(E);M!==-1&&g.splice(M,1)}function se(E,M){const k=E;g.forEach(function(U){U[k]&&U[k](M)})}function ge(E){return ce("10.7.0","highlightBlock will be removed entirely in v12.0"),ce("10.7.0","Please use highlightElement now."),p(E)}Object.assign(e,{highlight:a,highlightAuto:d,highlightAll:w,highlightElement:p,highlightBlock:ge,configure:b,initHighlighting:m,initHighlightingOnLoad:v,registerLanguage:T,unregisterLanguage:L,listLanguages:B,getLanguage:S,registerAliases:R,autoDetection:$,inherit:ln,addPlugin:F,removePlugin:K}),e.debugMode=function(){h=!1},e.safeMode=function(){h=!0},e.versionString=Dt,e.regex={concat:ae,lookahead:Xe,either:Re,optional:Kn,anyNumberOfTimes:Gn};for(const E in me)typeof me[E]=="object"&&Ke(me[E]);return Object.assign(e,me),e},fe=fn({});fe.newInstance=()=>fn({});var Rt=fe;fe.HighlightJS=fe,fe.default=fe;const Y=zn(Rt);function kt(e){const t=e.regex,c=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),g=/[\p{L}0-9._:-]+/u,h={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},n={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(n,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:g,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[h]},{begin:/'/,end:/'/,contains:[h]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[n,s,i,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[n,r,s,i]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},h,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(c,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:c,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(c,/>/))),contains:[{className:"name",begin:c,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const un="[A-Za-z$_][0-9A-Za-z$_]*",Ot=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],It=["true","false","null","undefined","NaN","Infinity"],gn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],hn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],dn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Bt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$t=[].concat(dn,gn,hn);function Ut(e){const t=e.regex,c=(M,{after:k})=>{const U="</"+M[0].slice(1);return M.input.indexOf(U,k)!==-1},g=un,h={begin:"<>",end:"</>"},n=/<[A-Za-z0-9\\._:-]+\s*\/>/,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(M,k)=>{const U=M[0].length+M.index,x=M.input[U];if(x==="<"||x===","){k.ignoreMatch();return}x===">"&&(c(M,{after:U})||k.ignoreMatch());let W;const j=M.input.substring(U);if(W=j.match(/^\s*=/)){k.ignoreMatch();return}if((W=j.match(/^\s+extends\s+/))&&W.index===0){k.ignoreMatch();return}}},i={$pattern:un,keyword:Ot,literal:It,built_in:$t,"variable.language":Bt},s="[0-9](_?[0-9])*",l=`\\.(${s})`,a="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",o={className:"number",variants:[{begin:`(\\b(${a})((${l})|\\.)?|(${l}))[eE][+-]?(${s})\\b`},{begin:`\\b(${a})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},d={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},_={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},v={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:g+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,_,p,b,{match:/\$\d+/},o];u.contains=y.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(y)});const w=[].concat(v,u.contains),D=w.concat([{begin:/(\s*)\(/,end:/\)/,keywords:i,contains:["self"].concat(w)}]),T={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:D},L={variants:[{match:[/class/,/\s+/,g,/\s+/,/extends/,/\s+/,t.concat(g,"(",t.concat(/\./,g),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,g],scope:{1:"keyword",3:"title.class"}}]},B={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...gn,...hn]}},S={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},R={variants:[{match:[/function/,/\s+/,g,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[T],illegal:/%/},$={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function P(M){return t.concat("(?!",M.join("|"),")")}const F={match:t.concat(/\b/,P([...dn,"super","import"].map(M=>`${M}\\s*\\(`)),g,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},K={begin:t.concat(/\./,t.lookahead(t.concat(g,/(?![0-9A-Za-z$_(])/))),end:g,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},se={match:[/get|set/,/\s+/,g,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},T]},ge="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",E={match:[/const|var|let/,/\s+/,g,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ge)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[T]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:D,CLASS_REFERENCE:B},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),S,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,_,p,b,v,{match:/\$\d+/},o,B,{className:"attr",begin:g+t.lookahead(":"),relevance:0},E,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,e.REGEXP_MODE,{className:"function",begin:ge,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:D}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:h.begin,end:h.end},{match:n},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},R,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[T,e.inherit(e.TITLE_MODE,{begin:g,className:"title.function"})]},{match:/\.\.\./,relevance:0},K,{match:"\\$"+g,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[T]},F,$,L,se,{match:/\$[(.]/}]}}function Pt(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},c={match:/[{}[\],:]/,className:"punctuation",relevance:0},g=["true","false","null"],h={scope:"literal",beginKeywords:g.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:g},contains:[t,c,e.QUOTE_STRING_MODE,h,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function zt(e){const t="true false yes no null",c="[\\w#;/?:@&=+$,.~*'()[\\]]+",g={className:"attr",variants:[{begin:/\w[\w :()\./-]*:(?=[ \t]|$)/},{begin:/"\w[\w :()\./-]*":(?=[ \t]|$)/},{begin:/'\w[\w :()\./-]*':(?=[ \t]|$)/}]},h={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},n={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,h]},r=e.inherit(n,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),o={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},u={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},d={begin:/\{/,end:/\}/,contains:[u],illegal:"\\n",relevance:0},_={begin:"\\[",end:"\\]",contains:[u],illegal:"\\n",relevance:0},p=[g,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+c},{className:"type",begin:"!<"+c+">"},{className:"type",begin:"!"+c},{className:"type",begin:"!!"+c},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},o,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},d,_,n],b=[...p];return b.pop(),b.push(r),u.contains=b,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:p}}function Ht(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function xt(e){const t=e.regex,c=/[\p{XID_Start}_]\p{XID_Continue}*/u,g=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:g,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},s={className:"meta",begin:/^(>>>|\.\.\.) /},l={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},a={begin:/\{\{/,relevance:0},o={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s,a,l]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,a,l]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,a,l]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,l]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u="[0-9](_?[0-9])*",d=`(\\b(${u}))?\\.(${u})|\\b(${u})\\.`,_=`\\b|${g.join("|")}`,p={className:"number",relevance:0,variants:[{begin:`(\\b(${u})|(${d}))[eE][+-]?(${u})[jJ]?(?=${_})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${_})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${_})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${_})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${_})`},{begin:`\\b(${u})[jJ](?=${_})`}]},b={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",s,p,o,e.HASH_COMMENT_MODE]}]};return l.contains=[o,p,s],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[s,p,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},o,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,c],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,c,/\s*/,/\(\s*/,c,/\s*\)/]},{match:[/\bclass/,/\s+/,c]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[p,m,o]}]}}var ue="[0-9](_*[0-9])*",ve=`\\.(${ue})`,ye="[0-9a-fA-F](_*[0-9a-fA-F])*",pn={className:"number",variants:[{begin:`(\\b(${ue})((${ve})|\\.)?|(${ve}))[eE][+-]?(${ue})[fFdD]?\\b`},{begin:`\\b(${ue})((${ve})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ve})[fFdD]?\\b`},{begin:`\\b(${ue})[fFdD]\\b`},{begin:`\\b0[xX]((${ye})\\.?|(${ye})?\\.(${ye}))[pP][+-]?(${ue})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ye})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function _n(e,t,c){return c===-1?"":e.replace(t,g=>_n(e,t,c-1))}function Ft(e){const t=e.regex,c="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",g=c+_n("(?:<"+c+"~~~(?:\\s*,\\s*"+c+"~~~)*>)?",/~~~/g,2),s={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},l={className:"meta",begin:"@"+c,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},a={className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:s,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,c],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,c),/\s+/,c,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,c],className:{1:"keyword",3:"title.class"},contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+g+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:s,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[l,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,pn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},pn,l]}}function Vt(e){const t=e.regex,c={},g={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[c]}]};Object.assign(c,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},g]});const h={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,h]};h.contains.push(i);const s={match:/\\"/},l={className:"string",begin:/'/,end:/'/},a={match:/\\'/},o={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,c]},u=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],d=e.SHEBANG({binary:`(${u.join("|")})`,relevance:10}),_={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},p=["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],b=["true","false"],m={match:/(\/[a-z._-]+)+/},v=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],y=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],w=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],D=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:p,literal:b,built_in:[...v,...y,"set","shopt",...w,...D]},contains:[d,e.SHEBANG(),_,o,n,r,m,i,s,l,a,c]}}function Gt(e){const t=e.regex,c=e.COMMENT("--","$"),g={className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},h={begin:/"/,end:/"/,contains:[{begin:/""/}]},n=["true","false","unknown"],r=["double precision","large object","with timezone","without timezone"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["add","asc","collation","desc","final","first","last","view"],l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],u=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],d=a,_=[...l,...s].filter(y=>!a.includes(y)),p={className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},b={className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={begin:t.concat(/\b/,t.either(...d),/\s*\(/),relevance:0,keywords:{built_in:d}};function v(y,{exceptions:w,when:D}={}){const T=D;return w=w||[],y.map(L=>L.match(/\|\d+$/)||w.includes(L)?L:T(L)?`${L}|0`:L)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(_,{when:y=>y.length<3}),literal:n,type:i,built_in:o},contains:[{begin:t.either(...u),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:_.concat(u),literal:n,type:i}},{className:"type",begin:t.either(...r)},m,p,g,h,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,c,b]}}Y.registerLanguage("xml",kt),Y.registerLanguage("javascript",Ut),Y.registerLanguage("json",Pt),Y.registerLanguage("yaml",zt),Y.registerLanguage("plaintext",Ht),Y.registerLanguage("python",xt),Y.registerLanguage("java",Ft),Y.registerLanguage("bash",Vt),Y.registerLanguage("sql",Gt);var N=(e=>(e.EQUAL="equal",e.DELETE="removed",e.ADD="added",e.EMPTY="empty",e))(N||{});const q="<code-diff-modified>",J="</code-diff-modified>",Kt=1e4,X=1e3,bn=q.replace("<","&lt;").replace(">","&gt;"),mn=J.replace("<","&lt;").replace(">","&gt;");function Wt(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return e.replace(/[&<>"']/g,c=>t[c])}function ie(e){return e===void 0?N.EQUAL:e.added?N.ADD:e.removed?N.DELETE:N.EQUAL}function En(e,t,c="word",g=!1){if(typeof e=="undefined"||typeof t=="undefined")return[e,t];if(!g&&e.length+t.length>Kt)return[e,t];const n=(c==="char"?kn:In)(e,t),r=n.filter(s=>ie(s)!==N.ADD).map(s=>ie(s)===N.DELETE?`${q}${s.value}${J}`:s.value).join(""),i=n.filter(s=>ie(s)!==N.DELETE).map(s=>ie(s)===N.ADD?`${q}${s.value}${J}`:s.value).join("");return[r,i]}function vn(e,t){if(e===t)return e?[{count:e.replace(/\n$/,"").split(`
9
9
  `).length,value:e}]:[];const c=e.endsWith(`
10
10
  `),g=t.endsWith(`
11
- `);c!==g&&(c?e=e.slice(0,-1):t=t.slice(0,-1));let h;if(e.length+t.length>=1e5&&e.includes(`
11
+ `);c!==g&&(c?e=e.slice(0,-1):t=t.slice(0,-1)),e&&(e+=`
12
+ `),t&&(t+=`
13
+ `);let h;if(e.length+t.length>=1e5&&e.includes(`
12
14
  `)&&t.includes(`
13
15
  `)){const n=e?e.replace(/\n$/,"").split(`
14
16
  `):[],r=t?t.replace(/\n$/,"").split(`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "v-code-diff",
3
3
  "type": "module",
4
- "version": "1.14.0",
4
+ "version": "1.14.1",
5
5
  "packageManager": "pnpm@11.2.2",
6
6
  "description": "A code diff viewer for Vue 2.6, Vue 2.7, and Vue 3",
7
7
  "license": "MIT",
@@ -56,7 +56,9 @@
56
56
  "postinstall": "node scripts/postinstall.cjs",
57
57
  "prepublishOnly": "npm run build",
58
58
  "release": "bumpp --commit --no-push --tag && npm publish",
59
- "test": "vitest run"
59
+ "test": "run-s test:unit test:types",
60
+ "test:types": "tsc --noEmit --skipLibCheck --module ESNext --moduleResolution node --target ES2020 tests/types.test-d.ts",
61
+ "test:unit": "vitest run"
60
62
  },
61
63
  "peerDependencies": {
62
64
  "@vue/composition-api": "^1.4.9",
package/src/utils.ts CHANGED
@@ -74,6 +74,11 @@ function diffLines(prev: string, current: string) {
74
74
  current = current.slice(0, -1)
75
75
  }
76
76
 
77
+ if (prev)
78
+ prev += '\n'
79
+ if (current)
80
+ current += '\n'
81
+
77
82
  let changes: Diff.Change[] | undefined
78
83
  if (prev.length + current.length >= 100_000 && prev.includes('\n') && current.includes('\n')) {
79
84
  const prevLines = prev ? prev.replace(/\n$/, '').split('\n') : []
package/types/index.d.ts CHANGED
@@ -1,18 +1,66 @@
1
1
  import type { HLJSApi } from 'highlight.js'
2
- import type { DefineComponent } from 'vue-demi'
2
+ import type { DefineComponent, VNode } from 'vue-demi'
3
3
 
4
- declare const _default: {
5
- install: (app: any) => void
6
- hljs: HLJSApi
4
+ export interface CodeDiffProps {
5
+ newString: string
6
+ oldString: string
7
+ language?: string
8
+ context?: number
9
+ diffStyle?: 'word' | 'char'
10
+ forceInlineComparison?: boolean
11
+ outputFormat?: 'line-by-line' | 'side-by-side'
12
+ trim?: boolean
13
+ noDiffLineFeed?: boolean
14
+ maxHeight?: string
15
+ filename?: string
16
+ newFilename?: string
17
+ hideHeader?: boolean
18
+ hideStat?: boolean
19
+ theme?: 'light' | 'dark'
20
+ ignoreMatchingLines?: string
21
+ }
22
+
23
+ export interface CodeReaderProps {
24
+ text: string
25
+ language?: string
26
+ }
27
+
28
+ export interface DiffStat {
29
+ additionsNum: number
30
+ deletionsNum: number
31
+ ignoreAdditionsNum: number
32
+ ignoreDeletionsNum: number
33
+ }
34
+
35
+ export interface DiffResult {
36
+ stat: {
37
+ isChanged: boolean
38
+ addNum: number
39
+ delNum: number
40
+ }
41
+ }
42
+
43
+ export interface CodeDiffSlots {
44
+ stat: (props: { stat: DiffStat }) => VNode[]
45
+ }
46
+
47
+ interface CodeDiffEmits {
48
+ diff: (diffResult: DiffResult) => void
49
+ }
50
+
51
+ type Empty = Record<string, never>
52
+ type CodeDiffComponent = DefineComponent<CodeDiffProps, Empty, Empty, Empty, Empty, Empty, Empty, CodeDiffEmits, 'diff'>
53
+
54
+ export declare const CodeDiff: CodeDiffComponent & {
55
+ new (): InstanceType<CodeDiffComponent> & { $slots: CodeDiffSlots }
7
56
  }
8
57
 
9
- // eslint-disable-next-line
10
- declare const CodeDiff: DefineComponent<{}, {}, any>
11
- // eslint-disable-next-line
12
- declare const CodeReader: DefineComponent<{}, {}, any>
13
- export {
14
- CodeDiff,
15
- CodeReader,
58
+ export declare const CodeReader: DefineComponent<CodeReaderProps>
59
+ export declare const hljs: HLJSApi
60
+
61
+ declare const plugin: {
62
+ install: (app: { component: (name: string, component: unknown) => unknown }) => void
63
+ hljs: HLJSApi
16
64
  }
17
65
 
18
- export default _default
66
+ export default plugin