urllib 3.18.1 → 3.19.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.
Files changed (43) hide show
  1. package/README.md +2 -2
  2. package/{src/cjs → dist/commonjs}/HttpClient.js +33 -33
  3. package/{src/cjs → dist/commonjs}/diagnosticsChannel.js +39 -39
  4. package/{src/cjs → dist/commonjs}/index.js +8 -8
  5. package/dist/commonjs/package.json +1 -0
  6. package/{src/cjs → dist/commonjs}/utils.d.ts +1 -1
  7. package/{src → dist}/esm/HttpAgent.d.ts +1 -1
  8. package/{src/cjs → dist/esm}/HttpClient.d.ts +6 -6
  9. package/{src → dist}/esm/HttpClient.js +1 -1
  10. package/{src/cjs → dist/esm}/Request.d.ts +5 -5
  11. package/{src → dist}/esm/Response.d.ts +2 -2
  12. package/{src/cjs → dist/esm}/index.d.ts +6 -6
  13. package/dist/esm/package.json +1 -0
  14. package/{src → dist}/esm/utils.d.ts +1 -1
  15. package/package.json +27 -20
  16. package/src/HttpClient.ts +6 -6
  17. package/src/Request.ts +1 -1
  18. package/src/diagnosticsChannel.ts +2 -2
  19. package/src/index.ts +5 -5
  20. package/src/utils.ts +1 -1
  21. package/src/cjs/package.json +0 -3
  22. package/src/esm/package.json +0 -3
  23. /package/{src/cjs → dist/commonjs}/HttpAgent.d.ts +0 -0
  24. /package/{src/cjs → dist/commonjs}/HttpAgent.js +0 -0
  25. /package/{src/esm → dist/commonjs}/HttpClient.d.ts +0 -0
  26. /package/{src/esm → dist/commonjs}/Request.d.ts +0 -0
  27. /package/{src/cjs → dist/commonjs}/Request.js +0 -0
  28. /package/{src/cjs → dist/commonjs}/Response.d.ts +0 -0
  29. /package/{src/cjs → dist/commonjs}/Response.js +0 -0
  30. /package/{src/cjs → dist/commonjs}/diagnosticsChannel.d.ts +0 -0
  31. /package/{src/esm → dist/commonjs}/index.d.ts +0 -0
  32. /package/{src/cjs → dist/commonjs}/symbols.d.ts +0 -0
  33. /package/{src/cjs → dist/commonjs}/symbols.js +0 -0
  34. /package/{src/cjs → dist/commonjs}/utils.js +0 -0
  35. /package/{src → dist}/esm/HttpAgent.js +0 -0
  36. /package/{src → dist}/esm/Request.js +0 -0
  37. /package/{src → dist}/esm/Response.js +0 -0
  38. /package/{src → dist}/esm/diagnosticsChannel.d.ts +0 -0
  39. /package/{src → dist}/esm/diagnosticsChannel.js +0 -0
  40. /package/{src → dist}/esm/index.js +0 -0
  41. /package/{src → dist}/esm/symbols.d.ts +0 -0
  42. /package/{src → dist}/esm/symbols.js +0 -0
  43. /package/{src → dist}/esm/utils.js +0 -0
package/README.md CHANGED
@@ -288,7 +288,7 @@ Fork [undici benchmarks script](https://github.com/fengmk2/undici/blob/urllib-be
288
288
 
289
289
  ## Contributors
290
290
 
291
- |[<img src="https://avatars.githubusercontent.com/u/156269?v=4" width="100px;"/><br/><sub><b>fengmk2</b></sub>](https://github.com/fengmk2)<br/>|[<img src="https://avatars.githubusercontent.com/u/985607?v=4" width="100px;"/><br/><sub><b>dead-horse</b></sub>](https://github.com/dead-horse)<br/>|[<img src="https://avatars.githubusercontent.com/u/288288?v=4" width="100px;"/><br/><sub><b>xingrz</b></sub>](https://github.com/xingrz)<br/>|[<img src="https://avatars.githubusercontent.com/u/32174276?v=4" width="100px;"/><br/><sub><b>semantic-release-bot</b></sub>](https://github.com/semantic-release-bot)<br/>|[<img src="https://avatars.githubusercontent.com/u/360661?v=4" width="100px;"/><br/><sub><b>popomore</b></sub>](https://github.com/popomore)<br/>|[<img src="https://avatars.githubusercontent.com/u/327019?v=4" width="100px;"/><br/><sub><b>JacksonTian</b></sub>](https://github.com/JacksonTian)<br/>|
291
+ |[<img src="https://avatars.githubusercontent.com/u/156269?v=4" width="100px;"/><br/><sub><b>fengmk2</b></sub>](https://github.com/fengmk2)<br/>|[<img src="https://avatars.githubusercontent.com/u/985607?v=4" width="100px;"/><br/><sub><b>dead-horse</b></sub>](https://github.com/dead-horse)<br/>|[<img src="https://avatars.githubusercontent.com/u/32174276?v=4" width="100px;"/><br/><sub><b>semantic-release-bot</b></sub>](https://github.com/semantic-release-bot)<br/>|[<img src="https://avatars.githubusercontent.com/u/288288?v=4" width="100px;"/><br/><sub><b>xingrz</b></sub>](https://github.com/xingrz)<br/>|[<img src="https://avatars.githubusercontent.com/u/360661?v=4" width="100px;"/><br/><sub><b>popomore</b></sub>](https://github.com/popomore)<br/>|[<img src="https://avatars.githubusercontent.com/u/327019?v=4" width="100px;"/><br/><sub><b>JacksonTian</b></sub>](https://github.com/JacksonTian)<br/>|
292
292
  | :---: | :---: | :---: | :---: | :---: | :---: |
293
293
  |[<img src="https://avatars.githubusercontent.com/u/543405?v=4" width="100px;"/><br/><sub><b>ibigbug</b></sub>](https://github.com/ibigbug)<br/>|[<img src="https://avatars.githubusercontent.com/u/14790466?v=4" width="100px;"/><br/><sub><b>greenkeeperio-bot</b></sub>](https://github.com/greenkeeperio-bot)<br/>|[<img src="https://avatars.githubusercontent.com/u/227713?v=4" width="100px;"/><br/><sub><b>atian25</b></sub>](https://github.com/atian25)<br/>|[<img src="https://avatars.githubusercontent.com/u/6897780?v=4" width="100px;"/><br/><sub><b>killagu</b></sub>](https://github.com/killagu)<br/>|[<img src="https://avatars.githubusercontent.com/u/5381764?v=4" width="100px;"/><br/><sub><b>paambaati</b></sub>](https://github.com/paambaati)<br/>|[<img src="https://avatars.githubusercontent.com/u/1433247?v=4" width="100px;"/><br/><sub><b>denghongcai</b></sub>](https://github.com/denghongcai)<br/>|
294
294
  |[<img src="https://avatars.githubusercontent.com/u/4635838?v=4" width="100px;"/><br/><sub><b>gemwuu</b></sub>](https://github.com/gemwuu)<br/>|[<img src="https://avatars.githubusercontent.com/u/2842176?v=4" width="100px;"/><br/><sub><b>XadillaX</b></sub>](https://github.com/XadillaX)<br/>|[<img src="https://avatars.githubusercontent.com/u/1147375?v=4" width="100px;"/><br/><sub><b>alsotang</b></sub>](https://github.com/alsotang)<br/>|[<img src="https://avatars.githubusercontent.com/u/546535?v=4" width="100px;"/><br/><sub><b>leoner</b></sub>](https://github.com/leoner)<br/>|[<img src="https://avatars.githubusercontent.com/u/19908330?v=4" width="100px;"/><br/><sub><b>hyj1991</b></sub>](https://github.com/hyj1991)<br/>|[<img src="https://avatars.githubusercontent.com/u/1747852?v=4" width="100px;"/><br/><sub><b>isayme</b></sub>](https://github.com/isayme)<br/>|
@@ -297,7 +297,7 @@ Fork [undici benchmarks script](https://github.com/fengmk2/undici/blob/urllib-be
297
297
  |[<img src="https://avatars.githubusercontent.com/u/3689968?v=4" width="100px;"/><br/><sub><b>Amunu</b></sub>](https://github.com/Amunu)<br/>|[<img src="https://avatars.githubusercontent.com/in/9426?v=4" width="100px;"/><br/><sub><b>azure-pipelines[bot]</b></sub>](https://github.com/apps/azure-pipelines)<br/>|[<img src="https://avatars.githubusercontent.com/u/108602490?v=4" width="100px;"/><br/><sub><b>capsice</b></sub>](https://github.com/capsice)<br/>|[<img src="https://avatars.githubusercontent.com/u/1281323?v=4" width="100px;"/><br/><sub><b>changzhiwin</b></sub>](https://github.com/changzhiwin)<br/>|[<img src="https://avatars.githubusercontent.com/u/929503?v=4" width="100px;"/><br/><sub><b>yuzhigang33</b></sub>](https://github.com/yuzhigang33)<br/>|[<img src="https://avatars.githubusercontent.com/u/5574625?v=4" width="100px;"/><br/><sub><b>elrrrrrrr</b></sub>](https://github.com/elrrrrrrr)<br/>|
298
298
  [<img src="https://avatars.githubusercontent.com/u/981128?v=4" width="100px;"/><br/><sub><b>fishbar</b></sub>](https://github.com/fishbar)<br/>|[<img src="https://avatars.githubusercontent.com/u/1207064?v=4" width="100px;"/><br/><sub><b>gxcsoccer</b></sub>](https://github.com/gxcsoccer)<br/>|[<img src="https://avatars.githubusercontent.com/u/17476119?v=4" width="100px;"/><br/><sub><b>mars-coder</b></sub>](https://github.com/mars-coder)<br/>|[<img src="https://avatars.githubusercontent.com/u/929179?v=4" width="100px;"/><br/><sub><b>rockdai</b></sub>](https://github.com/rockdai)<br/>|[<img src="https://avatars.githubusercontent.com/u/2196373?v=4" width="100px;"/><br/><sub><b>dickeylth</b></sub>](https://github.com/dickeylth)<br/>|[<img src="https://avatars.githubusercontent.com/u/13050025?v=4" width="100px;"/><br/><sub><b>aladdin-add</b></sub>](https://github.com/aladdin-add)<br/>
299
299
 
300
- This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Mon Apr 24 2023 17:42:08 GMT+0800`.
300
+ This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sat Sep 16 2023 01:02:26 GMT+0800`.
301
301
 
302
302
  <!-- GITCONTRIBUTOR_END -->
303
303
 
@@ -25,10 +25,10 @@ const qs_1 = __importDefault(require("qs"));
25
25
  const pump_1 = __importDefault(require("pump"));
26
26
  // Compatible with old style formstream
27
27
  const formstream_1 = __importDefault(require("formstream"));
28
- const HttpAgent_1 = require("./HttpAgent");
29
- const utils_1 = require("./utils");
30
- const symbols_1 = __importDefault(require("./symbols"));
31
- const diagnosticsChannel_1 = require("./diagnosticsChannel");
28
+ const HttpAgent_js_1 = require("./HttpAgent.js");
29
+ const utils_js_1 = require("./utils.js");
30
+ const symbols_js_1 = __importDefault(require("./symbols.js"));
31
+ const diagnosticsChannel_js_1 = require("./diagnosticsChannel.js");
32
32
  const PROTO_RE = /^https?:\/\//i;
33
33
  const FormData = undici_1.FormData ?? formdata_node_1.FormData;
34
34
  // impl promise pipeline on Node.js 14
@@ -73,7 +73,7 @@ class HttpClientRequestTimeoutError extends Error {
73
73
  Error.captureStackTrace(this, this.constructor);
74
74
  }
75
75
  }
76
- exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.18.1');
76
+ exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.19.1');
77
77
  function getFileName(stream) {
78
78
  const filePath = stream.path;
79
79
  if (filePath) {
@@ -95,13 +95,13 @@ class HttpClient extends node_events_1.EventEmitter {
95
95
  super();
96
96
  this.#defaultArgs = clientOptions?.defaultArgs;
97
97
  if (clientOptions?.lookup || clientOptions?.checkAddress || clientOptions?.connect) {
98
- this.#dispatcher = new HttpAgent_1.HttpAgent({
98
+ this.#dispatcher = new HttpAgent_js_1.HttpAgent({
99
99
  lookup: clientOptions.lookup,
100
100
  checkAddress: clientOptions.checkAddress,
101
101
  connect: clientOptions.connect,
102
102
  });
103
103
  }
104
- (0, diagnosticsChannel_1.initDiagnosticsChannel)();
104
+ (0, diagnosticsChannel_js_1.initDiagnosticsChannel)();
105
105
  }
106
106
  async request(url, options) {
107
107
  return await this.#requestInternal(url, options);
@@ -111,7 +111,7 @@ class HttpClient extends node_events_1.EventEmitter {
111
111
  return await this.request(url, options);
112
112
  }
113
113
  async #requestInternal(url, options, requestContext) {
114
- const requestId = (0, utils_1.globalId)('HttpClientRequest');
114
+ const requestId = (0, utils_js_1.globalId)('HttpClientRequest');
115
115
  let requestUrl;
116
116
  if (typeof url === 'string') {
117
117
  if (!PROTO_RE.test(url)) {
@@ -171,11 +171,11 @@ class HttpClient extends node_events_1.EventEmitter {
171
171
  const originalOpaque = args.opaque;
172
172
  // using opaque to diagnostics channel, binding request and socket
173
173
  const internalOpaque = {
174
- [symbols_1.default.kRequestId]: requestId,
175
- [symbols_1.default.kRequestStartTime]: requestStartTime,
176
- [symbols_1.default.kEnableRequestTiming]: !!args.timing,
177
- [symbols_1.default.kRequestTiming]: timing,
178
- [symbols_1.default.kRequestOriginalOpaque]: originalOpaque,
174
+ [symbols_js_1.default.kRequestId]: requestId,
175
+ [symbols_js_1.default.kRequestStartTime]: requestStartTime,
176
+ [symbols_js_1.default.kEnableRequestTiming]: !!args.timing,
177
+ [symbols_js_1.default.kRequestTiming]: timing,
178
+ [symbols_js_1.default.kRequestOriginalOpaque]: originalOpaque,
179
179
  };
180
180
  const reqMeta = {
181
181
  requestId,
@@ -291,7 +291,7 @@ class HttpClient extends node_events_1.EventEmitter {
291
291
  if (args.stream && !args.content) {
292
292
  // convert old style stream to new stream
293
293
  // https://nodejs.org/dist/latest-v18.x/docs/api/stream.html#readablewrapstream
294
- if ((0, utils_1.isReadable)(args.stream) && !(args.stream instanceof node_stream_1.Readable)) {
294
+ if ((0, utils_js_1.isReadable)(args.stream) && !(args.stream instanceof node_stream_1.Readable)) {
295
295
  debug('Request#%d convert old style stream to Readable', requestId);
296
296
  args.stream = new node_stream_1.Readable().wrap(args.stream);
297
297
  isStreamingRequest = true;
@@ -315,7 +315,7 @@ class HttpClient extends node_events_1.EventEmitter {
315
315
  uploadFiles.push([field, file]);
316
316
  }
317
317
  }
318
- else if (args.files instanceof node_stream_1.Readable || (0, utils_1.isReadable)(args.files)) {
318
+ else if (args.files instanceof node_stream_1.Readable || (0, utils_js_1.isReadable)(args.files)) {
319
319
  uploadFiles.push(['file', args.files]);
320
320
  }
321
321
  else if (typeof args.files === 'string' || Buffer.isBuffer(args.files)) {
@@ -344,7 +344,7 @@ class HttpClient extends node_events_1.EventEmitter {
344
344
  else if (Buffer.isBuffer(file)) {
345
345
  formData.append(field, new node_buffer_1.Blob([file]), `bufferfile${index}`);
346
346
  }
347
- else if (file instanceof node_stream_1.Readable || (0, utils_1.isReadable)(file)) {
347
+ else if (file instanceof node_stream_1.Readable || (0, utils_js_1.isReadable)(file)) {
348
348
  const fileName = getFileName(file) || `streamfile${index}`;
349
349
  formData.append(field, new BlobFromStream(file, mime_types_1.default.lookup(fileName) || ''), fileName);
350
350
  isStreamingRequest = true;
@@ -373,13 +373,13 @@ class HttpClient extends node_events_1.EventEmitter {
373
373
  else if (typeof args.content === 'string' && !headers['content-type']) {
374
374
  headers['content-type'] = 'text/plain;charset=UTF-8';
375
375
  }
376
- isStreamingRequest = (0, utils_1.isReadable)(args.content);
376
+ isStreamingRequest = (0, utils_js_1.isReadable)(args.content);
377
377
  }
378
378
  }
379
379
  else if (args.data) {
380
380
  const isStringOrBufferOrReadable = typeof args.data === 'string'
381
381
  || Buffer.isBuffer(args.data)
382
- || (0, utils_1.isReadable)(args.data);
382
+ || (0, utils_js_1.isReadable)(args.data);
383
383
  if (isGETOrHEAD) {
384
384
  if (!isStringOrBufferOrReadable) {
385
385
  if (args.nestedQuerystring) {
@@ -401,7 +401,7 @@ class HttpClient extends node_events_1.EventEmitter {
401
401
  else {
402
402
  if (isStringOrBufferOrReadable) {
403
403
  requestOptions.body = args.data;
404
- isStreamingRequest = (0, utils_1.isReadable)(args.data);
404
+ isStreamingRequest = (0, utils_js_1.isReadable)(args.data);
405
405
  }
406
406
  else {
407
407
  if (args.contentType === 'json'
@@ -446,7 +446,7 @@ class HttpClient extends node_events_1.EventEmitter {
446
446
  : authenticateHeaders;
447
447
  if (authenticate && authenticate.startsWith('Digest ')) {
448
448
  debug('Request#%d %s: got digest auth header WWW-Authenticate: %s', requestId, requestUrl.href, authenticate);
449
- requestOptions.headers.authorization = (0, utils_1.digestAuthHeader)(requestOptions.method, `${requestUrl.pathname}${requestUrl.search}`, authenticate, args.digestAuth);
449
+ requestOptions.headers.authorization = (0, utils_js_1.digestAuthHeader)(requestOptions.method, `${requestUrl.pathname}${requestUrl.search}`, authenticate, args.digestAuth);
450
450
  debug('Request#%d %s: auth with digest header: %s', requestId, url, requestOptions.headers.authorization);
451
451
  if (Array.isArray(response.headers['set-cookie'])) {
452
452
  // FIXME: merge exists cookie header
@@ -521,11 +521,11 @@ class HttpClient extends node_events_1.EventEmitter {
521
521
  data = null;
522
522
  }
523
523
  else {
524
- data = (0, utils_1.parseJSON)(data.toString(), args.fixJSONCtlChars);
524
+ data = (0, utils_js_1.parseJSON)(data.toString(), args.fixJSONCtlChars);
525
525
  }
526
526
  }
527
527
  }
528
- res.rt = (0, utils_1.performanceTime)(requestStartTime);
528
+ res.rt = (0, utils_js_1.performanceTime)(requestStartTime);
529
529
  // get real socket info from internalOpaque
530
530
  this.#updateSocketInfo(socketInfo, internalOpaque);
531
531
  const clientResponse = {
@@ -544,7 +544,7 @@ class HttpClient extends node_events_1.EventEmitter {
544
544
  const isRetry = args.isRetry ?? defaultIsRetry;
545
545
  if (isRetry(clientResponse)) {
546
546
  if (args.retryDelay) {
547
- await (0, utils_1.sleep)(args.retryDelay);
547
+ await (0, utils_js_1.sleep)(args.retryDelay);
548
548
  }
549
549
  requestContext.retries++;
550
550
  return await this.#requestInternal(url, options, requestContext);
@@ -597,7 +597,7 @@ class HttpClient extends node_events_1.EventEmitter {
597
597
  if (res.requestUrls.length === 0) {
598
598
  res.requestUrls.push(requestUrl.href);
599
599
  }
600
- res.rt = (0, utils_1.performanceTime)(requestStartTime);
600
+ res.rt = (0, utils_js_1.performanceTime)(requestStartTime);
601
601
  this.#updateSocketInfo(socketInfo, internalOpaque);
602
602
  channels.response.publish({
603
603
  request: reqMeta,
@@ -620,21 +620,21 @@ class HttpClient extends node_events_1.EventEmitter {
620
620
  }
621
621
  }
622
622
  #updateSocketInfo(socketInfo, internalOpaque) {
623
- const socket = internalOpaque[symbols_1.default.kRequestSocket];
623
+ const socket = internalOpaque[symbols_js_1.default.kRequestSocket];
624
624
  if (socket) {
625
- socketInfo.id = socket[symbols_1.default.kSocketId];
626
- socketInfo.handledRequests = socket[symbols_1.default.kHandledRequests];
627
- socketInfo.handledResponses = socket[symbols_1.default.kHandledResponses];
628
- socketInfo.localAddress = socket[symbols_1.default.kSocketLocalAddress];
629
- socketInfo.localPort = socket[symbols_1.default.kSocketLocalPort];
625
+ socketInfo.id = socket[symbols_js_1.default.kSocketId];
626
+ socketInfo.handledRequests = socket[symbols_js_1.default.kHandledRequests];
627
+ socketInfo.handledResponses = socket[symbols_js_1.default.kHandledResponses];
628
+ socketInfo.localAddress = socket[symbols_js_1.default.kSocketLocalAddress];
629
+ socketInfo.localPort = socket[symbols_js_1.default.kSocketLocalPort];
630
630
  socketInfo.remoteAddress = socket.remoteAddress;
631
631
  socketInfo.remotePort = socket.remotePort;
632
632
  socketInfo.remoteFamily = socket.remoteFamily;
633
633
  socketInfo.bytesRead = socket.bytesRead;
634
634
  socketInfo.bytesWritten = socket.bytesWritten;
635
- socketInfo.connectedTime = socket[symbols_1.default.kSocketConnectedTime];
636
- socketInfo.lastRequestEndTime = socket[symbols_1.default.kSocketRequestEndTime];
637
- socket[symbols_1.default.kSocketRequestEndTime] = new Date();
635
+ socketInfo.connectedTime = socket[symbols_js_1.default.kSocketConnectedTime];
636
+ socketInfo.lastRequestEndTime = socket[symbols_js_1.default.kSocketRequestEndTime];
637
+ socket[symbols_js_1.default.kSocketRequestEndTime] = new Date();
638
638
  }
639
639
  }
640
640
  }
@@ -7,8 +7,8 @@ exports.initDiagnosticsChannel = void 0;
7
7
  const node_diagnostics_channel_1 = __importDefault(require("node:diagnostics_channel"));
8
8
  const node_perf_hooks_1 = require("node:perf_hooks");
9
9
  const node_util_1 = require("node:util");
10
- const symbols_1 = __importDefault(require("./symbols"));
11
- const utils_1 = require("./utils");
10
+ const symbols_js_1 = __importDefault(require("./symbols.js"));
11
+ const utils_js_1 = require("./utils.js");
12
12
  const debug = (0, node_util_1.debuglog)('urllib:DiagnosticsChannel');
13
13
  let initedDiagnosticsChannel = false;
14
14
  // https://undici.nodejs.org/#/docs/api/DiagnosticsChannel
@@ -34,8 +34,8 @@ function formatSocket(socket) {
34
34
  if (!socket)
35
35
  return socket;
36
36
  return {
37
- localAddress: socket[symbols_1.default.kSocketLocalAddress],
38
- localPort: socket[symbols_1.default.kSocketLocalPort],
37
+ localAddress: socket[symbols_js_1.default.kSocketLocalAddress],
38
+ localPort: socket[symbols_js_1.default.kSocketLocalPort],
39
39
  remoteAddress: socket.remoteAddress,
40
40
  remotePort: socket.remotePort,
41
41
  };
@@ -61,27 +61,27 @@ function initDiagnosticsChannel() {
61
61
  }
62
62
  const opaque = request[kHandler]?.opts?.opaque;
63
63
  // ignore non HttpClient Request
64
- if (!opaque || !opaque[symbols_1.default.kRequestId])
64
+ if (!opaque || !opaque[symbols_js_1.default.kRequestId])
65
65
  return;
66
- debug('[%s] Request#%d %s %s, path: %s, headers: %o', name, opaque[symbols_1.default.kRequestId], request.method, request.origin, request.path, request.headers);
67
- if (!opaque[symbols_1.default.kEnableRequestTiming])
66
+ debug('[%s] Request#%d %s %s, path: %s, headers: %o', name, opaque[symbols_js_1.default.kRequestId], request.method, request.origin, request.path, request.headers);
67
+ if (!opaque[symbols_js_1.default.kEnableRequestTiming])
68
68
  return;
69
- opaque[symbols_1.default.kRequestTiming].queuing = (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime]);
69
+ opaque[symbols_js_1.default.kRequestTiming].queuing = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
70
70
  });
71
71
  // diagnosticsChannel.channel('undici:client:beforeConnect')
72
72
  // diagnosticsChannel.channel('undici:client:connectError')
73
73
  // This message is published after a connection is established.
74
74
  subscribe('undici:client:connected', (message, name) => {
75
75
  const { socket } = message;
76
- socket[symbols_1.default.kSocketId] = (0, utils_1.globalId)('UndiciSocket');
77
- socket[symbols_1.default.kSocketStartTime] = node_perf_hooks_1.performance.now();
78
- socket[symbols_1.default.kSocketConnectedTime] = new Date();
79
- socket[symbols_1.default.kHandledRequests] = 0;
80
- socket[symbols_1.default.kHandledResponses] = 0;
76
+ socket[symbols_js_1.default.kSocketId] = (0, utils_js_1.globalId)('UndiciSocket');
77
+ socket[symbols_js_1.default.kSocketStartTime] = node_perf_hooks_1.performance.now();
78
+ socket[symbols_js_1.default.kSocketConnectedTime] = new Date();
79
+ socket[symbols_js_1.default.kHandledRequests] = 0;
80
+ socket[symbols_js_1.default.kHandledResponses] = 0;
81
81
  // copy local address to symbol, avoid them be reset after request error throw
82
- socket[symbols_1.default.kSocketLocalAddress] = socket.localAddress;
83
- socket[symbols_1.default.kSocketLocalPort] = socket.localPort;
84
- debug('[%s] Socket#%d connected (sock: %o)', name, socket[symbols_1.default.kSocketId], formatSocket(socket));
82
+ socket[symbols_js_1.default.kSocketLocalAddress] = socket.localAddress;
83
+ socket[symbols_js_1.default.kSocketLocalPort] = socket.localPort;
84
+ debug('[%s] Socket#%d connected (sock: %o)', name, socket[symbols_js_1.default.kSocketId], formatSocket(socket));
85
85
  });
86
86
  // This message is published right before the first byte of the request is written to the socket.
87
87
  subscribe('undici:client:sendHeaders', (message, name) => {
@@ -89,20 +89,20 @@ function initDiagnosticsChannel() {
89
89
  if (!kHandler)
90
90
  return;
91
91
  const opaque = request[kHandler]?.opts?.opaque;
92
- if (!opaque || !opaque[symbols_1.default.kRequestId])
92
+ if (!opaque || !opaque[symbols_js_1.default.kRequestId])
93
93
  return;
94
- socket[symbols_1.default.kHandledRequests]++;
94
+ socket[symbols_js_1.default.kHandledRequests]++;
95
95
  // attach socket to opaque
96
- opaque[symbols_1.default.kRequestSocket] = socket;
97
- debug('[%s] Request#%d send headers on Socket#%d (handled %d requests, sock: %o)', name, opaque[symbols_1.default.kRequestId], socket[symbols_1.default.kSocketId], socket[symbols_1.default.kHandledRequests], formatSocket(socket));
98
- if (!opaque[symbols_1.default.kEnableRequestTiming])
96
+ opaque[symbols_js_1.default.kRequestSocket] = socket;
97
+ debug('[%s] Request#%d send headers on Socket#%d (handled %d requests, sock: %o)', name, opaque[symbols_js_1.default.kRequestId], socket[symbols_js_1.default.kSocketId], socket[symbols_js_1.default.kHandledRequests], formatSocket(socket));
98
+ if (!opaque[symbols_js_1.default.kEnableRequestTiming])
99
99
  return;
100
- opaque[symbols_1.default.kRequestTiming].requestHeadersSent = (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime]);
100
+ opaque[symbols_js_1.default.kRequestTiming].requestHeadersSent = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
101
101
  // first socket need to caculate the connected time
102
- if (socket[symbols_1.default.kHandledRequests] === 1) {
102
+ if (socket[symbols_js_1.default.kHandledRequests] === 1) {
103
103
  // kSocketStartTime - kRequestStartTime = connected time
104
- opaque[symbols_1.default.kRequestTiming].connected =
105
- (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime], socket[symbols_1.default.kSocketStartTime]);
104
+ opaque[symbols_js_1.default.kRequestTiming].connected =
105
+ (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime], socket[symbols_js_1.default.kSocketStartTime]);
106
106
  }
107
107
  });
108
108
  subscribe('undici:request:bodySent', (message, name) => {
@@ -110,12 +110,12 @@ function initDiagnosticsChannel() {
110
110
  if (!kHandler)
111
111
  return;
112
112
  const opaque = request[kHandler]?.opts?.opaque;
113
- if (!opaque || !opaque[symbols_1.default.kRequestId])
113
+ if (!opaque || !opaque[symbols_js_1.default.kRequestId])
114
114
  return;
115
- debug('[%s] Request#%d send body', name, opaque[symbols_1.default.kRequestId]);
116
- if (!opaque[symbols_1.default.kEnableRequestTiming])
115
+ debug('[%s] Request#%d send body', name, opaque[symbols_js_1.default.kRequestId]);
116
+ if (!opaque[symbols_js_1.default.kEnableRequestTiming])
117
117
  return;
118
- opaque[symbols_1.default.kRequestTiming].requestSent = (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime]);
118
+ opaque[symbols_js_1.default.kRequestTiming].requestSent = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
119
119
  });
120
120
  // This message is published after the response headers have been received, i.e. the response has been completed.
121
121
  subscribe('undici:request:headers', (message, name) => {
@@ -123,15 +123,15 @@ function initDiagnosticsChannel() {
123
123
  if (!kHandler)
124
124
  return;
125
125
  const opaque = request[kHandler]?.opts?.opaque;
126
- if (!opaque || !opaque[symbols_1.default.kRequestId])
126
+ if (!opaque || !opaque[symbols_js_1.default.kRequestId])
127
127
  return;
128
128
  // get socket from opaque
129
- const socket = opaque[symbols_1.default.kRequestSocket];
130
- socket[symbols_1.default.kHandledResponses]++;
131
- debug('[%s] Request#%d get %s response headers on Socket#%d (handled %d responses, sock: %o)', name, opaque[symbols_1.default.kRequestId], response.statusCode, socket[symbols_1.default.kSocketId], socket[symbols_1.default.kHandledResponses], formatSocket(socket));
132
- if (!opaque[symbols_1.default.kEnableRequestTiming])
129
+ const socket = opaque[symbols_js_1.default.kRequestSocket];
130
+ socket[symbols_js_1.default.kHandledResponses]++;
131
+ debug('[%s] Request#%d get %s response headers on Socket#%d (handled %d responses, sock: %o)', name, opaque[symbols_js_1.default.kRequestId], response.statusCode, socket[symbols_js_1.default.kSocketId], socket[symbols_js_1.default.kHandledResponses], formatSocket(socket));
132
+ if (!opaque[symbols_js_1.default.kEnableRequestTiming])
133
133
  return;
134
- opaque[symbols_1.default.kRequestTiming].waiting = (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime]);
134
+ opaque[symbols_js_1.default.kRequestTiming].waiting = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
135
135
  });
136
136
  // This message is published after the response body and trailers have been received, i.e. the response has been completed.
137
137
  subscribe('undici:request:trailers', (message, name) => {
@@ -139,12 +139,12 @@ function initDiagnosticsChannel() {
139
139
  if (!kHandler)
140
140
  return;
141
141
  const opaque = request[kHandler]?.opts?.opaque;
142
- if (!opaque || !opaque[symbols_1.default.kRequestId])
142
+ if (!opaque || !opaque[symbols_js_1.default.kRequestId])
143
143
  return;
144
- debug('[%s] Request#%d get response body and trailers', name, opaque[symbols_1.default.kRequestId]);
145
- if (!opaque[symbols_1.default.kEnableRequestTiming])
144
+ debug('[%s] Request#%d get response body and trailers', name, opaque[symbols_js_1.default.kRequestId]);
145
+ if (!opaque[symbols_js_1.default.kEnableRequestTiming])
146
146
  return;
147
- opaque[symbols_1.default.kRequestTiming].contentDownload = (0, utils_1.performanceTime)(opaque[symbols_1.default.kRequestStartTime]);
147
+ opaque[symbols_js_1.default.kRequestTiming].contentDownload = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
148
148
  });
149
149
  // This message is published if the request is going to error, but it has not errored yet.
150
150
  // subscribe('undici:request:error', (message, name) => {
@@ -5,14 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.USER_AGENT = exports.HttpClient2 = exports.HttpClient = exports.getGlobalDispatcher = exports.setGlobalDispatcher = exports.Dispatcher = exports.Agent = exports.ProxyAgent = exports.MockAgent = exports.curl = exports.request = void 0;
7
7
  const ylru_1 = __importDefault(require("ylru"));
8
- const HttpClient_1 = require("./HttpClient");
8
+ const HttpClient_js_1 = require("./HttpClient.js");
9
9
  let httpclient;
10
10
  const domainSocketHttpclients = new ylru_1.default(50);
11
11
  async function request(url, options) {
12
12
  if (options?.socketPath) {
13
13
  let domainSocketHttpclient = domainSocketHttpclients.get(options.socketPath);
14
14
  if (!domainSocketHttpclient) {
15
- domainSocketHttpclient = new HttpClient_1.HttpClient({
15
+ domainSocketHttpclient = new HttpClient_js_1.HttpClient({
16
16
  connect: { socketPath: options.socketPath },
17
17
  });
18
18
  domainSocketHttpclients.set(options.socketPath, domainSocketHttpclient);
@@ -20,7 +20,7 @@ async function request(url, options) {
20
20
  return await domainSocketHttpclient.request(url, options);
21
21
  }
22
22
  if (!httpclient) {
23
- httpclient = new HttpClient_1.HttpClient({});
23
+ httpclient = new HttpClient_js_1.HttpClient({});
24
24
  }
25
25
  return await httpclient.request(url, options);
26
26
  }
@@ -42,12 +42,12 @@ Object.defineProperty(exports, "Dispatcher", { enumerable: true, get: function (
42
42
  Object.defineProperty(exports, "setGlobalDispatcher", { enumerable: true, get: function () { return undici_1.setGlobalDispatcher; } });
43
43
  Object.defineProperty(exports, "getGlobalDispatcher", { enumerable: true, get: function () { return undici_1.getGlobalDispatcher; } });
44
44
  // HttpClient2 is keep compatible with urlib@2 HttpClient2
45
- var HttpClient_2 = require("./HttpClient");
46
- Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return HttpClient_2.HttpClient; } });
47
- Object.defineProperty(exports, "HttpClient2", { enumerable: true, get: function () { return HttpClient_2.HttpClient; } });
48
- Object.defineProperty(exports, "USER_AGENT", { enumerable: true, get: function () { return HttpClient_2.HEADER_USER_AGENT; } });
45
+ var HttpClient_js_2 = require("./HttpClient.js");
46
+ Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return HttpClient_js_2.HttpClient; } });
47
+ Object.defineProperty(exports, "HttpClient2", { enumerable: true, get: function () { return HttpClient_js_2.HttpClient; } });
48
+ Object.defineProperty(exports, "USER_AGENT", { enumerable: true, get: function () { return HttpClient_js_2.HEADER_USER_AGENT; } });
49
49
  exports.default = {
50
50
  request,
51
51
  curl,
52
- USER_AGENT: HttpClient_1.HEADER_USER_AGENT,
52
+ USER_AGENT: HttpClient_js_1.HEADER_USER_AGENT,
53
53
  };
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -1,4 +1,4 @@
1
- import { FixJSONCtlChars } from './Request';
1
+ import type { FixJSONCtlChars } from './Request.js';
2
2
  export declare function parseJSON(data: string, fixJSONCtlChars?: FixJSONCtlChars): string;
3
3
  export declare function sleep(ms: number): Promise<void>;
4
4
  export declare function digestAuthHeader(method: string, uri: string, wwwAuthenticate: string, userpass: string): string;
@@ -1,4 +1,4 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { LookupFunction } from 'node:net';
3
3
  import { Agent, Dispatcher, buildConnector } from 'undici';
4
4
  export type CheckAddressFunction = (ip: string, family: number | string) => boolean;
@@ -1,11 +1,11 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ /// <reference types="node" resolution-mode="require"/>
4
4
  import { EventEmitter } from 'node:events';
5
5
  import { LookupFunction } from 'node:net';
6
- import { CheckAddressFunction } from './HttpAgent';
7
- import { RequestURL, RequestOptions, RequestMeta } from './Request';
8
- import { RawResponseWithMeta, HttpClientResponse } from './Response';
6
+ import { CheckAddressFunction } from './HttpAgent.js';
7
+ import { RequestURL, RequestOptions, RequestMeta } from './Request.js';
8
+ import { RawResponseWithMeta, HttpClientResponse } from './Response.js';
9
9
  export type ClientOptions = {
10
10
  defaultArgs?: RequestOptions;
11
11
  /**
@@ -67,7 +67,7 @@ class HttpClientRequestTimeoutError extends Error {
67
67
  Error.captureStackTrace(this, this.constructor);
68
68
  }
69
69
  }
70
- export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.18.1');
70
+ export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.19.1');
71
71
  function getFileName(stream) {
72
72
  const filePath = stream.path;
73
73
  if (filePath) {
@@ -1,11 +1,11 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ /// <reference types="node" resolution-mode="require"/>
4
+ /// <reference types="node" resolution-mode="require"/>
5
5
  import { Readable, Writable } from 'node:stream';
6
6
  import type { IncomingHttpHeaders } from 'node:http';
7
7
  import type { Dispatcher } from 'undici';
8
- import type { HttpClientResponse } from './Response';
8
+ import type { HttpClientResponse } from './Response.js';
9
9
  export type HttpMethod = Dispatcher.HttpMethod;
10
10
  export type RequestURL = string | URL;
11
11
  export type FixJSONCtlCharsHandler = (data: string) => string;
@@ -1,5 +1,5 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
3
  import { Readable } from 'node:stream';
4
4
  import { IncomingHttpHeaders } from 'node:http';
5
5
  export type SocketInfo = {
@@ -1,10 +1,10 @@
1
- import { RequestOptions, RequestURL } from './Request';
2
- export declare function request<T = any>(url: RequestURL, options?: RequestOptions): Promise<import("./Response").HttpClientResponse<T>>;
3
- export declare function curl<T = any>(url: RequestURL, options?: RequestOptions): Promise<import("./Response").HttpClientResponse<T>>;
1
+ import { RequestOptions, RequestURL } from './Request.js';
2
+ export declare function request<T = any>(url: RequestURL, options?: RequestOptions): Promise<import("./Response.js").HttpClientResponse<T>>;
3
+ export declare function curl<T = any>(url: RequestURL, options?: RequestOptions): Promise<import("./Response.js").HttpClientResponse<T>>;
4
4
  export { MockAgent, ProxyAgent, Agent, Dispatcher, setGlobalDispatcher, getGlobalDispatcher, } from 'undici';
5
- export { HttpClient, HttpClient as HttpClient2, HEADER_USER_AGENT as USER_AGENT, RequestDiagnosticsMessage, ResponseDiagnosticsMessage, } from './HttpClient';
6
- export { RequestOptions, RequestOptions as RequestOptions2, RequestURL, HttpMethod, FixJSONCtlCharsHandler, FixJSONCtlChars, } from './Request';
7
- export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse } from './Response';
5
+ export { HttpClient, HttpClient as HttpClient2, HEADER_USER_AGENT as USER_AGENT, RequestDiagnosticsMessage, ResponseDiagnosticsMessage, } from './HttpClient.js';
6
+ export { RequestOptions, RequestOptions as RequestOptions2, RequestURL, HttpMethod, FixJSONCtlCharsHandler, FixJSONCtlChars, } from './Request.js';
7
+ export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse } from './Response.js';
8
8
  declare const _default: {
9
9
  request: typeof request;
10
10
  curl: typeof curl;
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -1,4 +1,4 @@
1
- import { FixJSONCtlChars } from './Request.js';
1
+ import type { FixJSONCtlChars } from './Request.js';
2
2
  export declare function parseJSON(data: string, fixJSONCtlChars?: FixJSONCtlChars): string;
3
3
  export declare function sleep(ms: number): Promise<void>;
4
4
  export declare function digestAuthHeader(method: string, uri: string, wwwAuthenticate: string, userpass: string): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "3.18.1",
3
+ "version": "3.19.1",
4
4
  "publishConfig": {
5
5
  "tag": "latest"
6
6
  },
@@ -19,21 +19,27 @@
19
19
  "author": "fengmk2 <fengmk2@gmail.com> (https://github.com/fengmk2)",
20
20
  "homepage": "https://github.com/node-modules/urllib",
21
21
  "type": "module",
22
+ "tshy": {
23
+ "exports": {
24
+ ".": "./src/index.ts",
25
+ "./package.json": "./package.json"
26
+ }
27
+ },
22
28
  "exports": {
23
29
  ".": {
24
30
  "import": {
25
- "types": "./src/esm/index.d.ts",
26
- "default": "./src/esm/index.js"
31
+ "types": "./dist/esm/index.d.ts",
32
+ "default": "./dist/esm/index.js"
27
33
  },
28
34
  "require": {
29
- "types": "./src/cjs/index.d.ts",
30
- "default": "./src/cjs/index.js"
35
+ "types": "./dist/commonjs/index.d.ts",
36
+ "default": "./dist/commonjs/index.js"
31
37
  }
32
- }
38
+ },
39
+ "./package.json": "./package.json"
33
40
  },
34
- "types": "./src/esm/index.d.ts",
35
- "main": "./src/cjs/index.js",
36
41
  "files": [
42
+ "dist",
37
43
  "src"
38
44
  ],
39
45
  "repository": {
@@ -43,24 +49,22 @@
43
49
  "scripts": {
44
50
  "lint": "eslint src test --ext .ts --cache",
45
51
  "prebuild": "npm run clean",
46
- "build": "tsc --version && npm run build:cjs && npm run build:esm && npm run build:version",
47
- "postbuild": "rm -rf src/*.tsbuildinfo",
48
- "build:cjs": "tsc -p ./tsconfig.build.cjs.json",
49
- "build:esm": "tsc -p ./tsconfig.build.esm.json && node ./scripts/esm_import_fix.js",
52
+ "build": "tsc --version && tshy && tshy-after && npm run build:version",
53
+ "postbuild": "rm -rf *.tsbuildinfo",
50
54
  "build:version": "node ./scripts/replace_urllib_version.js",
51
55
  "build:cjs:test": "cd test/cjs && rm -rf node_modules && npm link ../.. && node index.js",
52
56
  "build:esm:test": "cd test/esm && rm -rf node_modules && npm link ../.. && node index.js",
53
57
  "build:mts:test": "cd test/mts && rm -rf node_modules && npm link ../.. && tsc",
54
58
  "build:test": "npm run build && npm run build:cjs:test && npm run build:esm:test && npm run build:mts:test && npm run test-tsc",
55
- "test-tsc": "npm run test-tsc:cjs",
56
- "test-tsc:cjs": "tsc -p ./test/fixtures/ts/tsconfig.json",
57
- "test-tsc:esm": "tsc -p ./test/fixtures/ts-esm/tsconfig.json",
59
+ "test-tsc": "npm run test-tsc:cjs && npm run test-tsc:esm",
60
+ "test-tsc:cjs": "cd test/fixtures/ts && rm -rf node_modules && npm link ../../.. && npm run build",
61
+ "test-tsc:esm": "cd test/fixtures/ts-esm && rm -rf node_modules && npm link ../../.. && npm run build",
58
62
  "test": "npm run lint && vitest run",
59
63
  "test-keepalive": "cross-env TEST_KEEPALIVE_COUNT=50 vitest run --test-timeout 180000 keep-alive-header.test.ts",
60
64
  "cov": "vitest run --coverage",
61
- "ci": "npm run lint && npm run cov && npm run build:test",
65
+ "ci": "npm run lint && npm run cov && node scripts/build_test.js",
62
66
  "contributor": "git-contributor",
63
- "clean": "rm -rf src/*.tsbuildinfo src/cjs/*.ts src/cjs/*.js src/esm/*.ts src/esm/*.js",
67
+ "clean": "rm -rf dist",
64
68
  "prepublishOnly": "npm run build"
65
69
  },
66
70
  "dependencies": {
@@ -76,6 +80,8 @@
76
80
  "ylru": "^1.3.2"
77
81
  },
78
82
  "devDependencies": {
83
+ "@tsconfig/node18": "^18.2.1",
84
+ "@tsconfig/strictest": "^2.0.2",
79
85
  "@types/busboy": "^1.5.0",
80
86
  "@types/default-user-agent": "^1.0.0",
81
87
  "@types/mime-types": "^2.1.1",
@@ -85,8 +91,6 @@
85
91
  "@types/selfsigned": "^2.0.1",
86
92
  "@types/tar-stream": "^2.2.2",
87
93
  "@vitest/coverage-v8": "^0.32.0",
88
- "@tsconfig/node18": "^18.2.1",
89
- "@tsconfig/strictest": "^2.0.2",
90
94
  "busboy": "^1.6.0",
91
95
  "cross-env": "^7.0.3",
92
96
  "eslint": "^8.25.0",
@@ -96,11 +100,14 @@
96
100
  "proxy": "^1.0.2",
97
101
  "selfsigned": "^2.0.1",
98
102
  "tar-stream": "^2.2.0",
103
+ "tshy": "^1.0.0-3",
104
+ "tshy-after": "^1.0.0",
99
105
  "typescript": "^5.0.4",
100
106
  "vitest": "^0.32.0"
101
107
  },
102
108
  "engines": {
103
109
  "node": ">= 14.19.3"
104
110
  },
105
- "license": "MIT"
111
+ "license": "MIT",
112
+ "types": "./dist/commonjs/index.d.ts"
106
113
  }
package/src/HttpClient.ts CHANGED
@@ -30,12 +30,12 @@ import qs from 'qs';
30
30
  import pump from 'pump';
31
31
  // Compatible with old style formstream
32
32
  import FormStream from 'formstream';
33
- import { HttpAgent, CheckAddressFunction } from './HttpAgent';
34
- import { RequestURL, RequestOptions, HttpMethod, RequestMeta } from './Request';
35
- import { RawResponseWithMeta, HttpClientResponse, SocketInfo } from './Response';
36
- import { parseJSON, sleep, digestAuthHeader, globalId, performanceTime, isReadable } from './utils';
37
- import symbols from './symbols';
38
- import { initDiagnosticsChannel } from './diagnosticsChannel';
33
+ import { HttpAgent, CheckAddressFunction } from './HttpAgent.js';
34
+ import { RequestURL, RequestOptions, HttpMethod, RequestMeta } from './Request.js';
35
+ import { RawResponseWithMeta, HttpClientResponse, SocketInfo } from './Response.js';
36
+ import { parseJSON, sleep, digestAuthHeader, globalId, performanceTime, isReadable } from './utils.js';
37
+ import symbols from './symbols.js';
38
+ import { initDiagnosticsChannel } from './diagnosticsChannel.js';
39
39
 
40
40
  type Exists<T> = T extends undefined ? never : T;
41
41
  type UndiciRequestOption = Exists<Parameters<typeof undiciRequest>[1]>;
package/src/Request.ts CHANGED
@@ -3,7 +3,7 @@ import type { IncomingHttpHeaders } from 'node:http';
3
3
  import type { Dispatcher } from 'undici';
4
4
  import type {
5
5
  HttpClientResponse,
6
- } from './Response';
6
+ } from './Response.js';
7
7
 
8
8
  export type HttpMethod = Dispatcher.HttpMethod;
9
9
 
@@ -3,8 +3,8 @@ import { performance } from 'node:perf_hooks';
3
3
  import { debuglog } from 'node:util';
4
4
  import { Socket } from 'node:net';
5
5
  import { DiagnosticsChannel } from 'undici';
6
- import symbols from './symbols';
7
- import { globalId, performanceTime } from './utils';
6
+ import symbols from './symbols.js';
7
+ import { globalId, performanceTime } from './utils.js';
8
8
 
9
9
  const debug = debuglog('urllib:DiagnosticsChannel');
10
10
  let initedDiagnosticsChannel = false;
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import LRU from 'ylru';
2
- import { HttpClient, HEADER_USER_AGENT } from './HttpClient';
3
- import { RequestOptions, RequestURL } from './Request';
2
+ import { HttpClient, HEADER_USER_AGENT } from './HttpClient.js';
3
+ import { RequestOptions, RequestURL } from './Request.js';
4
4
 
5
5
  let httpclient: HttpClient;
6
6
  const domainSocketHttpclients = new LRU(50);
@@ -39,14 +39,14 @@ export {
39
39
  export {
40
40
  HttpClient, HttpClient as HttpClient2, HEADER_USER_AGENT as USER_AGENT,
41
41
  RequestDiagnosticsMessage, ResponseDiagnosticsMessage,
42
- } from './HttpClient';
42
+ } from './HttpClient.js';
43
43
  // RequestOptions2 is keep compatible with urlib@2 RequestOptions2
44
44
  export {
45
45
  RequestOptions, RequestOptions as RequestOptions2, RequestURL, HttpMethod,
46
46
  FixJSONCtlCharsHandler, FixJSONCtlChars,
47
- } from './Request';
47
+ } from './Request.js';
48
48
 
49
- export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse } from './Response';
49
+ export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse } from './Response.js';
50
50
 
51
51
  export default {
52
52
  request,
package/src/utils.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { randomBytes, createHash } from 'node:crypto';
2
2
  import { Readable } from 'node:stream';
3
3
  import { performance } from 'node:perf_hooks';
4
- import { FixJSONCtlChars } from './Request';
4
+ import type { FixJSONCtlChars } from './Request.js';
5
5
 
6
6
  const JSONCtlCharsMap = {
7
7
  '"': '\\"', // \u0022
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes