got 10.5.7 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/source/{calculate-retry-delay.d.ts → as-promise/calculate-retry-delay.d.ts} +0 -0
- package/dist/source/{calculate-retry-delay.js → as-promise/calculate-retry-delay.js} +6 -7
- package/dist/source/as-promise/core.d.ts +13 -0
- package/dist/source/as-promise/core.js +124 -0
- package/dist/source/as-promise/create-rejection.d.ts +2 -0
- package/dist/source/as-promise/create-rejection.js +30 -0
- package/dist/source/as-promise/index.d.ts +5 -0
- package/dist/source/as-promise/index.js +203 -0
- package/dist/source/as-promise/types.d.ts +77 -0
- package/dist/source/as-promise/types.js +27 -0
- package/dist/source/core/index.d.ts +272 -0
- package/dist/source/core/index.js +1091 -0
- package/dist/source/{utils → core/utils}/get-body-size.d.ts +0 -0
- package/dist/source/{utils → core/utils}/get-body-size.js +0 -0
- package/dist/source/core/utils/is-form-data.d.ts +8 -0
- package/dist/source/{utils → core/utils}/is-form-data.js +0 -0
- package/dist/source/core/utils/options-to-url.d.ts +15 -0
- package/dist/source/{utils → core/utils}/options-to-url.js +5 -34
- package/dist/source/core/utils/proxy-events.d.ts +3 -0
- package/dist/source/core/utils/proxy-events.js +17 -0
- package/dist/source/{utils → core/utils}/timed-out.d.ts +0 -0
- package/dist/source/{utils → core/utils}/timed-out.js +2 -5
- package/dist/source/{utils → core/utils}/unhandle.d.ts +1 -1
- package/dist/source/{utils → core/utils}/unhandle.js +0 -0
- package/dist/source/{utils → core/utils}/url-to-options.d.ts +0 -0
- package/dist/source/{utils → core/utils}/url-to-options.js +0 -0
- package/dist/source/core/utils/weakable-map.d.ts +8 -0
- package/dist/source/core/utils/weakable-map.js +29 -0
- package/dist/source/create.d.ts +3 -79
- package/dist/source/create.js +83 -39
- package/dist/source/index.d.ts +3 -6
- package/dist/source/index.js +13 -19
- package/dist/source/types.d.ts +84 -198
- package/dist/source/types.js +0 -1
- package/package.json +41 -37
- package/readme.md +211 -97
- package/dist/source/as-promise.d.ts +0 -3
- package/dist/source/as-promise.js +0 -152
- package/dist/source/as-stream.d.ts +0 -7
- package/dist/source/as-stream.js +0 -121
- package/dist/source/errors.d.ts +0 -41
- package/dist/source/errors.js +0 -103
- package/dist/source/get-response.d.ts +0 -6
- package/dist/source/get-response.js +0 -25
- package/dist/source/known-hook-events.d.ts +0 -88
- package/dist/source/known-hook-events.js +0 -11
- package/dist/source/normalize-arguments.d.ts +0 -19
- package/dist/source/normalize-arguments.js +0 -436
- package/dist/source/progress.d.ts +0 -4
- package/dist/source/progress.js +0 -40
- package/dist/source/request-as-event-emitter.d.ts +0 -12
- package/dist/source/request-as-event-emitter.js +0 -284
- package/dist/source/utils/dynamic-require.d.ts +0 -3
- package/dist/source/utils/dynamic-require.js +0 -4
- package/dist/source/utils/is-form-data.d.ts +0 -3
- package/dist/source/utils/merge.d.ts +0 -6
- package/dist/source/utils/merge.js +0 -35
- package/dist/source/utils/options-to-url.d.ts +0 -19
- package/dist/source/utils/supports-brotli.d.ts +0 -2
- package/dist/source/utils/supports-brotli.js +0 -4
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Duplex, Readable } from 'stream';
|
|
3
|
+
import { URL, URLSearchParams } from 'url';
|
|
4
|
+
import { Socket } from 'net';
|
|
5
|
+
import { SecureContextOptions } from 'tls';
|
|
6
|
+
import http = require('http');
|
|
7
|
+
import { ClientRequest, RequestOptions, IncomingMessage, ServerResponse, request as httpRequest } from 'http';
|
|
8
|
+
import https = require('https');
|
|
9
|
+
import { Timings, IncomingMessageWithTimings } from '@szmarczak/http-timer';
|
|
10
|
+
import CacheableLookup from 'cacheable-lookup';
|
|
11
|
+
import CacheableRequest = require('cacheable-request');
|
|
12
|
+
import ResponseLike = require('responselike');
|
|
13
|
+
import { Delays, TimeoutError as TimedOutTimeoutError } from './utils/timed-out';
|
|
14
|
+
import { URLOptions } from './utils/options-to-url';
|
|
15
|
+
declare type HttpRequestFunction = typeof httpRequest;
|
|
16
|
+
declare type Error = NodeJS.ErrnoException;
|
|
17
|
+
declare const kRequest: unique symbol;
|
|
18
|
+
declare const kResponse: unique symbol;
|
|
19
|
+
declare const kResponseSize: unique symbol;
|
|
20
|
+
declare const kDownloadedSize: unique symbol;
|
|
21
|
+
declare const kBodySize: unique symbol;
|
|
22
|
+
declare const kUploadedSize: unique symbol;
|
|
23
|
+
declare const kServerResponsesPiped: unique symbol;
|
|
24
|
+
declare const kUnproxyEvents: unique symbol;
|
|
25
|
+
declare const kIsFromCache: unique symbol;
|
|
26
|
+
declare const kCancelTimeouts: unique symbol;
|
|
27
|
+
declare const kStartedReading: unique symbol;
|
|
28
|
+
declare const kStopReading: unique symbol;
|
|
29
|
+
declare const kTriggerRead: unique symbol;
|
|
30
|
+
export declare const kIsNormalizedAlready: unique symbol;
|
|
31
|
+
export interface Agents {
|
|
32
|
+
http?: http.Agent;
|
|
33
|
+
https?: https.Agent;
|
|
34
|
+
http2?: unknown;
|
|
35
|
+
}
|
|
36
|
+
export declare const withoutBody: ReadonlySet<string>;
|
|
37
|
+
export interface ToughCookieJar {
|
|
38
|
+
getCookieString(currentUrl: string, options: {
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}, cb: (err: Error | null, cookies: string) => void): void;
|
|
41
|
+
getCookieString(url: string, callback: (error: Error | null, cookieHeader: string) => void): void;
|
|
42
|
+
setCookie(cookieOrString: unknown, currentUrl: string, options: {
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}, cb: (err: Error | null, cookie: unknown) => void): void;
|
|
45
|
+
setCookie(rawCookie: string, url: string, callback: (error: Error | null, result: unknown) => void): void;
|
|
46
|
+
}
|
|
47
|
+
export interface PromiseCookieJar {
|
|
48
|
+
getCookieString(url: string): Promise<string>;
|
|
49
|
+
setCookie(rawCookie: string, url: string): Promise<unknown>;
|
|
50
|
+
}
|
|
51
|
+
export declare type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'HEAD' | 'DELETE' | 'OPTIONS' | 'TRACE' | 'get' | 'post' | 'put' | 'patch' | 'head' | 'delete' | 'options' | 'trace';
|
|
52
|
+
declare type Promisable<T> = T | Promise<T>;
|
|
53
|
+
export declare type InitHook = (options: Options) => Promisable<void>;
|
|
54
|
+
export declare type BeforeRequestHook = (options: NormalizedOptions) => Promisable<void | Response | ResponseLike>;
|
|
55
|
+
export declare type BeforeRedirectHook = (options: NormalizedOptions, response: Response) => Promisable<void>;
|
|
56
|
+
export declare type BeforeErrorHook = (error: RequestError) => Promisable<RequestError>;
|
|
57
|
+
export interface Hooks {
|
|
58
|
+
init?: InitHook[];
|
|
59
|
+
beforeRequest?: BeforeRequestHook[];
|
|
60
|
+
beforeRedirect?: BeforeRedirectHook[];
|
|
61
|
+
beforeError?: BeforeErrorHook[];
|
|
62
|
+
}
|
|
63
|
+
export declare type HookEvent = 'init' | 'beforeRequest' | 'beforeRedirect' | 'beforeError';
|
|
64
|
+
export declare const knownHookEvents: HookEvent[];
|
|
65
|
+
declare type AcceptableResponse = IncomingMessage | ResponseLike;
|
|
66
|
+
declare type AcceptableRequestResult = AcceptableResponse | ClientRequest | Promise<AcceptableResponse | ClientRequest> | undefined;
|
|
67
|
+
export declare type RequestFunction = (url: URL, options: RequestOptions, callback?: (response: AcceptableResponse) => void) => AcceptableRequestResult;
|
|
68
|
+
export declare type Headers = Record<string, string | string[] | undefined>;
|
|
69
|
+
export interface Options extends URLOptions, SecureContextOptions {
|
|
70
|
+
request?: RequestFunction;
|
|
71
|
+
agent?: Agents | false;
|
|
72
|
+
decompress?: boolean;
|
|
73
|
+
timeout?: Delays | number;
|
|
74
|
+
prefixUrl?: string | URL;
|
|
75
|
+
body?: string | Buffer | Readable;
|
|
76
|
+
form?: {
|
|
77
|
+
[key: string]: any;
|
|
78
|
+
};
|
|
79
|
+
json?: {
|
|
80
|
+
[key: string]: any;
|
|
81
|
+
};
|
|
82
|
+
url?: string | URL;
|
|
83
|
+
cookieJar?: PromiseCookieJar | ToughCookieJar;
|
|
84
|
+
ignoreInvalidCookies?: boolean;
|
|
85
|
+
searchParams?: string | {
|
|
86
|
+
[key: string]: string | number | boolean | null;
|
|
87
|
+
} | URLSearchParams;
|
|
88
|
+
dnsCache?: CacheableLookup | boolean;
|
|
89
|
+
context?: object;
|
|
90
|
+
hooks?: Hooks;
|
|
91
|
+
followRedirect?: boolean;
|
|
92
|
+
maxRedirects?: number;
|
|
93
|
+
cache?: string | CacheableRequest.StorageAdapter | false;
|
|
94
|
+
throwHttpErrors?: boolean;
|
|
95
|
+
username?: string;
|
|
96
|
+
password?: string;
|
|
97
|
+
http2?: boolean;
|
|
98
|
+
allowGetBody?: boolean;
|
|
99
|
+
lookup?: CacheableLookup['lookup'];
|
|
100
|
+
rejectUnauthorized?: boolean;
|
|
101
|
+
headers?: Headers;
|
|
102
|
+
methodRewriting?: boolean;
|
|
103
|
+
localAddress?: string;
|
|
104
|
+
socketPath?: string;
|
|
105
|
+
method?: Method;
|
|
106
|
+
createConnection?: (options: http.RequestOptions, oncreate: (error: Error, socket: Socket) => void) => Socket;
|
|
107
|
+
}
|
|
108
|
+
export interface NormalizedOptions extends Options {
|
|
109
|
+
method: Method;
|
|
110
|
+
url: URL;
|
|
111
|
+
timeout: Delays;
|
|
112
|
+
prefixUrl: string;
|
|
113
|
+
ignoreInvalidCookies: boolean;
|
|
114
|
+
decompress: boolean;
|
|
115
|
+
searchParams?: URLSearchParams;
|
|
116
|
+
cookieJar?: PromiseCookieJar;
|
|
117
|
+
headers: Headers;
|
|
118
|
+
context: object;
|
|
119
|
+
hooks: Required<Hooks>;
|
|
120
|
+
followRedirect: boolean;
|
|
121
|
+
maxRedirects: number;
|
|
122
|
+
cache?: string | CacheableRequest.StorageAdapter;
|
|
123
|
+
throwHttpErrors: boolean;
|
|
124
|
+
dnsCache?: CacheableLookup;
|
|
125
|
+
http2: boolean;
|
|
126
|
+
allowGetBody: boolean;
|
|
127
|
+
rejectUnauthorized: boolean;
|
|
128
|
+
lookup?: CacheableLookup['lookup'];
|
|
129
|
+
methodRewriting: boolean;
|
|
130
|
+
username: string;
|
|
131
|
+
password: string;
|
|
132
|
+
[kRequest]: HttpRequestFunction;
|
|
133
|
+
[kIsNormalizedAlready]?: boolean;
|
|
134
|
+
}
|
|
135
|
+
export interface Defaults {
|
|
136
|
+
timeout: Delays;
|
|
137
|
+
prefixUrl: string;
|
|
138
|
+
method: Method;
|
|
139
|
+
ignoreInvalidCookies: boolean;
|
|
140
|
+
decompress: boolean;
|
|
141
|
+
context: object;
|
|
142
|
+
cookieJar?: PromiseCookieJar | ToughCookieJar;
|
|
143
|
+
dnsCache?: CacheableLookup;
|
|
144
|
+
headers: Headers;
|
|
145
|
+
hooks: Required<Hooks>;
|
|
146
|
+
followRedirect: boolean;
|
|
147
|
+
maxRedirects: number;
|
|
148
|
+
cache?: string | CacheableRequest.StorageAdapter;
|
|
149
|
+
throwHttpErrors: boolean;
|
|
150
|
+
http2: boolean;
|
|
151
|
+
allowGetBody: boolean;
|
|
152
|
+
rejectUnauthorized: boolean;
|
|
153
|
+
methodRewriting: boolean;
|
|
154
|
+
agent?: Agents | false;
|
|
155
|
+
request?: RequestFunction;
|
|
156
|
+
searchParams?: URLSearchParams;
|
|
157
|
+
lookup?: CacheableLookup['lookup'];
|
|
158
|
+
localAddress?: string;
|
|
159
|
+
createConnection?: Options['createConnection'];
|
|
160
|
+
}
|
|
161
|
+
export interface Progress {
|
|
162
|
+
percent: number;
|
|
163
|
+
transferred: number;
|
|
164
|
+
total?: number;
|
|
165
|
+
}
|
|
166
|
+
export interface PlainResponse extends IncomingMessageWithTimings {
|
|
167
|
+
requestUrl: string;
|
|
168
|
+
redirectUrls: string[];
|
|
169
|
+
request: Request;
|
|
170
|
+
ip?: string;
|
|
171
|
+
isFromCache: boolean;
|
|
172
|
+
statusCode: number;
|
|
173
|
+
url: string;
|
|
174
|
+
timings: Timings;
|
|
175
|
+
}
|
|
176
|
+
export interface Response<T = unknown> extends PlainResponse {
|
|
177
|
+
body: T;
|
|
178
|
+
rawBody: Buffer;
|
|
179
|
+
retryCount: number;
|
|
180
|
+
}
|
|
181
|
+
export interface RequestEvents<T> {
|
|
182
|
+
on(name: 'request', listener: (request: http.ClientRequest) => void): T;
|
|
183
|
+
on<R extends Response>(name: 'response', listener: (response: R) => void): T;
|
|
184
|
+
on<R extends Response, N extends NormalizedOptions>(name: 'redirect', listener: (response: R, nextOptions: N) => void): T;
|
|
185
|
+
on(name: 'uploadProgress' | 'downloadProgress', listener: (progress: Progress) => void): T;
|
|
186
|
+
}
|
|
187
|
+
export declare class RequestError extends Error {
|
|
188
|
+
code?: string;
|
|
189
|
+
stack: string;
|
|
190
|
+
readonly options: NormalizedOptions;
|
|
191
|
+
readonly response?: Response;
|
|
192
|
+
readonly request?: Request;
|
|
193
|
+
readonly timings?: Timings;
|
|
194
|
+
constructor(message: string, error: Partial<Error & {
|
|
195
|
+
code?: string;
|
|
196
|
+
}>, self: Request | NormalizedOptions);
|
|
197
|
+
}
|
|
198
|
+
export declare class MaxRedirectsError extends RequestError {
|
|
199
|
+
readonly response: Response;
|
|
200
|
+
constructor(request: Request);
|
|
201
|
+
}
|
|
202
|
+
export declare class HTTPError extends RequestError {
|
|
203
|
+
readonly response: Response;
|
|
204
|
+
constructor(response: Response);
|
|
205
|
+
}
|
|
206
|
+
export declare class CacheError extends RequestError {
|
|
207
|
+
constructor(error: Error, request: Request);
|
|
208
|
+
}
|
|
209
|
+
export declare class UploadError extends RequestError {
|
|
210
|
+
constructor(error: Error, request: Request);
|
|
211
|
+
}
|
|
212
|
+
export declare class TimeoutError extends RequestError {
|
|
213
|
+
readonly timings: Timings;
|
|
214
|
+
readonly event: string;
|
|
215
|
+
constructor(error: TimedOutTimeoutError, timings: Timings, request: Request);
|
|
216
|
+
}
|
|
217
|
+
export declare class ReadError extends RequestError {
|
|
218
|
+
constructor(error: Error, request: Request);
|
|
219
|
+
}
|
|
220
|
+
export declare class UnsupportedProtocolError extends RequestError {
|
|
221
|
+
constructor(options: NormalizedOptions);
|
|
222
|
+
}
|
|
223
|
+
export default class Request extends Duplex implements RequestEvents<Request> {
|
|
224
|
+
['constructor']: typeof Request;
|
|
225
|
+
[kUnproxyEvents]: () => void;
|
|
226
|
+
_cannotHaveBody: boolean;
|
|
227
|
+
[kDownloadedSize]: number;
|
|
228
|
+
[kUploadedSize]: number;
|
|
229
|
+
[kStopReading]: boolean;
|
|
230
|
+
[kTriggerRead]: boolean;
|
|
231
|
+
[kBodySize]?: number;
|
|
232
|
+
[kServerResponsesPiped]: Set<ServerResponse>;
|
|
233
|
+
[kIsFromCache]?: boolean;
|
|
234
|
+
[kStartedReading]?: boolean;
|
|
235
|
+
[kCancelTimeouts]?: () => void;
|
|
236
|
+
[kResponseSize]?: number;
|
|
237
|
+
[kResponse]?: IncomingMessage;
|
|
238
|
+
[kRequest]?: ClientRequest;
|
|
239
|
+
_noPipe?: boolean;
|
|
240
|
+
_progressCallbacks: Array<() => void>;
|
|
241
|
+
options: NormalizedOptions;
|
|
242
|
+
requestUrl: string;
|
|
243
|
+
finalized: boolean;
|
|
244
|
+
redirects: string[];
|
|
245
|
+
constructor(url: string | URL, options?: Options, defaults?: Defaults);
|
|
246
|
+
static normalizeArguments(url?: string | URL, options?: Options, defaults?: Defaults): NormalizedOptions;
|
|
247
|
+
_lockWrite(): void;
|
|
248
|
+
_unlockWrite(): void;
|
|
249
|
+
_finalizeBody(): Promise<void>;
|
|
250
|
+
_onResponse(response: IncomingMessage): Promise<void>;
|
|
251
|
+
_onRequest(request: ClientRequest): void;
|
|
252
|
+
_createCacheableRequest(url: URL, options: RequestOptions): Promise<ClientRequest | ResponseLike>;
|
|
253
|
+
_makeRequest(): Promise<void>;
|
|
254
|
+
_beforeError(error: Error): Promise<void>;
|
|
255
|
+
_read(): void;
|
|
256
|
+
_write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
|
|
257
|
+
_writeRequest(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
|
|
258
|
+
_final(callback: (error?: Error | null) => void): void;
|
|
259
|
+
_destroy(error: Error | null, callback: (error: Error | null) => void): void;
|
|
260
|
+
get ip(): string | undefined;
|
|
261
|
+
get aborted(): boolean;
|
|
262
|
+
get socket(): Socket | undefined;
|
|
263
|
+
get downloadProgress(): Progress;
|
|
264
|
+
get uploadProgress(): Progress;
|
|
265
|
+
get timings(): Timings | undefined;
|
|
266
|
+
get isFromCache(): boolean | undefined;
|
|
267
|
+
pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
|
|
268
|
+
end?: boolean;
|
|
269
|
+
}): T;
|
|
270
|
+
unpipe<T extends NodeJS.WritableStream>(destination: T): this;
|
|
271
|
+
}
|
|
272
|
+
export {};
|