pipenet 1.0.1 → 1.1.2

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 (62) hide show
  1. package/README.md +14 -18
  2. package/dist/Tunnel.d.ts +15 -15
  3. package/dist/Tunnel.d.ts.map +1 -1
  4. package/dist/Tunnel.js +72 -72
  5. package/dist/Tunnel.js.map +1 -1
  6. package/dist/TunnelCluster.d.ts +12 -12
  7. package/dist/TunnelCluster.d.ts.map +1 -1
  8. package/dist/TunnelCluster.js +14 -14
  9. package/dist/TunnelCluster.js.map +1 -1
  10. package/dist/cli.js +19 -18
  11. package/dist/cli.js.map +1 -1
  12. package/dist/pipenet.d.ts +5 -5
  13. package/dist/pipenet.d.ts.map +1 -1
  14. package/dist/pipenet.js +2 -2
  15. package/dist/pipenet.js.map +1 -1
  16. package/dist/pipenet.spec.js +70 -55
  17. package/dist/pipenet.spec.js.map +1 -1
  18. package/dist/server/Client.d.ts +4 -4
  19. package/dist/server/Client.d.ts.map +1 -1
  20. package/dist/server/Client.js +8 -8
  21. package/dist/server/Client.js.map +1 -1
  22. package/dist/server/Client.spec.js +17 -17
  23. package/dist/server/Client.spec.js.map +1 -1
  24. package/dist/server/ClientManager.d.ts +6 -6
  25. package/dist/server/ClientManager.d.ts.map +1 -1
  26. package/dist/server/ClientManager.js +12 -12
  27. package/dist/server/ClientManager.js.map +1 -1
  28. package/dist/server/ClientManager.spec.js +1 -1
  29. package/dist/server/ClientManager.spec.js.map +1 -1
  30. package/dist/server/TunnelAgent.d.ts +10 -10
  31. package/dist/server/TunnelAgent.d.ts.map +1 -1
  32. package/dist/server/TunnelAgent.js +29 -29
  33. package/dist/server/TunnelAgent.js.map +1 -1
  34. package/dist/server/TunnelAgent.spec.js +1 -1
  35. package/dist/server/TunnelAgent.spec.js.map +1 -1
  36. package/dist/server/index.d.ts +2 -2
  37. package/dist/server/index.d.ts.map +1 -1
  38. package/dist/server/index.js +1 -1
  39. package/dist/server/index.js.map +1 -1
  40. package/dist/server/server.d.ts +2 -2
  41. package/dist/server/server.d.ts.map +1 -1
  42. package/dist/server/server.js +5 -5
  43. package/dist/server/server.js.map +1 -1
  44. package/dist/server/server.spec.js +6 -6
  45. package/dist/server/server.spec.js.map +1 -1
  46. package/eslint.config.ts +29 -18
  47. package/package.json +17 -10
  48. package/src/Tunnel.ts +105 -105
  49. package/src/TunnelCluster.ts +26 -26
  50. package/src/cli.ts +28 -26
  51. package/src/pipenet.spec.ts +45 -28
  52. package/src/pipenet.ts +6 -6
  53. package/src/server/Client.spec.ts +19 -19
  54. package/src/server/Client.ts +11 -10
  55. package/src/server/ClientManager.spec.ts +1 -1
  56. package/src/server/ClientManager.ts +16 -16
  57. package/src/server/TunnelAgent.spec.ts +1 -1
  58. package/src/server/TunnelAgent.ts +34 -34
  59. package/src/server/index.ts +2 -2
  60. package/src/server/server.spec.ts +6 -6
  61. package/src/server/server.ts +8 -8
  62. package/vitest.config.ts +2 -2
package/README.md CHANGED
@@ -14,13 +14,13 @@ pnpm add pipenet
14
14
 
15
15
  ```bash
16
16
  # Expose local port 3000 to the internet
17
- npx pipenet --port 3000
17
+ npx pipenet client --port 3000
18
18
 
19
19
  # Request a specific subdomain
20
- npx pipenet --port 3000 --subdomain myapp
20
+ npx pipenet client --port 3000 --subdomain myapp
21
21
 
22
22
  # Use a custom tunnel server
23
- npx pipenet --port 3000 --host https://your-tunnel-server.com
23
+ npx pipenet client --port 3000 --host https://your-tunnel-server.com
24
24
  ```
25
25
 
26
26
  ## API
@@ -32,7 +32,7 @@ The pipenet client is also usable through an API (for test integration, automati
32
32
  Creates a new pipenet tunnel to the specified local `port`. Will return a Promise that resolves once you have been assigned a public tunnel url. `options` can be used to request a specific `subdomain`. A `callback` function can be passed, in which case it won't return a Promise. This exists for backwards compatibility with the old Node-style callback API. You may also pass a single options object with `port` as a property.
33
33
 
34
34
  ```js
35
- import pipenet from 'pipenet';
35
+ import { pipenet } from 'pipenet';
36
36
 
37
37
  const tunnel = await pipenet({
38
38
  port: 3000,
@@ -53,12 +53,12 @@ tunnel.on('close', () => {
53
53
  - `port` (number) [required] The local port number to expose through pipenet.
54
54
  - `host` (string) URL for the upstream proxy server. Defaults to `https://pipenet.dev`.
55
55
  - `subdomain` (string) Request a specific subdomain on the proxy server. **Note** You may not actually receive this name depending on availability.
56
- - `local_host` (string) Proxy to this hostname instead of `localhost`. This will also cause the `Host` header to be re-written to this value in proxied requests.
57
- - `local_https` (boolean) Enable tunneling to local HTTPS server.
58
- - `local_cert` (string) Path to certificate PEM file for local HTTPS server.
59
- - `local_key` (string) Path to certificate key file for local HTTPS server.
60
- - `local_ca` (string) Path to certificate authority file for self-signed certificates.
61
- - `allow_invalid_cert` (boolean) Disable certificate checks for your local HTTPS server (ignore cert/key/ca options).
56
+ - `localHost` (string) Proxy to this hostname instead of `localhost`. This will also cause the `Host` header to be re-written to this value in proxied requests.
57
+ - `localHttps` (boolean) Enable tunneling to local HTTPS server.
58
+ - `localCert` (string) Path to certificate PEM file for local HTTPS server.
59
+ - `localKey` (string) Path to certificate key file for local HTTPS server.
60
+ - `localCa` (string) Path to certificate authority file for self-signed certificates.
61
+ - `allowInvalidCert` (boolean) Disable certificate checks for your local HTTPS server (ignore cert/key/ca options).
62
62
 
63
63
  Refer to [tls.createSecureContext](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options) for details on the certificate options.
64
64
 
@@ -97,8 +97,8 @@ import { createServer } from 'pipenet/server';
97
97
  const server = createServer({
98
98
  domain: 'tunnel.example.com', // Optional: custom domain
99
99
  secure: false, // Optional: require HTTPS
100
- landing: 'https://example.com', // Optional: landing page URL
101
- max_tcp_sockets: 10, // Optional: max sockets per client
100
+ landing: 'https://pipenet.dev', // Optional: landing page URL
101
+ maxTcpSockets: 10, // Optional: max sockets per client
102
102
  });
103
103
 
104
104
  server.listen(3000, () => {
@@ -111,7 +111,7 @@ server.listen(3000, () => {
111
111
  - `domain` (string) Custom domain for the tunnel server
112
112
  - `secure` (boolean) Require HTTPS connections
113
113
  - `landing` (string) URL to redirect root requests to
114
- - `max_tcp_sockets` (number) Maximum number of TCP sockets per client (default: 10)
114
+ - `maxTcpSockets` (number) Maximum number of TCP sockets per client (default: 10)
115
115
 
116
116
  ### Server API Endpoints
117
117
 
@@ -121,10 +121,6 @@ server.listen(3000, () => {
121
121
 
122
122
  ## Acknowledgments
123
123
 
124
- pipenet is based on [localtunnel](https://github.com/localtunnel/localtunnel), an open-source project by [@defunctzombie](https://github.com/defunctzombie). We are grateful for the foundation it provided.
124
+ pipenet is based on [localtunnel](https://github.com/localtunnel/localtunnel).
125
125
 
126
126
  Development of pipenet is sponsored by [glama.ai](https://glama.ai).
127
-
128
- ## License
129
-
130
- MIT
package/dist/Tunnel.d.ts CHANGED
@@ -1,29 +1,29 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { TunnelCluster } from './TunnelCluster.js';
3
3
  export interface TunnelOptions {
4
- port?: number;
4
+ allowInvalidCert?: boolean;
5
+ headers?: Record<string, string>;
5
6
  host?: string;
7
+ localCa?: string;
8
+ localCert?: string;
9
+ localHost?: string;
10
+ localHttps?: boolean;
11
+ localKey?: string;
12
+ port?: number;
6
13
  subdomain?: string;
7
- local_host?: string;
8
- local_https?: boolean;
9
- local_cert?: string;
10
- local_key?: string;
11
- local_ca?: string;
12
- allow_invalid_cert?: boolean;
13
- headers?: Record<string, string>;
14
14
  }
15
15
  export declare class Tunnel extends EventEmitter {
16
- opts: TunnelOptions;
17
- closed: boolean;
18
- clientId?: string;
19
- url?: string;
20
16
  cachedUrl?: string;
17
+ clientId?: string;
18
+ closed: boolean;
19
+ opts: TunnelOptions;
21
20
  tunnelCluster?: TunnelCluster;
21
+ url?: string;
22
22
  constructor(opts?: TunnelOptions);
23
+ close(): void;
24
+ open(cb: (err?: Error) => void): void;
25
+ private _establish;
23
26
  private _getInfo;
24
27
  private _init;
25
- private _establish;
26
- open(cb: (err?: Error) => void): void;
27
- close(): void;
28
28
  }
29
29
  //# sourceMappingURL=Tunnel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tunnel.d.ts","sourceRoot":"","sources":["../src/Tunnel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AAIzE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AA6BD,qBAAa,MAAO,SAAQ,YAAY;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;gBAEzB,IAAI,GAAE,aAAkB;IASpC,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,KAAK;IAoCb,OAAO,CAAC,UAAU;IAqDlB,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAmBrC,KAAK,IAAI,IAAI;CAId"}
1
+ {"version":3,"file":"Tunnel.d.ts","sourceRoot":"","sources":["../src/Tunnel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AAIzE,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD,qBAAa,MAAO,SAAQ,YAAY;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;gBAER,IAAI,GAAE,aAAkB;IASpC,KAAK,IAAI,IAAI;IAKb,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAmBrC,OAAO,CAAC,UAAU;IAqDlB,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,KAAK;CAmCd"}
package/dist/Tunnel.js CHANGED
@@ -1,15 +1,15 @@
1
- import { EventEmitter } from 'events';
2
1
  import axios from 'axios';
3
2
  import debug from 'debug';
3
+ import { EventEmitter } from 'events';
4
4
  import { TunnelCluster } from './TunnelCluster.js';
5
5
  const log = debug('pipenet:client');
6
6
  export class Tunnel extends EventEmitter {
7
- opts;
8
- closed;
9
- clientId;
10
- url;
11
7
  cachedUrl;
8
+ clientId;
9
+ closed;
10
+ opts;
12
11
  tunnelCluster;
12
+ url;
13
13
  constructor(opts = {}) {
14
14
  super();
15
15
  this.opts = opts;
@@ -18,58 +18,27 @@ export class Tunnel extends EventEmitter {
18
18
  this.opts.host = 'https://pipenet.dev';
19
19
  }
20
20
  }
21
- _getInfo(body) {
22
- const { id, ip, port, url, cached_url, max_conn_count } = body;
23
- const { host, port: local_port, local_host } = this.opts;
24
- const { local_https, local_cert, local_key, local_ca, allow_invalid_cert } = this.opts;
25
- return {
26
- name: id,
27
- url,
28
- cached_url,
29
- max_conn: max_conn_count || 1,
30
- remote_host: new URL(host).hostname,
31
- remote_ip: ip,
32
- remote_port: port,
33
- local_port,
34
- local_host,
35
- local_https,
36
- local_cert,
37
- local_key,
38
- local_ca,
39
- allow_invalid_cert,
40
- };
21
+ close() {
22
+ this.closed = true;
23
+ this.emit('close');
41
24
  }
42
- _init(cb) {
43
- const opt = this.opts;
44
- const getInfo = this._getInfo.bind(this);
45
- const params = {
46
- responseType: 'json',
47
- headers: opt.headers || {},
48
- };
49
- const baseUri = `${opt.host}/`;
50
- const assignedDomain = opt.subdomain;
51
- const uri = baseUri + (assignedDomain || '?new');
52
- const getUrl = () => {
53
- axios
54
- .get(uri, params)
55
- .then((res) => {
56
- const body = res.data;
57
- log('got tunnel information', res.data);
58
- if (res.status !== 200) {
59
- const err = new Error(body?.message || 'pipenet server returned an error, please try again');
60
- return cb(err);
61
- }
62
- cb(null, getInfo(body));
63
- })
64
- .catch((err) => {
65
- log(`tunnel server offline: ${err.message}, retry 1s`);
66
- setTimeout(getUrl, 1000);
67
- });
68
- };
69
- getUrl();
25
+ open(cb) {
26
+ this._init((err, info) => {
27
+ if (err) {
28
+ cb(err);
29
+ return;
30
+ }
31
+ this.clientId = info.name;
32
+ this.url = info.url;
33
+ if (info.cachedUrl) {
34
+ this.cachedUrl = info.cachedUrl;
35
+ }
36
+ this._establish(info);
37
+ cb();
38
+ });
70
39
  }
71
40
  _establish(info) {
72
- this.setMaxListeners(info.max_conn + (EventEmitter.defaultMaxListeners || 10));
41
+ this.setMaxListeners(info.maxConn + (EventEmitter.defaultMaxListeners || 10));
73
42
  this.tunnelCluster = new TunnelCluster(info);
74
43
  this.tunnelCluster.once('open', () => {
75
44
  this.emit('url', info.url);
@@ -105,28 +74,59 @@ export class Tunnel extends EventEmitter {
105
74
  this.tunnelCluster.on('request', (req) => {
106
75
  this.emit('request', req);
107
76
  });
108
- for (let count = 0; count < info.max_conn; ++count) {
77
+ for (let count = 0; count < info.maxConn; ++count) {
109
78
  this.tunnelCluster.open();
110
79
  }
111
80
  }
112
- open(cb) {
113
- this._init((err, info) => {
114
- if (err) {
115
- cb(err);
116
- return;
117
- }
118
- this.clientId = info.name;
119
- this.url = info.url;
120
- if (info.cached_url) {
121
- this.cachedUrl = info.cached_url;
122
- }
123
- this._establish(info);
124
- cb();
125
- });
81
+ _getInfo(body) {
82
+ const { cachedUrl, id, ip, maxConnCount, port, url } = body;
83
+ const { host, localHost, port: localPort } = this.opts;
84
+ const { allowInvalidCert, localCa, localCert, localHttps, localKey } = this.opts;
85
+ return {
86
+ allowInvalidCert,
87
+ cachedUrl,
88
+ localCa,
89
+ localCert,
90
+ localHost,
91
+ localHttps,
92
+ localKey,
93
+ localPort,
94
+ maxConn: maxConnCount || 1,
95
+ name: id,
96
+ remoteHost: new URL(host).hostname,
97
+ remoteIp: ip,
98
+ remotePort: port,
99
+ url,
100
+ };
126
101
  }
127
- close() {
128
- this.closed = true;
129
- this.emit('close');
102
+ _init(cb) {
103
+ const opt = this.opts;
104
+ const getInfo = this._getInfo.bind(this);
105
+ const params = {
106
+ headers: opt.headers || {},
107
+ responseType: 'json',
108
+ };
109
+ const baseUri = `${opt.host}/`;
110
+ const assignedDomain = opt.subdomain;
111
+ const uri = baseUri + (assignedDomain || '?new');
112
+ const getUrl = () => {
113
+ axios
114
+ .get(uri, params)
115
+ .then((res) => {
116
+ const body = res.data;
117
+ log('got tunnel information', res.data);
118
+ if (res.status !== 200) {
119
+ const err = new Error(body?.message || 'pipenet server returned an error, please try again');
120
+ return cb(err);
121
+ }
122
+ cb(null, getInfo(body));
123
+ })
124
+ .catch((err) => {
125
+ log(`tunnel server offline: ${err.message}, retry 1s`);
126
+ setTimeout(getUrl, 1000);
127
+ });
128
+ };
129
+ getUrl();
130
130
  }
131
131
  }
132
132
  //# sourceMappingURL=Tunnel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tunnel.js","sourceRoot":"","sources":["../src/Tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tunnel.js","sourceRoot":"","sources":["../src/Tunnel.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import { EventEmitter } from 'events';
2
2
  export interface TunnelClusterOptions {
3
+ allowInvalidCert?: boolean;
4
+ cachedUrl?: string;
5
+ localCa?: string;
6
+ localCert?: string;
7
+ localHost?: string;
8
+ localHttps?: boolean;
9
+ localKey?: string;
10
+ localPort?: number;
11
+ maxConn?: number;
3
12
  name?: string;
13
+ remoteHost?: string;
14
+ remoteIp?: string;
15
+ remotePort?: number;
4
16
  url?: string;
5
- cached_url?: string;
6
- max_conn?: number;
7
- remote_host?: string;
8
- remote_ip?: string;
9
- remote_port?: number;
10
- local_port?: number;
11
- local_host?: string;
12
- local_https?: boolean;
13
- local_cert?: string;
14
- local_key?: string;
15
- local_ca?: string;
16
- allow_invalid_cert?: boolean;
17
17
  }
18
18
  export interface TunnelRequest {
19
19
  method: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelCluster.d.ts","sourceRoot":"","sources":["../src/TunnelCluster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,IAAI,CAAuB;gBAEvB,IAAI,GAAE,oBAAyB;IAK3C,IAAI,IAAI,IAAI;CA4Hb"}
1
+ {"version":3,"file":"TunnelCluster.d.ts","sourceRoot":"","sources":["../src/TunnelCluster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,IAAI,CAAuB;gBAEvB,IAAI,GAAE,oBAAyB;IAK3C,IAAI,IAAI,IAAI;CA4Hb"}
@@ -1,5 +1,5 @@
1
- import { EventEmitter } from 'events';
2
1
  import debug from 'debug';
2
+ import { EventEmitter } from 'events';
3
3
  import fs from 'fs';
4
4
  import net from 'net';
5
5
  import tls from 'tls';
@@ -13,12 +13,12 @@ export class TunnelCluster extends EventEmitter {
13
13
  }
14
14
  open() {
15
15
  const opt = this.opts;
16
- const remoteHostOrIp = opt.remote_ip || opt.remote_host;
17
- const remotePort = opt.remote_port;
18
- const localHost = opt.local_host || 'localhost';
19
- const localPort = opt.local_port;
20
- const localProtocol = opt.local_https ? 'https' : 'http';
21
- const allowInvalidCert = opt.allow_invalid_cert;
16
+ const remoteHostOrIp = opt.remoteIp || opt.remoteHost;
17
+ const remotePort = opt.remotePort;
18
+ const localHost = opt.localHost || 'localhost';
19
+ const localPort = opt.localPort;
20
+ const localProtocol = opt.localHttps ? 'https' : 'http';
21
+ const allowInvalidCert = opt.allowInvalidCert;
22
22
  log('establishing tunnel %s://%s:%s <> %s:%s', localProtocol, localHost, localPort, remoteHostOrIp, remotePort);
23
23
  const remote = net.connect({
24
24
  host: remoteHostOrIp,
@@ -46,11 +46,11 @@ export class TunnelCluster extends EventEmitter {
46
46
  const getLocalCertOpts = () => allowInvalidCert
47
47
  ? { rejectUnauthorized: false }
48
48
  : {
49
- cert: fs.readFileSync(opt.local_cert),
50
- key: fs.readFileSync(opt.local_key),
51
- ca: opt.local_ca ? [fs.readFileSync(opt.local_ca)] : undefined,
49
+ ca: opt.localCa ? [fs.readFileSync(opt.localCa)] : undefined,
50
+ cert: fs.readFileSync(opt.localCert),
51
+ key: fs.readFileSync(opt.localKey),
52
52
  };
53
- const local = opt.local_https
53
+ const local = opt.localHttps
54
54
  ? tls.connect({ host: localHost, port: localPort, ...getLocalCertOpts() })
55
55
  : net.connect({ host: localHost, port: localPort });
56
56
  const remoteClose = () => {
@@ -73,9 +73,9 @@ export class TunnelCluster extends EventEmitter {
73
73
  log('connected locally');
74
74
  remote.resume();
75
75
  let stream = remote;
76
- if (opt.local_host) {
77
- log('transform Host header to %s', opt.local_host);
78
- stream = remote.pipe(new HeaderHostTransformer({ host: opt.local_host }));
76
+ if (opt.localHost) {
77
+ log('transform Host header to %s', opt.localHost);
78
+ stream = remote.pipe(new HeaderHostTransformer({ host: opt.localHost }));
79
79
  }
80
80
  stream.pipe(local).pipe(remote);
81
81
  local.once('close', (hadError) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelCluster.js","sourceRoot":"","sources":["../src/TunnelCluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TunnelCluster.js","sourceRoot":"","sources":["../src/TunnelCluster.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import yargs from 'yargs';
3
3
  import { hideBin } from 'yargs/helpers';
4
- import pipenet from './pipenet.js';
4
+ import { pipenet } from './pipenet.js';
5
5
  import { createServer } from './server/index.js';
6
6
  async function runClient(opts) {
7
7
  let headers;
@@ -15,16 +15,16 @@ async function runClient(opts) {
15
15
  }
16
16
  }
17
17
  const tunnel = await pipenet({
18
- port: opts.port,
18
+ allowInvalidCert: opts['allow-invalid-cert'],
19
+ headers,
19
20
  host: opts.host,
21
+ localCa: opts['local-ca'],
22
+ localCert: opts['local-cert'],
23
+ localHost: opts['local-host'],
24
+ localHttps: opts['local-https'],
25
+ localKey: opts['local-key'],
26
+ port: opts.port,
20
27
  subdomain: opts.subdomain,
21
- local_host: opts['local-host'],
22
- local_https: opts['local-https'],
23
- local_cert: opts['local-cert'],
24
- local_key: opts['local-key'],
25
- local_ca: opts['local-ca'],
26
- allow_invalid_cert: opts['allow-invalid-cert'],
27
- headers,
28
28
  });
29
29
  console.log('your url is: %s', tunnel.url);
30
30
  tunnel.on('error', (err) => {
@@ -46,9 +46,9 @@ async function runClient(opts) {
46
46
  function runServer(opts) {
47
47
  const server = createServer({
48
48
  domain: opts.domain,
49
- secure: opts.secure,
50
49
  landing: opts.landing,
51
- max_tcp_sockets: opts['max-sockets'],
50
+ maxTcpSockets: opts['max-sockets'],
51
+ secure: opts.secure,
52
52
  });
53
53
  server.listen(opts.port, () => {
54
54
  console.log('pipenet server listening on port %d', opts.port);
@@ -66,19 +66,20 @@ function runServer(opts) {
66
66
  yargs(hideBin(process.argv))
67
67
  .usage('Usage: pipenet <command> [options]')
68
68
  .env(true)
69
- .command(['$0', 'client'], 'Start a tunnel client', (yargs) => {
69
+ .demandCommand(1, 'You must specify a command: client or server')
70
+ .command('client', 'Start a tunnel client', (yargs) => {
70
71
  return yargs
71
72
  .option('port', {
72
73
  alias: 'p',
74
+ demandOption: true,
73
75
  describe: 'Internal HTTP server port',
74
76
  type: 'number',
75
- demandOption: true,
76
77
  })
77
78
  .option('host', {
78
79
  alias: 'h',
80
+ default: 'https://pipenet.dev',
79
81
  describe: 'Upstream server providing forwarding',
80
82
  type: 'string',
81
- default: 'https://pipenet.dev',
82
83
  })
83
84
  .option('subdomain', {
84
85
  alias: 's',
@@ -87,8 +88,8 @@ yargs(hideBin(process.argv))
87
88
  })
88
89
  .option('local-host', {
89
90
  alias: 'l',
90
- describe: 'Tunnel traffic to this host instead of localhost',
91
91
  default: 'localhost',
92
+ describe: 'Tunnel traffic to this host instead of localhost',
92
93
  type: 'string',
93
94
  })
94
95
  .option('local-https', {
@@ -129,9 +130,9 @@ yargs(hideBin(process.argv))
129
130
  return yargs
130
131
  .option('port', {
131
132
  alias: 'p',
133
+ default: 3000,
132
134
  describe: 'Port for the server to listen on',
133
135
  type: 'number',
134
- default: 3000,
135
136
  })
136
137
  .option('domain', {
137
138
  alias: 'd',
@@ -139,18 +140,18 @@ yargs(hideBin(process.argv))
139
140
  type: 'string',
140
141
  })
141
142
  .option('secure', {
143
+ default: false,
142
144
  describe: 'Require HTTPS connections',
143
145
  type: 'boolean',
144
- default: false,
145
146
  })
146
147
  .option('landing', {
147
148
  describe: 'URL to redirect root requests to',
148
149
  type: 'string',
149
150
  })
150
151
  .option('max-sockets', {
152
+ default: 10,
151
153
  describe: 'Maximum number of TCP sockets per client',
152
154
  type: 'number',
153
- default: 10,
154
155
  });
155
156
  }, (argv) => {
156
157
  runServer(argv);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwBjD,KAAK,UAAU,SAAS,CAAC,IAAmB;IAC1C,IAAI,OAA2C,CAAC;IAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QAC5C,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;QAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAE3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAsC,EAAE,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAmB;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,KAAK,CAAC,oCAAoC,CAAC;KAC3C,GAAG,CAAC,IAAI,CAAC;KACT,aAAa,CAAC,CAAC,EAAE,8CAA8C,CAAC;KAChE,OAAO,CACN,QAAQ,EACR,uBAAuB,EACvB,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK;SACT,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,kDAAkD;QAC5D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,QAAQ,EAAE,wCAAwC;QAClD,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,QAAQ,EAAE,qDAAqD;QAC/D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,QAAQ,EAAE,qDAAqD;QAC/D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,iEAAiE;QAC3E,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE;QAC5B,QAAQ,EAAE,wDAAwD;QAClE,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,MAAM,CAAC,gBAAgB,EAAE;QACxB,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,QAAQ,EAAE,6DAA6D;QACvE,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACP,CAAC,EACD,CAAC,IAAI,EAAE,EAAE;IACP,SAAS,CAAC,IAAgC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CACF;KACA,OAAO,CACN,QAAQ,EACR,uBAAuB,EACvB,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK;SACT,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,kCAAkC;QAC5C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,qCAAqC;QAC/C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,QAAQ,EAAE,kCAAkC;QAC5C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,0CAA0C;QACpD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACP,CAAC,EACD,CAAC,IAAI,EAAE,EAAE;IACP,SAAS,CAAC,IAAgC,CAAC,CAAC;AAC9C,CAAC,CACF;KACA,IAAI,CAAC,MAAM,CAAC;KACZ,OAAO,EAAE;KACT,KAAK,EAAE,CAAC"}
package/dist/pipenet.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import { Tunnel, TunnelOptions } from './Tunnel.js';
2
+ export { HeaderHostTransformer } from './HeaderHostTransformer.js';
2
3
  export type { TunnelOptions } from './Tunnel.js';
3
- export type { TunnelClusterOptions, TunnelRequest } from './TunnelCluster.js';
4
4
  export { Tunnel } from './Tunnel.js';
5
+ export type { TunnelClusterOptions, TunnelRequest } from './TunnelCluster.js';
5
6
  export { TunnelCluster } from './TunnelCluster.js';
6
- export { HeaderHostTransformer } from './HeaderHostTransformer.js';
7
7
  export type TunnelCallback = (err: Error | null, tunnel?: Tunnel) => void;
8
- type OptionsWithPort = TunnelOptions & {
8
+ type OptionsWithPort = {
9
9
  port: number;
10
- };
10
+ } & TunnelOptions;
11
11
  declare function pipenet(port: number): Promise<Tunnel>;
12
12
  declare function pipenet(opts: OptionsWithPort): Promise<Tunnel>;
13
13
  declare function pipenet(port: number, opts: TunnelOptions): Promise<Tunnel>;
14
14
  declare function pipenet(opts: OptionsWithPort, callback: TunnelCallback): Tunnel;
15
15
  declare function pipenet(port: number, opts: TunnelOptions, callback: TunnelCallback): Tunnel;
16
- export default pipenet;
16
+ export { pipenet };
17
17
  //# sourceMappingURL=pipenet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipenet.d.ts","sourceRoot":"","sources":["../src/pipenet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1E,KAAK,eAAe,GAAG,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACzD,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACrE,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;AAC1E,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;AAqBtF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"pipenet.d.ts","sourceRoot":"","sources":["../src/pipenet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1E,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC;AAExD,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACzD,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACrE,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;AAC1E,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;AAqBtF,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/pipenet.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Tunnel } from './Tunnel.js';
2
+ export { HeaderHostTransformer } from './HeaderHostTransformer.js';
2
3
  export { Tunnel } from './Tunnel.js';
3
4
  export { TunnelCluster } from './TunnelCluster.js';
4
- export { HeaderHostTransformer } from './HeaderHostTransformer.js';
5
5
  function pipenet(arg1, arg2, arg3) {
6
6
  const options = typeof arg1 === 'object' ? arg1 : { ...arg2, port: arg1 };
7
7
  const callback = typeof arg1 === 'object' ? arg2 : arg3;
@@ -12,5 +12,5 @@ function pipenet(arg1, arg2, arg3) {
12
12
  }
13
13
  return new Promise((resolve, reject) => client.open((err) => (err ? reject(err) : resolve(client))));
14
14
  }
15
- export default pipenet;
15
+ export { pipenet };
16
16
  //# sourceMappingURL=pipenet.js.map