@crawlee/core 4.0.0-beta.99 → 4.0.0-rc.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.
Files changed (109) hide show
  1. package/autoscaling/autoscaled_pool.d.ts +3 -21
  2. package/autoscaling/autoscaled_pool.js +105 -97
  3. package/autoscaling/concurrency_system.d.ts +7 -22
  4. package/autoscaling/concurrency_system.js +112 -100
  5. package/autoscaling/cpu_load_signal.d.ts +1 -2
  6. package/autoscaling/cpu_load_signal.js +11 -10
  7. package/autoscaling/event_loop_load_signal.d.ts +1 -4
  8. package/autoscaling/event_loop_load_signal.js +18 -18
  9. package/autoscaling/index.d.ts +1 -1
  10. package/autoscaling/index.js +1 -1
  11. package/autoscaling/load_signal.d.ts +8 -7
  12. package/autoscaling/load_signal.js +14 -12
  13. package/autoscaling/memory_load_signal.d.ts +3 -12
  14. package/autoscaling/memory_load_signal.js +41 -41
  15. package/autoscaling/snapshotter.d.ts +7 -10
  16. package/autoscaling/snapshotter.js +18 -18
  17. package/autoscaling/{client_load_signal.d.ts → storage_backend_load_signal.d.ts} +14 -17
  18. package/autoscaling/{client_load_signal.js → storage_backend_load_signal.js} +27 -27
  19. package/autoscaling/system_status.d.ts +9 -11
  20. package/autoscaling/system_status.js +13 -13
  21. package/configuration.d.ts +16 -16
  22. package/configuration.js +6 -6
  23. package/crawlers/context_pipeline.js +6 -6
  24. package/crawlers/crawler_commons.d.ts +14 -112
  25. package/crawlers/crawler_commons.js +1 -107
  26. package/crawlers/error_snapshotter.d.ts +2 -4
  27. package/crawlers/error_snapshotter.js +5 -5
  28. package/crawlers/index.d.ts +1 -1
  29. package/crawlers/index.js +0 -1
  30. package/crawlers/statistics.d.ts +164 -45
  31. package/crawlers/statistics.js +339 -153
  32. package/debug.js +4 -4
  33. package/enqueue_links/enqueue_links.d.ts +51 -159
  34. package/enqueue_links/enqueue_links.js +38 -231
  35. package/enqueue_links/shared.d.ts +34 -24
  36. package/enqueue_links/shared.js +54 -36
  37. package/errors.d.ts +43 -12
  38. package/errors.js +48 -9
  39. package/events/event_manager.d.ts +2 -2
  40. package/events/event_manager.js +7 -6
  41. package/events/local_event_manager.d.ts +1 -1
  42. package/events/local_event_manager.js +5 -5
  43. package/http.d.ts +9 -0
  44. package/http.js +28 -0
  45. package/index.d.ts +1 -1
  46. package/index.js +1 -1
  47. package/log.js +5 -1
  48. package/memory-storage/memory-storage.d.ts +3 -11
  49. package/memory-storage/memory-storage.js +42 -48
  50. package/memory-storage/resource-clients/dataset.d.ts +1 -1
  51. package/memory-storage/resource-clients/dataset.js +8 -13
  52. package/memory-storage/resource-clients/key-value-store.d.ts +1 -1
  53. package/memory-storage/resource-clients/key-value-store.js +36 -38
  54. package/memory-storage/resource-clients/request-queue.d.ts +4 -23
  55. package/memory-storage/resource-clients/request-queue.js +68 -80
  56. package/owned_or_injected.d.ts +1 -3
  57. package/owned_or_injected.js +17 -17
  58. package/package.json +8 -9
  59. package/proxy_configuration.d.ts +1 -3
  60. package/proxy_configuration.js +18 -14
  61. package/recoverable_state.d.ts +80 -45
  62. package/recoverable_state.js +163 -75
  63. package/request.d.ts +3 -4
  64. package/request.js +57 -44
  65. package/router.d.ts +6 -9
  66. package/router.js +23 -23
  67. package/serialization.js +14 -13
  68. package/service_locator.d.ts +19 -10
  69. package/service_locator.js +57 -48
  70. package/session_pool/session.d.ts +3 -14
  71. package/session_pool/session.js +76 -74
  72. package/session_pool/session_pool.d.ts +6 -12
  73. package/session_pool/session_pool.js +85 -77
  74. package/storages/batched_adds.d.ts +37 -0
  75. package/storages/batched_adds.js +73 -0
  76. package/storages/dataset.d.ts +12 -1
  77. package/storages/dataset.js +133 -32
  78. package/storages/index.d.ts +2 -1
  79. package/storages/index.js +2 -1
  80. package/storages/key_value_store.d.ts +19 -4
  81. package/storages/key_value_store.js +204 -75
  82. package/storages/request_dedup_cache.d.ts +1 -2
  83. package/storages/request_dedup_cache.js +9 -9
  84. package/storages/request_list.d.ts +4 -23
  85. package/storages/request_list.js +103 -96
  86. package/storages/request_loader.d.ts +5 -0
  87. package/storages/request_manager_tandem.d.ts +1 -10
  88. package/storages/request_manager_tandem.js +27 -27
  89. package/storages/request_queue.d.ts +21 -18
  90. package/storages/request_queue.js +318 -177
  91. package/storages/sitemap_request_loader.d.ts +22 -70
  92. package/storages/sitemap_request_loader.js +122 -116
  93. package/storages/storage_instance_manager.d.ts +1 -2
  94. package/storages/storage_instance_manager.js +17 -17
  95. package/storages/storage_stats.d.ts +1 -1
  96. package/storages/storage_stats.js +4 -4
  97. package/storages/throttling_request_manager.d.ts +239 -0
  98. package/storages/throttling_request_manager.js +646 -0
  99. package/storages/transaction.d.ts +252 -0
  100. package/storages/transaction.js +251 -0
  101. package/storages/utils.d.ts +6 -3
  102. package/storages/utils.js +11 -2
  103. package/system-info/runtime.js +7 -7
  104. package/url.d.ts +9 -0
  105. package/url.js +11 -0
  106. package/validators.d.ts +22 -25
  107. package/validators.js +13 -25
  108. package/storages/access_checking.d.ts +0 -12
  109. package/storages/access_checking.js +0 -17
@@ -4,6 +4,7 @@ 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 { JournalEntry } from './transaction.js';
7
8
  import type { IRequestManager, RequestsLike } from './request_manager.js';
8
9
  import type { RequestQueueStats } from './storage_stats.js';
9
10
  import type { IStorage, StorageIdentifier } from './storage_instance_manager.js';
@@ -43,29 +44,13 @@ import type { StorageOpenOptions } from './utils.js';
43
44
  * @category Sources
44
45
  */
45
46
  export declare class RequestQueue implements IStorage, IRequestManager {
47
+ #private;
46
48
  readonly id: string;
47
49
  readonly name?: string;
48
50
  readonly backend: RequestQueueBackend;
49
- private proxyConfiguration?;
50
51
  readonly log: CrawleeLogger;
51
52
  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
53
  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
54
  /**
70
55
  * Backend-independent usage counters tracked for this request queue (write operations and
71
56
  * queue-head reads issued to the underlying storage backend). Counted per backend call.
@@ -102,6 +87,24 @@ export declare class RequestQueue implements IStorage, IRequestManager {
102
87
  * @param [options] Request queue operation options.
103
88
  */
104
89
  addRequest(requestLike: Source, options?: RequestQueueOperationOptions): Promise<RequestQueueOperationInfo>;
90
+ /**
91
+ * Journals an addition for introspection only; these entries are never replayed. A no-op unless the
92
+ * transaction is open, so detached and outliving writers stay out of the journal.
93
+ */
94
+ private recordRequestJournalEntry;
95
+ /**
96
+ * The requests buffered by the given transaction for this queue, keyed by `uniqueKey` — a dedup
97
+ * index derived from the transaction journal.
98
+ */
99
+ private bufferedRequests;
100
+ /**
101
+ * Adds a request under the `deferred` policy: journaled now, really added by the commit replay.
102
+ * A new request's `requestId` is the local `uniqueKey` hash and is **provisional** — never write it
103
+ * to `request.id` or the dedup caches. Dedup is cheapest-first: buffer, caches, then a backend probe.
104
+ */
105
+ private addRequestDeferred;
106
+ /** @internal */
107
+ commitJournalEntries(entries: JournalEntry[]): Promise<void>;
105
108
  /**
106
109
  * Adds requests to the queue in batches of 25. This method will wait till all the requests are added
107
110
  * to the queue before resolving. You should prefer using `queue.addRequestsBatched()` or `crawler.addRequests()`
@@ -257,7 +260,7 @@ export declare class RequestQueue implements IStorage, IRequestManager {
257
260
  /**
258
261
  * @internal wraps public utility for mocking purposes
259
262
  */
260
- private _downloadListOfUrls;
263
+ private downloadListOfUrls;
261
264
  /**
262
265
  * Opens a request queue and returns a promise resolving to an instance
263
266
  * of the {@link RequestQueue} class.