@crawlee/http 3.13.6-beta.1 → 4.0.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.
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +3 -6
- package/index.js.map +1 -1
- package/internals/file-download.d.ts +3 -29
- package/internals/file-download.d.ts.map +1 -1
- package/internals/file-download.js +9 -80
- package/internals/file-download.js.map +1 -1
- package/internals/http-crawler.d.ts +22 -36
- package/internals/http-crawler.d.ts.map +1 -1
- package/internals/http-crawler.js +109 -201
- package/internals/http-crawler.js.map +1 -1
- package/package.json +19 -25
- package/tsconfig.build.tsbuildinfo +1 -1
- package/index.mjs +0 -97
package/index.d.ts
CHANGED
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
tslib_1.__exportStar(require("@crawlee/basic"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./internals/http-crawler"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./internals/file-download"), exports);
|
|
1
|
+
export * from '@crawlee/basic';
|
|
2
|
+
export * from './internals/http-crawler.js';
|
|
3
|
+
export * from './internals/file-download.js';
|
|
7
4
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
1
|
import type { Dictionary } from '@crawlee/types';
|
|
3
2
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
4
3
|
import type { Request } from 'got-scraping';
|
|
5
|
-
import type { ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RouterRoutes } from '../index';
|
|
6
|
-
import { HttpCrawler } from '../index';
|
|
4
|
+
import type { ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RouterRoutes } from '../index.js';
|
|
5
|
+
import { HttpCrawler } from '../index.js';
|
|
7
6
|
export type FileDownloadErrorHandler<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
8
7
|
JSONData extends Dictionary = any> = ErrorHandler<FileDownloadCrawlingContext<UserData, JSONData>>;
|
|
9
8
|
export type StreamHandlerContext = Omit<FileDownloadCrawlingContext, 'body' | 'parseWithCheerio' | 'json' | 'addRequests' | 'contentType'> & {
|
|
@@ -25,31 +24,6 @@ JSONData extends Dictionary = any> extends InternalHttpCrawlingContext<UserData,
|
|
|
25
24
|
}
|
|
26
25
|
export type FileDownloadRequestHandler<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
27
26
|
JSONData extends Dictionary = any> = RequestHandler<FileDownloadCrawlingContext<UserData, JSONData>>;
|
|
28
|
-
/**
|
|
29
|
-
* Creates a transform stream that throws an error if the source data speed is below the specified minimum speed.
|
|
30
|
-
* This `Transform` checks the amount of data every `checkProgressInterval` milliseconds.
|
|
31
|
-
* If the stream has received less than `minSpeedKbps * historyLengthMs / 1000` bytes in the last `historyLengthMs` milliseconds,
|
|
32
|
-
* it will throw an error.
|
|
33
|
-
*
|
|
34
|
-
* Can be used e.g. to abort a download if the network speed is too slow.
|
|
35
|
-
* @returns Transform stream that monitors the speed of the incoming data.
|
|
36
|
-
*/
|
|
37
|
-
export declare function MinimumSpeedStream({ minSpeedKbps, historyLengthMs, checkProgressInterval: checkProgressIntervalMs, }: {
|
|
38
|
-
minSpeedKbps: number;
|
|
39
|
-
historyLengthMs?: number;
|
|
40
|
-
checkProgressInterval?: number;
|
|
41
|
-
}): Transform;
|
|
42
|
-
/**
|
|
43
|
-
* Creates a transform stream that logs the progress of the incoming data.
|
|
44
|
-
* This `Transform` calls the `logProgress` function every `loggingInterval` milliseconds with the number of bytes received so far.
|
|
45
|
-
*
|
|
46
|
-
* Can be used e.g. to log the progress of a download.
|
|
47
|
-
* @returns Transform stream logging the progress of the incoming data.
|
|
48
|
-
*/
|
|
49
|
-
export declare function ByteCounterStream({ logTransferredBytes, loggingInterval, }: {
|
|
50
|
-
logTransferredBytes: (transferredBytes: number) => void;
|
|
51
|
-
loggingInterval?: number;
|
|
52
|
-
}): Transform;
|
|
53
27
|
/**
|
|
54
28
|
* Provides a framework for downloading files in parallel using plain HTTP requests. The URLs to download are fed either from a static list of URLs or they can be added on the fly from another crawler.
|
|
55
29
|
*
|
|
@@ -124,6 +98,6 @@ export declare class FileDownload extends HttpCrawler<FileDownloadCrawlingContex
|
|
|
124
98
|
* ```
|
|
125
99
|
*/
|
|
126
100
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
127
|
-
export declare function createFileRouter<Context extends FileDownloadCrawlingContext = FileDownloadCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData>): import("packages/core/dist/router").RouterHandler<Context>;
|
|
101
|
+
export declare function createFileRouter<Context extends FileDownloadCrawlingContext = FileDownloadCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData>): import("packages/core/dist/router.js").RouterHandler<Context>;
|
|
128
102
|
export {};
|
|
129
103
|
//# sourceMappingURL=file-download.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download.d.ts","sourceRoot":"","sources":["../../src/internals/file-download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-download.d.ts","sourceRoot":"","sources":["../../src/internals/file-download.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EACR,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,cAAc,EACd,YAAY,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAU,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,wBAAwB,CAChC,QAAQ,SAAS,UAAU,GAAG,GAAG,EAAE,2EAA2E;AAC9G,QAAQ,SAAS,UAAU,GAAG,GAAG,IACjC,YAAY,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACnC,2BAA2B,EAC3B,MAAM,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CACvE,GAAG;IACA,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAC3B,QAAQ,SAAS,UAAU,GAAG,GAAG,EAAE,2EAA2E;AAC9G,QAAQ,SAAS,UAAU,GAAG,GAAG,IAE/B,CAAC,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG;IAC3F,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC,CAAC,GACF,CAAC,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG;IAC3F,cAAc,EAAE,0BAA0B,CAAC;IAC3C,aAAa,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC,CAAC;AAET,MAAM,MAAM,gBAAgB,CACxB,QAAQ,SAAS,UAAU,GAAG,GAAG,EAAE,2EAA2E;AAC9G,QAAQ,SAAS,UAAU,GAAG,GAAG,IACjC,gBAAgB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE,MAAM,WAAW,2BAA2B,CACxC,QAAQ,SAAS,UAAU,GAAG,GAAG,EAAE,2EAA2E;AAC9G,QAAQ,SAAS,UAAU,GAAG,GAAG,CACnC,SAAQ,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC;CAAG;AAE1E,MAAM,MAAM,0BAA0B,CAClC,QAAQ,SAAS,UAAU,GAAG,GAAG,EAAE,2EAA2E;AAC9G,QAAQ,SAAS,UAAU,GAAG,GAAG,IACjC,cAAc,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,YAAa,SAAQ,WAAW,CAAC,2BAA2B,CAAC;IACtE,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,OAAO,GAAE,mBAAwB;cAqBpB,kBAAkB,CAAC,OAAO,EAAE,2BAA2B;YAQlE,oBAAoB;CA8DrC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,EACzE,QAAQ,SAAS,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAC1E,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,iEAEzC"}
|
|
@@ -1,71 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.MinimumSpeedStream = MinimumSpeedStream;
|
|
5
|
-
exports.ByteCounterStream = ByteCounterStream;
|
|
6
|
-
exports.createFileRouter = createFileRouter;
|
|
7
|
-
const node_stream_1 = require("node:stream");
|
|
8
|
-
const promises_1 = require("node:stream/promises");
|
|
9
|
-
const types_1 = require("node:util/types");
|
|
10
|
-
const index_1 = require("../index");
|
|
11
|
-
/**
|
|
12
|
-
* Creates a transform stream that throws an error if the source data speed is below the specified minimum speed.
|
|
13
|
-
* This `Transform` checks the amount of data every `checkProgressInterval` milliseconds.
|
|
14
|
-
* If the stream has received less than `minSpeedKbps * historyLengthMs / 1000` bytes in the last `historyLengthMs` milliseconds,
|
|
15
|
-
* it will throw an error.
|
|
16
|
-
*
|
|
17
|
-
* Can be used e.g. to abort a download if the network speed is too slow.
|
|
18
|
-
* @returns Transform stream that monitors the speed of the incoming data.
|
|
19
|
-
*/
|
|
20
|
-
function MinimumSpeedStream({ minSpeedKbps, historyLengthMs = 10e3, checkProgressInterval: checkProgressIntervalMs = 5e3, }) {
|
|
21
|
-
let snapshots = [];
|
|
22
|
-
const checkInterval = setInterval(() => {
|
|
23
|
-
const now = Date.now();
|
|
24
|
-
snapshots = snapshots.filter((snapshot) => now - snapshot.timestamp < historyLengthMs);
|
|
25
|
-
const totalBytes = snapshots.reduce((acc, snapshot) => acc + snapshot.bytes, 0);
|
|
26
|
-
const elapsed = (now - (snapshots[0]?.timestamp ?? 0)) / 1000;
|
|
27
|
-
if (totalBytes / 1024 / elapsed < minSpeedKbps) {
|
|
28
|
-
clearInterval(checkInterval);
|
|
29
|
-
stream.emit('error', new Error(`Stream speed too slow, aborting...`));
|
|
30
|
-
}
|
|
31
|
-
}, checkProgressIntervalMs);
|
|
32
|
-
const stream = new node_stream_1.Transform({
|
|
33
|
-
transform: (chunk, _, callback) => {
|
|
34
|
-
snapshots.push({ timestamp: Date.now(), bytes: chunk.length });
|
|
35
|
-
callback(null, chunk);
|
|
36
|
-
},
|
|
37
|
-
final: (callback) => {
|
|
38
|
-
clearInterval(checkInterval);
|
|
39
|
-
callback();
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
return stream;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Creates a transform stream that logs the progress of the incoming data.
|
|
46
|
-
* This `Transform` calls the `logProgress` function every `loggingInterval` milliseconds with the number of bytes received so far.
|
|
47
|
-
*
|
|
48
|
-
* Can be used e.g. to log the progress of a download.
|
|
49
|
-
* @returns Transform stream logging the progress of the incoming data.
|
|
50
|
-
*/
|
|
51
|
-
function ByteCounterStream({ logTransferredBytes, loggingInterval = 5000, }) {
|
|
52
|
-
let transferredBytes = 0;
|
|
53
|
-
let lastLogTime = Date.now();
|
|
54
|
-
return new node_stream_1.Transform({
|
|
55
|
-
transform: (chunk, _, callback) => {
|
|
56
|
-
transferredBytes += chunk.length;
|
|
57
|
-
if (Date.now() - lastLogTime > loggingInterval) {
|
|
58
|
-
lastLogTime = Date.now();
|
|
59
|
-
logTransferredBytes(transferredBytes);
|
|
60
|
-
}
|
|
61
|
-
callback(null, chunk);
|
|
62
|
-
},
|
|
63
|
-
flush: (callback) => {
|
|
64
|
-
logTransferredBytes(transferredBytes);
|
|
65
|
-
callback();
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
1
|
+
import { finished } from 'node:stream/promises';
|
|
2
|
+
import { isPromise } from 'node:util/types';
|
|
3
|
+
import { HttpCrawler, Router } from '../index.js';
|
|
69
4
|
/**
|
|
70
5
|
* Provides a framework for downloading files in parallel using plain HTTP requests. The URLs to download are fed either from a static list of URLs or they can be added on the fly from another crawler.
|
|
71
6
|
*
|
|
@@ -109,7 +44,8 @@ function ByteCounterStream({ logTransferredBytes, loggingInterval = 5000, }) {
|
|
|
109
44
|
* ]);
|
|
110
45
|
* ```
|
|
111
46
|
*/
|
|
112
|
-
class FileDownload extends
|
|
47
|
+
export class FileDownload extends HttpCrawler {
|
|
48
|
+
streamHandler;
|
|
113
49
|
constructor(options = {}) {
|
|
114
50
|
const { streamHandler } = options;
|
|
115
51
|
delete options.streamHandler;
|
|
@@ -118,12 +54,6 @@ class FileDownload extends index_1.HttpCrawler {
|
|
|
118
54
|
options.requestHandlerTimeoutSecs = options.navigationTimeoutSecs ?? 120;
|
|
119
55
|
}
|
|
120
56
|
super(options);
|
|
121
|
-
Object.defineProperty(this, "streamHandler", {
|
|
122
|
-
enumerable: true,
|
|
123
|
-
configurable: true,
|
|
124
|
-
writable: true,
|
|
125
|
-
value: void 0
|
|
126
|
-
});
|
|
127
57
|
this.streamHandler = streamHandler;
|
|
128
58
|
if (this.streamHandler) {
|
|
129
59
|
this.requestHandler = this.streamRequestHandler;
|
|
@@ -171,7 +101,7 @@ class FileDownload extends index_1.HttpCrawler {
|
|
|
171
101
|
cleanUp();
|
|
172
102
|
reject(e);
|
|
173
103
|
}
|
|
174
|
-
if (
|
|
104
|
+
if (isPromise(streamHandlerResult)) {
|
|
175
105
|
streamHandlerResult
|
|
176
106
|
.then(() => {
|
|
177
107
|
resolve();
|
|
@@ -185,11 +115,10 @@ class FileDownload extends index_1.HttpCrawler {
|
|
|
185
115
|
resolve();
|
|
186
116
|
}
|
|
187
117
|
});
|
|
188
|
-
await Promise.all([downloadPromise,
|
|
118
|
+
await Promise.all([downloadPromise, finished(response.stream)]);
|
|
189
119
|
cleanUp();
|
|
190
120
|
}
|
|
191
121
|
}
|
|
192
|
-
exports.FileDownload = FileDownload;
|
|
193
122
|
/**
|
|
194
123
|
* Creates new {@link Router} instance that works based on request labels.
|
|
195
124
|
* This instance can then serve as a `requestHandler` of your {@link FileDownload}.
|
|
@@ -214,7 +143,7 @@ exports.FileDownload = FileDownload;
|
|
|
214
143
|
* await crawler.run();
|
|
215
144
|
* ```
|
|
216
145
|
*/
|
|
217
|
-
function createFileRouter(routes) {
|
|
218
|
-
return
|
|
146
|
+
export function createFileRouter(routes) {
|
|
147
|
+
return Router.create(routes);
|
|
219
148
|
}
|
|
220
149
|
//# sourceMappingURL=file-download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download.js","sourceRoot":"","sources":["../../src/internals/file-download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-download.js","sourceRoot":"","sources":["../../src/internals/file-download.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,6 @@ export type PlainResponse = Omit<HttpResponse, 'body'> & IncomingMessage & {
|
|
|
20
20
|
export type HttpErrorHandler<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
21
21
|
JSONData extends JsonValue = any> = ErrorHandler<HttpCrawlingContext<UserData, JSONData>>;
|
|
22
22
|
export interface HttpCrawlerOptions<Context extends InternalHttpCrawlingContext = InternalHttpCrawlingContext> extends BasicCrawlerOptions<Context> {
|
|
23
|
-
/**
|
|
24
|
-
* An alias for {@link HttpCrawlerOptions.requestHandler}
|
|
25
|
-
* Soon to be removed, use `requestHandler` instead.
|
|
26
|
-
* @deprecated
|
|
27
|
-
*/
|
|
28
|
-
handlePageFunction?: HttpCrawlerOptions<Context>['requestHandler'];
|
|
29
23
|
/**
|
|
30
24
|
* Timeout in which the HTTP request to the resource needs to finish, given in seconds.
|
|
31
25
|
*/
|
|
@@ -263,8 +257,6 @@ export declare class HttpCrawler<Context extends InternalHttpCrawlingContext<any
|
|
|
263
257
|
protected ignoreHttpErrorStatusCodes: Set<number>;
|
|
264
258
|
protected readonly supportedMimeTypes: Set<string>;
|
|
265
259
|
protected static optionsShape: {
|
|
266
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
267
|
-
handlePageFunction: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
268
260
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
269
261
|
navigationTimeoutSecs: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
|
|
270
262
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
@@ -293,18 +285,12 @@ export declare class HttpCrawler<Context extends InternalHttpCrawlingContext<any
|
|
|
293
285
|
requestQueue: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
294
286
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
295
287
|
requestHandler: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
296
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
297
|
-
handleRequestFunction: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
298
288
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
299
289
|
requestHandlerTimeoutSecs: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
|
|
300
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
301
|
-
handleRequestTimeoutSecs: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
|
|
302
290
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
303
291
|
errorHandler: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
304
292
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
305
293
|
failedRequestHandler: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
306
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
307
|
-
handleFailedRequestFunction: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
308
294
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
309
295
|
maxRequestRetries: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
|
|
310
296
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
@@ -400,38 +386,38 @@ export declare class HttpCrawler<Context extends InternalHttpCrawlingContext<any
|
|
|
400
386
|
*/
|
|
401
387
|
protected _getRequestOptions(request: Request, session?: Session, proxyUrl?: string, gotOptions?: OptionsInit): {
|
|
402
388
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
403
|
-
body?: string | Buffer | Readable | Generator | AsyncGenerator | import("
|
|
389
|
+
body?: string | Buffer | Readable | Generator | AsyncGenerator | import("form-data-encoder").FormDataLike | undefined;
|
|
404
390
|
json?: unknown;
|
|
405
391
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
406
|
-
request?: import("got-scraping"
|
|
392
|
+
request?: import("got-scraping").RequestFunction | undefined;
|
|
407
393
|
url?: string | URL | undefined;
|
|
408
394
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
409
|
-
headers?: import("got-scraping"
|
|
395
|
+
headers?: import("got-scraping").Headers | undefined;
|
|
410
396
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
411
|
-
agent?: import("got-scraping"
|
|
397
|
+
agent?: import("got-scraping").Agents | undefined;
|
|
412
398
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
413
399
|
h2session?: import("http2").ClientHttp2Session | undefined;
|
|
414
400
|
decompress?: boolean | undefined;
|
|
415
401
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
416
|
-
timeout?: import("got-scraping"
|
|
402
|
+
timeout?: import("got-scraping").Delays | undefined;
|
|
417
403
|
prefixUrl?: string | URL | undefined;
|
|
418
404
|
form?: Record<string, any> | undefined;
|
|
419
405
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
420
|
-
cookieJar?: import("got-scraping"
|
|
406
|
+
cookieJar?: import("got-scraping").PromiseCookieJar | import("got-scraping").ToughCookieJar | undefined;
|
|
421
407
|
signal?: AbortSignal | undefined;
|
|
422
408
|
ignoreInvalidCookies?: boolean | undefined;
|
|
423
409
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
424
|
-
searchParams?: string | import("got-scraping"
|
|
410
|
+
searchParams?: string | import("got-scraping").SearchParameters | URLSearchParams | undefined;
|
|
425
411
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
426
|
-
dnsLookup?: import("cacheable-lookup"
|
|
412
|
+
dnsLookup?: import("cacheable-lookup").default["lookup"] | undefined;
|
|
427
413
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
428
|
-
dnsCache?: import("cacheable-lookup"
|
|
414
|
+
dnsCache?: import("cacheable-lookup").default | boolean | undefined;
|
|
429
415
|
context?: Record<string, unknown> | undefined;
|
|
430
416
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
431
|
-
followRedirect?: boolean | ((response: import("got-scraping"
|
|
417
|
+
followRedirect?: boolean | ((response: import("got-scraping").PlainResponse) => boolean) | undefined;
|
|
432
418
|
maxRedirects?: number | undefined;
|
|
433
419
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
434
|
-
cache?: string | import("
|
|
420
|
+
cache?: string | import("cacheable-request").StorageAdapter | boolean | undefined;
|
|
435
421
|
throwHttpErrors?: boolean | undefined;
|
|
436
422
|
username?: string | undefined;
|
|
437
423
|
password?: string | undefined;
|
|
@@ -439,36 +425,36 @@ export declare class HttpCrawler<Context extends InternalHttpCrawlingContext<any
|
|
|
439
425
|
allowGetBody?: boolean | undefined;
|
|
440
426
|
methodRewriting?: boolean | undefined;
|
|
441
427
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
442
|
-
dnsLookupIpVersion?: import("got-scraping"
|
|
428
|
+
dnsLookupIpVersion?: import("got-scraping").DnsLookupIpVersion;
|
|
443
429
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
444
|
-
parseJson?: import("got-scraping"
|
|
430
|
+
parseJson?: import("got-scraping").ParseJsonFunction | undefined;
|
|
445
431
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
446
|
-
stringifyJson?: import("got-scraping"
|
|
432
|
+
stringifyJson?: import("got-scraping").StringifyJsonFunction | undefined;
|
|
447
433
|
localAddress?: string | undefined;
|
|
448
434
|
method?: Method | undefined;
|
|
449
435
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
450
|
-
createConnection?: import("got-scraping"
|
|
436
|
+
createConnection?: import("got-scraping").CreateConnectionFunction | undefined;
|
|
451
437
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
452
|
-
cacheOptions?: import("got-scraping"
|
|
438
|
+
cacheOptions?: import("got-scraping").CacheOptions | undefined;
|
|
453
439
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
454
|
-
https?: import("got-scraping"
|
|
440
|
+
https?: import("got-scraping").HttpsOptions | undefined;
|
|
455
441
|
encoding?: BufferEncoding | undefined;
|
|
456
442
|
resolveBodyOnly?: boolean | undefined;
|
|
457
443
|
isStream?: boolean | undefined;
|
|
458
444
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
459
|
-
responseType?: import("got-scraping"
|
|
445
|
+
responseType?: import("got-scraping").ResponseType | undefined;
|
|
460
446
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
461
|
-
pagination?: import("got-scraping"
|
|
447
|
+
pagination?: import("got-scraping").PaginationOptions<unknown, unknown> | undefined;
|
|
462
448
|
setHost?: boolean | undefined;
|
|
463
449
|
maxHeaderSize?: number | undefined;
|
|
464
450
|
enableUnixSockets?: boolean | undefined;
|
|
465
451
|
} & {
|
|
466
452
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
467
|
-
hooks?: Partial<import("got-scraping"
|
|
453
|
+
hooks?: Partial<import("got-scraping").Hooks>;
|
|
468
454
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
469
|
-
retry?: Partial<import("got-scraping"
|
|
455
|
+
retry?: Partial<import("got-scraping").RetryOptions>;
|
|
470
456
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
471
|
-
} & import("got-scraping"
|
|
457
|
+
} & import("got-scraping").Context & Required<Pick<OptionsInit, "url">> & {
|
|
472
458
|
isStream: true;
|
|
473
459
|
};
|
|
474
460
|
protected _encodeResponse(request: Request, response: IncomingMessage, encoding: BufferEncoding): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/http-crawler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,WAAW,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAER,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,sBAAsB,EAEtB,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,OAAO,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEH,YAAY,EACZ,aAAa,EACb,gBAAgB,EAOnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"http-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/http-crawler.ts"],"names":[],"mappings":"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"}
|