@ossiana/node-libcurl 1.0.6-alpha-3 → 1.0.7-alpha-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.
- package/binding.gyp +50 -4
- package/dist/export.d.ts +3 -0
- package/dist/export.js +8 -0
- package/dist/export.js.map +1 -0
- package/dist/fetch.d.ts +32 -0
- package/dist/fetch.js +90 -0
- package/dist/fetch.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/libcurl.d.ts +31 -0
- package/dist/libcurl.js +154 -0
- package/dist/libcurl.js.map +1 -0
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.js +15 -2
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/libcurl/bao_curl.cpp +1 -1
- package/src/libcurl/bao_curl_node_addon.cpp +10 -10
- package/src/libcurl/curlAsyncWorker.cpp +3 -3
- package/src/libcurl/include/bao_curl.h +1 -1
- package/src/libcurl/include/curlAysncWorker.h +1 -1
- package/src/libcurl/include/request_tls_utils.h +13 -13
- package/src/libcurl/include/utils.h +9 -2
- package/src/libcurl/lib/Release/darwin/libcrypto.a +0 -0
- package/src/libcurl/lib/Release/darwin/libcurl.a +0 -0
- package/src/libcurl/lib/Release/darwin/libssl.a +0 -0
- package/src/libcurl/lib/Release/linux/libcrypto.a +0 -0
- package/src/libcurl/lib/Release/linux/libcurl.a +0 -0
- package/src/libcurl/lib/Release/linux/libssl.a +0 -0
- package/src/libcurl/lib/Release/{libcurl.dll → windows/libcurl.dll} +0 -0
- package/src/libcurl/lib/Release/{libcurl_imp.lib → windows/libcurl_imp.lib} +0 -0
- package/src/libcurl/utils.cpp +21 -19
- package/tsconfig.json +2 -2
- package/index.d.ts +0 -1
- package/index.js +0 -1
package/binding.gyp
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
"targets": [
|
|
6
6
|
{
|
|
7
7
|
"target_name": "bao_curl_node_addon",
|
|
8
|
-
|
|
9
|
-
"cflags_cc!": [],
|
|
8
|
+
|
|
10
9
|
"sources": [
|
|
11
10
|
"./src/libcurl/bao_curl_node_addon.cpp",
|
|
12
11
|
"./src/libcurl/bao_curl.cpp",
|
|
@@ -43,7 +42,7 @@
|
|
|
43
42
|
},
|
|
44
43
|
'libraries': [
|
|
45
44
|
# "<(module_root_dir)/src/libcurl/lib/Debug/libcurl-d_imp.lib"
|
|
46
|
-
"<(module_root_dir)/src/libcurl/lib/Release/libcurl_imp.lib"
|
|
45
|
+
"<(module_root_dir)/src/libcurl/lib/Release/windows/libcurl_imp.lib"
|
|
47
46
|
],
|
|
48
47
|
"copies": [
|
|
49
48
|
# {
|
|
@@ -55,11 +54,58 @@
|
|
|
55
54
|
{
|
|
56
55
|
"destination": "<(module_root_dir)/build/Release/",
|
|
57
56
|
"files": [
|
|
58
|
-
"<(module_root_dir)/src/libcurl/lib/Release/libcurl.dll"
|
|
57
|
+
"<(module_root_dir)/src/libcurl/lib/Release/windows/libcurl.dll"
|
|
59
58
|
]
|
|
60
59
|
}
|
|
61
60
|
]
|
|
62
61
|
|
|
62
|
+
}],
|
|
63
|
+
['OS=="linux"', {
|
|
64
|
+
|
|
65
|
+
"configurations": {
|
|
66
|
+
'Release': {
|
|
67
|
+
'cflags': [ '-std=c++11', '-fexceptions', '-frtti', '-Wno-deprecated', '-Wno-unused-variable', '-Wno-unused-but-set-variable', '-Wno-maybe-uninitialized', '-Wno-sign-compare', '-Wno-reorder', '-Wno-extra', '-Wno-switch' ,'-fPIC'],
|
|
68
|
+
'cflags_cc': [ '-std=c++11', '-fexceptions', '-frtti', '-Wno-deprecated', '-Wno-unused-variable', '-Wno-unused-but-set-variable', '-Wno-maybe-uninitialized', '-Wno-sign-compare', '-Wno-reorder', '-Wno-extra', '-Wno-switch','-fPIC']
|
|
69
|
+
},
|
|
70
|
+
'Debug': {
|
|
71
|
+
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
'libraries': [
|
|
75
|
+
# "<(module_root_dir)/src/libcurl/lib/Debug/libcurl-d_imp.lib"
|
|
76
|
+
"<(module_root_dir)/src/libcurl/lib/Release/linux/libcurl.a",
|
|
77
|
+
"<(module_root_dir)/src/libcurl/lib/Release/linux/libssl.a",
|
|
78
|
+
"<(module_root_dir)/src/libcurl/lib/Release/linux/libcrypto.a"
|
|
79
|
+
],
|
|
80
|
+
"copies": [
|
|
81
|
+
# {
|
|
82
|
+
# "destination": "<(module_root_dir)/build/Debug/",
|
|
83
|
+
# "files": [
|
|
84
|
+
# "<(module_root_dir)/src/libcurl/lib/Debug/libcurl-d.dll"
|
|
85
|
+
# ]
|
|
86
|
+
# },
|
|
87
|
+
# {
|
|
88
|
+
# "destination": "<(module_root_dir)/build/Release/",
|
|
89
|
+
# "files": [
|
|
90
|
+
# "<(module_root_dir)/src/libcurl/lib/Release/libcurl.so"
|
|
91
|
+
# ]
|
|
92
|
+
# }
|
|
93
|
+
]
|
|
94
|
+
}],
|
|
95
|
+
['OS=="mac"', {
|
|
96
|
+
"configurations": {
|
|
97
|
+
'Release': {
|
|
98
|
+
'cflags': [ '-std=c++11', '-fexceptions', '-frtti', '-Wno-deprecated', '-Wno-unused-variable', '-Wno-unused-but-set-variable', '-Wno-maybe-uninitialized', '-Wno-sign-compare', '-Wno-reorder', '-Wno-extra', '-Wno-switch' ,'-fPIC'],
|
|
99
|
+
'cflags_cc': [ '-std=c++11', '-fexceptions', '-frtti', '-Wno-deprecated', '-Wno-unused-variable', '-Wno-unused-but-set-variable', '-Wno-maybe-uninitialized', '-Wno-sign-compare', '-Wno-reorder', '-Wno-extra', '-Wno-switch','-fPIC'],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
'libraries': [
|
|
103
|
+
"/System/Library/Frameworks/CoreFoundation.framework",
|
|
104
|
+
"/System/Library/Frameworks/SystemConfiguration.framework",
|
|
105
|
+
"<(module_root_dir)/src/libcurl/lib/Release/darwin/libcurl.a",
|
|
106
|
+
"<(module_root_dir)/src/libcurl/lib/Release/darwin/libssl.a",
|
|
107
|
+
"<(module_root_dir)/src/libcurl/lib/Release/darwin/libcrypto.a"
|
|
108
|
+
],
|
|
63
109
|
}]
|
|
64
110
|
],
|
|
65
111
|
|
package/dist/export.d.ts
ADDED
package/dist/export.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetch = exports.LibCurl = void 0;
|
|
4
|
+
const libcurl_1 = require("./libcurl");
|
|
5
|
+
Object.defineProperty(exports, "LibCurl", { enumerable: true, get: function () { return libcurl_1.LibCurl; } });
|
|
6
|
+
const fetch_1 = require("./fetch");
|
|
7
|
+
Object.defineProperty(exports, "fetch", { enumerable: true, get: function () { return fetch_1.fetch; } });
|
|
8
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAG3B,wFAHA,iBAAO,OAGA;AAFhB,mCAA+B;AAEb,sFAFT,aAAK,OAES"}
|
package/dist/fetch.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LibCurl, LibCurl_HTTP_VERSION } from "./libcurl";
|
|
2
|
+
type LibCurlHeadersInfo = [string, string][] | object | string;
|
|
3
|
+
type LibCurlBodyInfo = string | Uint8Array | any;
|
|
4
|
+
type LibCurlCookiesInfo = string | object;
|
|
5
|
+
type LibCurlHttpVersionInfo = LibCurl_HTTP_VERSION;
|
|
6
|
+
type LibCurlProxyWithAccountInfo = {
|
|
7
|
+
proxy: string;
|
|
8
|
+
username: string;
|
|
9
|
+
password: string;
|
|
10
|
+
};
|
|
11
|
+
type LibCurlProxyInfo = string | LibCurlProxyWithAccountInfo;
|
|
12
|
+
interface LibCurlRequestInfo {
|
|
13
|
+
method?: string;
|
|
14
|
+
headers?: LibCurlHeadersInfo;
|
|
15
|
+
body?: LibCurlBodyInfo;
|
|
16
|
+
redirect?: boolean;
|
|
17
|
+
cookies?: LibCurlCookiesInfo;
|
|
18
|
+
httpVersion?: LibCurlHttpVersionInfo;
|
|
19
|
+
openInnerLog?: boolean;
|
|
20
|
+
proxy?: LibCurlProxyInfo;
|
|
21
|
+
instance?: LibCurl;
|
|
22
|
+
}
|
|
23
|
+
interface LibCurlResponseInfo {
|
|
24
|
+
status: () => number;
|
|
25
|
+
arraybuffer: () => Promise<ArrayBuffer>;
|
|
26
|
+
text: () => Promise<string>;
|
|
27
|
+
json: () => Promise<object>;
|
|
28
|
+
jsonp: (callbackName?: string) => Promise<object>;
|
|
29
|
+
headers: () => Promise<string>;
|
|
30
|
+
}
|
|
31
|
+
export declare function fetch(url: string | URL, request?: LibCurlRequestInfo): Promise<LibCurlResponseInfo>;
|
|
32
|
+
export {};
|
package/dist/fetch.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.fetch = void 0;
|
|
13
|
+
const libcurl_1 = require("./libcurl");
|
|
14
|
+
function fetch(url, request = {}) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
request.instance || (request.instance = new libcurl_1.LibCurl());
|
|
17
|
+
const curl = request.instance;
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const { method = "GET", headers = [], redirect = false, httpVersion = 0, openInnerLog = false, proxy, body, cookies } = request;
|
|
20
|
+
curl.open(method, url + '', true);
|
|
21
|
+
if (Array.isArray(headers)) {
|
|
22
|
+
headers.forEach(([key, value]) => {
|
|
23
|
+
curl.setRequestHeader(key, value);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else if (typeof headers == 'object') {
|
|
27
|
+
Object.keys(headers).forEach((key) => {
|
|
28
|
+
curl.setRequestHeader(key, headers[key]);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
curl.setRequestHeaders(headers);
|
|
33
|
+
}
|
|
34
|
+
if (redirect) {
|
|
35
|
+
curl.setRedirect(true);
|
|
36
|
+
}
|
|
37
|
+
if (httpVersion) {
|
|
38
|
+
curl.setHttpVersion(httpVersion);
|
|
39
|
+
}
|
|
40
|
+
if (openInnerLog) {
|
|
41
|
+
curl.printInnerLogger();
|
|
42
|
+
}
|
|
43
|
+
if (cookies) {
|
|
44
|
+
const { hostname } = new URL(url);
|
|
45
|
+
if (typeof cookies == 'string') {
|
|
46
|
+
cookies.replace(/\s+/g, '')
|
|
47
|
+
.split(';')
|
|
48
|
+
.reverse()
|
|
49
|
+
.map(e => e.split('=', 2))
|
|
50
|
+
.forEach(([key, value]) => {
|
|
51
|
+
curl.setCookie(key, value, hostname);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
Object.keys(cookies).forEach(key => {
|
|
56
|
+
curl.setCookie(key, cookies[key], hostname);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (proxy) {
|
|
61
|
+
if (typeof proxy == "string") {
|
|
62
|
+
curl.setProxy(proxy);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const { proxy: proxy_, username, password, } = proxy;
|
|
66
|
+
curl.setProxy(proxy_, username, password);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
let promise;
|
|
70
|
+
if (body) {
|
|
71
|
+
promise = curl.send(body);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
promise = curl.send();
|
|
75
|
+
}
|
|
76
|
+
promise.then(() => {
|
|
77
|
+
resolve({
|
|
78
|
+
status: () => curl.getResponseStatus(),
|
|
79
|
+
arraybuffer: () => __awaiter(this, void 0, void 0, function* () { return curl.getResponseBody().buffer; }),
|
|
80
|
+
text: () => __awaiter(this, void 0, void 0, function* () { return curl.getResponseString(); }),
|
|
81
|
+
json: () => __awaiter(this, void 0, void 0, function* () { return curl.getResponseJson(); }),
|
|
82
|
+
jsonp: (callbackName) => __awaiter(this, void 0, void 0, function* () { return curl.getResponseJsonp(callbackName); }),
|
|
83
|
+
headers: () => __awaiter(this, void 0, void 0, function* () { return curl.getResponseHeaders(); }),
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
exports.fetch = fetch;
|
|
90
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './export';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./export"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare enum LibCurl_HTTP_VERSION {
|
|
2
|
+
http1_1 = 0,
|
|
3
|
+
http2 = 1
|
|
4
|
+
}
|
|
5
|
+
export declare class LibCurl {
|
|
6
|
+
private m_libCurl_impl_;
|
|
7
|
+
private m_isAsync_;
|
|
8
|
+
private m_isSending_;
|
|
9
|
+
constructor();
|
|
10
|
+
private checkSending;
|
|
11
|
+
open(method: string, url: string, async?: boolean): void;
|
|
12
|
+
setRequestHeader(key: string, value: string): void;
|
|
13
|
+
setRequestHeaders(headers: string): void;
|
|
14
|
+
setProxy(proxy: string, username?: string, password?: string): void;
|
|
15
|
+
setTimeout(connectTime: number, sendTime: number): void;
|
|
16
|
+
setCookie(key: string, value: string, domain: string): void;
|
|
17
|
+
removeCookie(key: string, domain: string): void;
|
|
18
|
+
getCookies(): string;
|
|
19
|
+
getCookie(key: string): string;
|
|
20
|
+
getResponseHeaders(): string;
|
|
21
|
+
getResponseStatus(): number;
|
|
22
|
+
reset(): void;
|
|
23
|
+
setRedirect(isAllow: boolean): void;
|
|
24
|
+
printInnerLogger(): void;
|
|
25
|
+
setHttpVersion(version: LibCurl_HTTP_VERSION): void;
|
|
26
|
+
send(body?: string | Uint8Array | any): Promise<undefined> | undefined;
|
|
27
|
+
getResponseBody(): Uint8Array;
|
|
28
|
+
getResponseString(): string;
|
|
29
|
+
getResponseJson(): Object;
|
|
30
|
+
getResponseJsonp(callbackName?: string): Object;
|
|
31
|
+
}
|
package/dist/libcurl.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LibCurl = exports.LibCurl_HTTP_VERSION = void 0;
|
|
7
|
+
const bindings_1 = __importDefault(require("bindings"));
|
|
8
|
+
const { BaoLibCurl } = (0, bindings_1.default)('bao_curl_node_addon');
|
|
9
|
+
var LibCurl_HTTP_VERSION;
|
|
10
|
+
(function (LibCurl_HTTP_VERSION) {
|
|
11
|
+
LibCurl_HTTP_VERSION[LibCurl_HTTP_VERSION["http1_1"] = 0] = "http1_1";
|
|
12
|
+
LibCurl_HTTP_VERSION[LibCurl_HTTP_VERSION["http2"] = 1] = "http2";
|
|
13
|
+
})(LibCurl_HTTP_VERSION = exports.LibCurl_HTTP_VERSION || (exports.LibCurl_HTTP_VERSION = {}));
|
|
14
|
+
class LibCurl {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.m_libCurl_impl_ = new BaoLibCurl();
|
|
17
|
+
}
|
|
18
|
+
checkSending() {
|
|
19
|
+
if (this.m_isSending_) {
|
|
20
|
+
throw new Error('the last request is sending, don\'t send one more request on one instance!');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
open(method, url, async = true) {
|
|
24
|
+
this.checkSending();
|
|
25
|
+
this.m_libCurl_impl_.open(method, url);
|
|
26
|
+
this.m_isAsync_ = async;
|
|
27
|
+
}
|
|
28
|
+
setRequestHeader(key, value) {
|
|
29
|
+
this.checkSending();
|
|
30
|
+
this.m_libCurl_impl_.setRequestHeader(key, value);
|
|
31
|
+
}
|
|
32
|
+
setRequestHeaders(headers) {
|
|
33
|
+
this.checkSending();
|
|
34
|
+
this.m_libCurl_impl_.setRequestHeaders(headers);
|
|
35
|
+
}
|
|
36
|
+
setProxy(proxy, username, password) {
|
|
37
|
+
this.checkSending();
|
|
38
|
+
if (username && password) {
|
|
39
|
+
this.m_libCurl_impl_.setProxy(proxy, username, password);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.m_libCurl_impl_.setProxy(proxy);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
setTimeout(connectTime, sendTime) {
|
|
46
|
+
this.checkSending();
|
|
47
|
+
if (connectTime > sendTime) {
|
|
48
|
+
throw new Error('连接时间大于发送等待时间.');
|
|
49
|
+
}
|
|
50
|
+
this.m_libCurl_impl_.setTimeout(connectTime, sendTime);
|
|
51
|
+
}
|
|
52
|
+
setCookie(key, value, domain) {
|
|
53
|
+
this.checkSending();
|
|
54
|
+
this.m_libCurl_impl_.setCookie(key, value, domain);
|
|
55
|
+
}
|
|
56
|
+
removeCookie(key, domain) {
|
|
57
|
+
this.checkSending();
|
|
58
|
+
this.m_libCurl_impl_.removeCookie(key, domain);
|
|
59
|
+
}
|
|
60
|
+
getCookies() {
|
|
61
|
+
this.checkSending();
|
|
62
|
+
return this.m_libCurl_impl_.getCookies();
|
|
63
|
+
}
|
|
64
|
+
getCookie(key) {
|
|
65
|
+
this.checkSending();
|
|
66
|
+
return this.m_libCurl_impl_.getCookie(key);
|
|
67
|
+
}
|
|
68
|
+
getResponseHeaders() {
|
|
69
|
+
this.checkSending();
|
|
70
|
+
return this.m_libCurl_impl_.getResponseHeaders();
|
|
71
|
+
}
|
|
72
|
+
getResponseStatus() {
|
|
73
|
+
this.checkSending();
|
|
74
|
+
return this.m_libCurl_impl_.getResponseStatus();
|
|
75
|
+
}
|
|
76
|
+
reset() {
|
|
77
|
+
this.checkSending();
|
|
78
|
+
this.m_libCurl_impl_.reset();
|
|
79
|
+
}
|
|
80
|
+
setRedirect(isAllow) {
|
|
81
|
+
this.checkSending();
|
|
82
|
+
this.m_libCurl_impl_.setRedirect(isAllow);
|
|
83
|
+
}
|
|
84
|
+
printInnerLogger() {
|
|
85
|
+
this.checkSending();
|
|
86
|
+
this.m_libCurl_impl_.printInnerLogger();
|
|
87
|
+
}
|
|
88
|
+
setHttpVersion(version) {
|
|
89
|
+
this.checkSending();
|
|
90
|
+
this.m_libCurl_impl_.setHttpVersion(version);
|
|
91
|
+
}
|
|
92
|
+
send(body) {
|
|
93
|
+
this.checkSending();
|
|
94
|
+
this.m_isSending_ = true;
|
|
95
|
+
if (this.m_isAsync_) {
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
const callback = () => {
|
|
98
|
+
this.m_isSending_ = false;
|
|
99
|
+
resolve(void 0);
|
|
100
|
+
};
|
|
101
|
+
if (body) {
|
|
102
|
+
this.m_libCurl_impl_.sendAsync(body, callback);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.m_libCurl_impl_.sendAsync(callback);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (body) {
|
|
110
|
+
this.m_libCurl_impl_.send(body);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.m_libCurl_impl_.send();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
getResponseBody() {
|
|
117
|
+
this.checkSending();
|
|
118
|
+
return this.m_libCurl_impl_.getResponseBody();
|
|
119
|
+
}
|
|
120
|
+
getResponseString() {
|
|
121
|
+
this.checkSending();
|
|
122
|
+
return this.m_libCurl_impl_.getResponseString();
|
|
123
|
+
}
|
|
124
|
+
getResponseJson() {
|
|
125
|
+
this.checkSending();
|
|
126
|
+
return JSON.parse(this.getResponseString());
|
|
127
|
+
}
|
|
128
|
+
getResponseJsonp(callbackName) {
|
|
129
|
+
this.checkSending();
|
|
130
|
+
const str = this.getResponseString();
|
|
131
|
+
let jsonstr = str;
|
|
132
|
+
if (callbackName) {
|
|
133
|
+
[, jsonstr] = new RegExp(`\s*${callbackName}[\s\S]*(.*)[\s\S]*`, 'g').exec(str);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
try {
|
|
137
|
+
eval(str);
|
|
138
|
+
throw new Error('it seem not a jsonp');
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
try {
|
|
142
|
+
[, callbackName] = /(.*) is not defined/g.exec(error.message);
|
|
143
|
+
return this.getResponseJsonp(callbackName);
|
|
144
|
+
}
|
|
145
|
+
catch (_a) {
|
|
146
|
+
throw new Error('it seem not a jsonp');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return eval(jsonstr);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.LibCurl = LibCurl;
|
|
154
|
+
//# sourceMappingURL=libcurl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libcurl.js","sourceRoot":"","sources":["../src/libcurl.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { LibCurl };
|
|
1
|
+
export * from './export';
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
exports.default = libcurl_1.LibCurl;
|
|
17
|
+
__exportStar(require("./export"), exports);
|
|
5
18
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
package/package.json
CHANGED
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './export'
|
package/src/libcurl/bao_curl.cpp
CHANGED
|
@@ -97,7 +97,7 @@ void BaoCurl::setProxy(std::string proxy, std::string username,
|
|
|
97
97
|
std::string password)
|
|
98
98
|
{
|
|
99
99
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXY, proxy.c_str()));
|
|
100
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXYUSERPWD, username + ":" + password));
|
|
100
|
+
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXYUSERPWD, (username + ":" + password).c_str()));
|
|
101
101
|
this->m_bProxy = true;
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -213,7 +213,7 @@ Napi::Value BaoLibCurlWarp::removeCookie(const Napi::CallbackInfo &info)
|
|
|
213
213
|
Napi::Value BaoLibCurlWarp::getCookies(const Napi::CallbackInfo &info)
|
|
214
214
|
{
|
|
215
215
|
Napi::Env env = info.Env();
|
|
216
|
-
size_t argsLen = info.Length();
|
|
216
|
+
// size_t argsLen = info.Length();
|
|
217
217
|
|
|
218
218
|
return Napi::String::New(env, this->m_curl.getCookies());
|
|
219
219
|
}
|
|
@@ -237,7 +237,7 @@ Napi::Value BaoLibCurlWarp::getCookie(const Napi::CallbackInfo &info)
|
|
|
237
237
|
Napi::Value BaoLibCurlWarp::getResponseStatus(const Napi::CallbackInfo &info)
|
|
238
238
|
{
|
|
239
239
|
Napi::Env env = info.Env();
|
|
240
|
-
size_t argsLen = info.Length();
|
|
240
|
+
// size_t argsLen = info.Length();
|
|
241
241
|
|
|
242
242
|
return Napi::Number::New(env, this->m_curl.getResponseStatus());
|
|
243
243
|
}
|
|
@@ -248,7 +248,7 @@ Napi::Value BaoLibCurlWarp::getResponseStatus(const Napi::CallbackInfo &info)
|
|
|
248
248
|
Napi::Value BaoLibCurlWarp::reset(const Napi::CallbackInfo &info)
|
|
249
249
|
{
|
|
250
250
|
Napi::Env env = info.Env();
|
|
251
|
-
size_t argsLen = info.Length();
|
|
251
|
+
// size_t argsLen = info.Length();
|
|
252
252
|
|
|
253
253
|
this->m_curl.reset();
|
|
254
254
|
return env.Undefined();
|
|
@@ -274,7 +274,7 @@ Napi::Value BaoLibCurlWarp::setRedirect(const Napi::CallbackInfo &info)
|
|
|
274
274
|
Napi::Value BaoLibCurlWarp::printInnerLogger(const Napi::CallbackInfo &info)
|
|
275
275
|
{
|
|
276
276
|
Napi::Env env = info.Env();
|
|
277
|
-
size_t argsLen = info.Length();
|
|
277
|
+
// size_t argsLen = info.Length();
|
|
278
278
|
this->m_curl.printInnerLogger();
|
|
279
279
|
return env.Undefined();
|
|
280
280
|
}
|
|
@@ -369,7 +369,7 @@ Napi::Value BaoLibCurlWarp::sendAsync(const Napi::CallbackInfo &info)
|
|
|
369
369
|
string str = info[0].As<Napi::String>().Utf8Value();
|
|
370
370
|
size_t strLen = str.size();
|
|
371
371
|
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(env, strLen);
|
|
372
|
-
|
|
372
|
+
memcpy(u8buffer.Data(), str.c_str(), strLen);
|
|
373
373
|
workerPtr = new curlAsyncWorker(info[1].As<Napi::Function>(), this->m_curl, (const char *)u8buffer.Data(),u8buffer.ElementLength());
|
|
374
374
|
workerPtr->Queue();
|
|
375
375
|
return env.Undefined();
|
|
@@ -378,7 +378,7 @@ Napi::Value BaoLibCurlWarp::sendAsync(const Napi::CallbackInfo &info)
|
|
|
378
378
|
string jsonStr = env.Global().Get("JSON").As<Napi::Object>().Get("stringify").As<Napi::Function>().Call(argsList).As<Napi::String>().Utf8Value();
|
|
379
379
|
size_t strLen = jsonStr.size();
|
|
380
380
|
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(env, strLen);
|
|
381
|
-
|
|
381
|
+
memcpy(u8buffer.Data(), jsonStr.c_str(), strLen);
|
|
382
382
|
workerPtr = new curlAsyncWorker(info[1].As<Napi::Function>(), this->m_curl, (const char *)u8buffer.Data(),u8buffer.ElementLength());
|
|
383
383
|
workerPtr->Queue();
|
|
384
384
|
return env.Undefined();
|
|
@@ -390,7 +390,7 @@ Napi::Value BaoLibCurlWarp::sendAsync(const Napi::CallbackInfo &info)
|
|
|
390
390
|
Napi::Value BaoLibCurlWarp::getResponseHeaders(const Napi::CallbackInfo &info)
|
|
391
391
|
{
|
|
392
392
|
Napi::Env env = info.Env();
|
|
393
|
-
size_t argsLen = info.Length();
|
|
393
|
+
// size_t argsLen = info.Length();
|
|
394
394
|
return Napi::String::New(env, this->m_curl.getResponseHeaders());
|
|
395
395
|
}
|
|
396
396
|
/*
|
|
@@ -399,11 +399,11 @@ Napi::Value BaoLibCurlWarp::getResponseHeaders(const Napi::CallbackInfo &info)
|
|
|
399
399
|
Napi::Value BaoLibCurlWarp::getResponseBody(const Napi::CallbackInfo &info)
|
|
400
400
|
{
|
|
401
401
|
Napi::Env env = info.Env();
|
|
402
|
-
size_t argsLen = info.Length();
|
|
402
|
+
// size_t argsLen = info.Length();
|
|
403
403
|
string utf8Str = this->m_curl.getResponseBody();
|
|
404
404
|
size_t utf8Size = utf8Str.size();
|
|
405
405
|
Napi::Uint8Array uint8buffer = Napi::Uint8Array::New(env, utf8Size);
|
|
406
|
-
|
|
406
|
+
memcpy((void *)uint8buffer.Data(), utf8Str.c_str(), utf8Size);
|
|
407
407
|
return uint8buffer;
|
|
408
408
|
}
|
|
409
409
|
|
|
@@ -413,7 +413,7 @@ Napi::Value BaoLibCurlWarp::getResponseBody(const Napi::CallbackInfo &info)
|
|
|
413
413
|
Napi::Value BaoLibCurlWarp::getResponseString(const Napi::CallbackInfo &info)
|
|
414
414
|
{
|
|
415
415
|
Napi::Env env = info.Env();
|
|
416
|
-
size_t argsLen = info.Length();
|
|
416
|
+
// size_t argsLen = info.Length();
|
|
417
417
|
return Napi::String::New(env, this->m_curl.getResponseBody());
|
|
418
418
|
}
|
|
419
419
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#include "curlAysncWorker.h"
|
|
2
2
|
|
|
3
|
-
curlAsyncWorker::curlAsyncWorker(Napi::Function &callback, BaoCurl &baoCurlInstance, const char *body, size_t bodySize)
|
|
3
|
+
curlAsyncWorker::curlAsyncWorker(const Napi::Function &callback, BaoCurl &baoCurlInstance, const char *body, size_t bodySize)
|
|
4
4
|
: Napi::AsyncWorker(callback), m_baoCurlInstance(baoCurlInstance)
|
|
5
5
|
{
|
|
6
6
|
this->m_sendBody = (char *)malloc(bodySize);
|
|
7
7
|
this->m_bodySize = bodySize;
|
|
8
|
-
|
|
8
|
+
memcpy(this->m_sendBody, body, bodySize);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
curlAsyncWorker::~curlAsyncWorker()
|
|
@@ -31,7 +31,7 @@ void curlAsyncWorker::OnOK()
|
|
|
31
31
|
/* std::string str = this->m_baoCurlInstance.getResponseBody();
|
|
32
32
|
size_t strLen = str.size();
|
|
33
33
|
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(Env(), strLen);
|
|
34
|
-
|
|
34
|
+
memcpy(u8buffer.Data(), strLen, str.c_str(), strLen); */
|
|
35
35
|
Callback().Call({
|
|
36
36
|
/* u8buffer */
|
|
37
37
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
class curlAsyncWorker : public Napi::AsyncWorker
|
|
5
5
|
{
|
|
6
6
|
public:
|
|
7
|
-
curlAsyncWorker(Napi::Function &callback, BaoCurl &baoCurlInstance, const char *sendBody, size_t bodySize);
|
|
7
|
+
curlAsyncWorker(const Napi::Function &callback, BaoCurl &baoCurlInstance, const char *sendBody, size_t bodySize);
|
|
8
8
|
~curlAsyncWorker();
|
|
9
9
|
void Execute();
|
|
10
10
|
void OnOK();
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
#define REQUEST_TLS_METHOD_THROW(env,className,methodName,reason) {\
|
|
2
|
-
Napi::TypeError::New(
|
|
3
|
-
return (
|
|
2
|
+
Napi::TypeError::New(env,StringFormat("Failed to execute '%s' on '%s': %s",methodName,className,reason)).ThrowAsJavaScriptException();\
|
|
3
|
+
return (env).Undefined();\
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
#define REQUEST_TLS_METHOD_ARGS_CHECK(env,className,methodName,needLen,getLen) {\
|
|
7
|
-
if (
|
|
8
|
-
Napi::TypeError::New(
|
|
9
|
-
return (
|
|
7
|
+
if (getLen != needLen){\
|
|
8
|
+
Napi::TypeError::New(env,StringFormat("Failed to execute '%s' on '%s': %d arguments required, but only %d present.",methodName,className,needLen,getLen)).ThrowAsJavaScriptException();\
|
|
9
|
+
return (env).Undefined();\
|
|
10
10
|
}\
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
#define REQUEST_TLS_METHOD_ARGS_TOO_MUCH_CHECK(env,className,methodName,maxLen,getLen) {\
|
|
14
|
-
if (
|
|
15
|
-
Napi::TypeError::New(
|
|
16
|
-
return (
|
|
14
|
+
if (getLen > maxLen){\
|
|
15
|
+
Napi::TypeError::New(env,StringFormat("Failed to execute '%s' on '%s': maximum of %d arguments required, but only %d present.",methodName,className,maxLen,getLen)).ThrowAsJavaScriptException();\
|
|
16
|
+
return (env).Undefined();\
|
|
17
17
|
}\
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
#define REQUEST_TLS_METHOD_ARGS_NO_CONFIG(env,className,methodName,reqNums,getLen) {\
|
|
21
|
-
Napi::TypeError::New(
|
|
22
|
-
return (
|
|
21
|
+
Napi::TypeError::New(env,StringFormat("Failed to execute '%s' on '%s': [%s] arguments required, but only %d present.",methodName,className,reqNums,getLen)).ThrowAsJavaScriptException();\
|
|
22
|
+
return (env).Undefined();\
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
#define REQUEST_TLS_METHOD_CHECK(env,condition,message) {\
|
|
26
26
|
if (!(condition)){\
|
|
27
|
-
Napi::TypeError::New(
|
|
28
|
-
return (
|
|
27
|
+
Napi::TypeError::New(env,message).ThrowAsJavaScriptException();\
|
|
28
|
+
return (env).Undefined();\
|
|
29
29
|
}\
|
|
30
|
-
}
|
|
30
|
+
}
|
|
@@ -7,7 +7,14 @@
|
|
|
7
7
|
#include <iostream>
|
|
8
8
|
#include <stdlib.h>
|
|
9
9
|
#include <time.h>
|
|
10
|
-
|
|
10
|
+
#include <memory>
|
|
11
11
|
|
|
12
12
|
std::vector<std::string> StringSplit(const std::string& str, const std::string& pattern);
|
|
13
|
-
|
|
13
|
+
template<typename ... Args>
|
|
14
|
+
std::string StringFormat(const std::string& format, Args ... args){
|
|
15
|
+
size_t size = 1 + snprintf(nullptr, 0, format.c_str(), args ...); // Extra space for \0
|
|
16
|
+
std::unique_ptr<char[]> bytes(new char[size]);
|
|
17
|
+
// char bytes[size];
|
|
18
|
+
snprintf(bytes.get(), size, format.c_str(), args ...);
|
|
19
|
+
return std::string(bytes.get());
|
|
20
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
package/src/libcurl/utils.cpp
CHANGED
|
@@ -5,7 +5,7 @@ std::vector<std::string> StringSplit(const std::string& str, const std::string&
|
|
|
5
5
|
std::string::size_type pos;
|
|
6
6
|
std::vector<std::string> result;
|
|
7
7
|
std::string _str(str);
|
|
8
|
-
_str += pattern;//��չ�ַ����Է������
|
|
8
|
+
_str += pattern;//��չ�ַ����Է������
|
|
9
9
|
size_t size = _str.size();
|
|
10
10
|
for (size_t i = 0; i < size; i++)
|
|
11
11
|
{
|
|
@@ -21,21 +21,23 @@ std::vector<std::string> StringSplit(const std::string& str, const std::string&
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
// std::string StringFormat(const char* lpcszFormat, ...)
|
|
27
|
+
// {
|
|
28
|
+
// std::string strResult;
|
|
29
|
+
// if (NULL != lpcszFormat)
|
|
30
|
+
// {
|
|
31
|
+
// va_list marker = {};
|
|
32
|
+
// va_start(marker, lpcszFormat); //��ʼ����������
|
|
33
|
+
// size_t nLength = vsnprintf(lpcszFormat, marker) + 1; //��ȡ��ʽ���ַ�������
|
|
34
|
+
// std::vector<char> vBuffer(nLength, '\0'); //�������ڴ洢��ʽ���ַ������ַ�����
|
|
35
|
+
// int nWritten = vsnprintf(&vBuffer[0], nLength, lpcszFormat, marker);
|
|
36
|
+
// if (nWritten > 0)
|
|
37
|
+
// {
|
|
38
|
+
// strResult = &vBuffer[0];
|
|
39
|
+
// }
|
|
40
|
+
// va_end(marker); //��������
|
|
41
|
+
// }
|
|
42
|
+
// return strResult;
|
|
43
|
+
// }
|
package/tsconfig.json
CHANGED
package/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module '@ossiana/node-libcurl'
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./dist/src/export.js')
|