@ossiana/node-libcurl 1.0.9-alpha-2 → 1.0.9-alpha-5

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/dist/libcurl.d.ts CHANGED
@@ -42,7 +42,7 @@ export type LibCurlHeadersAttr = Map<string, string>;
42
42
  export type LibCurlHeadersInfo = string | {
43
43
  [key: string]: [value: string];
44
44
  } | LibCurlHeadersAttr;
45
- export type LibCurlBodyInfo = string | Uint8Array | URLSearchParams | any;
45
+ export type LibCurlBodyInfo = string | Uint8Array | URLSearchParams | object;
46
46
  export type LibCurlMethodInfo = 'GET' | 'POST' | 'HEAD' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH';
47
47
  export type LibCurlProxyWithAccountInfo = {
48
48
  proxy: string;
@@ -29,6 +29,7 @@ interface requestsInitOption {
29
29
  proxy?: requestsProxyInfo;
30
30
  body?: requestsBodyInfo;
31
31
  httpVersion?: requestsHttpVersionInfo;
32
+ verbose?: boolean;
32
33
  timeout?: number;
33
34
  instance?: LibCurl;
34
35
  }
@@ -37,19 +38,22 @@ type requestsParamsInfo = URLSearchParams | string | {
37
38
  };
38
39
  interface requestsOption {
39
40
  headers?: requestsHeadersInfo;
40
- body?: requestsBodyInfo;
41
41
  params?: requestsParamsInfo;
42
+ json?: object;
43
+ data?: requestsBodyInfo;
44
+ }
45
+ interface requestsStaticOption extends Omit<requestsInitOption, 'body' | 'instance'>, requestsOption {
42
46
  }
43
47
  export declare class requests {
44
48
  private option;
45
49
  constructor(option?: requestsInitOption);
46
50
  static session(option?: requestsInitOption): requests;
47
- static get(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
48
- static post(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
49
- static put(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
50
- static patch(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
51
- static trace(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
52
- static head(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
51
+ static get(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
52
+ static post(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
53
+ static put(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
54
+ static patch(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
55
+ static trace(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
56
+ static head(url: requestsURLInfo, requestOpt?: requestsStaticOption): Promise<requestsResponse>;
53
57
  get(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
54
58
  post(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
55
59
  put(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse>;
@@ -62,5 +66,6 @@ export declare class requests {
62
66
  getCookiesMap(domain?: string, path?: string): LibCurlCookiesAttr;
63
67
  deleteCookie(key: string, domain: string, path?: string): void;
64
68
  private sendRequest;
69
+ private static sendRequestStaic;
65
70
  }
66
71
  export {};
package/dist/requests.js CHANGED
@@ -44,7 +44,7 @@ class requests {
44
44
  constructor(option = {}) {
45
45
  var _a;
46
46
  this.option = Object.assign({}, option);
47
- const { cookies, timeout } = option;
47
+ const { cookies, timeout, verbose } = option;
48
48
  const curl = (_a = this.option).instance || (_a.instance = new libcurl_1.LibCurl());
49
49
  if (cookies) {
50
50
  (0, utils_1.libcurlSetCookies)(curl, cookies, '.');
@@ -52,38 +52,41 @@ class requests {
52
52
  if (timeout) {
53
53
  curl.setTimeout(timeout, timeout);
54
54
  }
55
+ if (verbose) {
56
+ curl.printInnerLogger();
57
+ }
55
58
  }
56
59
  static session(option = {}) {
57
60
  return new requests(option);
58
61
  }
59
62
  static get(url, requestOpt) {
60
63
  return __awaiter(this, void 0, void 0, function* () {
61
- return requests.session().sendRequest('GET', url, requestOpt);
64
+ return requests.sendRequestStaic('GET', url, requestOpt);
62
65
  });
63
66
  }
64
67
  static post(url, requestOpt) {
65
68
  return __awaiter(this, void 0, void 0, function* () {
66
- return requests.session().sendRequest('POST', url, requestOpt);
69
+ return requests.sendRequestStaic('POST', url, requestOpt);
67
70
  });
68
71
  }
69
72
  static put(url, requestOpt) {
70
73
  return __awaiter(this, void 0, void 0, function* () {
71
- return requests.session().sendRequest('PUT', url, requestOpt);
74
+ return requests.sendRequestStaic('PUT', url, requestOpt);
72
75
  });
73
76
  }
74
77
  static patch(url, requestOpt) {
75
78
  return __awaiter(this, void 0, void 0, function* () {
76
- return requests.session().sendRequest('PATCH', url, requestOpt);
79
+ return requests.sendRequestStaic('PATCH', url, requestOpt);
77
80
  });
78
81
  }
79
82
  static trace(url, requestOpt) {
80
83
  return __awaiter(this, void 0, void 0, function* () {
81
- return requests.session().sendRequest('TRACE', url, requestOpt);
84
+ return requests.sendRequestStaic('TRACE', url, requestOpt);
82
85
  });
83
86
  }
84
87
  static head(url, requestOpt) {
85
88
  return __awaiter(this, void 0, void 0, function* () {
86
- return requests.session().sendRequest('HEAD', url, requestOpt);
89
+ return requests.sendRequestStaic('HEAD', url, requestOpt);
87
90
  });
88
91
  }
89
92
  get(url, requestOpt) {
@@ -159,7 +162,10 @@ class requests {
159
162
  sendRequest(method, url, requestOpt) {
160
163
  return __awaiter(this, void 0, void 0, function* () {
161
164
  const { instance: curl, redirect = false, proxy, httpVersion } = this.option;
162
- const { headers, body, params } = requestOpt || {};
165
+ const { headers, data, json, params } = requestOpt || {};
166
+ if (data && json) {
167
+ throw new libcurl_1.LibCurlError('both data and json exist');
168
+ }
163
169
  const url_ = new URL(url);
164
170
  if (params) {
165
171
  assignURLSearchParam(url_.searchParams, new URLSearchParams(params));
@@ -177,10 +183,68 @@ class requests {
177
183
  if (proxy) {
178
184
  curl.setProxy(proxy);
179
185
  }
180
- yield curl.send(body);
186
+ let hasContentType = false;
187
+ if (data || json) {
188
+ const contentTypeFilter = (e) => e.some(e => e.toLocaleLowerCase() == 'content-type');
189
+ if (typeof headers == 'string') {
190
+ hasContentType = /content-type/i.test(headers);
191
+ }
192
+ else if (headers instanceof Map) {
193
+ hasContentType = contentTypeFilter([...headers.keys()]);
194
+ }
195
+ else {
196
+ hasContentType = contentTypeFilter(Object.keys(headers));
197
+ }
198
+ }
199
+ if (json) {
200
+ if (!hasContentType) {
201
+ curl.setRequestHeader('Content-Type', 'application/json');
202
+ }
203
+ yield curl.send(json);
204
+ }
205
+ else if (data) {
206
+ let sendData = data;
207
+ if (!hasContentType) {
208
+ if (typeof data == 'string') {
209
+ curl.setRequestHeader('Content-Type', 'text/plain');
210
+ }
211
+ else if (data instanceof URLSearchParams) {
212
+ curl.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
213
+ }
214
+ else if (data instanceof Uint8Array) {
215
+ curl.setRequestHeader('Content-Type', 'application/octet-stream');
216
+ }
217
+ else {
218
+ sendData = Object.keys(data).map((e) => {
219
+ const value = data[e];
220
+ const type = typeof value;
221
+ if (['object', 'boolean', 'number']) {
222
+ return [e, JSON.stringify(value)];
223
+ }
224
+ else if (type == 'undefined') {
225
+ return [e, ''];
226
+ }
227
+ else if (type == 'string') {
228
+ return [e, value];
229
+ }
230
+ else {
231
+ throw new libcurl_1.LibCurlError(`data unkown type ${type}`);
232
+ }
233
+ })
234
+ .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
235
+ .join('&');
236
+ }
237
+ }
238
+ yield curl.send(sendData);
239
+ }
181
240
  return new requestsResponse(curl);
182
241
  });
183
242
  }
243
+ static sendRequestStaic(method, url, requestStaticOpt) {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ return requests.session(requestStaticOpt).sendRequest(method, url, requestStaticOpt);
246
+ });
247
+ }
184
248
  }
185
249
  exports.requests = requests;
186
250
  //# sourceMappingURL=requests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAiN;AACjN,mCAA4C;AAoB5C,MAAM,gBAAgB;IAElB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;CAGJ;AA2BD,MAAM,oBAAoB,GAAG,CAAC,MAAuB,EAAE,MAAuB,EAAE,EAAE;IAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAa,QAAQ;IAEjB,YAAY,SAA6B,EAAE;;QACvC,IAAI,CAAC,MAAM,qBAAQ,MAAM,CAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,IAAI,SAAG,IAAI,CAAC,MAAM,EAAC,QAAQ,QAAR,QAAQ,GAAK,IAAI,iBAAO,EAAE,CAAA,CAAC;QAEpD,IAAI,OAAO,EAAE;YACT,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAA6B,EAAE;QAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAID,MAAM,CAAO,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YAC9D,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;KAAA;IACD,MAAM,CAAO,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YAC/D,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;KAAA;IACD,MAAM,CAAO,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YAC9D,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;KAAA;IACD,MAAM,CAAO,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YAChE,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;KAAA;IACD,MAAM,CAAO,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YAChE,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;KAAA;IACD,MAAM,CAAO,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YAC/D,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;KAAA;IACK,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;KAAA;IACK,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;KAAA;IACK,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;KAAA;IACK,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;KAAA;IAED,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE,OAAe,EAAE;QACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,KAAK;YACL,MAAM;YACN,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,MAAe,EAAE,IAAa;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,UAAU,CAAC,MAAe,EAAE,IAAa;QACrC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IACD,aAAa,CAAC,MAAe,EAAE,IAAa;QACxC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,IAAa;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,GAAG;SACpB,CAAC,CAAA;IACN,CAAC;IAEa,WAAW,CAAC,MAA0B,EAAE,GAAoB,EAAE,UAA2B;;YACnG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,MAAM,EAAE;gBACR,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;aACxE;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACnC;YACD,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1B;YACD,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;aACpC;YACD,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;KAAA;CACJ;AA7HD,4BA6HC"}
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA+N;AAC/N,mCAA4C;AAoB5C,MAAM,gBAAgB;IAElB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;CAGJ;AAuCD,MAAM,oBAAoB,GAAG,CAAC,MAAuB,EAAE,MAAuB,EAAE,EAAE;IAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAa,QAAQ;IAEjB,YAAY,SAA6B,EAAE;;QACvC,IAAI,CAAC,MAAM,qBAAQ,MAAM,CAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC7C,MAAM,IAAI,SAAG,IAAI,CAAC,MAAM,EAAC,QAAQ,QAAR,QAAQ,GAAK,IAAI,iBAAO,EAAE,CAAA,CAAC;QAEpD,IAAI,OAAO,EAAE;YACT,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAA6B,EAAE;QAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAID,MAAM,CAAO,GAAG,CAAC,GAAoB,EAAE,UAAiC;;YACpE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;KAAA;IACD,MAAM,CAAO,IAAI,CAAC,GAAoB,EAAE,UAAiC;;YACrE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;KAAA;IACD,MAAM,CAAO,GAAG,CAAC,GAAoB,EAAE,UAAiC;;YACpE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;KAAA;IACD,MAAM,CAAO,KAAK,CAAC,GAAoB,EAAE,UAAiC;;YACtE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;KAAA;IACD,MAAM,CAAO,KAAK,CAAC,GAAoB,EAAE,UAAiC;;YACtE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;KAAA;IACD,MAAM,CAAO,IAAI,CAAC,GAAoB,EAAE,UAAiC;;YACrE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;KAAA;IACK,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;KAAA;IACK,GAAG,CAAC,GAAoB,EAAE,UAA2B;;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;KAAA;IACK,KAAK,CAAC,GAAoB,EAAE,UAA2B;;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;KAAA;IACK,IAAI,CAAC,GAAoB,EAAE,UAA2B;;YACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;KAAA;IAED,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE,OAAe,EAAE;QACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,KAAK;YACL,MAAM;YACN,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,MAAe,EAAE,IAAa;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,UAAU,CAAC,MAAe,EAAE,IAAa;QACrC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IACD,aAAa,CAAC,MAAe,EAAE,IAAa;QACxC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,IAAa;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,GAAG;SACpB,CAAC,CAAA;IACN,CAAC;IAEa,WAAW,CAAC,MAA0B,EAAE,GAAoB,EAAE,UAA2B;;YACnG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;YACzD,IAAI,IAAI,IAAI,IAAI,EAAE;gBACd,MAAM,IAAI,sBAAY,CAAC,0BAA0B,CAAC,CAAC;aACtD;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,MAAM,EAAE;gBACR,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;aACxE;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACnC;YACD,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1B;YACD,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;aACpC;YACD,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;YACD,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,IAAI,IAAI,IAAI,EAAE;gBAEd,MAAM,iBAAiB,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,cAAc,CAAC,CAAC;gBAChG,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;oBAC5B,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAClD;qBAAM,IAAI,OAAO,YAAY,GAAG,EAAE;oBAC/B,cAAc,GAAG,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC3D;qBAAM;oBACH,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC5D;aACJ;YACD,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,cAAc,EAAE;oBACjB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;iBAC7D;gBACD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;iBAAM,IAAI,IAAI,EAAE;gBACb,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,cAAc,EAAE;oBACjB,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;wBACzB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;qBACvD;yBAAM,IAAI,IAAI,YAAY,eAAe,EAAE;wBACxC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;qBAC9E;yBAAM,IAAI,IAAI,YAAY,UAAU,EAAE;wBACnC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;qBACrE;yBAAM;wBACH,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BACtB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;4BAC1B,IAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;gCAExD,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;6BACrC;iCAAM,IAAI,IAAI,IAAI,WAAW,EAAE;gCAC5B,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;6BAClB;iCAAM,IAAI,IAAI,IAAI,QAAQ,EAAE;gCACzB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BACrB;iCAAM;gCACH,MAAM,IAAI,sBAAY,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;6BACrD;wBAEL,CAAC,CAAC;6BACG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAmB,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;6BAC9E,IAAI,CAAC,GAAG,CAAC,CAAC;qBAClB;iBACJ;gBACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;KAAA;IAEO,MAAM,CAAO,gBAAgB,CAAC,MAA0B,EAAE,GAAoB,EAAE,gBAAuC;;YAC3H,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAsC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC/G,CAAC;KAAA;CACJ;AAtLD,4BAsLC"}
package/dist/utils.js CHANGED
@@ -23,17 +23,26 @@ const httpCookiesToArray = (cookies) => {
23
23
  return cookies_;
24
24
  };
25
25
  exports.httpCookiesToArray = httpCookiesToArray;
26
+ const getSubdomains = (domain) => {
27
+ const subdomains = domain.split('.');
28
+ const subdomainList = [];
29
+ for (let i = 0; i < subdomains.length - 1; i++) {
30
+ const domain_ = subdomains.slice(i).join('.');
31
+ subdomainList.push(domain_);
32
+ if (!domain_.startsWith('.')) {
33
+ subdomainList.push(`.${domain_}`);
34
+ }
35
+ }
36
+ return subdomainList;
37
+ };
26
38
  const cookieOptFilter = (cookieOpt) => {
39
+ const domainArr = (cookieOpt === null || cookieOpt === void 0 ? void 0 : cookieOpt.domain) && getSubdomains(cookieOpt.domain);
27
40
  return (e) => {
28
- if (cookieOpt) {
29
- if (cookieOpt.domain) {
30
- if (cookieOpt.domain != e[0])
31
- return false;
32
- }
33
- if (cookieOpt.path) {
34
- if (cookieOpt.path != e[2])
35
- return false;
36
- }
41
+ if (domainArr && !domainArr.find(t => e[0] === t))
42
+ return false;
43
+ if (cookieOpt === null || cookieOpt === void 0 ? void 0 : cookieOpt.path) {
44
+ if (cookieOpt.path != e[2])
45
+ return false;
37
46
  }
38
47
  return true;
39
48
  };
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAkD,CAAC,OAAO,EAAE,EAAE;IACzF,MAAM,wBAAwB,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3C,QAAQ,CAAC,EAAE;YACP,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC;YAChB,KAAK,OAAO;gBACR,OAAO,KAAK,CAAC;YACjB;gBACI,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;SAC1C;IACL,CAAC,CAAA;IAMD,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAClC,IAAI,CAAC,EAAE,EAAE;YACL,SAAS;SACZ;QACD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;KAC/J;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA;AAzBY,QAAA,kBAAkB,sBAyB9B;AAEM,MAAM,eAAe,GAAG,CAAC,SAAkC,EAAE,EAAE;IAClE,OAAO,CAAC,CAAyB,EAAE,EAAE;QACjC,IAAI,SAAS,EAAE;YACX,IAAI,SAAS,CAAC,MAAM,EAAE;gBAClB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACxB,OAAO,KAAK,CAAC;aACpB;YACD,IAAI,SAAS,CAAC,IAAI,EAAE;gBAChB,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtB,OAAO,KAAK,CAAC;aACpB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;AACL,CAAC,CAAA;AAdY,QAAA,eAAe,mBAc3B;AAGM,MAAM,iBAAiB,GAAG,CAAC,IAAa,EAAE,OAA2B,EAAE,MAAc,EAAE,EAAE;IAC5F,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;QAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACtB,KAAK,CAAC,GAAG,CAAC;aACV,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACzB,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,KAAK;gBACL,MAAM;gBACN,IAAI,EAAE,GAAG;aACZ,CAAC,CAAA;QACN,CAAC,CAAC,CAAC;KACV;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;gBACnB,MAAM;gBACN,IAAI,EAAE,GAAG;aACZ,CAAC,CAAC;QACP,CAAC,CAAC,CAAA;KACL;AACL,CAAC,CAAA;AAxBY,QAAA,iBAAiB,qBAwB7B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ossiana/node-libcurl",
3
- "version": "1.0.9-alpha-2",
3
+ "version": "1.0.9-alpha-5",
4
4
  "dependencies": {
5
5
  "@mapbox/node-pre-gyp": "^1.0.10",
6
6
  "bindings": "^1.5.0",
package/src/export.ts DELETED
@@ -1,4 +0,0 @@
1
- import { LibCurl } from "./libcurl"
2
- import { fetch } from "./fetch"
3
- import { requests } from './requests'
4
- export { LibCurl, fetch, requests };
package/src/fetch.ts DELETED
@@ -1,68 +0,0 @@
1
- import { LibCurl, LibCurlBodyInfo, LibCurlMethodInfo, LibCurlHeadersInfo, LibCurlCookiesAttr, LibCurlHttpVersionInfo, LibCurlProxyInfo, LibCurlCookiesInfo } from "./libcurl";
2
- import { libcurlSetCookies } from "./utils";
3
-
4
- interface LibCurlRequestInfo {
5
- method?: LibCurlMethodInfo;
6
- headers?: LibCurlHeadersInfo;
7
- body?: LibCurlBodyInfo;
8
- redirect?: boolean;
9
- cookies?: LibCurlCookiesInfo;
10
- httpVersion?: LibCurlHttpVersionInfo;
11
- openInnerLog?: boolean;
12
- proxy?: LibCurlProxyInfo;
13
- /**
14
- * 传入LibCurl实例可以做持久化连接
15
- */
16
- instance?: LibCurl;
17
- }
18
-
19
- interface LibCurlResponseInfo {
20
- status: () => number;
21
- arraybuffer: () => Promise<ArrayBuffer>;
22
- text: () => Promise<string>;
23
- json: () => Promise<object>;
24
- headers: () => Promise<string>;
25
- cookies: () => Promise<string>;
26
- cookiesMap: () => Promise<LibCurlCookiesAttr>;
27
- }
28
-
29
- export async function fetch(url: string | URL, request: LibCurlRequestInfo = {}): Promise<LibCurlResponseInfo> {
30
- request.instance ||= new LibCurl();
31
- const curl = request.instance;
32
- const { method = "GET",
33
- headers, redirect = false, httpVersion = 0,
34
- openInnerLog = false, proxy, body, cookies } = request;
35
- curl.open(method, url + '', true);
36
- if (headers) {
37
- curl.setRequestHeaders(headers);
38
- }
39
- if (redirect) {
40
- curl.setRedirect(true);
41
- }
42
- if (httpVersion) {
43
- curl.setHttpVersion(httpVersion);
44
- }
45
- if (openInnerLog) {
46
- curl.printInnerLogger();
47
- }
48
- if (cookies) {
49
- const { hostname } = new URL(url);
50
- if (cookies) {
51
- libcurlSetCookies(curl, cookies, hostname);
52
- }
53
- }
54
- if (proxy) {
55
- curl.setProxy(proxy);
56
- }
57
- await curl.send(body);
58
- return {
59
- status: () => curl.getResponseStatus(),
60
- arraybuffer: async () => curl.getResponseBody().buffer,
61
- text: async () => curl.getResponseString(),
62
- json: async () => curl.getResponseJson(),
63
- headers: async () => curl.getResponseHeaders(),
64
- cookies: async () => curl.getCookies(),
65
- cookiesMap: async () => curl.getCookiesMap(),
66
- } as LibCurlResponseInfo;
67
-
68
- }
package/src/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './export'
package/src/libcurl.ts DELETED
@@ -1,334 +0,0 @@
1
- import bindings from 'bindings'
2
- import { httpCookiesToArray, cookieOptFilter } from './utils';
3
-
4
- const { BaoLibCurl } = bindings('bao_curl_node_addon');
5
-
6
- export enum LibCurlHttpVersionInfo {
7
- http1_1,
8
- http2,
9
- }
10
-
11
- //Domain Secure Path CORS TimeStamp Name Value
12
- export type LibCurlSetCookieOption = {
13
- domain?: string;
14
- // secure?: boolean;
15
- path?: string;
16
- // cors?: boolean;
17
- name: string;
18
- value: string;
19
- }
20
-
21
- export type LibCurlCookiesInfo = string | { [key: string]: string };
22
-
23
-
24
- export type LibCurlGetCookiesOption = {
25
- domain?: string;
26
- path?: string;
27
- }
28
-
29
- export type LibCurlGetCookieOption = {
30
- name: string;
31
- domain: string;
32
- path?: string;
33
- }
34
-
35
- export type LibCurlCookieAttrArray = [
36
- domain: string, secure: boolean, path: string, cors: boolean, timestamp: number, name: string, value: string
37
- ]
38
-
39
- export type LibCurlCookieAttrObject = {
40
- domain: string, secure: boolean, path: string, cors: boolean, timestamp: number, value: string
41
- }
42
-
43
- export type LibCurlCookiesAttr = Map<string, LibCurlCookieAttrObject>
44
-
45
- export type LibCurlHeadersAttr = Map<string, string>
46
-
47
- export type LibCurlHeadersInfo = string | { [key: string]: [value: string] } | LibCurlHeadersAttr
48
-
49
- export type LibCurlBodyInfo = string | Uint8Array | URLSearchParams | any;
50
-
51
- export type LibCurlMethodInfo = 'GET' | 'POST' | 'HEAD' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'
52
-
53
- export type LibCurlProxyWithAccountInfo = {
54
- proxy: string;
55
- username: string;
56
- password: string;
57
- };
58
-
59
- export type LibCurlProxyInfo = string | LibCurlProxyWithAccountInfo;
60
-
61
- export type LibCurlURLInfo = string | URL;
62
-
63
- export class LibCurlError extends Error {
64
- constructor(e: string) {
65
- super(e)
66
- }
67
- }
68
-
69
- export class LibCurl {
70
- private m_libCurl_impl_: any;
71
- private m_isAsync_: boolean;
72
- private m_isSending_: boolean;
73
- constructor() {
74
- this.m_libCurl_impl_ = new BaoLibCurl();
75
- }
76
- private checkSending(): void {
77
- if (this.m_isSending_) {
78
- throw new Error('the last request is sending, don\'t send one more request on one instance!')
79
- }
80
- }
81
- public open(method: LibCurlMethodInfo, url: LibCurlURLInfo, async: boolean = true): void {
82
- this.checkSending();
83
- this.m_libCurl_impl_.open(method, url + '');
84
- this.m_isAsync_ = async;
85
- }
86
-
87
- public setRequestHeader(key: string, value: string): void {
88
- this.checkSending();
89
- this.m_libCurl_impl_.setRequestHeader(key, value);
90
- }
91
-
92
- /**
93
- *
94
- * @param headers
95
- */
96
- public setRequestHeaders(headers: LibCurlHeadersInfo): void {
97
- this.checkSending();
98
- if (!headers) {
99
- return;
100
- }
101
- if (headers instanceof Map) {
102
- headers.forEach((value, key) => this.m_libCurl_impl_.setRequestHeader(key, value))
103
- } else if (typeof headers == 'string') {
104
- this.m_libCurl_impl_.setRequestHeaders(headers);
105
- } else if (typeof headers == 'object') {
106
- Object.keys(headers).forEach((key) => {
107
- const value = headers[key];
108
- this.m_libCurl_impl_.setRequestHeader(key, value);
109
- })
110
- } else {
111
- throw new TypeError('unkown type')
112
- }
113
- }
114
-
115
- /**
116
- *
117
- * @param proxy host:port sample:127.0.0.1:8888
118
- * @param username
119
- * @param password
120
- */
121
- public setProxy(proxyOpt: LibCurlProxyInfo): void {
122
- this.checkSending();
123
- if (typeof proxyOpt == 'string') {
124
- this.m_libCurl_impl_.setProxy(proxyOpt);
125
- } else {
126
- this.m_libCurl_impl_.setProxy(proxyOpt.proxy, proxyOpt.username, proxyOpt.password);
127
- }
128
- }
129
-
130
- /**
131
- *
132
- * @param connectTime 连接上远程服务器的最长等待时间
133
- * @param sendTime 发送最长等待时间
134
- * sendTime时长包含connectTime 所以sendTime要大于connectTime
135
- */
136
- public setTimeout(connectTime: number, sendTime: number): void {
137
- this.checkSending();
138
- if (connectTime > sendTime) {
139
- throw new Error('连接时间大于发送等待时间.');
140
- }
141
- this.m_libCurl_impl_.setTimeout(connectTime, sendTime);
142
- }
143
-
144
- /**
145
- *
146
- * @param key
147
- * @param value
148
- * @param domain cookie作用域 sample: .baidu.com baike.baidu.com
149
- */
150
- public setCookie(cookieOpt: LibCurlSetCookieOption): void {
151
- this.checkSending();
152
- this.m_libCurl_impl_.setCookie(cookieOpt.name, cookieOpt.value, cookieOpt.domain, cookieOpt.path);
153
- }
154
-
155
- /**
156
- *
157
- * @param cookieOpt
158
- * @param domain cookie作用域 sample: .baidu.com baike.baidu.com
159
- */
160
- public deleteCookie(cookieOpt: LibCurlGetCookieOption): void {
161
- this.checkSending();
162
- this.m_libCurl_impl_.deleteCookie(cookieOpt.name, cookieOpt.domain, cookieOpt.path || "/");
163
- }
164
-
165
- /**
166
- * @param {LibCurlGetCookiesOption}cookieOpt
167
- * @returns 返回所有Cookies sample:'a=b;c=d;'
168
- */
169
- public getCookies(cookieOpt?: LibCurlGetCookiesOption): string {
170
- this.checkSending();
171
- const cookies_ = this.m_libCurl_impl_.getCookies();
172
- return httpCookiesToArray(cookies_).filter(cookieOptFilter(cookieOpt)).map(e => `${e[5]}=${encodeURIComponent(e[6])}`).join(';');
173
- }
174
-
175
- /**
176
- * @param {LibCurlGetCookiesOption}cookieOpt
177
- * @returns 返回所有Cookie的Map
178
- */
179
- public getCookiesMap(cookieOpt?: LibCurlGetCookiesOption): LibCurlCookiesAttr {
180
- this.checkSending();
181
- const cookies_ = this.m_libCurl_impl_.getCookies();
182
- return httpCookiesToArray(cookies_).filter(cookieOptFilter(cookieOpt)).reduce((e: LibCurlCookiesAttr, t: LibCurlCookieAttrArray) => {
183
- e.set(t[5], {
184
- domain: t[0],
185
- secure: t[1],
186
- path: t[2],
187
- cors: t[3],
188
- timestamp: t[4],
189
- value: t[6],
190
- } as LibCurlCookieAttrObject)
191
- return e;
192
- }, new Map<string, LibCurlCookieAttrObject>());
193
- }
194
-
195
- /**
196
- *
197
- * @param cookieOpt
198
- * @returns 返回该cookieOpt对应的cookieValue
199
- * sample:
200
- */
201
- public getCookie(cookieOpt: LibCurlGetCookieOption): string {
202
- this.checkSending();
203
- return this.m_libCurl_impl_.getCookie(cookieOpt.name, cookieOpt.domain || "", cookieOpt.path || "");
204
- }
205
-
206
- /**
207
- *
208
- * @returns 返回响应头
209
- */
210
- public getResponseHeaders(): string {
211
- this.checkSending();
212
- return this.m_libCurl_impl_.getResponseHeaders();
213
- }
214
-
215
- /**
216
- * @returns 返回响应头 Map
217
- */
218
- public getResponseHeadersMap(): LibCurlHeadersAttr {
219
- this.checkSending();
220
- const headers_ = this.m_libCurl_impl_.getResponseHeaders();
221
- return headers_.split('\r\n')
222
- .slice(1)//HTTP/1.1 200 OK
223
- .reduce((e: LibCurlHeadersAttr, t: string) => {
224
- if (!t) {
225
- return e;
226
- }
227
- const [key, value] = t.split(': ');
228
- e.set(key, value);
229
- return e;
230
- }, new Map<string, string>());
231
- }
232
-
233
- /**
234
- *
235
- * @returns 返回状态码
236
- * sample: 200 403 404
237
- */
238
- public getResponseStatus(): number {
239
- this.checkSending();
240
- return this.m_libCurl_impl_.getResponseStatus();
241
- }
242
-
243
- /**
244
- * 重置curl 包括之前的所有设定
245
- */
246
- public reset(): void {
247
- this.checkSending();
248
- this.m_libCurl_impl_.reset();
249
- }
250
-
251
- /**
252
- *
253
- * @param isAllow 是否允许重定向
254
- */
255
- public setRedirect(isAllow: boolean): void {
256
- this.checkSending();
257
- this.m_libCurl_impl_.setRedirect(isAllow);
258
- }
259
-
260
- /**
261
- * 打印libcurl内部的 解析信息、连接信息、tls信息等等
262
- */
263
- public printInnerLogger(): void {
264
- this.checkSending();
265
- this.m_libCurl_impl_.printInnerLogger();
266
- }
267
-
268
- /**
269
- *
270
- * @param version
271
- * 设置http版本号
272
- */
273
- public setHttpVersion(version: LibCurlHttpVersionInfo): void {
274
- this.checkSending();
275
- this.m_libCurl_impl_.setHttpVersion(version);
276
- }
277
-
278
- /**
279
- *
280
- * @param body POST PUT PATCH时 发送的body
281
- * 当body不为string或uint8array时 此函数将用JSON.stringify转换对象
282
- */
283
- public send(body?: LibCurlBodyInfo): Promise<undefined> | undefined {
284
- this.checkSending();
285
- this.m_isSending_ = true;
286
- if (this.m_isAsync_) {
287
- return new Promise((resolve, reject) => {
288
- const callback = (curlcode: number, curlcodeError: string) => {
289
- this.m_isSending_ = false;
290
- if (curlcode != 0) {
291
- reject(new LibCurlError(curlcodeError));
292
- } else {
293
- resolve(void 0);
294
- }
295
- };
296
- if (body) {
297
- if (body instanceof URLSearchParams) {
298
- this.m_libCurl_impl_.sendAsync(body + '', callback);
299
- } else {
300
- this.m_libCurl_impl_.sendAsync(body, callback);
301
- }
302
- } else {
303
- this.m_libCurl_impl_.sendAsync(callback);
304
- }
305
- })
306
- }
307
- if (body) {
308
- if (body instanceof URLSearchParams) {
309
- this.m_libCurl_impl_.send(body + '');
310
- } else {
311
- this.m_libCurl_impl_.send(body);
312
- }
313
- } else {
314
- this.m_libCurl_impl_.send();
315
- }
316
- }
317
-
318
- public getResponseBody(): Uint8Array {
319
- this.checkSending();
320
- return this.m_libCurl_impl_.getResponseBody();
321
- }
322
-
323
- public getResponseString(): string {
324
- this.checkSending();
325
- return this.m_libCurl_impl_.getResponseString();
326
- }
327
-
328
- public getResponseJson(): Object {
329
- this.checkSending();
330
- return JSON.parse(this.getResponseString());
331
- }
332
-
333
-
334
- }
package/src/requests.ts DELETED
@@ -1,211 +0,0 @@
1
- import { LibCurl, LibCurlBodyInfo, LibCurlCookiesAttr, LibCurlCookiesInfo, LibCurlHeadersAttr, LibCurlHeadersInfo, LibCurlMethodInfo, LibCurlProxyInfo, LibCurlHttpVersionInfo, LibCurlURLInfo } from "./libcurl"
2
- import { libcurlSetCookies } from "./utils";
3
-
4
- type requestsHttpVersionInfo = LibCurlHttpVersionInfo;
5
- type requestsHeadersInfo = LibCurlHeadersInfo;
6
- type requestsBodyInfo = LibCurlBodyInfo;
7
- type requestsCookiesInfo = LibCurlCookiesInfo;
8
- type requestsMethodInfo = LibCurlMethodInfo;
9
-
10
- type requestsProxyInfo = LibCurlProxyInfo;
11
- type requestsURLInfo = LibCurlURLInfo
12
-
13
- interface requestsResponseImp {
14
- readonly text: string;
15
- readonly json: object;
16
- readonly buffer: Uint8Array;
17
- readonly headers: string;
18
- readonly headersMap: LibCurlHeadersAttr;
19
- readonly status: number;
20
- }
21
-
22
- class requestsResponse implements requestsResponseImp {
23
- private curl: LibCurl;
24
- constructor(curl: LibCurl) {
25
- this.curl = curl;
26
- }
27
-
28
- public get text(): string {
29
- return this.curl.getResponseString();
30
- }
31
-
32
- public get json(): object {
33
- return this.curl.getResponseJson();
34
- }
35
-
36
- public get buffer(): Uint8Array {
37
- return this.curl.getResponseBody();
38
- }
39
-
40
- public get headers(): string {
41
- return this.curl.getResponseHeaders();
42
- }
43
-
44
- public get headersMap(): LibCurlHeadersAttr {
45
- return this.curl.getResponseHeadersMap();
46
- }
47
-
48
- public get status(): number {
49
- return this.curl.getResponseStatus();
50
- }
51
-
52
-
53
- }
54
-
55
- interface requestsInitOption {
56
- redirect?: boolean;
57
- cookies?: requestsCookiesInfo;
58
- proxy?: requestsProxyInfo;
59
- body?: requestsBodyInfo;
60
- httpVersion?: requestsHttpVersionInfo;
61
-
62
- /**
63
- * 单位(秒)
64
- */
65
- timeout?: number;
66
- /**
67
- * 传入LibCurl实例可以做持久化连接
68
- */
69
- instance?: LibCurl;
70
- }
71
-
72
- type requestsParamsInfo = URLSearchParams | string | { [key: string]: string };
73
-
74
- interface requestsOption {
75
- headers?: requestsHeadersInfo;
76
- body?: requestsBodyInfo;
77
- params?: requestsParamsInfo;
78
- }
79
-
80
- const assignURLSearchParam = (target: URLSearchParams, source: URLSearchParams) => {
81
- source.forEach((value, key) => {
82
- target.append(key, value);
83
- })
84
- }
85
-
86
- export class requests {
87
- private option: requestsInitOption;
88
- constructor(option: requestsInitOption = {}) {
89
- this.option = { ...option };
90
- const { cookies, timeout } = option;
91
- const curl = this.option.instance ||= new LibCurl();
92
-
93
- if (cookies) {
94
- libcurlSetCookies(curl, cookies, '.');
95
- }
96
- if (timeout) {
97
- curl.setTimeout(timeout, timeout);
98
- }
99
- }
100
-
101
- static session(option: requestsInitOption = {}): requests {
102
- return new requests(option);
103
- }
104
-
105
-
106
- //暂定6种常用方法
107
- static async get(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
108
- return requests.session().sendRequest('GET', url, requestOpt);
109
- }
110
- static async post(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
111
- return requests.session().sendRequest('POST', url, requestOpt);
112
- }
113
- static async put(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
114
- return requests.session().sendRequest('PUT', url, requestOpt);
115
- }
116
- static async patch(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
117
- return requests.session().sendRequest('PATCH', url, requestOpt);
118
- }
119
- static async trace(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
120
- return requests.session().sendRequest('TRACE', url, requestOpt);
121
- }
122
- static async head(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
123
- return requests.session().sendRequest('HEAD', url, requestOpt);
124
- }
125
- async get(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
126
- return this.sendRequest('GET', url, requestOpt);
127
- }
128
- async post(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
129
- return this.sendRequest('POST', url, requestOpt);
130
- }
131
- async put(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
132
- return this.sendRequest('PUT', url, requestOpt);
133
- }
134
- async patch(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
135
- return this.sendRequest('PATCH', url, requestOpt);
136
- }
137
- async trace(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
138
- return this.sendRequest('TRACE', url, requestOpt);
139
- }
140
- async head(url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
141
- return this.sendRequest('HEAD', url, requestOpt);
142
- }
143
-
144
- setCookie(key: string, value: string, domain: string = '', path: string = '') {
145
- this.option.instance.setCookie({
146
- name: key,
147
- value,
148
- domain,
149
- path,
150
- });
151
- }
152
-
153
- getCookie(key: string, domain?: string, path?: string): string {
154
- return this.option.instance.getCookie({
155
- name: key,
156
- domain: domain || "",
157
- path: path || "",
158
- })
159
- }
160
-
161
- getCookies(domain?: string, path?: string): string {
162
- if (arguments.length == 0) {
163
- return this.option.instance.getCookies();
164
- }
165
- return this.option.instance.getCookies({
166
- domain: domain || "",
167
- path: path || "",
168
- })
169
- }
170
- getCookiesMap(domain?: string, path?: string): LibCurlCookiesAttr {
171
- if (arguments.length == 0) {
172
- return this.option.instance.getCookiesMap();
173
- }
174
- return this.option.instance.getCookiesMap({
175
- domain: domain || "",
176
- path: path || "",
177
- })
178
- }
179
-
180
- deleteCookie(key: string, domain: string, path?: string) {
181
- this.option.instance.deleteCookie({
182
- name: key,
183
- domain: domain,
184
- path: path || "/",
185
- })
186
- }
187
-
188
- private async sendRequest(method: requestsMethodInfo, url: requestsURLInfo, requestOpt?: requestsOption): Promise<requestsResponse> {
189
- const { instance: curl, redirect = false, proxy, httpVersion } = this.option;
190
- const { headers, body, params } = requestOpt || {};
191
- const url_ = new URL(url);
192
- if (params) {
193
- assignURLSearchParam(url_.searchParams, new URLSearchParams(params));
194
- }
195
- curl.open(method, url_, true);
196
- if (headers) {
197
- curl.setRequestHeaders(headers);
198
- }
199
- if (redirect) {
200
- curl.setRedirect(true);
201
- }
202
- if (httpVersion) {
203
- curl.setHttpVersion(httpVersion);
204
- }
205
- if (proxy) {
206
- curl.setProxy(proxy);
207
- }
208
- await curl.send(body);
209
- return new requestsResponse(curl);
210
- }
211
- }
package/src/utils.ts DELETED
@@ -1,71 +0,0 @@
1
- import { LibCurl, LibCurlCookieAttrArray, LibCurlCookiesInfo, LibCurlGetCookiesOption } from "./libcurl";
2
-
3
- export const httpCookiesToArray: (cookies: string) => LibCurlCookieAttrArray[] = (cookies) => {
4
- const stringBooleanToJsBoolean = (e: string) => {
5
- switch (e) {
6
- case 'TRUE':
7
- return true;
8
- case 'FALSE':
9
- return false;
10
- default:
11
- throw new Error(`unkonw type ${e}`)
12
- }
13
- }
14
- /*
15
- * Domain Secure Path CORS TimeStamp Name Value
16
- * sample: .127.0.0.1 TRUE / FALSE 3000000000 a b
17
- * .127.0.0.1 TRUE /api FALSE 3000000000 c d
18
- */
19
- const cookies_ = [];
20
- for (const it of cookies.split('\n')) {
21
- if (!it) {
22
- continue;
23
- }
24
- const [domain, secure, path, cors, timestamp, name, value] = it.split('\t');
25
- cookies_.push([domain.replace(/#HttpOnly_/i, ''), stringBooleanToJsBoolean(secure), path, stringBooleanToJsBoolean(cors), parseInt(timestamp), name, value])
26
- }
27
- return cookies_;
28
- }
29
-
30
- export const cookieOptFilter = (cookieOpt: LibCurlGetCookiesOption) => {
31
- return (e: LibCurlCookieAttrArray) => {
32
- if (cookieOpt) {
33
- if (cookieOpt.domain) {
34
- if (cookieOpt.domain != e[0])
35
- return false;
36
- }
37
- if (cookieOpt.path) {
38
- if (cookieOpt.path != e[2])
39
- return false;
40
- }
41
- }
42
- return true;
43
- }
44
- }
45
-
46
-
47
- export const libcurlSetCookies = (curl: LibCurl, cookies: LibCurlCookiesInfo, domain: string) => {
48
- if (typeof cookies == 'string') {
49
- cookies.replace(/\s+/g, '')
50
- .split(';')
51
- .reverse()//保证顺序不颠倒
52
- .map(e => e.split('=', 2))
53
- .forEach(([key, value]) => {
54
- curl.setCookie({
55
- name: key,
56
- value,
57
- domain,
58
- path: '/',
59
- })
60
- });
61
- } else {
62
- Object.keys(cookies).forEach(key => {
63
- curl.setCookie({
64
- name: key,
65
- value: cookies[key],
66
- domain,
67
- path: '/',
68
- });
69
- })
70
- }
71
- }