@crawlee/core 4.0.0-beta.13 → 4.0.0-beta.130
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 +17 -13
- package/autoscaling/autoscaled_pool.d.ts +67 -172
- package/autoscaling/autoscaled_pool.js +182 -329
- package/autoscaling/concurrency_system.d.ts +268 -0
- package/autoscaling/concurrency_system.js +362 -0
- package/autoscaling/cpu_load_signal.d.ts +43 -0
- package/autoscaling/cpu_load_signal.js +47 -0
- package/autoscaling/event_loop_load_signal.d.ts +51 -0
- package/autoscaling/event_loop_load_signal.js +60 -0
- package/autoscaling/index.d.ts +6 -1
- package/autoscaling/index.js +6 -1
- package/autoscaling/load_signal.d.ts +100 -0
- package/autoscaling/load_signal.js +105 -0
- package/autoscaling/memory_load_signal.d.ts +47 -0
- package/autoscaling/memory_load_signal.js +106 -0
- package/autoscaling/snapshotter.d.ts +58 -163
- package/autoscaling/snapshotter.js +45 -263
- package/autoscaling/storage_backend_load_signal.d.ts +56 -0
- package/autoscaling/storage_backend_load_signal.js +73 -0
- package/autoscaling/system_status.d.ts +67 -89
- package/autoscaling/system_status.js +92 -122
- package/autoscaling/weighted_avg.d.ts +5 -0
- package/autoscaling/weighted_avg.js +14 -0
- package/byte_utils.d.ts +17 -0
- package/byte_utils.js +42 -0
- package/configuration.d.ts +96 -223
- package/configuration.js +170 -222
- package/cookie_utils.d.ts +3 -2
- package/cookie_utils.js +18 -7
- package/crawlers/context_pipeline.d.ts +10 -1
- package/crawlers/context_pipeline.js +31 -8
- package/crawlers/crawler_commons.d.ts +90 -129
- package/crawlers/crawler_commons.js +1 -116
- package/crawlers/error_snapshotter.d.ts +2 -5
- package/crawlers/error_snapshotter.js +7 -8
- package/crawlers/error_tracker.d.ts +0 -1
- package/crawlers/error_tracker.js +0 -1
- package/crawlers/index.d.ts +1 -3
- package/crawlers/index.js +0 -3
- package/crawlers/internals/types.d.ts +0 -1
- package/crawlers/internals/types.js +0 -1
- package/crawlers/statistics.d.ts +187 -63
- package/crawlers/statistics.js +354 -164
- package/debug.d.ts +36 -0
- package/debug.js +70 -0
- package/enqueue_links/enqueue_links.d.ts +68 -154
- package/enqueue_links/enqueue_links.js +38 -210
- package/enqueue_links/index.d.ts +0 -1
- package/enqueue_links/index.js +0 -1
- package/enqueue_links/shared.d.ts +52 -26
- package/enqueue_links/shared.js +115 -66
- package/errors.d.ts +72 -4
- package/errors.js +89 -5
- package/events/event_manager.d.ts +35 -9
- package/events/event_manager.js +12 -13
- package/events/index.d.ts +0 -1
- package/events/index.js +0 -1
- package/events/local_event_manager.d.ts +15 -3
- package/events/local_event_manager.js +39 -13
- package/http.d.ts +9 -0
- package/http.js +28 -0
- package/index.d.ts +7 -4
- package/index.js +6 -3
- package/iterables.d.ts +79 -0
- package/iterables.js +134 -0
- package/log.d.ts +82 -3
- package/log.js +106 -1
- package/memory-storage/consts.d.ts +4 -0
- package/memory-storage/consts.js +4 -0
- package/memory-storage/index.d.ts +1 -0
- package/memory-storage/index.js +1 -0
- package/memory-storage/memory-storage.d.ts +38 -0
- package/memory-storage/memory-storage.js +130 -0
- package/memory-storage/resource-clients/common/base-client.d.ts +4 -0
- package/memory-storage/resource-clients/common/base-client.js +6 -0
- package/memory-storage/resource-clients/dataset.d.ts +40 -0
- package/memory-storage/resource-clients/dataset.js +108 -0
- package/memory-storage/resource-clients/key-value-store.d.ts +63 -0
- package/memory-storage/resource-clients/key-value-store.js +201 -0
- package/memory-storage/resource-clients/request-queue.d.ts +77 -0
- package/memory-storage/resource-clients/request-queue.js +409 -0
- package/memory-storage/utils.d.ts +16 -0
- package/memory-storage/utils.js +41 -0
- package/owned_or_injected.d.ts +58 -0
- package/owned_or_injected.js +98 -0
- package/package.json +14 -13
- package/proxy_configuration.d.ts +24 -132
- package/proxy_configuration.js +32 -147
- package/recoverable_state.d.ts +155 -0
- package/recoverable_state.js +231 -0
- package/request.d.ts +80 -16
- package/request.js +147 -68
- package/router.d.ts +193 -21
- package/router.js +188 -43
- package/serialization.d.ts +0 -1
- package/serialization.js +15 -15
- package/service_locator.d.ts +165 -0
- package/service_locator.js +253 -0
- package/session_pool/consts.d.ts +1 -2
- package/session_pool/consts.js +1 -2
- package/session_pool/errors.d.ts +0 -1
- package/session_pool/errors.js +0 -1
- package/session_pool/fingerprint.d.ts +9 -0
- package/session_pool/fingerprint.js +30 -0
- package/session_pool/index.d.ts +0 -2
- package/session_pool/index.js +0 -2
- package/session_pool/session.d.ts +35 -88
- package/session_pool/session.js +101 -159
- package/session_pool/session_pool.d.ts +73 -91
- package/session_pool/session_pool.js +172 -165
- package/storages/batched_adds.d.ts +37 -0
- package/storages/batched_adds.js +73 -0
- package/storages/dataset.d.ts +114 -54
- package/storages/dataset.js +291 -148
- package/storages/index.d.ts +10 -8
- package/storages/index.js +8 -8
- package/storages/key_value_store.d.ts +185 -42
- package/storages/key_value_store.js +445 -169
- package/storages/key_value_store_codec.d.ts +32 -0
- package/storages/key_value_store_codec.js +113 -0
- package/storages/request_dedup_cache.d.ts +22 -0
- package/storages/request_dedup_cache.js +48 -0
- package/storages/request_list.d.ts +52 -115
- package/storages/request_list.js +183 -152
- package/storages/request_loader.d.ts +101 -0
- package/storages/request_loader.js +1 -0
- package/storages/request_manager.d.ts +33 -0
- package/storages/request_manager.js +1 -0
- package/storages/request_manager_tandem.d.ts +97 -0
- package/storages/request_manager_tandem.js +197 -0
- package/storages/request_queue.d.ts +290 -47
- package/storages/request_queue.js +762 -216
- package/storages/{sitemap_request_list.d.ts → sitemap_request_loader.d.ts} +45 -89
- package/storages/sitemap_request_loader.js +438 -0
- package/storages/storage_instance_manager.d.ts +87 -0
- package/storages/storage_instance_manager.js +256 -0
- package/storages/storage_stats.d.ts +48 -0
- package/storages/storage_stats.js +29 -0
- package/storages/throttling_request_manager.d.ts +239 -0
- package/storages/throttling_request_manager.js +646 -0
- package/storages/transaction.d.ts +252 -0
- package/storages/transaction.js +251 -0
- package/storages/utils.d.ts +59 -11
- package/storages/utils.js +75 -15
- package/system-info/cpu-info.d.ts +67 -0
- package/system-info/cpu-info.js +216 -0
- package/system-info/memory-info.d.ts +31 -0
- package/system-info/memory-info.js +115 -0
- package/system-info/ps-tree.d.ts +17 -0
- package/system-info/ps-tree.js +144 -0
- package/system-info/runtime.d.ts +14 -0
- package/system-info/runtime.js +80 -0
- package/typedefs.d.ts +0 -6
- package/typedefs.js +0 -1
- package/url.d.ts +9 -0
- package/url.js +11 -0
- package/validators.d.ts +22 -18
- package/validators.js +13 -18
- package/autoscaling/autoscaled_pool.d.ts.map +0 -1
- package/autoscaling/autoscaled_pool.js.map +0 -1
- package/autoscaling/index.d.ts.map +0 -1
- package/autoscaling/index.js.map +0 -1
- package/autoscaling/snapshotter.d.ts.map +0 -1
- package/autoscaling/snapshotter.js.map +0 -1
- package/autoscaling/system_status.d.ts.map +0 -1
- package/autoscaling/system_status.js.map +0 -1
- package/configuration.d.ts.map +0 -1
- package/configuration.js.map +0 -1
- package/cookie_utils.d.ts.map +0 -1
- package/cookie_utils.js.map +0 -1
- package/crawlers/context_pipeline.d.ts.map +0 -1
- package/crawlers/context_pipeline.js.map +0 -1
- package/crawlers/crawler_commons.d.ts.map +0 -1
- package/crawlers/crawler_commons.js.map +0 -1
- package/crawlers/crawler_utils.d.ts +0 -10
- package/crawlers/crawler_utils.d.ts.map +0 -1
- package/crawlers/crawler_utils.js +0 -12
- package/crawlers/crawler_utils.js.map +0 -1
- package/crawlers/error_snapshotter.d.ts.map +0 -1
- package/crawlers/error_snapshotter.js.map +0 -1
- package/crawlers/error_tracker.d.ts.map +0 -1
- package/crawlers/error_tracker.js.map +0 -1
- package/crawlers/index.d.ts.map +0 -1
- package/crawlers/index.js.map +0 -1
- package/crawlers/internals/types.d.ts.map +0 -1
- package/crawlers/internals/types.js.map +0 -1
- package/crawlers/statistics.d.ts.map +0 -1
- package/crawlers/statistics.js.map +0 -1
- package/enqueue_links/enqueue_links.d.ts.map +0 -1
- package/enqueue_links/enqueue_links.js.map +0 -1
- package/enqueue_links/index.d.ts.map +0 -1
- package/enqueue_links/index.js.map +0 -1
- package/enqueue_links/shared.d.ts.map +0 -1
- package/enqueue_links/shared.js.map +0 -1
- package/errors.d.ts.map +0 -1
- package/errors.js.map +0 -1
- package/events/event_manager.d.ts.map +0 -1
- package/events/event_manager.js.map +0 -1
- package/events/index.d.ts.map +0 -1
- package/events/index.js.map +0 -1
- package/events/local_event_manager.d.ts.map +0 -1
- package/events/local_event_manager.js.map +0 -1
- package/http_clients/base-http-client.d.ts +0 -140
- package/http_clients/base-http-client.d.ts.map +0 -1
- package/http_clients/base-http-client.js +0 -40
- package/http_clients/base-http-client.js.map +0 -1
- package/http_clients/form-data-like.d.ts +0 -67
- package/http_clients/form-data-like.d.ts.map +0 -1
- package/http_clients/form-data-like.js +0 -5
- package/http_clients/form-data-like.js.map +0 -1
- package/http_clients/got-scraping-http-client.d.ts +0 -20
- package/http_clients/got-scraping-http-client.d.ts.map +0 -1
- package/http_clients/got-scraping-http-client.js +0 -82
- package/http_clients/got-scraping-http-client.js.map +0 -1
- package/http_clients/index.d.ts +0 -3
- package/http_clients/index.d.ts.map +0 -1
- package/http_clients/index.js +0 -3
- package/http_clients/index.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/index.js.map +0 -1
- package/log.d.ts.map +0 -1
- package/log.js.map +0 -1
- package/proxy_configuration.d.ts.map +0 -1
- package/proxy_configuration.js.map +0 -1
- package/request.d.ts.map +0 -1
- package/request.js.map +0 -1
- package/router.d.ts.map +0 -1
- package/router.js.map +0 -1
- package/serialization.d.ts.map +0 -1
- package/serialization.js.map +0 -1
- package/session_pool/consts.d.ts.map +0 -1
- package/session_pool/consts.js.map +0 -1
- package/session_pool/errors.d.ts.map +0 -1
- package/session_pool/errors.js.map +0 -1
- package/session_pool/events.d.ts +0 -3
- package/session_pool/events.d.ts.map +0 -1
- package/session_pool/events.js +0 -3
- package/session_pool/events.js.map +0 -1
- package/session_pool/index.d.ts.map +0 -1
- package/session_pool/index.js.map +0 -1
- package/session_pool/session.d.ts.map +0 -1
- package/session_pool/session.js.map +0 -1
- package/session_pool/session_pool.d.ts.map +0 -1
- package/session_pool/session_pool.js.map +0 -1
- package/storages/access_checking.d.ts +0 -13
- package/storages/access_checking.d.ts.map +0 -1
- package/storages/access_checking.js +0 -14
- package/storages/access_checking.js.map +0 -1
- package/storages/dataset.d.ts.map +0 -1
- package/storages/dataset.js.map +0 -1
- package/storages/index.d.ts.map +0 -1
- package/storages/index.js.map +0 -1
- package/storages/key_value_store.d.ts.map +0 -1
- package/storages/key_value_store.js.map +0 -1
- package/storages/request_list.d.ts.map +0 -1
- package/storages/request_list.js.map +0 -1
- package/storages/request_provider.d.ts +0 -308
- package/storages/request_provider.d.ts.map +0 -1
- package/storages/request_provider.js +0 -555
- package/storages/request_provider.js.map +0 -1
- package/storages/request_queue.d.ts.map +0 -1
- package/storages/request_queue.js.map +0 -1
- package/storages/request_queue_v2.d.ts +0 -87
- package/storages/request_queue_v2.d.ts.map +0 -1
- package/storages/request_queue_v2.js +0 -438
- package/storages/request_queue_v2.js.map +0 -1
- package/storages/sitemap_request_list.d.ts.map +0 -1
- package/storages/sitemap_request_list.js +0 -430
- package/storages/sitemap_request_list.js.map +0 -1
- package/storages/storage_manager.d.ts +0 -58
- package/storages/storage_manager.d.ts.map +0 -1
- package/storages/storage_manager.js +0 -105
- package/storages/storage_manager.js.map +0 -1
- package/storages/utils.d.ts.map +0 -1
- package/storages/utils.js.map +0 -1
- package/tsconfig.build.tsbuildinfo +0 -1
- package/typedefs.d.ts.map +0 -1
- package/typedefs.js.map +0 -1
- package/validators.d.ts.map +0 -1
- package/validators.js.map +0 -1
package/configuration.d.ts
CHANGED
|
@@ -1,151 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
*
|
|
63
|
-
* Alternative to `CRAWLEE_AVAILABLE_MEMORY_RATIO` environment variable.
|
|
64
|
-
* @default 0.25
|
|
65
|
-
*/
|
|
66
|
-
availableMemoryRatio?: number;
|
|
67
|
-
/**
|
|
68
|
-
* Sets the amount of system memory in megabytes to be used by the {@link AutoscaledPool}.
|
|
69
|
-
* By default, the maximum memory is set to one quarter of total system memory.
|
|
70
|
-
*
|
|
71
|
-
* Alternative to `CRAWLEE_MEMORY_MBYTES` environment variable.
|
|
72
|
-
*/
|
|
73
|
-
memoryMbytes?: number;
|
|
74
|
-
/**
|
|
75
|
-
* Defines the interval of emitting the `persistState` event.
|
|
76
|
-
*
|
|
77
|
-
* Alternative to `CRAWLEE_PERSIST_STATE_INTERVAL_MILLIS` environment variable.
|
|
78
|
-
* @default 60_000
|
|
79
|
-
*/
|
|
80
|
-
persistStateIntervalMillis?: number;
|
|
81
|
-
/**
|
|
82
|
-
Defines the interval of emitting the `systemInfo` event.
|
|
83
|
-
@default 1_000
|
|
84
|
-
*/
|
|
85
|
-
systemInfoIntervalMillis?: number;
|
|
86
|
-
/**
|
|
87
|
-
* Defines the default input key, i.e. the key that is used to get the crawler input value
|
|
88
|
-
* from the default {@link KeyValueStore} associated with the current crawler run.
|
|
89
|
-
*
|
|
90
|
-
* Alternative to `CRAWLEE_INPUT_KEY` environment variable.
|
|
91
|
-
* @default 'INPUT'
|
|
92
|
-
*/
|
|
93
|
-
inputKey?: string;
|
|
94
|
-
/**
|
|
95
|
-
* Defines whether web browsers launched by Crawlee will run in the headless mode.
|
|
96
|
-
*
|
|
97
|
-
* Alternative to `CRAWLEE_HEADLESS` environment variable.
|
|
98
|
-
* @default true
|
|
99
|
-
*/
|
|
100
|
-
headless?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Defines whether to run X virtual framebuffer on the web browsers launched by Crawlee.
|
|
103
|
-
*
|
|
104
|
-
* Alternative to `CRAWLEE_XVFB` environment variable.
|
|
105
|
-
* @default false
|
|
106
|
-
*/
|
|
107
|
-
xvfb?: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* Defines a path to Chrome executable.
|
|
110
|
-
*
|
|
111
|
-
* Alternative to `CRAWLEE_CHROME_EXECUTABLE_PATH` environment variable.
|
|
112
|
-
*/
|
|
113
|
-
chromeExecutablePath?: string;
|
|
114
|
-
/**
|
|
115
|
-
* Defines a path to default browser executable.
|
|
116
|
-
*
|
|
117
|
-
* Alternative to `CRAWLEE_DEFAULT_BROWSER_PATH` environment variable.
|
|
118
|
-
*/
|
|
119
|
-
defaultBrowserPath?: string;
|
|
120
|
-
/**
|
|
121
|
-
* Defines whether to disable browser sandbox by adding `--no-sandbox` flag to `launchOptions`.
|
|
122
|
-
*
|
|
123
|
-
* Alternative to `CRAWLEE_DISABLE_BROWSER_SANDBOX` environment variable.
|
|
124
|
-
*/
|
|
125
|
-
disableBrowserSandbox?: boolean;
|
|
126
|
-
/**
|
|
127
|
-
* Sets the log level to the given value.
|
|
128
|
-
*
|
|
129
|
-
* Alternative to `CRAWLEE_LOG_LEVEL` environment variable.
|
|
130
|
-
* @default 'INFO'
|
|
131
|
-
*/
|
|
132
|
-
logLevel?: LogLevel | LogLevel[keyof LogLevel];
|
|
133
|
-
/**
|
|
134
|
-
* Defines whether the storage client used should persist the data it stores.
|
|
135
|
-
*
|
|
136
|
-
* Alternative to `CRAWLEE_PERSIST_STORAGE` environment variable.
|
|
137
|
-
*/
|
|
138
|
-
persistStorage?: boolean;
|
|
139
|
-
/**
|
|
140
|
-
* Used in place of `isContainerized()` when collecting system metrics.
|
|
141
|
-
*
|
|
142
|
-
* Alternative to `CRAWLEE_CONTAINERIZED` environment variable.
|
|
143
|
-
*/
|
|
144
|
-
containerized?: boolean;
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { LogLevel } from './log.js';
|
|
3
|
+
export interface ConfigField<T extends z.ZodType = z.ZodType> {
|
|
4
|
+
schema: T;
|
|
5
|
+
envVar?: string | string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function field<T extends z.ZodType>(schema: T, envVar?: string | string[]): ConfigField<T>;
|
|
8
|
+
/** Zod preprocessor treating `'0'` and `'false'` as falsy. */
|
|
9
|
+
export declare const coerceBoolean: z.ZodPreprocess<z.ZodBoolean>;
|
|
10
|
+
export declare const coerceNumber: z.ZodPreprocess<z.ZodNumber>;
|
|
11
|
+
export declare const crawleeConfigFields: {
|
|
12
|
+
/** @default 'default' */
|
|
13
|
+
defaultDatasetId: ConfigField<z.ZodDefault<z.ZodString>>;
|
|
14
|
+
/** @default true */
|
|
15
|
+
purgeOnStart: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
16
|
+
/** @default 'default' */
|
|
17
|
+
defaultKeyValueStoreId: ConfigField<z.ZodDefault<z.ZodString>>;
|
|
18
|
+
/** @default 'default' */
|
|
19
|
+
defaultRequestQueueId: ConfigField<z.ZodDefault<z.ZodString>>;
|
|
20
|
+
/** @default 0.95 */
|
|
21
|
+
maxUsedCpuRatio: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodNumber>>>;
|
|
22
|
+
/** @default 0.25 */
|
|
23
|
+
availableMemoryRatio: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodNumber>>>;
|
|
24
|
+
memoryMbytes: ConfigField<z.ZodOptional<z.ZodPreprocess<z.ZodNumber>>>;
|
|
25
|
+
/** @default 60_000 */
|
|
26
|
+
persistStateIntervalMillis: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodNumber>>>;
|
|
27
|
+
/**
|
|
28
|
+
* Internal safety-net timeout for a single request, in milliseconds. When unset the crawler derives it from
|
|
29
|
+
* the request handler timeout (twice it, and never below 5 minutes).
|
|
30
|
+
*/
|
|
31
|
+
internalTimeoutMillis: ConfigField<z.ZodOptional<z.ZodPreprocess<z.ZodNumber>>>;
|
|
32
|
+
/** @default 1_000 */
|
|
33
|
+
systemInfoIntervalMillis: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodNumber>>>;
|
|
34
|
+
/** @default 'INPUT' */
|
|
35
|
+
inputKey: ConfigField<z.ZodDefault<z.ZodString>>;
|
|
36
|
+
/** @default true */
|
|
37
|
+
headless: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
38
|
+
/** @default false */
|
|
39
|
+
xvfb: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
40
|
+
chromeExecutablePath: ConfigField<z.ZodOptional<z.ZodString>>;
|
|
41
|
+
defaultBrowserPath: ConfigField<z.ZodOptional<z.ZodString>>;
|
|
42
|
+
/** @default false */
|
|
43
|
+
disableBrowserSandbox: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
44
|
+
logLevel: ConfigField<z.ZodOptional<z.ZodPreprocess<z.ZodEnum<typeof LogLevel>>>>;
|
|
45
|
+
/** @default true */
|
|
46
|
+
persistStorage: ConfigField<z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
47
|
+
/** @default './storage' */
|
|
48
|
+
storageDir: ConfigField<z.ZodDefault<z.ZodString>>;
|
|
49
|
+
containerized: ConfigField<z.ZodOptional<z.ZodPreprocess<z.ZodBoolean>>>;
|
|
50
|
+
};
|
|
51
|
+
export type FieldsInput<F extends Record<string, ConfigField>> = {
|
|
52
|
+
[K in keyof F]?: z.output<F[K]['schema']>;
|
|
53
|
+
};
|
|
54
|
+
export type FieldsOutput<F extends Record<string, ConfigField>> = {
|
|
55
|
+
[K in keyof F]: z.output<F[K]['schema']>;
|
|
56
|
+
};
|
|
57
|
+
export type ConfigurationInput = FieldsInput<typeof crawleeConfigFields>;
|
|
58
|
+
export type ResolvedConfigValues = FieldsOutput<typeof crawleeConfigFields>;
|
|
59
|
+
/** @deprecated Use {@link ConfigurationInput} instead. */
|
|
60
|
+
export type ConfigurationOptions = ConfigurationInput;
|
|
61
|
+
export interface Configuration extends ResolvedConfigValues {
|
|
145
62
|
}
|
|
146
63
|
/**
|
|
147
64
|
* `Configuration` is a value object holding Crawlee configuration. By default, there is a
|
|
148
|
-
* global singleton instance of this class available via `Configuration.
|
|
65
|
+
* global singleton instance of this class available via `Configuration.getGlobalConfiguration()`.
|
|
149
66
|
* Places that depend on a configurable behaviour depend on this class, as they have the global
|
|
150
67
|
* instance as the default value.
|
|
151
68
|
*
|
|
@@ -154,14 +71,10 @@ export interface ConfigurationOptions {
|
|
|
154
71
|
* import { BasicCrawler, Configuration } from 'crawlee';
|
|
155
72
|
*
|
|
156
73
|
* // Get the global configuration
|
|
157
|
-
* const config = Configuration.
|
|
158
|
-
* //
|
|
159
|
-
*
|
|
160
|
-
* config.
|
|
161
|
-
*
|
|
162
|
-
* // No need to pass the configuration to the crawler,
|
|
163
|
-
* // as it's using the global configuration by default
|
|
164
|
-
* const crawler = new BasicCrawler();
|
|
74
|
+
* const config = Configuration.getGlobalConfiguration();
|
|
75
|
+
* // Access configuration values directly as properties
|
|
76
|
+
* console.log(config.headless);
|
|
77
|
+
* console.log(config.persistStateIntervalMillis);
|
|
165
78
|
* ```
|
|
166
79
|
*
|
|
167
80
|
* *Using custom configuration:*
|
|
@@ -171,15 +84,14 @@ export interface ConfigurationOptions {
|
|
|
171
84
|
* // Create a new configuration
|
|
172
85
|
* const config = new Configuration({ persistStateIntervalMillis: 30_000 });
|
|
173
86
|
* // Pass the configuration to the crawler
|
|
174
|
-
* const crawler = new BasicCrawler({
|
|
87
|
+
* const crawler = new BasicCrawler({ configuration: config });
|
|
175
88
|
* ```
|
|
176
89
|
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
* so the options provided in constructor will override those. In other words, the precedence is:
|
|
90
|
+
* Configuration is immutable — values are set via the constructor and cannot be changed afterwards.
|
|
91
|
+
* The priority order for resolving values is (highest to lowest):
|
|
180
92
|
*
|
|
181
93
|
* ```text
|
|
182
|
-
*
|
|
94
|
+
* constructor options > environment variables > crawlee.json > schema defaults
|
|
183
95
|
* ```
|
|
184
96
|
*
|
|
185
97
|
* ## Supported Configuration Options
|
|
@@ -193,98 +105,59 @@ export interface ConfigurationOptions {
|
|
|
193
105
|
* `defaultKeyValueStoreId` | `CRAWLEE_DEFAULT_KEY_VALUE_STORE_ID` | `'default'`
|
|
194
106
|
* `defaultRequestQueueId` | `CRAWLEE_DEFAULT_REQUEST_QUEUE_ID` | `'default'`
|
|
195
107
|
* `persistStateIntervalMillis` | `CRAWLEE_PERSIST_STATE_INTERVAL_MILLIS` | `60_000`
|
|
108
|
+
* `internalTimeoutMillis` | `CRAWLEE_INTERNAL_TIMEOUT` | -
|
|
196
109
|
* `purgeOnStart` | `CRAWLEE_PURGE_ON_START` | `true`
|
|
197
110
|
* `persistStorage` | `CRAWLEE_PERSIST_STORAGE` | `true`
|
|
111
|
+
* `storageDir` | `CRAWLEE_STORAGE_DIR` | `'./storage'`
|
|
198
112
|
*
|
|
199
113
|
* ## Advanced Configuration Options
|
|
200
114
|
*
|
|
201
115
|
* Key | Environment Variable | Default Value
|
|
202
116
|
* ---|---|---
|
|
203
117
|
* `inputKey` | `CRAWLEE_INPUT_KEY` | `'INPUT'`
|
|
204
|
-
* `xvfb` | `CRAWLEE_XVFB` |
|
|
118
|
+
* `xvfb` | `CRAWLEE_XVFB` | `false`
|
|
205
119
|
* `chromeExecutablePath` | `CRAWLEE_CHROME_EXECUTABLE_PATH` | -
|
|
206
120
|
* `defaultBrowserPath` | `CRAWLEE_DEFAULT_BROWSER_PATH` | -
|
|
207
121
|
* `disableBrowserSandbox` | `CRAWLEE_DISABLE_BROWSER_SANDBOX` | -
|
|
208
122
|
* `availableMemoryRatio` | `CRAWLEE_AVAILABLE_MEMORY_RATIO` | `0.25`
|
|
209
|
-
* `containerized | `CRAWLEE_CONTAINERIZED | -
|
|
123
|
+
* `containerized` | `CRAWLEE_CONTAINERIZED` | -
|
|
210
124
|
*/
|
|
211
125
|
export declare class Configuration {
|
|
126
|
+
#private;
|
|
212
127
|
/**
|
|
213
|
-
*
|
|
214
|
-
|
|
215
|
-
protected static ENV_MAP: Dictionary;
|
|
216
|
-
protected static BOOLEAN_VARS: string[];
|
|
217
|
-
protected static INTEGER_VARS: string[];
|
|
218
|
-
protected static COMMA_SEPARATED_LIST_VARS: string[];
|
|
219
|
-
protected static DEFAULTS: Dictionary;
|
|
220
|
-
/**
|
|
221
|
-
* Provides access to the current-instance-scoped Configuration without passing it around in parameters.
|
|
222
|
-
* @internal
|
|
223
|
-
*/
|
|
224
|
-
static storage: AsyncLocalStorage<Configuration>;
|
|
225
|
-
protected options: Map<keyof ConfigurationOptions, ConfigurationOptions[keyof ConfigurationOptions]>;
|
|
226
|
-
protected services: Map<string, unknown>;
|
|
227
|
-
/** @internal */
|
|
228
|
-
static globalConfig?: Configuration;
|
|
229
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
230
|
-
readonly storageManagers: Map<Constructor, StorageManager<import("./storages/storage_manager.js").IStorage>>;
|
|
231
|
-
/**
|
|
232
|
-
* Creates new `Configuration` instance with provided options. Env vars will have precedence over those.
|
|
233
|
-
*/
|
|
234
|
-
constructor(options?: ConfigurationOptions);
|
|
235
|
-
/**
|
|
236
|
-
* Returns configured value. First checks the environment variables, then provided configuration,
|
|
237
|
-
* fallbacks to the `defaultValue` argument if provided, otherwise uses the default value as described
|
|
238
|
-
* in the above section.
|
|
239
|
-
*/
|
|
240
|
-
get<T extends keyof ConfigurationOptions, U extends ConfigurationOptions[T]>(key: T, defaultValue?: U): U;
|
|
241
|
-
protected _castEnvValue(key: keyof ConfigurationOptions, value: number | string | boolean): string | number | boolean | string[];
|
|
242
|
-
/**
|
|
243
|
-
* Sets value for given option. Only affects this `Configuration` instance, the value will not be propagated down to the env var.
|
|
244
|
-
* To reset a value, we can omit the `value` argument or pass `undefined` there.
|
|
128
|
+
* Field definitions for this configuration class.
|
|
129
|
+
* Subclasses override this to register additional fields.
|
|
245
130
|
*/
|
|
246
|
-
|
|
131
|
+
protected static fields: Record<string, ConfigField>;
|
|
247
132
|
/**
|
|
248
|
-
*
|
|
249
|
-
*
|
|
133
|
+
* Creates new `Configuration` instance with provided options.
|
|
134
|
+
* Constructor options take precedence over environment variables, which take precedence
|
|
135
|
+
* over crawlee.json values, which take precedence over schema defaults.
|
|
250
136
|
*/
|
|
251
|
-
|
|
137
|
+
constructor(options?: ConfigurationInput);
|
|
252
138
|
/**
|
|
253
|
-
* Returns
|
|
254
|
-
* this {@link Configuration} instance. Only first call of this method will create the client, following calls will
|
|
255
|
-
* return the same client instance.
|
|
139
|
+
* Returns the global configuration instance. It will respect the environment variables.
|
|
256
140
|
*
|
|
257
|
-
*
|
|
258
|
-
* multiple instances, one for each variant of the options.
|
|
259
|
-
* @internal
|
|
260
|
-
*/
|
|
261
|
-
getStorageClient(): StorageClient;
|
|
262
|
-
getEventManager(): EventManager;
|
|
263
|
-
/**
|
|
264
|
-
* Creates an instance of MemoryStorage using options as defined in the environment variables or in this `Configuration` instance.
|
|
265
|
-
* @internal
|
|
141
|
+
* Delegates to the global ServiceLocator, making it the single source of truth for service management.
|
|
266
142
|
*/
|
|
267
|
-
|
|
268
|
-
useStorageClient(client: StorageClient): void;
|
|
269
|
-
static useStorageClient(client: StorageClient): void;
|
|
270
|
-
useEventManager(events: EventManager): void;
|
|
143
|
+
static getGlobalConfiguration(): Configuration;
|
|
271
144
|
/**
|
|
272
|
-
*
|
|
145
|
+
* Resolves all field values once using the priority chain:
|
|
146
|
+
* constructor options > env vars > crawlee.json > schema defaults.
|
|
273
147
|
*/
|
|
274
|
-
static
|
|
148
|
+
private static resolveAll;
|
|
275
149
|
/**
|
|
276
|
-
*
|
|
150
|
+
* Registers getters (and throwing setters) on the instance for each field.
|
|
277
151
|
*/
|
|
278
|
-
|
|
152
|
+
private registerAccessors;
|
|
279
153
|
/**
|
|
280
|
-
*
|
|
154
|
+
* Reads the first defined env var value for a field definition.
|
|
155
|
+
* Empty strings are treated as unset, falling through to crawlee.json or schema defaults.
|
|
156
|
+
* (Crawlee v3 coerced `''` to `false`/`0`/`''` per type — v4 drops that for consistency.)
|
|
281
157
|
*/
|
|
282
|
-
static
|
|
158
|
+
private static readEnvVar;
|
|
283
159
|
/**
|
|
284
|
-
*
|
|
285
|
-
* if we want to change them, we need to first reset the global state. Used mainly for testing purposes.
|
|
160
|
+
* Loads config options from crawlee.json in the current working directory.
|
|
286
161
|
*/
|
|
287
|
-
static
|
|
288
|
-
protected buildOptions(options: ConfigurationOptions): void;
|
|
162
|
+
private static loadFileOptions;
|
|
289
163
|
}
|
|
290
|
-
//# sourceMappingURL=configuration.d.ts.map
|