lakutata
Version:
An IoC-based universal application framework.
223 lines (194 loc) • 5.23 kB
JavaScript
;
const r = require("./Package.5.cjs");
;
var t = n;
function n(r, t, n) {
if (r instanceof RegExp) r = e(r, n);
if (t instanceof RegExp) t = e(t, n);
var i = a(r, t, n);
return i && {
start: i[0],
end: i[1],
pre: n.slice(0, i[0]),
body: n.slice(i[0] + r.length, i[1]),
post: n.slice(i[1] + t.length)
};
}
function e(r, t) {
var n = t.match(r);
return n ? n[0] : null;
}
n.range = a;
function a(r, t, n) {
var e, a, i, s, o;
var f = n.indexOf(r);
var p = n.indexOf(t, f + 1);
var l = f;
if (f >= 0 && p > 0) {
if (r === t) {
return [ f, p ];
}
e = [];
i = n.length;
while (l >= 0 && !o) {
if (l == f) {
e.push(l);
f = n.indexOf(r, l + 1);
} else if (e.length == 1) {
o = [ e.pop(), p ];
} else {
a = e.pop();
if (a < i) {
i = a;
s = p;
}
p = n.indexOf(t, l + 1);
}
l = f < p && f >= 0 ? f : p;
}
if (e.length) {
o = [ i, s ];
}
}
return o;
}
const i = r.getDefaultExportFromCjs(t);
var s = t;
var o = m;
var f = "\0SLASH" + Math.random() + "\0";
var p = "\0OPEN" + Math.random() + "\0";
var l = "\0CLOSE" + Math.random() + "\0";
var u = "\0COMMA" + Math.random() + "\0";
var v = "\0PERIOD" + Math.random() + "\0";
function h(r) {
return parseInt(r, 10) == r ? parseInt(r, 10) : r.charCodeAt(0);
}
function c(r) {
return r.split("\\\\").join(f).split("\\{").join(p).split("\\}").join(l).split("\\,").join(u).split("\\.").join(v);
}
function d(r) {
return r.split(f).join("\\").split(p).join("{").split(l).join("}").split(u).join(",").split(v).join(".");
}
function g(r) {
if (!r) return [ "" ];
var t = [];
var n = s("{", "}", r);
if (!n) return r.split(",");
var e = n.pre;
var a = n.body;
var i = n.post;
var o = e.split(",");
o[o.length - 1] += "{" + a + "}";
var f = g(i);
if (i.length) {
o[o.length - 1] += f.shift();
o.push.apply(o, f);
}
t.push.apply(t, o);
return t;
}
function m(r) {
if (!r) return [];
if (r.substr(0, 2) === "{}") {
r = "\\{\\}" + r.substr(2);
}
return M(c(r), true).map(d);
}
function j(r) {
return "{" + r + "}";
}
function x(r) {
return /^-?0\d/.test(r);
}
function b(r, t) {
return r <= t;
}
function y(r, t) {
return r >= t;
}
function M(r, t) {
var n = [];
var e = s("{", "}", r);
if (!e) return [ r ];
var a = e.pre;
var i = e.post.length ? M(e.post, false) : [ "" ];
if (/\$$/.test(e.pre)) {
for (var o = 0; o < i.length; o++) {
var f = a + "{" + e.body + "}" + i[o];
n.push(f);
}
} else {
var p = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(e.body);
var u = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(e.body);
var v = p || u;
var c = e.body.indexOf(",") >= 0;
if (!v && !c) {
if (e.post.match(/,.*\}/)) {
r = e.pre + "{" + e.body + l + e.post;
return M(r);
}
return [ r ];
}
var d;
if (v) {
d = e.body.split(/\.\./);
} else {
d = g(e.body);
if (d.length === 1) {
d = M(d[0], false).map(j);
if (d.length === 1) {
return i.map((function(r) {
return e.pre + d[0] + r;
}));
}
}
}
var m;
if (v) {
var O = h(d[0]);
var E = h(d[1]);
var C = Math.max(d[0].length, d[1].length);
var A = d.length == 3 ? Math.abs(h(d[2])) : 1;
var S = b;
var $ = E < O;
if ($) {
A *= -1;
S = y;
}
var D = d.some(x);
m = [];
for (var I = O; S(I, E); I += A) {
var P;
if (u) {
P = String.fromCharCode(I);
if (P === "\\") P = "";
} else {
P = String(I);
if (D) {
var R = C - P.length;
if (R > 0) {
var w = new Array(R + 1).join("0");
if (I < 0) P = "-" + w + P.slice(1); else P = w + P;
}
}
}
m.push(P);
}
} else {
m = [];
for (var z = 0; z < d.length; z++) {
m.push.apply(m, M(d[z], false));
}
}
for (var z = 0; z < m.length; z++) {
for (var o = 0; o < i.length; o++) {
var f = a + m[z] + i[o];
if (!t || v || f) n.push(f);
}
}
}
return n;
}
const O = r.getDefaultExportFromCjs(o);
exports.braceExpansion = o;
exports.expand = O;