@crawlee/core 4.0.0-beta.7 → 4.0.0-beta.70

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 (253) hide show
  1. package/README.md +17 -13
  2. package/autoscaling/autoscaled_pool.d.ts +3 -5
  3. package/autoscaling/autoscaled_pool.d.ts.map +1 -1
  4. package/autoscaling/autoscaled_pool.js +3 -9
  5. package/autoscaling/autoscaled_pool.js.map +1 -1
  6. package/autoscaling/snapshotter.d.ts +3 -13
  7. package/autoscaling/snapshotter.d.ts.map +1 -1
  8. package/autoscaling/snapshotter.js +18 -29
  9. package/autoscaling/snapshotter.js.map +1 -1
  10. package/autoscaling/system_status.d.ts +0 -3
  11. package/autoscaling/system_status.d.ts.map +1 -1
  12. package/autoscaling/system_status.js +2 -3
  13. package/autoscaling/system_status.js.map +1 -1
  14. package/configuration.d.ts +88 -227
  15. package/configuration.d.ts.map +1 -1
  16. package/configuration.js +162 -223
  17. package/configuration.js.map +1 -1
  18. package/cookie_utils.d.ts +4 -2
  19. package/cookie_utils.d.ts.map +1 -1
  20. package/cookie_utils.js +18 -12
  21. package/cookie_utils.js.map +1 -1
  22. package/crawlers/context_pipeline.d.ts +71 -0
  23. package/crawlers/context_pipeline.d.ts.map +1 -0
  24. package/crawlers/context_pipeline.js +123 -0
  25. package/crawlers/context_pipeline.js.map +1 -0
  26. package/crawlers/crawler_commons.d.ts +20 -29
  27. package/crawlers/crawler_commons.d.ts.map +1 -1
  28. package/crawlers/crawler_commons.js +12 -20
  29. package/crawlers/crawler_commons.js.map +1 -1
  30. package/crawlers/crawler_utils.d.ts +2 -2
  31. package/crawlers/crawler_utils.d.ts.map +1 -1
  32. package/crawlers/crawler_utils.js +1 -1
  33. package/crawlers/crawler_utils.js.map +1 -1
  34. package/crawlers/error_snapshotter.d.ts +3 -2
  35. package/crawlers/error_snapshotter.d.ts.map +1 -1
  36. package/crawlers/error_snapshotter.js +2 -2
  37. package/crawlers/error_snapshotter.js.map +1 -1
  38. package/crawlers/error_tracker.d.ts +2 -1
  39. package/crawlers/error_tracker.d.ts.map +1 -1
  40. package/crawlers/error_tracker.js.map +1 -1
  41. package/crawlers/index.d.ts +1 -1
  42. package/crawlers/index.d.ts.map +1 -1
  43. package/crawlers/index.js +1 -1
  44. package/crawlers/index.js.map +1 -1
  45. package/crawlers/internals/types.d.ts +8 -0
  46. package/crawlers/internals/types.d.ts.map +1 -0
  47. package/crawlers/internals/types.js +2 -0
  48. package/crawlers/internals/types.js.map +1 -0
  49. package/crawlers/statistics.d.ts +16 -16
  50. package/crawlers/statistics.d.ts.map +1 -1
  51. package/crawlers/statistics.js +22 -25
  52. package/crawlers/statistics.js.map +1 -1
  53. package/enqueue_links/enqueue_links.d.ts +36 -21
  54. package/enqueue_links/enqueue_links.d.ts.map +1 -1
  55. package/enqueue_links/enqueue_links.js +47 -26
  56. package/enqueue_links/enqueue_links.js.map +1 -1
  57. package/enqueue_links/shared.d.ts +25 -8
  58. package/enqueue_links/shared.d.ts.map +1 -1
  59. package/enqueue_links/shared.js +69 -37
  60. package/enqueue_links/shared.js.map +1 -1
  61. package/errors.d.ts +33 -3
  62. package/errors.d.ts.map +1 -1
  63. package/errors.js +48 -4
  64. package/errors.js.map +1 -1
  65. package/events/event_manager.d.ts +34 -7
  66. package/events/event_manager.d.ts.map +1 -1
  67. package/events/event_manager.js +8 -9
  68. package/events/event_manager.js.map +1 -1
  69. package/events/local_event_manager.d.ts +14 -4
  70. package/events/local_event_manager.d.ts.map +1 -1
  71. package/events/local_event_manager.js +33 -39
  72. package/events/local_event_manager.js.map +1 -1
  73. package/index.d.ts +4 -2
  74. package/index.d.ts.map +1 -1
  75. package/index.js +3 -1
  76. package/index.js.map +1 -1
  77. package/log.d.ts +82 -2
  78. package/log.d.ts.map +1 -1
  79. package/log.js +102 -0
  80. package/log.js.map +1 -1
  81. package/memory-storage/consts.d.ts +5 -0
  82. package/memory-storage/consts.d.ts.map +1 -0
  83. package/memory-storage/consts.js +5 -0
  84. package/memory-storage/consts.js.map +1 -0
  85. package/memory-storage/index.d.ts +2 -0
  86. package/memory-storage/index.d.ts.map +1 -0
  87. package/memory-storage/index.js +2 -0
  88. package/memory-storage/index.js.map +1 -0
  89. package/memory-storage/memory-storage.d.ts +47 -0
  90. package/memory-storage/memory-storage.d.ts.map +1 -0
  91. package/memory-storage/memory-storage.js +137 -0
  92. package/memory-storage/memory-storage.js.map +1 -0
  93. package/memory-storage/resource-clients/common/base-client.d.ts +5 -0
  94. package/memory-storage/resource-clients/common/base-client.d.ts.map +1 -0
  95. package/memory-storage/resource-clients/common/base-client.js +7 -0
  96. package/memory-storage/resource-clients/common/base-client.js.map +1 -0
  97. package/memory-storage/resource-clients/dataset.d.ts +41 -0
  98. package/memory-storage/resource-clients/dataset.d.ts.map +1 -0
  99. package/memory-storage/resource-clients/dataset.js +114 -0
  100. package/memory-storage/resource-clients/dataset.js.map +1 -0
  101. package/memory-storage/resource-clients/key-value-store.d.ts +64 -0
  102. package/memory-storage/resource-clients/key-value-store.d.ts.map +1 -0
  103. package/memory-storage/resource-clients/key-value-store.js +204 -0
  104. package/memory-storage/resource-clients/key-value-store.js.map +1 -0
  105. package/memory-storage/resource-clients/request-queue.d.ts +97 -0
  106. package/memory-storage/resource-clients/request-queue.d.ts.map +1 -0
  107. package/memory-storage/resource-clients/request-queue.js +422 -0
  108. package/memory-storage/resource-clients/request-queue.js.map +1 -0
  109. package/memory-storage/utils.d.ts +12 -0
  110. package/memory-storage/utils.d.ts.map +1 -0
  111. package/memory-storage/utils.js +28 -0
  112. package/memory-storage/utils.js.map +1 -0
  113. package/package.json +12 -10
  114. package/proxy_configuration.d.ts +14 -148
  115. package/proxy_configuration.d.ts.map +1 -1
  116. package/proxy_configuration.js +19 -167
  117. package/proxy_configuration.js.map +1 -1
  118. package/recoverable_state.d.ts +121 -0
  119. package/recoverable_state.d.ts.map +1 -0
  120. package/recoverable_state.js +142 -0
  121. package/recoverable_state.js.map +1 -0
  122. package/request.d.ts +84 -12
  123. package/request.d.ts.map +1 -1
  124. package/request.js +107 -27
  125. package/request.js.map +1 -1
  126. package/router.d.ts.map +1 -1
  127. package/router.js.map +1 -1
  128. package/serialization.js +1 -1
  129. package/serialization.js.map +1 -1
  130. package/service_locator.d.ts +157 -0
  131. package/service_locator.d.ts.map +1 -0
  132. package/service_locator.js +239 -0
  133. package/service_locator.js.map +1 -0
  134. package/session_pool/consts.d.ts +1 -1
  135. package/session_pool/consts.d.ts.map +1 -1
  136. package/session_pool/consts.js +1 -1
  137. package/session_pool/consts.js.map +1 -1
  138. package/session_pool/fingerprint.d.ts +10 -0
  139. package/session_pool/fingerprint.d.ts.map +1 -0
  140. package/session_pool/fingerprint.js +31 -0
  141. package/session_pool/fingerprint.js.map +1 -0
  142. package/session_pool/index.d.ts +0 -1
  143. package/session_pool/index.d.ts.map +1 -1
  144. package/session_pool/index.js +0 -1
  145. package/session_pool/index.js.map +1 -1
  146. package/session_pool/session.d.ts +35 -72
  147. package/session_pool/session.d.ts.map +1 -1
  148. package/session_pool/session.js +46 -98
  149. package/session_pool/session.js.map +1 -1
  150. package/session_pool/session_pool.d.ts +71 -71
  151. package/session_pool/session_pool.d.ts.map +1 -1
  152. package/session_pool/session_pool.js +111 -99
  153. package/session_pool/session_pool.js.map +1 -1
  154. package/storages/access_checking.d.ts.map +1 -1
  155. package/storages/access_checking.js +5 -1
  156. package/storages/access_checking.js.map +1 -1
  157. package/storages/dataset.d.ts +98 -47
  158. package/storages/dataset.d.ts.map +1 -1
  159. package/storages/dataset.js +166 -123
  160. package/storages/dataset.js.map +1 -1
  161. package/storages/index.d.ts +8 -6
  162. package/storages/index.d.ts.map +1 -1
  163. package/storages/index.js +6 -6
  164. package/storages/index.js.map +1 -1
  165. package/storages/key_value_store.d.ts +163 -33
  166. package/storages/key_value_store.d.ts.map +1 -1
  167. package/storages/key_value_store.js +267 -119
  168. package/storages/key_value_store.js.map +1 -1
  169. package/storages/key_value_store_codec.d.ts +33 -0
  170. package/storages/key_value_store_codec.d.ts.map +1 -0
  171. package/storages/key_value_store_codec.js +114 -0
  172. package/storages/key_value_store_codec.js.map +1 -0
  173. package/storages/request_list.d.ts +32 -81
  174. package/storages/request_list.d.ts.map +1 -1
  175. package/storages/request_list.js +49 -39
  176. package/storages/request_list.js.map +1 -1
  177. package/storages/request_loader.d.ts +97 -0
  178. package/storages/request_loader.d.ts.map +1 -0
  179. package/storages/request_loader.js +2 -0
  180. package/storages/request_loader.js.map +1 -0
  181. package/storages/request_manager.d.ts +34 -0
  182. package/storages/request_manager.d.ts.map +1 -0
  183. package/storages/request_manager.js +2 -0
  184. package/storages/request_manager.js.map +1 -0
  185. package/storages/request_manager_tandem.d.ts +107 -0
  186. package/storages/request_manager_tandem.d.ts.map +1 -0
  187. package/storages/request_manager_tandem.js +198 -0
  188. package/storages/request_manager_tandem.js.map +1 -0
  189. package/storages/request_queue.d.ts +282 -45
  190. package/storages/request_queue.d.ts.map +1 -1
  191. package/storages/request_queue.js +592 -213
  192. package/storages/request_queue.js.map +1 -1
  193. package/storages/{sitemap_request_list.d.ts → sitemap_request_loader.d.ts} +29 -24
  194. package/storages/sitemap_request_loader.d.ts.map +1 -0
  195. package/storages/{sitemap_request_list.js → sitemap_request_loader.js} +50 -46
  196. package/storages/sitemap_request_loader.js.map +1 -0
  197. package/storages/storage_instance_manager.d.ts +92 -0
  198. package/storages/storage_instance_manager.d.ts.map +1 -0
  199. package/storages/storage_instance_manager.js +261 -0
  200. package/storages/storage_instance_manager.js.map +1 -0
  201. package/storages/storage_stats.d.ts +49 -0
  202. package/storages/storage_stats.d.ts.map +1 -0
  203. package/storages/storage_stats.js +30 -0
  204. package/storages/storage_stats.js.map +1 -0
  205. package/storages/utils.d.ts +51 -5
  206. package/storages/utils.d.ts.map +1 -1
  207. package/storages/utils.js +60 -8
  208. package/storages/utils.js.map +1 -1
  209. package/typedefs.d.ts +1 -1
  210. package/typedefs.d.ts.map +1 -1
  211. package/validators.d.ts +8 -0
  212. package/validators.d.ts.map +1 -1
  213. package/validators.js +8 -0
  214. package/validators.js.map +1 -1
  215. package/crawlers/crawler_extension.d.ts +0 -12
  216. package/crawlers/crawler_extension.d.ts.map +0 -1
  217. package/crawlers/crawler_extension.js +0 -14
  218. package/crawlers/crawler_extension.js.map +0 -1
  219. package/http_clients/base-http-client.d.ts +0 -134
  220. package/http_clients/base-http-client.d.ts.map +0 -1
  221. package/http_clients/base-http-client.js +0 -33
  222. package/http_clients/base-http-client.js.map +0 -1
  223. package/http_clients/form-data-like.d.ts +0 -67
  224. package/http_clients/form-data-like.d.ts.map +0 -1
  225. package/http_clients/form-data-like.js +0 -5
  226. package/http_clients/form-data-like.js.map +0 -1
  227. package/http_clients/got-scraping-http-client.d.ts +0 -15
  228. package/http_clients/got-scraping-http-client.d.ts.map +0 -1
  229. package/http_clients/got-scraping-http-client.js +0 -69
  230. package/http_clients/got-scraping-http-client.js.map +0 -1
  231. package/http_clients/index.d.ts +0 -3
  232. package/http_clients/index.d.ts.map +0 -1
  233. package/http_clients/index.js +0 -3
  234. package/http_clients/index.js.map +0 -1
  235. package/session_pool/events.d.ts +0 -3
  236. package/session_pool/events.d.ts.map +0 -1
  237. package/session_pool/events.js +0 -3
  238. package/session_pool/events.js.map +0 -1
  239. package/storages/request_provider.d.ts +0 -307
  240. package/storages/request_provider.d.ts.map +0 -1
  241. package/storages/request_provider.js +0 -555
  242. package/storages/request_provider.js.map +0 -1
  243. package/storages/request_queue_v2.d.ts +0 -87
  244. package/storages/request_queue_v2.d.ts.map +0 -1
  245. package/storages/request_queue_v2.js +0 -438
  246. package/storages/request_queue_v2.js.map +0 -1
  247. package/storages/sitemap_request_list.d.ts.map +0 -1
  248. package/storages/sitemap_request_list.js.map +0 -1
  249. package/storages/storage_manager.d.ts +0 -58
  250. package/storages/storage_manager.d.ts.map +0 -1
  251. package/storages/storage_manager.js +0 -105
  252. package/storages/storage_manager.js.map +0 -1
  253. package/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,114 @@
1
+ import contentTypeParser from 'content-type';
2
+ import { isBuffer, isStream } from '@crawlee/utils';
3
+ import JSON5 from 'json5';
4
+ import { jsonStringifyExtended } from '@apify/utilities';
5
+ const CONTENT_TYPE_JSON = 'application/json';
6
+ const STRINGIFIABLE_CONTENT_TYPE_RXS = [new RegExp(`^${CONTENT_TYPE_JSON}$`, 'i'), /^application\/.*xml$/i, /^text\//i];
7
+ /**
8
+ * Canonical write path for key-value store records.
9
+ *
10
+ * When a content type is provided, the value passes through unchanged — it is the caller's
11
+ * responsibility to supply a String/Buffer/Stream (the frontend validates this).
12
+ *
13
+ * When no content type is provided, it is inferred from the value's shape:
14
+ * - Buffer / typed array / ArrayBuffer / stream → `application/octet-stream` (passthrough)
15
+ * - `string` → `text/plain; charset=utf-8` (passthrough)
16
+ * - anything else → `application/json; charset=utf-8` (serialized via `jsonStringifyExtended`)
17
+ *
18
+ * Does NOT drain streams — that is storage mechanics and stays in the storage backend.
19
+ *
20
+ * Backend-independent.
21
+ */
22
+ export function serializeValue(value, contentType) {
23
+ if (contentType !== null && contentType !== undefined) {
24
+ return { value: value, contentType };
25
+ }
26
+ if (isStream(value) || isBuffer(value)) {
27
+ return {
28
+ value,
29
+ contentType: 'application/octet-stream',
30
+ };
31
+ }
32
+ if (typeof value === 'string') {
33
+ return { value, contentType: 'text/plain; charset=utf-8' };
34
+ }
35
+ let serialized;
36
+ try {
37
+ // Format JSON to simplify debugging, the overheads with compression is negligible
38
+ serialized = jsonStringifyExtended(value, null, 2);
39
+ }
40
+ catch (e) {
41
+ const error = e;
42
+ // Give more meaningful error message
43
+ if (error.message?.includes('Invalid string length')) {
44
+ error.message = 'Object is too large';
45
+ }
46
+ throw new Error(`The "value" parameter cannot be stringified to JSON: ${error.message}`);
47
+ }
48
+ if (serialized === undefined) {
49
+ throw new Error('The "value" parameter was stringified to JSON and returned undefined. ' +
50
+ "Make sure you're not trying to stringify an undefined value.");
51
+ }
52
+ return { value: serialized, contentType: 'application/json; charset=utf-8' };
53
+ }
54
+ /**
55
+ * Parses a Buffer or ArrayBuffer using the provided content type header.
56
+ *
57
+ * - application/json is returned as a parsed object.
58
+ * - application/*xml and text/* are returned as strings.
59
+ * - everything else is returned as original body.
60
+ *
61
+ * If the header includes a charset, the body will be stringified only
62
+ * if the charset represents a known encoding to Node.js or Browser.
63
+ *
64
+ * Backend-independent — this is the canonical read path for the {@link KeyValueStore} frontend.
65
+ */
66
+ export function parseValue(body, contentTypeHeader) {
67
+ // No content type at all → we have no basis for interpretation; hand back the raw value.
68
+ if (contentTypeHeader === null)
69
+ return body;
70
+ let contentType;
71
+ let charset;
72
+ try {
73
+ const result = contentTypeParser.parse(contentTypeHeader);
74
+ contentType = result.type;
75
+ charset = result.parameters.charset;
76
+ }
77
+ catch {
78
+ // Unparseable header → keep the original value rather than a mangled string.
79
+ return body;
80
+ }
81
+ // If we can't successfully interpret it, we return the original value rather than mangling it.
82
+ if (!areDataStringifiable(contentType, charset))
83
+ return body;
84
+ // Decode raw bytes using the resolved charset. An already-decoded string passes through (callers
85
+ // may hand us one directly), avoiding a needless re-encode round-trip.
86
+ const dataString = typeof body === 'string' ? body : isomorphicBufferToString(body, charset);
87
+ return contentType === CONTENT_TYPE_JSON ? JSON5.parse(dataString) : dataString;
88
+ }
89
+ function isomorphicBufferToString(buffer, encoding) {
90
+ if (buffer.constructor.name !== ArrayBuffer.name) {
91
+ return buffer.toString(encoding);
92
+ }
93
+ // In Node, wrap the ArrayBuffer in a Buffer so the resolved charset is honored (the caller already
94
+ // checked it via `Buffer.isEncoding`). Only the browser, which lacks Buffer, is limited to UTF-8.
95
+ if (typeof Buffer !== 'undefined') {
96
+ return Buffer.from(buffer).toString(encoding);
97
+ }
98
+ const decoder = new TextDecoder(encoding);
99
+ return decoder.decode(new Uint8Array(buffer));
100
+ }
101
+ function isCharsetStringifiable(charset) {
102
+ if (!charset)
103
+ return true; // hope that it's utf-8
104
+ return Buffer.isEncoding(charset);
105
+ }
106
+ function isContentTypeStringifiable(contentType) {
107
+ if (!contentType)
108
+ return false; // keep buffer
109
+ return STRINGIFIABLE_CONTENT_TYPE_RXS.some((rx) => rx.test(contentType));
110
+ }
111
+ function areDataStringifiable(contentType, charset) {
112
+ return isContentTypeStringifiable(contentType) && isCharsetStringifiable(charset);
113
+ }
114
+ //# sourceMappingURL=key_value_store_codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key_value_store_codec.js","sourceRoot":"","sources":["../../src/storages/key_value_store_codec.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,8BAA8B,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,iBAAiB,GAAG,EAAE,GAAG,CAAC,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;AAExH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC1B,KAAc,EACd,WAAoB;IAKpB,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,KAAiE,EAAE,WAAW,EAAE,CAAC;IACrG,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO;YACH,KAAK;YACL,WAAW,EAAE,0BAA0B;SAC1C,CAAC;IACN,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACD,kFAAkF;QAClF,UAAU,GAAG,qBAAqB,CAAC,KAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,qCAAqC;QACrC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,OAAO,GAAG,qBAAqB,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACX,wEAAwE;YACpE,8DAA8D,CACrE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CACtB,IAAmC,EACnC,iBAAgC;IAEhC,yFAAyF;IACzF,IAAI,iBAAiB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,WAAmB,CAAC;IACxB,IAAI,OAAuB,CAAC;IAC5B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1D,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAyB,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACL,6EAA6E;QAC7E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+FAA+F;IAC/F,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,iGAAiG;IACjG,uEAAuE;IACvE,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7F,OAAO,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACpF,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA4B,EAAE,QAAwB;IACpF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAQ,MAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,mGAAmG;IACnG,kGAAkG;IAClG,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAqB,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;IAClD,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,0BAA0B,CAAC,WAAmB;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,CAAC,cAAc;IAC9C,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,OAAe;IAC9D,OAAO,0BAA0B,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACtF,CAAC"}
@@ -1,75 +1,13 @@
1
- import type { Dictionary } from '@crawlee/types';
2
- import { Configuration } from '../configuration.js';
1
+ import type { BaseHttpClient, Dictionary } from '@crawlee/types';
2
+ import type { Configuration } from '../configuration.js';
3
3
  import type { ProxyConfiguration } from '../proxy_configuration.js';
4
4
  import { type InternalSource, Request, type RequestOptions, type Source } from '../request.js';
5
+ import type { IRequestLoader } from './request_loader.js';
6
+ import type { IRequestManager } from './request_manager.js';
5
7
  /** @internal */
6
8
  export declare const STATE_PERSISTENCE_KEY = "REQUEST_LIST_STATE";
7
9
  /** @internal */
8
10
  export declare const REQUESTS_PERSISTENCE_KEY = "REQUEST_LIST_REQUESTS";
9
- /**
10
- * Represents a static list of URLs to crawl.
11
- */
12
- export interface IRequestList {
13
- /**
14
- * Returns the total number of unique requests present in the list.
15
- */
16
- length(): number;
17
- /**
18
- * Returns `true` if all requests were already handled and there are no more left.
19
- */
20
- isFinished(): Promise<boolean>;
21
- /**
22
- * Resolves to `true` if the next call to {@link IRequestList.fetchNextRequest} function
23
- * would return `null`, otherwise it resolves to `false`.
24
- * Note that even if the list is empty, there might be some pending requests currently being processed.
25
- */
26
- isEmpty(): Promise<boolean>;
27
- /**
28
- * Returns number of handled requests.
29
- */
30
- handledCount(): number;
31
- /**
32
- * Persists the current state of the `IRequestList` into the default {@link KeyValueStore}.
33
- * The state is persisted automatically in regular intervals, but calling this method manually
34
- * is useful in cases where you want to have the most current state available after you pause
35
- * or stop fetching its requests. For example after you pause or abort a crawl. Or just before
36
- * a server migration.
37
- */
38
- persistState(): Promise<void>;
39
- /**
40
- * Gets the next {@link Request} to process. First, the function gets a request previously reclaimed
41
- * using the {@link RequestList.reclaimRequest} function, if there is any.
42
- * Otherwise it gets the next request from sources.
43
- *
44
- * The function's `Promise` resolves to `null` if there are no more
45
- * requests to process.
46
- */
47
- fetchNextRequest(): Promise<Request | null>;
48
- /**
49
- * Gets the next {@link Request} to process. First, the function gets a request previously reclaimed
50
- * using the {@link RequestList.reclaimRequest} function, if there is any.
51
- * Otherwise it gets the next request from sources.
52
- *
53
- * The function resolves to `null` if there are no more requests to process.
54
- *
55
- * Can be used to iterate over the `RequestList` instance in a `for await .. of` loop.
56
- * Provides an alternative for the repeated use of `fetchNextRequest`.
57
- */
58
- [Symbol.asyncIterator](): AsyncGenerator<Request>;
59
- /**
60
- * Reclaims request to the list if its processing failed.
61
- * The request will become available in the next `this.fetchNextRequest()`.
62
- */
63
- reclaimRequest(request: Request): Promise<void>;
64
- /**
65
- * Marks request as handled after successful processing.
66
- */
67
- markRequestHandled(request: Request): Promise<void>;
68
- /**
69
- * @internal
70
- */
71
- inProgress: Set<string>;
72
- }
73
11
  export interface RequestListOptions {
74
12
  /**
75
13
  * An array of sources of URLs for the {@link RequestList}. It can be either an array of strings,
@@ -209,6 +147,12 @@ export interface RequestListOptions {
209
147
  keepDuplicateUrls?: boolean;
210
148
  /** @internal */
211
149
  config?: Configuration;
150
+ /**
151
+ * The HTTP client to be used to download `requestsFromUrl` URLs.
152
+ *
153
+ * If not specified the `RequestList` will use the default HTTP client.
154
+ */
155
+ httpClient?: BaseHttpClient;
212
156
  }
213
157
  /**
214
158
  * Represents a static list of URLs to crawl.
@@ -232,8 +176,8 @@ export interface RequestListOptions {
232
176
  * > In practical terms, such a combination can be useful when there is a large number of initial URLs,
233
177
  * > but more URLs would be added dynamically by the crawler.
234
178
  *
235
- * `RequestList` has an internal state where it stores information about which requests were already handled,
236
- * which are in progress and which were reclaimed. The state may be automatically persisted to the default
179
+ * `RequestList` has an internal state where it stores information about which requests were already handled
180
+ * and which are in progress. The state may be automatically persisted to the default
237
181
  * {@link KeyValueStore} by setting the `persistStateKey` option so that if the Node.js process is restarted,
238
182
  * the crawling can continue where it left off. The automated persisting is launched upon receiving the `persistState`
239
183
  * event that is periodically emitted by {@link EventManager}.
@@ -271,7 +215,7 @@ export interface RequestListOptions {
271
215
  * ```
272
216
  * @category Sources
273
217
  */
274
- export declare class RequestList implements IRequestList {
218
+ export declare class RequestList implements IRequestLoader {
275
219
  private log;
276
220
  /**
277
221
  * Array of all requests from all sources, in the order as they appeared in sources.
@@ -289,10 +233,11 @@ export declare class RequestList implements IRequestList {
289
233
  */
290
234
  inProgress: Set<string>;
291
235
  /**
292
- * Set of `uniqueKey`s of requests for which reclaimRequest() was called.
236
+ * `uniqueKey`s of requests that were in progress when the state was last persisted and thus need to be
237
+ * re-crawled after a restart. They are served before advancing through the rest of the sources.
293
238
  * @internal
294
239
  */
295
- reclaimed: Set<string>;
240
+ private requestsToRetry;
296
241
  /**
297
242
  * Starts as true because until we handle the first request, the list is effectively persisted by doing nothing.
298
243
  * @internal
@@ -313,7 +258,7 @@ export declare class RequestList implements IRequestList {
313
258
  private sources;
314
259
  private sourcesFunction?;
315
260
  private proxyConfiguration?;
316
- private events;
261
+ private httpClient?;
317
262
  /**
318
263
  * To create new instance of `RequestList` we need to use `RequestList.open()` factory method.
319
264
  * @param options All `RequestList` configuration options
@@ -382,11 +327,7 @@ export declare class RequestList implements IRequestList {
382
327
  /**
383
328
  * @inheritDoc
384
329
  */
385
- markRequestHandled(request: Request): Promise<void>;
386
- /**
387
- * @inheritDoc
388
- */
389
- reclaimRequest(request: Request): Promise<void>;
330
+ markRequestAsHandled(request: Request): Promise<void>;
390
331
  /**
391
332
  * Adds all fetched requests from a URL from a remote resource.
392
333
  */
@@ -408,9 +349,9 @@ export declare class RequestList implements IRequestList {
408
349
  */
409
350
  protected _ensureUniqueKeyValid(uniqueKey: string): void;
410
351
  /**
411
- * Checks that request is not reclaimed and throws an error if so.
352
+ * Checks that a request is currently being processed and throws an error if not.
412
353
  */
413
- protected _ensureInProgressAndNotReclaimed(uniqueKey: string): void;
354
+ protected _ensureInProgress(uniqueKey: string): void;
414
355
  /**
415
356
  * Throws an error if request list wasn't initialized.
416
357
  */
@@ -418,11 +359,21 @@ export declare class RequestList implements IRequestList {
418
359
  /**
419
360
  * Returns the total number of unique requests present in the `RequestList`.
420
361
  */
421
- length(): number;
362
+ getTotalCount(): Promise<number>;
363
+ /**
364
+ * Returns the number of pending requests in the `RequestList`.
365
+ */
366
+ getPendingCount(): Promise<number>;
367
+ /**
368
+ * Combines this list with a request manager (a {@link RequestQueue} by default) into a
369
+ * {@link RequestManagerTandem}, allowing requests to be added and reclaimed while still
370
+ * being read from this list first.
371
+ */
372
+ toTandem(requestManager?: IRequestManager): Promise<IRequestManager>;
422
373
  /**
423
374
  * @inheritDoc
424
375
  */
425
- handledCount(): number;
376
+ getHandledCount(): Promise<number>;
426
377
  /**
427
378
  * Opens a request list and returns a promise resolving to an instance
428
379
  * of the {@link RequestList} class that is already initialized.
@@ -1 +1 @@
1
- {"version":3,"file":"request_list.d.ts","sourceRoot":"","sources":["../../src/storages/request_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request_list.d.ts","sourceRoot":"","sources":["../../src/storages/request_list.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { downloadListOfUrls } from '@crawlee/utils';
2
2
  import ow, { ArgumentError } from 'ow';
3
- import { Configuration } from '../configuration.js';
4
- import { log } from '../log.js';
5
3
  import { Request } from '../request.js';
6
4
  import { createDeserialize, serializeArray } from '../serialization.js';
5
+ import { serviceLocator } from '../service_locator.js';
7
6
  import { KeyValueStore } from './key_value_store.js';
8
7
  import { purgeDefaultStorages } from './utils.js';
9
8
  /** @internal */
@@ -33,8 +32,8 @@ const CONTENT_TYPE_BINARY = 'application/octet-stream';
33
32
  * > In practical terms, such a combination can be useful when there is a large number of initial URLs,
34
33
  * > but more URLs would be added dynamically by the crawler.
35
34
  *
36
- * `RequestList` has an internal state where it stores information about which requests were already handled,
37
- * which are in progress and which were reclaimed. The state may be automatically persisted to the default
35
+ * `RequestList` has an internal state where it stores information about which requests were already handled
36
+ * and which are in progress. The state may be automatically persisted to the default
38
37
  * {@link KeyValueStore} by setting the `persistStateKey` option so that if the Node.js process is restarted,
39
38
  * the crawling can continue where it left off. The automated persisting is launched upon receiving the `persistState`
40
39
  * event that is periodically emitted by {@link EventManager}.
@@ -73,7 +72,7 @@ const CONTENT_TYPE_BINARY = 'application/octet-stream';
73
72
  * @category Sources
74
73
  */
75
74
  export class RequestList {
76
- log = log.child({ prefix: 'RequestList' });
75
+ log = serviceLocator.getLogger().child({ prefix: 'RequestList' });
77
76
  /**
78
77
  * Array of all requests from all sources, in the order as they appeared in sources.
79
78
  * All requests in the array have distinct uniqueKey!
@@ -90,10 +89,11 @@ export class RequestList {
90
89
  */
91
90
  inProgress = new Set();
92
91
  /**
93
- * Set of `uniqueKey`s of requests for which reclaimRequest() was called.
92
+ * `uniqueKey`s of requests that were in progress when the state was last persisted and thus need to be
93
+ * re-crawled after a restart. They are served before advancing through the rest of the sources.
94
94
  * @internal
95
95
  */
96
- reclaimed = new Set();
96
+ requestsToRetry = [];
97
97
  /**
98
98
  * Starts as true because until we handle the first request, the list is effectively persisted by doing nothing.
99
99
  * @internal
@@ -114,14 +114,14 @@ export class RequestList {
114
114
  sources;
115
115
  sourcesFunction;
116
116
  proxyConfiguration;
117
- events;
117
+ httpClient;
118
118
  /**
119
119
  * To create new instance of `RequestList` we need to use `RequestList.open()` factory method.
120
120
  * @param options All `RequestList` configuration options
121
121
  * @internal
122
122
  */
123
123
  constructor(options = {}) {
124
- const { sources, sourcesFunction, persistStateKey, persistRequestsKey, state, proxyConfiguration, keepDuplicateUrls = false, config = Configuration.getGlobalConfig(), } = options;
124
+ const { sources, sourcesFunction, persistStateKey, persistRequestsKey, state, proxyConfiguration, keepDuplicateUrls = false, httpClient, } = options;
125
125
  if (!(sources || sourcesFunction)) {
126
126
  throw new ArgumentError('At least one of "sources" or "sourcesFunction" must be provided.', this.constructor);
127
127
  }
@@ -137,11 +137,12 @@ export class RequestList {
137
137
  }),
138
138
  keepDuplicateUrls: ow.optional.boolean,
139
139
  proxyConfiguration: ow.optional.object,
140
+ httpClient: ow.optional.object,
140
141
  }));
141
- this.persistStateKey = persistStateKey ? `SDK_${persistStateKey}` : persistStateKey;
142
- this.persistRequestsKey = persistRequestsKey ? `SDK_${persistRequestsKey}` : persistRequestsKey;
142
+ this.persistStateKey = persistStateKey ? `CRAWLEE_${persistStateKey}` : persistStateKey;
143
+ this.persistRequestsKey = persistRequestsKey ? `CRAWLEE_${persistRequestsKey}` : persistRequestsKey;
143
144
  this.initialState = state;
144
- this.events = config.getEventManager();
145
+ this.httpClient = httpClient;
145
146
  // If this option is set then all requests will get a pre-generated unique ID and duplicate URLs will be kept in the list.
146
147
  this.keepDuplicateUrls = keepDuplicateUrls;
147
148
  // Will be empty after initialization to save memory.
@@ -174,7 +175,7 @@ export class RequestList {
174
175
  if (this.persistRequestsKey && !this.areRequestsPersisted)
175
176
  await this._persistRequests();
176
177
  if (this.persistStateKey) {
177
- this.events.on("persistState" /* EventType.PERSIST_STATE */, this.persistState.bind(this));
178
+ serviceLocator.getEventManager().on("persistState" /* EventType.PERSIST_STATE */, this.persistState.bind(this));
178
179
  }
179
180
  return this;
180
181
  }
@@ -187,6 +188,7 @@ export class RequestList {
187
188
  // We don't need the sources so we purge them to
188
189
  // prevent them from hanging in memory.
189
190
  for (let i = 0; i < this.sources.length; i++) {
191
+ // oxlint-disable-next-line typescript/no-array-delete -- intentional, drop the slot so V8 can collect the object
190
192
  delete this.sources[i];
191
193
  }
192
194
  this.sources = [];
@@ -209,6 +211,7 @@ export class RequestList {
209
211
  const source = this.sources[i];
210
212
  // Using delete here to drop the original object ASAP to free memory
211
213
  // .pop would reverse the array and .shift is SLOW.
214
+ // oxlint-disable-next-line typescript/no-array-delete
212
215
  delete this.sources[i];
213
216
  if (typeof source === 'object' && source.requestsFromUrl) {
214
217
  const fetchedRequests = await this._fetchRequestsFromUrl(source);
@@ -316,8 +319,8 @@ export class RequestList {
316
319
  this.inProgress.delete(uniqueKey);
317
320
  }
318
321
  }
319
- // All in-progress requests need to be re-crawled
320
- this.reclaimed = new Set(this.inProgress);
322
+ // All in-progress requests were interrupted and need to be re-crawled.
323
+ this.requestsToRetry = [...this.inProgress];
321
324
  }
322
325
  /**
323
326
  * Attempts to load state and requests using the `RequestList` configuration
@@ -359,7 +362,7 @@ export class RequestList {
359
362
  */
360
363
  async isEmpty() {
361
364
  this._ensureIsInitialized();
362
- return this.reclaimed.size === 0 && this.nextIndex >= this.requests.length;
365
+ return this.requestsToRetry.length === 0 && this.nextIndex >= this.requests.length;
363
366
  }
364
367
  /**
365
368
  * @inheritDoc
@@ -373,10 +376,9 @@ export class RequestList {
373
376
  */
374
377
  async fetchNextRequest() {
375
378
  this._ensureIsInitialized();
376
- // First return reclaimed requests if any.
377
- const uniqueKey = this.reclaimed.values().next().value;
379
+ // First re-serve any requests that were interrupted before the last state persist.
380
+ const uniqueKey = this.requestsToRetry.shift();
378
381
  if (uniqueKey) {
379
- this.reclaimed.delete(uniqueKey);
380
382
  const index = this.uniqueKeyToIndex[uniqueKey];
381
383
  return this.ensureRequest(this.requests[index], index);
382
384
  }
@@ -412,24 +414,14 @@ export class RequestList {
412
414
  /**
413
415
  * @inheritDoc
414
416
  */
415
- async markRequestHandled(request) {
417
+ async markRequestAsHandled(request) {
416
418
  const { uniqueKey } = request;
417
419
  this._ensureUniqueKeyValid(uniqueKey);
418
- this._ensureInProgressAndNotReclaimed(uniqueKey);
420
+ this._ensureInProgress(uniqueKey);
419
421
  this._ensureIsInitialized();
420
422
  this.inProgress.delete(uniqueKey);
421
423
  this.isStatePersisted = false;
422
424
  }
423
- /**
424
- * @inheritDoc
425
- */
426
- async reclaimRequest(request) {
427
- const { uniqueKey } = request;
428
- this._ensureUniqueKeyValid(uniqueKey);
429
- this._ensureInProgressAndNotReclaimed(uniqueKey);
430
- this._ensureIsInitialized();
431
- this.reclaimed.add(uniqueKey);
432
- }
433
425
  /**
434
426
  * Adds all fetched requests from a URL from a remote resource.
435
427
  */
@@ -524,15 +516,12 @@ export class RequestList {
524
516
  }
525
517
  }
526
518
  /**
527
- * Checks that request is not reclaimed and throws an error if so.
519
+ * Checks that a request is currently being processed and throws an error if not.
528
520
  */
529
- _ensureInProgressAndNotReclaimed(uniqueKey) {
521
+ _ensureInProgress(uniqueKey) {
530
522
  if (!this.inProgress.has(uniqueKey)) {
531
523
  throw new Error(`The request is not being processed (uniqueKey: ${uniqueKey})`);
532
524
  }
533
- if (this.reclaimed.has(uniqueKey)) {
534
- throw new Error(`The request was already reclaimed (uniqueKey: ${uniqueKey})`);
535
- }
536
525
  }
537
526
  /**
538
527
  * Throws an error if request list wasn't initialized.
@@ -545,14 +534,32 @@ export class RequestList {
545
534
  /**
546
535
  * Returns the total number of unique requests present in the `RequestList`.
547
536
  */
548
- length() {
537
+ async getTotalCount() {
549
538
  this._ensureIsInitialized();
550
539
  return this.requests.length;
551
540
  }
541
+ /**
542
+ * Returns the number of pending requests in the `RequestList`.
543
+ */
544
+ async getPendingCount() {
545
+ this._ensureIsInitialized();
546
+ return this.requests.length - (this.nextIndex - this.inProgress.size);
547
+ }
548
+ /**
549
+ * Combines this list with a request manager (a {@link RequestQueue} by default) into a
550
+ * {@link RequestManagerTandem}, allowing requests to be added and reclaimed while still
551
+ * being read from this list first.
552
+ */
553
+ async toTandem(requestManager) {
554
+ // Import here to avoid circular imports.
555
+ const { RequestManagerTandem } = await import('./request_manager_tandem.js');
556
+ const { RequestQueue } = await import('./request_queue.js');
557
+ return new RequestManagerTandem(this, requestManager ?? (await RequestQueue.open()));
558
+ }
552
559
  /**
553
560
  * @inheritDoc
554
561
  */
555
- handledCount() {
562
+ async getHandledCount() {
556
563
  this._ensureIsInitialized();
557
564
  return this.nextIndex - this.inProgress.size;
558
565
  }
@@ -633,7 +640,10 @@ export class RequestList {
633
640
  * @internal wraps public utility for mocking purposes
634
641
  */
635
642
  async _downloadListOfUrls(options) {
636
- return downloadListOfUrls(options);
643
+ return downloadListOfUrls({
644
+ ...options,
645
+ httpClient: this.httpClient,
646
+ });
637
647
  }
638
648
  }
639
649
  //# sourceMappingURL=request_list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request_list.js","sourceRoot":"","sources":["../../src/storages/request_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request_list.js","sourceRoot":"","sources":["../../src/storages/request_list.ts"],"names":[],"mappings":"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"}