UNPKG

profoundjs

Version:

Profound.js Framework and Server

1,459 lines (1,447 loc) 126 kB
!(function (e, n) { "object" == typeof exports && "object" == typeof module ? (module.exports = n()) : "function" == typeof define && define.amd ? define("Diff2Html", [], n) : "object" == typeof exports ? (exports.Diff2Html = n()) : (e.Diff2Html = n()); })(this, function () { return (function (e) { var n = {}; function t(i) { if (n[i]) return n[i].exports; var r = (n[i] = { i: i, l: !1, exports: {} }); return e[i].call(r.exports, r, r.exports, t), (r.l = !0), r.exports; } return ( (t.m = e), (t.c = n), (t.d = function (e, n, i) { t.o(e, n) || Object.defineProperty(e, n, { enumerable: !0, get: i }); }), (t.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (t.t = function (e, n) { if ((1 & n && (e = t(e)), 8 & n)) return e; if (4 & n && "object" == typeof e && e && e.__esModule) return e; var i = Object.create(null); if ( (t.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & n && "string" != typeof e) ) for (var r in e) t.d( i, r, function (n) { return e[n]; }.bind(null, r) ); return i; }), (t.n = function (e) { var n = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return t.d(n, "a", n), n; }), (t.o = function (e, n) { return Object.prototype.hasOwnProperty.call(e, n); }), (t.p = ""), t((t.s = 5)) ); })([ function (e, n, t) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.DiffStyleType = n.LineMatchingType = n.OutputFormatType = n.LineType = void 0), (function (e) { (e.INSERT = "insert"), (e.DELETE = "delete"), (e.CONTEXT = "context"); })(n.LineType || (n.LineType = {})), (n.OutputFormatType = { LINE_BY_LINE: "line-by-line", SIDE_BY_SIDE: "side-by-side", }), (n.LineMatchingType = { LINES: "lines", WORDS: "words", NONE: "none" }), (n.DiffStyleType = { WORD: "word", CHAR: "char" }); }, function (e, n, t) { "use strict"; var i = (this && this.__assign) || function () { return (i = Object.assign || function (e) { for (var n, t = 1, i = arguments.length; t < i; t++) for (var r in (n = arguments[t])) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]); return e; }).apply(this, arguments); }, r = (this && this.__createBinding) || (Object.create ? function (e, n, t, i) { void 0 === i && (i = t), Object.defineProperty(e, i, { enumerable: !0, get: function () { return n[t]; }, }); } : function (e, n, t, i) { void 0 === i && (i = t), (e[i] = n[t]); }), o = (this && this.__setModuleDefault) || (Object.create ? function (e, n) { Object.defineProperty(e, "default", { enumerable: !0, value: n, }); } : function (e, n) { e.default = n; }), a = (this && this.__importStar) || function (e) { if (e && e.__esModule) return e; var n = {}; if (null != e) for (var t in e) "default" !== t && Object.prototype.hasOwnProperty.call(e, t) && r(n, e, t); return o(n, e), n; }; Object.defineProperty(n, "__esModule", { value: !0 }), (n.diffHighlight = n.getFileIcon = n.getHtmlId = n.filenameDiff = n.deconstructLine = n.escapeForHtml = n.toCSSClass = n.defaultRenderConfig = n.CSSLineClass = void 0); var s = a(t(8)), l = t(3), f = a(t(2)), u = t(0); (n.CSSLineClass = { INSERTS: "d2h-ins", DELETES: "d2h-del", CONTEXT: "d2h-cntx", INFO: "d2h-info", INSERT_CHANGES: "d2h-ins d2h-change", DELETE_CHANGES: "d2h-del d2h-change", }), (n.defaultRenderConfig = { matching: u.LineMatchingType.NONE, matchWordsThreshold: 0.25, maxLineLengthHighlight: 1e4, diffStyle: u.DiffStyleType.WORD, }); var d = f.newDistanceFn(function (e) { return e.value; }), c = f.newMatcherFn(d); function h(e) { return -1 !== e.indexOf("dev/null"); } function p(e) { return e.replace(/(<del[^>]*>((.|\n)*?)<\/del>)/g, ""); } function b(e) { return e .slice(0) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;") .replace(/"/g, "&quot;") .replace(/'/g, "&#x27;") .replace(/\//g, "&#x2F;"); } function g(e, n, t) { void 0 === t && (t = !0); var i = (function (e) { return e ? 2 : 1; })(n); return { prefix: e.substring(0, i), content: t ? b(e.substring(i)) : e.substring(i), }; } function v(e) { var n = l.unifyPath(e.oldName), t = l.unifyPath(e.newName); if (n === t || h(n) || h(t)) return h(t) ? n : t; for ( var i = [], r = [], o = n.split("/"), a = t.split("/"), s = 0, f = o.length - 1, u = a.length - 1; s < f && s < u && o[s] === a[s]; ) i.push(a[s]), (s += 1); for (; f > s && u > s && o[f] === a[u]; ) r.unshift(a[u]), (f -= 1), (u -= 1); var d = i.join("/"), c = r.join("/"), p = o.slice(s, f + 1).join("/"), b = a.slice(s, u + 1).join("/"); return d.length && c.length ? d + "/{" + p + " → " + b + "}/" + c : d.length ? d + "/{" + p + " → " + b + "}" : c.length ? "{" + p + " → " + b + "}/" + c : n + " → " + t; } (n.toCSSClass = function (e) { switch (e) { case u.LineType.CONTEXT: return n.CSSLineClass.CONTEXT; case u.LineType.INSERT: return n.CSSLineClass.INSERTS; case u.LineType.DELETE: return n.CSSLineClass.DELETES; } }), (n.escapeForHtml = b), (n.deconstructLine = g), (n.filenameDiff = v), (n.getHtmlId = function (e) { return "d2h-" + l.hashCode(v(e)).toString().slice(-6); }), (n.getFileIcon = function (e) { var n = "file-changed"; return ( e.isRename || e.isCopy ? (n = "file-renamed") : e.isNew ? (n = "file-added") : e.isDeleted ? (n = "file-deleted") : e.newName !== e.oldName && (n = "file-renamed"), n ); }), (n.diffHighlight = function (e, t, r, o) { void 0 === o && (o = {}); var a = i(i({}, n.defaultRenderConfig), o), l = a.matching, f = a.maxLineLengthHighlight, u = a.matchWordsThreshold, h = a.diffStyle, v = g(e, r, !1), m = g(t, r, !1); if (v.content.length > f || m.content.length > f) return { oldLine: { prefix: v.prefix, content: b(v.content) }, newLine: { prefix: m.prefix, content: b(m.content) }, }; var y = "char" === h ? s.diffChars(v.content, m.content) : s.diffWordsWithSpace(v.content, m.content), w = []; if ("word" === h && "words" === l) { var S = y.filter(function (e) { return e.removed; }), L = y.filter(function (e) { return e.added; }); c(L, S).forEach(function (e) { 1 === e[0].length && 1 === e[1].length && d(e[0][0], e[1][0]) < u && (w.push(e[0][0]), w.push(e[1][0])); }); } var x, C = y.reduce(function (e, n) { var t = n.added ? "ins" : n.removed ? "del" : null, i = w.indexOf(n) > -1 ? ' class="d2h-change"' : "", r = b(n.value); return null !== t ? e + "<" + t + i + ">" + r + "</" + t + ">" : "" + e + r; }, ""); return { oldLine: { prefix: v.prefix, content: ((x = C), x.replace(/(<ins[^>]*>((.|\n)*?)<\/ins>)/g, "")), }, newLine: { prefix: m.prefix, content: p(C) }, }; }); }, function (e, n, t) { "use strict"; function i(e, n) { if (0 === e.length) return n.length; if (0 === n.length) return e.length; var t, i, r = []; for (t = 0; t <= n.length; t++) r[t] = [t]; for (i = 0; i <= e.length; i++) r[0][i] = i; for (t = 1; t <= n.length; t++) for (i = 1; i <= e.length; i++) n.charAt(t - 1) === e.charAt(i - 1) ? (r[t][i] = r[t - 1][i - 1]) : (r[t][i] = Math.min( r[t - 1][i - 1] + 1, Math.min(r[t][i - 1] + 1, r[t - 1][i] + 1) )); return r[n.length][e.length]; } Object.defineProperty(n, "__esModule", { value: !0 }), (n.newMatcherFn = n.newDistanceFn = n.levenshtein = void 0), (n.levenshtein = i), (n.newDistanceFn = function (e) { return function (n, t) { var r = e(n).trim(), o = e(t).trim(); return i(r, o) / (r.length + o.length); }; }), (n.newMatcherFn = function (e) { return function n(t, i, r, o) { void 0 === r && (r = 0), void 0 === o && (o = new Map()); var a = (function (n, t, i) { void 0 === i && (i = new Map()); for (var r, o = 1 / 0, a = 0; a < n.length; ++a) for (var s = 0; s < t.length; ++s) { var l = JSON.stringify([n[a], t[s]]), f = void 0; (i.has(l) && (f = i.get(l))) || ((f = e(n[a], t[s])), i.set(l, f)), f < o && (r = { indexA: a, indexB: s, score: (o = f) }); } return r; })(t, i, o); if (!a || t.length + i.length < 3) return [[t, i]]; var s = t.slice(0, a.indexA), l = i.slice(0, a.indexB), f = [t[a.indexA]], u = [i[a.indexB]], d = a.indexA + 1, c = a.indexB + 1, h = t.slice(d), p = i.slice(c), b = n(s, l, r + 1, o), g = n(f, u, r + 1, o), v = n(h, p, r + 1, o), m = g; return ( (a.indexA > 0 || a.indexB > 0) && (m = b.concat(m)), (t.length > d || i.length > c) && (m = m.concat(v)), m ); }; }); }, function (e, n, t) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.hashCode = n.unifyPath = n.escapeForRegExp = void 0); var i = RegExp( "[" + [ "-", "[", "]", "/", "{", "}", "(", ")", "*", "+", "?", ".", "\\", "^", "$", "|", ].join("\\") + "]", "g" ); (n.escapeForRegExp = function (e) { return e.replace(i, "\\$&"); }), (n.unifyPath = function (e) { return e ? e.replace(/\\/g, "/") : e; }), (n.hashCode = function (e) { var n, t, i = 0; for (n = 0, t = e.length; n < t; n++) (i = (i << 5) - i + e.charCodeAt(n)), (i |= 0); return i; }); }, function (e, n, t) { var i = t(12); (i.Template = t(13).Template), (i.template = i.Template), (e.exports = i); }, function (e, n, t) { "use strict"; var i = (this && this.__assign) || function () { return (i = Object.assign || function (e) { for (var n, t = 1, i = arguments.length; t < i; t++) for (var r in (n = arguments[t])) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]); return e; }).apply(this, arguments); }, r = (this && this.__createBinding) || (Object.create ? function (e, n, t, i) { void 0 === i && (i = t), Object.defineProperty(e, i, { enumerable: !0, get: function () { return n[t]; }, }); } : function (e, n, t, i) { void 0 === i && (i = t), (e[i] = n[t]); }), o = (this && this.__setModuleDefault) || (Object.create ? function (e, n) { Object.defineProperty(e, "default", { enumerable: !0, value: n, }); } : function (e, n) { e.default = n; }), a = (this && this.__importStar) || function (e) { if (e && e.__esModule) return e; var n = {}; if (null != e) for (var t in e) "default" !== t && Object.prototype.hasOwnProperty.call(e, t) && r(n, e, t); return o(n, e), n; }, s = (this && this.__importDefault) || function (e) { return e && e.__esModule ? e : { default: e }; }; Object.defineProperty(n, "__esModule", { value: !0 }), (n.html = n.parse = n.defaultDiff2HtmlConfig = void 0); var l = a(t(6)), f = a(t(7)), u = a(t(9)), d = a(t(10)), c = t(0), h = s(t(11)); (n.defaultDiff2HtmlConfig = i( i( i({}, u.defaultLineByLineRendererConfig), d.defaultSideBySideRendererConfig ), { outputFormat: c.OutputFormatType.LINE_BY_LINE, drawFileList: !0 } )), (n.parse = function (e, t) { return ( void 0 === t && (t = {}), l.parse(e, i(i({}, n.defaultDiff2HtmlConfig), t)) ); }), (n.html = function (e, t) { void 0 === t && (t = {}); var r = i(i({}, n.defaultDiff2HtmlConfig), t), o = "string" == typeof e ? l.parse(e, r) : e, a = new h.default(r); return ( (r.drawFileList ? f.render(o, a) : "") + ("side-by-side" === r.outputFormat ? new d.default(a, r).render(o) : new u.default(a, r).render(o)) ); }); }, function (e, n, t) { "use strict"; var i = (this && this.__spreadArrays) || function () { for (var e = 0, n = 0, t = arguments.length; n < t; n++) e += arguments[n].length; var i = Array(e), r = 0; for (n = 0; n < t; n++) for (var o = arguments[n], a = 0, s = o.length; a < s; a++, r++) i[r] = o[a]; return i; }; Object.defineProperty(n, "__esModule", { value: !0 }), (n.parse = void 0); var r = t(0), o = t(3); function a(e, n) { var t = e.split("."); return t.length > 1 ? t[t.length - 1] : n; } function s(e, n) { return n.reduce(function (n, t) { return n || e.startsWith(t); }, !1); } var l = ["a/", "b/", "i/", "w/", "c/", "o/"]; function f(e, n, t) { var r = void 0 !== t ? i(l, [t]) : l, a = ((n ? new RegExp("^" + o.escapeForRegExp(n) + ' "?(.+?)"?$') : new RegExp('^"?(.+?)"?$') ).exec(e) || [])[1], s = void 0 === a ? "" : a, f = r.find(function (e) { return 0 === s.indexOf(e); }); return (f ? s.slice(f.length) : s).replace( /\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, "" ); } n.parse = function (e, n) { void 0 === n && (n = {}); var t = [], i = null, o = null, l = null, u = null, d = null, c = null, h = null, p = /^old mode (\d{6})/, b = /^new mode (\d{6})/, g = /^deleted file mode (\d{6})/, v = /^new file mode (\d{6})/, m = /^copy from "?(.+)"?/, y = /^copy to "?(.+)"?/, w = /^rename from "?(.+)"?/, S = /^rename to "?(.+)"?/, L = /^similarity index (\d+)%/, x = /^dissimilarity index (\d+)%/, C = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/, T = /^Binary files (.*) and (.*) differ/, N = /^GIT binary patch/, O = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/, _ = /^mode (\d{6}),(\d{6})\.\.(\d{6})/, E = /^new file mode (\d{6})/, H = /^deleted file mode (\d{6}),(\d{6})/, j = e .replace(/\\ No newline at end of file/g, "") .replace(/\r\n?/g, "\n") .split("\n"); function k() { null !== o && null !== i && (i.blocks.push(o), (o = null)); } function F() { null !== i && (i.oldName || null === c || (i.oldName = c), i.newName || null === h || (i.newName = h), i.newName && (t.push(i), (i = null))), (c = null), (h = null); } function P() { k(), F(), (i = { blocks: [], deletedLines: 0, addedLines: 0 }); } function M(e) { var n; k(), null !== i && ((n = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(e)) ? ((i.isCombined = !1), (l = parseInt(n[1], 10)), (d = parseInt(n[2], 10))) : (n = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec( e )) ? ((i.isCombined = !0), (l = parseInt(n[1], 10)), (u = parseInt(n[2], 10)), (d = parseInt(n[3], 10))) : (e.startsWith("@@") && console.error("Failed to parse lines, starting in 0!"), (l = 0), (d = 0), (i.isCombined = !1))), (o = { lines: [], oldStartLine: l, oldStartLine2: u, newStartLine: d, header: e, }); } return ( j.forEach(function (e, t) { if (e && !e.startsWith("*")) { var u, k = j[t - 1], F = j[t + 1], I = j[t + 2]; if (e.startsWith("diff")) { P(); if ( ((u = /^diff --git "?(.+)"? "?(.+)"?/.exec(e)) && ((c = f(u[1], void 0, n.dstPrefix)), (h = f(u[2], void 0, n.srcPrefix))), null === i) ) throw new Error("Where is my file !!!"); i.isGitDiff = !0; } else { if ( ((!i || (!i.isGitDiff && i && e.startsWith("--- ") && F.startsWith("+++ ") && I.startsWith("@@"))) && P(), (e.startsWith("--- ") && F.startsWith("+++ ")) || (e.startsWith("+++ ") && k.startsWith("--- "))) ) { if ( i && !i.oldName && e.startsWith("--- ") && (u = (function (e, n) { return f(e, "---", n); })(e, n.srcPrefix)) ) return ( (i.oldName = u), void (i.language = a(i.oldName, i.language)) ); if ( i && !i.newName && e.startsWith("+++ ") && (u = (function (e, n) { return f(e, "+++", n); })(e, n.dstPrefix)) ) return ( (i.newName = u), void (i.language = a(i.newName, i.language)) ); } if ( i && (e.startsWith("@@") || (i.isGitDiff && i.oldName && i.newName && !o)) ) M(e); else if ( o && (e.startsWith("+") || e.startsWith("-") || e.startsWith(" ")) ) !(function (e) { if (null !== i && null !== o && null !== l && null !== d) { var n = { content: e }, t = i.isCombined ? ["+ ", " +", "++"] : ["+"], a = i.isCombined ? ["- ", " -", "--"] : ["-"]; s(e, t) ? (i.addedLines++, (n.type = r.LineType.INSERT), (n.oldNumber = void 0), (n.newNumber = d++)) : s(e, a) ? (i.deletedLines++, (n.type = r.LineType.DELETE), (n.oldNumber = l++), (n.newNumber = void 0)) : ((n.type = r.LineType.CONTEXT), (n.oldNumber = l++), (n.newNumber = d++)), o.lines.push(n); } })(e); else { var D = !(function (e, n) { for (var t = n; t < j.length - 3; ) { if (e.startsWith("diff")) return !1; if ( j[t].startsWith("--- ") && j[t + 1].startsWith("+++ ") && j[t + 2].startsWith("@@") ) return !0; t++; } return !1; })(e, t); if (null === i) throw new Error("Where is my file !!!"); (u = p.exec(e)) ? (i.oldMode = u[1]) : (u = b.exec(e)) ? (i.newMode = u[1]) : (u = g.exec(e)) ? ((i.deletedFileMode = u[1]), (i.isDeleted = !0)) : (u = v.exec(e)) ? ((i.newFileMode = u[1]), (i.isNew = !0)) : (u = m.exec(e)) ? (D && (i.oldName = u[1]), (i.isCopy = !0)) : (u = y.exec(e)) ? (D && (i.newName = u[1]), (i.isCopy = !0)) : (u = w.exec(e)) ? (D && (i.oldName = u[1]), (i.isRename = !0)) : (u = S.exec(e)) ? (D && (i.newName = u[1]), (i.isRename = !0)) : (u = T.exec(e)) ? ((i.isBinary = !0), (i.oldName = f(u[1], void 0, n.srcPrefix)), (i.newName = f(u[2], void 0, n.dstPrefix)), M("Binary file")) : N.test(e) ? ((i.isBinary = !0), M(e)) : (u = L.exec(e)) ? (i.unchangedPercentage = parseInt(u[1], 10)) : (u = x.exec(e)) ? (i.changedPercentage = parseInt(u[1], 10)) : (u = C.exec(e)) ? ((i.checksumBefore = u[1]), (i.checksumAfter = u[2]), u[3] && (i.mode = u[3])) : (u = O.exec(e)) ? ((i.checksumBefore = [u[2], u[3]]), (i.checksumAfter = u[1])) : (u = _.exec(e)) ? ((i.oldMode = [u[2], u[3]]), (i.newMode = u[1])) : (u = E.exec(e)) ? ((i.newFileMode = u[1]), (i.isNew = !0)) : (u = H.exec(e)) && ((i.deletedFileMode = u[1]), (i.isDeleted = !0)); } } } }), k(), F(), t ); }; }, function (e, n, t) { "use strict"; var i = (this && this.__createBinding) || (Object.create ? function (e, n, t, i) { void 0 === i && (i = t), Object.defineProperty(e, i, { enumerable: !0, get: function () { return n[t]; }, }); } : function (e, n, t, i) { void 0 === i && (i = t), (e[i] = n[t]); }), r = (this && this.__setModuleDefault) || (Object.create ? function (e, n) { Object.defineProperty(e, "default", { enumerable: !0, value: n, }); } : function (e, n) { e.default = n; }), o = (this && this.__importStar) || function (e) { if (e && e.__esModule) return e; var n = {}; if (null != e) for (var t in e) "default" !== t && Object.prototype.hasOwnProperty.call(e, t) && i(n, e, t); return r(n, e), n; }; Object.defineProperty(n, "__esModule", { value: !0 }), (n.render = void 0); var a = o(t(1)); n.render = function (e, n) { var t = e .map(function (e) { return n.render( "file-summary", "line", { fileHtmlId: a.getHtmlId(e), oldName: e.oldName, newName: e.newName, fileName: a.filenameDiff(e), deletedLines: "-" + e.deletedLines, addedLines: "+" + e.addedLines, }, { fileIcon: n.template("icon", a.getFileIcon(e)) } ); }) .join("\n"); return n.render("file-summary", "wrapper", { filesNumber: e.length, files: t, }); }; }, function (e, n, t) { /*! diff v4.0.1 Software License Agreement (BSD License) Copyright (c) 2009-2015, Kevin Decker <kpdecker@gmail.com> All rights reserved. Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Kevin Decker nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @license */ !(function (e) { "use strict"; function n() {} function t(e, n, t, i, r) { for (var o = 0, a = n.length, s = 0, l = 0; o < a; o++) { var f = n[o]; if (f.removed) { if ( ((f.value = e.join(i.slice(l, l + f.count))), (l += f.count), o && n[o - 1].added) ) { var u = n[o - 1]; (n[o - 1] = n[o]), (n[o] = u); } } else { if (!f.added && r) { var d = t.slice(s, s + f.count); (d = d.map(function (e, n) { var t = i[l + n]; return t.length > e.length ? t : e; })), (f.value = e.join(d)); } else f.value = e.join(t.slice(s, s + f.count)); (s += f.count), f.added || (l += f.count); } } var c = n[a - 1]; return ( a > 1 && "string" == typeof c.value && (c.added || c.removed) && e.equals("", c.value) && ((n[a - 2].value += c.value), n.pop()), n ); } function i(e) { return { newPos: e.newPos, components: e.components.slice(0) }; } n.prototype = { diff: function (e, n) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, o = r.callback; "function" == typeof r && ((o = r), (r = {})), (this.options = r); var a = this; function s(e) { return o ? (setTimeout(function () { o(void 0, e); }, 0), !0) : e; } (e = this.castInput(e)), (n = this.castInput(n)), (e = this.removeEmpty(this.tokenize(e))); var l = (n = this.removeEmpty(this.tokenize(n))).length, f = e.length, u = 1, d = l + f, c = [{ newPos: -1, components: [] }], h = this.extractCommon(c[0], n, e, 0); if (c[0].newPos + 1 >= l && h + 1 >= f) return s([{ value: this.join(n), count: n.length }]); function p() { for (var r = -1 * u; r <= u; r += 2) { var o = void 0, d = c[r - 1], h = c[r + 1], p = (h ? h.newPos : 0) - r; d && (c[r - 1] = void 0); var b = d && d.newPos + 1 < l, g = h && 0 <= p && p < f; if (b || g) { if ( (!b || (g && d.newPos < h.newPos) ? ((o = i(h)), a.pushComponent(o.components, void 0, !0)) : ((o = d).newPos++, a.pushComponent(o.components, !0, void 0)), (p = a.extractCommon(o, n, e, r)), o.newPos + 1 >= l && p + 1 >= f) ) return s(t(a, o.components, n, e, a.useLongestToken)); c[r] = o; } else c[r] = void 0; } u++; } if (o) !(function e() { setTimeout(function () { if (u > d) return o(); p() || e(); }, 0); })(); else for (; u <= d; ) { var b = p(); if (b) return b; } }, pushComponent: function (e, n, t) { var i = e[e.length - 1]; i && i.added === n && i.removed === t ? (e[e.length - 1] = { count: i.count + 1, added: n, removed: t }) : e.push({ count: 1, added: n, removed: t }); }, extractCommon: function (e, n, t, i) { for ( var r = n.length, o = t.length, a = e.newPos, s = a - i, l = 0; a + 1 < r && s + 1 < o && this.equals(n[a + 1], t[s + 1]); ) a++, s++, l++; return l && e.components.push({ count: l }), (e.newPos = a), s; }, equals: function (e, n) { return this.options.comparator ? this.options.comparator(e, n) : e === n || (this.options.ignoreCase && e.toLowerCase() === n.toLowerCase()); }, removeEmpty: function (e) { for (var n = [], t = 0; t < e.length; t++) e[t] && n.push(e[t]); return n; }, castInput: function (e) { return e; }, tokenize: function (e) { return e.split(""); }, join: function (e) { return e.join(""); }, }; var r = new n(); function o(e, n) { if ("function" == typeof e) n.callback = e; else if (e) for (var t in e) e.hasOwnProperty(t) && (n[t] = e[t]); return n; } var a = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, s = /\S/, l = new n(); (l.equals = function (e, n) { return ( this.options.ignoreCase && ((e = e.toLowerCase()), (n = n.toLowerCase())), e === n || (this.options.ignoreWhitespace && !s.test(e) && !s.test(n)) ); }), (l.tokenize = function (e) { for ( var n = e.split(/(\s+|[()[\]{}'"]|\b)/), t = 0; t < n.length - 1; t++ ) !n[t + 1] && n[t + 2] && a.test(n[t]) && a.test(n[t + 2]) && ((n[t] += n[t + 2]), n.splice(t + 1, 2), t--); return n; }); var f = new n(); function u(e, n, t) { return f.diff(e, n, t); } f.tokenize = function (e) { var n = [], t = e.split(/(\n|\r\n)/); t[t.length - 1] || t.pop(); for (var i = 0; i < t.length; i++) { var r = t[i]; i % 2 && !this.options.newlineIsToken ? (n[n.length - 1] += r) : (this.options.ignoreWhitespace && (r = r.trim()), n.push(r)); } return n; }; var d = new n(); d.tokenize = function (e) { return e.split(/(\S.+?[.!?])(?=\s+|$)/); }; var c = new n(); function h(e) { return (h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; })(e); } function p(e) { return ( (function (e) { if (Array.isArray(e)) { for (var n = 0, t = new Array(e.length); n < e.length; n++) t[n] = e[n]; return t; } })(e) || (function (e) { if ( Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e) ) return Array.from(e); })(e) || (function () { throw new TypeError( "Invalid attempt to spread non-iterable instance" ); })() ); } c.tokenize = function (e) { return e.split(/([{}:;,]|\s+)/); }; var b = Object.prototype.toString, g = new n(); function v(e, n, t, i, r) { var o, a; for ( n = n || [], t = t || [], i && (e = i(r, e)), o = 0; o < n.length; o += 1 ) if (n[o] === e) return t[o]; if ("[object Array]" === b.call(e)) { for ( n.push(e), a = new Array(e.length), t.push(a), o = 0; o < e.length; o += 1 ) a[o] = v(e[o], n, t, i, r); return n.pop(), t.pop(), a; } if ( (e && e.toJSON && (e = e.toJSON()), "object" === h(e) && null !== e) ) { n.push(e), (a = {}), t.push(a); var s, l = []; for (s in e) e.hasOwnProperty(s) && l.push(s); for (l.sort(), o = 0; o < l.length; o += 1) a[(s = l[o])] = v(e[s], n, t, i, s); n.pop(), t.pop(); } else a = e; return a; } (g.useLongestToken = !0), (g.tokenize = f.tokenize), (g.castInput = function (e) { var n = this.options, t = n.undefinedReplacement, i = n.stringifyReplacer, r = void 0 === i ? function (e, n) { return void 0 === n ? t : n; } : i; return "string" == typeof e ? e : JSON.stringify(v(e, null, null, r), r, " "); }), (g.equals = function (e, t) { return n.prototype.equals.call( g, e.replace(/,([\r\n])/g, "$1"), t.replace(/,([\r\n])/g, "$1") ); }); var m = new n(); function y(e) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, t = e.split(/\r\n|[\n\v\f\r\x85]/), i = e.match(/\r\n|[\n\v\f\r\x85]/g) || [], r = [], o = 0; function a() { var e = {}; for (r.push(e); o < t.length; ) { var i = t[o]; if (/^(\-\-\-|\+\+\+|@@)\s/.test(i)) break; var a = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(i); a && (e.index = a[1]), o++; } for (s(e), s(e), e.hunks = []; o < t.length; ) { var f = t[o]; if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(f)) break; if (/^@@/.test(f)) e.hunks.push(l()); else { if (f && n.strict) throw new Error( "Unknown line " + (o + 1) + " " + JSON.stringify(f) ); o++; } } } function s(e) { var n = /^(---|\+\+\+)\s+(.*)$/.exec(t[o]); if (n) { var i = "---" === n[1] ? "old" : "new", r = n[2].split("\t", 2), a = r[0].replace(/\\\\/g, "\\"); /^".*"$/.test(a) && (a = a.substr(1, a.length - 2)), (e[i + "FileName"] = a), (e[i + "Header"] = (r[1] || "").trim()), o++; } } function l() { for ( var e = o, r = t[o++].split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/), a = { oldStart: +r[1], oldLines: +r[2] || 1, newStart: +r[3], newLines: +r[4] || 1, lines: [], linedelimiters: [], }, s = 0, l = 0; o < t.length && !( 0 === t[o].indexOf("--- ") && o + 2 < t.length && 0 === t[o + 1].indexOf("+++ ") && 0 === t[o + 2].indexOf("@@") ); o++ ) { var f = 0 == t[o].length && o != t.length - 1 ? " " : t[o][0]; if ("+" !== f && "-" !== f && " " !== f && "\\" !== f) break; a.lines.push(t[o]), a.linedelimiters.push(i[o] || "\n"), "+" === f ? s++ : "-" === f ? l++ : " " === f && (s++, l++); } if ( (s || 1 !== a.newLines || (a.newLines = 0), l || 1 !== a.oldLines || (a.oldLines = 0), n.strict) ) { if (s !== a.newLines) throw new Error( "Added line count did not match for hunk at line " + (e + 1) ); if (l !== a.oldLines) throw new Error( "Removed line count did not match for hunk at line " + (e + 1) ); } return a; } for (; o < t.length; ) a(); return r; } function w(e, n, t) { var i = !0, r = !1, o = !1, a = 1; return function s() { if (i && !o) { if ((r ? a++ : (i = !1), e + a <= t)) return a; o = !0; } if (!r) return o || (i = !0), n <= e - a ? -a++ : ((r = !0), s()); }; } function S(e, n) { var t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if (("string" == typeof n && (n = y(n)), Array.isArray(n))) { if (n.length > 1) throw new Error("applyPatch only works with a single input."); n = n[0]; } var i, r, o = e.split(/\r\n|[\n\v\f\r\x85]/), a = e.match(/\r\n|[\n\v\f\r\x85]/g) || [], s = n.hunks, l = t.compareLine || function (e, n, t, i) { return n === i; }, f = 0, u = t.fuzzFactor || 0, d = 0, c = 0; function h(e, n) { for (var t = 0; t < e.lines.length; t++) { var i = e.lines[t], r = i.length > 0 ? i[0] : " ", a = i.length > 0 ? i.substr(1) : i; if (" " === r || "-" === r) { if (!l(n + 1, o[n], r, a) && ++f > u) return !1; n++; } } return !0; } for (var p = 0; p < s.length; p++) { for ( var b = s[p], g = o.length - b.oldLines, v = 0, m = c + b.oldStart - 1, S = w(m, d, g); void 0 !== v; v = S() ) if (h(b, m + v)) { b.offset = c += v; break; } if (void 0 === v) return !1; d = b.offset + b.oldStart + b.oldLines; } for (var L = 0, x = 0; x < s.length; x++) { var C = s[x], T = C.oldStart + C.offset + L - 1; (L += C.newLines - C.oldLines), T < 0 && (T = 0); for (var N = 0; N < C.lines.length; N++) { var O = C.lines[N], _ = O.length > 0 ? O[0] : " ", E = O.length > 0 ? O.substr(1) : O, H = C.linedelimiters[N]; if (" " === _) T++; else if ("-" === _) o.splice(T, 1), a.splice(T, 1); else if ("+" === _) o.splice(T, 0, E), a.splice(T, 0, H), T++; else if ("\\" === _) { var j = C.lines[N - 1] ? C.lines[N - 1][0] : null; "+" === j ? (i = !0) : "-" === j && (r = !0); } } } if (i) for (; !o[o.length - 1]; ) o.pop(), a.pop(); else r && (o.push(""), a.push("\n")); for (var k = 0; k < o.length - 1; k++) o[k] = o[k] + a[k]; return o.join(""); } function L(e, n, t, i, r, o, a) { a || (a = {}), void 0 === a.context && (a.context = 4); var s = u(t, i, a); function l(e) { return e.map(function (e) { return " " + e; }); } s.push({ value: "", lines: [] }); for ( var f = [], d = 0, c = 0, h = [], b = 1, g = 1, v = function (e) { var n = s[e], r = n.lines || n.value.replace(/\n$/, "").split("\n"); if (((n.lines = r), n.added || n.removed)) { var o; if (!d) { var u = s[e - 1]; (d = b), (c = g), u && ((h = a.context > 0 ? l(u.lines.slice(-a.context)) : []), (d -= h.length), (c -= h.length)); } (o = h).push.apply( o, p( r.map(function (e) { return (n.added ? "+" : "-") + e; }) ) ), n.added ? (g += r.length) : (b += r.length); } else { if (d) if (r.length <= 2 * a.context && e < s.length - 2) { var v; (v = h).push.apply(v, p(l(r))); } else { var m, y = Math.min(r.length, a.context); (m = h).push.apply(m, p(l(r.slice(0, y)))); var w = { oldStart: d, oldLines: b - d + y, newStart: c, newLines: g - c + y, lines: h, }; if (e >= s.length - 2 && r.length <= a.context) { var S = /\n$/.test(t), L = /\n$/.test(i), x = 0 == r.length && h.length > w.oldLines; !S && x && h.splice( w.oldLines, 0, "\\ No newline at end of file" ), ((S || x) && L) || h.push("\\ No newline at end of file"); } f.push(w), (d = 0), (c = 0), (h = []); } (b += r.length), (g += r.length); } }, m = 0; m < s.length; m++ ) v(m); return { oldFileName: e, newFileName: n, oldHeader: r, newHeader: o, hunks: f, }; } function x(e, n, t, i, r, o, a) { var s = L(e, n, t, i, r, o, a), l = []; e == n && l.push("Index: " + e), l.push( "===================================================================" ), l.push( "--- " + s.oldFileName + (void 0 === s.oldHeader ? "" : "\t" + s.oldHeader) ), l.push( "+++ " + s.newFileName + (void 0 === s.newHeader ? "" : "\t" + s.newHeader) ); for (var f = 0; f < s.hunks.length; f++) { var u = s.hunks[f]; l.push( "@@ -" + u.oldStart + "," + u.oldLines + " +" + u.newStart + "," + u.newLines + " @@" ), l.push.apply(l, u.lines); } return l.join("\n") + "\n"; } function C(e, n) { if (n.length > e.length) return !1;