@crawlee/core 3.0.0-beta.9 → 3.0.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.
- package/README.md +75 -133
- package/autoscaling/autoscaled_pool.d.ts +5 -5
- package/autoscaling/autoscaled_pool.d.ts.map +1 -1
- package/autoscaling/autoscaled_pool.js +16 -16
- package/autoscaling/autoscaled_pool.js.map +1 -1
- package/autoscaling/snapshotter.d.ts +6 -6
- package/autoscaling/snapshotter.d.ts.map +1 -1
- package/autoscaling/snapshotter.js +12 -8
- package/autoscaling/snapshotter.js.map +1 -1
- package/autoscaling/system_status.d.ts +1 -1
- package/autoscaling/system_status.d.ts.map +1 -1
- package/configuration.d.ts +77 -62
- package/configuration.d.ts.map +1 -1
- package/configuration.js +85 -87
- package/configuration.js.map +1 -1
- package/crawlers/crawler_commons.d.ts +7 -12
- package/crawlers/crawler_commons.d.ts.map +1 -1
- package/crawlers/crawler_utils.d.ts +1 -1
- package/crawlers/crawler_utils.d.ts.map +1 -1
- package/crawlers/statistics.d.ts.map +1 -1
- package/crawlers/statistics.js +1 -1
- package/crawlers/statistics.js.map +1 -1
- package/enqueue_links/enqueue_links.d.ts +25 -23
- package/enqueue_links/enqueue_links.d.ts.map +1 -1
- package/enqueue_links/enqueue_links.js +23 -23
- package/enqueue_links/enqueue_links.js.map +1 -1
- package/enqueue_links/shared.d.ts +11 -6
- package/enqueue_links/shared.d.ts.map +1 -1
- package/enqueue_links/shared.js +7 -2
- package/enqueue_links/shared.js.map +1 -1
- package/errors.d.ts +16 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +22 -0
- package/errors.js.map +1 -0
- package/events/event_manager.d.ts +12 -8
- package/events/event_manager.d.ts.map +1 -1
- package/events/event_manager.js +17 -6
- package/events/event_manager.js.map +1 -1
- package/events/local_event_manager.d.ts +3 -5
- package/events/local_event_manager.d.ts.map +1 -1
- package/events/local_event_manager.js +3 -5
- package/events/local_event_manager.js.map +1 -1
- package/index.d.ts +4 -0
- package/index.d.ts.map +1 -1
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/index.mjs +6 -0
- package/package.json +22 -27
- package/proxy_configuration.d.ts +7 -14
- package/proxy_configuration.d.ts.map +1 -1
- package/proxy_configuration.js +6 -15
- package/proxy_configuration.js.map +1 -1
- package/request.d.ts +11 -6
- package/request.d.ts.map +1 -1
- package/request.js +5 -1
- package/request.js.map +1 -1
- package/router.d.ts +93 -0
- package/router.d.ts.map +1 -0
- package/router.js +137 -0
- package/router.js.map +1 -0
- package/serialization.d.ts.map +1 -1
- package/serialization.js +1 -2
- package/serialization.js.map +1 -1
- package/session_pool/session.d.ts +10 -15
- package/session_pool/session.d.ts.map +1 -1
- package/session_pool/session.js +18 -18
- package/session_pool/session.js.map +1 -1
- package/session_pool/session_pool.d.ts +3 -2
- package/session_pool/session_pool.d.ts.map +1 -1
- package/session_pool/session_pool.js +4 -5
- package/session_pool/session_pool.js.map +1 -1
- package/session_pool/session_utils.d.ts +6 -5
- package/session_pool/session_utils.d.ts.map +1 -1
- package/session_pool/session_utils.js +3 -0
- package/session_pool/session_utils.js.map +1 -1
- package/storages/dataset.d.ts +37 -15
- package/storages/dataset.d.ts.map +1 -1
- package/storages/dataset.js +44 -12
- package/storages/dataset.js.map +1 -1
- package/storages/index.d.ts +1 -0
- package/storages/index.d.ts.map +1 -1
- package/storages/index.js +1 -0
- package/storages/index.js.map +1 -1
- package/storages/key_value_store.d.ts +121 -23
- package/storages/key_value_store.d.ts.map +1 -1
- package/storages/key_value_store.js +178 -24
- package/storages/key_value_store.js.map +1 -1
- package/storages/request_list.d.ts +32 -35
- package/storages/request_list.d.ts.map +1 -1
- package/storages/request_list.js +32 -24
- package/storages/request_list.js.map +1 -1
- package/storages/request_queue.d.ts +12 -8
- package/storages/request_queue.d.ts.map +1 -1
- package/storages/request_queue.js +18 -10
- package/storages/request_queue.js.map +1 -1
- package/storages/storage_manager.d.ts +9 -5
- package/storages/storage_manager.d.ts.map +1 -1
- package/storages/storage_manager.js +28 -18
- package/storages/storage_manager.js.map +1 -1
- package/storages/utils.d.ts +16 -0
- package/storages/utils.d.ts.map +1 -0
- package/storages/utils.js +26 -0
- package/storages/utils.js.map +1 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/typedefs.d.ts +0 -2
- package/typedefs.d.ts.map +1 -1
- package/typedefs.js.map +1 -1
- package/validators.d.ts +5 -5
- package/validators.d.ts.map +1 -1
- package/validators.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/crawlers/statistics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/crawlers/statistics.ts"],"names":[],"mappings":"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"}
|
package/crawlers/statistics.js
CHANGED
|
@@ -299,7 +299,7 @@ class Statistics {
|
|
|
299
299
|
if (!savedState)
|
|
300
300
|
return;
|
|
301
301
|
// We saw a run where the requestRetryHistogram was not iterable and crashed
|
|
302
|
-
// the
|
|
302
|
+
// the crawler. Adding some logging to monitor this problem in the future.
|
|
303
303
|
if (!Array.isArray(savedState.requestRetryHistogram)) {
|
|
304
304
|
this.log.warning('Received invalid state from Key-value store.', {
|
|
305
305
|
persistStateKey: this.persistStateKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/crawlers/statistics.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,gCAA2C;AAC3C,iEAA4D;
|
|
1
|
+
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/crawlers/statistics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BatchAddRequestsResult } from '@crawlee/types';
|
|
2
|
-
import { GlobInput, PseudoUrlInput, RegExpInput, RequestTransform } from './shared';
|
|
3
|
-
import { RequestQueue } from '../storages/request_queue';
|
|
1
|
+
import type { BatchAddRequestsResult, Dictionary } from '@crawlee/types';
|
|
2
|
+
import type { GlobInput, PseudoUrlInput, RegExpInput, RequestTransform } from './shared';
|
|
3
|
+
import type { RequestQueue } from '../storages/request_queue';
|
|
4
4
|
export interface EnqueueLinksOptions {
|
|
5
|
-
/** Limit the
|
|
5
|
+
/** Limit the amount of actually enqueued URLs to this number. Useful for testing across the entire crawling scope. */
|
|
6
6
|
limit?: number;
|
|
7
7
|
/** An array of URLs to enqueue. */
|
|
8
8
|
urls: string[];
|
|
@@ -10,6 +10,10 @@ export interface EnqueueLinksOptions {
|
|
|
10
10
|
requestQueue: RequestQueue;
|
|
11
11
|
/** A CSS selector matching links to be enqueued. */
|
|
12
12
|
selector?: string;
|
|
13
|
+
/** Sets {@link Request.userData} for newly enqueued requests. */
|
|
14
|
+
userData?: Dictionary;
|
|
15
|
+
/** Sets {@link Request.label} for newly enqueued requests. */
|
|
16
|
+
label?: string;
|
|
13
17
|
/**
|
|
14
18
|
* A base URL that will be used to resolve relative URLs when using Cheerio. Ignored when using Puppeteer,
|
|
15
19
|
* since the relative URL resolution is done inside the browser automatically.
|
|
@@ -25,7 +29,7 @@ export interface EnqueueLinksOptions {
|
|
|
25
29
|
* The matching is always case-insensitive.
|
|
26
30
|
* If you need case-sensitive matching, use `regexps` property directly.
|
|
27
31
|
*
|
|
28
|
-
* If `globs` is an empty array or `undefined`, then the function
|
|
32
|
+
* If `globs` is an empty array or `undefined`, and `regexps` are also not defined, then the function
|
|
29
33
|
* enqueues the links with the same subdomain.
|
|
30
34
|
*/
|
|
31
35
|
globs?: GlobInput[];
|
|
@@ -36,7 +40,7 @@ export interface EnqueueLinksOptions {
|
|
|
36
40
|
* The plain objects must include at least the `regexp` property, which holds the regular expression.
|
|
37
41
|
* All remaining keys will be used as request options for the corresponding enqueued {@link Request} objects.
|
|
38
42
|
*
|
|
39
|
-
* If `regexps` is an empty array or `undefined`, then the function
|
|
43
|
+
* If `regexps` is an empty array or `undefined`, and `globs` are also not defined, then the function
|
|
40
44
|
* enqueues the links with the same subdomain.
|
|
41
45
|
*/
|
|
42
46
|
regexps?: RegExpInput[];
|
|
@@ -86,9 +90,9 @@ export interface EnqueueLinksOptions {
|
|
|
86
90
|
transformRequestFunction?: RequestTransform;
|
|
87
91
|
/**
|
|
88
92
|
* The strategy to use when enqueueing the urls.
|
|
89
|
-
* @default EnqueueStrategy.
|
|
93
|
+
* @default EnqueueStrategy.SameHostname
|
|
90
94
|
*/
|
|
91
|
-
strategy?: EnqueueStrategy | 'all' | 'same-
|
|
95
|
+
strategy?: EnqueueStrategy | 'all' | 'same-domain' | 'same-hostname';
|
|
92
96
|
}
|
|
93
97
|
export declare enum EnqueueStrategy {
|
|
94
98
|
/**
|
|
@@ -96,37 +100,35 @@ export declare enum EnqueueStrategy {
|
|
|
96
100
|
*/
|
|
97
101
|
All = "all",
|
|
98
102
|
/**
|
|
99
|
-
* Matches any URLs that have the same
|
|
103
|
+
* Matches any URLs that have the same hostname.
|
|
104
|
+
* For example, `https://wow.example.com/hello` will be matched for a base url of `https://example.com/`, but
|
|
105
|
+
* `https://example.com/hello` will not be matched.
|
|
100
106
|
*/
|
|
101
|
-
|
|
107
|
+
SameHostname = "same-hostname",
|
|
102
108
|
/**
|
|
103
|
-
* Matches any URLs that have the same
|
|
109
|
+
* Matches any URLs that have the same (sub-)domain as the base URL.
|
|
104
110
|
* For example, `https://wow.an.example.com` and `https://example.com` will both be matched for a base url of
|
|
105
111
|
* `https://example.com`.
|
|
106
112
|
*/
|
|
107
|
-
|
|
113
|
+
SameDomain = "same-domain"
|
|
108
114
|
}
|
|
109
115
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* and enqueues the URLs in their `href` attributes to the provided {@link RequestQueue}.
|
|
113
|
-
* If you're looking to find URLs in JavaScript heavy pages where links are not available
|
|
114
|
-
* in `href` elements, but rather navigations are triggered in click handlers
|
|
115
|
-
* see {@link puppeteerUtils.enqueueLinksByClickingElements}.
|
|
116
|
+
* This function enqueues the urls provided to the {@link RequestQueue} provided. If you want to automatically find and enqueue links,
|
|
117
|
+
* you should use the context-aware `enqueueLinks` function provided on the crawler contexts.
|
|
116
118
|
*
|
|
117
|
-
* Optionally, the function allows you to filter the target links' URLs using an array of
|
|
119
|
+
* Optionally, the function allows you to filter the target links' URLs using an array of globs or regular expressions
|
|
118
120
|
* and override settings of the enqueued {@link Request} objects.
|
|
119
121
|
*
|
|
120
122
|
* **Example usage**
|
|
121
123
|
*
|
|
122
124
|
* ```javascript
|
|
123
125
|
* await enqueueLinks({
|
|
124
|
-
*
|
|
126
|
+
* urls: aListOfFoundUrls,
|
|
125
127
|
* requestQueue,
|
|
126
128
|
* selector: 'a.product-detail',
|
|
127
|
-
*
|
|
128
|
-
* 'https://www.example.com/handbags
|
|
129
|
-
* 'https://www.example.com/purses
|
|
129
|
+
* globs: [
|
|
130
|
+
* 'https://www.example.com/handbags/*',
|
|
131
|
+
* 'https://www.example.com/purses/*'
|
|
130
132
|
* ],
|
|
131
133
|
* });
|
|
132
134
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueue_links.d.ts","sourceRoot":"","sources":["../../src/enqueue_links/enqueue_links.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"enqueue_links.d.ts","sourceRoot":"","sources":["../../src/enqueue_links/enqueue_links.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,UAAU,CAAC;AAQ3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,WAAW,mBAAmB;IAChC,sHAAsH;IACtH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,0DAA0D;IAC1D,YAAY,EAAE,YAAY,CAAC;IAE3B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,UAAU,CAAC;IAEtB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IAEpB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,GAAG,aAAa,GAAG,eAAe,CAAC;CACxE;AAED,oBAAY,eAAe;IACvB;;OAEG;IACH,GAAG,QAAQ;IAEX;;;;OAIG;IACH,YAAY,kBAAkB;IAE9B;;;;OAIG;IACH,UAAU,gBAAgB;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuGhG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC3B,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACtB,EAAE,cAAc,sBA4BhB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -13,37 +13,35 @@ var EnqueueStrategy;
|
|
|
13
13
|
*/
|
|
14
14
|
EnqueueStrategy["All"] = "all";
|
|
15
15
|
/**
|
|
16
|
-
* Matches any URLs that have the same
|
|
16
|
+
* Matches any URLs that have the same hostname.
|
|
17
|
+
* For example, `https://wow.example.com/hello` will be matched for a base url of `https://example.com/`, but
|
|
18
|
+
* `https://example.com/hello` will not be matched.
|
|
17
19
|
*/
|
|
18
|
-
EnqueueStrategy["
|
|
20
|
+
EnqueueStrategy["SameHostname"] = "same-hostname";
|
|
19
21
|
/**
|
|
20
|
-
* Matches any URLs that have the same
|
|
22
|
+
* Matches any URLs that have the same (sub-)domain as the base URL.
|
|
21
23
|
* For example, `https://wow.an.example.com` and `https://example.com` will both be matched for a base url of
|
|
22
24
|
* `https://example.com`.
|
|
23
25
|
*/
|
|
24
|
-
EnqueueStrategy["
|
|
26
|
+
EnqueueStrategy["SameDomain"] = "same-domain";
|
|
25
27
|
})(EnqueueStrategy = exports.EnqueueStrategy || (exports.EnqueueStrategy = {}));
|
|
26
28
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* and enqueues the URLs in their `href` attributes to the provided {@link RequestQueue}.
|
|
30
|
-
* If you're looking to find URLs in JavaScript heavy pages where links are not available
|
|
31
|
-
* in `href` elements, but rather navigations are triggered in click handlers
|
|
32
|
-
* see {@link puppeteerUtils.enqueueLinksByClickingElements}.
|
|
29
|
+
* This function enqueues the urls provided to the {@link RequestQueue} provided. If you want to automatically find and enqueue links,
|
|
30
|
+
* you should use the context-aware `enqueueLinks` function provided on the crawler contexts.
|
|
33
31
|
*
|
|
34
|
-
* Optionally, the function allows you to filter the target links' URLs using an array of
|
|
32
|
+
* Optionally, the function allows you to filter the target links' URLs using an array of globs or regular expressions
|
|
35
33
|
* and override settings of the enqueued {@link Request} objects.
|
|
36
34
|
*
|
|
37
35
|
* **Example usage**
|
|
38
36
|
*
|
|
39
37
|
* ```javascript
|
|
40
38
|
* await enqueueLinks({
|
|
41
|
-
*
|
|
39
|
+
* urls: aListOfFoundUrls,
|
|
42
40
|
* requestQueue,
|
|
43
41
|
* selector: 'a.product-detail',
|
|
44
|
-
*
|
|
45
|
-
* 'https://www.example.com/handbags
|
|
46
|
-
* 'https://www.example.com/purses
|
|
42
|
+
* globs: [
|
|
43
|
+
* 'https://www.example.com/handbags/*',
|
|
44
|
+
* 'https://www.example.com/purses/*'
|
|
47
45
|
* ],
|
|
48
46
|
* });
|
|
49
47
|
* ```
|
|
@@ -58,14 +56,16 @@ async function enqueueLinks(options) {
|
|
|
58
56
|
limit: ow_1.default.optional.number,
|
|
59
57
|
selector: ow_1.default.optional.string,
|
|
60
58
|
baseUrl: ow_1.default.optional.string,
|
|
59
|
+
userData: ow_1.default.optional.object,
|
|
60
|
+
label: ow_1.default.optional.string,
|
|
61
61
|
pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys('purl'))),
|
|
62
62
|
globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys('glob'))),
|
|
63
63
|
regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys('regexp'))),
|
|
64
64
|
transformRequestFunction: ow_1.default.optional.function,
|
|
65
65
|
strategy: ow_1.default.optional.string.oneOf([
|
|
66
66
|
EnqueueStrategy.All,
|
|
67
|
-
EnqueueStrategy.SameSubdomain,
|
|
68
67
|
EnqueueStrategy.SameHostname,
|
|
68
|
+
EnqueueStrategy.SameDomain,
|
|
69
69
|
]),
|
|
70
70
|
}));
|
|
71
71
|
const { requestQueue, limit, urls, pseudoUrls, globs, regexps, transformRequestFunction, } = options;
|
|
@@ -81,18 +81,18 @@ async function enqueueLinks(options) {
|
|
|
81
81
|
urlPatternObjects.push(...(0, shared_1.constructRegExpObjectsFromRegExps)(regexps));
|
|
82
82
|
}
|
|
83
83
|
if (!urlPatternObjects.length) {
|
|
84
|
-
options.strategy ?? (options.strategy = EnqueueStrategy.
|
|
84
|
+
options.strategy ?? (options.strategy = EnqueueStrategy.SameHostname);
|
|
85
85
|
}
|
|
86
86
|
if (options.baseUrl) {
|
|
87
|
+
const url = new URL(options.baseUrl);
|
|
87
88
|
switch (options.strategy) {
|
|
88
|
-
case EnqueueStrategy.
|
|
89
|
+
case EnqueueStrategy.SameHostname:
|
|
89
90
|
// We need to get the origin of the passed in domain in the event someone sets baseUrl
|
|
90
91
|
// to an url like https://example.com/deep/default/path and one of the found urls is an
|
|
91
92
|
// absolute relative path (/path/to/page)
|
|
92
|
-
urlPatternObjects.push({ glob: `${
|
|
93
|
+
urlPatternObjects.push({ glob: `${url.origin}/**` });
|
|
93
94
|
break;
|
|
94
|
-
case EnqueueStrategy.
|
|
95
|
-
const url = new URL(options.baseUrl);
|
|
95
|
+
case EnqueueStrategy.SameDomain: {
|
|
96
96
|
// Get the actual hostname from the base url
|
|
97
97
|
const baseUrlHostname = (0, tldts_1.getDomain)(url.hostname, { mixedInputs: false });
|
|
98
98
|
if (baseUrlHostname) {
|
|
@@ -112,7 +112,7 @@ async function enqueueLinks(options) {
|
|
|
112
112
|
break;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
let requestOptions = (0, shared_1.createRequestOptions)(urls);
|
|
115
|
+
let requestOptions = (0, shared_1.createRequestOptions)(urls, options);
|
|
116
116
|
if (transformRequestFunction) {
|
|
117
117
|
requestOptions = requestOptions.map((request) => transformRequestFunction(request)).filter((r) => !!r);
|
|
118
118
|
}
|
|
@@ -137,7 +137,7 @@ function resolveBaseUrl({ enqueueStrategy, finalRequestUrl, originalRequestUrl,
|
|
|
137
137
|
return finalUrlOrigin ?? originalUrlOrigin;
|
|
138
138
|
}
|
|
139
139
|
// Ensure links use the same hostname
|
|
140
|
-
if (enqueueStrategy === EnqueueStrategy.
|
|
140
|
+
if (enqueueStrategy === EnqueueStrategy.SameDomain) {
|
|
141
141
|
const originalHostname = (0, tldts_1.getDomain)(originalUrlOrigin, { mixedInputs: false });
|
|
142
142
|
const finalHostname = (0, tldts_1.getDomain)(finalUrlOrigin, { mixedInputs: false });
|
|
143
143
|
if (originalHostname === finalHostname) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueue_links.js","sourceRoot":"","sources":["../../src/enqueue_links/enqueue_links.ts"],"names":[],"mappings":";;;;AAAA,iCAAkC;AAClC,oDAAoB;AACpB,6DAA6B;
|
|
1
|
+
{"version":3,"file":"enqueue_links.js","sourceRoot":"","sources":["../../src/enqueue_links/enqueue_links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RequestOptions } from '../request';
|
|
2
|
+
import { Request } from '../request';
|
|
3
|
+
import type { EnqueueLinksOptions } from './enqueue_links';
|
|
2
4
|
export declare type UrlPatternObject = {
|
|
3
5
|
glob?: string;
|
|
4
6
|
regexp?: RegExp;
|
|
5
|
-
} & Pick<RequestOptions, 'method' | 'payload' | 'userData' | 'headers'>;
|
|
7
|
+
} & Pick<RequestOptions, 'method' | 'payload' | 'label' | 'userData' | 'headers'>;
|
|
6
8
|
export declare type PseudoUrlObject = {
|
|
7
9
|
purl: string;
|
|
8
|
-
} & Pick<RequestOptions, 'method' | 'payload' | 'userData' | 'headers'>;
|
|
10
|
+
} & Pick<RequestOptions, 'method' | 'payload' | 'label' | 'userData' | 'headers'>;
|
|
9
11
|
export declare type PseudoUrlInput = string | PseudoUrlObject;
|
|
10
12
|
export declare type GlobObject = {
|
|
11
13
|
glob: string;
|
|
12
|
-
} & Pick<RequestOptions, 'method' | 'payload' | 'userData' | 'headers'>;
|
|
14
|
+
} & Pick<RequestOptions, 'method' | 'payload' | 'label' | 'userData' | 'headers'>;
|
|
13
15
|
export declare type GlobInput = string | GlobObject;
|
|
14
16
|
export declare type RegExpObject = {
|
|
15
17
|
regexp: RegExp;
|
|
16
|
-
} & Pick<RequestOptions, 'method' | 'payload' | 'userData' | 'headers'>;
|
|
18
|
+
} & Pick<RequestOptions, 'method' | 'payload' | 'label' | 'userData' | 'headers'>;
|
|
17
19
|
export declare type RegExpInput = RegExp | RegExpObject;
|
|
18
20
|
/**
|
|
19
21
|
* @ignore
|
|
@@ -31,6 +33,9 @@ export declare function constructRegExpObjectsFromPseudoUrls(pseudoUrls: PseudoU
|
|
|
31
33
|
* @ignore
|
|
32
34
|
*/
|
|
33
35
|
export declare function constructGlobObjectsFromGlobs(globs: GlobInput[]): GlobObject[];
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
34
39
|
export declare function validateGlobPattern(glob: string): string;
|
|
35
40
|
/**
|
|
36
41
|
* Helper factory used in the `enqueueLinks()` and enqueueLinksByClickingElements() function
|
|
@@ -45,7 +50,7 @@ export declare function createRequests(requestOptions: (string | RequestOptions)
|
|
|
45
50
|
/**
|
|
46
51
|
* @ignore
|
|
47
52
|
*/
|
|
48
|
-
export declare function createRequestOptions(sources: (string | Record<string, unknown>)[]): RequestOptions[];
|
|
53
|
+
export declare function createRequestOptions(sources: (string | Record<string, unknown>)[], options?: Pick<EnqueueLinksOptions, 'label' | 'userData'>): RequestOptions[];
|
|
49
54
|
/**
|
|
50
55
|
* Takes an Apify {@link RequestOptions} object and changes its attributes in a desired way. This user-function is used
|
|
51
56
|
* {@link enqueueLinks} to modify requests before enqueuing them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/enqueue_links/shared.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/enqueue_links/shared.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAY3D,oBAAY,gBAAgB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAElF,oBAAY,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAE/H,oBAAY,cAAc,GAAG,MAAM,GAAG,eAAe,CAAC;AAEtD,oBAAY,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAE1H,oBAAY,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5C,oBAAY,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAE9H,oBAAY,WAAW,GAAG,MAAM,GAAG,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,CAMvI;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAiBjG;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAiB9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAgBxF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAyB7H;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAC7C,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,UAAU,CAAM,GAC9D,cAAc,EAAE,CAelB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;CACzE"}
|
package/enqueue_links/shared.js
CHANGED
|
@@ -71,6 +71,9 @@ function constructGlobObjectsFromGlobs(globs) {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
exports.constructGlobObjectsFromGlobs = constructGlobObjectsFromGlobs;
|
|
74
|
+
/**
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
74
77
|
function validateGlobPattern(glob) {
|
|
75
78
|
const globTrimmed = glob.trim();
|
|
76
79
|
if (globTrimmed.length === 0)
|
|
@@ -128,7 +131,7 @@ exports.createRequests = createRequests;
|
|
|
128
131
|
/**
|
|
129
132
|
* @ignore
|
|
130
133
|
*/
|
|
131
|
-
function createRequestOptions(sources) {
|
|
134
|
+
function createRequestOptions(sources, options = {}) {
|
|
132
135
|
return sources
|
|
133
136
|
.map((src) => (typeof src === 'string' ? { url: src } : src))
|
|
134
137
|
.filter(({ url }) => {
|
|
@@ -140,7 +143,9 @@ function createRequestOptions(sources) {
|
|
|
140
143
|
}
|
|
141
144
|
})
|
|
142
145
|
.map((requestOptions) => {
|
|
143
|
-
|
|
146
|
+
var _a;
|
|
147
|
+
requestOptions.userData ?? (requestOptions.userData = options.userData ?? {});
|
|
148
|
+
(_a = requestOptions.userData).label ?? (_a.label = options.label);
|
|
144
149
|
return requestOptions;
|
|
145
150
|
});
|
|
146
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/enqueue_links/shared.ts"],"names":[],"mappings":";;;;AAAA,6BAA0B;AAC1B,kDAAiD;AACjD,kEAAkC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/enqueue_links/shared.ts"],"names":[],"mappings":"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"}
|
package/errors.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Errors of `NonRetryableError` type will never be retried by the crawler.
|
|
3
|
+
*/
|
|
4
|
+
export declare class NonRetryableError extends Error {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Errors of `CriticalError` type will shut down the whole crawler.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CriticalError extends NonRetryableError {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
export declare class MissingRouteError extends CriticalError {
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
package/errors.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;CAAG;AAEvD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;CAAG"}
|
package/errors.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MissingRouteError = exports.CriticalError = exports.NonRetryableError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Errors of `NonRetryableError` type will never be retried by the crawler.
|
|
6
|
+
*/
|
|
7
|
+
class NonRetryableError extends Error {
|
|
8
|
+
}
|
|
9
|
+
exports.NonRetryableError = NonRetryableError;
|
|
10
|
+
/**
|
|
11
|
+
* Errors of `CriticalError` type will shut down the whole crawler.
|
|
12
|
+
*/
|
|
13
|
+
class CriticalError extends NonRetryableError {
|
|
14
|
+
}
|
|
15
|
+
exports.CriticalError = CriticalError;
|
|
16
|
+
/**
|
|
17
|
+
* @ignore
|
|
18
|
+
*/
|
|
19
|
+
class MissingRouteError extends CriticalError {
|
|
20
|
+
}
|
|
21
|
+
exports.MissingRouteError = MissingRouteError;
|
|
22
|
+
//# sourceMappingURL=errors.js.map
|
package/errors.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C;AAE/C;;GAEG;AACH,MAAa,aAAc,SAAQ,iBAAiB;CAAG;AAAvD,sCAAuD;AAEvD;;GAEG;AACH,MAAa,iBAAkB,SAAQ,aAAa;CAAG;AAAvD,8CAAuD"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { BetterIntervalID } from '@apify/utilities';
|
|
1
|
+
import type { BetterIntervalID } from '@apify/utilities';
|
|
2
|
+
import { AsyncEventEmitter } from '@vladfrangu/async_event_emitter';
|
|
4
3
|
import { Configuration } from '../configuration';
|
|
5
4
|
export declare const enum EventType {
|
|
6
5
|
PERSIST_STATE = "persistState",
|
|
@@ -16,24 +15,25 @@ interface Intervals {
|
|
|
16
15
|
}
|
|
17
16
|
export declare abstract class EventManager {
|
|
18
17
|
readonly config: Configuration;
|
|
19
|
-
protected events:
|
|
18
|
+
protected events: AsyncEventEmitter<Record<string | symbol, unknown[]> & import("@vladfrangu/async_event_emitter").AsyncEventEmitterPredefinedEvents>;
|
|
20
19
|
protected initialized: boolean;
|
|
21
20
|
protected intervals: Intervals;
|
|
22
21
|
protected log: import("@apify/log").Log;
|
|
23
22
|
constructor(config?: Configuration);
|
|
24
23
|
/**
|
|
25
|
-
* Initializes
|
|
26
|
-
* This is
|
|
24
|
+
* Initializes the event manager by creating the `persistState` event interval.
|
|
25
|
+
* This is automatically called at the beginning of `crawler.run()`.
|
|
27
26
|
*/
|
|
28
27
|
init(): Promise<void>;
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* Clears the internal `persistState` event interval.
|
|
30
|
+
* This is automatically called at the end of `crawler.run()`.
|
|
32
31
|
*/
|
|
33
32
|
close(): Promise<void>;
|
|
34
33
|
on(event: EventTypeName, listener: (...args: any[]) => any): void;
|
|
35
34
|
off(event: EventTypeName, listener?: (...args: any[]) => any): void;
|
|
36
35
|
emit(event: EventTypeName, ...args: unknown[]): void;
|
|
36
|
+
isInitialized(): boolean;
|
|
37
37
|
/**
|
|
38
38
|
* @internal
|
|
39
39
|
*/
|
|
@@ -42,6 +42,10 @@ export declare abstract class EventManager {
|
|
|
42
42
|
* @internal
|
|
43
43
|
*/
|
|
44
44
|
listeners(event: EventTypeName): (() => Promise<unknown>)[];
|
|
45
|
+
/**
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
waitForAllListenersToComplete(): Promise<boolean>;
|
|
45
49
|
}
|
|
46
50
|
export {};
|
|
47
51
|
//# sourceMappingURL=event_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event_manager.d.ts","sourceRoot":"","sources":["../../src/events/event_manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event_manager.d.ts","sourceRoot":"","sources":["../../src/events/event_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,0BAAkB,SAAS;IACvB,aAAa,iBAAiB;IAC9B,WAAW,eAAe;IAC1B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED,oBAAY,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1G,UAAU,SAAS;IACf,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,8BAAsB,YAAY;IAMlB,QAAQ,CAAC,MAAM;IAL3B,SAAS,CAAC,MAAM,sIAA2B;IAC3C,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,SAAS,EAAE,SAAS,CAAM;IACpC,SAAS,CAAC,GAAG,2BAAmC;gBAE3B,MAAM,gBAAkC;IAE7D;;;OAGG;IACG,IAAI;IAaV;;;OAGG;IACG,KAAK;IAYX,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI;IAIjE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI;IAQnE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIpD,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAI3C;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;IAI3D;;OAEG;IACH,6BAA6B;CAGhC"}
|
package/events/event_manager.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EventManager = exports.EventType = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const log_1 = tslib_1.__importDefault(require("@apify/log"));
|
|
6
|
-
const node_events_1 = require("node:events");
|
|
7
6
|
const utilities_1 = require("@apify/utilities");
|
|
7
|
+
const async_event_emitter_1 = require("@vladfrangu/async_event_emitter");
|
|
8
8
|
const configuration_1 = require("../configuration");
|
|
9
9
|
var EventType;
|
|
10
10
|
(function (EventType) {
|
|
@@ -26,7 +26,7 @@ class EventManager {
|
|
|
26
26
|
enumerable: true,
|
|
27
27
|
configurable: true,
|
|
28
28
|
writable: true,
|
|
29
|
-
value: new
|
|
29
|
+
value: new async_event_emitter_1.AsyncEventEmitter()
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(this, "initialized", {
|
|
32
32
|
enumerable: true,
|
|
@@ -48,8 +48,8 @@ class EventManager {
|
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* Initializes
|
|
52
|
-
* This is
|
|
51
|
+
* Initializes the event manager by creating the `persistState` event interval.
|
|
52
|
+
* This is automatically called at the beginning of `crawler.run()`.
|
|
53
53
|
*/
|
|
54
54
|
async init() {
|
|
55
55
|
if (this.initialized) {
|
|
@@ -63,8 +63,8 @@ class EventManager {
|
|
|
63
63
|
this.initialized = true;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
66
|
+
* Clears the internal `persistState` event interval.
|
|
67
|
+
* This is automatically called at the end of `crawler.run()`.
|
|
68
68
|
*/
|
|
69
69
|
async close() {
|
|
70
70
|
if (!this.initialized) {
|
|
@@ -72,6 +72,8 @@ class EventManager {
|
|
|
72
72
|
}
|
|
73
73
|
(0, utilities_1.betterClearInterval)(this.intervals.persistState);
|
|
74
74
|
this.initialized = false;
|
|
75
|
+
// Emit final PERSIST_STATE event
|
|
76
|
+
this.emit("persistState" /* EventType.PERSIST_STATE */, { isMigrating: false });
|
|
75
77
|
}
|
|
76
78
|
on(event, listener) {
|
|
77
79
|
this.events.on(event, listener);
|
|
@@ -87,6 +89,9 @@ class EventManager {
|
|
|
87
89
|
emit(event, ...args) {
|
|
88
90
|
this.events.emit(event, ...args);
|
|
89
91
|
}
|
|
92
|
+
isInitialized() {
|
|
93
|
+
return this.initialized;
|
|
94
|
+
}
|
|
90
95
|
/**
|
|
91
96
|
* @internal
|
|
92
97
|
*/
|
|
@@ -99,6 +104,12 @@ class EventManager {
|
|
|
99
104
|
listeners(event) {
|
|
100
105
|
return this.events.listeners(event);
|
|
101
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
waitForAllListenersToComplete() {
|
|
111
|
+
return this.events.waitForAllListenersToComplete();
|
|
112
|
+
}
|
|
102
113
|
}
|
|
103
114
|
exports.EventManager = EventManager;
|
|
104
115
|
//# sourceMappingURL=event_manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event_manager.js","sourceRoot":"","sources":["../../src/events/event_manager.ts"],"names":[],"mappings":";;;;AAAA,6DAA6B;
|
|
1
|
+
{"version":3,"file":"event_manager.js","sourceRoot":"","sources":["../../src/events/event_manager.ts"],"names":[],"mappings":";;;;AAAA,6DAA6B;AAE7B,gDAA0E;AAC1E,yEAAoE;AACpE,oDAAiD;AAEjD,IAAkB,SAMjB;AAND,WAAkB,SAAS;IACvB,2CAA8B,CAAA;IAC9B,uCAA0B,CAAA;IAC1B,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;IACrB,0BAAa,CAAA;AACjB,CAAC,EANiB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAM1B;AASD,MAAsB,YAAY;IAM9B,YAAqB,SAAS,6BAAa,CAAC,eAAe,EAAE;;;;;mBAAxC;;QALrB;;;;mBAAmB,IAAI,uCAAiB,EAAE;WAAC;QAC3C;;;;mBAAwB,KAAK;WAAC;QAC9B;;;;mBAAiC,EAAE;WAAC;QACpC;;;;mBAAgB,aAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;WAAC;IAEgB,CAAC;IAEjE;;;OAGG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;QAED,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAE,CAAC;QAClF,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAA,6BAAiB,EAAC,CAAC,gBAA+B,EAAE,EAAE;YAChF,IAAI,CAAC,IAAI,+CAA0B,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,gBAAgB,EAAE,CAAC;QACvB,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAA,+BAAmB,EAAC,IAAI,CAAC,SAAS,CAAC,YAAa,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,iCAAiC;QACjC,IAAI,CAAC,IAAI,+CAA0B,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,EAAE,CAAC,KAAoB,EAAE,QAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,KAAoB,EAAE,QAAkC;QACxD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC/C;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACzC;IACL,CAAC;IAED,IAAI,CAAC,KAAoB,EAAE,GAAG,IAAe;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAoB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAA+B,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,6BAA6B;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC;IACvD,CAAC;CACJ;AAjFD,oCAiFC"}
|