@toon-protocol/connector 3.20.1 → 3.28.6
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 +6 -6
- package/dist/auth/rfc9421/content-digest.d.ts +16 -0
- package/dist/auth/rfc9421/content-digest.d.ts.map +1 -0
- package/dist/auth/rfc9421/content-digest.js +35 -0
- package/dist/auth/rfc9421/content-digest.js.map +1 -0
- package/dist/auth/rfc9421/index.d.ts +9 -0
- package/dist/auth/rfc9421/index.d.ts.map +1 -0
- package/dist/auth/rfc9421/index.js +24 -0
- package/dist/auth/rfc9421/index.js.map +1 -0
- package/dist/auth/rfc9421/sign.d.ts +20 -0
- package/dist/auth/rfc9421/sign.d.ts.map +1 -0
- package/dist/auth/rfc9421/sign.js +43 -0
- package/dist/auth/rfc9421/sign.js.map +1 -0
- package/dist/auth/rfc9421/signature-base.d.ts +21 -0
- package/dist/auth/rfc9421/signature-base.d.ts.map +1 -0
- package/dist/auth/rfc9421/signature-base.js +57 -0
- package/dist/auth/rfc9421/signature-base.js.map +1 -0
- package/dist/auth/rfc9421/verify.d.ts +19 -0
- package/dist/auth/rfc9421/verify.d.ts.map +1 -0
- package/dist/auth/rfc9421/verify.js +215 -0
- package/dist/auth/rfc9421/verify.js.map +1 -0
- package/dist/btp/btp-client-manager.d.ts +1 -1
- package/dist/btp/btp-client-manager.d.ts.map +1 -1
- package/dist/btp/btp-client.d.ts +2 -2
- package/dist/btp/btp-client.d.ts.map +1 -1
- package/dist/btp/btp-client.js.map +1 -1
- package/dist/cli/admin-client-factory.d.ts +10 -0
- package/dist/cli/admin-client-factory.d.ts.map +1 -0
- package/dist/cli/admin-client-factory.js +33 -0
- package/dist/cli/admin-client-factory.js.map +1 -0
- package/dist/cli/commands/app.d.ts +6 -0
- package/dist/cli/commands/app.d.ts.map +1 -0
- package/dist/cli/commands/app.js +132 -0
- package/dist/cli/commands/app.js.map +1 -0
- package/dist/cli/commands/route.d.ts +3 -0
- package/dist/cli/commands/route.d.ts.map +1 -0
- package/dist/cli/commands/route.js +63 -0
- package/dist/cli/commands/route.js.map +1 -0
- package/dist/cli/commands/up.d.ts +3 -0
- package/dist/cli/commands/up.d.ts.map +1 -0
- package/dist/cli/commands/up.js +27 -0
- package/dist/cli/commands/up.js.map +1 -0
- package/dist/cli/index.js +32 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/client/connector-admin-client.d.ts +17 -12
- package/dist/client/connector-admin-client.d.ts.map +1 -1
- package/dist/client/connector-admin-client.js.map +1 -1
- package/dist/config/config-loader.d.ts +0 -3
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +41 -161
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/environment-validator.js +6 -6
- package/dist/config/environment-validator.js.map +1 -1
- package/dist/config/types.d.ts +47 -17
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +93 -1
- package/dist/config/types.js.map +1 -1
- package/dist/core/connector-node.d.ts +13 -1
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +279 -171
- package/dist/core/connector-node.js.map +1 -1
- package/dist/core/handlers/http-proxy-handler.d.ts +47 -0
- package/dist/core/handlers/http-proxy-handler.d.ts.map +1 -0
- package/dist/core/handlers/http-proxy-handler.js +223 -0
- package/dist/core/handlers/http-proxy-handler.js.map +1 -0
- package/dist/core/local-delivery-client.js +9 -9
- package/dist/core/local-delivery-client.js.map +1 -1
- package/dist/core/packet-handler.d.ts +7 -0
- package/dist/core/packet-handler.d.ts.map +1 -1
- package/dist/core/packet-handler.js +55 -3
- package/dist/core/packet-handler.js.map +1 -1
- package/dist/core/registry-db-schema.d.ts +2 -1
- package/dist/core/registry-db-schema.d.ts.map +1 -1
- package/dist/core/registry-db-schema.js +9 -0
- package/dist/core/registry-db-schema.js.map +1 -1
- package/dist/core/registry-store.d.ts +1 -0
- package/dist/core/registry-store.d.ts.map +1 -1
- package/dist/core/registry-store.js +6 -4
- package/dist/core/registry-store.js.map +1 -1
- package/dist/core/route-upstream-registry.d.ts +17 -0
- package/dist/core/route-upstream-registry.d.ts.map +1 -0
- package/dist/core/route-upstream-registry.js +51 -0
- package/dist/core/route-upstream-registry.js.map +1 -0
- package/dist/discovery/ilp-peer-info-event.d.ts +22 -0
- package/dist/discovery/ilp-peer-info-event.d.ts.map +1 -0
- package/dist/discovery/ilp-peer-info-event.js +21 -0
- package/dist/discovery/ilp-peer-info-event.js.map +1 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +16 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/self-announce-builder.d.ts +14 -0
- package/dist/discovery/self-announce-builder.d.ts.map +1 -0
- package/dist/discovery/self-announce-builder.js +88 -0
- package/dist/discovery/self-announce-builder.js.map +1 -0
- package/dist/discovery/self-announce-publish.d.ts +17 -0
- package/dist/discovery/self-announce-publish.d.ts.map +1 -0
- package/dist/discovery/self-announce-publish.js +35 -0
- package/dist/discovery/self-announce-publish.js.map +1 -0
- package/dist/discovery/self-announce-service.d.ts +36 -0
- package/dist/discovery/self-announce-service.d.ts.map +1 -0
- package/dist/discovery/self-announce-service.js +118 -0
- package/dist/discovery/self-announce-service.js.map +1 -0
- package/dist/http/admin-api-inventory.d.ts.map +1 -1
- package/dist/http/admin-api-inventory.js +0 -42
- package/dist/http/admin-api-inventory.js.map +1 -1
- package/dist/http/admin-api.d.ts +29 -13
- package/dist/http/admin-api.d.ts.map +1 -1
- package/dist/http/admin-api.js +141 -76
- package/dist/http/admin-api.js.map +1 -1
- package/dist/http/admin-server.d.ts +3 -4
- package/dist/http/admin-server.d.ts.map +1 -1
- package/dist/http/admin-server.js +4 -6
- package/dist/http/admin-server.js.map +1 -1
- package/dist/http/ilp-http-adapter.d.ts +10 -0
- package/dist/http/ilp-http-adapter.d.ts.map +1 -1
- package/dist/http/ilp-http-adapter.js +118 -0
- package/dist/http/ilp-http-adapter.js.map +1 -1
- package/dist/http/types.d.ts +1 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/x402-greeting.d.ts +46 -0
- package/dist/http/x402-greeting.d.ts.map +1 -0
- package/dist/http/x402-greeting.js +77 -0
- package/dist/http/x402-greeting.js.map +1 -0
- package/dist/lib.d.ts +13 -2
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +41 -1
- package/dist/lib.js.map +1 -1
- package/dist/main.d.ts +3 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +3 -1
- package/dist/main.js.map +1 -1
- package/dist/settlement/channel-manager.d.ts.map +1 -1
- package/dist/settlement/channel-manager.js +1 -1
- package/dist/settlement/channel-manager.js.map +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.d.ts.map +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.js +1 -1
- package/dist/settlement/provider/solana-payment-channel-provider.js.map +1 -1
- package/dist/settlement/solana-payment-channel-sdk.d.ts +1 -1
- package/dist/settlement/solana-payment-channel-sdk.d.ts.map +1 -1
- package/dist/settlement/solana-payment-channel-sdk.js +2 -2
- package/dist/settlement/solana-payment-channel-sdk.js.map +1 -1
- package/dist/transport/http-peer-transport.d.ts +46 -0
- package/dist/transport/http-peer-transport.d.ts.map +1 -0
- package/dist/transport/http-peer-transport.js +185 -0
- package/dist/transport/http-peer-transport.js.map +1 -0
- package/dist/transport/index.d.ts +0 -3
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -8
- package/dist/transport/index.js.map +1 -1
- package/dist/wallet/mnemonic-keys.d.ts +15 -0
- package/dist/wallet/mnemonic-keys.d.ts.map +1 -0
- package/dist/wallet/mnemonic-keys.js +150 -0
- package/dist/wallet/mnemonic-keys.js.map +1 -0
- package/package.json +11 -8
- package/dist/transport/hs-desc-monitor.d.ts +0 -12
- package/dist/transport/hs-desc-monitor.d.ts.map +0 -1
- package/dist/transport/hs-desc-monitor.js +0 -105
- package/dist/transport/hs-desc-monitor.js.map +0 -1
- package/dist/transport/managed-anon-client.d.ts +0 -93
- package/dist/transport/managed-anon-client.d.ts.map +0 -1
- package/dist/transport/managed-anon-client.js +0 -522
- package/dist/transport/managed-anon-client.js.map +0 -1
- package/dist/transport/socks-transport-provider.d.ts +0 -29
- package/dist/transport/socks-transport-provider.d.ts.map +0 -1
- package/dist/transport/socks-transport-provider.js +0 -136
- package/dist/transport/socks-transport-provider.js.map +0 -1
- package/dist/transport/socks-url.d.ts +0 -6
- package/dist/transport/socks-url.d.ts.map +0 -1
- package/dist/transport/socks-url.js +0 -29
- package/dist/transport/socks-url.js.map +0 -1
- package/dist/transport/socks5-connect.d.ts +0 -12
- package/dist/transport/socks5-connect.d.ts.map +0 -1
- package/dist/transport/socks5-connect.js +0 -89
- package/dist/transport/socks5-connect.js.map +0 -1
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SocksTransportProvider = void 0;
|
|
4
|
-
const socks_proxy_agent_1 = require("socks-proxy-agent");
|
|
5
|
-
const probe_tcp_port_1 = require("./probe-tcp-port");
|
|
6
|
-
const socks_url_1 = require("./socks-url");
|
|
7
|
-
const START_PROBE_TIMEOUT_MS = 2000;
|
|
8
|
-
const HEALTH_PROBE_TIMEOUT_MS = 1000;
|
|
9
|
-
class SocksTransportProvider {
|
|
10
|
-
_socksProxy;
|
|
11
|
-
_externalUrl;
|
|
12
|
-
_logger;
|
|
13
|
-
_proxyHost;
|
|
14
|
-
_proxyPort;
|
|
15
|
-
_managedClient;
|
|
16
|
-
_resolveExternalUrlOnStart;
|
|
17
|
-
_managedHealthy = true;
|
|
18
|
-
constructor(options) {
|
|
19
|
-
const { socksProxy, externalUrl, logger, managedClient, resolveExternalUrlOnStart } = options;
|
|
20
|
-
if (!socksProxy || typeof socksProxy !== 'string') {
|
|
21
|
-
throw new Error('SocksTransportProvider: socksProxy must be a non-empty string starting with "socks5h://" ' +
|
|
22
|
-
'(socks5h:// is required to prevent DNS leaks -- the proxy, not the local resolver, ' +
|
|
23
|
-
'must resolve target hostnames)');
|
|
24
|
-
}
|
|
25
|
-
let host;
|
|
26
|
-
let port;
|
|
27
|
-
try {
|
|
28
|
-
const parsed = (0, socks_url_1.parseSocks5hUrl)(socksProxy);
|
|
29
|
-
host = parsed.host;
|
|
30
|
-
port = parsed.port;
|
|
31
|
-
}
|
|
32
|
-
catch (err) {
|
|
33
|
-
throw new Error(`SocksTransportProvider: ${err instanceof Error ? err.message : String(err)}`);
|
|
34
|
-
}
|
|
35
|
-
if (!externalUrl || typeof externalUrl !== 'string') {
|
|
36
|
-
throw new Error('SocksTransportProvider: externalUrl must be a non-empty string');
|
|
37
|
-
}
|
|
38
|
-
this._socksProxy = socksProxy;
|
|
39
|
-
this._externalUrl = externalUrl;
|
|
40
|
-
this._proxyHost = host;
|
|
41
|
-
this._proxyPort = port;
|
|
42
|
-
this._logger = logger.child({ component: 'socks-transport-provider' });
|
|
43
|
-
this._managedClient = managedClient;
|
|
44
|
-
this._resolveExternalUrlOnStart = resolveExternalUrlOnStart;
|
|
45
|
-
}
|
|
46
|
-
createAgent(peerUrl) {
|
|
47
|
-
this._logger.debug({ event: 'socks_create_agent', peerUrl }, 'Creating SOCKS5 agent for peer');
|
|
48
|
-
return new socks_proxy_agent_1.SocksProxyAgent(this._socksProxy);
|
|
49
|
-
}
|
|
50
|
-
getExternalUrl() {
|
|
51
|
-
return this._externalUrl;
|
|
52
|
-
}
|
|
53
|
-
async start() {
|
|
54
|
-
if (this._managedClient) {
|
|
55
|
-
await this._managedClient.start();
|
|
56
|
-
}
|
|
57
|
-
if (this._resolveExternalUrlOnStart) {
|
|
58
|
-
try {
|
|
59
|
-
const resolved = await this._resolveExternalUrlOnStart();
|
|
60
|
-
if (!resolved || typeof resolved !== 'string') {
|
|
61
|
-
throw new Error('resolver returned a non-string value');
|
|
62
|
-
}
|
|
63
|
-
if (!resolved.startsWith('ws://') && !resolved.startsWith('wss://')) {
|
|
64
|
-
throw new Error('resolved externalUrl must start with ws:// or wss://');
|
|
65
|
-
}
|
|
66
|
-
this._externalUrl = resolved;
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
const reason = err instanceof Error ? err.message : String(err);
|
|
70
|
-
throw new Error(`SocksTransportProvider: failed to resolve externalUrl from managed hidden service (${reason})`);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
await this._probeProxy(START_PROBE_TIMEOUT_MS);
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
const reason = err instanceof Error ? err.message : String(err);
|
|
78
|
-
throw new Error(`SocksTransportProvider: SOCKS5 proxy unreachable at ${this._proxyHost}:${this._proxyPort} (${reason})`);
|
|
79
|
-
}
|
|
80
|
-
this._managedHealthy = true;
|
|
81
|
-
this._logger.info({ event: 'socks_transport_started', proxyHost: this._proxyHost, proxyPort: this._proxyPort }, 'SOCKS5 transport started');
|
|
82
|
-
}
|
|
83
|
-
async stop() {
|
|
84
|
-
this._logger.info({ event: 'socks_transport_stopped' }, 'SOCKS5 transport stopped');
|
|
85
|
-
if (this._managedClient) {
|
|
86
|
-
await this._managedClient.stop();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async healthCheck() {
|
|
90
|
-
let managedOk = true;
|
|
91
|
-
if (this._managedClient) {
|
|
92
|
-
try {
|
|
93
|
-
managedOk = await this._managedClient.healthCheck();
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
managedOk = false;
|
|
97
|
-
}
|
|
98
|
-
if (!managedOk && this._managedHealthy) {
|
|
99
|
-
this._managedHealthy = false;
|
|
100
|
-
this._logger.warn({
|
|
101
|
-
event: 'managed_anon_crash_detected',
|
|
102
|
-
proxyHost: this._proxyHost,
|
|
103
|
-
proxyPort: this._proxyPort,
|
|
104
|
-
}, 'Managed anon client reports not running');
|
|
105
|
-
}
|
|
106
|
-
else if (managedOk) {
|
|
107
|
-
this._managedHealthy = true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
await this._probeProxy(HEALTH_PROBE_TIMEOUT_MS);
|
|
112
|
-
if (!managedOk) {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
this._logger.debug({
|
|
116
|
-
event: 'socks_transport_health_ok',
|
|
117
|
-
proxyHost: this._proxyHost,
|
|
118
|
-
proxyPort: this._proxyPort,
|
|
119
|
-
}, 'SOCKS5 proxy healthy');
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
this._logger.warn({
|
|
124
|
-
event: 'socks_transport_health_failed',
|
|
125
|
-
proxyHost: this._proxyHost,
|
|
126
|
-
proxyPort: this._proxyPort,
|
|
127
|
-
}, 'SOCKS5 proxy health check failed');
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
_probeProxy(timeoutMs) {
|
|
132
|
-
return (0, probe_tcp_port_1.probeTcpPort)(this._proxyHost, this._proxyPort, timeoutMs);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
exports.SocksTransportProvider = SocksTransportProvider;
|
|
136
|
-
//# sourceMappingURL=socks-transport-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socks-transport-provider.js","sourceRoot":"","sources":["../../src/transport/socks-transport-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socks-url.d.ts","sourceRoot":"","sources":["../../src/transport/socks-url.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CACd;AAYD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAiCnE"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseSocks5hUrl = parseSocks5hUrl;
|
|
4
|
-
function parseSocks5hUrl(socksProxy) {
|
|
5
|
-
if (!socksProxy || typeof socksProxy !== 'string') {
|
|
6
|
-
throw new Error('socksProxy must be a non-empty string starting with "socks5h://" ' +
|
|
7
|
-
'(socks5h:// is required to prevent DNS leaks -- the proxy, not the local resolver, ' +
|
|
8
|
-
'must resolve target hostnames)');
|
|
9
|
-
}
|
|
10
|
-
if (!socksProxy.startsWith('socks5h://')) {
|
|
11
|
-
throw new Error(`socksProxy scheme must be "socks5h://" (got "${socksProxy.split('://')[0]}://"). ` +
|
|
12
|
-
'The "h" suffix is required to prevent DNS leaks: with socks5h, hostname resolution ' +
|
|
13
|
-
'happens at the proxy (Tor exit / ATOR), not on the local host.');
|
|
14
|
-
}
|
|
15
|
-
let parsed;
|
|
16
|
-
try {
|
|
17
|
-
parsed = new URL(socksProxy.replace(/^socks5h:\/\//, 'http://'));
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
throw new Error(`socksProxy is not a valid URL (expected socks5h://host:port)`);
|
|
21
|
-
}
|
|
22
|
-
const host = parsed.hostname;
|
|
23
|
-
const port = parsed.port ? Number.parseInt(parsed.port, 10) : NaN;
|
|
24
|
-
if (!host || !Number.isFinite(port) || port < 0 || port > 65535) {
|
|
25
|
-
throw new Error('socksProxy must include a valid host and port (e.g., socks5h://127.0.0.1:9050)');
|
|
26
|
-
}
|
|
27
|
-
return { host, port };
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=socks-url.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socks-url.js","sourceRoot":"","sources":["../../src/transport/socks-url.ts"],"names":[],"mappings":";;AA8BA,0CAiCC;AAjCD,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,mEAAmE;YACjE,qFAAqF;YACrF,gCAAgC,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,gDAAgD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACjF,qFAAqF;YACrF,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare class Socks5ConnectError extends Error {
|
|
2
|
-
readonly replyCode: number;
|
|
3
|
-
constructor(message: string, replyCode: number);
|
|
4
|
-
}
|
|
5
|
-
export declare function socks5Connect(opts: {
|
|
6
|
-
socksHost: string;
|
|
7
|
-
socksPort: number;
|
|
8
|
-
destHost: string;
|
|
9
|
-
destPort: number;
|
|
10
|
-
timeoutMs: number;
|
|
11
|
-
}): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=socks5-connect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socks5-connect.d.ts","sourceRoot":"","sources":["../../src/transport/socks5-connect.ts"],"names":[],"mappings":"AAuBA,qBAAa,kBAAmB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK/C;AAmBD,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FhB"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Socks5ConnectError = void 0;
|
|
4
|
-
exports.socks5Connect = socks5Connect;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const net_1 = tslib_1.__importDefault(require("net"));
|
|
7
|
-
class Socks5ConnectError extends Error {
|
|
8
|
-
replyCode;
|
|
9
|
-
constructor(message, replyCode) {
|
|
10
|
-
super(message);
|
|
11
|
-
this.name = 'Socks5ConnectError';
|
|
12
|
-
this.replyCode = replyCode;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.Socks5ConnectError = Socks5ConnectError;
|
|
16
|
-
function socks5Connect(opts) {
|
|
17
|
-
const { socksHost, socksPort, destHost, destPort, timeoutMs } = opts;
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
const hostBytes = Buffer.from(destHost, 'utf8');
|
|
20
|
-
if (hostBytes.length < 1 || hostBytes.length > 255) {
|
|
21
|
-
reject(new Socks5ConnectError(`destHost length ${hostBytes.length} out of SOCKS5 DOMAIN range`, -1));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (!Number.isInteger(destPort) || destPort < 1 || destPort > 65535) {
|
|
25
|
-
reject(new Socks5ConnectError(`destPort ${destPort} out of range`, -1));
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const socket = net_1.default.createConnection({ host: socksHost, port: socksPort });
|
|
29
|
-
let settled = false;
|
|
30
|
-
let phase = 0;
|
|
31
|
-
let buf = Buffer.alloc(0);
|
|
32
|
-
const cleanup = () => {
|
|
33
|
-
socket.removeAllListeners();
|
|
34
|
-
socket.destroy();
|
|
35
|
-
};
|
|
36
|
-
const done = (err) => {
|
|
37
|
-
if (settled)
|
|
38
|
-
return;
|
|
39
|
-
settled = true;
|
|
40
|
-
cleanup();
|
|
41
|
-
if (err)
|
|
42
|
-
reject(err);
|
|
43
|
-
else
|
|
44
|
-
resolve();
|
|
45
|
-
};
|
|
46
|
-
socket.setTimeout(timeoutMs);
|
|
47
|
-
socket.once('timeout', () => done(new Socks5ConnectError('SOCKS5 connect timed out', -1)));
|
|
48
|
-
socket.once('error', (err) => done(new Socks5ConnectError(`SOCKS5 socket error: ${err.message}`, -1)));
|
|
49
|
-
socket.once('close', () => done(new Socks5ConnectError('SOCKS5 proxy closed connection before reply', -1)));
|
|
50
|
-
socket.once('connect', () => {
|
|
51
|
-
socket.write(Buffer.from([0x05, 0x01, 0x00]));
|
|
52
|
-
});
|
|
53
|
-
socket.on('data', (chunk) => {
|
|
54
|
-
buf = Buffer.concat([buf, chunk]);
|
|
55
|
-
if (phase === 0) {
|
|
56
|
-
if (buf.length < 2)
|
|
57
|
-
return;
|
|
58
|
-
const ver = buf[0];
|
|
59
|
-
const method = buf[1];
|
|
60
|
-
if (ver !== 0x05 || method !== 0x00) {
|
|
61
|
-
done(new Socks5ConnectError(`SOCKS5 method-selection failed (ver=${ver}, method=${method})`, -1));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
buf = buf.subarray(2);
|
|
65
|
-
phase = 1;
|
|
66
|
-
const req = Buffer.concat([
|
|
67
|
-
Buffer.from([0x05, 0x01, 0x00, 0x03, hostBytes.length]),
|
|
68
|
-
hostBytes,
|
|
69
|
-
Buffer.from([(destPort >> 8) & 0xff, destPort & 0xff]),
|
|
70
|
-
]);
|
|
71
|
-
socket.write(req);
|
|
72
|
-
}
|
|
73
|
-
if (phase === 1) {
|
|
74
|
-
if (buf.length < 2)
|
|
75
|
-
return;
|
|
76
|
-
const rep = buf[1];
|
|
77
|
-
if (rep === undefined)
|
|
78
|
-
return;
|
|
79
|
-
if (rep === 0x00) {
|
|
80
|
-
done();
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
done(new Socks5ConnectError(`SOCKS5 proxy rejected connection (REP=0x${rep.toString(16).padStart(2, '0')})`, rep));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=socks5-connect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socks5-connect.js","sourceRoot":"","sources":["../../src/transport/socks5-connect.ts"],"names":[],"mappings":"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"}
|