mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-31 18:24:10 +00:00
24 lines
992 B
TypeScript
24 lines
992 B
TypeScript
import { z } from 'zod';
|
|||
|
|||
import { PortSchema } from '@/schemas/primitives';
|
|||
|
|||
import { AlpnSchema, UtlsFingerprintSchema } from '@/schemas/protocols/security/tls';
|
|||
|
|||
export const ExternalProxyForceTlsSchema = z.enum(['same', 'tls', 'none']);
|
|||
export type ExternalProxyForceTls = z.infer<typeof ExternalProxyForceTlsSchema>;
|
|||
|
|||
// An inbound can advertise external proxy fronts (CDN edges, mirror nodes)
|
|||
// that share its config but vary the dest+port+SNI for the share link. The
|
|||
// panel form ships rows of this shape; link generators iterate them when
|
|||
// stream.externalProxy is non-empty.
|
|||
export const ExternalProxyEntrySchema = z.object({
|
|||
forceTls: ExternalProxyForceTlsSchema.default('same'),
|
|||
dest: z.string().default(''),
|
|||
port: PortSchema.default(443),
|
|||
remark: z.string().default(''),
|
|||
sni: z.string().optional(),
|
|||
fingerprint: UtlsFingerprintSchema.optional(),
|
|||
alpn: z.array(AlpnSchema).optional(),
|
|||
});
|
|||
export type ExternalProxyEntry = z.infer<typeof ExternalProxyEntrySchema>;
|