green-tunnel 2.0.2 → 3.0.3
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/dist/core/config.d.ts +13 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +87 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dns/decode.d.ts +12 -0
- package/dist/core/dns/decode.d.ts.map +1 -0
- package/dist/core/dns/decode.js +23 -0
- package/dist/core/dns/decode.js.map +1 -0
- package/dist/core/dns/doh.d.ts +19 -0
- package/dist/core/dns/doh.d.ts.map +1 -0
- package/dist/core/dns/doh.js +54 -0
- package/dist/core/dns/doh.js.map +1 -0
- package/dist/core/dns/dot.d.ts +13 -0
- package/dist/core/dns/dot.d.ts.map +1 -0
- package/dist/core/dns/dot.js +79 -0
- package/dist/core/dns/dot.js.map +1 -0
- package/dist/core/dns/index.d.ts +8 -0
- package/dist/core/dns/index.d.ts.map +1 -0
- package/dist/core/dns/index.js +18 -0
- package/dist/core/dns/index.js.map +1 -0
- package/dist/core/dns/plain.d.ts +17 -0
- package/dist/core/dns/plain.d.ts.map +1 -0
- package/dist/core/dns/plain.js +45 -0
- package/dist/core/dns/plain.js.map +1 -0
- package/dist/core/dns/resolver.d.ts +27 -0
- package/dist/core/dns/resolver.d.ts.map +1 -0
- package/dist/core/dns/resolver.js +81 -0
- package/dist/core/dns/resolver.js.map +1 -0
- package/dist/core/errors.d.ts +32 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +37 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/http/head.d.ts +40 -0
- package/dist/core/http/head.d.ts.map +1 -0
- package/dist/core/http/head.js +122 -0
- package/dist/core/http/head.js.map +1 -0
- package/dist/core/http/rewriter.d.ts +20 -0
- package/dist/core/http/rewriter.d.ts.map +1 -0
- package/dist/core/http/rewriter.js +184 -0
- package/dist/core/http/rewriter.js.map +1 -0
- package/dist/core/index.d.ts +28 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +27 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +38 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +92 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/net/socket.d.ts +30 -0
- package/dist/core/net/socket.d.ts.map +1 -0
- package/dist/core/net/socket.js +98 -0
- package/dist/core/net/socket.js.map +1 -0
- package/dist/core/proxy/connect-tunnel.d.ts +14 -0
- package/dist/core/proxy/connect-tunnel.d.ts.map +1 -0
- package/dist/core/proxy/connect-tunnel.js +44 -0
- package/dist/core/proxy/connect-tunnel.js.map +1 -0
- package/dist/core/proxy/connection.d.ts +12 -0
- package/dist/core/proxy/connection.d.ts.map +1 -0
- package/dist/core/proxy/connection.js +88 -0
- package/dist/core/proxy/connection.js.map +1 -0
- package/dist/core/proxy/context.d.ts +15 -0
- package/dist/core/proxy/context.d.ts.map +1 -0
- package/dist/core/proxy/context.js +2 -0
- package/dist/core/proxy/context.js.map +1 -0
- package/dist/core/proxy/index.d.ts +33 -0
- package/dist/core/proxy/index.d.ts.map +1 -0
- package/dist/core/proxy/index.js +162 -0
- package/dist/core/proxy/index.js.map +1 -0
- package/dist/core/proxy/pipe.d.ts +12 -0
- package/dist/core/proxy/pipe.d.ts.map +1 -0
- package/dist/core/proxy/pipe.js +42 -0
- package/dist/core/proxy/pipe.js.map +1 -0
- package/dist/core/proxy/plain-tunnel.d.ts +12 -0
- package/dist/core/proxy/plain-tunnel.d.ts.map +1 -0
- package/dist/core/proxy/plain-tunnel.js +29 -0
- package/dist/core/proxy/plain-tunnel.js.map +1 -0
- package/dist/core/system-proxy/darwin.d.ts +32 -0
- package/dist/core/system-proxy/darwin.d.ts.map +1 -0
- package/dist/core/system-proxy/darwin.js +146 -0
- package/dist/core/system-proxy/darwin.js.map +1 -0
- package/dist/core/system-proxy/driver.d.ts +21 -0
- package/dist/core/system-proxy/driver.d.ts.map +1 -0
- package/dist/core/system-proxy/driver.js +2 -0
- package/dist/core/system-proxy/driver.js.map +1 -0
- package/dist/core/system-proxy/exec.d.ts +21 -0
- package/dist/core/system-proxy/exec.d.ts.map +1 -0
- package/dist/core/system-proxy/exec.js +62 -0
- package/dist/core/system-proxy/exec.js.map +1 -0
- package/dist/core/system-proxy/index.d.ts +45 -0
- package/dist/core/system-proxy/index.d.ts.map +1 -0
- package/dist/core/system-proxy/index.js +151 -0
- package/dist/core/system-proxy/index.js.map +1 -0
- package/dist/core/system-proxy/linux.d.ts +18 -0
- package/dist/core/system-proxy/linux.d.ts.map +1 -0
- package/dist/core/system-proxy/linux.js +100 -0
- package/dist/core/system-proxy/linux.js.map +1 -0
- package/dist/core/system-proxy/recovery.d.ts +23 -0
- package/dist/core/system-proxy/recovery.d.ts.map +1 -0
- package/dist/core/system-proxy/recovery.js +147 -0
- package/dist/core/system-proxy/recovery.js.map +1 -0
- package/dist/core/system-proxy/windows.d.ts +15 -0
- package/dist/core/system-proxy/windows.d.ts.map +1 -0
- package/dist/core/system-proxy/windows.js +96 -0
- package/dist/core/system-proxy/windows.js.map +1 -0
- package/dist/core/tls/fragment.d.ts +28 -0
- package/dist/core/tls/fragment.d.ts.map +1 -0
- package/dist/core/tls/fragment.js +81 -0
- package/dist/core/tls/fragment.js.map +1 -0
- package/dist/core/types.d.ts +138 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +7 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +155 -0
- package/dist/main.js.map +1 -0
- package/dist/options.d.ts +25 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +144 -0
- package/dist/options.js.map +1 -0
- package/dist/ui.d.ts +17 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +89 -0
- package/dist/ui.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/package.json +31 -30
- package/LICENSE +0 -21
- package/README.md +0 -172
- package/bin/gt.js +0 -170
- package/src/config.js +0 -15
- package/src/dns/base.js +0 -47
- package/src/dns/https.js +0 -30
- package/src/dns/tls.js +0 -15
- package/src/dns/unencrypted.js +0 -25
- package/src/handlers/http.js +0 -65
- package/src/handlers/https.js +0 -78
- package/src/handlers/request.js +0 -32
- package/src/http/request.js +0 -45
- package/src/http/response.js +0 -45
- package/src/http/utils.js +0 -86
- package/src/index.cjs +0 -7
- package/src/index.js +0 -4
- package/src/logger.js +0 -11
- package/src/proxy.js +0 -74
- package/src/scripts/windows/wininet-reset-settings.ps1 +0 -14
- package/src/utils/analytics.js +0 -59
- package/src/utils/buffer.js +0 -35
- package/src/utils/socket.js +0 -32
- package/src/utils/system-proxy.js +0 -153
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import util from 'util';
|
|
2
|
-
import os from 'os';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
import {exec as _exec, spawn} from 'child_process';
|
|
6
|
-
import Registry from 'winreg';
|
|
7
|
-
import getLogger from '../logger.js';
|
|
8
|
-
|
|
9
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
-
|
|
11
|
-
const logger = getLogger('system-proxy');
|
|
12
|
-
const exec = util.promisify(_exec);
|
|
13
|
-
|
|
14
|
-
class SystemProxy {
|
|
15
|
-
static async setProxy(ip, port) {
|
|
16
|
-
throw new Error('You have to implement the method setProxy!');
|
|
17
|
-
}
|
|
18
|
-
static async unsetProxy() {
|
|
19
|
-
throw new Error('You have to implement the method unsetProxy!');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// TODO: Add path http_proxy and https_proxy
|
|
24
|
-
// TODO: Support for non-gnome
|
|
25
|
-
class LinuxSystemProxy extends SystemProxy {
|
|
26
|
-
static async setProxy(ip, port) {
|
|
27
|
-
await exec('gsettings set org.gnome.system.proxy mode manual');
|
|
28
|
-
await exec(`gsettings set org.gnome.system.proxy.http host ${ip}`);
|
|
29
|
-
await exec(`gsettings set org.gnome.system.proxy.http port ${port}`);
|
|
30
|
-
await exec(`gsettings set org.gnome.system.proxy.https host ${ip}`);
|
|
31
|
-
await exec(`gsettings set org.gnome.system.proxy.https port ${port}`);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
static async unsetProxy() {
|
|
35
|
-
await exec('gsettings set org.gnome.system.proxy mode none');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// TODO: Support for lan connections too
|
|
40
|
-
// TODO: move scripts to ../scripts/darwin
|
|
41
|
-
class DarwinSystemProxy extends SystemProxy {
|
|
42
|
-
static async setProxy(ip, port) {
|
|
43
|
-
const wifiAdaptor = (await exec(`sh -c "networksetup -listnetworkserviceorder | grep \`route -n get 0.0.0.0 | grep 'interface' | cut -d ':' -f2\` -B 1 | head -n 1 | cut -d ' ' -f2"`)).stdout.trim();
|
|
44
|
-
|
|
45
|
-
await exec(`networksetup -setwebproxy '${wifiAdaptor}' ${ip} ${port}`);
|
|
46
|
-
await exec(`networksetup -setsecurewebproxy '${wifiAdaptor}' ${ip} ${port}`);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
static async unsetProxy() {
|
|
50
|
-
const wifiAdaptor = (await exec(`sh -c "networksetup -listnetworkserviceorder | grep \`route -n get 0.0.0.0 | grep 'interface' | cut -d ':' -f2\` -B 1 | head -n 1 | cut -d ' ' -f2"`)).stdout.trim();
|
|
51
|
-
|
|
52
|
-
await exec(`networksetup -setwebproxystate '${wifiAdaptor}' off`);
|
|
53
|
-
await exec(`networksetup -setsecurewebproxystate '${wifiAdaptor}' off`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
class WindowsSystemProxy extends SystemProxy{
|
|
59
|
-
static async setProxy(ip, port) {
|
|
60
|
-
const regKey = new Registry({
|
|
61
|
-
hive: Registry.HKCU,
|
|
62
|
-
key: '\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings'
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
await Promise.all([
|
|
66
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'MigrateProxy', Registry.REG_DWORD, 1),
|
|
67
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyEnable', Registry.REG_DWORD, 1),
|
|
68
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyHttp1.1', Registry.REG_DWORD, 0),
|
|
69
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyServer', Registry.REG_SZ, `${ip}:${port}`),
|
|
70
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyOverride', Registry.REG_SZ, '*.local;<local>'),
|
|
71
|
-
]);
|
|
72
|
-
await WindowsSystemProxy._resetWininetProxySettings();
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
static async unsetProxy() {
|
|
76
|
-
const regKey = new Registry({
|
|
77
|
-
hive: Registry.HKCU,
|
|
78
|
-
key: '\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings'
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
await Promise.all([
|
|
82
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyEnable', Registry.REG_DWORD, 0),
|
|
83
|
-
WindowsSystemProxy._asyncRegSet(regKey, 'ProxyServer', Registry.REG_SZ, ``),
|
|
84
|
-
]);
|
|
85
|
-
await WindowsSystemProxy._resetWininetProxySettings();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
static _asyncRegSet(regKey, name, type, value) {
|
|
89
|
-
return new Promise((resolve, reject) => {
|
|
90
|
-
regKey.set(name, type, value, e => {
|
|
91
|
-
if (e) {
|
|
92
|
-
reject(e);
|
|
93
|
-
} else {
|
|
94
|
-
resolve();
|
|
95
|
-
}
|
|
96
|
-
})
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
static _resetWininetProxySettings() {
|
|
101
|
-
return new Promise((resolve, reject) => {
|
|
102
|
-
const scriptPath = path.join(__dirname, '..', 'scripts', 'windows', 'wininet-reset-settings.ps1');
|
|
103
|
-
const child = spawn("powershell.exe", [scriptPath]);
|
|
104
|
-
child.stdout.setEncoding('utf8');
|
|
105
|
-
child.stdout.on("data", (data) => {
|
|
106
|
-
if (data.includes('True')) {
|
|
107
|
-
resolve();
|
|
108
|
-
} else {
|
|
109
|
-
reject(data);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
child.stderr.on("data", (err) => {
|
|
114
|
-
reject(err);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
child.stdin.end();
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
function getSystemProxy() {
|
|
123
|
-
switch (os.platform()) {
|
|
124
|
-
case 'darwin':
|
|
125
|
-
return DarwinSystemProxy;
|
|
126
|
-
case 'linux':
|
|
127
|
-
return LinuxSystemProxy;
|
|
128
|
-
case 'win32':
|
|
129
|
-
case 'win64':
|
|
130
|
-
return WindowsSystemProxy;
|
|
131
|
-
case 'unknown os':
|
|
132
|
-
default:
|
|
133
|
-
throw new Error(`UNKNOWN OS TYPE ${os.platform()}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export async function setProxy(ip, port) {
|
|
138
|
-
try {
|
|
139
|
-
const systemProxy = getSystemProxy();
|
|
140
|
-
await systemProxy.setProxy(ip, port);
|
|
141
|
-
} catch (error) {
|
|
142
|
-
logger.debug(`[SYSTEM PROXY] error on SetProxy (${error})`)
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export async function unsetProxy() {
|
|
147
|
-
try {
|
|
148
|
-
const systemProxy = getSystemProxy();
|
|
149
|
-
await systemProxy.unsetProxy();
|
|
150
|
-
} catch (error) {
|
|
151
|
-
logger.debug(`[SYSTEM PROXY] error on UnsetProxy (${error})`)
|
|
152
|
-
}
|
|
153
|
-
}
|