import { TlsStreamSettingsSchema } from '@/schemas/protocols/security/tls'; function defaultCertificate(): Record { return { useFile: true, certificateFile: '', keyFile: '', certificate: [], key: [], ocspStapling: 0, oneTimeLoading: false, usage: 'encipherment', buildChain: false, }; } export function createTlsSettingsWithDefaultCert(): Record { const tls = TlsStreamSettingsSchema.parse({}) as Record; tls.certificates = [defaultCertificate()]; return tls; } export function createHysteriaTlsSettingsWithDefaultCert(): Record { const tls = createTlsSettingsWithDefaultCert(); tls.alpn = ['h3']; const settings = tls.settings && typeof tls.settings === 'object' && !Array.isArray(tls.settings) ? { ...(tls.settings as Record) } : {}; settings.fingerprint = ''; tls.settings = settings; return tls; }