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.
- package/README.md +1 -1
- package/android/CMakeLists.txt +5 -0
- package/android/build.gradle +1 -1
- package/lib/Driver.d.ts +1 -0
- package/lib/Driver.d.ts.map +1 -0
- package/lib/Driver.js +2 -5
- package/lib/Net.nitro.d.ts +1 -0
- package/lib/Net.nitro.d.ts.map +1 -0
- package/lib/Net.nitro.js +4 -7
- package/lib/http.d.ts +2 -1
- package/lib/http.d.ts.map +1 -0
- package/lib/http.js +56 -61
- package/lib/https.d.ts +1 -0
- package/lib/https.d.ts.map +1 -0
- package/lib/https.js +11 -53
- package/lib/index.d.ts +41 -198
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -928
- package/lib/net.d.ts +197 -0
- package/lib/net.d.ts.map +1 -0
- package/lib/net.js +875 -0
- package/lib/tls.d.ts +2 -1
- package/lib/tls.d.ts.map +1 -0
- package/lib/tls.js +35 -51
- package/nitrogen/generated/android/RustCNet+autolinking.cmake +1 -1
- package/nitrogen/generated/android/RustCNet+autolinking.gradle +1 -1
- package/nitrogen/generated/android/RustCNetOnLoad.cpp +1 -1
- package/nitrogen/generated/android/RustCNetOnLoad.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double_std__shared_ptr_ArrayBuffer_.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridHttpParserSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridHttpParserSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetDriverSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetDriverSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetServerDriverSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNetSocketDriverSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JNetConfig.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/Func_void_double_std__shared_ptr_ArrayBuffer_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridHttpParserSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetDriverSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetServerDriverSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/HybridNetSocketDriverSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/NetConfig.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/net/RustCNetOnLoad.kt +1 -1
- package/nitrogen/generated/ios/RustCNet+autolinking.rb +1 -1
- package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Bridge.hpp +1 -1
- package/nitrogen/generated/ios/RustCNet-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/RustCNetAutolinking.mm +1 -1
- package/nitrogen/generated/ios/RustCNetAutolinking.swift +1 -1
- package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridHttpParserSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetDriverSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetDriverSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetServerDriverSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetServerDriverSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetSocketDriverSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridNetSocketDriverSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/swift/Func_void_double_std__shared_ptr_ArrayBuffer_.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridHttpParserSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridHttpParserSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetDriverSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetDriverSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetServerDriverSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNetSocketDriverSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/NetConfig.swift +1 -1
- package/nitrogen/generated/shared/c++/HybridHttpParserSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridHttpParserSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetDriverSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetDriverSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetServerDriverSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNetSocketDriverSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/NetConfig.hpp +1 -1
- package/package.json +7 -5
- package/src/http.ts +18 -12
- package/src/https.ts +0 -2
- package/src/index.ts +13 -1005
- package/src/net.ts +1005 -0
- package/src/tls.ts +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Ultra-high-performance networking to React Native by combining a memory-safe Rus
|
|
|
4
4
|
|
|
5
5
|
[]()
|
|
6
6
|
[]()
|
|
7
|
-
[]()
|
|
8
8
|
[中文文档](./README_zh.md)
|
|
9
9
|
|
|
10
10
|
## Features
|
package/android/CMakeLists.txt
CHANGED
|
@@ -27,3 +27,8 @@ target_link_libraries(${PACKAGE_NAME}
|
|
|
27
27
|
rust_c_net
|
|
28
28
|
log # For android logging
|
|
29
29
|
)
|
|
30
|
+
|
|
31
|
+
# Android 15 16KB page size alignment
|
|
32
|
+
if(ANDROID_ABI STREQUAL "arm64-v8a" OR ANDROID_ABI STREQUAL "x86_64")
|
|
33
|
+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=16384")
|
|
34
|
+
endif()
|
package/android/build.gradle
CHANGED
|
@@ -23,7 +23,7 @@ android {
|
|
|
23
23
|
externalNativeBuild {
|
|
24
24
|
cmake {
|
|
25
25
|
cppFlags "-fexceptions", "-frtti", "-std=c++20"
|
|
26
|
-
arguments "-DANDROID_STL=c++_shared"
|
|
26
|
+
arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
27
27
|
abiFilters (*reactNativeArchitectures())
|
|
28
28
|
}
|
|
29
29
|
}
|
package/lib/Driver.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../src/Driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,eAAO,MAAM,MAAM,WAA0D,CAAA"}
|
package/lib/Driver.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Driver = void 0;
|
|
4
|
-
const react_native_nitro_modules_1 = require("react-native-nitro-modules");
|
|
5
|
-
exports.Driver = react_native_nitro_modules_1.NitroModules.createHybridObject('NetDriver');
|
|
1
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
2
|
+
export const Driver = NitroModules.createHybridObject('NetDriver');
|
package/lib/Net.nitro.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Net.nitro.d.ts","sourceRoot":"","sources":["../src/Net.nitro.ts"],"names":[],"mappings":"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"}
|
package/lib/Net.nitro.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NetServerEvent = exports.NetSocketEvent = void 0;
|
|
4
|
-
var NetSocketEvent;
|
|
1
|
+
export var NetSocketEvent;
|
|
5
2
|
(function (NetSocketEvent) {
|
|
6
3
|
NetSocketEvent[NetSocketEvent["CONNECT"] = 1] = "CONNECT";
|
|
7
4
|
NetSocketEvent[NetSocketEvent["DATA"] = 2] = "DATA";
|
|
@@ -13,11 +10,11 @@ var NetSocketEvent;
|
|
|
13
10
|
NetSocketEvent[NetSocketEvent["SESSION"] = 9] = "SESSION";
|
|
14
11
|
NetSocketEvent[NetSocketEvent["KEYLOG"] = 10] = "KEYLOG";
|
|
15
12
|
NetSocketEvent[NetSocketEvent["OCSP"] = 11] = "OCSP";
|
|
16
|
-
})(NetSocketEvent || (
|
|
17
|
-
var NetServerEvent;
|
|
13
|
+
})(NetSocketEvent || (NetSocketEvent = {}));
|
|
14
|
+
export var NetServerEvent;
|
|
18
15
|
(function (NetServerEvent) {
|
|
19
16
|
NetServerEvent[NetServerEvent["CONNECTION"] = 6] = "CONNECTION";
|
|
20
17
|
NetServerEvent[NetServerEvent["ERROR"] = 3] = "ERROR";
|
|
21
18
|
NetServerEvent[NetServerEvent["CLOSE"] = 4] = "CLOSE";
|
|
22
19
|
NetServerEvent[NetServerEvent["DEBUG"] = 9] = "DEBUG";
|
|
23
|
-
})(NetServerEvent || (
|
|
20
|
+
})(NetServerEvent || (NetServerEvent = {}));
|
package/lib/http.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Writable, Readable } from 'readable-stream';
|
|
2
2
|
import { EventEmitter } from 'eventemitter3';
|
|
3
|
-
import { Socket } from './
|
|
3
|
+
import { Socket } from './net';
|
|
4
4
|
export declare const STATUS_CODES: Record<number, string>;
|
|
5
5
|
export declare const METHODS: string[];
|
|
6
6
|
export declare class IncomingMessage extends Readable {
|
|
@@ -201,3 +201,4 @@ export declare function createServer(requestListener?: (req: IncomingMessage, re
|
|
|
201
201
|
export declare function createServer(options: ServerOptions, requestListener?: (req: IncomingMessage, res: ServerResponse) => void): Server;
|
|
202
202
|
export declare function request(urlOrOptions: string | URL | RequestOptions, optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void), callback?: (res: IncomingMessage) => void): ClientRequest;
|
|
203
203
|
export declare function get(urlOrOptions: string | URL | RequestOptions, optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void), callback?: (res: IncomingMessage) => void): ClientRequest;
|
|
204
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/lib/http.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const readable_stream_1 = require("readable-stream");
|
|
8
|
-
const eventemitter3_1 = require("eventemitter3");
|
|
9
|
-
const Driver_1 = require("./Driver");
|
|
10
|
-
const index_1 = require("./index");
|
|
11
|
-
const tls_1 = require("./tls");
|
|
12
|
-
const react_native_nitro_buffer_1 = require("react-native-nitro-buffer");
|
|
1
|
+
import { Writable, Readable } from 'readable-stream';
|
|
2
|
+
import { EventEmitter } from 'eventemitter3';
|
|
3
|
+
import { Driver } from './Driver';
|
|
4
|
+
import { Socket, isVerbose } from './net';
|
|
5
|
+
import { TLSSocket } from './tls';
|
|
6
|
+
import { Buffer } from 'react-native-nitro-buffer';
|
|
13
7
|
function debugLog(message) {
|
|
14
|
-
if (
|
|
8
|
+
if (isVerbose()) {
|
|
15
9
|
const timestamp = new Date().toISOString().split('T')[1].split('Z')[0];
|
|
16
|
-
|
|
10
|
+
debugLog(`[HTTP DEBUG ${timestamp}] ${message}`);
|
|
17
11
|
}
|
|
18
12
|
}
|
|
19
13
|
// ========== STATUS_CODES ==========
|
|
20
|
-
|
|
14
|
+
export const STATUS_CODES = {
|
|
21
15
|
100: 'Continue',
|
|
22
16
|
101: 'Switching Protocols',
|
|
23
17
|
102: 'Processing',
|
|
@@ -76,7 +70,7 @@ exports.STATUS_CODES = {
|
|
|
76
70
|
510: 'Not Extended',
|
|
77
71
|
511: 'Network Authentication Required',
|
|
78
72
|
};
|
|
79
|
-
|
|
73
|
+
export const METHODS = [
|
|
80
74
|
'ACL', 'BIND', 'CHECKOUT', 'CONNECT', 'COPY', 'DELETE', 'GET', 'HEAD',
|
|
81
75
|
'LINK', 'LOCK', 'M-SEARCH', 'MERGE', 'MKACTIVITY', 'MKCALENDAR', 'MKCOL',
|
|
82
76
|
'MOVE', 'NOTIFY', 'OPTIONS', 'PATCH', 'POST', 'PROPFIND', 'PROPPATCH',
|
|
@@ -84,7 +78,7 @@ exports.METHODS = [
|
|
|
84
78
|
'TRACE', 'UNBIND', 'UNLINK', 'UNLOCK', 'UNSUBSCRIBE'
|
|
85
79
|
];
|
|
86
80
|
// ========== IncomingMessage ==========
|
|
87
|
-
class IncomingMessage extends
|
|
81
|
+
export class IncomingMessage extends Readable {
|
|
88
82
|
constructor(socket) {
|
|
89
83
|
// @ts-ignore
|
|
90
84
|
super({ autoDestroy: false });
|
|
@@ -117,9 +111,8 @@ class IncomingMessage extends readable_stream_1.Readable {
|
|
|
117
111
|
this.socket.setKeepAlive(enable, initialDelay);
|
|
118
112
|
}
|
|
119
113
|
}
|
|
120
|
-
exports.IncomingMessage = IncomingMessage;
|
|
121
114
|
// ========== OutgoingMessage ==========
|
|
122
|
-
class OutgoingMessage extends
|
|
115
|
+
export class OutgoingMessage extends Writable {
|
|
123
116
|
constructor() {
|
|
124
117
|
// @ts-ignore - disable autoDestroy to prevent socket from being destroyed when stream ends
|
|
125
118
|
super({ autoDestroy: false });
|
|
@@ -214,7 +207,7 @@ class OutgoingMessage extends readable_stream_1.Writable {
|
|
|
214
207
|
this.headersSent = true;
|
|
215
208
|
const headerStr = this._renderHeaders(firstLine);
|
|
216
209
|
debugLog(`OutgoingMessage._sendHeaders: writing ${headerStr.length} bytes to socket (socket=${!!this.socket})`);
|
|
217
|
-
this.socket.write(
|
|
210
|
+
this.socket.write(Buffer.from(headerStr));
|
|
218
211
|
}
|
|
219
212
|
_write(chunk, encoding, callback) {
|
|
220
213
|
if (!this.socket) {
|
|
@@ -222,15 +215,15 @@ class OutgoingMessage extends readable_stream_1.Writable {
|
|
|
222
215
|
return;
|
|
223
216
|
}
|
|
224
217
|
if (this.chunkedEncoding) {
|
|
225
|
-
const len = typeof chunk === 'string' ?
|
|
218
|
+
const len = typeof chunk === 'string' ? Buffer.byteLength(chunk, encoding) : chunk.length;
|
|
226
219
|
const header = len.toString(16) + '\r\n';
|
|
227
|
-
this.socket.write(
|
|
220
|
+
this.socket.write(Buffer.from(header));
|
|
228
221
|
// Note: We don't return the backpressure status here because we are doing multiple writes
|
|
229
222
|
// The final write determines the callback.
|
|
230
223
|
this.socket.write(chunk, encoding, (err) => {
|
|
231
224
|
if (err)
|
|
232
225
|
return callback(err);
|
|
233
|
-
this.socket.write(
|
|
226
|
+
this.socket.write(Buffer.from('\r\n'), undefined, callback);
|
|
234
227
|
});
|
|
235
228
|
}
|
|
236
229
|
else {
|
|
@@ -257,7 +250,7 @@ class OutgoingMessage extends readable_stream_1.Writable {
|
|
|
257
250
|
}
|
|
258
251
|
}
|
|
259
252
|
terminator += '\r\n';
|
|
260
|
-
this.socket.write(
|
|
253
|
+
this.socket.write(Buffer.from(terminator), undefined, (err) => {
|
|
261
254
|
callback(err);
|
|
262
255
|
});
|
|
263
256
|
}
|
|
@@ -286,9 +279,8 @@ class OutgoingMessage extends readable_stream_1.Writable {
|
|
|
286
279
|
this.socket?.setKeepAlive(enable, initialDelay);
|
|
287
280
|
}
|
|
288
281
|
}
|
|
289
|
-
exports.OutgoingMessage = OutgoingMessage;
|
|
290
282
|
// ========== ServerResponse ==========
|
|
291
|
-
class ServerResponse extends OutgoingMessage {
|
|
283
|
+
export class ServerResponse extends OutgoingMessage {
|
|
292
284
|
constructor(socket) {
|
|
293
285
|
super();
|
|
294
286
|
this.statusCode = 200;
|
|
@@ -316,7 +308,7 @@ class ServerResponse extends OutgoingMessage {
|
|
|
316
308
|
_sendResponseHeaders() {
|
|
317
309
|
if (this.headersSent)
|
|
318
310
|
return;
|
|
319
|
-
const firstLine = `HTTP/1.1 ${this.statusCode} ${this.statusMessage ||
|
|
311
|
+
const firstLine = `HTTP/1.1 ${this.statusCode} ${this.statusMessage || STATUS_CODES[this.statusCode] || 'OK'}`;
|
|
320
312
|
this._sendHeaders(firstLine);
|
|
321
313
|
}
|
|
322
314
|
_write(chunk, encoding, callback) {
|
|
@@ -332,7 +324,7 @@ class ServerResponse extends OutgoingMessage {
|
|
|
332
324
|
// If we have a single chunk and no headers sent yet, we can add Content-Length
|
|
333
325
|
// to avoid chunked encoding for simple responses.
|
|
334
326
|
if (chunk) {
|
|
335
|
-
const len = typeof chunk === 'string' ?
|
|
327
|
+
const len = typeof chunk === 'string' ? Buffer.byteLength(chunk, encoding) : chunk.length;
|
|
336
328
|
this.setHeader('Content-Length', len);
|
|
337
329
|
}
|
|
338
330
|
else {
|
|
@@ -348,8 +340,7 @@ class ServerResponse extends OutgoingMessage {
|
|
|
348
340
|
return this;
|
|
349
341
|
}
|
|
350
342
|
}
|
|
351
|
-
|
|
352
|
-
class Server extends eventemitter3_1.EventEmitter {
|
|
343
|
+
export class Server extends EventEmitter {
|
|
353
344
|
constructor(options, requestListener) {
|
|
354
345
|
super();
|
|
355
346
|
this._httpConnections = new Set();
|
|
@@ -359,7 +350,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
359
350
|
this.requestTimeout = 300000;
|
|
360
351
|
this.keepAliveTimeout = 5000;
|
|
361
352
|
// Use net.Server from index.ts
|
|
362
|
-
const { Server: NetServer } = require('./
|
|
353
|
+
const { Server: NetServer } = require('./net');
|
|
363
354
|
this._netServer = new NetServer();
|
|
364
355
|
let listener;
|
|
365
356
|
if (typeof options === 'function') {
|
|
@@ -393,7 +384,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
393
384
|
this._httpConnections.add(socket);
|
|
394
385
|
let req = null;
|
|
395
386
|
let res = null;
|
|
396
|
-
const parser =
|
|
387
|
+
const parser = Driver.createHttpParser(0); // 0 = Request mode
|
|
397
388
|
// @ts-ignore
|
|
398
389
|
let bodyBytesRead = 0;
|
|
399
390
|
// @ts-ignore
|
|
@@ -433,7 +424,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
433
424
|
socket.removeListener('data', onData);
|
|
434
425
|
debugLog(`Server: CONNECT request received, emitting 'connect' event`);
|
|
435
426
|
// TODO: retrieve any remaining body from parser as 'head'
|
|
436
|
-
const head =
|
|
427
|
+
const head = Buffer.alloc(0);
|
|
437
428
|
if (this.listenerCount('connect') > 0) {
|
|
438
429
|
this.emit('connect', req, socket, head);
|
|
439
430
|
}
|
|
@@ -460,7 +451,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
460
451
|
const upgrade = req.headers['upgrade'];
|
|
461
452
|
if (upgrade && this.listenerCount('upgrade') > 0) {
|
|
462
453
|
debugLog(`Server: Upgrade request received, emitting 'upgrade' event`);
|
|
463
|
-
this.emit('upgrade', req, socket,
|
|
454
|
+
this.emit('upgrade', req, socket, Buffer.alloc(0));
|
|
464
455
|
return;
|
|
465
456
|
}
|
|
466
457
|
const expect = req.headers['expect'];
|
|
@@ -469,7 +460,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
469
460
|
this.emit('checkContinue', req, res);
|
|
470
461
|
}
|
|
471
462
|
else {
|
|
472
|
-
socket.write(
|
|
463
|
+
socket.write(Buffer.from('HTTP/1.1 100 Continue\r\n\r\n'));
|
|
473
464
|
this.emit('request', req, res);
|
|
474
465
|
}
|
|
475
466
|
}
|
|
@@ -479,7 +470,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
479
470
|
}
|
|
480
471
|
}
|
|
481
472
|
if (req && parsed.body && parsed.body.length > 0) {
|
|
482
|
-
req.push(
|
|
473
|
+
req.push(Buffer.from(parsed.body));
|
|
483
474
|
}
|
|
484
475
|
if (req && parsed.complete) {
|
|
485
476
|
req.complete = true;
|
|
@@ -502,7 +493,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
502
493
|
if (!result || result === '' || result.startsWith('ERROR:')) {
|
|
503
494
|
// Empty result (partial) or error - exit loop
|
|
504
495
|
if (result && result.startsWith('ERROR:')) {
|
|
505
|
-
|
|
496
|
+
debugLog(`[HTTP] Server: Parser error: ${result}`);
|
|
506
497
|
}
|
|
507
498
|
break;
|
|
508
499
|
}
|
|
@@ -553,8 +544,7 @@ class Server extends eventemitter3_1.EventEmitter {
|
|
|
553
544
|
return this;
|
|
554
545
|
}
|
|
555
546
|
}
|
|
556
|
-
|
|
557
|
-
class Agent extends eventemitter3_1.EventEmitter {
|
|
547
|
+
export class Agent extends EventEmitter {
|
|
558
548
|
/**
|
|
559
549
|
* Gets the proxy URL for the given request options.
|
|
560
550
|
* Checks HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables.
|
|
@@ -683,7 +673,7 @@ class Agent extends eventemitter3_1.EventEmitter {
|
|
|
683
673
|
if (options.key)
|
|
684
674
|
connectOptions.key = options.key;
|
|
685
675
|
}
|
|
686
|
-
const socket = isHttps ? new
|
|
676
|
+
const socket = isHttps ? new TLSSocket(connectOptions) : new Socket();
|
|
687
677
|
// Re-emit keylog events from TLSSockets
|
|
688
678
|
if (isHttps) {
|
|
689
679
|
socket.on('keylog', (line) => {
|
|
@@ -811,9 +801,8 @@ class Agent extends eventemitter3_1.EventEmitter {
|
|
|
811
801
|
}
|
|
812
802
|
}
|
|
813
803
|
}
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
class ClientRequest extends OutgoingMessage {
|
|
804
|
+
export const globalAgent = new Agent();
|
|
805
|
+
export class ClientRequest extends OutgoingMessage {
|
|
817
806
|
constructor(options, callback) {
|
|
818
807
|
super();
|
|
819
808
|
this._connected = false;
|
|
@@ -843,7 +832,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
843
832
|
if (options.timeout) {
|
|
844
833
|
this.setTimeout(options.timeout);
|
|
845
834
|
}
|
|
846
|
-
const agent = options.agent === false ? new Agent() : (options.agent instanceof Agent ? options.agent :
|
|
835
|
+
const agent = options.agent === false ? new Agent() : (options.agent instanceof Agent ? options.agent : globalAgent);
|
|
847
836
|
// Use setImmediate or setTimeout for React Native compatibility
|
|
848
837
|
const nextTick = typeof setImmediate !== 'undefined' ? setImmediate : (fn) => setTimeout(fn, 0);
|
|
849
838
|
nextTick(() => {
|
|
@@ -857,7 +846,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
857
846
|
this.socket = socket;
|
|
858
847
|
this._connected = true;
|
|
859
848
|
this.emit('socket', this.socket);
|
|
860
|
-
|
|
849
|
+
// DO NOT call _sendRequest() here. Headers should only be sent once write() or end() is called.
|
|
861
850
|
this._flushPendingWrites();
|
|
862
851
|
this._attachSocketListeners();
|
|
863
852
|
}
|
|
@@ -866,7 +855,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
866
855
|
}
|
|
867
856
|
}
|
|
868
857
|
_connect() {
|
|
869
|
-
const agent = this._options.agent === false ? new Agent() : (this._options.agent instanceof Agent ? this._options.agent :
|
|
858
|
+
const agent = this._options.agent === false ? new Agent() : (this._options.agent instanceof Agent ? this._options.agent : globalAgent);
|
|
870
859
|
const connectCallback = (err, socket) => {
|
|
871
860
|
if (err) {
|
|
872
861
|
debugLog(`ClientRequest._connect: ERROR: ${err.message}`);
|
|
@@ -874,7 +863,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
874
863
|
return;
|
|
875
864
|
}
|
|
876
865
|
debugLog(`ClientRequest._connect: Socket connected! socket=${!!socket}, socket._driver=${!!socket._driver}`);
|
|
877
|
-
|
|
866
|
+
debugLog(`[HTTP] _connect: Socket connected!`);
|
|
878
867
|
this.socket = socket;
|
|
879
868
|
this._connected = true;
|
|
880
869
|
this.emit('socket', this.socket);
|
|
@@ -888,7 +877,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
888
877
|
_attachSocketListeners() {
|
|
889
878
|
if (!this.socket)
|
|
890
879
|
return;
|
|
891
|
-
const parser =
|
|
880
|
+
const parser = Driver.createHttpParser(1); // 1 = Response mode
|
|
892
881
|
const onData = (data) => {
|
|
893
882
|
const handleParsedResult = (result) => {
|
|
894
883
|
if (result.startsWith('ERROR:')) {
|
|
@@ -897,7 +886,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
897
886
|
return;
|
|
898
887
|
}
|
|
899
888
|
const parsed = JSON.parse(result);
|
|
900
|
-
|
|
889
|
+
debugLog(`[HTTP] _connect: Parser result: ${parsed.is_headers ? 'HEADERS' : 'DATA'}${parsed.complete ? ' (COMPLETE)' : ''}`);
|
|
901
890
|
if (parsed.is_headers) {
|
|
902
891
|
const status = parsed.status || 0;
|
|
903
892
|
if (status >= 100 && status < 200 && status !== 101) {
|
|
@@ -906,7 +895,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
906
895
|
httpVersionMajor: 1,
|
|
907
896
|
httpVersionMinor: parsed.version,
|
|
908
897
|
statusCode: status,
|
|
909
|
-
statusMessage:
|
|
898
|
+
statusMessage: STATUS_CODES[status] || '',
|
|
910
899
|
headers: parsed.headers,
|
|
911
900
|
rawHeaders: []
|
|
912
901
|
};
|
|
@@ -928,7 +917,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
928
917
|
debugLog(`ClientRequest: 101 Switching Protocols received, detaching parser`);
|
|
929
918
|
this.socket.removeListener('data', onData);
|
|
930
919
|
this.socket.removeListener('error', onError);
|
|
931
|
-
this.emit('upgrade', this._res, this.socket,
|
|
920
|
+
this.emit('upgrade', this._res, this.socket, Buffer.alloc(0));
|
|
932
921
|
return;
|
|
933
922
|
}
|
|
934
923
|
// Handle CONNECT method response (HTTP Tunneling)
|
|
@@ -936,13 +925,13 @@ class ClientRequest extends OutgoingMessage {
|
|
|
936
925
|
debugLog(`ClientRequest: CONNECT tunnel established (status=${status}), emitting 'connect' event`);
|
|
937
926
|
this.socket.removeListener('data', onData);
|
|
938
927
|
this.socket.removeListener('error', onError);
|
|
939
|
-
this.emit('connect', this._res, this.socket,
|
|
928
|
+
this.emit('connect', this._res, this.socket, Buffer.alloc(0));
|
|
940
929
|
return;
|
|
941
930
|
}
|
|
942
931
|
this.emit('response', this._res);
|
|
943
932
|
}
|
|
944
933
|
if (this._res && parsed.body && parsed.body.length > 0) {
|
|
945
|
-
this._res.push(
|
|
934
|
+
this._res.push(Buffer.from(parsed.body));
|
|
946
935
|
}
|
|
947
936
|
if (this._res && parsed.complete) {
|
|
948
937
|
this._res.complete = true;
|
|
@@ -962,7 +951,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
962
951
|
if (!result || result === '' || result.startsWith('ERROR:')) {
|
|
963
952
|
// Empty result (partial) or error - exit loop
|
|
964
953
|
if (result && result.startsWith('ERROR:')) {
|
|
965
|
-
|
|
954
|
+
debugLog(`[HTTP] ClientRequest: Parser error: ${result}`);
|
|
966
955
|
}
|
|
967
956
|
break;
|
|
968
957
|
}
|
|
@@ -971,12 +960,12 @@ class ClientRequest extends OutgoingMessage {
|
|
|
971
960
|
}
|
|
972
961
|
};
|
|
973
962
|
const onError = (err) => {
|
|
974
|
-
|
|
963
|
+
debugLog(`[HTTP] _connect: Socket error: ${err.message}`);
|
|
975
964
|
this.emit('error', err);
|
|
976
965
|
this._cleanupSocket();
|
|
977
966
|
};
|
|
978
967
|
const onClose = () => {
|
|
979
|
-
|
|
968
|
+
debugLog(`[HTTP] _connect: Socket closed`);
|
|
980
969
|
if (this._res && !this._res.readableEnded)
|
|
981
970
|
this._res.push(null);
|
|
982
971
|
this.emit('close');
|
|
@@ -1000,7 +989,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
1000
989
|
}
|
|
1001
990
|
_finishResponse() {
|
|
1002
991
|
// Release socket back to agent
|
|
1003
|
-
const agent = this._options.agent === false ? new Agent() : (this._options.agent instanceof Agent ? this._options.agent :
|
|
992
|
+
const agent = this._options.agent === false ? new Agent() : (this._options.agent instanceof Agent ? this._options.agent : globalAgent);
|
|
1004
993
|
const socket = this.socket;
|
|
1005
994
|
this._cleanupSocket();
|
|
1006
995
|
if (socket)
|
|
@@ -1041,6 +1030,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
1041
1030
|
this._sendHeaders(firstLine);
|
|
1042
1031
|
}
|
|
1043
1032
|
_write(chunk, encoding, callback) {
|
|
1033
|
+
this._hasBody = true;
|
|
1044
1034
|
if (!this._connected) {
|
|
1045
1035
|
this._pendingWrites.push({ chunk, encoding, callback });
|
|
1046
1036
|
return;
|
|
@@ -1050,6 +1040,7 @@ class ClientRequest extends OutgoingMessage {
|
|
|
1050
1040
|
super._write(chunk, encoding, callback);
|
|
1051
1041
|
}
|
|
1052
1042
|
write(chunk, encoding, callback) {
|
|
1043
|
+
this._hasBody = true;
|
|
1053
1044
|
if (!this._connected) {
|
|
1054
1045
|
this._pendingWrites.push({ chunk, encoding, callback });
|
|
1055
1046
|
return true;
|
|
@@ -1061,6 +1052,11 @@ class ClientRequest extends OutgoingMessage {
|
|
|
1061
1052
|
end(chunk, encoding, callback) {
|
|
1062
1053
|
debugLog(`ClientRequest.end() called, connected=${this._connected}, headersSent=${this.headersSent}`);
|
|
1063
1054
|
if (chunk) {
|
|
1055
|
+
this._hasBody = true;
|
|
1056
|
+
if (!this.headersSent && !this.hasHeader('Content-Length')) {
|
|
1057
|
+
const len = typeof chunk === 'string' ? Buffer.byteLength(chunk, encoding) : chunk.length;
|
|
1058
|
+
this.setHeader('Content-Length', len);
|
|
1059
|
+
}
|
|
1064
1060
|
this.write(chunk, encoding);
|
|
1065
1061
|
}
|
|
1066
1062
|
this._ended = true;
|
|
@@ -1094,11 +1090,10 @@ class ClientRequest extends OutgoingMessage {
|
|
|
1094
1090
|
}
|
|
1095
1091
|
}
|
|
1096
1092
|
}
|
|
1097
|
-
|
|
1098
|
-
function createServer(optionsOrListener, requestListener) {
|
|
1093
|
+
export function createServer(optionsOrListener, requestListener) {
|
|
1099
1094
|
return new Server(optionsOrListener, requestListener);
|
|
1100
1095
|
}
|
|
1101
|
-
function request(urlOrOptions, optionsOrCallback, callback) {
|
|
1096
|
+
export function request(urlOrOptions, optionsOrCallback, callback) {
|
|
1102
1097
|
let opts = {};
|
|
1103
1098
|
let cb = callback;
|
|
1104
1099
|
if (typeof urlOrOptions === 'string') {
|
|
@@ -1131,7 +1126,7 @@ function request(urlOrOptions, optionsOrCallback, callback) {
|
|
|
1131
1126
|
}
|
|
1132
1127
|
return new ClientRequest(opts, cb);
|
|
1133
1128
|
}
|
|
1134
|
-
function get(urlOrOptions, optionsOrCallback, callback) {
|
|
1129
|
+
export function get(urlOrOptions, optionsOrCallback, callback) {
|
|
1135
1130
|
const req = request(urlOrOptions, optionsOrCallback, callback);
|
|
1136
1131
|
req.end();
|
|
1137
1132
|
return req;
|
package/lib/https.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https.d.ts","sourceRoot":"","sources":["../src/https.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAIxC,qBAAa,MAAO,SAAQ,GAAG,CAAC,MAAM;IAClC,OAAO,CAAC,gBAAgB,CAAkB;IACnC,aAAa,EAAE,MAAM,CAAS;IAC9B,oBAAoB,EAAE,MAAM,CAAK;IACjC,cAAc,EAAE,MAAM,CAAS;IAC/B,cAAc,EAAE,MAAM,CAAU;IAChC,gBAAgB,EAAE,MAAM,CAAQ;gBAE3B,OAAO,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;IAkBnG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;CAK7D;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,GAAG,MAAM,CAEnI;AAID,qBAAa,aAAc,SAAQ,IAAI,CAAC,aAAa;gBACrC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;CAe3E;AAED,wBAAgB,OAAO,CACnB,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,EAChD,iBAAiB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,EAC/E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,GAC/C,aAAa,CA+Bf;AAED,wBAAgB,GAAG,CACf,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,EAChD,iBAAiB,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,EAC/E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,GAC/C,aAAa,CAIf;AAID,qBAAa,KAAM,SAAQ,IAAI,CAAC,KAAK;gBACrB,OAAO,CAAC,EAAE,GAAG;CAG5B;AAED,eAAO,MAAM,WAAW,OAItB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/lib/https.js
CHANGED
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.IncomingMessage = exports.globalAgent = exports.Agent = exports.ClientRequest = exports.Server = void 0;
|
|
37
|
-
exports.createServer = createServer;
|
|
38
|
-
exports.request = request;
|
|
39
|
-
exports.get = get;
|
|
40
|
-
const http = __importStar(require("./http"));
|
|
41
|
-
const tls = __importStar(require("./tls"));
|
|
42
|
-
const http_1 = require("./http");
|
|
43
|
-
Object.defineProperty(exports, "IncomingMessage", { enumerable: true, get: function () { return http_1.IncomingMessage; } });
|
|
1
|
+
import * as http from './http';
|
|
2
|
+
import * as tls from './tls';
|
|
3
|
+
import { IncomingMessage } from './http';
|
|
44
4
|
// ========== Server ==========
|
|
45
|
-
class Server extends tls.Server {
|
|
5
|
+
export class Server extends tls.Server {
|
|
46
6
|
constructor(options, requestListener) {
|
|
47
7
|
if (typeof options === 'function') {
|
|
48
8
|
requestListener = options;
|
|
@@ -70,12 +30,11 @@ class Server extends tls.Server {
|
|
|
70
30
|
return this;
|
|
71
31
|
}
|
|
72
32
|
}
|
|
73
|
-
|
|
74
|
-
function createServer(options, requestListener) {
|
|
33
|
+
export function createServer(options, requestListener) {
|
|
75
34
|
return new Server(options, requestListener);
|
|
76
35
|
}
|
|
77
36
|
// ========== ClientRequest ==========
|
|
78
|
-
class ClientRequest extends http.ClientRequest {
|
|
37
|
+
export class ClientRequest extends http.ClientRequest {
|
|
79
38
|
constructor(options, callback) {
|
|
80
39
|
if (typeof options === 'string') {
|
|
81
40
|
options = new URL(options);
|
|
@@ -92,8 +51,7 @@ class ClientRequest extends http.ClientRequest {
|
|
|
92
51
|
super(options, callback);
|
|
93
52
|
}
|
|
94
53
|
}
|
|
95
|
-
|
|
96
|
-
function request(urlOrOptions, optionsOrCallback, callback) {
|
|
54
|
+
export function request(urlOrOptions, optionsOrCallback, callback) {
|
|
97
55
|
let opts = {};
|
|
98
56
|
let cb = callback;
|
|
99
57
|
if (typeof urlOrOptions === 'string') {
|
|
@@ -125,20 +83,20 @@ function request(urlOrOptions, optionsOrCallback, callback) {
|
|
|
125
83
|
opts.protocol = 'https:';
|
|
126
84
|
return new ClientRequest(opts, cb);
|
|
127
85
|
}
|
|
128
|
-
function get(urlOrOptions, optionsOrCallback, callback) {
|
|
86
|
+
export function get(urlOrOptions, optionsOrCallback, callback) {
|
|
129
87
|
const req = request(urlOrOptions, optionsOrCallback, callback);
|
|
130
88
|
req.end();
|
|
131
89
|
return req;
|
|
132
90
|
}
|
|
133
91
|
// ========== Agent ==========
|
|
134
|
-
class Agent extends http.Agent {
|
|
92
|
+
export class Agent extends http.Agent {
|
|
135
93
|
constructor(options) {
|
|
136
94
|
super(options);
|
|
137
95
|
}
|
|
138
96
|
}
|
|
139
|
-
|
|
140
|
-
exports.globalAgent = new Agent({
|
|
97
|
+
export const globalAgent = new Agent({
|
|
141
98
|
keepAlive: true,
|
|
142
99
|
scheduling: 'lifo',
|
|
143
100
|
timeout: 5000,
|
|
144
101
|
});
|
|
102
|
+
export { IncomingMessage };
|