gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/hosts/dialogs/mutation/profiles/general/schema.ts · v0.6.3
Source
1 3b7feef Mrdn 2y ago import { z } from "zod";
2 d636f3f Dawsh 2y ago import { HostSchema, TlsSchema } from "@marzneshin/modules/hosts";
3 0b152b5 Mrdn 2y ago import i18n from "i18next";
4 0b152b5 Mrdn 2y ago
5 0b152b5 Mrdn 2y ago const numberInterval = (v: string | null | undefined) => {
6 0b152b5 Mrdn 2y ago return v ? /^[\d-]{1,32}$/.test(v) : false;
7 0b152b5 Mrdn 2y ago };
8 0b152b5 Mrdn 2y ago
9 0b152b5 Mrdn 2y ago const packetsInterval = (v: string | null | undefined) => {
10 0b152b5 Mrdn 2y ago return v ? /^(:?tlshello|[\d-]{1,32})$/.test(v) : false;
11 0b152b5 Mrdn 2y ago };
12 3b7feef Mrdn 2y ago
13 cba39e7 Mardin 2y ago export const alpnOptions = [
14 cba39e7 Mardin 2y ago "none",
15 cba39e7 Mardin 2y ago "h2",
16 cba39e7 Mardin 2y ago "h3",
17 cba39e7 Mardin 2y ago "h3,h2",
18 cba39e7 Mardin 2y ago "http/1.1",
19 cba39e7 Mardin 2y ago "h2,http/1.1",
20 cba39e7 Mardin 2y ago "h3,h2,http/1.1"
21 cba39e7 Mardin 2y ago ]
22 cba39e7 Mardin 2y ago
23 d636f3f Dawsh 2y ago export const GeneralSchema = HostSchema.merge(TlsSchema).extend({
24 7683c69 Mrdn 2y ago path: z.string().nullable().optional(),
25 7683c69 Mrdn 2y ago host: z.string().nullable().optional(),
26 0b152b5 Mrdn 2y ago mux: z.boolean().nullable().optional(),
27 0b152b5 Mrdn 2y ago fragment: z
28 0b152b5 Mrdn 2y ago .object({
29 0b152b5 Mrdn 2y ago interval: z
30 0b152b5 Mrdn 2y ago .string()
31 0b152b5 Mrdn 2y ago .refine(
32 0b152b5 Mrdn 2y ago (v) => numberInterval(v),
33 0b152b5 Mrdn 2y ago i18n.t("page.hosts.fragment.interval-error"),
34 0b152b5 Mrdn 2y ago ),
35 0b152b5 Mrdn 2y ago length: z
36 0b152b5 Mrdn 2y ago .string()
37 0b152b5 Mrdn 2y ago .refine(
38 0b152b5 Mrdn 2y ago (v) => numberInterval(v),
39 0b152b5 Mrdn 2y ago i18n.t("page.hosts.fragment.length-error"),
40 0b152b5 Mrdn 2y ago ),
41 0b152b5 Mrdn 2y ago packets: z
42 0b152b5 Mrdn 2y ago .string()
43 0b152b5 Mrdn 2y ago .refine(
44 0b152b5 Mrdn 2y ago (v) => packetsInterval(v),
45 0b152b5 Mrdn 2y ago i18n.t("page.hosts.fragment.packets-error"),
46 0b152b5 Mrdn 2y ago ),
47 0b152b5 Mrdn 2y ago })
48 0b152b5 Mrdn 2y ago .nullable()
49 0b152b5 Mrdn 2y ago .optional(),
50 0b152b5 Mrdn 2y ago security: z
51 0b152b5 Mrdn 2y ago .enum(["inbound_default", "none", "tls"])
52 0b152b5 Mrdn 2y ago .default("inbound_default"),
53 0b152b5 Mrdn 2y ago fingerprint: z
54 0b152b5 Mrdn 2y ago .enum([
55 0b152b5 Mrdn 2y ago "",
56 0b152b5 Mrdn 2y ago "none",
57 0b152b5 Mrdn 2y ago "chrome",
58 0b152b5 Mrdn 2y ago "firefox",
59 0b152b5 Mrdn 2y ago "safari",
60 0b152b5 Mrdn 2y ago "ios",
61 0b152b5 Mrdn 2y ago "android",
62 0b152b5 Mrdn 2y ago "edge",
63 0b152b5 Mrdn 2y ago "360",
64 0b152b5 Mrdn 2y ago "qq",
65 0b152b5 Mrdn 2y ago "random",
66 0b152b5 Mrdn 2y ago "randomized",
67 0b152b5 Mrdn 2y ago ])
68 0b152b5 Mrdn 2y ago .optional()
69 0b152b5 Mrdn 2y ago .default("none"),
70 3b7feef Mrdn 2y ago });
71 d636f3f Dawsh 2y ago
72 d636f3f Dawsh 2y ago
73 d636f3f Dawsh 2y ago export type GeneralSchemaType = z.infer<typeof GeneralSchema>;