first commit
This commit is contained in:
commit
db5762abd4
687 files changed
+171307
No files matched your search
@@ -0,0 +1,162 @@
|
||||
var e = (e) => e === `mf_cloud` || e === `remf_cloud`;
|
||||
function t(e) {
|
||||
let t = () => {
|
||||
throw Error(`防御配置无效,请重试`);
|
||||
};
|
||||
if (!e || typeof e != `object` || Array.isArray(e)) return t();
|
||||
let n = e;
|
||||
if (!Object.keys(n).length)
|
||||
return {
|
||||
options: [],
|
||||
current: ``,
|
||||
};
|
||||
let r = n.defence;
|
||||
if (
|
||||
!r ||
|
||||
typeof r != `object` ||
|
||||
(!Array.isArray(r) && Object.keys(r).some((e) => !/^(0|[1-9]\d*)$/.test(e)))
|
||||
)
|
||||
return t();
|
||||
let i = Object.values(r).map((e) => {
|
||||
if (!e || typeof e != `object`) return t();
|
||||
let { value: n, desc: r } = e;
|
||||
return ![`string`, `number`].includes(typeof n) ||
|
||||
String(n).trim() === `` ||
|
||||
!Number.isFinite(Number(n)) ||
|
||||
Number(n) < 0 ||
|
||||
![`string`, `number`].includes(typeof r) ||
|
||||
String(r).trim() === ``
|
||||
? t()
|
||||
: {
|
||||
value: String(n),
|
||||
desc: String(r),
|
||||
};
|
||||
}),
|
||||
a = n.current_defence == null ? `` : String(n.current_defence);
|
||||
return a !== `` && (!Number.isFinite(Number(a)) || Number(a) < 0 || !a.trim())
|
||||
? t()
|
||||
: {
|
||||
options: i,
|
||||
current: a,
|
||||
};
|
||||
}
|
||||
function n(e) {
|
||||
if (
|
||||
e == null ||
|
||||
String(e).trim() === `` ||
|
||||
!Number.isFinite(Number(e)) ||
|
||||
Number(e) < 0
|
||||
)
|
||||
throw Error(`未获得有效报价,请重试`);
|
||||
return String(e);
|
||||
}
|
||||
function r(e) {
|
||||
if (
|
||||
(typeof e != `string` && typeof e != `number`) ||
|
||||
!/^[1-9]\d*$/.test(String(e))
|
||||
)
|
||||
throw Error(`订单编号未返回,请先在订单管理中检查,避免重复下单`);
|
||||
return e;
|
||||
}
|
||||
function i(e, t) {
|
||||
if (!Number.isInteger(t.int_port) || t.int_port < 1 || t.int_port > 65535)
|
||||
throw Error(`内部端口应为 1–65535 的整数`);
|
||||
if (e === `web`) {
|
||||
let e = t.domain.trim().toLowerCase();
|
||||
if (
|
||||
!/^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(
|
||||
e,
|
||||
)
|
||||
)
|
||||
throw Error(`请输入有效域名,不含协议和路径`);
|
||||
return {
|
||||
domain: e,
|
||||
int_port: t.int_port,
|
||||
};
|
||||
}
|
||||
if (!t.name.trim()) throw Error(`请输入转发名称`);
|
||||
if (![1, 2, 3].includes(t.protocol)) throw Error(`请选择有效协议`);
|
||||
if (
|
||||
t.ext_port !== null &&
|
||||
(!Number.isInteger(t.ext_port) ||
|
||||
t.ext_port < 0 ||
|
||||
t.ext_port > 65535 ||
|
||||
[22, 80, 443].includes(t.ext_port))
|
||||
)
|
||||
throw Error(`外部端口应为 0–65535,且不能使用 22、80、443`);
|
||||
return {
|
||||
name: t.name.trim(),
|
||||
int_port: t.int_port,
|
||||
protocol: t.protocol,
|
||||
...(t.ext_port === null
|
||||
? {}
|
||||
: {
|
||||
ext_port: t.ext_port,
|
||||
}),
|
||||
};
|
||||
}
|
||||
function a(e, t, n = []) {
|
||||
if (!e.trim()) throw Error(`请输入 VPC 名称`);
|
||||
if (!t.trim())
|
||||
return {
|
||||
name: e.trim(),
|
||||
};
|
||||
let r = t.trim().match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/);
|
||||
if (!r) throw Error(`请输入有效 IPv4 CIDR 网段`);
|
||||
let i = r.slice(1, 5).map(Number),
|
||||
a = Number(r[5]);
|
||||
if (
|
||||
i.some((e) => e < 0 || e > 255) ||
|
||||
a < 1 ||
|
||||
a > 32 ||
|
||||
(n.length && !n.includes(a))
|
||||
)
|
||||
throw Error(`网段地址或掩码不在允许范围内`);
|
||||
return {
|
||||
name: e.trim(),
|
||||
ips: t.trim(),
|
||||
};
|
||||
}
|
||||
function o(e, t = {}) {
|
||||
return e.flatMap((e, n) => {
|
||||
let r = e.type === `step` || e.type === `total`,
|
||||
i =
|
||||
Number(t.disk_range_limit_switch) === 1 &&
|
||||
Number(t.disk_range_limit) > 0
|
||||
? Number(t.disk_range_limit)
|
||||
: 1,
|
||||
a = r
|
||||
? Math.ceil(Number(e.min_value ?? e.value) / i) * i
|
||||
: Number(e.value),
|
||||
o = r
|
||||
? Math.floor(Number(e.max_value ?? e.value) / i) * i
|
||||
: Number(e.value),
|
||||
s = String(e.other_config?.disk_type ?? ``);
|
||||
return !Number.isInteger(a) ||
|
||||
!Number.isInteger(o) ||
|
||||
a < 1 ||
|
||||
o < a ||
|
||||
!Number.isFinite(i) ||
|
||||
i <= 0
|
||||
? []
|
||||
: [
|
||||
{
|
||||
id: n,
|
||||
type: s,
|
||||
min: a,
|
||||
max: o,
|
||||
step: i,
|
||||
label: `${s || `默认类型`} · ${a === o ? a : `${a}–${o}`} GB`,
|
||||
},
|
||||
];
|
||||
});
|
||||
}
|
||||
function s(e, t) {
|
||||
return (
|
||||
Number.isInteger(e) &&
|
||||
e >= t.min &&
|
||||
e <= t.max &&
|
||||
Math.abs((e - t.min) / t.step - Math.round((e - t.min) / t.step)) < 1e-7
|
||||
);
|
||||
}
|
||||
export { i as a, a as c, e as i, t as n, s as o, o as r, r as s, n as t };
|
||||
Reference in new issue
Block a user