tcpip 0.1.1 → 0.2.0-dev.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 (64) hide show
  1. package/dist/index.cjs +2 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +78 -0
  4. package/dist/index.d.ts +78 -0
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +28 -34
  8. package/tcpip.wasm +0 -0
  9. package/dist/cjs/go/wasm_exec.js +0 -619
  10. package/dist/cjs/go/wasm_exec.js.map +0 -1
  11. package/dist/cjs/index.js +0 -119
  12. package/dist/cjs/index.js.map +0 -1
  13. package/dist/cjs/interfaces/loopback-interface.js +0 -12
  14. package/dist/cjs/interfaces/loopback-interface.js.map +0 -1
  15. package/dist/cjs/interfaces/tap-interface.js +0 -31
  16. package/dist/cjs/interfaces/tap-interface.js.map +0 -1
  17. package/dist/cjs/interfaces/tun-interface.js +0 -31
  18. package/dist/cjs/interfaces/tun-interface.js.map +0 -1
  19. package/dist/cjs/platforms/bundler.js +0 -76
  20. package/dist/cjs/platforms/bundler.js.map +0 -1
  21. package/dist/cjs/platforms/node-polyfills.js +0 -16
  22. package/dist/cjs/platforms/node-polyfills.js.map +0 -1
  23. package/dist/cjs/platforms/node.js +0 -81
  24. package/dist/cjs/platforms/node.js.map +0 -1
  25. package/dist/cjs/server.js +0 -32
  26. package/dist/cjs/server.js.map +0 -1
  27. package/dist/cjs/socket.js +0 -32
  28. package/dist/cjs/socket.js.map +0 -1
  29. package/dist/cjs/stack.js +0 -111
  30. package/dist/cjs/stack.js.map +0 -1
  31. package/dist/esm/go/wasm_exec.js +0 -569
  32. package/dist/esm/go/wasm_exec.js.map +0 -1
  33. package/dist/esm/index.js +0 -33
  34. package/dist/esm/index.js.map +0 -1
  35. package/dist/esm/interfaces/loopback-interface.js +0 -9
  36. package/dist/esm/interfaces/loopback-interface.js.map +0 -1
  37. package/dist/esm/interfaces/tap-interface.js +0 -11
  38. package/dist/esm/interfaces/tap-interface.js.map +0 -1
  39. package/dist/esm/interfaces/tun-interface.js +0 -11
  40. package/dist/esm/interfaces/tun-interface.js.map +0 -1
  41. package/dist/esm/platforms/bundler.js +0 -8
  42. package/dist/esm/platforms/bundler.js.map +0 -1
  43. package/dist/esm/platforms/node-polyfills.js +0 -14
  44. package/dist/esm/platforms/node-polyfills.js.map +0 -1
  45. package/dist/esm/platforms/node.js +0 -12
  46. package/dist/esm/platforms/node.js.map +0 -1
  47. package/dist/esm/server.js +0 -11
  48. package/dist/esm/server.js.map +0 -1
  49. package/dist/esm/socket.js +0 -11
  50. package/dist/esm/socket.js.map +0 -1
  51. package/dist/esm/stack.js +0 -76
  52. package/dist/esm/stack.js.map +0 -1
  53. package/dist/tcpip.wasm +0 -0
  54. package/dist/types/go/wasm_exec.d.ts +0 -35
  55. package/dist/types/index.d.ts +0 -6
  56. package/dist/types/interfaces/loopback-interface.d.ts +0 -13
  57. package/dist/types/interfaces/tap-interface.d.ts +0 -19
  58. package/dist/types/interfaces/tun-interface.d.ts +0 -18
  59. package/dist/types/platforms/bundler.d.ts +0 -2
  60. package/dist/types/platforms/node-polyfills.d.ts +0 -1
  61. package/dist/types/platforms/node.d.ts +0 -3
  62. package/dist/types/server.d.ts +0 -25
  63. package/dist/types/socket.d.ts +0 -99
  64. package/dist/types/stack.d.ts +0 -31
@@ -1 +0,0 @@
1
- {"version":3,"file":"tap-interface.js","sourceRoot":"","sources":["../../../src/interfaces/tap-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAkB7C,MAAM,YAAa,SAAQ,YAAoC;IAC7D,YAAmB,KAAY,EAAS,OAA4B;QAClE,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAO;QAAS,YAAO,GAAP,OAAO,CAAqB;QAElE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
@@ -1,11 +0,0 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- class TunInterface extends EventEmitter {
3
- constructor(stack, options) {
4
- super();
5
- this.stack = stack;
6
- this.options = options;
7
- this._init(options);
8
- }
9
- }
10
- export default TunInterface;
11
- //# sourceMappingURL=tun-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tun-interface.js","sourceRoot":"","sources":["../../../src/interfaces/tun-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAiB7C,MAAM,YAAa,SAAQ,YAAoC;IAC7D,YAAmB,KAAY,EAAS,OAA4B;QAClE,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAO;QAAS,YAAO,GAAP,OAAO,CAAqB;QAElE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
@@ -1,8 +0,0 @@
1
- import Go from '../go/wasm_exec.js';
2
- export * from '../index.js';
3
- export async function init() {
4
- const go = new Go();
5
- const source = await WebAssembly.instantiateStreaming(fetch(require('tcpip/tcpip.wasm')), go.importObject);
6
- go.run(source.instance);
7
- }
8
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/platforms/bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAClC,EAAE,CAAC,YAAY,CAChB,CAAC;IACF,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,14 +0,0 @@
1
- import { getRandomValues } from 'crypto';
2
- import { TextDecoder, TextEncoder } from 'util';
3
- globalThis.TextEncoder = TextEncoder;
4
- globalThis.TextDecoder = TextDecoder;
5
- globalThis.performance = {
6
- now() {
7
- const [sec, nsec] = process.hrtime();
8
- return sec * 1000 + nsec / 1000000;
9
- },
10
- };
11
- globalThis.crypto = {
12
- getRandomValues,
13
- };
14
- //# sourceMappingURL=node-polyfills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-polyfills.js","sourceRoot":"","sources":["../../../src/platforms/node-polyfills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE/C,UAAkB,CAAC,WAAW,GAAG,WAAW,CAAC;AAC7C,UAAkB,CAAC,WAAW,GAAG,WAAW,CAAC;AAE7C,UAAkB,CAAC,WAAW,GAAG;IAChC,GAAG;QACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IACrC,CAAC;CACF,CAAC;AAED,UAAkB,CAAC,MAAM,GAAG;IAC3B,eAAe;CAChB,CAAC"}
@@ -1,12 +0,0 @@
1
- // This import must come first
2
- import './node-polyfills.js';
3
- import { readFile } from 'fs/promises';
4
- import Go from '../go/wasm_exec.js';
5
- export * from '../index.js';
6
- export async function init() {
7
- const wasm = await readFile(require.resolve('tcpip/tcpip.wasm'));
8
- const go = new Go();
9
- const source = await WebAssembly.instantiate(wasm, go.importObject);
10
- go.run(source.instance);
11
- }
12
- //# sourceMappingURL=node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/platforms/node.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IACpE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- class Server extends EventEmitter {
3
- constructor(stack, options = {}) {
4
- super();
5
- this.stack = stack;
6
- this.options = options;
7
- this._init(options);
8
- }
9
- }
10
- export default Server;
11
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAwB7C,MAAM,MAAO,SAAQ,YAA8B;IACjD,YAAmB,KAAY,EAAS,UAAyB,EAAE;QACjE,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAO;QAAS,YAAO,GAAP,OAAO,CAAoB;QAEjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED,eAAe,MAAM,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Duplex } from 'readable-stream';
2
- class Socket extends Duplex {
3
- constructor(stack, options = {}) {
4
- super();
5
- this.stack = stack;
6
- this.options = options;
7
- this._init(options);
8
- }
9
- }
10
- export default Socket;
11
- //# sourceMappingURL=socket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAmKzC,MAAM,MAAO,SAAQ,MAAM;IACzB,YAAmB,KAAY,EAAS,UAAiC,EAAE;QACzE,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAO;QAAS,YAAO,GAAP,OAAO,CAA4B;QAEzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED,eAAe,MAAM,CAAC"}
package/dist/esm/stack.js DELETED
@@ -1,76 +0,0 @@
1
- import LoopbackInterface from './interfaces/loopback-interface.js';
2
- import TapInterface from './interfaces/tap-interface.js';
3
- import TunInterface from './interfaces/tun-interface.js';
4
- import NetServer from './server.js';
5
- import NetSocket from './socket.js';
6
- export function unwrap(fn) {
7
- return function (...args) {
8
- const [value, error] = fn.apply(this, args);
9
- if (error) {
10
- throw error;
11
- }
12
- return value;
13
- };
14
- }
15
- /**
16
- * A user-space TCP/IP network stack
17
- */
18
- class Stack {
19
- constructor(options = {}) {
20
- this.options = options;
21
- this._init(options);
22
- const self = this;
23
- const Socket = class Socket extends NetSocket {
24
- constructor(options = {}) {
25
- super(self, options);
26
- }
27
- };
28
- const Server = class Server extends NetServer {
29
- constructor(options = {}) {
30
- super(self, options);
31
- }
32
- };
33
- this.net = {
34
- Socket,
35
- Server,
36
- createServer(options = {}) {
37
- return new Server(options);
38
- },
39
- createConnection(optionsOrPort, listenerOrHost, listener) {
40
- if (typeof optionsOrPort === 'object') {
41
- const socket = new Socket(optionsOrPort);
42
- const { timeout } = optionsOrPort;
43
- if (timeout !== undefined && timeout > 0) {
44
- socket.setTimeout(timeout);
45
- }
46
- if (listenerOrHost === undefined) {
47
- return socket.connect(optionsOrPort);
48
- }
49
- if (typeof listenerOrHost !== 'function') {
50
- throw new Error('Expected second argument to be a listener');
51
- }
52
- return socket.connect(optionsOrPort, listenerOrHost);
53
- }
54
- const socket = new Socket();
55
- if (typeof listenerOrHost === 'string') {
56
- return socket.connect(optionsOrPort, listenerOrHost, listener);
57
- }
58
- return socket.connect(optionsOrPort, listenerOrHost);
59
- },
60
- connect(optionsOrPort, listenerOrHost, listener) {
61
- return this.net.createConnection(optionsOrPort, listenerOrHost, listener);
62
- },
63
- };
64
- }
65
- createLoopbackInterface(options) {
66
- return new LoopbackInterface(this, options);
67
- }
68
- createTapInterface(options) {
69
- return new TapInterface(this, options);
70
- }
71
- createTunInterface(options) {
72
- return new TunInterface(this, options);
73
- }
74
- }
75
- export default Stack;
76
- //# sourceMappingURL=stack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/stack.ts"],"names":[],"mappings":"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"}
package/dist/tcpip.wasm DELETED
Binary file
@@ -1,35 +0,0 @@
1
- export default class Go {
2
- importObject: {
3
- go: {
4
- 'runtime.wasmExit': (sp: any) => void;
5
- 'runtime.wasmWrite': (sp: any) => void;
6
- 'runtime.resetMemoryDataView': (sp: any) => void;
7
- 'runtime.nanotime1': (sp: any) => void;
8
- 'runtime.walltime': (sp: any) => void;
9
- 'runtime.scheduleTimeoutEvent': (sp: any) => void;
10
- 'runtime.clearTimeoutEvent': (sp: any) => void;
11
- 'runtime.getRandomData': (sp: any) => void;
12
- 'syscall/js.finalizeRef': (sp: any) => void;
13
- 'syscall/js.stringVal': (sp: any) => void;
14
- 'syscall/js.valueGet': (sp: any) => void;
15
- 'syscall/js.valueSet': (sp: any) => void;
16
- 'syscall/js.valueDelete': (sp: any) => void;
17
- 'syscall/js.valueIndex': (sp: any) => void;
18
- 'syscall/js.valueSetIndex': (sp: any) => void;
19
- 'syscall/js.valueCall': (sp: any) => void;
20
- 'syscall/js.valueInvoke': (sp: any) => void;
21
- 'syscall/js.valueNew': (sp: any) => void;
22
- 'syscall/js.valueLength': (sp: any) => void;
23
- 'syscall/js.valuePrepareString': (sp: any) => void;
24
- 'syscall/js.valueLoadString': (sp: any) => void;
25
- 'syscall/js.valueInstanceOf': (sp: any) => void;
26
- 'syscall/js.copyBytesToGo': (sp: any) => void;
27
- 'syscall/js.copyBytesToJS': (sp: any) => void;
28
- debug: (value: any) => void;
29
- };
30
- };
31
- constructor();
32
- run(instance: any): Promise<void>;
33
- _resume(): void;
34
- _makeFuncWrapper(id: any): () => any;
35
- }
@@ -1,6 +0,0 @@
1
- export { default as LoopbackInterface } from './interfaces/loopback-interface.js';
2
- export { default as TapInterface } from './interfaces/tap-interface.js';
3
- export { default as TunInterface } from './interfaces/tun-interface.js';
4
- export { Net, default as Stack } from './stack.js';
5
- export declare function init(): Promise<void>;
6
- export declare function initFrom(wasm: BufferSource | WebAssembly.Module): Promise<void>;
@@ -1,13 +0,0 @@
1
- import Stack from '../stack.js';
2
- export interface LoopbackInterfaceOptions {
3
- ipAddress: string;
4
- }
5
- interface LoopbackInterface {
6
- _init(options: LoopbackInterfaceOptions): void;
7
- }
8
- declare class LoopbackInterface {
9
- stack: Stack;
10
- options: LoopbackInterfaceOptions;
11
- constructor(stack: Stack, options: LoopbackInterfaceOptions);
12
- }
13
- export default LoopbackInterface;
@@ -1,19 +0,0 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- import Stack from '../stack.js';
3
- export interface TapInterfaceEventTypes {
4
- frame: (frame: Uint8Array) => void;
5
- }
6
- export interface TapInterfaceOptions {
7
- ipAddress: string;
8
- macAddress: string;
9
- }
10
- interface TapInterface {
11
- _init(options: TapInterfaceOptions): void;
12
- injectFrame(frame: Uint8Array): void;
13
- }
14
- declare class TapInterface extends EventEmitter<TapInterfaceEventTypes> {
15
- stack: Stack;
16
- options: TapInterfaceOptions;
17
- constructor(stack: Stack, options: TapInterfaceOptions);
18
- }
19
- export default TapInterface;
@@ -1,18 +0,0 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- import Stack from '../stack.js';
3
- export interface TunInterfaceEventTypes {
4
- packet: (packet: Uint8Array) => void;
5
- }
6
- export interface TunInterfaceOptions {
7
- ipAddress: string;
8
- }
9
- interface TunInterface {
10
- _init(options: TunInterfaceOptions): void;
11
- injectPacket(packet: Uint8Array): void;
12
- }
13
- declare class TunInterface extends EventEmitter<TunInterfaceEventTypes> {
14
- stack: Stack;
15
- options: TunInterfaceOptions;
16
- constructor(stack: Stack, options: TunInterfaceOptions);
17
- }
18
- export default TunInterface;
@@ -1,2 +0,0 @@
1
- export * from '../index.js';
2
- export declare function init(): Promise<void>;
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import './node-polyfills.js';
2
- export * from '../index.js';
3
- export declare function init(): Promise<void>;
@@ -1,25 +0,0 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- import Socket from './socket.js';
3
- import Stack from './stack.js';
4
- export interface ServerEventTypes {
5
- connection: (socket: Socket) => void;
6
- error: (err: Error) => void;
7
- end: () => void;
8
- close: (hadError: boolean) => void;
9
- }
10
- export interface ServerOptions {
11
- }
12
- interface ListenOptions {
13
- port: number | undefined;
14
- host?: string | undefined;
15
- }
16
- interface Server {
17
- _init(options: ServerOptions): void;
18
- listen(options: ListenOptions): this;
19
- }
20
- declare class Server extends EventEmitter<ServerEventTypes> {
21
- stack: Stack;
22
- options: ServerOptions;
23
- constructor(stack: Stack, options?: ServerOptions);
24
- }
25
- export default Server;
@@ -1,99 +0,0 @@
1
- /// <reference types="node" />
2
- import { Duplex } from 'readable-stream';
3
- import Stack from './stack.js';
4
- export interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts {
5
- timeout?: number | undefined;
6
- }
7
- export interface SocketConstructorOpts {
8
- }
9
- export interface TcpSocketConnectOpts {
10
- port: number;
11
- host?: string | undefined;
12
- localAddress?: string | undefined;
13
- localPort?: number | undefined;
14
- hints?: number | undefined;
15
- family?: number | undefined;
16
- noDelay?: boolean | undefined;
17
- keepAlive?: boolean | undefined;
18
- keepAliveInitialDelay?: number | undefined;
19
- }
20
- interface Socket {
21
- readonly timeout?: number | undefined;
22
- _init(options: SocketConstructorOpts): void;
23
- write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean;
24
- write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error) => void): boolean;
25
- connect(options: TcpSocketConnectOpts, connectionListener?: () => void): this;
26
- connect(port: number, host: string, connectionListener?: () => void): this;
27
- connect(port: number, connectionListener?: () => void): this;
28
- end(callback?: () => void): this;
29
- end(buffer: Uint8Array | string, callback?: () => void): this;
30
- end(str: Uint8Array | string, encoding?: BufferEncoding, callback?: () => void): this;
31
- addListener(event: string, listener: (...args: any[]) => void): this;
32
- addListener(event: 'close', listener: (hadError: boolean) => void): this;
33
- addListener(event: 'connect', listener: () => void): this;
34
- addListener(event: 'data', listener: (data: Buffer) => void): this;
35
- addListener(event: 'drain', listener: () => void): this;
36
- addListener(event: 'end', listener: () => void): this;
37
- addListener(event: 'error', listener: (err: Error) => void): this;
38
- addListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;
39
- addListener(event: 'ready', listener: () => void): this;
40
- addListener(event: 'timeout', listener: () => void): this;
41
- emit(event: string | symbol, ...args: any[]): boolean;
42
- emit(event: 'close', hadError: boolean): boolean;
43
- emit(event: 'connect'): boolean;
44
- emit(event: 'data', data: Buffer): boolean;
45
- emit(event: 'drain'): boolean;
46
- emit(event: 'end'): boolean;
47
- emit(event: 'error', err: Error): boolean;
48
- emit(event: 'lookup', err: Error, address: string, family: string | number, host: string): boolean;
49
- emit(event: 'ready'): boolean;
50
- emit(event: 'timeout'): boolean;
51
- on(event: string, listener: (...args: any[]) => void): this;
52
- on(event: 'close', listener: (hadError: boolean) => void): this;
53
- on(event: 'connect', listener: () => void): this;
54
- on(event: 'data', listener: (data: Buffer) => void): this;
55
- on(event: 'drain', listener: () => void): this;
56
- on(event: 'end', listener: () => void): this;
57
- on(event: 'error', listener: (err: Error) => void): this;
58
- on(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;
59
- on(event: 'ready', listener: () => void): this;
60
- on(event: 'timeout', listener: () => void): this;
61
- once(event: string, listener: (...args: any[]) => void): this;
62
- once(event: 'close', listener: (hadError: boolean) => void): this;
63
- once(event: 'connect', listener: () => void): this;
64
- once(event: 'data', listener: (data: Buffer) => void): this;
65
- once(event: 'drain', listener: () => void): this;
66
- once(event: 'end', listener: () => void): this;
67
- once(event: 'error', listener: (err: Error) => void): this;
68
- once(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;
69
- once(event: 'ready', listener: () => void): this;
70
- once(event: 'timeout', listener: () => void): this;
71
- prependListener(event: string, listener: (...args: any[]) => void): this;
72
- prependListener(event: 'close', listener: (hadError: boolean) => void): this;
73
- prependListener(event: 'connect', listener: () => void): this;
74
- prependListener(event: 'data', listener: (data: Buffer) => void): this;
75
- prependListener(event: 'drain', listener: () => void): this;
76
- prependListener(event: 'end', listener: () => void): this;
77
- prependListener(event: 'error', listener: (err: Error) => void): this;
78
- prependListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;
79
- prependListener(event: 'ready', listener: () => void): this;
80
- prependListener(event: 'timeout', listener: () => void): this;
81
- prependOnceListener(event: string, listener: (...args: any[]) => void): this;
82
- prependOnceListener(event: 'close', listener: (hadError: boolean) => void): this;
83
- prependOnceListener(event: 'connect', listener: () => void): this;
84
- prependOnceListener(event: 'data', listener: (data: Buffer) => void): this;
85
- prependOnceListener(event: 'drain', listener: () => void): this;
86
- prependOnceListener(event: 'end', listener: () => void): this;
87
- prependOnceListener(event: 'error', listener: (err: Error) => void): this;
88
- prependOnceListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;
89
- prependOnceListener(event: 'ready', listener: () => void): this;
90
- prependOnceListener(event: 'timeout', listener: () => void): this;
91
- setNoDelay(noDelay?: boolean): this;
92
- setTimeout(timeout: number, callback?: () => void): this;
93
- }
94
- declare class Socket extends Duplex {
95
- stack: Stack;
96
- options: SocketConstructorOpts;
97
- constructor(stack: Stack, options?: SocketConstructorOpts);
98
- }
99
- export default Socket;
@@ -1,31 +0,0 @@
1
- import LoopbackInterface, { LoopbackInterfaceOptions } from './interfaces/loopback-interface.js';
2
- import TapInterface, { TapInterfaceOptions } from './interfaces/tap-interface.js';
3
- import TunInterface, { TunInterfaceOptions } from './interfaces/tun-interface.js';
4
- import NetServer, { ServerOptions } from './server.js';
5
- import NetSocket, { TcpNetConnectOpts } from './socket.js';
6
- export declare function unwrap<T, Args extends any[]>(fn: (...args: Args) => [T, Error]): (...args: Args) => T;
7
- export type StackOptions = {};
8
- interface Stack {
9
- _init(options: StackOptions): void;
10
- }
11
- export interface Net {
12
- Socket: typeof NetSocket;
13
- Server: typeof NetServer;
14
- createServer(options?: ServerOptions): NetServer;
15
- createConnection(options: TcpNetConnectOpts, connectionListener?: () => void): NetSocket;
16
- createConnection(port: number, host?: string, connectionListener?: () => void): NetSocket;
17
- connect(options: TcpNetConnectOpts, connectionListener?: () => void): NetSocket;
18
- connect(port: number, host?: string, connectionListener?: () => void): NetSocket;
19
- }
20
- /**
21
- * A user-space TCP/IP network stack
22
- */
23
- declare class Stack {
24
- options: StackOptions;
25
- net: Net;
26
- constructor(options?: StackOptions);
27
- createLoopbackInterface(options: LoopbackInterfaceOptions): LoopbackInterface;
28
- createTapInterface(options: TapInterfaceOptions): TapInterface;
29
- createTunInterface(options: TunInterfaceOptions): TunInterface;
30
- }
31
- export default Stack;