meta-json-schema 1.18.3-beta

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 (86) hide show
  1. package/.gitattributes +2 -0
  2. package/.vscode/extensions.json +3 -0
  3. package/.vscode/settings.json +18 -0
  4. package/CHANGELOG.md +9 -0
  5. package/LICENSE +21 -0
  6. package/README.md +200 -0
  7. package/package.json +40 -0
  8. package/schemas/clash-verge-merge-json-schema.json +1 -0
  9. package/schemas/meta-json-schema.json +1 -0
  10. package/scripts/release.mjs +16 -0
  11. package/scripts/util/bundle.mjs +91 -0
  12. package/scripts/util/env.mjs +9 -0
  13. package/scripts/util/file.mjs +13 -0
  14. package/scripts/watch.mjs +28 -0
  15. package/src/clash-verge-merge-json-schema.json +88 -0
  16. package/src/definitions/compatible.json +6 -0
  17. package/src/definitions/enums.json +57 -0
  18. package/src/definitions/patterns.json +87 -0
  19. package/src/definitions/types.json +155 -0
  20. package/src/meta-json-schema.json +168 -0
  21. package/src/modules/adapter/outbound/base.json +91 -0
  22. package/src/modules/adapter/outbound/direct.json +39 -0
  23. package/src/modules/adapter/outbound/dns.json +39 -0
  24. package/src/modules/adapter/outbound/http.json +101 -0
  25. package/src/modules/adapter/outbound/hysteria.json +182 -0
  26. package/src/modules/adapter/outbound/hysteria2.json +146 -0
  27. package/src/modules/adapter/outbound/reality.json +25 -0
  28. package/src/modules/adapter/outbound/shadowsocks.json +308 -0
  29. package/src/modules/adapter/outbound/shadowsocksr.json +151 -0
  30. package/src/modules/adapter/outbound/singmux.json +95 -0
  31. package/src/modules/adapter/outbound/snell.json +65 -0
  32. package/src/modules/adapter/outbound/socks5.json +88 -0
  33. package/src/modules/adapter/outbound/ssh.json +87 -0
  34. package/src/modules/adapter/outbound/trojan.json +93 -0
  35. package/src/modules/adapter/outbound/tuic.json +213 -0
  36. package/src/modules/adapter/outbound/vless.json +146 -0
  37. package/src/modules/adapter/outbound/vmess.json +251 -0
  38. package/src/modules/adapter/outbound/wireguard.json +150 -0
  39. package/src/modules/adapter/outboundgroup/fallback.json +18 -0
  40. package/src/modules/adapter/outboundgroup/groupbase.json +98 -0
  41. package/src/modules/adapter/outboundgroup/loadbalance.json +29 -0
  42. package/src/modules/adapter/outboundgroup/relay.json +18 -0
  43. package/src/modules/adapter/outboundgroup/urltest.json +25 -0
  44. package/src/modules/adapter/provider/health-check.json +73 -0
  45. package/src/modules/adapter/provider/provider.json +159 -0
  46. package/src/modules/config/authentication.json +9 -0
  47. package/src/modules/config/controller.json +47 -0
  48. package/src/modules/config/dns.json +156 -0
  49. package/src/modules/config/ebpf.json +22 -0
  50. package/src/modules/config/experimental.json +31 -0
  51. package/src/modules/config/general.json +140 -0
  52. package/src/modules/config/geox-url.json +38 -0
  53. package/src/modules/config/hosts.json +9 -0
  54. package/src/modules/config/inbound.json +98 -0
  55. package/src/modules/config/iptables.json +38 -0
  56. package/src/modules/config/listeners.json +90 -0
  57. package/src/modules/config/ntp.json +50 -0
  58. package/src/modules/config/profile.json +24 -0
  59. package/src/modules/config/proxies.json +118 -0
  60. package/src/modules/config/proxy-groups.json +21 -0
  61. package/src/modules/config/proxy-providers.json +11 -0
  62. package/src/modules/config/rules.json +11 -0
  63. package/src/modules/config/sniffer.json +111 -0
  64. package/src/modules/config/sub-rules.json +14 -0
  65. package/src/modules/config/tls.json +28 -0
  66. package/src/modules/config/tunnels.json +49 -0
  67. package/src/modules/listener/config/tuic.json +102 -0
  68. package/src/modules/listener/config/tun.json +205 -0
  69. package/src/modules/listener/inbound/base.json +43 -0
  70. package/src/modules/listener/inbound/http.json +18 -0
  71. package/src/modules/listener/inbound/hysteria2.json +102 -0
  72. package/src/modules/listener/inbound/mixed.json +26 -0
  73. package/src/modules/listener/inbound/mux.json +42 -0
  74. package/src/modules/listener/inbound/redir.json +18 -0
  75. package/src/modules/listener/inbound/shadowsocks.json +41 -0
  76. package/src/modules/listener/inbound/socks.json +26 -0
  77. package/src/modules/listener/inbound/tproxy.json +26 -0
  78. package/src/modules/listener/inbound/tuic.json +84 -0
  79. package/src/modules/listener/inbound/tun.json +207 -0
  80. package/src/modules/listener/inbound/tunnel.json +33 -0
  81. package/src/modules/listener/inbound/vmess.json +72 -0
  82. package/src/modules/listener/sing/sing.json +42 -0
  83. package/src/modules/rules/provider/provider.json +71 -0
  84. package/src/modules/rules/rule.json +165 -0
  85. package/test/clash-meta/example1.yaml +3170 -0
  86. package/test/clash-verge/merge.yaml +212 -0
@@ -0,0 +1,140 @@
1
+ {
2
+ "type": "object",
3
+ "title": "全局配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "inbound": { "$ref": "./inbound.json" },
9
+ "controller": { "$ref": "./controller.json" },
10
+ "geox-url": { "$ref": "./geox-url.json" },
11
+ "ebpf": { "$ref": "./ebpf.json" }
12
+ },
13
+ "allOf": [
14
+ { "title": "inbound配置", "$ref": "#/definitions/inbound" },
15
+ { "title": "controller配置", "$ref": "#/definitions/controller" },
16
+ {
17
+ "properties": {
18
+ "unified-delay": {
19
+ "type": "boolean",
20
+ "title": "更换延迟计算方式",
21
+ "description": "去除握手等额外延迟",
22
+ "markdownDescription": "去除握手等额外延迟",
23
+ "default": false
24
+ },
25
+ "mode": {
26
+ "enum": ["global", "rule", "direct"],
27
+ "markdownEnumDescriptions": ["全局代理", "规则匹配", "全局直连"],
28
+ "title": "运行模式",
29
+ "description": "运行模式",
30
+ "markdownDescription": "运行模式",
31
+ "default": "rule"
32
+ },
33
+ "log-level": {
34
+ "enum": ["debug", "info", "warning", "error", "silent"],
35
+ "markdownEnumDescriptions": [
36
+ "尽可能的输出运行中所有的信息",
37
+ "输出一般运行的内容,以及`error`和`warning`级别的日志",
38
+ "输出发生错误但不影响运行的日志,以及`error`级别内容",
39
+ "仅输出发生错误至无法使用的日志",
40
+ "静默,不输出"
41
+ ],
42
+ "title": "日志级别",
43
+ "description": "日志级别",
44
+ "markdownDescription": "日志级别",
45
+ "default": "info"
46
+ },
47
+ "ipv6": {
48
+ "type": "boolean",
49
+ "title": "是否允许内核接受IPv6流量",
50
+ "description": "是否允许内核接受IPv6流量",
51
+ "markdownDescription": "是否允许内核接受`IPv6`流量",
52
+ "default": true
53
+ },
54
+ "interface-name": {
55
+ "type": "string",
56
+ "title": "流量出站接口",
57
+ "description": "流量出站接口",
58
+ "markdownDescription": "流量出站接口"
59
+ },
60
+ "routing-mark": {
61
+ "type": "integer",
62
+ "title": "节点发起连接时附加的路由标记",
63
+ "description": "为Linux下的出站连接提供默认流量标记",
64
+ "markdownDescription": "为Linux下的出站连接提供默认流量标记"
65
+ },
66
+ "geox-url": { "title": "geox-url配置", "$ref": "#/definitions/geox-url" },
67
+ "geo-auto-update": {
68
+ "type": "boolean",
69
+ "title": "Geo自动更新",
70
+ "description": "Geo自动更新",
71
+ "markdownDescription": "Geo自动更新",
72
+ "default": false
73
+ },
74
+ "geo-update-interval": {
75
+ "type": "integer",
76
+ "title": "Geo自动更新间隔",
77
+ "description": "单位:h",
78
+ "markdownDescription": "单位:h",
79
+ "default": 24
80
+ },
81
+ "geodata-mode": {
82
+ "type": "boolean",
83
+ "title": "GeoIP数据模式",
84
+ "description": "更改geoip使用文件(true: dat, false: mmdb)",
85
+ "markdownDescription": "更改geoip使用文件(true: dat, false: mmdb)",
86
+ "default": false
87
+ },
88
+ "geodata-loader": {
89
+ "enum": ["standard", "memconservative", "memc"],
90
+ "markdownEnumDescriptions": ["标准加载器", "专为内存受限(小内存)设备优化的加载器", "`memconservative`的别名"],
91
+ "title": "Geo文件加载器",
92
+ "description": "Geo文件加载器",
93
+ "markdownDescription": "Geo文件加载器",
94
+ "default": "memconservative"
95
+ },
96
+ "geosite-matcher": {
97
+ "enum": ["mph", "hybrid", "succinct"],
98
+ "markdownEnumDescriptions": [
99
+ "根据Geosite规则中的域名或IP地址信息,将匹配的网络流量代理到指定的目标服务器",
100
+ "根据域名、IP地址和CIDR地址等规则进行匹配,并根据预定义的优先级来选择最佳的匹配结果",
101
+ "使用了一种紧凑的数据结构,可以有效地存储和查询大量的Geosite规则"
102
+ ],
103
+ "title": "Geosite匹配器",
104
+ "description": "Geosite匹配器",
105
+ "markdownDescription": "Geosite匹配器",
106
+ "default": "succinct"
107
+ },
108
+ "tcp-concurrent": {
109
+ "type": "boolean",
110
+ "title": "TCP并发",
111
+ "description": "TCP并发",
112
+ "markdownDescription": "TCP并发",
113
+ "default": false
114
+ },
115
+ "find-process-mode": {
116
+ "enum": ["always", "strict", "off"],
117
+ "markdownEnumDescriptions": ["强制匹配所有进程", "由内核判断是否开启", "不匹配进程,推荐在路由器上使用此模式"],
118
+ "title": "进程匹配模式",
119
+ "description": "进程匹配模式",
120
+ "markdownDescription": "进程匹配模式",
121
+ "default": "strict"
122
+ },
123
+ "ebpf": { "title": "ebpf配置", "$ref": "#/definitions/ebpf" },
124
+ "global-client-fingerprint": {
125
+ "$ref": "#/definitions/enums/fingerprint",
126
+ "title": "全局客户端指纹",
127
+ "description": "支持协议有VLESS,Vmess,trojan",
128
+ "markdownDescription": "支持协议有`VLESS`,`Vmess`,`trojan`"
129
+ },
130
+ "global-ua": {
131
+ "type": "string",
132
+ "title": "全局UA",
133
+ "description": "下载外部资源(proxy-provider、rule-provider、Geo等)时使用",
134
+ "markdownDescription": "下载外部资源(proxy-provider、rule-provider、Geo等)时使用",
135
+ "default": "clash.meta/version"
136
+ }
137
+ }
138
+ }
139
+ ]
140
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "type": "object",
3
+ "title": "geox-url配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" }
7
+ },
8
+ "properties": {
9
+ "geoip": {
10
+ "$ref": "#/definitions/patterns/httpUrl",
11
+ "title": "geoip文件下载地址",
12
+ "description": "geoip文件下载地址",
13
+ "markdownDescription": "`geoip`文件下载地址",
14
+ "default": "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
15
+ },
16
+ "mmdb": {
17
+ "$ref": "#/definitions/patterns/httpUrl",
18
+ "title": "mmdb文件下载地址",
19
+ "description": "mmdb文件下载地址",
20
+ "markdownDescription": "`mmdb`文件下载地址",
21
+ "default": "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb"
22
+ },
23
+ "asn": {
24
+ "$ref": "#/definitions/patterns/httpUrl",
25
+ "title": "asn文件下载地址",
26
+ "description": "asn文件下载地址",
27
+ "markdownDescription": "`asn`文件下载地址",
28
+ "default": "https://github.com/xishang0128/geoip/releases/download/latest/GeoLite2-ASN.mmdb"
29
+ },
30
+ "geosite": {
31
+ "$ref": "#/definitions/patterns/httpUrl",
32
+ "title": "geosite文件下载地址",
33
+ "description": "geosite文件下载地址",
34
+ "markdownDescription": "`geosite`文件下载地址",
35
+ "default": "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat"
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "object",
3
+ "title": "hosts配置",
4
+ "description": "key: value格式(域名支持通配)",
5
+ "definitions": {
6
+ "types": { "$ref": "../../definitions/types.json" },
7
+ "patterns": { "$ref": "../../definitions/patterns.json" }
8
+ }
9
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "type": "object",
3
+ "title": "inbound配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" }
7
+ },
8
+ "properties": {
9
+ "port": {
10
+ "$ref": "#/definitions/patterns/port",
11
+ "title": "HTTP(S)代理端口",
12
+ "description": "HTTP(S)代理端口",
13
+ "markdownDescription": "`HTTP(S)`代理端口"
14
+ },
15
+ "socks-port": {
16
+ "$ref": "#/definitions/patterns/port",
17
+ "title": "SOCKS代理端口",
18
+ "description": "SOCKS代理端口",
19
+ "markdownDescription": "`SOCKS`代理端口"
20
+ },
21
+ "redir-port": {
22
+ "$ref": "#/definitions/patterns/port",
23
+ "title": "透明代理端口",
24
+ "description": "用于Linux和MacOS",
25
+ "markdownDescription": "用于`Linux`和`MacOS`"
26
+ },
27
+ "tproxy-port": {
28
+ "$ref": "#/definitions/patterns/port",
29
+ "title": "透明代理端口",
30
+ "description": "用于Linux(TProxy TCP 和 TProxy UDP)",
31
+ "markdownDescription": "用于`Linux`(TProxy TCP 和 TProxy UDP)"
32
+ },
33
+ "mixed-port": {
34
+ "$ref": "#/definitions/patterns/port",
35
+ "title": "HTTP(S)和SOCKS代理混合端口",
36
+ "description": "HTTP(S)和SOCKS代理混合端口",
37
+ "markdownDescription": "`HTTP(S)`和`SOCKS`代理混合端口",
38
+ "default": 7890
39
+ },
40
+ "ss-config": {
41
+ "type": "string",
42
+ "title": "shadowsocks配置",
43
+ "description": "根据配置(URL格式)启动shadowsocks服务器,并添加到listeners",
44
+ "markdownDescription": "根据配置(`URL`格式)启动shadowsocks服务器,并添加到listeners"
45
+ },
46
+ "vmess-config": {
47
+ "type": "string",
48
+ "title": "vmess配置",
49
+ "description": "根据配置(URL格式)启动vmess服务器,并添加到listeners",
50
+ "markdownDescription": "根据配置(`URL`格式)启动vmess服务器,并添加到listeners"
51
+ },
52
+ "allow-lan": {
53
+ "type": "boolean",
54
+ "title": "允许局域网",
55
+ "description": "允许其他设备经过内核的代理端口访问互联网",
56
+ "markdownDescription": "允许其他设备经过内核的代理端口访问互联网",
57
+ "default": false
58
+ },
59
+ "skip-auth-prefixes": {
60
+ "$ref": "#/definitions/patterns/ipCIDR",
61
+ "title": "允许跳过验证的IP段",
62
+ "description": "允许跳过验证的IP段",
63
+ "markdownDescription": "允许跳过验证的IP段"
64
+ },
65
+ "lan-allowed-ips": {
66
+ "$ref": "#/definitions/patterns/ipCIDR",
67
+ "title": "允许连接的IP地址段",
68
+ "description": "需要启用allow-lan",
69
+ "markdownDescription": "需要启用`allow-lan`",
70
+ "default": ["0.0.0.0/0", "::/0"]
71
+ },
72
+ "lan-disallowed-ips": {
73
+ "$ref": "#/definitions/patterns/ipCIDR",
74
+ "title": "不允许连接的IP地址段",
75
+ "description": "需要启用allow-lan(优先级高于lan-allowed-ips)",
76
+ "markdownDescription": "需要启用`allow-lan`(优先级高于`lan-allowed-ips`)"
77
+ },
78
+ "bind-address": {
79
+ "$ref": "#/definitions/patterns/ipPort",
80
+ "title": "绑定地址",
81
+ "description": "仅允许其他设备通过这个地址访问(*绑定所有IP地址)",
82
+ "markdownDescription": "仅允许其他设备通过这个地址访问(*绑定所有IP地址)",
83
+ "default": "*"
84
+ },
85
+ "inbound-tfo": {
86
+ "type": "boolean",
87
+ "title": "入站启用TFO(TCP Fast Open)",
88
+ "description": "仅对TCP协议生效",
89
+ "markdownDescription": "仅对TCP协议生效"
90
+ },
91
+ "inbound-mptcp": {
92
+ "type": "boolean",
93
+ "title": "入站启用MPTCP(Multi Path TCP)",
94
+ "description": "仅对TCP协议生效",
95
+ "markdownDescription": "仅对TCP协议生效"
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "type": "object",
3
+ "title": "iptables配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" }
7
+ },
8
+ "properties": {
9
+ "enable": {
10
+ "type": "boolean",
11
+ "title": "持久化策略组的选择",
12
+ "description": "缓存对策略组的选择,以供下次启动时使用",
13
+ "markdownDescription": "缓存对策略组的选择,以供下次启动时使用",
14
+ "default": false
15
+ },
16
+ "inbound-interface": {
17
+ "type": "string",
18
+ "title": "入站接口",
19
+ "description": "入站规则将仅应用于哪个接口(默认本地环回接口)",
20
+ "markdownDescription": "入站规则将仅应用于哪个接口(默认本地环回接口)",
21
+ "default": "lo"
22
+ },
23
+ "bypass": {
24
+ "$ref": "#/definitions/types/stringArray",
25
+ "title": "需要绕过iptables规则的IP地址或网段列表",
26
+ "description": "需要绕过iptables规则的IP地址或网段列表",
27
+ "markdownDescription": "需要绕过`iptables`规则的IP地址或网段列表",
28
+ "default": []
29
+ },
30
+ "dns-redirect": {
31
+ "type": "boolean",
32
+ "title": "DNS重定向",
33
+ "description": "DNS重定向",
34
+ "markdownDescription": "DNS重定向",
35
+ "default": true
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "type": "array",
3
+ "title": "listeners配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "socks": { "$ref": "../listener/inbound/socks.json" },
9
+ "http": { "$ref": "../listener/inbound/http.json" },
10
+ "tproxy": { "$ref": "../listener/inbound/tproxy.json" },
11
+ "redir": { "$ref": "../listener/inbound/redir.json" },
12
+ "mixed": { "$ref": "../listener/inbound/mixed.json" },
13
+ "tunnel": { "$ref": "../listener/inbound/tunnel.json" },
14
+ "tun": { "$ref": "../listener/inbound/tun.json" },
15
+ "shadowsocks": { "$ref": "../listener/inbound/shadowsocks.json" },
16
+ "vmess": { "$ref": "../listener/inbound/vmess.json" },
17
+ "hysteria2": { "$ref": "../listener/inbound/hysteria2.json" },
18
+ "tuic": { "$ref": "../listener/inbound/tuic.json" }
19
+ },
20
+ "items": {
21
+ "anyOf": [
22
+ {
23
+ "type": "object",
24
+ "title": "socks配置",
25
+ "properties": { "type": { "title": "socks配置", "const": "socks" } },
26
+ "$ref": "#/definitions/socks"
27
+ },
28
+ {
29
+ "type": "object",
30
+ "title": "http配置",
31
+ "properties": { "type": { "title": "socks配置", "const": "http" } },
32
+ "$ref": "#/definitions/http"
33
+ },
34
+ {
35
+ "type": "object",
36
+ "title": "tproxy配置",
37
+ "properties": { "type": { "title": "tproxy配置", "const": "tproxy" } },
38
+ "$ref": "#/definitions/tproxy"
39
+ },
40
+ {
41
+ "type": "object",
42
+ "title": "redir配置",
43
+ "properties": { "type": { "title": "redir配置", "const": "redir" } },
44
+ "$ref": "#/definitions/redir"
45
+ },
46
+ {
47
+ "type": "object",
48
+ "title": "mixed配置",
49
+ "properties": { "type": { "title": "mixed配置", "const": "mixed" } },
50
+ "$ref": "#/definitions/mixed"
51
+ },
52
+ {
53
+ "type": "object",
54
+ "title": "tunnel配置",
55
+ "properties": { "type": { "title": "tunnel配置", "const": "tunnel" } },
56
+ "$ref": "#/definitions/tunnel"
57
+ },
58
+ {
59
+ "type": "object",
60
+ "title": "tun配置",
61
+ "properties": { "type": { "title": "tun配置", "const": "tun" } },
62
+ "$ref": "#/definitions/tun"
63
+ },
64
+ {
65
+ "type": "object",
66
+ "title": "shadowsocks配置",
67
+ "properties": { "type": { "title": "shadowsocks配置", "const": "shadowsocks" } },
68
+ "$ref": "#/definitions/shadowsocks"
69
+ },
70
+ {
71
+ "type": "object",
72
+ "title": "vmess配置",
73
+ "properties": { "type": { "title": "vmess配置", "const": "vmess" } },
74
+ "$ref": "#/definitions/vmess"
75
+ },
76
+ {
77
+ "type": "object",
78
+ "title": "hysteria2配置",
79
+ "properties": { "type": { "title": "hysteria2配置", "const": "hysteria2" } },
80
+ "$ref": "#/definitions/hysteria2"
81
+ },
82
+ {
83
+ "type": "object",
84
+ "title": "tuic配置",
85
+ "properties": { "type": { "title": "tuic配置", "const": "tuic" } },
86
+ "$ref": "#/definitions/tuic"
87
+ }
88
+ ]
89
+ }
90
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "type": "object",
3
+ "title": "NTP配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" }
7
+ },
8
+ "properties": {
9
+ "enable": {
10
+ "type": "boolean",
11
+ "title": "启用NTP",
12
+ "description": "NTP(Network Time Protocol),用于同步计算机系统时钟的网络协议",
13
+ "markdownDescription": "`NTP`(Network Time Protocol),用于同步计算机系统时钟的网络协议",
14
+ "default": false
15
+ },
16
+ "server": {
17
+ "type": "string",
18
+ "title": "NTP服务器地址",
19
+ "description": "NTP服务器地址",
20
+ "markdownDescription": "`NTP`服务器地址",
21
+ "default": "time.apple.com"
22
+ },
23
+ "port": {
24
+ "$ref": "#/definitions/patterns/port",
25
+ "title": "NTP服务器端口",
26
+ "description": "NTP服务器端口",
27
+ "markdownDescription": "`NTP`服务器端口",
28
+ "default": 123
29
+ },
30
+ "interval": {
31
+ "type": "integer",
32
+ "title": "同步时钟间隔",
33
+ "description": "单位:m",
34
+ "markdownDescription": "单位:m",
35
+ "default": 30
36
+ },
37
+ "dialer-proxy": {
38
+ "type": "string",
39
+ "title": "指定当前proxy通过下一跳的dialer-proxy建立网络连接",
40
+ "description": "取值为proxy-groups,proxy的name",
41
+ "markdownDescription": "取值为`proxy-groups`,`proxy`的`name`"
42
+ },
43
+ "write-to-system": {
44
+ "type": "boolean",
45
+ "title": "同步至系统时间",
46
+ "description": "需要root/管理员权限",
47
+ "markdownDescription": "需要root/管理员权限"
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "type": "object",
3
+ "title": "缓存配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" }
7
+ },
8
+ "properties": {
9
+ "store-selected": {
10
+ "type": "boolean",
11
+ "title": "持久化策略组的选择",
12
+ "description": "缓存对策略组的选择,以供下次启动时使用",
13
+ "markdownDescription": "缓存对策略组的选择,以供下次启动时使用",
14
+ "default": true
15
+ },
16
+ "store-fake-ip": {
17
+ "type": "boolean",
18
+ "title": "持久化缓存fake-ip映射表",
19
+ "description": "缓存fake-ip映射表,域名再次发生连接时,使用原有映射地址",
20
+ "markdownDescription": "缓存`fake-ip`映射表,域名再次发生连接时,使用原有映射地址",
21
+ "default": false
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,118 @@
1
+ {
2
+ "type": "array",
3
+ "title": "代理配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "direct": { "$ref": "../adapter/outbound/direct.json" },
9
+ "dns": { "$ref": "../adapter/outbound/dns.json" },
10
+ "shadowsocks": { "$ref": "../adapter/outbound/shadowsocks.json" },
11
+ "shadowsocksr": { "$ref": "../adapter/outbound/shadowsocksr.json" },
12
+ "snell": { "$ref": "../adapter/outbound/snell.json" },
13
+ "socks5": { "$ref": "../adapter/outbound/socks5.json" },
14
+ "http": { "$ref": "../adapter/outbound/http.json" },
15
+ "vmess": { "$ref": "../adapter/outbound/vmess.json" },
16
+ "vless": { "$ref": "../adapter/outbound/vless.json" },
17
+ "trojan": { "$ref": "../adapter/outbound/trojan.json" },
18
+ "hysteria": { "$ref": "../adapter/outbound/hysteria.json" },
19
+ "hysteria2": { "$ref": "../adapter/outbound/hysteria2.json" },
20
+ "wireguard": { "$ref": "../adapter/outbound/wireguard.json" },
21
+ "tuic": { "$ref": "../adapter/outbound/tuic.json" },
22
+ "ssh": { "$ref": "../adapter/outbound/ssh.json" }
23
+ },
24
+ "items": {
25
+ "anyOf": [
26
+ {
27
+ "type": "object",
28
+ "title": "direct",
29
+ "properties": { "type": { "title": "direct配置", "const": "direct" } },
30
+ "$ref": "#/definitions/direct"
31
+ },
32
+ {
33
+ "type": "object",
34
+ "title": "dns",
35
+ "properties": { "type": { "title": "dns配置", "const": "dns" } },
36
+ "$ref": "#/definitions/dns"
37
+ },
38
+ {
39
+ "type": "object",
40
+ "title": "shadowsocks",
41
+ "properties": { "type": { "title": "shadowsocks配置", "const": "ss" } },
42
+ "$ref": "#/definitions/shadowsocks"
43
+ },
44
+ {
45
+ "type": "object",
46
+ "title": "shadowsocksr",
47
+ "properties": { "type": { "title": "shadowsocksr配置", "const": "ssr" } },
48
+ "$ref": "#/definitions/shadowsocksr"
49
+ },
50
+ {
51
+ "type": "object",
52
+ "title": "snell",
53
+ "properties": { "type": { "title": "snell配置", "const": "snell" } },
54
+ "$ref": "#/definitions/snell"
55
+ },
56
+ {
57
+ "type": "object",
58
+ "title": "socks5",
59
+ "properties": { "type": { "title": "socks5配置", "const": "socks5" } },
60
+ "$ref": "#/definitions/socks5"
61
+ },
62
+ {
63
+ "type": "object",
64
+ "title": "http",
65
+ "properties": { "type": { "title": "http配置", "const": "http" } },
66
+ "$ref": "#/definitions/http"
67
+ },
68
+ {
69
+ "type": "object",
70
+ "title": "vmess",
71
+ "properties": { "type": { "title": "vmess配置", "const": "vmess" } },
72
+ "$ref": "#/definitions/vmess"
73
+ },
74
+ {
75
+ "type": "object",
76
+ "title": "vless",
77
+ "properties": { "type": { "title": "vless配置", "const": "vless" } },
78
+ "$ref": "#/definitions/vless"
79
+ },
80
+ {
81
+ "type": "object",
82
+ "title": "trojan",
83
+ "properties": { "type": { "title": "trojan配置", "const": "trojan" } },
84
+ "$ref": "#/definitions/trojan"
85
+ },
86
+ {
87
+ "type": "object",
88
+ "title": "hysteria",
89
+ "properties": { "type": { "title": "hysteria配置", "const": "hysteria" } },
90
+ "$ref": "#/definitions/hysteria"
91
+ },
92
+ {
93
+ "type": "object",
94
+ "title": "hysteria2",
95
+ "properties": { "type": { "title": "hysteria2配置", "const": "hysteria2" } },
96
+ "$ref": "#/definitions/hysteria2"
97
+ },
98
+ {
99
+ "type": "object",
100
+ "title": "wireguard",
101
+ "properties": { "type": { "title": "wireguard配置", "const": "wireguard" } },
102
+ "$ref": "#/definitions/wireguard"
103
+ },
104
+ {
105
+ "type": "object",
106
+ "title": "tuic",
107
+ "properties": { "type": { "title": "tuic配置", "const": "tuic" } },
108
+ "$ref": "#/definitions/tuic"
109
+ },
110
+ {
111
+ "type": "object",
112
+ "title": "ssh",
113
+ "properties": { "type": { "title": "ssh配置", "const": "ssh" } },
114
+ "$ref": "#/definitions/ssh"
115
+ }
116
+ ]
117
+ }
118
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "type": "array",
3
+ "title": "代理组配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "url-test": { "$ref": "../adapter/outboundgroup/urltest.json" },
9
+ "fallback": { "$ref": "../adapter/outboundgroup/fallback.json" },
10
+ "load-balance": { "$ref": "../adapter/outboundgroup/loadbalance.json" },
11
+ "relay": { "$ref": "../adapter/outboundgroup/relay.json" }
12
+ },
13
+ "items": {
14
+ "anyOf": [
15
+ { "title": "url-test配置", "$ref": "#/definitions/url-test" },
16
+ { "title": "fallback配置", "$ref": "#/definitions/fallback" },
17
+ { "title": "load-balance配置", "$ref": "#/definitions/load-balance" },
18
+ { "title": "relay配置", "$ref": "#/definitions/relay" }
19
+ ]
20
+ }
21
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "type": "object",
3
+ "title": "代理集合配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "health-check": { "$ref": "../adapter/provider/health-check.json" }
9
+ },
10
+ "$ref": "../adapter/provider/provider.json"
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "type": "array",
3
+ "title": "规则配置",
4
+ "definitions": {
5
+ "types": { "$ref": "../../definitions/types.json" },
6
+ "patterns": { "$ref": "../../definitions/patterns.json" },
7
+ "enums": { "$ref": "../../definitions/enums.json" },
8
+ "rule": { "$ref": "../rules/rule.json" }
9
+ },
10
+ "items": { "$ref": "#/definitions/rule" }
11
+ }