mcp-xray-pilot 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +502 -0
  3. package/data/docs/_index.json +533 -0
  4. package/data/docs/basic__api.md +148 -0
  5. package/data/docs/basic__dns.md +366 -0
  6. package/data/docs/basic__fakedns.md +202 -0
  7. package/data/docs/basic__geodata.md +64 -0
  8. package/data/docs/basic__inbound.md +159 -0
  9. package/data/docs/basic__index.md +136 -0
  10. package/data/docs/basic__log.md +67 -0
  11. package/data/docs/basic__metrics.md +262 -0
  12. package/data/docs/basic__observatory.md +115 -0
  13. package/data/docs/basic__outbound.md +164 -0
  14. package/data/docs/basic__policy.md +140 -0
  15. package/data/docs/basic__reverse.md +268 -0
  16. package/data/docs/basic__routing.md +474 -0
  17. package/data/docs/basic__stats.md +61 -0
  18. package/data/docs/basic__transport.md +1283 -0
  19. package/data/docs/features__features_browser_dialer.md +61 -0
  20. package/data/docs/features__features_env.md +66 -0
  21. package/data/docs/features__features_fallback.md +110 -0
  22. package/data/docs/features__features_index.md +17 -0
  23. package/data/docs/features__features_multiple.md +144 -0
  24. package/data/docs/features__features_xtls.md +13 -0
  25. package/data/docs/inbounds__inbounds_dokodemo.md +11 -0
  26. package/data/docs/inbounds__inbounds_http.md +80 -0
  27. package/data/docs/inbounds__inbounds_hysteria.md +60 -0
  28. package/data/docs/inbounds__inbounds_index.md +22 -0
  29. package/data/docs/inbounds__inbounds_shadowsocks.md +118 -0
  30. package/data/docs/inbounds__inbounds_socks.md +87 -0
  31. package/data/docs/inbounds__inbounds_trojan.md +78 -0
  32. package/data/docs/inbounds__inbounds_tun.md +47 -0
  33. package/data/docs/inbounds__inbounds_tunnel.md +86 -0
  34. package/data/docs/inbounds__inbounds_vless.md +135 -0
  35. package/data/docs/inbounds__inbounds_vmess.md +95 -0
  36. package/data/docs/inbounds__inbounds_wireguard.md +78 -0
  37. package/data/docs/outbounds__outbounds_blackhole.md +42 -0
  38. package/data/docs/outbounds__outbounds_dns.md +97 -0
  39. package/data/docs/outbounds__outbounds_freedom.md +170 -0
  40. package/data/docs/outbounds__outbounds_http.md +70 -0
  41. package/data/docs/outbounds__outbounds_hysteria.md +39 -0
  42. package/data/docs/outbounds__outbounds_index.md +24 -0
  43. package/data/docs/outbounds__outbounds_loopback.md +65 -0
  44. package/data/docs/outbounds__outbounds_shadowsocks.md +105 -0
  45. package/data/docs/outbounds__outbounds_socks.md +58 -0
  46. package/data/docs/outbounds__outbounds_trojan.md +49 -0
  47. package/data/docs/outbounds__outbounds_vless.md +122 -0
  48. package/data/docs/outbounds__outbounds_vmess.md +76 -0
  49. package/data/docs/outbounds__outbounds_wireguard.md +141 -0
  50. package/data/docs/transports__transports_grpc.md +137 -0
  51. package/data/docs/transports__transports_h2.md +11 -0
  52. package/data/docs/transports__transports_http.md +11 -0
  53. package/data/docs/transports__transports_httpupgrade.md +61 -0
  54. package/data/docs/transports__transports_hysteria.md +110 -0
  55. package/data/docs/transports__transports_index.md +19 -0
  56. package/data/docs/transports__transports_mkcp.md +125 -0
  57. package/data/docs/transports__transports_quic.md +11 -0
  58. package/data/docs/transports__transports_raw.md +156 -0
  59. package/data/docs/transports__transports_splithttp.md +11 -0
  60. package/data/docs/transports__transports_tcp.md +11 -0
  61. package/data/docs/transports__transports_websocket.md +75 -0
  62. package/data/docs/transports__transports_xhttp.md +11 -0
  63. package/dist/data/compatibility.js +170 -0
  64. package/dist/data/compatibility.js.map +1 -0
  65. package/dist/data/geocatalogue.js +191 -0
  66. package/dist/data/geocatalogue.js.map +1 -0
  67. package/dist/docs.js +339 -0
  68. package/dist/docs.js.map +1 -0
  69. package/dist/handlers.js +217 -0
  70. package/dist/handlers.js.map +1 -0
  71. package/dist/index.js +66 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/lint.js +737 -0
  74. package/dist/lint.js.map +1 -0
  75. package/dist/schemas/protocols/blackhole.js +16 -0
  76. package/dist/schemas/protocols/blackhole.js.map +1 -0
  77. package/dist/schemas/protocols/common.js +32 -0
  78. package/dist/schemas/protocols/common.js.map +1 -0
  79. package/dist/schemas/protocols/dns.js +14 -0
  80. package/dist/schemas/protocols/dns.js.map +1 -0
  81. package/dist/schemas/protocols/dokodemo.js +17 -0
  82. package/dist/schemas/protocols/dokodemo.js.map +1 -0
  83. package/dist/schemas/protocols/freedom.js +45 -0
  84. package/dist/schemas/protocols/freedom.js.map +1 -0
  85. package/dist/schemas/protocols/http.js +38 -0
  86. package/dist/schemas/protocols/http.js.map +1 -0
  87. package/dist/schemas/protocols/hysteria.js +51 -0
  88. package/dist/schemas/protocols/hysteria.js.map +1 -0
  89. package/dist/schemas/protocols/index.js +50 -0
  90. package/dist/schemas/protocols/index.js.map +1 -0
  91. package/dist/schemas/protocols/loopback.js +11 -0
  92. package/dist/schemas/protocols/loopback.js.map +1 -0
  93. package/dist/schemas/protocols/shadowsocks.js +60 -0
  94. package/dist/schemas/protocols/shadowsocks.js.map +1 -0
  95. package/dist/schemas/protocols/socks.js +42 -0
  96. package/dist/schemas/protocols/socks.js.map +1 -0
  97. package/dist/schemas/protocols/trojan.js +34 -0
  98. package/dist/schemas/protocols/trojan.js.map +1 -0
  99. package/dist/schemas/protocols/tun.js +19 -0
  100. package/dist/schemas/protocols/tun.js.map +1 -0
  101. package/dist/schemas/protocols/vless.js +44 -0
  102. package/dist/schemas/protocols/vless.js.map +1 -0
  103. package/dist/schemas/protocols/vmess.js +48 -0
  104. package/dist/schemas/protocols/vmess.js.map +1 -0
  105. package/dist/schemas/protocols/wireguard.js +34 -0
  106. package/dist/schemas/protocols/wireguard.js.map +1 -0
  107. package/dist/schemas/security/index.js +16 -0
  108. package/dist/schemas/security/index.js.map +1 -0
  109. package/dist/schemas/security/reality.js +35 -0
  110. package/dist/schemas/security/reality.js.map +1 -0
  111. package/dist/schemas/security/tls.js +46 -0
  112. package/dist/schemas/security/tls.js.map +1 -0
  113. package/dist/schemas/security/xtls.js +17 -0
  114. package/dist/schemas/security/xtls.js.map +1 -0
  115. package/dist/schemas/transports/grpc.js +18 -0
  116. package/dist/schemas/transports/grpc.js.map +1 -0
  117. package/dist/schemas/transports/httpupgrade.js +14 -0
  118. package/dist/schemas/transports/httpupgrade.js.map +1 -0
  119. package/dist/schemas/transports/hysteria.js +25 -0
  120. package/dist/schemas/transports/hysteria.js.map +1 -0
  121. package/dist/schemas/transports/index.js +32 -0
  122. package/dist/schemas/transports/index.js.map +1 -0
  123. package/dist/schemas/transports/mkcp.js +34 -0
  124. package/dist/schemas/transports/mkcp.js.map +1 -0
  125. package/dist/schemas/transports/raw.js +19 -0
  126. package/dist/schemas/transports/raw.js.map +1 -0
  127. package/dist/schemas/transports/websocket.js +15 -0
  128. package/dist/schemas/transports/websocket.js.map +1 -0
  129. package/dist/schemas/transports/xhttp.js +34 -0
  130. package/dist/schemas/transports/xhttp.js.map +1 -0
  131. package/dist/search.js +78 -0
  132. package/dist/search.js.map +1 -0
  133. package/dist/state.js +87 -0
  134. package/dist/state.js.map +1 -0
  135. package/dist/tools.js +274 -0
  136. package/dist/tools.js.map +1 -0
  137. package/dist/tools_impl/diff.js +55 -0
  138. package/dist/tools_impl/diff.js.map +1 -0
  139. package/dist/tools_impl/github.js +416 -0
  140. package/dist/tools_impl/github.js.map +1 -0
  141. package/dist/tools_impl/merge.js +181 -0
  142. package/dist/tools_impl/merge.js.map +1 -0
  143. package/dist/tools_impl/refresh.js +46 -0
  144. package/dist/tools_impl/refresh.js.map +1 -0
  145. package/dist/tools_impl/suggest.js +169 -0
  146. package/dist/tools_impl/suggest.js.map +1 -0
  147. package/dist/types.js +10 -0
  148. package/dist/types.js.map +1 -0
  149. package/dist/utils.js +81 -0
  150. package/dist/utils.js.map +1 -0
  151. package/dist/validate.js +408 -0
  152. package/dist/validate.js.map +1 -0
  153. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Blackhole outbound settings.
3
+ * Source: docs/en/config/outbounds/blackhole.md
4
+ */
5
+ import { z } from "zod";
6
+ export const blackholeOutbound = z
7
+ .object({
8
+ response: z
9
+ .object({
10
+ type: z.enum(["none", "http"]).optional(),
11
+ })
12
+ .passthrough()
13
+ .optional(),
14
+ })
15
+ .passthrough();
16
+ //# sourceMappingURL=blackhole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackhole.js","sourceRoot":"","sources":["../../../src/schemas/protocols/blackhole.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Shared sub-schemas for protocol settings.
3
+ *
4
+ * Kept loose-by-default (`.passthrough()`) — xray-core often adds undocumented
5
+ * fields, and we don't want to error on a brand-new property the agent might
6
+ * legitimately want to set. Validate only fields with known shape; surface
7
+ * unknown fields as info via the validator (not the schema).
8
+ */
9
+ import { z } from "zod";
10
+ export const uuid = z.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/, "must be a UUID v4 (8-4-4-4-12 hex)");
11
+ export const userLevel = z.number().int().min(0).max(99);
12
+ export const email = z.string().email().or(z.string().min(1));
13
+ export const vlessFlow = z.enum([
14
+ "",
15
+ "none",
16
+ "xtls-rprx-vision",
17
+ "xtls-rprx-vision-udp443",
18
+ ]);
19
+ /* TCP/UDP/etc. — used inside settings.network for dokodemo, ss inbound. */
20
+ export const network = z.enum(["tcp", "udp", "tcp,udp"]);
21
+ export const fallbackEntry = z
22
+ .object({
23
+ name: z.string().optional(),
24
+ alpn: z.string().optional(),
25
+ path: z.string().optional(),
26
+ type: z.string().optional(),
27
+ dest: z.union([z.string(), z.number().int()]).optional(),
28
+ xver: z.number().int().nonnegative().optional(),
29
+ })
30
+ .passthrough();
31
+ export const fallbacks = z.array(fallbackEntry);
32
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/schemas/protocols/common.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAClC,+EAA+E,EAC/E,oCAAoC,CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9B,EAAE;IACF,MAAM;IACN,kBAAkB;IAClB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /*
2
+ * DNS outbound settings.
3
+ * Source: docs/en/config/outbounds/dns.md
4
+ */
5
+ import { z } from "zod";
6
+ export const dnsOutbound = z
7
+ .object({
8
+ network: z.enum(["tcp", "udp", "tcp,udp"]).optional(),
9
+ address: z.string().optional(),
10
+ port: z.number().int().min(1).max(65535).optional(),
11
+ nonIPQuery: z.enum(["drop", "skip"]).optional(),
12
+ })
13
+ .passthrough();
14
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../src/schemas/protocols/dns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACnD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ /*
2
+ * dokodemo-door settings schemas.
3
+ * Source: docs/en/config/inbounds/dokodemo.md
4
+ */
5
+ import { z } from "zod";
6
+ import { network, userLevel } from "./common.js";
7
+ export const dokodemoInbound = z
8
+ .object({
9
+ address: z.string().optional(),
10
+ port: z.number().int().min(1).max(65535).optional(),
11
+ network: network.optional(),
12
+ timeout: z.number().int().nonnegative().optional(),
13
+ followRedirect: z.boolean().optional(),
14
+ userLevel: userLevel.optional(),
15
+ })
16
+ .passthrough();
17
+ //# sourceMappingURL=dokodemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dokodemo.js","sourceRoot":"","sources":["../../../src/schemas/protocols/dokodemo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAClD,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Freedom outbound settings.
3
+ * Source: docs/en/config/outbounds/freedom.md
4
+ */
5
+ import { z } from "zod";
6
+ export const freedomOutbound = z
7
+ .object({
8
+ domainStrategy: z
9
+ .enum([
10
+ "AsIs",
11
+ "UseIP",
12
+ "UseIPv4",
13
+ "UseIPv6",
14
+ "UseIPv4v6",
15
+ "UseIPv6v4",
16
+ "ForceIP",
17
+ "ForceIPv4",
18
+ "ForceIPv6",
19
+ "ForceIPv4v6",
20
+ "ForceIPv6v4",
21
+ ])
22
+ .optional(),
23
+ redirect: z.string().optional(),
24
+ userLevel: z.number().int().nonnegative().optional(),
25
+ fragment: z
26
+ .object({
27
+ packets: z.string().optional(),
28
+ length: z.string().optional(),
29
+ interval: z.string().optional(),
30
+ })
31
+ .passthrough()
32
+ .optional(),
33
+ noises: z
34
+ .array(z
35
+ .object({
36
+ type: z.string().optional(),
37
+ packet: z.string().optional(),
38
+ delay: z.union([z.string(), z.number()]).optional(),
39
+ })
40
+ .passthrough())
41
+ .optional(),
42
+ proxyProtocol: z.number().int().optional(),
43
+ })
44
+ .passthrough();
45
+ //# sourceMappingURL=freedom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freedom.js","sourceRoot":"","sources":["../../../src/schemas/protocols/freedom.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,cAAc,EAAE,CAAC;SACd,IAAI,CAAC;QACJ,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;QACT,WAAW;QACX,WAAW;QACX,aAAa;QACb,aAAa;KACd,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACpD,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KACpD,CAAC;SACD,WAAW,EAAE,CACjB;SACA,QAAQ,EAAE;IACb,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ /*
2
+ * HTTP proxy settings schemas.
3
+ * Source: docs/en/config/inbounds/http.md, outbounds/http.md
4
+ */
5
+ import { z } from "zod";
6
+ import { userLevel } from "./common.js";
7
+ const httpAccount = z
8
+ .object({
9
+ user: z.string().min(1),
10
+ pass: z.string().min(1),
11
+ })
12
+ .passthrough();
13
+ export const httpInbound = z
14
+ .object({
15
+ accounts: z.array(httpAccount).optional(),
16
+ allowTransparent: z.boolean().optional(),
17
+ userLevel: userLevel.optional(),
18
+ })
19
+ .passthrough();
20
+ const httpUser = z
21
+ .object({
22
+ user: z.string().min(1),
23
+ pass: z.string().min(1),
24
+ })
25
+ .passthrough();
26
+ const httpServer = z
27
+ .object({
28
+ address: z.string().min(1),
29
+ port: z.number().int().min(1).max(65535),
30
+ users: z.array(httpUser).optional(),
31
+ })
32
+ .passthrough();
33
+ export const httpOutbound = z
34
+ .object({
35
+ servers: z.array(httpServer).min(1),
36
+ })
37
+ .passthrough();
38
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/schemas/protocols/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,QAAQ,GAAG,CAAC;KACf,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Hysteria(2) settings schemas (inbound and outbound).
3
+ * Source: docs/en/config/inbounds/hysteria.md, outbounds/hysteria.md
4
+ */
5
+ import { z } from "zod";
6
+ const bandwidth = z
7
+ .object({
8
+ up: z.union([z.string(), z.number()]).optional(),
9
+ down: z.union([z.string(), z.number()]).optional(),
10
+ })
11
+ .passthrough();
12
+ export const hysteriaInbound = z
13
+ .object({
14
+ obfs: z
15
+ .object({
16
+ type: z.string().optional(),
17
+ password: z.string().optional(),
18
+ })
19
+ .passthrough()
20
+ .optional(),
21
+ auth: z
22
+ .object({
23
+ type: z.string().optional(),
24
+ })
25
+ .passthrough()
26
+ .optional(),
27
+ bandwidth: bandwidth.optional(),
28
+ ignore_client_bandwidth: z.boolean().optional(),
29
+ })
30
+ .passthrough();
31
+ const hysteriaServer = z
32
+ .object({
33
+ address: z.string().min(1),
34
+ port: z.number().int().min(1).max(65535),
35
+ auth_str: z.string().optional(),
36
+ })
37
+ .passthrough();
38
+ export const hysteriaOutbound = z
39
+ .object({
40
+ servers: z.array(hysteriaServer).min(1).optional(),
41
+ obfs: z
42
+ .object({
43
+ type: z.string().optional(),
44
+ password: z.string().optional(),
45
+ })
46
+ .passthrough()
47
+ .optional(),
48
+ bandwidth: bandwidth.optional(),
49
+ })
50
+ .passthrough();
51
+ //# sourceMappingURL=hysteria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hysteria.js","sourceRoot":"","sources":["../../../src/schemas/protocols/hysteria.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;IACb,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;IACb,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Protocol registry: maps protocol name → Zod schema for `settings` block.
3
+ *
4
+ * Used by validate.ts to deep-check inbound/outbound settings shape per
5
+ * protocol. Anything not registered falls back to the legacy "is it a
6
+ * known string" check.
7
+ */
8
+ import { vlessInbound, vlessOutbound } from "./vless.js";
9
+ import { vmessInbound, vmessOutbound } from "./vmess.js";
10
+ import { trojanInbound, trojanOutbound } from "./trojan.js";
11
+ import { shadowsocksInbound, shadowsocksOutbound } from "./shadowsocks.js";
12
+ import { socksInbound, socksOutbound } from "./socks.js";
13
+ import { httpInbound, httpOutbound } from "./http.js";
14
+ import { wireguardInbound, wireguardOutbound } from "./wireguard.js";
15
+ import { dokodemoInbound } from "./dokodemo.js";
16
+ import { tunInbound } from "./tun.js";
17
+ import { hysteriaInbound, hysteriaOutbound } from "./hysteria.js";
18
+ import { freedomOutbound } from "./freedom.js";
19
+ import { blackholeOutbound } from "./blackhole.js";
20
+ import { dnsOutbound } from "./dns.js";
21
+ import { loopbackOutbound } from "./loopback.js";
22
+ export const inboundProtocolSchemas = {
23
+ vless: vlessInbound,
24
+ vmess: vmessInbound,
25
+ trojan: trojanInbound,
26
+ shadowsocks: shadowsocksInbound,
27
+ socks: socksInbound,
28
+ http: httpInbound,
29
+ wireguard: wireguardInbound,
30
+ "dokodemo-door": dokodemoInbound,
31
+ tun: tunInbound,
32
+ hysteria: hysteriaInbound,
33
+ hysteria2: hysteriaInbound,
34
+ };
35
+ export const outboundProtocolSchemas = {
36
+ vless: vlessOutbound,
37
+ vmess: vmessOutbound,
38
+ trojan: trojanOutbound,
39
+ shadowsocks: shadowsocksOutbound,
40
+ socks: socksOutbound,
41
+ http: httpOutbound,
42
+ wireguard: wireguardOutbound,
43
+ hysteria: hysteriaOutbound,
44
+ hysteria2: hysteriaOutbound,
45
+ freedom: freedomOutbound,
46
+ blackhole: blackholeOutbound,
47
+ dns: dnsOutbound,
48
+ loopback: loopbackOutbound,
49
+ };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/protocols/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,CAAC,MAAM,sBAAsB,GAA8B;IAC/D,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,kBAAkB;IAC/B,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,gBAAgB;IAC3B,eAAe,EAAE,eAAe;IAChC,GAAG,EAAE,UAAU;IACf,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,eAAe;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA8B;IAChE,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,mBAAmB;IAChC,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,eAAe;IACxB,SAAS,EAAE,iBAAiB;IAC5B,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,gBAAgB;CAC3B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Loopback outbound settings.
3
+ * Source: docs/en/config/outbounds/loopback.md
4
+ */
5
+ import { z } from "zod";
6
+ export const loopbackOutbound = z
7
+ .object({
8
+ inboundTag: z.string().min(1),
9
+ })
10
+ .passthrough();
11
+ //# sourceMappingURL=loopback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopback.js","sourceRoot":"","sources":["../../../src/schemas/protocols/loopback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Shadowsocks settings schemas.
3
+ * Source: docs/en/config/inbounds/shadowsocks.md, outbounds/shadowsocks.md
4
+ *
5
+ * Includes Shadowsocks-2022 AEAD (2022-blake3-*) ciphers.
6
+ */
7
+ import { z } from "zod";
8
+ import { email, network, userLevel } from "./common.js";
9
+ export const shadowsocksMethod = z.enum([
10
+ "none",
11
+ "plain",
12
+ "aes-128-gcm",
13
+ "aes-256-gcm",
14
+ "chacha20-poly1305",
15
+ "chacha20-ietf-poly1305",
16
+ "xchacha20-poly1305",
17
+ "xchacha20-ietf-poly1305",
18
+ "2022-blake3-aes-128-gcm",
19
+ "2022-blake3-aes-256-gcm",
20
+ "2022-blake3-chacha20-poly1305",
21
+ ]);
22
+ const ssUser = z
23
+ .object({
24
+ password: z.string().min(1),
25
+ method: shadowsocksMethod.optional(),
26
+ level: userLevel.optional(),
27
+ email: email.optional(),
28
+ })
29
+ .passthrough();
30
+ export const shadowsocksInbound = z
31
+ .object({
32
+ method: shadowsocksMethod.optional(),
33
+ password: z.string().min(1).optional(),
34
+ network: network.optional(),
35
+ clients: z.array(ssUser).optional(),
36
+ ivCheck: z.boolean().optional(),
37
+ })
38
+ .passthrough()
39
+ .refine((s) => Boolean(s.password) || (Array.isArray(s.clients) && s.clients.length > 0), {
40
+ message: "Shadowsocks inbound needs either `password` (single-user) or `clients[]` (multi-user)",
41
+ });
42
+ const ssServer = z
43
+ .object({
44
+ address: z.string().min(1),
45
+ port: z.number().int().min(1).max(65535),
46
+ method: shadowsocksMethod,
47
+ password: z.string().min(1),
48
+ level: userLevel.optional(),
49
+ email: email.optional(),
50
+ ivCheck: z.boolean().optional(),
51
+ uot: z.boolean().optional(),
52
+ UoTVersion: z.number().int().optional(),
53
+ })
54
+ .passthrough();
55
+ export const shadowsocksOutbound = z
56
+ .object({
57
+ servers: z.array(ssServer).min(1),
58
+ })
59
+ .passthrough();
60
+ //# sourceMappingURL=shadowsocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadowsocks.js","sourceRoot":"","sources":["../../../src/schemas/protocols/shadowsocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,MAAM;IACN,OAAO;IACP,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;CAChC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC;KACb,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE;KACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACxF,OAAO,EAAE,uFAAuF;CACjG,CAAC,CAAC;AAEL,MAAM,QAAQ,GAAG,CAAC;KACf,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAClC,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ /*
2
+ * SOCKS settings schemas.
3
+ * Source: docs/en/config/inbounds/socks.md, outbounds/socks.md
4
+ */
5
+ import { z } from "zod";
6
+ import { userLevel } from "./common.js";
7
+ const socksAccount = z
8
+ .object({
9
+ user: z.string().min(1),
10
+ pass: z.string().min(1),
11
+ })
12
+ .passthrough();
13
+ export const socksInbound = z
14
+ .object({
15
+ auth: z.enum(["noauth", "password"]).optional(),
16
+ accounts: z.array(socksAccount).optional(),
17
+ udp: z.boolean().optional(),
18
+ ip: z.string().optional(),
19
+ userLevel: userLevel.optional(),
20
+ })
21
+ .passthrough();
22
+ const socksUser = z
23
+ .object({
24
+ user: z.string().min(1),
25
+ pass: z.string().min(1),
26
+ level: userLevel.optional(),
27
+ })
28
+ .passthrough();
29
+ const socksServer = z
30
+ .object({
31
+ address: z.string().min(1),
32
+ port: z.number().int().min(1).max(65535),
33
+ users: z.array(socksUser).optional(),
34
+ })
35
+ .passthrough();
36
+ export const socksOutbound = z
37
+ .object({
38
+ servers: z.array(socksServer).min(1),
39
+ version: z.enum(["4", "4a", "5"]).optional(),
40
+ })
41
+ .passthrough();
42
+ //# sourceMappingURL=socks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socks.js","sourceRoot":"","sources":["../../../src/schemas/protocols/socks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAC1C,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Trojan settings schemas.
3
+ * Source: docs/en/config/inbounds/trojan.md, outbounds/trojan.md
4
+ */
5
+ import { z } from "zod";
6
+ import { email, fallbacks, userLevel } from "./common.js";
7
+ const trojanClient = z
8
+ .object({
9
+ password: z.string().min(1),
10
+ level: userLevel.optional(),
11
+ email: email.optional(),
12
+ })
13
+ .passthrough();
14
+ export const trojanInbound = z
15
+ .object({
16
+ clients: z.array(trojanClient).min(1),
17
+ fallbacks: fallbacks.optional(),
18
+ })
19
+ .passthrough();
20
+ const trojanServer = z
21
+ .object({
22
+ address: z.string().min(1),
23
+ port: z.number().int().min(1).max(65535),
24
+ password: z.string().min(1),
25
+ level: userLevel.optional(),
26
+ email: email.optional(),
27
+ })
28
+ .passthrough();
29
+ export const trojanOutbound = z
30
+ .object({
31
+ servers: z.array(trojanServer).min(1),
32
+ })
33
+ .passthrough();
34
+ //# sourceMappingURL=trojan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trojan.js","sourceRoot":"","sources":["../../../src/schemas/protocols/trojan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /*
2
+ * TUN settings schemas (xray inbound on Linux/macOS).
3
+ * Source: docs/en/config/inbounds/tun.md
4
+ */
5
+ import { z } from "zod";
6
+ export const tunInbound = z
7
+ .object({
8
+ interface_name: z.string().optional(),
9
+ address: z.array(z.string()).optional(),
10
+ mtu: z.number().int().positive().optional(),
11
+ auto_route: z.boolean().optional(),
12
+ strict_route: z.boolean().optional(),
13
+ inet4_route_address: z.array(z.string()).optional(),
14
+ inet6_route_address: z.array(z.string()).optional(),
15
+ endpoint_independent_nat: z.boolean().optional(),
16
+ stack: z.string().optional(),
17
+ })
18
+ .passthrough();
19
+ //# sourceMappingURL=tun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tun.js","sourceRoot":"","sources":["../../../src/schemas/protocols/tun.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,WAAW,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ /*
2
+ * VLESS settings schemas (inbound and outbound).
3
+ * Source: docs/en/config/inbounds/vless.md, outbounds/vless.md
4
+ */
5
+ import { z } from "zod";
6
+ import { email, fallbacks, userLevel, uuid, vlessFlow } from "./common.js";
7
+ const vlessClient = z
8
+ .object({
9
+ id: uuid,
10
+ level: userLevel.optional(),
11
+ email: email.optional(),
12
+ flow: vlessFlow.optional(),
13
+ })
14
+ .passthrough();
15
+ export const vlessInbound = z
16
+ .object({
17
+ clients: z.array(vlessClient).min(1, "VLESS inbound needs at least one client"),
18
+ /* xray refuses to start without explicit "none" or a real encryption block. */
19
+ decryption: z.string().min(1, 'decryption is required (use "none" if unset)'),
20
+ fallbacks: fallbacks.optional(),
21
+ })
22
+ .passthrough();
23
+ const vlessUser = z
24
+ .object({
25
+ id: uuid,
26
+ level: userLevel.optional(),
27
+ email: email.optional(),
28
+ flow: vlessFlow.optional(),
29
+ encryption: z.string().optional(),
30
+ })
31
+ .passthrough();
32
+ const vlessServer = z
33
+ .object({
34
+ address: z.string().min(1),
35
+ port: z.number().int().min(1).max(65535),
36
+ users: z.array(vlessUser).min(1),
37
+ })
38
+ .passthrough();
39
+ export const vlessOutbound = z
40
+ .object({
41
+ vnext: z.array(vlessServer).min(1, "VLESS outbound needs vnext[]"),
42
+ })
43
+ .passthrough();
44
+ //# sourceMappingURL=vless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vless.js","sourceRoot":"","sources":["../../../src/schemas/protocols/vless.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;IACvB,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC3B,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,yCAAyC,CAAC;IAC/E,+EAA+E;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8CAA8C,CAAC;IAC7E,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;IACvB,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;CACnE,CAAC;KACD,WAAW,EAAE,CAAC"}