lakutata
Version:
An IoC-based universal application framework.
219 lines (192 loc) • 5.15 kB
JavaScript
import { g as r } from "./Package.5.mjs";
;
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 l = n.indexOf(t, f + 1);
var p = f;
if (f >= 0 && l > 0) {
if (r === t) {
return [ f, l ];
}
e = [];
i = n.length;
while (p >= 0 && !o) {
if (p == f) {
e.push(p);
f = n.indexOf(r, p + 1);
} else if (e.length == 1) {
o = [ e.pop(), l ];
} else {
a = e.pop();
if (a < i) {
i = a;
s = l;
}
l = n.indexOf(t, p + 1);
}
p = f < l && f >= 0 ? f : l;
}
if (e.length) {
o = [ i, s ];
}
}
return o;
}
const i = r(t);
var s = t;
var o = m;
var f = "\0SLASH" + Math.random() + "\0";
var l = "\0OPEN" + Math.random() + "\0";
var p = "\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(l).split("\\}").join(p).split("\\,").join(u).split("\\.").join(v);
}
function d(r) {
return r.split(f).join("\\").split(l).join("{").split(p).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 b(r) {
return "{" + r + "}";
}
function y(r) {
return /^-?0\d/.test(r);
}
function j(r, t) {
return r <= t;
}
function x(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 l = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(e.body);
var u = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(e.body);
var v = l || u;
var c = e.body.indexOf(",") >= 0;
if (!v && !c) {
if (e.post.match(/,.*\}/)) {
r = e.pre + "{" + e.body + p + 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(b);
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 A = h(d[1]);
var C = Math.max(d[0].length, d[1].length);
var E = d.length == 3 ? Math.abs(h(d[2])) : 1;
var S = j;
var $ = A < O;
if ($) {
E *= -1;
S = x;
}
var I = d.some(y);
m = [];
for (var P = O; S(P, A); P += E) {
var R;
if (u) {
R = String.fromCharCode(P);
if (R === "\\") R = "";
} else {
R = String(P);
if (I) {
var w = C - R.length;
if (w > 0) {
var z = new Array(w + 1).join("0");
if (P < 0) R = "-" + z + R.slice(1); else R = z + R;
}
}
}
m.push(R);
}
} else {
m = [];
for (var L = 0; L < d.length; L++) {
m.push.apply(m, M(d[L], false));
}
}
for (var L = 0; L < m.length; L++) {
for (var o = 0; o < i.length; o++) {
var f = a + m[L] + i[o];
if (!t || v || f) n.push(f);
}
}
}
return n;
}
const O = r(o);
export { o as b, O as e };