@crawlee/core 4.0.0-beta.99 → 4.0.0-rc.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/README.md +1 -1
- package/configuration.d.ts +16 -47
- package/configuration.js +13 -25
- package/debug.js +4 -4
- package/errors.d.ts +28 -38
- package/errors.js +33 -47
- package/events/event_manager.d.ts +2 -2
- package/events/event_manager.js +7 -6
- package/events/index.d.ts +1 -0
- package/events/local_event_manager.d.ts +1 -8
- package/events/local_event_manager.js +13 -13
- package/events/system_info.d.ts +38 -0
- package/index.d.ts +2 -8
- package/index.js +4 -8
- package/internal.d.ts +8 -0
- package/internal.js +9 -0
- package/log.d.ts +10 -11
- package/log.js +52 -20
- package/memory-storage/memory-storage.d.ts +15 -18
- package/memory-storage/memory-storage.js +80 -58
- package/memory-storage/resource-clients/dataset.d.ts +1 -6
- package/memory-storage/resource-clients/dataset.js +23 -31
- package/memory-storage/resource-clients/key-value-store.d.ts +1 -10
- package/memory-storage/resource-clients/key-value-store.js +43 -67
- package/memory-storage/resource-clients/request-queue.d.ts +1 -42
- package/memory-storage/resource-clients/request-queue.js +109 -117
- package/owned_or_injected.d.ts +1 -3
- package/owned_or_injected.js +17 -17
- package/package.json +17 -20
- package/proxy_configuration.d.ts +21 -26
- package/proxy_configuration.js +35 -25
- package/recoverable_state.d.ts +104 -47
- package/recoverable_state.js +199 -74
- package/request.d.ts +20 -107
- package/request.js +78 -244
- package/serialization.js +17 -16
- package/service_locator.d.ts +22 -10
- package/service_locator.js +59 -48
- package/storages/batched_adds.d.ts +37 -0
- package/storages/batched_adds.js +73 -0
- package/storages/dataset.d.ts +13 -8
- package/storages/dataset.js +149 -40
- package/storages/index.d.ts +4 -4
- package/storages/index.js +2 -4
- package/storages/key_value_store.d.ts +16 -35
- package/storages/key_value_store.js +223 -110
- package/storages/key_value_store_codec.js +6 -11
- package/storages/request_dedup_cache.d.ts +1 -4
- package/storages/request_dedup_cache.js +15 -15
- package/storages/request_list.d.ts +9 -104
- package/storages/request_list.js +236 -233
- package/storages/request_loader.d.ts +49 -18
- package/storages/request_loader.js +36 -1
- package/storages/request_manager.d.ts +86 -0
- package/storages/request_manager_tandem.d.ts +14 -38
- package/storages/request_manager_tandem.js +67 -64
- package/storages/request_queue.d.ts +23 -50
- package/storages/request_queue.js +371 -226
- package/storages/storage_instance_manager.d.ts +2 -4
- package/storages/storage_instance_manager.js +21 -21
- package/storages/storage_stats.d.ts +1 -1
- package/storages/storage_stats.js +4 -4
- package/storages/transaction.d.ts +270 -0
- package/storages/transaction.js +296 -0
- package/storages/utils.d.ts +6 -3
- package/storages/utils.js +11 -2
- package/system-info/runtime.js +7 -7
- package/url.d.ts +9 -0
- package/url.js +11 -0
- package/validators.d.ts +23 -25
- package/validators.js +14 -25
- package/autoscaling/autoscaled_pool.d.ts +0 -213
- package/autoscaling/autoscaled_pool.js +0 -378
- package/autoscaling/client_load_signal.d.ts +0 -59
- package/autoscaling/client_load_signal.js +0 -73
- package/autoscaling/concurrency_system.d.ts +0 -283
- package/autoscaling/concurrency_system.js +0 -350
- package/autoscaling/cpu_load_signal.d.ts +0 -44
- package/autoscaling/cpu_load_signal.js +0 -46
- package/autoscaling/event_loop_load_signal.d.ts +0 -54
- package/autoscaling/event_loop_load_signal.js +0 -60
- package/autoscaling/index.d.ts +0 -9
- package/autoscaling/index.js +0 -9
- package/autoscaling/load_signal.d.ts +0 -99
- package/autoscaling/load_signal.js +0 -103
- package/autoscaling/memory_load_signal.d.ts +0 -56
- package/autoscaling/memory_load_signal.js +0 -106
- package/autoscaling/snapshotter.d.ts +0 -87
- package/autoscaling/snapshotter.js +0 -67
- package/autoscaling/system_status.d.ts +0 -161
- package/autoscaling/system_status.js +0 -139
- package/autoscaling/weighted_avg.d.ts +0 -5
- package/autoscaling/weighted_avg.js +0 -14
- package/cookie_utils.d.ts +0 -44
- package/cookie_utils.js +0 -122
- package/crawlers/context_pipeline.d.ts +0 -70
- package/crawlers/context_pipeline.js +0 -122
- package/crawlers/crawler_commons.d.ts +0 -257
- package/crawlers/crawler_commons.js +0 -107
- package/crawlers/error_snapshotter.d.ts +0 -59
- package/crawlers/error_snapshotter.js +0 -117
- package/crawlers/error_tracker.d.ts +0 -54
- package/crawlers/error_tracker.js +0 -308
- package/crawlers/index.d.ts +0 -5
- package/crawlers/index.js +0 -5
- package/crawlers/internals/types.d.ts +0 -7
- package/crawlers/statistics.d.ts +0 -209
- package/crawlers/statistics.js +0 -350
- package/enqueue_links/enqueue_links.d.ts +0 -264
- package/enqueue_links/enqueue_links.js +0 -271
- package/enqueue_links/index.d.ts +0 -2
- package/enqueue_links/index.js +0 -2
- package/enqueue_links/shared.d.ts +0 -83
- package/enqueue_links/shared.js +0 -221
- package/router.d.ts +0 -309
- package/router.js +0 -309
- package/session_pool/consts.d.ts +0 -3
- package/session_pool/consts.js +0 -3
- package/session_pool/errors.d.ts +0 -7
- package/session_pool/errors.js +0 -11
- package/session_pool/fingerprint.d.ts +0 -9
- package/session_pool/fingerprint.js +0 -30
- package/session_pool/index.d.ts +0 -4
- package/session_pool/index.js +0 -4
- package/session_pool/session.d.ts +0 -161
- package/session_pool/session.js +0 -218
- package/session_pool/session_pool.d.ts +0 -246
- package/session_pool/session_pool.js +0 -386
- package/storages/access_checking.d.ts +0 -12
- package/storages/access_checking.js +0 -17
- package/storages/sitemap_request_loader.d.ts +0 -249
- package/storages/sitemap_request_loader.js +0 -432
- /package/{crawlers/internals/types.js → events/system_info.js} +0 -0
|
@@ -4,7 +4,9 @@ import type { CrawleeLogger } from '../log.js';
|
|
|
4
4
|
import type { IProxyConfiguration } from '../proxy_configuration.js';
|
|
5
5
|
import type { Source } from '../request.js';
|
|
6
6
|
import { Request } from '../request.js';
|
|
7
|
-
import type {
|
|
7
|
+
import type { JournalEntry } from './transaction.js';
|
|
8
|
+
import type { RequestLoaderStatus } from './request_loader.js';
|
|
9
|
+
import type { IRequestManager, PacingSignal, RequestsLike } from './request_manager.js';
|
|
8
10
|
import type { RequestQueueStats } from './storage_stats.js';
|
|
9
11
|
import type { IStorage, StorageIdentifier } from './storage_instance_manager.js';
|
|
10
12
|
import type { StorageOpenOptions } from './utils.js';
|
|
@@ -43,29 +45,11 @@ import type { StorageOpenOptions } from './utils.js';
|
|
|
43
45
|
* @category Sources
|
|
44
46
|
*/
|
|
45
47
|
export declare class RequestQueue implements IStorage, IRequestManager {
|
|
48
|
+
#private;
|
|
46
49
|
readonly id: string;
|
|
47
50
|
readonly name?: string;
|
|
48
51
|
readonly backend: RequestQueueBackend;
|
|
49
|
-
private proxyConfiguration?;
|
|
50
52
|
readonly log: CrawleeLogger;
|
|
51
|
-
private requestCache;
|
|
52
|
-
/**
|
|
53
|
-
* Remembers the `requestId` of every request already submitted to the client — including background
|
|
54
|
-
* batches that `requestCache` skips — so overlapping URL sets aren't re-submitted.
|
|
55
|
-
* See {@link RequestDeduplicationCache} for why this is a separate, cheaper cache.
|
|
56
|
-
*/
|
|
57
|
-
private requestSeenCache;
|
|
58
|
-
private queuePausedForMigration;
|
|
59
|
-
private inProgressRequestBatchCount;
|
|
60
|
-
/**
|
|
61
|
-
* The largest expected request-processing time (in seconds) seen so far via
|
|
62
|
-
* {@link setExpectedRequestProcessingTimeSecs}. Used to ensure that value is only ever raised, never
|
|
63
|
-
* lowered, before being forwarded to the storage backend.
|
|
64
|
-
*/
|
|
65
|
-
private expectedRequestProcessingSecs;
|
|
66
|
-
private httpClient?;
|
|
67
|
-
private readonly events;
|
|
68
|
-
private readonly statsTracker;
|
|
69
53
|
/**
|
|
70
54
|
* Backend-independent usage counters tracked for this request queue (write operations and
|
|
71
55
|
* queue-head reads issued to the underlying storage backend). Counted per backend call.
|
|
@@ -102,6 +86,8 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
102
86
|
* @param [options] Request queue operation options.
|
|
103
87
|
*/
|
|
104
88
|
addRequest(requestLike: Source, options?: RequestQueueOperationOptions): Promise<RequestQueueOperationInfo>;
|
|
89
|
+
/** @internal */
|
|
90
|
+
commitJournalEntries(entries: JournalEntry[]): Promise<void>;
|
|
105
91
|
/**
|
|
106
92
|
* Adds requests to the queue in batches of 25. This method will wait till all the requests are added
|
|
107
93
|
* to the queue before resolving. You should prefer using `queue.addRequestsBatched()` or `crawler.addRequests()`
|
|
@@ -146,7 +132,7 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
146
132
|
* Note that the `null` return value doesn't mean the queue processing finished,
|
|
147
133
|
* it means there are currently no pending requests.
|
|
148
134
|
* To check whether all requests in queue were finished,
|
|
149
|
-
* use {@link RequestQueue.
|
|
135
|
+
* use {@link RequestQueue.checkReadiness} instead.
|
|
150
136
|
*
|
|
151
137
|
* @returns
|
|
152
138
|
* Returns the request object or `null` if there are no more pending requests.
|
|
@@ -167,25 +153,21 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
167
153
|
*/
|
|
168
154
|
reclaimRequest(request: Request, options?: RequestQueueOperationOptions): Promise<RequestQueueOperationInfo | null>;
|
|
169
155
|
/**
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* Note that even if the queue is empty, there might be some requests currently being processed
|
|
174
|
-
* (fetched but not yet handled or reclaimed). An empty queue therefore does not mean crawling is
|
|
175
|
-
* finished — those in-progress requests may still be reclaimed, and background tasks may still be
|
|
176
|
-
* adding more requests. To check whether all activity in the queue has finished, use
|
|
177
|
-
* {@link RequestQueue.isFinished}.
|
|
156
|
+
* A queue hands requests out as fast as they are asked for; pacing is a job for a manager wrapped around it,
|
|
157
|
+
* such as {@link ThrottlingRequestManager}.
|
|
158
|
+
* @inheritdoc
|
|
178
159
|
*/
|
|
179
|
-
|
|
160
|
+
recordPacingSignal(_signal: PacingSignal): boolean;
|
|
180
161
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
162
|
+
* Reports whether the queue has a request to hand over, is waiting on one, or is done.
|
|
163
|
+
*
|
|
164
|
+
* `waiting` means requests are in progress (fetched but not yet handled or reclaimed, possibly by another
|
|
165
|
+
* client sharing the queue) or a background add is still landing; neither has a clock, so no `readyAt`.
|
|
184
166
|
*
|
|
185
|
-
* Due to the nature of distributed storage used by the queue,
|
|
186
|
-
*
|
|
167
|
+
* Due to the nature of distributed storage used by the queue, `finished` may occasionally arrive a probe or
|
|
168
|
+
* two late, but it is never reported early.
|
|
187
169
|
*/
|
|
188
|
-
|
|
170
|
+
checkReadiness(): Promise<RequestLoaderStatus>;
|
|
189
171
|
/**
|
|
190
172
|
* Tells the queue how long a consumer expects to hold a fetched request before marking it handled
|
|
191
173
|
* or reclaiming it (typically the request-handler timeout plus padding), so that a storage backend
|
|
@@ -198,9 +180,11 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
198
180
|
*/
|
|
199
181
|
setExpectedRequestProcessingTimeSecs(secs: number): Promise<void>;
|
|
200
182
|
/**
|
|
201
|
-
*
|
|
183
|
+
* @inheritdoc
|
|
184
|
+
* Unlike {@link RequestQueue.setExpectedRequestProcessingTimeSecs}, which sizes every future lock,
|
|
185
|
+
* this only touches the one request it is given.
|
|
202
186
|
*/
|
|
203
|
-
|
|
187
|
+
extendRequestProcessingTimeSecs(request: Request, secs: number): Promise<boolean>;
|
|
204
188
|
/**
|
|
205
189
|
* Removes the queue either from the Apify Cloud storage or from the local database,
|
|
206
190
|
* depending on the mode of operation.
|
|
@@ -246,18 +230,6 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
246
230
|
* @throws If the underlying storage no longer exists (e.g. it was deleted externally).
|
|
247
231
|
*/
|
|
248
232
|
getInfo(): Promise<RequestQueueInfo>;
|
|
249
|
-
/**
|
|
250
|
-
* Fetches URLs from requestsFromUrl and returns them in format of list of requests
|
|
251
|
-
*/
|
|
252
|
-
private fetchRequestsFromUrl;
|
|
253
|
-
/**
|
|
254
|
-
* Adds all fetched requests from a URL from a remote resource.
|
|
255
|
-
*/
|
|
256
|
-
private addFetchedRequests;
|
|
257
|
-
/**
|
|
258
|
-
* @internal wraps public utility for mocking purposes
|
|
259
|
-
*/
|
|
260
|
-
private _downloadListOfUrls;
|
|
261
233
|
/**
|
|
262
234
|
* Opens a request queue and returns a promise resolving to an instance
|
|
263
235
|
* of the {@link RequestQueue} class.
|
|
@@ -277,6 +249,7 @@ export declare class RequestQueue implements IStorage, IRequestManager {
|
|
|
277
249
|
*/
|
|
278
250
|
static open(identifier?: string | StorageIdentifier | null, options?: StorageOpenOptions): Promise<RequestQueue>;
|
|
279
251
|
}
|
|
252
|
+
/** @internal */
|
|
280
253
|
export interface RequestQueueOptions {
|
|
281
254
|
/** Resolved metadata for the request queue, as returned by the backend's `getMetadata()`. */
|
|
282
255
|
metadata: RequestQueueInfo;
|