urllib 4.4.0 → 4.5.0-beta.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.
@@ -131,8 +131,10 @@ export function initDiagnosticsChannel() {
131
131
  subscribe('undici:client:sendHeaders', (message, name) => {
132
132
  const { request, socket } = message;
133
133
  const opaque = getRequestOpaque(request, kHandler);
134
- if (!opaque || !opaque[symbols.kRequestId])
134
+ if (!opaque || !opaque[symbols.kRequestId]) {
135
+ debug('[%s] opaque not found', name);
135
136
  return;
137
+ }
136
138
  socket[symbols.kHandledRequests]++;
137
139
  // attach socket to opaque
138
140
  opaque[symbols.kRequestSocket] = socket;
@@ -150,8 +152,10 @@ export function initDiagnosticsChannel() {
150
152
  subscribe('undici:request:bodySent', (message, name) => {
151
153
  const { request } = message;
152
154
  const opaque = getRequestOpaque(request, kHandler);
153
- if (!opaque || !opaque[symbols.kRequestId])
155
+ if (!opaque || !opaque[symbols.kRequestId]) {
156
+ debug('[%s] opaque not found', name);
154
157
  return;
158
+ }
155
159
  debug('[%s] Request#%d send body', name, opaque[symbols.kRequestId]);
156
160
  if (!opaque[symbols.kEnableRequestTiming])
157
161
  return;
@@ -161,8 +165,10 @@ export function initDiagnosticsChannel() {
161
165
  subscribe('undici:request:headers', (message, name) => {
162
166
  const { request, response } = message;
163
167
  const opaque = getRequestOpaque(request, kHandler);
164
- if (!opaque || !opaque[symbols.kRequestId])
168
+ if (!opaque || !opaque[symbols.kRequestId]) {
169
+ debug('[%s] opaque not found', name);
165
170
  return;
171
+ }
166
172
  // get socket from opaque
167
173
  const socket = opaque[symbols.kRequestSocket];
168
174
  if (socket) {
@@ -181,6 +187,7 @@ export function initDiagnosticsChannel() {
181
187
  const { request } = message;
182
188
  const opaque = getRequestOpaque(request, kHandler);
183
189
  if (!opaque || !opaque[symbols.kRequestId]) {
190
+ debug('[%s] opaque not found', name);
184
191
  return;
185
192
  }
186
193
  debug('[%s] Request#%d get response body and trailers', name, opaque[symbols.kRequestId]);
@@ -199,4 +206,4 @@ export function initDiagnosticsChannel() {
199
206
  // formatSocket(socket), error);
200
207
  // });
201
208
  }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpY3NDaGFubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWdub3N0aWNzQ2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3BELElBQUksd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLDBEQUEwRDtBQUMxRCxvQkFBb0I7QUFDcEIsdUNBQXVDO0FBQ3ZDLDJGQUEyRjtBQUMzRix3REFBd0Q7QUFDeEQsZ0RBQWdEO0FBQ2hELEVBQUU7QUFDRixvQkFBb0I7QUFDcEIsa0RBQWtEO0FBQ2xELHdEQUF3RDtBQUV4RCxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBa0U7SUFDakcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTUQsU0FBUyxZQUFZLENBQUMsTUFBb0I7SUFDeEMsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMzQixPQUFPO1FBQ0wsWUFBWSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDakQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDM0MsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQ25DLFVBQVUsRUFBRSxN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
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpY3NDaGFubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWdub3N0aWNzQ2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3BELElBQUksd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLDBEQUEwRDtBQUMxRCxvQkFBb0I7QUFDcEIsdUNBQXVDO0FBQ3ZDLDJGQUEyRjtBQUMzRix3REFBd0Q7QUFDeEQsZ0RBQWdEO0FBQ2hELEVBQUU7QUFDRixvQkFBb0I7QUFDcEIsa0RBQWtEO0FBQ2xELHdEQUF3RDtBQUV4RCxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBa0U7SUFDakcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTUQsU0FBUyxZQUFZLENBQUMsTUFBb0I7SUFDeEMsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMzQixPQUFPO1FBQ0wsWUFBWSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDakQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDM0MsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQ25DLFVBQVUsRUFBRSxN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
@@ -1,5 +1,5 @@
1
1
  import { RequestInfo, RequestInit, Response, Agent } from 'undici';
2
- import { ClientOptions, PoolStat, UnidiciTimingInfo } from './HttpClient.js';
2
+ import { ClientOptions, PoolStat, UndiciTimingInfo } from './HttpClient.js';
3
3
  import { FetchMeta } from './Request.js';
4
4
  export interface UrllibRequestInit extends RequestInit {
5
5
  timing?: boolean;
@@ -9,7 +9,7 @@ export type FetchDiagnosticsMessage = {
9
9
  };
10
10
  export type FetchResponseDiagnosticsMessage = {
11
11
  fetch: FetchMeta;
12
- timingInfo?: UnidiciTimingInfo;
12
+ timingInfo?: UndiciTimingInfo;
13
13
  response?: Response;
14
14
  error?: Error;
15
15
  };
package/dist/esm/fetch.js CHANGED
@@ -5,7 +5,7 @@ import { fetch as UndiciFetch, Request, Agent, getGlobalDispatcher, } from 'undi
5
5
  import undiciSymbols from 'undici/lib/core/symbols.js';
6
6
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
7
  // @ts-ignore
8
- import undiciFetchSymbols from 'undici/lib/web/fetch/symbols.js';
8
+ import { getResponseState } from 'undici/lib/web/fetch/response.js';
9
9
  import { channels, } from './HttpClient.js';
10
10
  import { HttpAgent, } from './HttpAgent.js';
11
11
  import { initDiagnosticsChannel } from './diagnosticsChannel.js';
@@ -188,8 +188,8 @@ export class FetchFactory {
188
188
  });
189
189
  throw e;
190
190
  }
191
- // get unidici internal response
192
- const state = Reflect.get(res, undiciFetchSymbols.kState);
191
+ // get undici internal response
192
+ const state = getResponseState(res);
193
193
  updateSocketInfo(socketInfo, internalOpaque /* , rawError */);
194
194
  urllibResponse.headers = convertHeader(res.headers);
195
195
  urllibResponse.status = urllibResponse.statusCode = res.status;
@@ -211,4 +211,4 @@ export class FetchFactory {
211
211
  }
212
212
  }
213
213
  export const fetch = FetchFactory.fetch;
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUNMLEtBQUssSUFBSSxXQUFXLEVBR3BCLE9BQU8sRUFFUCxLQUFLLEVBQ0wsbUJBQW1CLEdBR3BCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixPQUFPLGtCQUFrQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFDTCxRQUFRLEdBTVQsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hGLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQU1uQyxPQUFPLEVBQWUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQW9CbEYsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBUTtJQUMxQixNQUFNLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxpQkFBaUIsRUFBZSxDQUFDO0lBRWxFLE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sWUFBWSxDQUFDLFdBQVcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQWlCO1FBQ3BDLFlBQVksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JB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
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUNMLEtBQUssSUFBSSxXQUFXLEVBR3BCLE9BQU8sRUFFUCxLQUFLLEVBQ0wsbUJBQW1CLEdBRXBCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsUUFBUSxHQU1ULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RixPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFNbkMsT0FBTyxFQUFlLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFvQmxGLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQVE7SUFDMUIsTUFBTSxDQUFDLG1CQUFtQixHQUFHLElBQUksaUJBQWlCLEVBQWUsQ0FBQztJQUVsRSxNQUFNLENBQUMsYUFBYTtRQUNsQixPQUFPLFlBQVksQ0FBQyxXQUFXLElBQUksbUJBQW1CLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFpQjtRQUNwQyxZQUFZLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFB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
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "4.4.0"
3
+ "version": "4.5.0-beta.1"
4
4
  }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "4.4.0",
3
+ "version": "4.5.0-beta.1",
4
4
  "publishConfig": {
5
- "tag": "latest"
5
+ "tag": "beta"
6
6
  },
7
7
  "description": "Help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, timeout and more. Base undici API.",
8
8
  "keywords": [
@@ -44,21 +44,22 @@
44
44
  "prepublishOnly": "npm run build"
45
45
  },
46
46
  "dependencies": {
47
+ "form-data": "^4.0.1",
47
48
  "formstream": "^1.5.1",
48
49
  "mime-types": "^2.1.35",
49
50
  "qs": "^6.12.1",
50
51
  "type-fest": "^4.20.1",
51
- "undici": "^6.19.2",
52
+ "undici": "^7.0.0",
52
53
  "ylru": "^2.0.0"
53
54
  },
54
55
  "devDependencies": {
55
- "@arethetypeswrong/cli": "^0.16.0",
56
+ "@arethetypeswrong/cli": "^0.17.0",
56
57
  "@eggjs/tsconfig": "^1.3.3",
57
58
  "@tsconfig/node18": "^18.2.1",
58
59
  "@tsconfig/strictest": "^2.0.2",
59
60
  "@types/busboy": "^1.5.0",
60
61
  "@types/mime-types": "^2.1.1",
61
- "@types/node": "^20.2.1",
62
+ "@types/node": "^22.0.0",
62
63
  "@types/proxy": "^1.0.4",
63
64
  "@types/qs": "^6.9.7",
64
65
  "@types/selfsigned": "^2.0.1",
@@ -68,6 +69,7 @@
68
69
  "cross-env": "^7.0.3",
69
70
  "eslint": "8",
70
71
  "eslint-config-egg": "14",
72
+ "https-pem": "^3.0.0",
71
73
  "iconv-lite": "^0.6.3",
72
74
  "proxy": "^1.0.2",
73
75
  "selfsigned": "^2.0.1",
@@ -32,7 +32,7 @@ export interface OpaqueInterceptorOptions {
32
32
  export function fetchOpaqueInterceptor(opts: OpaqueInterceptorOptions) {
33
33
  const opaqueLocalStorage = opts?.opaqueLocalStorage;
34
34
  return (dispatch: Dispatcher['dispatch']): Dispatcher['dispatch'] => {
35
- return function redirectInterceptor(opts: Dispatcher.DispatchOptions, handler: Dispatcher.DispatchHandlers) {
35
+ return function redirectInterceptor(opts: Dispatcher.DispatchOptions, handler: Dispatcher.DispatchHandler) {
36
36
  const opaque = opaqueLocalStorage?.getStore();
37
37
  (handler as any).opaque = opaque;
38
38
  return dispatch(opts, handler);
@@ -0,0 +1,32 @@
1
+ import path from 'node:path';
2
+ import _FormData from 'form-data';
3
+
4
+ export class FormData extends _FormData {
5
+ _getContentDisposition(value: any, options: any) {
6
+ // support non-ascii filename
7
+ // https://github.com/form-data/form-data/pull/571
8
+ let filename;
9
+ let contentDisposition;
10
+
11
+ if (typeof options.filepath === 'string') {
12
+ // custom filepath for relative paths
13
+ filename = path.normalize(options.filepath).replace(/\\/g, '/');
14
+ } else if (options.filename || value.name || value.path) {
15
+ // custom filename take precedence
16
+ // formidable and the browser add a name property
17
+ // fs- and request- streams have path property
18
+ filename = path.basename(options.filename || value.name || value.path);
19
+ } else if (value.readable && value.hasOwnProperty('httpVersion')) {
20
+ // or try http response
21
+ filename = path.basename(value.client._httpMessage.path || '');
22
+ }
23
+
24
+ if (filename) {
25
+ // https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
26
+ // support non-ascii filename
27
+ contentDisposition = 'filename="' + filename + '"; filename*=UTF-8\'\'' + encodeURIComponent(filename);
28
+ }
29
+
30
+ return contentDisposition;
31
+ }
32
+ }
package/src/HttpAgent.ts CHANGED
@@ -70,7 +70,7 @@ export class HttpAgent extends Agent {
70
70
  this.#checkAddress = options.checkAddress;
71
71
  }
72
72
 
73
- dispatch(options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandlers): boolean {
73
+ dispatch(options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean {
74
74
  if (this.#checkAddress && options.origin) {
75
75
  const originUrl = typeof options.origin === 'string' ? new URL(options.origin) : options.origin;
76
76
  let hostname = originUrl.hostname;
package/src/HttpClient.ts CHANGED
@@ -9,7 +9,6 @@ import {
9
9
  gunzipSync,
10
10
  brotliDecompressSync,
11
11
  } from 'node:zlib';
12
- import { Blob } from 'node:buffer';
13
12
  import { Readable, pipeline } from 'node:stream';
14
13
  import { pipeline as pipelinePromise } from 'node:stream/promises';
15
14
  import { basename } from 'node:path';
@@ -19,13 +18,13 @@ import { performance } from 'node:perf_hooks';
19
18
  import querystring from 'node:querystring';
20
19
  import { setTimeout as sleep } from 'node:timers/promises';
21
20
  import {
22
- FormData,
23
21
  request as undiciRequest,
24
22
  Dispatcher,
25
23
  Agent,
26
24
  getGlobalDispatcher,
27
25
  Pool,
28
26
  } from 'undici';
27
+ import { FormData } from './FormData.js';
29
28
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
30
29
  // @ts-ignore
31
30
  import undiciSymbols from 'undici/lib/core/symbols.js';
@@ -49,7 +48,7 @@ type IUndiciRequestOption = PropertyShouldBe<UndiciRequestOption, 'headers', Inc
49
48
 
50
49
  export const PROTO_RE = /^https?:\/\//i;
51
50
 
52
- export interface UnidiciTimingInfo {
51
+ export interface UndiciTimingInfo {
53
52
  startTime: number;
54
53
  redirectStartTime: number;
55
54
  redirectEndTime: number;
@@ -70,6 +69,9 @@ export interface UnidiciTimingInfo {
70
69
  };
71
70
  }
72
71
 
72
+ // keep typo compatibility
73
+ export interface UnidiciTimingInfo extends UndiciTimingInfo {}
74
+
73
75
  function noop() {
74
76
  // noop
75
77
  }
@@ -113,28 +115,6 @@ export type ClientOptions = {
113
115
  },
114
116
  };
115
117
 
116
- // https://github.com/octet-stream/form-data
117
- class BlobFromStream {
118
- #stream;
119
- #type;
120
- constructor(stream: Readable, type: string) {
121
- this.#stream = stream;
122
- this.#type = type;
123
- }
124
-
125
- stream() {
126
- return this.#stream;
127
- }
128
-
129
- get type(): string {
130
- return this.#type;
131
- }
132
-
133
- get [Symbol.toStringTag]() {
134
- return 'Blob';
135
- }
136
- }
137
-
138
118
  export const VERSION = 'VERSION';
139
119
  // 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
140
120
  export const HEADER_USER_AGENT =
@@ -156,6 +136,8 @@ export type RequestContext = {
156
136
  retries: number;
157
137
  socketErrorRetries: number;
158
138
  requestStartTime?: number;
139
+ redirects: number;
140
+ history: string[];
159
141
  };
160
142
 
161
143
  export const channels = {
@@ -190,6 +172,15 @@ export interface PoolStat {
190
172
  size: number;
191
173
  }
192
174
 
175
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections
176
+ const RedirectStatusCodes = [
177
+ 301, // Moved Permanently
178
+ 302, // Found
179
+ 303, // See Other
180
+ 307, // Temporary Redirect
181
+ 308, // Permanent Redirect
182
+ ];
183
+
193
184
  export class HttpClient extends EventEmitter {
194
185
  #defaultArgs?: RequestOptions;
195
186
  #dispatcher?: Dispatcher;
@@ -294,11 +285,14 @@ export class HttpClient extends EventEmitter {
294
285
  requestContext = {
295
286
  retries: 0,
296
287
  socketErrorRetries: 0,
288
+ redirects: 0,
289
+ history: [],
297
290
  ...requestContext,
298
291
  };
299
292
  if (!requestContext.requestStartTime) {
300
293
  requestContext.requestStartTime = performance.now();
301
294
  }
295
+ requestContext.history.push(requestUrl.href);
302
296
  const requestStartTime = requestContext.requestStartTime;
303
297
 
304
298
  // https://developer.chrome.com/docs/devtools/network/reference/?utm_source=devtools#timing-explanation
@@ -358,7 +352,7 @@ export class HttpClient extends EventEmitter {
358
352
  aborted: false,
359
353
  rt: 0,
360
354
  keepAliveSocket: true,
361
- requestUrls: [],
355
+ requestUrls: requestContext.history,
362
356
  timing,
363
357
  socket: socketInfo,
364
358
  retries: requestContext.retries,
@@ -419,10 +413,13 @@ export class HttpClient extends EventEmitter {
419
413
  isStreamingRequest = true;
420
414
  }
421
415
 
416
+ let maxRedirects = args.maxRedirects ?? 10;
417
+
422
418
  try {
423
419
  const requestOptions: IUndiciRequestOption = {
424
420
  method,
425
- maxRedirections: args.maxRedirects ?? 10,
421
+ // disable undici auto redirect handler
422
+ maxRedirections: 0,
426
423
  headersTimeout,
427
424
  headers,
428
425
  bodyTimeout,
@@ -437,7 +434,7 @@ export class HttpClient extends EventEmitter {
437
434
  requestOptions.reset = args.reset;
438
435
  }
439
436
  if (args.followRedirect === false) {
440
- requestOptions.maxRedirections = 0;
437
+ maxRedirects = 0;
441
438
  }
442
439
 
443
440
  const isGETOrHEAD = requestOptions.method === 'GET' || requestOptions.method === 'HEAD';
@@ -487,21 +484,28 @@ export class HttpClient extends EventEmitter {
487
484
  }
488
485
  }
489
486
  for (const [ index, [ field, file, customFileName ]] of uploadFiles.entries()) {
487
+ let fileName = '';
488
+ let value: any;
490
489
  if (typeof file === 'string') {
491
- // FIXME: support non-ascii filename
492
- // const fileName = encodeURIComponent(basename(file));
493
- // formData.append(field, await fileFromPath(file, `utf-8''${fileName}`, { type: mime.lookup(fileName) || '' }));
494
- const fileName = basename(file);
495
- const fileReadable = createReadStream(file);
496
- formData.append(field, new BlobFromStream(fileReadable, mime.lookup(fileName) || ''), fileName);
490
+ fileName = basename(file);
491
+ value = createReadStream(file);
497
492
  } else if (Buffer.isBuffer(file)) {
498
- formData.append(field, new Blob([ file ]), customFileName || `bufferfile${index}`);
493
+ fileName = customFileName || `bufferfile${index}`;
494
+ value = file;
499
495
  } else if (file instanceof Readable || isReadable(file as any)) {
500
- const fileName = getFileName(file) || customFileName || `streamfile${index}`;
501
- formData.append(field, new BlobFromStream(file, mime.lookup(fileName) || ''), fileName);
496
+ fileName = getFileName(file) || customFileName || `streamfile${index}`;
502
497
  isStreamingRequest = true;
498
+ value = file;
503
499
  }
500
+ const mimeType = mime.lookup(fileName) || '';
501
+ formData.append(field, value, {
502
+ filename: fileName,
503
+ contentType: mimeType,
504
+ });
505
+ debug('formData append field: %s, mimeType: %s, fileName: %s',
506
+ field, mimeType, fileName);
504
507
  }
508
+ Object.assign(headers, formData.getHeaders());
505
509
  requestOptions.body = formData;
506
510
  } else if (args.content) {
507
511
  if (!isGETOrHEAD) {
@@ -558,8 +562,8 @@ export class HttpClient extends EventEmitter {
558
562
  args.socketErrorRetry = 0;
559
563
  }
560
564
 
561
- debug('Request#%d %s %s, headers: %j, headersTimeout: %s, bodyTimeout: %s, isStreamingRequest: %s',
562
- requestId, requestOptions.method, requestUrl.href, headers, headersTimeout, bodyTimeout, isStreamingRequest);
565
+ debug('Request#%d %s %s, headers: %j, headersTimeout: %s, bodyTimeout: %s, isStreamingRequest: %s, maxRedirections: %s, redirects: %s',
566
+ requestId, requestOptions.method, requestUrl.href, headers, headersTimeout, bodyTimeout, isStreamingRequest, maxRedirects, requestContext.redirects);
563
567
  requestOptions.headers = headers;
564
568
  channels.request.publish({
565
569
  request: reqMeta,
@@ -590,18 +594,6 @@ export class HttpClient extends EventEmitter {
590
594
  response = await undiciRequest(requestUrl, requestOptions as UndiciRequestOption);
591
595
  }
592
596
  }
593
-
594
- const context = response.context as { history: URL[] };
595
- let lastUrl = '';
596
- if (context?.history) {
597
- for (const urlObject of context?.history) {
598
- res.requestUrls.push(urlObject.href);
599
- lastUrl = urlObject.href;
600
- }
601
- } else {
602
- res.requestUrls.push(requestUrl.href);
603
- lastUrl = requestUrl.href;
604
- }
605
597
  const contentEncoding = response.headers['content-encoding'];
606
598
  const isCompressedContent = contentEncoding === 'gzip' || contentEncoding === 'br';
607
599
 
@@ -612,6 +604,19 @@ export class HttpClient extends EventEmitter {
612
604
  res.size = parseInt(res.headers['content-length']);
613
605
  }
614
606
 
607
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections
608
+ if (RedirectStatusCodes.includes(res.statusCode) && maxRedirects > 0 && requestContext.redirects < maxRedirects && !isStreamingRequest) {
609
+ if (res.headers.location) {
610
+ requestContext.redirects++;
611
+ const nextUrl = new URL(res.headers.location, requestUrl.href);
612
+ // Ensure the response is consumed
613
+ await response.body.arrayBuffer();
614
+ debug('Request#%d got response, status: %s, headers: %j, timing: %j, redirect to %s',
615
+ requestId, res.status, res.headers, res.timing, nextUrl.href);
616
+ return await this.#requestInternal(nextUrl.href, options, requestContext);
617
+ }
618
+ }
619
+
615
620
  let data: any = null;
616
621
  if (args.dataType === 'stream') {
617
622
  // only auto decompress on request args.compressed = true
@@ -663,12 +668,15 @@ export class HttpClient extends EventEmitter {
663
668
  statusCode: res.status,
664
669
  statusText: res.statusText,
665
670
  headers: res.headers,
666
- url: lastUrl,
667
- redirected: res.requestUrls.length > 1,
671
+ url: requestUrl.href,
672
+ redirected: requestContext.history.length > 1,
668
673
  requestUrls: res.requestUrls,
669
674
  res,
670
675
  };
671
676
 
677
+ debug('Request#%d got response, status: %s, headers: %j, timing: %j',
678
+ requestId, res.status, res.headers, res.timing);
679
+
672
680
  if (args.retry > 0 && requestContext.retries < args.retry) {
673
681
  const isRetry = args.isRetry ?? defaultIsRetry;
674
682
  if (isRetry(clientResponse)) {
@@ -680,8 +688,6 @@ export class HttpClient extends EventEmitter {
680
688
  }
681
689
  }
682
690
 
683
- debug('Request#%d got response, status: %s, headers: %j, timing: %j',
684
- requestId, res.status, res.headers, res.timing);
685
691
  channels.response.publish({
686
692
  request: reqMeta,
687
693
  response: res,
@@ -701,7 +707,8 @@ export class HttpClient extends EventEmitter {
701
707
 
702
708
  return clientResponse;
703
709
  } catch (rawError: any) {
704
- debug('Request#%d throw error: %s', requestId, rawError);
710
+ debug('Request#%d throw error: %s, socketErrorRetry: %s, socketErrorRetries: %s',
711
+ requestId, rawError, args.socketErrorRetry, requestContext.socketErrorRetries);
705
712
  let err = rawError;
706
713
  if (err.name === 'HeadersTimeoutError') {
707
714
  err = new HttpClientRequestTimeoutError(headersTimeout, { cause: err });
@@ -713,6 +720,8 @@ export class HttpClient extends EventEmitter {
713
720
  // auto retry on socket error, https://github.com/node-modules/urllib/issues/454
714
721
  if (args.socketErrorRetry > 0 && requestContext.socketErrorRetries < args.socketErrorRetry) {
715
722
  requestContext.socketErrorRetries++;
723
+ debug('Request#%d retry on socket error, socketErrorRetries: %d',
724
+ requestId, requestContext.socketErrorRetries);
716
725
  return await this.#requestInternal(url, options, requestContext);
717
726
  }
718
727
  }
@@ -725,10 +734,6 @@ export class HttpClient extends EventEmitter {
725
734
  err._rawSocket = err.socket;
726
735
  }
727
736
  err.socket = socketInfo;
728
- // make sure requestUrls not empty
729
- if (res.requestUrls.length === 0) {
730
- res.requestUrls.push(requestUrl.href);
731
- }
732
737
  res.rt = performanceTime(requestStartTime);
733
738
  updateSocketInfo(socketInfo, internalOpaque, rawError);
734
739
 
@@ -143,7 +143,10 @@ export function initDiagnosticsChannel() {
143
143
  subscribe('undici:client:sendHeaders', (message, name) => {
144
144
  const { request, socket } = message as DiagnosticsChannel.ClientSendHeadersMessage & { socket: SocketExtend };
145
145
  const opaque = getRequestOpaque(request, kHandler);
146
- if (!opaque || !opaque[symbols.kRequestId]) return;
146
+ if (!opaque || !opaque[symbols.kRequestId]) {
147
+ debug('[%s] opaque not found', name);
148
+ return;
149
+ }
147
150
 
148
151
  (socket[symbols.kHandledRequests] as number)++;
149
152
  // attach socket to opaque
@@ -165,7 +168,10 @@ export function initDiagnosticsChannel() {
165
168
  subscribe('undici:request:bodySent', (message, name) => {
166
169
  const { request } = message as DiagnosticsChannel.RequestBodySentMessage;
167
170
  const opaque = getRequestOpaque(request, kHandler);
168
- if (!opaque || !opaque[symbols.kRequestId]) return;
171
+ if (!opaque || !opaque[symbols.kRequestId]) {
172
+ debug('[%s] opaque not found', name);
173
+ return;
174
+ }
169
175
 
170
176
  debug('[%s] Request#%d send body', name, opaque[symbols.kRequestId]);
171
177
  if (!opaque[symbols.kEnableRequestTiming]) return;
@@ -176,7 +182,10 @@ export function initDiagnosticsChannel() {
176
182
  subscribe('undici:request:headers', (message, name) => {
177
183
  const { request, response } = message as DiagnosticsChannel.RequestHeadersMessage;
178
184
  const opaque = getRequestOpaque(request, kHandler);
179
- if (!opaque || !opaque[symbols.kRequestId]) return;
185
+ if (!opaque || !opaque[symbols.kRequestId]) {
186
+ debug('[%s] opaque not found', name);
187
+ return;
188
+ }
180
189
 
181
190
  // get socket from opaque
182
191
  const socket = opaque[symbols.kRequestSocket];
@@ -199,6 +208,7 @@ export function initDiagnosticsChannel() {
199
208
  const { request } = message as DiagnosticsChannel.RequestTrailersMessage;
200
209
  const opaque = getRequestOpaque(request, kHandler);
201
210
  if (!opaque || !opaque[symbols.kRequestId]) {
211
+ debug('[%s] opaque not found', name);
202
212
  return;
203
213
  }
204
214