urllib 3.0.0-alpha.0 → 3.0.0-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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "3.0.0-alpha.0",
3
+ "version": "3.0.0-alpha.1",
4
4
  "description": "Help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more. Base undici fetch API.",
5
5
  "keywords": [
6
6
  "urllib",
@@ -52,14 +52,10 @@
52
52
  "prepack": "npm run build && rm -rf src/*.tsbuildinfo"
53
53
  },
54
54
  "dependencies": {
55
- "content-type": "^1.0.2",
56
55
  "default-user-agent": "^1.0.0",
57
56
  "digest-header": "^0.0.1",
58
- "humanize-ms": "^1.2.0",
59
- "iconv-lite": "^0.4.15",
60
57
  "ip": "^1.1.5",
61
58
  "mime-types": "^2.1.35",
62
- "tslib": "^2.4.0",
63
59
  "undici": "^5.4.0"
64
60
  },
65
61
  "devDependencies": {
@@ -73,13 +69,16 @@
73
69
  "eslint": "^8.17.0",
74
70
  "eslint-config-egg": "^12.0.0",
75
71
  "git-contributor": "1",
72
+ "iconv-lite": "^0.6.3",
76
73
  "jest": "28",
77
74
  "jest-summary-reporter": "^0.0.2",
75
+ "p-event": "^4.2.0",
78
76
  "ts-jest": "28",
77
+ "tslib": "^2.4.0",
79
78
  "typescript": "4"
80
79
  },
81
80
  "engines": {
82
- "node": ">= 16.0.0"
81
+ "node": ">= 16.5.0"
83
82
  },
84
83
  "ci": {
85
84
  "version": "16, 18"
package/src/HttpClient.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { debuglog } from 'util';
3
3
  import { Readable, isReadable } from 'stream';
4
+ import { pipeline } from 'stream/promises';
4
5
  import { Blob } from 'buffer';
5
6
  import { createReadStream } from 'fs';
6
7
  import { basename } from 'path';
@@ -10,6 +11,8 @@ import {
10
11
  import createUserAgent from 'default-user-agent';
11
12
  import mime from 'mime-types';
12
13
  import { RequestURL, RequestOptions } from './Request';
14
+ import { HttpClientResponseMeta, HttpClientResponse, ReadableStreamWithMeta } from './Response';
15
+ import { parseJSON } from './utils';
13
16
 
14
17
  const debug = debuglog('urllib');
15
18
 
@@ -76,7 +79,7 @@ export class HttpClient extends EventEmitter {
76
79
  const requestStartTime = Date.now();
77
80
  // keep urllib createCallbackResponse style
78
81
  const resHeaders: Record<string, string> = {};
79
- const res = {
82
+ const res: HttpClientResponseMeta = {
80
83
  status: -1,
81
84
  statusCode: -1,
82
85
  statusMessage: '',
@@ -89,10 +92,6 @@ export class HttpClient extends EventEmitter {
89
92
  timing: {
90
93
  contentDownload: 0,
91
94
  },
92
- // remoteAddress: remoteAddress,
93
- // remotePort: remotePort,
94
- // socketHandledRequests: socketHandledRequests,
95
- // socketHandledResponses: socketHandledResponses,
96
95
  };
97
96
 
98
97
  let requestTimeout = 5000;
@@ -110,10 +109,7 @@ export class HttpClient extends EventEmitter {
110
109
 
111
110
  try {
112
111
  const headers = new Headers(args.headers ?? {});
113
- // don't set user-agent
114
- const disableUserAgent = args.headers &&
115
- (args.headers['User-Agent'] === null || args.headers['user-agent'] === null);
116
- if (!disableUserAgent && !headers.has('user-agent')) {
112
+ if (!headers.has('user-agent')) {
117
113
  // need to set user-agent
118
114
  headers.set('user-agent', HEADER_USER_AGENT);
119
115
  }
@@ -131,6 +127,10 @@ export class HttpClient extends EventEmitter {
131
127
  }
132
128
 
133
129
  const isGETOrHEAD = requestOptions.method === 'GET' || requestOptions.method === 'HEAD';
130
+ // alias to args.content
131
+ if (args.stream && !args.content) {
132
+ args.content = args.stream;
133
+ }
134
134
 
135
135
  if (args.files) {
136
136
  if (isGETOrHEAD) {
@@ -234,16 +234,34 @@ export class HttpClient extends EventEmitter {
234
234
  res.size = parseInt(res.headers['content-length']);
235
235
  }
236
236
 
237
- let data: any;
237
+ let data: any = null;
238
+ let responseBodyStream: ReadableStreamWithMeta | undefined;
238
239
  if (args.streaming || args.dataType === 'stream') {
239
- data = response.body;
240
+ const meta = {
241
+ status: res.status,
242
+ statusCode: res.statusCode,
243
+ statusMessage: res.statusMessage,
244
+ headers: res.headers,
245
+ };
246
+ if (typeof Readable.fromWeb === 'function') {
247
+ responseBodyStream = Object.assign(Readable.fromWeb(response.body!), meta);
248
+ } else {
249
+ responseBodyStream = Object.assign(response.body!, meta);
250
+ }
251
+ } else if (args.writeStream) {
252
+ await pipeline(response.body!, args.writeStream);
240
253
  } else if (args.dataType === 'text') {
241
254
  data = await response.text();
242
255
  } else if (args.dataType === 'json') {
243
256
  if (requestOptions.method === 'HEAD') {
244
257
  data = {};
245
258
  } else {
246
- data = await response.json();
259
+ data = await response.text();
260
+ if (data.length === 0) {
261
+ data = null;
262
+ } else {
263
+ data = parseJSON(data, args.fixJSONCtlChars);
264
+ }
247
265
  }
248
266
  } else {
249
267
  // buffer
@@ -251,20 +269,23 @@ export class HttpClient extends EventEmitter {
251
269
  }
252
270
  res.rt = res.timing.contentDownload = Date.now() - requestStartTime;
253
271
 
254
- return {
272
+ const clientResponse: HttpClientResponse = {
255
273
  status: res.status,
256
274
  data,
257
275
  headers: res.headers,
258
276
  url: response.url,
259
277
  redirected: response.redirected,
260
- res,
278
+ res: responseBodyStream ?? res,
261
279
  };
280
+ return clientResponse;
262
281
  } catch (e: any) {
263
282
  let err = e;
264
283
  if (requestTimeoutController.signal.aborted) {
265
284
  err = new HttpClientRequestTimeoutError(requestTimeout, { cause: e });
266
285
  }
267
286
  err.res = res;
287
+ err.status = res.status;
288
+ err.headers = res.headers;
268
289
  // console.error(err);
269
290
  throw err;
270
291
  } finally {
package/src/Request.ts CHANGED
@@ -5,6 +5,9 @@ export type HttpMethod = 'GET' | 'POST' | 'DELETE' | 'PUT' | 'HEAD' | 'OPTIONS'
5
5
 
6
6
  export type RequestURL = string | URL;
7
7
 
8
+ export type FixJSONCtlCharsHandler = (data: string) => string;
9
+ export type FixJSONCtlChars = boolean | FixJSONCtlCharsHandler;
10
+
8
11
  export type RequestOptions = {
9
12
  /** Request method, defaults to GET. Could be GET, POST, DELETE or PUT. Alias 'type'. */
10
13
  method?: HttpMethod | Lowercase<HttpMethod>;
@@ -14,7 +17,9 @@ export type RequestOptions = {
14
17
  dataAsQueryString?: boolean;
15
18
  /** Manually set the content of payload. If set, data will be ignored. */
16
19
  content?: string | Buffer | Readable;
17
- /** Stream to be pipe to the remote. If set, data and content will be ignored. */
20
+ /** Stream to be pipe to the remote. If set, data and content will be ignored.
21
+ * Alias to `content` on Readable
22
+ */
18
23
  stream?: Readable;
19
24
  /**
20
25
  * A writable stream to be piped by the response stream.
@@ -46,7 +51,7 @@ export type RequestOptions = {
46
51
  */
47
52
  streaming?: boolean;
48
53
  /** Fix the control characters (U+0000 through U+001F) before JSON parse response. Default is false. */
49
- fixJSONCtlChars?: boolean;
54
+ fixJSONCtlChars?: FixJSONCtlChars;
50
55
  /** Request headers. */
51
56
  headers?: Record<string, string>;
52
57
  /**
package/src/Response.ts CHANGED
@@ -1,20 +1,40 @@
1
- import { OutgoingHttpHeaders, IncomingMessage } from 'http';
1
+ import { ReadableStream } from 'stream/web';
2
+ import { Readable } from 'stream';
2
3
 
3
- export interface HttpClientResponse<T> {
4
- data: T;
4
+ export type HttpClientResponseMeta = {
5
5
  status: number;
6
- headers: OutgoingHttpHeaders;
7
- res: IncomingMessage & {
8
- /**
9
- * https://eggjs.org/en/core/httpclient.html#timing-boolean
10
- */
11
- timing?: {
12
- queuing: number;
13
- dnslookup: number;
14
- connected: number;
15
- requestSent: number;
16
- waiting: number;
17
- contentDownload: number;
18
- }
6
+ statusCode: number;
7
+ statusMessage: string;
8
+ headers: Record<string, string>;
9
+ size: number;
10
+ aborted: boolean;
11
+ rt: number;
12
+ keepAliveSocket: boolean;
13
+ requestUrls: string[],
14
+ /**
15
+ * https://eggjs.org/en/core/httpclient.html#timing-boolean
16
+ */
17
+ timing: {
18
+ contentDownload: number;
19
19
  };
20
- }
20
+ // remoteAddress: remoteAddress,
21
+ // remotePort: remotePort,
22
+ // socketHandledRequests: socketHandledRequests,
23
+ // socketHandledResponses: socketHandledResponses,
24
+ };
25
+
26
+ export type ReadableStreamWithMeta = (Readable | ReadableStream) & {
27
+ status: number;
28
+ statusCode: number;
29
+ statusMessage: string;
30
+ headers: Record<string, string>;
31
+ };
32
+
33
+ export type HttpClientResponse = {
34
+ data: any;
35
+ status: number;
36
+ headers: Record<string, string>;
37
+ url: string;
38
+ redirected: boolean;
39
+ res: ReadableStreamWithMeta | HttpClientResponseMeta;
40
+ };
@@ -1,31 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { RequestURL, RequestOptions } from './Request';
4
+ import { HttpClientResponse } from './Response';
4
5
  export declare type ClientOptions = {
5
6
  defaultArgs?: RequestOptions;
6
7
  };
7
8
  export declare class HttpClient extends EventEmitter {
8
9
  defaultArgs?: RequestOptions;
9
10
  constructor(clientOptions?: ClientOptions);
10
- request(url: RequestURL, options?: RequestOptions): Promise<{
11
- status: number;
12
- data: any;
13
- headers: Record<string, string>;
14
- url: string;
15
- redirected: boolean;
16
- res: {
17
- status: number;
18
- statusCode: number;
19
- statusMessage: string;
20
- headers: Record<string, string>;
21
- size: number;
22
- aborted: boolean;
23
- rt: number;
24
- keepAliveSocket: boolean;
25
- requestUrls: string[];
26
- timing: {
27
- contentDownload: number;
28
- };
29
- };
30
- }>;
11
+ request(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse>;
31
12
  }
@@ -6,12 +6,14 @@ const tslib_1 = require("tslib");
6
6
  const events_1 = require("events");
7
7
  const util_1 = require("util");
8
8
  const stream_1 = require("stream");
9
+ const promises_1 = require("stream/promises");
9
10
  const buffer_1 = require("buffer");
10
11
  const fs_1 = require("fs");
11
12
  const path_1 = require("path");
12
13
  const undici_1 = require("undici");
13
14
  const default_user_agent_1 = tslib_1.__importDefault(require("default-user-agent"));
14
15
  const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
16
+ const utils_1 = require("./utils");
15
17
  const debug = (0, util_1.debuglog)('urllib');
16
18
  // https://github.com/octet-stream/form-data
17
19
  class BlobFromStream {
@@ -76,10 +78,6 @@ class HttpClient extends events_1.EventEmitter {
76
78
  timing: {
77
79
  contentDownload: 0,
78
80
  },
79
- // remoteAddress: remoteAddress,
80
- // remotePort: remotePort,
81
- // socketHandledRequests: socketHandledRequests,
82
- // socketHandledResponses: socketHandledResponses,
83
81
  };
84
82
  let requestTimeout = 5000;
85
83
  if (args.timeout) {
@@ -95,10 +93,7 @@ class HttpClient extends events_1.EventEmitter {
95
93
  const method = ((_b = args.method) !== null && _b !== void 0 ? _b : 'GET').toUpperCase();
96
94
  try {
97
95
  const headers = new undici_1.Headers((_c = args.headers) !== null && _c !== void 0 ? _c : {});
98
- // don't set user-agent
99
- const disableUserAgent = args.headers &&
100
- (args.headers['User-Agent'] === null || args.headers['user-agent'] === null);
101
- if (!disableUserAgent && !headers.has('user-agent')) {
96
+ if (!headers.has('user-agent')) {
102
97
  // need to set user-agent
103
98
  headers.set('user-agent', HEADER_USER_AGENT);
104
99
  }
@@ -114,6 +109,10 @@ class HttpClient extends events_1.EventEmitter {
114
109
  requestOptions.redirect = 'manual';
115
110
  }
116
111
  const isGETOrHEAD = requestOptions.method === 'GET' || requestOptions.method === 'HEAD';
112
+ // alias to args.content
113
+ if (args.stream && !args.content) {
114
+ args.content = args.stream;
115
+ }
117
116
  if (args.files) {
118
117
  if (isGETOrHEAD) {
119
118
  requestOptions.method = 'POST';
@@ -223,9 +222,24 @@ class HttpClient extends events_1.EventEmitter {
223
222
  if (res.headers['content-length']) {
224
223
  res.size = parseInt(res.headers['content-length']);
225
224
  }
226
- let data;
225
+ let data = null;
226
+ let responseBodyStream;
227
227
  if (args.streaming || args.dataType === 'stream') {
228
- data = response.body;
228
+ const meta = {
229
+ status: res.status,
230
+ statusCode: res.statusCode,
231
+ statusMessage: res.statusMessage,
232
+ headers: res.headers,
233
+ };
234
+ if (typeof stream_1.Readable.fromWeb === 'function') {
235
+ responseBodyStream = Object.assign(stream_1.Readable.fromWeb(response.body), meta);
236
+ }
237
+ else {
238
+ responseBodyStream = Object.assign(response.body, meta);
239
+ }
240
+ }
241
+ else if (args.writeStream) {
242
+ await (0, promises_1.pipeline)(response.body, args.writeStream);
229
243
  }
230
244
  else if (args.dataType === 'text') {
231
245
  data = await response.text();
@@ -235,7 +249,13 @@ class HttpClient extends events_1.EventEmitter {
235
249
  data = {};
236
250
  }
237
251
  else {
238
- data = await response.json();
252
+ data = await response.text();
253
+ if (data.length === 0) {
254
+ data = null;
255
+ }
256
+ else {
257
+ data = (0, utils_1.parseJSON)(data, args.fixJSONCtlChars);
258
+ }
239
259
  }
240
260
  }
241
261
  else {
@@ -243,14 +263,15 @@ class HttpClient extends events_1.EventEmitter {
243
263
  data = Buffer.from(await response.arrayBuffer());
244
264
  }
245
265
  res.rt = res.timing.contentDownload = Date.now() - requestStartTime;
246
- return {
266
+ const clientResponse = {
247
267
  status: res.status,
248
268
  data,
249
269
  headers: res.headers,
250
270
  url: response.url,
251
271
  redirected: response.redirected,
252
- res,
272
+ res: responseBodyStream !== null && responseBodyStream !== void 0 ? responseBodyStream : res,
253
273
  };
274
+ return clientResponse;
254
275
  }
255
276
  catch (e) {
256
277
  let err = e;
@@ -258,6 +279,8 @@ class HttpClient extends events_1.EventEmitter {
258
279
  err = new HttpClientRequestTimeoutError(requestTimeout, { cause: e });
259
280
  }
260
281
  err.res = res;
282
+ err.status = res.status;
283
+ err.headers = res.headers;
261
284
  // console.error(err);
262
285
  throw err;
263
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../HttpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../HttpClient.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import { Readable, Writable } from 'stream';
6
6
  import { LookupFunction } from 'net';
7
7
  export declare type HttpMethod = 'GET' | 'POST' | 'DELETE' | 'PUT' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'TRACE' | 'CONNECT';
8
8
  export declare type RequestURL = string | URL;
9
+ export declare type FixJSONCtlCharsHandler = (data: string) => string;
10
+ export declare type FixJSONCtlChars = boolean | FixJSONCtlCharsHandler;
9
11
  export declare type RequestOptions = {
10
12
  /** Request method, defaults to GET. Could be GET, POST, DELETE or PUT. Alias 'type'. */
11
13
  method?: HttpMethod | Lowercase<HttpMethod>;
@@ -15,7 +17,9 @@ export declare type RequestOptions = {
15
17
  dataAsQueryString?: boolean;
16
18
  /** Manually set the content of payload. If set, data will be ignored. */
17
19
  content?: string | Buffer | Readable;
18
- /** Stream to be pipe to the remote. If set, data and content will be ignored. */
20
+ /** Stream to be pipe to the remote. If set, data and content will be ignored.
21
+ * Alias to `content` on Readable
22
+ */
19
23
  stream?: Readable;
20
24
  /**
21
25
  * A writable stream to be piped by the response stream.
@@ -47,7 +51,7 @@ export declare type RequestOptions = {
47
51
  */
48
52
  streaming?: boolean;
49
53
  /** Fix the control characters (U+0000 through U+001F) before JSON parse response. Default is false. */
50
- fixJSONCtlChars?: boolean;
54
+ fixJSONCtlChars?: FixJSONCtlChars;
51
55
  /** Request headers. */
52
56
  headers?: Record<string, string>;
53
57
  /**
@@ -1,20 +1,35 @@
1
1
  /// <reference types="node" />
2
- import { OutgoingHttpHeaders, IncomingMessage } from 'http';
3
- export interface HttpClientResponse<T> {
4
- data: T;
2
+ /// <reference types="node" />
3
+ import { ReadableStream } from 'stream/web';
4
+ import { Readable } from 'stream';
5
+ export declare type HttpClientResponseMeta = {
5
6
  status: number;
6
- headers: OutgoingHttpHeaders;
7
- res: IncomingMessage & {
8
- /**
9
- * https://eggjs.org/en/core/httpclient.html#timing-boolean
10
- */
11
- timing?: {
12
- queuing: number;
13
- dnslookup: number;
14
- connected: number;
15
- requestSent: number;
16
- waiting: number;
17
- contentDownload: number;
18
- };
7
+ statusCode: number;
8
+ statusMessage: string;
9
+ headers: Record<string, string>;
10
+ size: number;
11
+ aborted: boolean;
12
+ rt: number;
13
+ keepAliveSocket: boolean;
14
+ requestUrls: string[];
15
+ /**
16
+ * https://eggjs.org/en/core/httpclient.html#timing-boolean
17
+ */
18
+ timing: {
19
+ contentDownload: number;
19
20
  };
20
- }
21
+ };
22
+ export declare type ReadableStreamWithMeta = (Readable | ReadableStream) & {
23
+ status: number;
24
+ statusCode: number;
25
+ statusMessage: string;
26
+ headers: Record<string, string>;
27
+ };
28
+ export declare type HttpClientResponse = {
29
+ data: any;
30
+ status: number;
31
+ headers: Record<string, string>;
32
+ url: string;
33
+ redirected: boolean;
34
+ res: ReadableStreamWithMeta | HttpClientResponseMeta;
35
+ };
@@ -1,25 +1,5 @@
1
1
  import { RequestOptions, RequestURL } from './Request';
2
- export declare function request(url: RequestURL, options?: RequestOptions): Promise<{
3
- status: number;
4
- data: any;
5
- headers: Record<string, string>;
6
- url: string;
7
- redirected: boolean;
8
- res: {
9
- status: number;
10
- statusCode: number;
11
- statusMessage: string;
12
- headers: Record<string, string>;
13
- size: number;
14
- aborted: boolean;
15
- rt: number;
16
- keepAliveSocket: boolean;
17
- requestUrls: string[];
18
- timing: {
19
- contentDownload: number;
20
- };
21
- };
22
- }>;
2
+ export declare function request(url: RequestURL, options?: RequestOptions): Promise<import("./Response").HttpClientResponse>;
23
3
  export { HttpClient } from './HttpClient';
24
4
  declare const _default: {
25
5
  request: typeof request;
@@ -0,0 +1,2 @@
1
+ import { FixJSONCtlChars } from './Request';
2
+ export declare function parseJSON(data: string, fixJSONCtlChars?: FixJSONCtlChars): string;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseJSON = void 0;
4
+ const JSONCtlCharsMap = {
5
+ '"': '\\"',
6
+ '\\': '\\\\',
7
+ '\b': '\\b',
8
+ '\f': '\\f',
9
+ '\n': '\\n',
10
+ '\r': '\\r',
11
+ '\t': '\\t', // \u0009
12
+ };
13
+ /* eslint no-control-regex: "off"*/
14
+ const JSONCtlCharsRE = /[\u0000-\u001F\u005C]/g;
15
+ function replaceOneChar(c) {
16
+ return JSONCtlCharsMap[c] || '\\u' + (c.charCodeAt(0) + 0x10000).toString(16).substring(1);
17
+ }
18
+ function replaceJSONCtlChars(value) {
19
+ return value.replace(JSONCtlCharsRE, replaceOneChar);
20
+ }
21
+ function parseJSON(data, fixJSONCtlChars) {
22
+ if (typeof fixJSONCtlChars === 'function') {
23
+ data = fixJSONCtlChars(data);
24
+ }
25
+ else if (fixJSONCtlChars) {
26
+ // https://github.com/node-modules/urllib/pull/77
27
+ // remote the control characters (U+0000 through U+001F)
28
+ data = replaceJSONCtlChars(data);
29
+ }
30
+ try {
31
+ data = JSON.parse(data);
32
+ }
33
+ catch (err) {
34
+ if (err.name === 'SyntaxError') {
35
+ err.name = 'JSONResponseFormatError';
36
+ }
37
+ if (data.length > 1024) {
38
+ // show 0~512 ... -512~end data
39
+ err.message += ' (data json format: ' +
40
+ JSON.stringify(data.slice(0, 512)) + ' ...skip... ' + JSON.stringify(data.slice(data.length - 512)) + ')';
41
+ }
42
+ else {
43
+ err.message += ' (data json format: ' + JSON.stringify(data) + ')';
44
+ }
45
+ throw err;
46
+ }
47
+ return data;
48
+ }
49
+ exports.parseJSON = parseJSON;
50
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK,EAAE,SAAS;CACvB,CAAC;AACF,mCAAmC;AACnC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,eAAiC;IACvE,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;QACzC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;KAC9B;SAAM,IAAI,eAAe,EAAE;QAC1B,iDAAiD;QACjD,wDAAwD;QACxD,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;YAC9B,GAAG,CAAC,IAAI,GAAG,yBAAyB,CAAC;SACtC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;YACtB,+BAA+B;YAC/B,GAAG,CAAC,OAAO,IAAI,sBAAsB;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC7G;aAAM;YACL,GAAG,CAAC,OAAO,IAAI,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;SACpE;QACD,MAAM,GAAG,CAAC;KACX;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAxBD,8BAwBC"}
@@ -1,31 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { RequestURL, RequestOptions } from './Request';
4
+ import { HttpClientResponse } from './Response';
4
5
  export declare type ClientOptions = {
5
6
  defaultArgs?: RequestOptions;
6
7
  };
7
8
  export declare class HttpClient extends EventEmitter {
8
9
  defaultArgs?: RequestOptions;
9
10
  constructor(clientOptions?: ClientOptions);
10
- request(url: RequestURL, options?: RequestOptions): Promise<{
11
- status: number;
12
- data: any;
13
- headers: Record<string, string>;
14
- url: string;
15
- redirected: boolean;
16
- res: {
17
- status: number;
18
- statusCode: number;
19
- statusMessage: string;
20
- headers: Record<string, string>;
21
- size: number;
22
- aborted: boolean;
23
- rt: number;
24
- keepAliveSocket: boolean;
25
- requestUrls: string[];
26
- timing: {
27
- contentDownload: number;
28
- };
29
- };
30
- }>;
11
+ request(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse>;
31
12
  }
@@ -3,12 +3,14 @@ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { EventEmitter } from 'events';
4
4
  import { debuglog } from 'util';
5
5
  import { Readable, isReadable } from 'stream';
6
+ import { pipeline } from 'stream/promises';
6
7
  import { Blob } from 'buffer';
7
8
  import { createReadStream } from 'fs';
8
9
  import { basename } from 'path';
9
10
  import { fetch, Headers, FormData, } from 'undici';
10
11
  import createUserAgent from 'default-user-agent';
11
12
  import mime from 'mime-types';
13
+ import { parseJSON } from './utils.js';
12
14
  const debug = debuglog('urllib');
13
15
  // https://github.com/octet-stream/form-data
14
16
  class BlobFromStream {
@@ -73,10 +75,6 @@ export class HttpClient extends EventEmitter {
73
75
  timing: {
74
76
  contentDownload: 0,
75
77
  },
76
- // remoteAddress: remoteAddress,
77
- // remotePort: remotePort,
78
- // socketHandledRequests: socketHandledRequests,
79
- // socketHandledResponses: socketHandledResponses,
80
78
  };
81
79
  let requestTimeout = 5000;
82
80
  if (args.timeout) {
@@ -92,10 +90,7 @@ export class HttpClient extends EventEmitter {
92
90
  const method = ((_b = args.method) !== null && _b !== void 0 ? _b : 'GET').toUpperCase();
93
91
  try {
94
92
  const headers = new Headers((_c = args.headers) !== null && _c !== void 0 ? _c : {});
95
- // don't set user-agent
96
- const disableUserAgent = args.headers &&
97
- (args.headers['User-Agent'] === null || args.headers['user-agent'] === null);
98
- if (!disableUserAgent && !headers.has('user-agent')) {
93
+ if (!headers.has('user-agent')) {
99
94
  // need to set user-agent
100
95
  headers.set('user-agent', HEADER_USER_AGENT);
101
96
  }
@@ -111,6 +106,10 @@ export class HttpClient extends EventEmitter {
111
106
  requestOptions.redirect = 'manual';
112
107
  }
113
108
  const isGETOrHEAD = requestOptions.method === 'GET' || requestOptions.method === 'HEAD';
109
+ // alias to args.content
110
+ if (args.stream && !args.content) {
111
+ args.content = args.stream;
112
+ }
114
113
  if (args.files) {
115
114
  if (isGETOrHEAD) {
116
115
  requestOptions.method = 'POST';
@@ -220,9 +219,24 @@ export class HttpClient extends EventEmitter {
220
219
  if (res.headers['content-length']) {
221
220
  res.size = parseInt(res.headers['content-length']);
222
221
  }
223
- let data;
222
+ let data = null;
223
+ let responseBodyStream;
224
224
  if (args.streaming || args.dataType === 'stream') {
225
- data = response.body;
225
+ const meta = {
226
+ status: res.status,
227
+ statusCode: res.statusCode,
228
+ statusMessage: res.statusMessage,
229
+ headers: res.headers,
230
+ };
231
+ if (typeof Readable.fromWeb === 'function') {
232
+ responseBodyStream = Object.assign(Readable.fromWeb(response.body), meta);
233
+ }
234
+ else {
235
+ responseBodyStream = Object.assign(response.body, meta);
236
+ }
237
+ }
238
+ else if (args.writeStream) {
239
+ await pipeline(response.body, args.writeStream);
226
240
  }
227
241
  else if (args.dataType === 'text') {
228
242
  data = await response.text();
@@ -232,7 +246,13 @@ export class HttpClient extends EventEmitter {
232
246
  data = {};
233
247
  }
234
248
  else {
235
- data = await response.json();
249
+ data = await response.text();
250
+ if (data.length === 0) {
251
+ data = null;
252
+ }
253
+ else {
254
+ data = parseJSON(data, args.fixJSONCtlChars);
255
+ }
236
256
  }
237
257
  }
238
258
  else {
@@ -240,14 +260,15 @@ export class HttpClient extends EventEmitter {
240
260
  data = Buffer.from(await response.arrayBuffer());
241
261
  }
242
262
  res.rt = res.timing.contentDownload = Date.now() - requestStartTime;
243
- return {
263
+ const clientResponse = {
244
264
  status: res.status,
245
265
  data,
246
266
  headers: res.headers,
247
267
  url: response.url,
248
268
  redirected: response.redirected,
249
- res,
269
+ res: responseBodyStream !== null && responseBodyStream !== void 0 ? responseBodyStream : res,
250
270
  };
271
+ return clientResponse;
251
272
  }
252
273
  catch (e) {
253
274
  let err = e;
@@ -255,6 +276,8 @@ export class HttpClient extends EventEmitter {
255
276
  err = new HttpClientRequestTimeoutError(requestTimeout, { cause: e });
256
277
  }
257
278
  err.res = res;
279
+ err.status = res.status;
280
+ err.headers = res.headers;
258
281
  // console.error(err);
259
282
  throw err;
260
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../HttpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../HttpClient.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import { Readable, Writable } from 'stream';
6
6
  import { LookupFunction } from 'net';
7
7
  export declare type HttpMethod = 'GET' | 'POST' | 'DELETE' | 'PUT' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'TRACE' | 'CONNECT';
8
8
  export declare type RequestURL = string | URL;
9
+ export declare type FixJSONCtlCharsHandler = (data: string) => string;
10
+ export declare type FixJSONCtlChars = boolean | FixJSONCtlCharsHandler;
9
11
  export declare type RequestOptions = {
10
12
  /** Request method, defaults to GET. Could be GET, POST, DELETE or PUT. Alias 'type'. */
11
13
  method?: HttpMethod | Lowercase<HttpMethod>;
@@ -15,7 +17,9 @@ export declare type RequestOptions = {
15
17
  dataAsQueryString?: boolean;
16
18
  /** Manually set the content of payload. If set, data will be ignored. */
17
19
  content?: string | Buffer | Readable;
18
- /** Stream to be pipe to the remote. If set, data and content will be ignored. */
20
+ /** Stream to be pipe to the remote. If set, data and content will be ignored.
21
+ * Alias to `content` on Readable
22
+ */
19
23
  stream?: Readable;
20
24
  /**
21
25
  * A writable stream to be piped by the response stream.
@@ -47,7 +51,7 @@ export declare type RequestOptions = {
47
51
  */
48
52
  streaming?: boolean;
49
53
  /** Fix the control characters (U+0000 through U+001F) before JSON parse response. Default is false. */
50
- fixJSONCtlChars?: boolean;
54
+ fixJSONCtlChars?: FixJSONCtlChars;
51
55
  /** Request headers. */
52
56
  headers?: Record<string, string>;
53
57
  /**
@@ -1,20 +1,35 @@
1
1
  /// <reference types="node" />
2
- import { OutgoingHttpHeaders, IncomingMessage } from 'http';
3
- export interface HttpClientResponse<T> {
4
- data: T;
2
+ /// <reference types="node" />
3
+ import { ReadableStream } from 'stream/web';
4
+ import { Readable } from 'stream';
5
+ export declare type HttpClientResponseMeta = {
5
6
  status: number;
6
- headers: OutgoingHttpHeaders;
7
- res: IncomingMessage & {
8
- /**
9
- * https://eggjs.org/en/core/httpclient.html#timing-boolean
10
- */
11
- timing?: {
12
- queuing: number;
13
- dnslookup: number;
14
- connected: number;
15
- requestSent: number;
16
- waiting: number;
17
- contentDownload: number;
18
- };
7
+ statusCode: number;
8
+ statusMessage: string;
9
+ headers: Record<string, string>;
10
+ size: number;
11
+ aborted: boolean;
12
+ rt: number;
13
+ keepAliveSocket: boolean;
14
+ requestUrls: string[];
15
+ /**
16
+ * https://eggjs.org/en/core/httpclient.html#timing-boolean
17
+ */
18
+ timing: {
19
+ contentDownload: number;
19
20
  };
20
- }
21
+ };
22
+ export declare type ReadableStreamWithMeta = (Readable | ReadableStream) & {
23
+ status: number;
24
+ statusCode: number;
25
+ statusMessage: string;
26
+ headers: Record<string, string>;
27
+ };
28
+ export declare type HttpClientResponse = {
29
+ data: any;
30
+ status: number;
31
+ headers: Record<string, string>;
32
+ url: string;
33
+ redirected: boolean;
34
+ res: ReadableStreamWithMeta | HttpClientResponseMeta;
35
+ };
@@ -1,25 +1,5 @@
1
1
  import { RequestOptions, RequestURL } from './Request';
2
- export declare function request(url: RequestURL, options?: RequestOptions): Promise<{
3
- status: number;
4
- data: any;
5
- headers: Record<string, string>;
6
- url: string;
7
- redirected: boolean;
8
- res: {
9
- status: number;
10
- statusCode: number;
11
- statusMessage: string;
12
- headers: Record<string, string>;
13
- size: number;
14
- aborted: boolean;
15
- rt: number;
16
- keepAliveSocket: boolean;
17
- requestUrls: string[];
18
- timing: {
19
- contentDownload: number;
20
- };
21
- };
22
- }>;
2
+ export declare function request(url: RequestURL, options?: RequestOptions): Promise<import("./Response").HttpClientResponse>;
23
3
  export { HttpClient } from './HttpClient';
24
4
  declare const _default: {
25
5
  request: typeof request;
@@ -0,0 +1,2 @@
1
+ import { FixJSONCtlChars } from './Request';
2
+ export declare function parseJSON(data: string, fixJSONCtlChars?: FixJSONCtlChars): string;
@@ -0,0 +1,46 @@
1
+ const JSONCtlCharsMap = {
2
+ '"': '\\"',
3
+ '\\': '\\\\',
4
+ '\b': '\\b',
5
+ '\f': '\\f',
6
+ '\n': '\\n',
7
+ '\r': '\\r',
8
+ '\t': '\\t', // \u0009
9
+ };
10
+ /* eslint no-control-regex: "off"*/
11
+ const JSONCtlCharsRE = /[\u0000-\u001F\u005C]/g;
12
+ function replaceOneChar(c) {
13
+ return JSONCtlCharsMap[c] || '\\u' + (c.charCodeAt(0) + 0x10000).toString(16).substring(1);
14
+ }
15
+ function replaceJSONCtlChars(value) {
16
+ return value.replace(JSONCtlCharsRE, replaceOneChar);
17
+ }
18
+ export function parseJSON(data, fixJSONCtlChars) {
19
+ if (typeof fixJSONCtlChars === 'function') {
20
+ data = fixJSONCtlChars(data);
21
+ }
22
+ else if (fixJSONCtlChars) {
23
+ // https://github.com/node-modules/urllib/pull/77
24
+ // remote the control characters (U+0000 through U+001F)
25
+ data = replaceJSONCtlChars(data);
26
+ }
27
+ try {
28
+ data = JSON.parse(data);
29
+ }
30
+ catch (err) {
31
+ if (err.name === 'SyntaxError') {
32
+ err.name = 'JSONResponseFormatError';
33
+ }
34
+ if (data.length > 1024) {
35
+ // show 0~512 ... -512~end data
36
+ err.message += ' (data json format: ' +
37
+ JSON.stringify(data.slice(0, 512)) + ' ...skip... ' + JSON.stringify(data.slice(data.length - 512)) + ')';
38
+ }
39
+ else {
40
+ err.message += ' (data json format: ' + JSON.stringify(data) + ')';
41
+ }
42
+ throw err;
43
+ }
44
+ return data;
45
+ }
46
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK,EAAE,SAAS;CACvB,CAAC;AACF,mCAAmC;AACnC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,eAAiC;IACvE,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;QACzC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;KAC9B;SAAM,IAAI,eAAe,EAAE;QAC1B,iDAAiD;QACjD,wDAAwD;QACxD,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;YAC9B,GAAG,CAAC,IAAI,GAAG,yBAAyB,CAAC;SACtC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;YACtB,+BAA+B;YAC/B,GAAG,CAAC,OAAO,IAAI,sBAAsB;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC7G;aAAM;YACL,GAAG,CAAC,OAAO,IAAI,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;SACpE;QACD,MAAM,GAAG,CAAC;KACX;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/src/utils.ts ADDED
@@ -0,0 +1,47 @@
1
+ import { FixJSONCtlChars } from './Request';
2
+
3
+ const JSONCtlCharsMap = {
4
+ '"': '\\"', // \u0022
5
+ '\\': '\\\\', // \u005c
6
+ '\b': '\\b', // \u0008
7
+ '\f': '\\f', // \u000c
8
+ '\n': '\\n', // \u000a
9
+ '\r': '\\r', // \u000d
10
+ '\t': '\\t', // \u0009
11
+ };
12
+ /* eslint no-control-regex: "off"*/
13
+ const JSONCtlCharsRE = /[\u0000-\u001F\u005C]/g;
14
+
15
+ function replaceOneChar(c: string) {
16
+ return JSONCtlCharsMap[c] || '\\u' + (c.charCodeAt(0) + 0x10000).toString(16).substring(1);
17
+ }
18
+
19
+ function replaceJSONCtlChars(value: string) {
20
+ return value.replace(JSONCtlCharsRE, replaceOneChar);
21
+ }
22
+
23
+ export function parseJSON(data: string, fixJSONCtlChars?: FixJSONCtlChars) {
24
+ if (typeof fixJSONCtlChars === 'function') {
25
+ data = fixJSONCtlChars(data);
26
+ } else if (fixJSONCtlChars) {
27
+ // https://github.com/node-modules/urllib/pull/77
28
+ // remote the control characters (U+0000 through U+001F)
29
+ data = replaceJSONCtlChars(data);
30
+ }
31
+ try {
32
+ data = JSON.parse(data);
33
+ } catch (err: any) {
34
+ if (err.name === 'SyntaxError') {
35
+ err.name = 'JSONResponseFormatError';
36
+ }
37
+ if (data.length > 1024) {
38
+ // show 0~512 ... -512~end data
39
+ err.message += ' (data json format: ' +
40
+ JSON.stringify(data.slice(0, 512)) + ' ...skip... ' + JSON.stringify(data.slice(data.length - 512)) + ')';
41
+ } else {
42
+ err.message += ' (data json format: ' + JSON.stringify(data) + ')';
43
+ }
44
+ throw err;
45
+ }
46
+ return data;
47
+ }