react-native-nitro-net 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/android/CMakeLists.txt +5 -0
  3. package/android/build.gradle +1 -1
  4. package/lib/Driver.d.ts +1 -0
  5. package/lib/Driver.d.ts.map +1 -0
  6. package/lib/Driver.js +2 -5
  7. package/lib/Net.nitro.d.ts +1 -0
  8. package/lib/Net.nitro.d.ts.map +1 -0
  9. package/lib/Net.nitro.js +4 -7
  10. package/lib/http.d.ts +2 -1
  11. package/lib/http.d.ts.map +1 -0
  12. package/lib/http.js +56 -61
  13. package/lib/https.d.ts +1 -0
  14. package/lib/https.d.ts.map +1 -0
  15. package/lib/https.js +11 -53
  16. package/lib/index.d.ts +41 -198
  17. package/lib/index.d.ts.map +1 -0
  18. package/lib/index.js +11 -928
  19. package/lib/net.d.ts +197 -0
  20. package/lib/net.d.ts.map +1 -0
  21. package/lib/net.js +875 -0
  22. package/lib/tls.d.ts +2 -1
  23. package/lib/tls.d.ts.map +1 -0
  24. package/lib/tls.js +35 -51
  25. package/nitrogen/generated/android/RustCNet+autolinking.cmake +1 -1
  26. package/nitrogen/generated/android/RustCNet+autolinking.gradle +1 -1
  27. package/nitrogen/generated/android/RustCNetOnLoad.cpp +1 -1
  28. package/nitrogen/generated/android/RustCNetOnLoad.hpp +1 -1
  29. package/nitrogen/generated/android/c++/JFunc_void_double_std__shared_ptr_ArrayBuffer_.hpp +1 -1
  30. package/nitrogen/generated/android/c++/JHybridHttpParserSpec.cpp +1 -1
  31. package/nitrogen/generated/android/c++/JHybridHttpParserSpec.hpp +1 -1
  32. package/nitrogen/generated/android/c++/JHybridNetDriverSpec.cpp +1 -1
  33. package/nitrogen/generated/android/c++/JHybridNetDriverSpec.hpp +1 -1
  34. package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.cpp +1 -1
  35. package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.hpp +1 -1
  36. package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.cpp +1 -1
  37. package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.hpp +1 -1
  38. package/nitrogen/generated/android/c++/JNetConfig.hpp +1 -1
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/Func_void_double_std__shared_ptr_ArrayBuffer_.kt +1 -1
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridHttpParserSpec.kt +1 -1
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetDriverSpec.kt +1 -1
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetServerDriverSpec.kt +1 -1
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetSocketDriverSpec.kt +1 -1
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/NetConfig.kt +1 -1
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/RustCNetOnLoad.kt +1 -1
  46. package/nitrogen/generated/ios/RustCNet+autolinking.rb +1 -1
  47. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.cpp +1 -1
  48. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.hpp +1 -1
  49. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Umbrella.hpp +1 -1
  50. package/nitrogen/generated/ios/RustCNetAutolinking.mm +1 -1
  51. package/nitrogen/generated/ios/RustCNetAutolinking.swift +1 -1
  52. package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.cpp +1 -1
  53. package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.hpp +1 -1
  54. package/nitrogen/generated/ios/c++/HybridNetDriverSpecSwift.cpp +1 -1
  55. package/nitrogen/generated/ios/c++/HybridNetDriverSpecSwift.hpp +1 -1
  56. package/nitrogen/generated/ios/c++/HybridNetServerDriverSpecSwift.cpp +1 -1
  57. package/nitrogen/generated/ios/c++/HybridNetServerDriverSpecSwift.hpp +1 -1
  58. package/nitrogen/generated/ios/c++/HybridNetSocketDriverSpecSwift.cpp +1 -1
  59. package/nitrogen/generated/ios/c++/HybridNetSocketDriverSpecSwift.hpp +1 -1
  60. package/nitrogen/generated/ios/swift/Func_void_double_std__shared_ptr_ArrayBuffer_.swift +1 -1
  61. package/nitrogen/generated/ios/swift/HybridHttpParserSpec.swift +1 -1
  62. package/nitrogen/generated/ios/swift/HybridHttpParserSpec_cxx.swift +1 -1
  63. package/nitrogen/generated/ios/swift/HybridNetDriverSpec.swift +1 -1
  64. package/nitrogen/generated/ios/swift/HybridNetDriverSpec_cxx.swift +1 -1
  65. package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec.swift +1 -1
  66. package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec_cxx.swift +1 -1
  67. package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec.swift +1 -1
  68. package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec_cxx.swift +1 -1
  69. package/nitrogen/generated/ios/swift/NetConfig.swift +1 -1
  70. package/nitrogen/generated/shared/c++/HybridHttpParserSpec.cpp +1 -1
  71. package/nitrogen/generated/shared/c++/HybridHttpParserSpec.hpp +1 -1
  72. package/nitrogen/generated/shared/c++/HybridNetDriverSpec.cpp +1 -1
  73. package/nitrogen/generated/shared/c++/HybridNetDriverSpec.hpp +1 -1
  74. package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.cpp +1 -1
  75. package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.hpp +1 -1
  76. package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.cpp +1 -1
  77. package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.hpp +1 -1
  78. package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.cpp +1 -1
  79. package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.hpp +1 -1
  80. package/nitrogen/generated/shared/c++/NetConfig.hpp +1 -1
  81. package/package.json +7 -5
  82. package/src/http.ts +18 -12
  83. package/src/https.ts +0 -2
  84. package/src/index.ts +13 -1005
  85. package/src/net.ts +1005 -0
  86. package/src/tls.ts +1 -1
package/lib/net.d.ts ADDED
@@ -0,0 +1,197 @@
1
+ import { Duplex, DuplexOptions } from 'readable-stream';
2
+ import { EventEmitter } from 'eventemitter3';
3
+ import type { NetSocketDriver, NetConfig } from './Net.nitro';
4
+ declare function isIP(input: string): number;
5
+ declare function isIPv4(input: string): boolean;
6
+ declare function isIPv6(input: string): boolean;
7
+ declare function isVerbose(): boolean;
8
+ declare function setVerbose(enabled: boolean): void;
9
+ declare function getDefaultAutoSelectFamily(): number;
10
+ declare function setDefaultAutoSelectFamily(family: number): void;
11
+ /**
12
+ * Initialize the network module with custom configuration.
13
+ * Must be called before any socket/server operations, or the config will be ignored.
14
+ *
15
+ * @param config Configuration options
16
+ * @param config.workerThreads Number of worker threads (0 = use CPU core count)
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { initWithConfig } from 'react-native-nitro-net';
21
+ *
22
+ * // Initialize with 4 worker threads
23
+ * initWithConfig({ workerThreads: 4 });
24
+ * ```
25
+ */
26
+ declare function initWithConfig(config: NetConfig): void;
27
+ export interface SocketAddressOptions {
28
+ address?: string;
29
+ family?: 'ipv4' | 'ipv6';
30
+ port?: number;
31
+ flowlabel?: number;
32
+ }
33
+ export declare class SocketAddress {
34
+ readonly address: string;
35
+ readonly family: 'ipv4' | 'ipv6';
36
+ readonly port: number;
37
+ readonly flowlabel: number;
38
+ constructor(options?: SocketAddressOptions);
39
+ /**
40
+ * Attempts to parse a string containing a socket address.
41
+ * Returns a SocketAddress if successful, or undefined if not.
42
+ *
43
+ * Supported formats:
44
+ * - `ip:port` (e.g., `127.0.0.1:8080`, `[::1]:8080`)
45
+ * - `ip` only (port defaults to 0)
46
+ */
47
+ static parse(input: string): SocketAddress | undefined;
48
+ }
49
+ export interface BlockListRule {
50
+ type: 'address' | 'range' | 'subnet';
51
+ address?: string;
52
+ start?: string;
53
+ end?: string;
54
+ prefix?: number;
55
+ family: 'ipv4' | 'ipv6';
56
+ }
57
+ export declare class BlockList {
58
+ private _rules;
59
+ /** Returns an array of rules added to the blocklist. */
60
+ get rules(): BlockListRule[];
61
+ addAddress(address: string, family?: 'ipv4' | 'ipv6'): void;
62
+ addRange(start: string, end: string, family?: 'ipv4' | 'ipv6'): void;
63
+ addSubnet(net: string, prefix: number, family?: 'ipv4' | 'ipv6'): void;
64
+ check(address: string, family?: 'ipv4' | 'ipv6'): boolean;
65
+ /**
66
+ * Serializes the BlockList to a JSON-compatible format.
67
+ */
68
+ toJSON(): BlockListRule[];
69
+ /**
70
+ * Creates a BlockList from a JSON array of rules.
71
+ */
72
+ static fromJSON(json: BlockListRule[]): BlockList;
73
+ /**
74
+ * Checks if a given value is a BlockList instance.
75
+ */
76
+ static isBlockList(value: unknown): value is BlockList;
77
+ }
78
+ export interface SocketOptions extends DuplexOptions {
79
+ fd?: any;
80
+ allowHalfOpen?: boolean;
81
+ readable?: boolean;
82
+ writable?: boolean;
83
+ path?: string;
84
+ socketDriver?: NetSocketDriver;
85
+ remoteFamily?: string;
86
+ }
87
+ export declare class Socket extends Duplex {
88
+ protected _driver: NetSocketDriver | undefined;
89
+ connecting: boolean;
90
+ protected _connected: boolean;
91
+ protected _hadError: boolean;
92
+ remoteAddress?: string;
93
+ remotePort?: number;
94
+ remoteFamily?: string;
95
+ localAddress?: string;
96
+ localPort?: number;
97
+ bytesRead: number;
98
+ bytesWritten: number;
99
+ autoSelectFamilyAttemptedAddresses: string[];
100
+ private _autoSelectFamily;
101
+ private _timeout;
102
+ get localFamily(): string;
103
+ get readyState(): string;
104
+ get pending(): boolean;
105
+ constructor(options?: SocketOptions);
106
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
107
+ private _setupEvents;
108
+ private _updateAddresses;
109
+ address(): {
110
+ port: number;
111
+ family: string;
112
+ address: string;
113
+ } | null;
114
+ connect(options: any, connectionListener?: () => void): this;
115
+ private _connect;
116
+ private _connectUnix;
117
+ end(cb?: () => void): this;
118
+ end(chunk: any, cb?: () => void): this;
119
+ end(chunk: any, encoding: string, cb?: () => void): this;
120
+ _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
121
+ _read(size: number): void;
122
+ _final(callback: (error?: Error | null) => void): void;
123
+ destroy(reason?: Error): this;
124
+ _destroy(err: Error | null, callback: (error: Error | null) => void): void;
125
+ setTimeout(msecs: number, callback?: () => void): this;
126
+ /**
127
+ * Pause the reading of data. That is, 'data' events will not be emitted.
128
+ * Useful to throttle back an upload.
129
+ */
130
+ pause(): this;
131
+ /**
132
+ * Resume reading after a call to pause().
133
+ */
134
+ resume(): this;
135
+ /**
136
+ * Enable/disable the use of Nagle's algorithm.
137
+ */
138
+ setNoDelay(noDelay?: boolean): this;
139
+ setKeepAlive(enable?: boolean, initialDelay?: number): this;
140
+ ref(): this;
141
+ unref(): this;
142
+ /**
143
+ * Set the encoding for the socket as a Readable Stream.
144
+ * Use 'utf8', 'hex', etc.
145
+ */
146
+ setEncoding(encoding: BufferEncoding): this;
147
+ get timeout(): number;
148
+ get bufferSize(): number;
149
+ resetAndDestroy(): this;
150
+ }
151
+ export declare class Server extends EventEmitter {
152
+ private _driver;
153
+ private _sockets;
154
+ private _connections;
155
+ private _maxConnections;
156
+ private _dropMaxConnection;
157
+ get maxConnections(): number;
158
+ set maxConnections(value: number);
159
+ get dropMaxConnection(): boolean;
160
+ set dropMaxConnection(value: boolean);
161
+ get listening(): boolean;
162
+ constructor(options?: any, connectionListener?: (socket: Socket) => void);
163
+ ref(): this;
164
+ unref(): this;
165
+ [Symbol.asyncDispose](): Promise<void>;
166
+ listen(port?: any, host?: any, backlog?: any, callback?: any): this;
167
+ close(callback?: (err?: Error) => void): this;
168
+ address(): {
169
+ port: number;
170
+ family: string;
171
+ address: string;
172
+ } | null;
173
+ getConnections(cb: (err: Error | null, count: number) => void): void;
174
+ }
175
+ export declare function createConnection(options: any, connectionListener?: () => void): Socket;
176
+ export declare const connect: typeof createConnection;
177
+ export declare function createServer(options?: any, connectionListener?: (socket: Socket) => void): Server;
178
+ export { isIP, isIPv4, isIPv6, getDefaultAutoSelectFamily, setDefaultAutoSelectFamily, isVerbose, setVerbose, initWithConfig, };
179
+ export type { NetConfig };
180
+ declare const _default: {
181
+ Socket: typeof Socket;
182
+ Server: typeof Server;
183
+ SocketAddress: typeof SocketAddress;
184
+ BlockList: typeof BlockList;
185
+ createConnection: typeof createConnection;
186
+ createServer: typeof createServer;
187
+ connect: typeof createConnection;
188
+ isIP: typeof isIP;
189
+ isIPv4: typeof isIPv4;
190
+ isIPv6: typeof isIPv6;
191
+ getDefaultAutoSelectFamily: typeof getDefaultAutoSelectFamily;
192
+ setDefaultAutoSelectFamily: typeof setDefaultAutoSelectFamily;
193
+ setVerbose: typeof setVerbose;
194
+ initWithConfig: typeof initWithConfig;
195
+ };
196
+ export default _default;
197
+ //# sourceMappingURL=net.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../src/net.ts"],"names":[],"mappings":"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"}