react-native-nitro-net 0.2.0 → 0.3.1

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 (83) hide show
  1. package/README.md +70 -12
  2. package/android/libs/arm64-v8a/librust_c_net.so +0 -0
  3. package/android/libs/armeabi-v7a/librust_c_net.so +0 -0
  4. package/android/libs/x86/librust_c_net.so +0 -0
  5. package/android/libs/x86_64/librust_c_net.so +0 -0
  6. package/cpp/HybridHttpParser.hpp +67 -0
  7. package/cpp/HybridNetDriver.hpp +6 -0
  8. package/cpp/HybridNetServerDriver.hpp +7 -0
  9. package/cpp/HybridNetSocketDriver.hpp +27 -0
  10. package/cpp/NetBindings.hpp +15 -0
  11. package/ios/Frameworks/RustCNet.xcframework/Info.plist +5 -5
  12. package/ios/Frameworks/RustCNet.xcframework/ios-arm64/RustCNet.framework/RustCNet +0 -0
  13. package/ios/Frameworks/RustCNet.xcframework/ios-arm64_x86_64-simulator/RustCNet.framework/RustCNet +0 -0
  14. package/lib/Driver.d.ts +1 -0
  15. package/lib/Driver.d.ts.map +1 -0
  16. package/lib/Driver.js +2 -5
  17. package/lib/Net.nitro.d.ts +20 -0
  18. package/lib/Net.nitro.d.ts.map +1 -0
  19. package/lib/Net.nitro.js +4 -7
  20. package/lib/http.d.ts +204 -0
  21. package/lib/http.d.ts.map +1 -0
  22. package/lib/http.js +1126 -0
  23. package/lib/https.d.ts +25 -0
  24. package/lib/https.d.ts.map +1 -0
  25. package/lib/https.js +102 -0
  26. package/lib/index.d.ts +41 -160
  27. package/lib/index.d.ts.map +1 -0
  28. package/lib/index.js +11 -821
  29. package/lib/net.d.ts +197 -0
  30. package/lib/net.d.ts.map +1 -0
  31. package/lib/net.js +875 -0
  32. package/lib/tls.d.ts +23 -1
  33. package/lib/tls.d.ts.map +1 -0
  34. package/lib/tls.js +108 -54
  35. package/nitrogen/generated/android/RustCNet+autolinking.cmake +2 -0
  36. package/nitrogen/generated/android/RustCNetOnLoad.cpp +2 -0
  37. package/nitrogen/generated/android/c++/JHybridHttpParserSpec.cpp +54 -0
  38. package/nitrogen/generated/android/c++/JHybridHttpParserSpec.hpp +65 -0
  39. package/nitrogen/generated/android/c++/JHybridNetDriverSpec.cpp +9 -0
  40. package/nitrogen/generated/android/c++/JHybridNetDriverSpec.hpp +1 -0
  41. package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.cpp +4 -0
  42. package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.hpp +1 -0
  43. package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.cpp +9 -0
  44. package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.hpp +2 -0
  45. package/nitrogen/generated/android/c++/JNetConfig.hpp +7 -3
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridHttpParserSpec.kt +58 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetDriverSpec.kt +4 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetServerDriverSpec.kt +4 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetSocketDriverSpec.kt +8 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/NetConfig.kt +6 -3
  51. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.cpp +17 -0
  52. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.hpp +26 -0
  53. package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Umbrella.hpp +5 -0
  54. package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.cpp +11 -0
  55. package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.hpp +79 -0
  56. package/nitrogen/generated/ios/c++/HybridNetDriverSpecSwift.hpp +11 -0
  57. package/nitrogen/generated/ios/c++/HybridNetServerDriverSpecSwift.hpp +6 -0
  58. package/nitrogen/generated/ios/c++/HybridNetSocketDriverSpecSwift.hpp +14 -0
  59. package/nitrogen/generated/ios/swift/HybridHttpParserSpec.swift +56 -0
  60. package/nitrogen/generated/ios/swift/HybridHttpParserSpec_cxx.swift +131 -0
  61. package/nitrogen/generated/ios/swift/HybridNetDriverSpec.swift +1 -0
  62. package/nitrogen/generated/ios/swift/HybridNetDriverSpec_cxx.swift +15 -0
  63. package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec.swift +1 -0
  64. package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec_cxx.swift +11 -0
  65. package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec.swift +2 -0
  66. package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec_cxx.swift +36 -0
  67. package/nitrogen/generated/ios/swift/NetConfig.swift +19 -1
  68. package/nitrogen/generated/shared/c++/HybridHttpParserSpec.cpp +21 -0
  69. package/nitrogen/generated/shared/c++/HybridHttpParserSpec.hpp +63 -0
  70. package/nitrogen/generated/shared/c++/HybridNetDriverSpec.cpp +1 -0
  71. package/nitrogen/generated/shared/c++/HybridNetDriverSpec.hpp +4 -0
  72. package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.cpp +1 -0
  73. package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.hpp +1 -0
  74. package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.cpp +2 -0
  75. package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.hpp +2 -0
  76. package/nitrogen/generated/shared/c++/NetConfig.hpp +6 -2
  77. package/package.json +9 -7
  78. package/src/Net.nitro.ts +17 -0
  79. package/src/http.ts +1303 -0
  80. package/src/https.ts +125 -0
  81. package/src/index.ts +13 -874
  82. package/src/net.ts +1005 -0
  83. package/src/tls.ts +82 -6
package/src/https.ts ADDED
@@ -0,0 +1,125 @@
1
+ import * as http from './http'
2
+ import * as tls from './tls'
3
+ import { IncomingMessage } from './http'
4
+
5
+ // ========== Server ==========
6
+
7
+ export class Server extends tls.Server {
8
+ private _httpConnections = new Set<any>();
9
+ public maxHeaderSize: number = 16384;
10
+ public maxRequestsPerSocket: number = 0;
11
+ public headersTimeout: number = 60000;
12
+ public requestTimeout: number = 300000;
13
+ public keepAliveTimeout: number = 5000;
14
+
15
+ constructor(options?: any, requestListener?: (req: http.IncomingMessage, res: http.ServerResponse) => void) {
16
+ if (typeof options === 'function') {
17
+ requestListener = options;
18
+ options = {};
19
+ }
20
+ super(options);
21
+
22
+ if (requestListener) {
23
+ this.on('request', requestListener);
24
+ }
25
+
26
+ // Initialize HTTP connection setup for secure connections
27
+ this.on('secureConnection', (socket: any) => {
28
+ // @ts-ignore - access internal http logic
29
+ (http.Server.prototype as any)._setupHttpConnection.call(this, socket);
30
+ });
31
+ }
32
+
33
+ public setTimeout(ms: number, callback?: () => void): this {
34
+ // @ts-ignore - access netServer via super's internal or cast
35
+ (this as any)._netServer.setTimeout(ms, callback);
36
+ return this;
37
+ }
38
+ }
39
+
40
+ export function createServer(options?: any, requestListener?: (req: http.IncomingMessage, res: http.ServerResponse) => void): Server {
41
+ return new Server(options, requestListener);
42
+ }
43
+
44
+ // ========== ClientRequest ==========
45
+
46
+ export class ClientRequest extends http.ClientRequest {
47
+ constructor(options: any, callback?: (res: http.IncomingMessage) => void) {
48
+ if (typeof options === 'string') {
49
+ options = new URL(options);
50
+ }
51
+ if (options instanceof URL) {
52
+ options = {
53
+ protocol: options.protocol,
54
+ hostname: options.hostname,
55
+ path: options.pathname + options.search,
56
+ port: options.port ? parseInt(options.port) : 443
57
+ };
58
+ }
59
+ options.protocol = 'https:';
60
+ super(options, callback);
61
+ }
62
+ }
63
+
64
+ export function request(
65
+ urlOrOptions: string | URL | http.RequestOptions,
66
+ optionsOrCallback?: http.RequestOptions | ((res: http.IncomingMessage) => void),
67
+ callback?: (res: http.IncomingMessage) => void
68
+ ): ClientRequest {
69
+ let opts: http.RequestOptions = {};
70
+ let cb: ((res: http.IncomingMessage) => void) | undefined = callback;
71
+
72
+ if (typeof urlOrOptions === 'string') {
73
+ const url = new URL(urlOrOptions);
74
+ opts = {
75
+ protocol: url.protocol,
76
+ hostname: url.hostname,
77
+ path: url.pathname + url.search,
78
+ port: url.port ? parseInt(url.port) : 443
79
+ };
80
+ } else if (urlOrOptions instanceof URL) {
81
+ opts = {
82
+ protocol: urlOrOptions.protocol,
83
+ hostname: urlOrOptions.hostname,
84
+ path: urlOrOptions.pathname + urlOrOptions.search,
85
+ port: urlOrOptions.port ? parseInt(urlOrOptions.port) : 443
86
+ };
87
+ } else {
88
+ opts = { ...urlOrOptions };
89
+ }
90
+
91
+ if (typeof optionsOrCallback === 'function') {
92
+ cb = optionsOrCallback;
93
+ } else if (optionsOrCallback) {
94
+ opts = { ...opts, ...optionsOrCallback };
95
+ }
96
+
97
+ opts.protocol = 'https:';
98
+ return new ClientRequest(opts, cb);
99
+ }
100
+
101
+ export function get(
102
+ urlOrOptions: string | URL | http.RequestOptions,
103
+ optionsOrCallback?: http.RequestOptions | ((res: http.IncomingMessage) => void),
104
+ callback?: (res: http.IncomingMessage) => void
105
+ ): ClientRequest {
106
+ const req = request(urlOrOptions, optionsOrCallback, callback);
107
+ req.end();
108
+ return req;
109
+ }
110
+
111
+ // ========== Agent ==========
112
+
113
+ export class Agent extends http.Agent {
114
+ constructor(options?: any) {
115
+ super(options);
116
+ }
117
+ }
118
+
119
+ export const globalAgent = new Agent({
120
+ keepAlive: true,
121
+ scheduling: 'lifo',
122
+ timeout: 5000,
123
+ });
124
+
125
+ export { IncomingMessage };