profoundjs
Version:
Profound.js Framework and Server
1,459 lines (1,447 loc) • 126 kB
JavaScript
!(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, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'")
.replace(/\//g, "/");
}
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;