@ossiana/node-libcurl 1.0.6-alpha-3 → 1.0.7-alpha-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 (37) hide show
  1. package/binding.gyp +50 -4
  2. package/dist/export.d.ts +3 -0
  3. package/dist/export.js +8 -0
  4. package/dist/export.js.map +1 -0
  5. package/dist/fetch.d.ts +32 -0
  6. package/dist/fetch.js +90 -0
  7. package/dist/fetch.js.map +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +18 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/libcurl.d.ts +31 -0
  12. package/dist/libcurl.js +154 -0
  13. package/dist/libcurl.js.map +1 -0
  14. package/dist/src/index.d.ts +1 -2
  15. package/dist/src/index.js +15 -2
  16. package/dist/src/index.js.map +1 -1
  17. package/index.js +1 -1
  18. package/package.json +1 -1
  19. package/src/index.ts +1 -0
  20. package/src/libcurl/bao_curl.cpp +1 -1
  21. package/src/libcurl/bao_curl_node_addon.cpp +10 -10
  22. package/src/libcurl/curlAsyncWorker.cpp +3 -3
  23. package/src/libcurl/include/bao_curl.h +1 -1
  24. package/src/libcurl/include/curlAysncWorker.h +1 -1
  25. package/src/libcurl/include/request_tls_utils.h +13 -13
  26. package/src/libcurl/include/utils.h +9 -2
  27. package/src/libcurl/lib/Release/darwin/libcrypto.a +0 -0
  28. package/src/libcurl/lib/Release/darwin/libcurl.a +0 -0
  29. package/src/libcurl/lib/Release/darwin/libssl.a +0 -0
  30. package/src/libcurl/lib/Release/linux/libcrypto.a +0 -0
  31. package/src/libcurl/lib/Release/linux/libcurl.a +0 -0
  32. package/src/libcurl/lib/Release/linux/libssl.a +0 -0
  33. package/src/libcurl/lib/Release/{libcurl.dll → windows/libcurl.dll} +0 -0
  34. package/src/libcurl/lib/Release/{libcurl_imp.lib → windows/libcurl_imp.lib} +0 -0
  35. package/src/libcurl/utils.cpp +21 -19
  36. package/tsconfig.json +2 -2
  37. package/index.d.ts +0 -1
package/binding.gyp CHANGED
@@ -5,8 +5,7 @@
5
5
  "targets": [
6
6
  {
7
7
  "target_name": "bao_curl_node_addon",
8
- "cflags!": [],
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
 
@@ -0,0 +1,3 @@
1
+ import { LibCurl } from "./libcurl";
2
+ import { fetch } from "./fetch";
3
+ export { LibCurl, fetch };
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"}
@@ -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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"}
@@ -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
+ }
@@ -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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"}
@@ -1,2 +1 @@
1
- import { LibCurl } from './libcurl';
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
- const libcurl_1 = require("./libcurl");
4
- exports.default = libcurl_1.LibCurl;
17
+ __exportStar(require("./export"), exports);
5
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,uCAAmC;AAEnC,kBAAe,iBAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
package/index.js CHANGED
@@ -1 +1 @@
1
- module.exports = require('./dist/src/export.js')
1
+ module.exports = require('./dist/src/index')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ossiana/node-libcurl",
3
- "version": "1.0.6-alpha-3",
3
+ "version": "1.0.7-alpha-2",
4
4
  "dependencies": {
5
5
  "bindings": "^1.5.0",
6
6
  "node-addon-api": "^5.0.0",
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './export'
@@ -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
- memcpy_s(u8buffer.Data(), strLen, str.c_str(), strLen);
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
- memcpy_s(u8buffer.Data(), strLen, jsonStr.c_str(), strLen);
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
- memcpy_s((void *)uint8buffer.Data(), utf8Size, utf8Str.c_str(), utf8Size);
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
- memcpy_s(this->m_sendBody, bodySize, body, bodySize);
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
- memcpy_s(u8buffer.Data(), strLen, str.c_str(), strLen); */
34
+ memcpy(u8buffer.Data(), strLen, str.c_str(), strLen); */
35
35
  Callback().Call({
36
36
  /* u8buffer */
37
37
  });
@@ -72,7 +72,7 @@ private:
72
72
  struct curl_slist* m_pHeaders = NULL;
73
73
  std::string m_method = "GET";
74
74
  struct Stream_st m_stream;
75
- struct curl_slist* m_cookies = NULL;
75
+ // struct curl_slist* m_cookies = NULL;
76
76
  bool m_bProxy = false;
77
77
  bool m_bIsHttps = false;
78
78
 
@@ -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(##env,StringFormat("Failed to execute '%s' on '%s': %s",##methodName,##className,##reason)).ThrowAsJavaScriptException();\
3
- return (##env).Undefined();\
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 ( ##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();\
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 ( ##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();\
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(##env,StringFormat("Failed to execute '%s' on '%s': [%s] arguments required, but only %d present.",##methodName,##className,##reqNums,##getLen)).ThrowAsJavaScriptException();\
22
- return (##env).Undefined();\
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(##env,##message).ThrowAsJavaScriptException();\
28
- return (##env).Undefined();\
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
- std::string StringFormat(const char* lpcszFormat, ...);
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
+ }
@@ -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
- std::string StringFormat(const char* lpcszFormat, ...)
25
- {
26
- std::string strResult;
27
- if (NULL != lpcszFormat)
28
- {
29
- va_list marker = NULL;
30
- va_start(marker, lpcszFormat); //��ʼ����������
31
- size_t nLength = _vscprintf(lpcszFormat, marker) + 1; //��ȡ��ʽ���ַ�������
32
- std::vector<char> vBuffer(nLength, '\0'); //�������ڴ洢��ʽ���ַ������ַ�����
33
- int nWritten = _vsnprintf_s(&vBuffer[0], vBuffer.size(), nLength, lpcszFormat, marker);
34
- if (nWritten > 0)
35
- {
36
- strResult = &vBuffer[0];
37
- }
38
- va_end(marker); //��������
39
- }
40
- return strResult;
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
@@ -6,7 +6,7 @@
6
6
  "removeComments": true,
7
7
  "noImplicitAny": false,
8
8
  "sourceMap": true,
9
- "rootDir": ".",
9
+ "rootDir": "src",
10
10
  "outDir": "dist",
11
11
  "typeRoots": [
12
12
  "./typings"
@@ -26,6 +26,6 @@
26
26
  "src/*"
27
27
  ],
28
28
  "exclude": [
29
-
29
+
30
30
  ]
31
31
  }
package/index.d.ts DELETED
@@ -1 +0,0 @@
1
- declare module '@ossiana/node-libcurl'