xray-typed 1.0.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.
- package/README.md +0 -0
- package/dist/config/api.d.ts +15 -0
- package/dist/config/api.d.ts.map +1 -0
- package/dist/config/api.js +3 -0
- package/dist/config/api.js.map +1 -0
- package/dist/config/dns.d.ts +65 -0
- package/dist/config/dns.d.ts.map +1 -0
- package/dist/config/dns.js +3 -0
- package/dist/config/dns.js.map +1 -0
- package/dist/config/fakedns.d.ts +13 -0
- package/dist/config/fakedns.d.ts.map +1 -0
- package/dist/config/fakedns.js +3 -0
- package/dist/config/fakedns.js.map +1 -0
- package/dist/config/inbound.d.ts +36 -0
- package/dist/config/inbound.d.ts.map +1 -0
- package/dist/config/inbound.js +3 -0
- package/dist/config/inbound.js.map +1 -0
- package/dist/config/index.d.ts +15 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +31 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/log.d.ts +20 -0
- package/dist/config/log.d.ts.map +1 -0
- package/dist/config/log.js +3 -0
- package/dist/config/log.js.map +1 -0
- package/dist/config/metrics.d.ts +12 -0
- package/dist/config/metrics.d.ts.map +1 -0
- package/dist/config/metrics.js +3 -0
- package/dist/config/metrics.js.map +1 -0
- package/dist/config/mux.d.ts +17 -0
- package/dist/config/mux.d.ts.map +1 -0
- package/dist/config/mux.js +3 -0
- package/dist/config/mux.js.map +1 -0
- package/dist/config/observatory.d.ts +34 -0
- package/dist/config/observatory.d.ts.map +1 -0
- package/dist/config/observatory.js +3 -0
- package/dist/config/observatory.js.map +1 -0
- package/dist/config/outbound.d.ts +48 -0
- package/dist/config/outbound.d.ts.map +1 -0
- package/dist/config/outbound.js +3 -0
- package/dist/config/outbound.js.map +1 -0
- package/dist/config/policy.d.ts +40 -0
- package/dist/config/policy.d.ts.map +1 -0
- package/dist/config/policy.js +3 -0
- package/dist/config/policy.js.map +1 -0
- package/dist/config/reverse.d.ts +24 -0
- package/dist/config/reverse.d.ts.map +1 -0
- package/dist/config/reverse.js +3 -0
- package/dist/config/reverse.js.map +1 -0
- package/dist/config/routing.d.ts +84 -0
- package/dist/config/routing.d.ts.map +1 -0
- package/dist/config/routing.js +3 -0
- package/dist/config/routing.js.map +1 -0
- package/dist/config/sniffing.d.ts +19 -0
- package/dist/config/sniffing.d.ts.map +1 -0
- package/dist/config/sniffing.js +3 -0
- package/dist/config/sniffing.js.map +1 -0
- package/dist/config/stats.d.ts +9 -0
- package/dist/config/stats.d.ts.map +1 -0
- package/dist/config/stats.js +3 -0
- package/dist/config/stats.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/proxies/blackhole.d.ts +15 -0
- package/dist/proxies/blackhole.d.ts.map +1 -0
- package/dist/proxies/blackhole.js +3 -0
- package/dist/proxies/blackhole.js.map +1 -0
- package/dist/proxies/dns.d.ts +22 -0
- package/dist/proxies/dns.d.ts.map +1 -0
- package/dist/proxies/dns.js +3 -0
- package/dist/proxies/dns.js.map +1 -0
- package/dist/proxies/dokodemo.d.ts +20 -0
- package/dist/proxies/dokodemo.d.ts.map +1 -0
- package/dist/proxies/dokodemo.js +3 -0
- package/dist/proxies/dokodemo.js.map +1 -0
- package/dist/proxies/freedom.d.ts +47 -0
- package/dist/proxies/freedom.d.ts.map +1 -0
- package/dist/proxies/freedom.js +3 -0
- package/dist/proxies/freedom.js.map +1 -0
- package/dist/proxies/http.d.ts +57 -0
- package/dist/proxies/http.d.ts.map +1 -0
- package/dist/proxies/http.js +9 -0
- package/dist/proxies/http.js.map +1 -0
- package/dist/proxies/index.d.ts +13 -0
- package/dist/proxies/index.d.ts.map +1 -0
- package/dist/proxies/index.js +29 -0
- package/dist/proxies/index.js.map +1 -0
- package/dist/proxies/loopback.d.ts +11 -0
- package/dist/proxies/loopback.d.ts.map +1 -0
- package/dist/proxies/loopback.js +3 -0
- package/dist/proxies/loopback.js.map +1 -0
- package/dist/proxies/shadowsocks.d.ts +74 -0
- package/dist/proxies/shadowsocks.d.ts.map +1 -0
- package/dist/proxies/shadowsocks.js +9 -0
- package/dist/proxies/shadowsocks.js.map +1 -0
- package/dist/proxies/socks.d.ts +60 -0
- package/dist/proxies/socks.d.ts.map +1 -0
- package/dist/proxies/socks.js +9 -0
- package/dist/proxies/socks.js.map +1 -0
- package/dist/proxies/trojan.d.ts +67 -0
- package/dist/proxies/trojan.d.ts.map +1 -0
- package/dist/proxies/trojan.js +9 -0
- package/dist/proxies/trojan.js.map +1 -0
- package/dist/proxies/vless.d.ts +96 -0
- package/dist/proxies/vless.d.ts.map +1 -0
- package/dist/proxies/vless.js +9 -0
- package/dist/proxies/vless.js.map +1 -0
- package/dist/proxies/vmess.d.ts +68 -0
- package/dist/proxies/vmess.d.ts.map +1 -0
- package/dist/proxies/vmess.js +9 -0
- package/dist/proxies/vmess.js.map +1 -0
- package/dist/proxies/wireguard.d.ts +36 -0
- package/dist/proxies/wireguard.d.ts.map +1 -0
- package/dist/proxies/wireguard.js +3 -0
- package/dist/proxies/wireguard.js.map +1 -0
- package/dist/transport/common.d.ts +25 -0
- package/dist/transport/common.d.ts.map +1 -0
- package/dist/transport/common.js +6 -0
- package/dist/transport/common.js.map +1 -0
- package/dist/transport/finalmask.d.ts +79 -0
- package/dist/transport/finalmask.d.ts.map +1 -0
- package/dist/transport/finalmask.js +3 -0
- package/dist/transport/finalmask.js.map +1 -0
- package/dist/transport/grpc.d.ts +24 -0
- package/dist/transport/grpc.d.ts.map +1 -0
- package/dist/transport/grpc.js +3 -0
- package/dist/transport/grpc.js.map +1 -0
- package/dist/transport/http.d.ts +21 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +3 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/httpupgrade.d.ts +16 -0
- package/dist/transport/httpupgrade.d.ts.map +1 -0
- package/dist/transport/httpupgrade.js +3 -0
- package/dist/transport/httpupgrade.js.map +1 -0
- package/dist/transport/hysteria.d.ts +45 -0
- package/dist/transport/hysteria.d.ts.map +1 -0
- package/dist/transport/hysteria.js +3 -0
- package/dist/transport/hysteria.js.map +1 -0
- package/dist/transport/index.d.ts +16 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +30 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/kcp.d.ts +31 -0
- package/dist/transport/kcp.d.ts.map +1 -0
- package/dist/transport/kcp.js +3 -0
- package/dist/transport/kcp.js.map +1 -0
- package/dist/transport/quic.d.ts +20 -0
- package/dist/transport/quic.d.ts.map +1 -0
- package/dist/transport/quic.js +3 -0
- package/dist/transport/quic.js.map +1 -0
- package/dist/transport/reality.d.ts +60 -0
- package/dist/transport/reality.d.ts.map +1 -0
- package/dist/transport/reality.js +3 -0
- package/dist/transport/reality.js.map +1 -0
- package/dist/transport/sockopt.d.ts +74 -0
- package/dist/transport/sockopt.d.ts.map +1 -0
- package/dist/transport/sockopt.js +3 -0
- package/dist/transport/sockopt.js.map +1 -0
- package/dist/transport/splithttp.d.ts +81 -0
- package/dist/transport/splithttp.d.ts.map +1 -0
- package/dist/transport/splithttp.js +3 -0
- package/dist/transport/splithttp.js.map +1 -0
- package/dist/transport/stream.d.ts +57 -0
- package/dist/transport/stream.d.ts.map +1 -0
- package/dist/transport/stream.js +3 -0
- package/dist/transport/stream.js.map +1 -0
- package/dist/transport/tcp.d.ts +42 -0
- package/dist/transport/tcp.d.ts.map +1 -0
- package/dist/transport/tcp.js +3 -0
- package/dist/transport/tcp.js.map +1 -0
- package/dist/transport/tls.d.ts +69 -0
- package/dist/transport/tls.d.ts.map +1 -0
- package/dist/transport/tls.js +3 -0
- package/dist/transport/tls.js.map +1 -0
- package/dist/transport/websocket.d.ts +18 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +3 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/xray-config.d.ts +76 -0
- package/dist/xray-config.d.ts.map +1 -0
- package/dist/xray-config.js +3 -0
- package/dist/xray-config.js.map +1 -0
- package/package.json +30 -0
package/README.md
ADDED
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API configuration for Xray-Core gRPC API.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/api.html
|
|
5
|
+
*/
|
|
6
|
+
export interface APIConfig {
|
|
7
|
+
/** Tag for the API inbound. Must match an inbound tag using dokodemo-door. */
|
|
8
|
+
tag?: string;
|
|
9
|
+
/** Listen address for the API (e.g. "127.0.0.1:8080"). */
|
|
10
|
+
listen?: string;
|
|
11
|
+
/** List of API services to enable. */
|
|
12
|
+
services?: APIService[];
|
|
13
|
+
}
|
|
14
|
+
export type APIService = 'HandlerService' | 'LoggerService' | 'StatsService' | 'RoutingService' | 'ReflectionService';
|
|
15
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/config/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAChB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/config/api.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DNS configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/dns.html
|
|
5
|
+
*/
|
|
6
|
+
export interface DNSConfig {
|
|
7
|
+
/** DNS server list. Each entry can be a string address or a detailed NameServerConfig. */
|
|
8
|
+
servers?: (string | NameServerConfig)[];
|
|
9
|
+
/** Static hosts mapping. Key is domain, value is IP address(es) or domain. */
|
|
10
|
+
hosts?: Record<string, string | string[]>;
|
|
11
|
+
/** Client IP for EDNS Client Subnet. */
|
|
12
|
+
clientIp?: string;
|
|
13
|
+
/** Tag for the DNS inbound. Used for routing DNS queries. */
|
|
14
|
+
tag?: string;
|
|
15
|
+
/** Query strategy for IP version preference. */
|
|
16
|
+
queryStrategy?: DNSQueryStrategy;
|
|
17
|
+
/** Disable DNS response caching. */
|
|
18
|
+
disableCache?: boolean;
|
|
19
|
+
/** Serve stale (expired) cache entries when upstream fails. */
|
|
20
|
+
serveStale?: boolean;
|
|
21
|
+
/** Maximum TTL in seconds for serving expired cache entries. */
|
|
22
|
+
serveExpiredTTL?: number;
|
|
23
|
+
/** Disable fallback to other DNS servers on failure. */
|
|
24
|
+
disableFallback?: boolean;
|
|
25
|
+
/** Disable fallback if a domain matches the current server's domain list. */
|
|
26
|
+
disableFallbackIfMatch?: boolean;
|
|
27
|
+
/** Enable parallel queries to all DNS servers simultaneously. */
|
|
28
|
+
enableParallelQuery?: boolean;
|
|
29
|
+
/** Use system /etc/hosts file. */
|
|
30
|
+
useSystemHosts?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface NameServerConfig {
|
|
33
|
+
/** DNS server address (e.g. "8.8.8.8", "https+local://dns.google/dns-query", "localhost", "fakedns"). */
|
|
34
|
+
address?: string;
|
|
35
|
+
/** Client IP for EDNS Client Subnet for this server. */
|
|
36
|
+
clientIp?: string;
|
|
37
|
+
/** Port for this DNS server (default: 53). */
|
|
38
|
+
port?: number;
|
|
39
|
+
/** Skip this server for fallback queries. */
|
|
40
|
+
skipFallback?: boolean;
|
|
41
|
+
/** Domain list this server is responsible for. Supports domain matching syntax. */
|
|
42
|
+
domains?: string[];
|
|
43
|
+
/** Expected IPs. Results not matching will be discarded (used for DNS filtering). */
|
|
44
|
+
expectedIPs?: string[];
|
|
45
|
+
/** Alias for expectedIPs (legacy). */
|
|
46
|
+
expectIPs?: string[];
|
|
47
|
+
/** Unexpected IPs. Results matching these will be discarded. */
|
|
48
|
+
unexpectedIPs?: string[];
|
|
49
|
+
/** Override query strategy for this server. */
|
|
50
|
+
queryStrategy?: DNSQueryStrategy;
|
|
51
|
+
/** Tag for routing DNS queries from this server. */
|
|
52
|
+
tag?: string;
|
|
53
|
+
/** Timeout in milliseconds for this server. */
|
|
54
|
+
timeoutMs?: number;
|
|
55
|
+
/** Override global disableCache for this server. */
|
|
56
|
+
disableCache?: boolean;
|
|
57
|
+
/** Override global serveStale for this server. */
|
|
58
|
+
serveStale?: boolean;
|
|
59
|
+
/** Override global serveExpiredTTL for this server. */
|
|
60
|
+
serveExpiredTTL?: number;
|
|
61
|
+
/** Mark this as the final query server. No further fallback after this. */
|
|
62
|
+
finalQuery?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export type DNSQueryStrategy = 'UseIP' | 'UseIPv4' | 'UseIPv6' | 'UseIPv4v6' | 'UseIPv6v4';
|
|
65
|
+
//# sourceMappingURL=dns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../src/config/dns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACxC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B,yGAAyG;IACzG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.js","sourceRoot":"","sources":["../../src/config/dns.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FakeDNS configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/fakedns.html
|
|
5
|
+
*/
|
|
6
|
+
export type FakeDNSConfig = FakeDNSPoolConfig | FakeDNSPoolConfig[];
|
|
7
|
+
export interface FakeDNSPoolConfig {
|
|
8
|
+
/** IP pool CIDR for fake DNS responses (e.g. "198.18.0.0/15"). */
|
|
9
|
+
ipPool?: string;
|
|
10
|
+
/** Maximum number of entries in the LRU cache (default: 65535). */
|
|
11
|
+
poolSize?: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=fakedns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakedns.d.ts","sourceRoot":"","sources":["../../src/config/fakedns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakedns.js","sourceRoot":"","sources":["../../src/config/fakedns.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { StreamSettingsConfig } from '../transport/stream';
|
|
2
|
+
import { SniffingConfig } from './sniffing';
|
|
3
|
+
import { VLessInboundConfig } from '../proxies/vless';
|
|
4
|
+
import { VMessInboundConfig } from '../proxies/vmess';
|
|
5
|
+
import { TrojanInboundConfig } from '../proxies/trojan';
|
|
6
|
+
import { ShadowsocksInboundConfig } from '../proxies/shadowsocks';
|
|
7
|
+
import { SocksInboundConfig } from '../proxies/socks';
|
|
8
|
+
import { HTTPInboundConfig } from '../proxies/http';
|
|
9
|
+
import { DokodemoInboundConfig } from '../proxies/dokodemo';
|
|
10
|
+
/**
|
|
11
|
+
* Inbound connection configuration.
|
|
12
|
+
*
|
|
13
|
+
* @see https://xtls.github.io/en/config/inbound.html
|
|
14
|
+
*/
|
|
15
|
+
export interface InboundConfig {
|
|
16
|
+
/** Inbound protocol name. */
|
|
17
|
+
protocol?: InboundProtocol;
|
|
18
|
+
/** Listening port. Can be a number, string range "1-65535", or comma-separated. */
|
|
19
|
+
port?: number | string;
|
|
20
|
+
/** Listening address (default: "0.0.0.0"). */
|
|
21
|
+
listen?: string;
|
|
22
|
+
/** Protocol-specific settings. Type depends on protocol value. */
|
|
23
|
+
settings?: InboundSettings;
|
|
24
|
+
/** Unique tag for routing reference. */
|
|
25
|
+
tag?: string;
|
|
26
|
+
/** Transport layer settings. */
|
|
27
|
+
streamSettings?: StreamSettingsConfig;
|
|
28
|
+
/** Traffic sniffing configuration. */
|
|
29
|
+
sniffing?: SniffingConfig;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Union type for all possible inbound protocol settings.
|
|
33
|
+
*/
|
|
34
|
+
export type InboundSettings = VLessInboundConfig | VMessInboundConfig | TrojanInboundConfig | ShadowsocksInboundConfig | SocksInboundConfig | HTTPInboundConfig | DokodemoInboundConfig;
|
|
35
|
+
export type InboundProtocol = 'vless' | 'vmess' | 'trojan' | 'shadowsocks' | 'socks' | 'http' | 'dokodemo-door';
|
|
36
|
+
//# sourceMappingURL=inbound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../../src/config/inbound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACrB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,CAAC;AAE5B,MAAM,MAAM,eAAe,GACrB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,aAAa,GACb,OAAO,GACP,MAAM,GACN,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../src/config/inbound.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './log';
|
|
2
|
+
export * from './api';
|
|
3
|
+
export * from './metrics';
|
|
4
|
+
export * from './stats';
|
|
5
|
+
export * from './dns';
|
|
6
|
+
export * from './routing';
|
|
7
|
+
export * from './policy';
|
|
8
|
+
export * from './reverse';
|
|
9
|
+
export * from './fakedns';
|
|
10
|
+
export * from './observatory';
|
|
11
|
+
export * from './sniffing';
|
|
12
|
+
export * from './mux';
|
|
13
|
+
export * from './inbound';
|
|
14
|
+
export * from './outbound';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./log"), exports);
|
|
18
|
+
__exportStar(require("./api"), exports);
|
|
19
|
+
__exportStar(require("./metrics"), exports);
|
|
20
|
+
__exportStar(require("./stats"), exports);
|
|
21
|
+
__exportStar(require("./dns"), exports);
|
|
22
|
+
__exportStar(require("./routing"), exports);
|
|
23
|
+
__exportStar(require("./policy"), exports);
|
|
24
|
+
__exportStar(require("./reverse"), exports);
|
|
25
|
+
__exportStar(require("./fakedns"), exports);
|
|
26
|
+
__exportStar(require("./observatory"), exports);
|
|
27
|
+
__exportStar(require("./sniffing"), exports);
|
|
28
|
+
__exportStar(require("./mux"), exports);
|
|
29
|
+
__exportStar(require("./inbound"), exports);
|
|
30
|
+
__exportStar(require("./outbound"), exports);
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,4CAA0B;AAC1B,0CAAwB;AACxB,wCAAsB;AACtB,4CAA0B;AAC1B,2CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,6CAA2B;AAC3B,wCAAsB;AACtB,4CAA0B;AAC1B,6CAA2B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/log.html
|
|
5
|
+
*/
|
|
6
|
+
export interface LogConfig {
|
|
7
|
+
/** Path to access log file. Empty value disables access log. */
|
|
8
|
+
access?: string;
|
|
9
|
+
/** Path to error log file. Empty value disables error log. */
|
|
10
|
+
error?: string;
|
|
11
|
+
/** Log level severity. */
|
|
12
|
+
loglevel?: LogLevel;
|
|
13
|
+
/** Enable DNS query logging. */
|
|
14
|
+
dnsLog?: boolean;
|
|
15
|
+
/** Address masking mode for privacy. */
|
|
16
|
+
maskAddress?: MaskAddressMode;
|
|
17
|
+
}
|
|
18
|
+
export type LogLevel = 'none' | 'error' | 'warning' | 'info' | 'debug';
|
|
19
|
+
export type MaskAddressMode = '' | 'quarter' | 'half' | 'full';
|
|
20
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/config/log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/config/log.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metrics configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/metrics.html
|
|
5
|
+
*/
|
|
6
|
+
export interface MetricsConfig {
|
|
7
|
+
/** Tag for the metrics handler. */
|
|
8
|
+
tag?: string;
|
|
9
|
+
/** Listen address for metrics endpoint (e.g. "127.0.0.1:9090"). */
|
|
10
|
+
listen?: string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/config/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/config/metrics.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mux (multiplexing) configuration for Xray-Core outbounds.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/outbound.html#muxobject
|
|
5
|
+
*/
|
|
6
|
+
export interface MuxConfig {
|
|
7
|
+
/** Enable mux. */
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
/** Number of concurrent streams per connection (-1 for recommended). */
|
|
10
|
+
concurrency?: number;
|
|
11
|
+
/** XUDP concurrent streams per connection. */
|
|
12
|
+
xudpConcurrency?: number;
|
|
13
|
+
/** XUDP proxy behavior for UDP 443 traffic. */
|
|
14
|
+
xudpProxyUDP443?: XudpProxyUDP443;
|
|
15
|
+
}
|
|
16
|
+
export type XudpProxyUDP443 = '' | 'reject' | 'allow' | 'skip';
|
|
17
|
+
//# sourceMappingURL=mux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mux.d.ts","sourceRoot":"","sources":["../../src/config/mux.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,kBAAkB;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;CACrC;AAED,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mux.js","sourceRoot":"","sources":["../../src/config/mux.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observatory and Burst Observatory configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/observatory.html
|
|
5
|
+
*/
|
|
6
|
+
export interface ObservatoryConfig {
|
|
7
|
+
/** Outbound tag selectors to observe (supports prefix matching). */
|
|
8
|
+
subjectSelector?: string[];
|
|
9
|
+
/** URL to probe for health checks (default: "https://api.v2fly.org/checkConnection.svgz"). */
|
|
10
|
+
probeURL?: string;
|
|
11
|
+
/** Interval between probes (e.g. "10s", "1m"). */
|
|
12
|
+
probeInterval?: string;
|
|
13
|
+
/** Enable concurrent probing of all subjects. */
|
|
14
|
+
enableConcurrency?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface BurstObservatoryConfig {
|
|
17
|
+
/** Outbound tag selectors to observe (supports prefix matching). */
|
|
18
|
+
subjectSelector?: string[];
|
|
19
|
+
/** Health check / ping configuration. */
|
|
20
|
+
pingConfig?: HealthCheckSettings;
|
|
21
|
+
}
|
|
22
|
+
export interface HealthCheckSettings {
|
|
23
|
+
/** URL to probe for health checks. */
|
|
24
|
+
destination?: string;
|
|
25
|
+
/** Interval between health checks (e.g. "30s"). */
|
|
26
|
+
interval?: string;
|
|
27
|
+
/** Number of round trips for each probe. */
|
|
28
|
+
rounds?: number;
|
|
29
|
+
/** Sampling count to keep. */
|
|
30
|
+
samplingCount?: number;
|
|
31
|
+
/** Timeout for each probe (e.g. "5s"). */
|
|
32
|
+
timeout?: string;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=observatory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observatory.d.ts","sourceRoot":"","sources":["../../src/config/observatory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACnC,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yCAAyC;IACzC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAChC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observatory.js","sourceRoot":"","sources":["../../src/config/observatory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { StreamSettingsConfig } from '../transport/stream';
|
|
2
|
+
import { MuxConfig } from './mux';
|
|
3
|
+
import { VLessOutboundConfig } from '../proxies/vless';
|
|
4
|
+
import { VMessOutboundConfig } from '../proxies/vmess';
|
|
5
|
+
import { TrojanOutboundConfig } from '../proxies/trojan';
|
|
6
|
+
import { ShadowsocksOutboundConfig } from '../proxies/shadowsocks';
|
|
7
|
+
import { SocksOutboundConfig } from '../proxies/socks';
|
|
8
|
+
import { HTTPOutboundConfig } from '../proxies/http';
|
|
9
|
+
import { FreedomOutboundConfig } from '../proxies/freedom';
|
|
10
|
+
import { BlackholeOutboundConfig } from '../proxies/blackhole';
|
|
11
|
+
import { DNSOutboundConfig } from '../proxies/dns';
|
|
12
|
+
import { WireGuardOutboundConfig } from '../proxies/wireguard';
|
|
13
|
+
import { LoopbackOutboundConfig } from '../proxies/loopback';
|
|
14
|
+
/**
|
|
15
|
+
* Outbound connection configuration.
|
|
16
|
+
*
|
|
17
|
+
* @see https://xtls.github.io/en/config/outbound.html
|
|
18
|
+
*/
|
|
19
|
+
export interface OutboundConfig {
|
|
20
|
+
/** Outbound protocol name. */
|
|
21
|
+
protocol?: OutboundProtocol;
|
|
22
|
+
/** Send traffic through specific local address. */
|
|
23
|
+
sendThrough?: string;
|
|
24
|
+
/** Unique tag for routing reference. */
|
|
25
|
+
tag?: string;
|
|
26
|
+
/** Protocol-specific settings. Type depends on protocol value. */
|
|
27
|
+
settings?: OutboundSettings;
|
|
28
|
+
/** Transport layer settings. */
|
|
29
|
+
streamSettings?: StreamSettingsConfig;
|
|
30
|
+
/** Proxy chain settings. */
|
|
31
|
+
proxySettings?: ProxySettings;
|
|
32
|
+
/** Mux (multiplexing) settings. */
|
|
33
|
+
mux?: MuxConfig;
|
|
34
|
+
/** Target strategy. */
|
|
35
|
+
targetStrategy?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ProxySettings {
|
|
38
|
+
/** Tag of another outbound to chain through. */
|
|
39
|
+
tag?: string;
|
|
40
|
+
/** Use transport layer proxying (instead of application layer). */
|
|
41
|
+
transportLayer?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Union type for all possible outbound protocol settings.
|
|
45
|
+
*/
|
|
46
|
+
export type OutboundSettings = VLessOutboundConfig | VMessOutboundConfig | TrojanOutboundConfig | ShadowsocksOutboundConfig | SocksOutboundConfig | HTTPOutboundConfig | FreedomOutboundConfig | BlackholeOutboundConfig | DNSOutboundConfig | WireGuardOutboundConfig | LoopbackOutboundConfig;
|
|
47
|
+
export type OutboundProtocol = 'vless' | 'vmess' | 'trojan' | 'shadowsocks' | 'socks' | 'http' | 'freedom' | 'blackhole' | 'dns' | 'wireguard' | 'loopback';
|
|
48
|
+
//# sourceMappingURL=outbound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../src/config/outbound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gCAAgC;IAChC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,4BAA4B;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mCAAmC;IACnC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC1B,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,kBAAkB,GAClB,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,uBAAuB,GACvB,sBAAsB,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,aAAa,GACb,OAAO,GACP,MAAM,GACN,SAAS,GACT,WAAW,GACX,KAAK,GACL,WAAW,GACX,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.js","sourceRoot":"","sources":["../../src/config/outbound.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/policy.html
|
|
5
|
+
*/
|
|
6
|
+
export interface PolicyConfig {
|
|
7
|
+
/** Per-level policy settings. Key is the user level number. */
|
|
8
|
+
levels?: Record<number, LevelPolicy>;
|
|
9
|
+
/** System-wide policy settings. */
|
|
10
|
+
system?: SystemPolicy;
|
|
11
|
+
}
|
|
12
|
+
export interface LevelPolicy {
|
|
13
|
+
/** Handshake timeout in seconds (default: 4). */
|
|
14
|
+
handshake?: number;
|
|
15
|
+
/** Connection idle timeout in seconds (default: 300). */
|
|
16
|
+
connIdle?: number;
|
|
17
|
+
/** Time in seconds to keep upstream connection alive after downstream closes (default: 2). */
|
|
18
|
+
uplinkOnly?: number;
|
|
19
|
+
/** Time in seconds to keep downstream connection alive after upstream closes (default: 5). */
|
|
20
|
+
downlinkOnly?: number;
|
|
21
|
+
/** Enable per-user upload traffic statistics. */
|
|
22
|
+
statsUserUplink?: boolean;
|
|
23
|
+
/** Enable per-user download traffic statistics. */
|
|
24
|
+
statsUserDownlink?: boolean;
|
|
25
|
+
/** Enable per-user online status tracking. */
|
|
26
|
+
statsUserOnline?: boolean;
|
|
27
|
+
/** Per-connection buffer size in kB. -1 for unlimited. */
|
|
28
|
+
bufferSize?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SystemPolicy {
|
|
31
|
+
/** Enable inbound upload traffic statistics. */
|
|
32
|
+
statsInboundUplink?: boolean;
|
|
33
|
+
/** Enable inbound download traffic statistics. */
|
|
34
|
+
statsInboundDownlink?: boolean;
|
|
35
|
+
/** Enable outbound upload traffic statistics. */
|
|
36
|
+
statsOutboundUplink?: boolean;
|
|
37
|
+
/** Enable outbound download traffic statistics. */
|
|
38
|
+
statsOutboundDownlink?: boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/config/policy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,mCAAmC;IACnC,MAAM,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/config/policy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reverse proxy configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/reverse.html
|
|
5
|
+
*/
|
|
6
|
+
export interface ReverseConfig {
|
|
7
|
+
/** Bridge configurations (connects to portal). */
|
|
8
|
+
bridges?: BridgeConfig[];
|
|
9
|
+
/** Portal configurations (accepts bridge connections). */
|
|
10
|
+
portals?: PortalConfig[];
|
|
11
|
+
}
|
|
12
|
+
export interface BridgeConfig {
|
|
13
|
+
/** Tag for this bridge, matching an outbound. */
|
|
14
|
+
tag?: string;
|
|
15
|
+
/** Domain used for bridge-portal communication. */
|
|
16
|
+
domain?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PortalConfig {
|
|
19
|
+
/** Tag for this portal, matching an inbound. */
|
|
20
|
+
tag?: string;
|
|
21
|
+
/** Domain used for bridge-portal communication. Must match the bridge domain. */
|
|
22
|
+
domain?: string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reverse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse.d.ts","sourceRoot":"","sources":["../../src/config/reverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,kDAAkD;IAClD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/config/reverse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routing configuration for Xray-Core.
|
|
3
|
+
*
|
|
4
|
+
* @see https://xtls.github.io/en/config/routing.html
|
|
5
|
+
*/
|
|
6
|
+
export interface RoutingConfig {
|
|
7
|
+
/** Domain resolution strategy for routing. */
|
|
8
|
+
domainStrategy?: RoutingDomainStrategy;
|
|
9
|
+
/** Routing rules evaluated in order. */
|
|
10
|
+
rules?: RoutingRule[];
|
|
11
|
+
/** Load balancing rules. */
|
|
12
|
+
balancers?: BalancingRule[];
|
|
13
|
+
}
|
|
14
|
+
export interface RoutingRule {
|
|
15
|
+
/** Rule tag for identification in logs and referencing. */
|
|
16
|
+
ruleTag?: string;
|
|
17
|
+
/** Domain matching patterns (e.g. "domain:example.com", "geosite:cn", "regexp:.*\\.cn$"). */
|
|
18
|
+
domain?: string[];
|
|
19
|
+
/** Alias for domain field. */
|
|
20
|
+
domains?: string[];
|
|
21
|
+
/** IP matching patterns (e.g. "0.0.0.0/8", "geoip:cn", "10.0.0.0/8"). */
|
|
22
|
+
ip?: string[];
|
|
23
|
+
/** Port or port range (e.g. "80", "1-1024", "53,443,1000-2000"). */
|
|
24
|
+
port?: string | number;
|
|
25
|
+
/** Source port matching. */
|
|
26
|
+
sourcePort?: string | number;
|
|
27
|
+
/** Network type filter. */
|
|
28
|
+
network?: NetworkType;
|
|
29
|
+
/** Source IP matching patterns. */
|
|
30
|
+
source?: string[];
|
|
31
|
+
/** Alias for source field. */
|
|
32
|
+
sourceIP?: string[];
|
|
33
|
+
/** Match by user email (from proxy user config). */
|
|
34
|
+
user?: string[];
|
|
35
|
+
/** Match by inbound tag. */
|
|
36
|
+
inboundTag?: string[];
|
|
37
|
+
/** Match by detected protocol (e.g. "http", "tls", "bittorrent"). */
|
|
38
|
+
protocol?: SniffProtocol[];
|
|
39
|
+
/** Match by domain attributes. */
|
|
40
|
+
attrs?: Record<string, string>;
|
|
41
|
+
/** Target outbound tag. */
|
|
42
|
+
outboundTag?: string;
|
|
43
|
+
/** Target balancer tag (mutually exclusive with outboundTag). */
|
|
44
|
+
balancerTag?: string;
|
|
45
|
+
/** VLESS route matching by port. */
|
|
46
|
+
vlessRoute?: string | number;
|
|
47
|
+
/** Local IP matching (for transparent proxy). */
|
|
48
|
+
localIP?: string[];
|
|
49
|
+
/** Local port matching. */
|
|
50
|
+
localPort?: string | number;
|
|
51
|
+
/** Process name matching (for transparent proxy). */
|
|
52
|
+
process?: string[];
|
|
53
|
+
/** Webhook configuration for rule matching notifications. */
|
|
54
|
+
webhook?: WebhookRuleConfig;
|
|
55
|
+
}
|
|
56
|
+
export interface WebhookRuleConfig {
|
|
57
|
+
/** Webhook URL to call on rule match. */
|
|
58
|
+
url?: string;
|
|
59
|
+
/** Deduplication interval in seconds. */
|
|
60
|
+
deduplication?: number;
|
|
61
|
+
/** HTTP headers for webhook request. */
|
|
62
|
+
headers?: Record<string, string>;
|
|
63
|
+
}
|
|
64
|
+
export interface BalancingRule {
|
|
65
|
+
/** Tag for this balancing rule. */
|
|
66
|
+
tag?: string;
|
|
67
|
+
/** Outbound tag selectors (supports prefix matching). */
|
|
68
|
+
selector?: string[];
|
|
69
|
+
/** Balancing strategy. */
|
|
70
|
+
strategy?: BalancingStrategy;
|
|
71
|
+
/** Fallback tag when all selected outbounds are unavailable. */
|
|
72
|
+
fallbackTag?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface BalancingStrategy {
|
|
75
|
+
/** Strategy type. */
|
|
76
|
+
type?: BalancingStrategyType;
|
|
77
|
+
/** Strategy-specific settings. */
|
|
78
|
+
settings?: Record<string, unknown>;
|
|
79
|
+
}
|
|
80
|
+
export type BalancingStrategyType = 'random' | 'leastPing' | 'roundRobin' | 'leastLoad';
|
|
81
|
+
export type RoutingDomainStrategy = 'AsIs' | 'UseIP' | 'UseIPv4' | 'UseIPv6' | 'UseIPv4v6' | 'UseIPv6v4' | 'ForceIP' | 'ForceIPv4' | 'ForceIPv6' | 'ForceIPv4v6' | 'ForceIPv6v4';
|
|
82
|
+
export type NetworkType = 'tcp' | 'udp' | 'tcp,udp';
|
|
83
|
+
export type SniffProtocol = 'http' | 'tls' | 'quic' | 'fakedns' | 'bittorrent';
|
|
84
|
+
//# sourceMappingURL=routing.d.ts.map
|