urllib 4.3.1 → 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.
Files changed (44) hide show
  1. package/README.md +0 -2
  2. package/dist/commonjs/FetchOpaqueInterceptor.d.ts +8 -0
  3. package/dist/commonjs/FetchOpaqueInterceptor.js +18 -0
  4. package/dist/commonjs/FormData.d.ts +4 -0
  5. package/dist/commonjs/FormData.js +38 -0
  6. package/dist/commonjs/HttpAgent.d.ts +3 -3
  7. package/dist/commonjs/HttpAgent.js +6 -5
  8. package/dist/commonjs/HttpClient.d.ts +31 -0
  9. package/dist/commonjs/HttpClient.js +62 -98
  10. package/dist/commonjs/Request.d.ts +5 -0
  11. package/dist/commonjs/diagnosticsChannel.js +11 -4
  12. package/dist/commonjs/fetch.d.ts +24 -0
  13. package/dist/commonjs/fetch.js +221 -0
  14. package/dist/commonjs/index.d.ts +2 -1
  15. package/dist/commonjs/index.js +7 -2
  16. package/dist/commonjs/utils.d.ts +4 -0
  17. package/dist/commonjs/utils.js +57 -1
  18. package/dist/esm/FetchOpaqueInterceptor.d.ts +8 -0
  19. package/dist/esm/FetchOpaqueInterceptor.js +12 -0
  20. package/dist/esm/FormData.d.ts +4 -0
  21. package/dist/esm/FormData.js +31 -0
  22. package/dist/esm/HttpAgent.d.ts +3 -3
  23. package/dist/esm/HttpAgent.js +6 -5
  24. package/dist/esm/HttpClient.d.ts +31 -0
  25. package/dist/esm/HttpClient.js +59 -95
  26. package/dist/esm/Request.d.ts +5 -0
  27. package/dist/esm/diagnosticsChannel.js +11 -4
  28. package/dist/esm/fetch.d.ts +24 -0
  29. package/dist/esm/fetch.js +214 -0
  30. package/dist/esm/index.d.ts +2 -1
  31. package/dist/esm/index.js +3 -2
  32. package/dist/esm/utils.d.ts +4 -0
  33. package/dist/esm/utils.js +52 -1
  34. package/dist/package.json +1 -1
  35. package/package.json +7 -5
  36. package/src/FetchOpaqueInterceptor.ts +41 -0
  37. package/src/FormData.ts +32 -0
  38. package/src/HttpAgent.ts +9 -7
  39. package/src/HttpClient.ts +92 -100
  40. package/src/Request.ts +6 -0
  41. package/src/diagnosticsChannel.ts +13 -3
  42. package/src/fetch.ts +263 -0
  43. package/src/index.ts +3 -0
  44. package/src/utils.ts +54 -0
package/README.md CHANGED
@@ -345,8 +345,6 @@ Node.js v22.3.0
345
345
 
346
346
  [MIT](LICENSE)
347
347
 
348
- <!-- GITCONTRIBUTOR_START -->
349
-
350
348
  ## Contributors
351
349
 
352
350
  [![Contributors](https://contrib.rocks/image?repo=node-modules/urllib)](https://github.com/node-modules/urllib/graphs/contributors)
@@ -0,0 +1,8 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { Dispatcher } from 'undici';
3
+ export interface FetchOpaque {
4
+ }
5
+ export interface OpaqueInterceptorOptions {
6
+ opaqueLocalStorage: AsyncLocalStorage<FetchOpaque>;
7
+ }
8
+ export declare function fetchOpaqueInterceptor(opts: OpaqueInterceptorOptions): (dispatch: Dispatcher["dispatch"]) => Dispatcher["dispatch"];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchOpaqueInterceptor = fetchOpaqueInterceptor;
7
+ const symbols_js_1 = __importDefault(require("./symbols.js"));
8
+ function fetchOpaqueInterceptor(opts) {
9
+ const opaqueLocalStorage = opts?.opaqueLocalStorage;
10
+ return (dispatch) => {
11
+ return function redirectInterceptor(opts, handler) {
12
+ const opaque = opaqueLocalStorage?.getStore();
13
+ handler.opaque = opaque;
14
+ return dispatch(opts, handler);
15
+ };
16
+ };
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmV0Y2hPcGFxdWVJbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GZXRjaE9wYXF1ZUludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBK0JBLHdEQVNDO0FBdENELDhEQUFtQztBQTZCbkMsU0FBZ0Isc0JBQXNCLENBQUMsSUFBOEI7SUFDbkUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7SUFDcEQsT0FBTyxDQUFDLFFBQWdDLEVBQTBCLEVBQUU7UUFDbEUsT0FBTyxTQUFTLG1CQUFtQixDQUFDLElBQWdDLEVBQUUsT0FBbUM7WUFDdkcsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDN0MsT0FBZSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDakMsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,4 @@
1
+ import _FormData from 'form-data';
2
+ export declare class FormData extends _FormData {
3
+ _getContentDisposition(value: any, options: any): string | undefined;
4
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FormData = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const form_data_1 = __importDefault(require("form-data"));
9
+ class FormData extends form_data_1.default {
10
+ _getContentDisposition(value, options) {
11
+ // support non-ascii filename
12
+ // https://github.com/form-data/form-data/pull/571
13
+ let filename;
14
+ let contentDisposition;
15
+ if (typeof options.filepath === 'string') {
16
+ // custom filepath for relative paths
17
+ filename = node_path_1.default.normalize(options.filepath).replace(/\\/g, '/');
18
+ }
19
+ else if (options.filename || value.name || value.path) {
20
+ // custom filename take precedence
21
+ // formidable and the browser add a name property
22
+ // fs- and request- streams have path property
23
+ filename = node_path_1.default.basename(options.filename || value.name || value.path);
24
+ }
25
+ else if (value.readable && value.hasOwnProperty('httpVersion')) {
26
+ // or try http response
27
+ filename = node_path_1.default.basename(value.client._httpMessage.path || '');
28
+ }
29
+ if (filename) {
30
+ // https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
31
+ // support non-ascii filename
32
+ contentDisposition = 'filename="' + filename + '"; filename*=UTF-8\'\'' + encodeURIComponent(filename);
33
+ }
34
+ return contentDisposition;
35
+ }
36
+ }
37
+ exports.FormData = FormData;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLDBEQUFrQztBQUVsQyxNQUFhLFFBQVMsU0FBUSxtQkFBUztJQUNyQyxzQkFBc0IsQ0FBQyxLQUFVLEVBQUUsT0FBWTtRQUM3Qyw2QkFBNkI7UUFDN0Isa0RBQWtEO1FBQ2xELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxrQkFBa0IsQ0FBQztRQUV2QixJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxxQ0FBcUM7WUFDckMsUUFBUSxHQUFHLG1CQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsa0NBQWtDO1lBQ2xDLGlEQUFpRDtZQUNqRCw4Q0FBOEM7WUFDOUMsUUFBUSxHQUFHLG1CQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDakUsdUJBQXVCO1lBQ3ZCLFFBQVEsR0FBRyxtQkFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYiw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGtCQUFrQixHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsd0JBQXdCLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekcsQ0FBQztRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBNUJELDRCQTRCQyJ9
@@ -1,14 +1,14 @@
1
1
  import { LookupFunction } from 'node:net';
2
2
  import { Agent, Dispatcher, buildConnector } from 'undici';
3
3
  export type CheckAddressFunction = (ip: string, family: number | string, hostname: string) => boolean;
4
- export type HttpAgentOptions = {
4
+ export interface HttpAgentOptions extends Agent.Options {
5
5
  lookup?: LookupFunction;
6
6
  checkAddress?: CheckAddressFunction;
7
7
  connect?: buildConnector.BuildOptions;
8
8
  allowH2?: boolean;
9
- };
9
+ }
10
10
  export declare class HttpAgent extends Agent {
11
11
  #private;
12
12
  constructor(options: HttpAgentOptions);
13
- dispatch(options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandlers): boolean;
13
+ dispatch(options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean;
14
14
  }
@@ -25,9 +25,9 @@ class HttpAgent extends undici_1.Agent {
25
25
  #checkAddress;
26
26
  constructor(options) {
27
27
  /* eslint node/prefer-promises/dns: off*/
28
- const _lookup = options.lookup ?? node_dns_1.default.lookup;
29
- const lookup = (hostname, dnsOptions, callback) => {
30
- _lookup(hostname, dnsOptions, (err, ...args) => {
28
+ const { lookup = node_dns_1.default.lookup, ...baseOpts } = options;
29
+ const lookupFunction = (hostname, dnsOptions, callback) => {
30
+ lookup(hostname, dnsOptions, (err, ...args) => {
31
31
  // address will be array on Node.js >= 20
32
32
  const address = args[0];
33
33
  const family = args[1];
@@ -54,7 +54,8 @@ class HttpAgent extends undici_1.Agent {
54
54
  });
55
55
  };
56
56
  super({
57
- connect: { ...options.connect, lookup, allowH2: options.allowH2 },
57
+ ...baseOpts,
58
+ connect: { ...options.connect, lookup: lookupFunction, allowH2: options.allowH2 },
58
59
  });
59
60
  this.#checkAddress = options.checkAddress;
60
61
  }
@@ -78,4 +79,4 @@ class HttpAgent extends undici_1.Agent {
78
79
  }
79
80
  }
80
81
  exports.HttpAgent = HttpAgent;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0h0dHBBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMkI7QUFDM0IsdUNBQWdEO0FBQ2hELG1DQUlnQjtBQVdoQixNQUFNLG1CQUFvQixTQUFRLEtBQUs7SUFDckMsUUFBUSxDQUFTO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE1BQU0sQ0FBUztJQUVmLFlBQVksUUFBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBYztRQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBYSxTQUFVLFNBQVEsY0FBSztJQUNsQyxhQUFhLENBQXdCO0lBRXJDLFlBQVksT0FBeUI7UUFDbkMseUNBQXlDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksa0JBQUcsQ0FBQyxNQUFNLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQW1CLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFO2dCQUNwRCx5Q0FBeUM7Z0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztn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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0h0dHBBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMkI7QUFDM0IsdUNBQWdEO0FBQ2hELG1DQUlnQjtBQVdoQixNQUFNLG1CQUFvQixTQUFRLEtBQUs7SUFDckMsUUFBUSxDQUFTO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE1BQU0sQ0FBUztJQUVmLFlBQVksUUFBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBYztRQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBYSxTQUFVLFNBQVEsY0FBSztJQUNsQyxhQUFhLENBQXdCO0lBRXJDLFlBQVksT0FBeUI7UUFDbkMseUNBQXlDO1FBQ3pDLE1BQU0sRUFBRSxNQUFNLEdBQUcsa0JBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFckQsTUFBTSxjQUFjLEdBQW1CLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN4RSxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFO2dCQUNuRCx5Q0FBeUM7Z0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxD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
@@ -1,9 +1,32 @@
1
+ import diagnosticsChannel from 'node:diagnostics_channel';
1
2
  import { EventEmitter } from 'node:events';
2
3
  import { LookupFunction } from 'node:net';
3
4
  import { Dispatcher } from 'undici';
4
5
  import { CheckAddressFunction } from './HttpAgent.js';
5
6
  import { RequestURL, RequestOptions, RequestMeta } from './Request.js';
6
7
  import { RawResponseWithMeta, HttpClientResponse } from './Response.js';
8
+ export declare const PROTO_RE: RegExp;
9
+ export interface UndiciTimingInfo {
10
+ startTime: number;
11
+ redirectStartTime: number;
12
+ redirectEndTime: number;
13
+ postRedirectStartTime: number;
14
+ finalServiceWorkerStartTime: number;
15
+ finalNetworkResponseStartTime: number;
16
+ finalNetworkRequestStartTime: number;
17
+ endTime: number;
18
+ encodedBodySize: number;
19
+ decodedBodySize: number;
20
+ finalConnectionTimingInfo: {
21
+ domainLookupStartTime: number;
22
+ domainLookupEndTime: number;
23
+ connectionStartTime: number;
24
+ connectionEndTime: number;
25
+ secureConnectionStartTime: number;
26
+ };
27
+ }
28
+ export interface UnidiciTimingInfo extends UndiciTimingInfo {
29
+ }
7
30
  export type ClientOptions = {
8
31
  defaultArgs?: RequestOptions;
9
32
  /** Allow to use HTTP2 first. Default is `false` */
@@ -46,6 +69,14 @@ export type RequestContext = {
46
69
  retries: number;
47
70
  socketErrorRetries: number;
48
71
  requestStartTime?: number;
72
+ redirects: number;
73
+ history: string[];
74
+ };
75
+ export declare const channels: {
76
+ request: diagnosticsChannel.Channel<unknown, unknown>;
77
+ response: diagnosticsChannel.Channel<unknown, unknown>;
78
+ fetchRequest: diagnosticsChannel.Channel<unknown, unknown>;
79
+ fetchResponse: diagnosticsChannel.Channel<unknown, unknown>;
49
80
  };
50
81
  export type RequestDiagnosticsMessage = {
51
82
  request: RequestMeta;