singbox.ts 890 B

12345678910111213141516171819202122232425262728
  1. // const unsupported = Symbol('unsupported');
  2. // https://sing-box.sagernet.org/configuration/rule-set/source-format/
  3. // export const PROCESSOR: Record<string, ((raw: string, type: string, value: string) => [key: keyof SingboxHeadlessRule, value: Required<SingboxHeadlessRule>[keyof SingboxHeadlessRule][number]] | null) | typeof unsupported> = {
  4. // 'IP-ASN': unsupported,
  5. // 'URL-REGEX': unsupported,
  6. // 'USER-AGENT': unsupported
  7. // };
  8. interface SingboxHeadlessRule {
  9. domain?: string[],
  10. domain_suffix?: string[],
  11. domain_keyword?: string[],
  12. domain_regex?: string[],
  13. source_ip_cidr?: string[],
  14. ip_cidr?: string[],
  15. source_port?: number[],
  16. source_port_range?: string[],
  17. port?: number[],
  18. port_range?: string[],
  19. process_name?: string[],
  20. process_path?: string[]
  21. }
  22. export interface SingboxSourceFormat {
  23. version: 2 | number & {},
  24. rules: SingboxHeadlessRule[]
  25. }