website-scrap-engine 0.7.2 → 0.8.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/lib/downloader/adjust-concurrency.d.ts +2 -1
- package/lib/downloader/adjust-concurrency.d.ts.map +1 -0
- package/lib/downloader/adjust-concurrency.js +4 -8
- package/lib/downloader/adjust-concurrency.js.map +1 -1
- package/lib/downloader/index.d.ts +9 -8
- package/lib/downloader/index.d.ts.map +1 -0
- package/lib/downloader/index.js +8 -40
- package/lib/downloader/index.js.map +1 -1
- package/lib/downloader/main.d.ts +15 -6
- package/lib/downloader/main.d.ts.map +1 -0
- package/lib/downloader/main.js +49 -32
- package/lib/downloader/main.js.map +1 -1
- package/lib/downloader/multi.d.ts +7 -5
- package/lib/downloader/multi.d.ts.map +1 -0
- package/lib/downloader/multi.js +10 -17
- package/lib/downloader/multi.js.map +1 -1
- package/lib/downloader/pipeline-executor-impl.d.ts +8 -7
- package/lib/downloader/pipeline-executor-impl.d.ts.map +1 -0
- package/lib/downloader/pipeline-executor-impl.js +1 -5
- package/lib/downloader/pipeline-executor-impl.js.map +1 -1
- package/lib/downloader/single.d.ts +4 -3
- package/lib/downloader/single.d.ts.map +1 -0
- package/lib/downloader/single.js +7 -11
- package/lib/downloader/single.js.map +1 -1
- package/lib/downloader/types.d.ts +4 -4
- package/lib/downloader/types.d.ts.map +1 -0
- package/lib/downloader/types.js +2 -5
- package/lib/downloader/types.js.map +1 -1
- package/lib/downloader/worker-pool.d.ts +6 -7
- package/lib/downloader/worker-pool.d.ts.map +1 -0
- package/lib/downloader/worker-pool.js +7 -35
- package/lib/downloader/worker-pool.js.map +1 -1
- package/lib/downloader/worker-type.d.ts +4 -3
- package/lib/downloader/worker-type.d.ts.map +1 -0
- package/lib/downloader/worker-type.js +1 -2
- package/lib/downloader/worker.d.ts +1 -0
- package/lib/downloader/worker.d.ts.map +1 -0
- package/lib/downloader/worker.js +52 -27
- package/lib/downloader/worker.js.map +1 -1
- package/lib/index.d.ts +9 -8
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +7 -33
- package/lib/index.js.map +1 -1
- package/lib/io.d.ts +2 -1
- package/lib/io.d.ts.map +1 -0
- package/lib/io.js +17 -25
- package/lib/io.js.map +1 -1
- package/lib/life-cycle/adapters.d.ts +7 -5
- package/lib/life-cycle/adapters.d.ts.map +1 -0
- package/lib/life-cycle/adapters.js +18 -30
- package/lib/life-cycle/adapters.js.map +1 -1
- package/lib/life-cycle/default-life-cycle.d.ts +2 -1
- package/lib/life-cycle/default-life-cycle.d.ts.map +1 -0
- package/lib/life-cycle/default-life-cycle.js +28 -32
- package/lib/life-cycle/default-life-cycle.js.map +1 -1
- package/lib/life-cycle/detect-resource-type.d.ts +2 -1
- package/lib/life-cycle/detect-resource-type.d.ts.map +1 -0
- package/lib/life-cycle/detect-resource-type.js +12 -17
- package/lib/life-cycle/detect-resource-type.js.map +1 -1
- package/lib/life-cycle/download-resource.d.ts +6 -7
- package/lib/life-cycle/download-resource.d.ts.map +1 -0
- package/lib/life-cycle/download-resource.js +23 -52
- package/lib/life-cycle/download-resource.js.map +1 -1
- package/lib/life-cycle/download-streaming-resource.d.ts +6 -5
- package/lib/life-cycle/download-streaming-resource.d.ts.map +1 -0
- package/lib/life-cycle/download-streaming-resource.js +39 -74
- package/lib/life-cycle/download-streaming-resource.js.map +1 -1
- package/lib/life-cycle/index.d.ts +16 -15
- package/lib/life-cycle/index.d.ts.map +1 -0
- package/lib/life-cycle/index.js +14 -59
- package/lib/life-cycle/index.js.map +1 -1
- package/lib/life-cycle/pipeline-executor.d.ts +7 -6
- package/lib/life-cycle/pipeline-executor.d.ts.map +1 -0
- package/lib/life-cycle/pipeline-executor.js +1 -2
- package/lib/life-cycle/process-css.d.ts +5 -4
- package/lib/life-cycle/process-css.d.ts.map +1 -0
- package/lib/life-cycle/process-css.js +10 -18
- package/lib/life-cycle/process-css.js.map +1 -1
- package/lib/life-cycle/process-html-meta.d.ts +4 -3
- package/lib/life-cycle/process-html-meta.d.ts.map +1 -0
- package/lib/life-cycle/process-html-meta.js +11 -15
- package/lib/life-cycle/process-html-meta.js.map +1 -1
- package/lib/life-cycle/process-html.d.ts +4 -3
- package/lib/life-cycle/process-html.d.ts.map +1 -0
- package/lib/life-cycle/process-html.js +27 -31
- package/lib/life-cycle/process-html.js.map +1 -1
- package/lib/life-cycle/process-site-map.d.ts +4 -3
- package/lib/life-cycle/process-site-map.d.ts.map +1 -0
- package/lib/life-cycle/process-site-map.js +7 -11
- package/lib/life-cycle/process-site-map.js.map +1 -1
- package/lib/life-cycle/process-source-map.d.ts +4 -4
- package/lib/life-cycle/process-source-map.d.ts.map +1 -0
- package/lib/life-cycle/process-source-map.js +16 -21
- package/lib/life-cycle/process-source-map.js.map +1 -1
- package/lib/life-cycle/process-svg.d.ts +4 -3
- package/lib/life-cycle/process-svg.d.ts.map +1 -0
- package/lib/life-cycle/process-svg.js +17 -21
- package/lib/life-cycle/process-svg.js.map +1 -1
- package/lib/life-cycle/read-or-copy-local-resource.d.ts +4 -3
- package/lib/life-cycle/read-or-copy-local-resource.d.ts.map +1 -0
- package/lib/life-cycle/read-or-copy-local-resource.js +15 -42
- package/lib/life-cycle/read-or-copy-local-resource.js.map +1 -1
- package/lib/life-cycle/save-html-to-disk.d.ts +6 -4
- package/lib/life-cycle/save-html-to-disk.d.ts.map +1 -0
- package/lib/life-cycle/save-html-to-disk.js +24 -33
- package/lib/life-cycle/save-html-to-disk.js.map +1 -1
- package/lib/life-cycle/save-resource-to-disk.d.ts +4 -3
- package/lib/life-cycle/save-resource-to-disk.d.ts.map +1 -0
- package/lib/life-cycle/save-resource-to-disk.js +10 -17
- package/lib/life-cycle/save-resource-to-disk.js.map +1 -1
- package/lib/life-cycle/skip-links.d.ts +1 -0
- package/lib/life-cycle/skip-links.d.ts.map +1 -0
- package/lib/life-cycle/skip-links.js +6 -10
- package/lib/life-cycle/skip-links.js.map +1 -1
- package/lib/life-cycle/types.d.ts +8 -7
- package/lib/life-cycle/types.d.ts.map +1 -0
- package/lib/life-cycle/types.js +1 -2
- package/lib/logger/config-logger.d.ts +2 -1
- package/lib/logger/config-logger.d.ts.map +1 -0
- package/lib/logger/config-logger.js +4 -30
- package/lib/logger/config-logger.js.map +1 -1
- package/lib/logger/logger-worker.d.ts +3 -2
- package/lib/logger/logger-worker.d.ts.map +1 -0
- package/lib/logger/logger-worker.js +11 -13
- package/lib/logger/logger-worker.js.map +1 -1
- package/lib/logger/logger.d.ts +2 -1
- package/lib/logger/logger.d.ts.map +1 -0
- package/lib/logger/logger.js +15 -17
- package/lib/logger/logger.js.map +1 -1
- package/lib/options.d.ts +8 -8
- package/lib/options.d.ts.map +1 -0
- package/lib/options.js +22 -32
- package/lib/options.js.map +1 -1
- package/lib/resource.d.ts +3 -4
- package/lib/resource.d.ts.map +1 -0
- package/lib/resource.js +34 -70
- package/lib/resource.js.map +1 -1
- package/lib/sources.d.ts +2 -1
- package/lib/sources.d.ts.map +1 -0
- package/lib/sources.js +9 -12
- package/lib/sources.js.map +1 -1
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -2
- package/lib/util.d.ts +4 -3
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +17 -34
- package/lib/util.js.map +1 -1
- package/package.json +18 -20
- package/src/downloader/adjust-concurrency.ts +2 -2
- package/src/downloader/index.ts +8 -8
- package/src/downloader/main.ts +50 -28
- package/src/downloader/multi.ts +11 -10
- package/src/downloader/pipeline-executor-impl.ts +7 -7
- package/src/downloader/single.ts +9 -6
- package/src/downloader/types.ts +3 -3
- package/src/downloader/worker-pool.ts +9 -9
- package/src/downloader/worker-type.ts +3 -3
- package/src/downloader/worker.ts +51 -29
- package/src/index.ts +8 -8
- package/src/io.ts +6 -6
- package/src/life-cycle/adapters.ts +7 -6
- package/src/life-cycle/css-url-parser.d.ts +1 -1
- package/src/life-cycle/default-life-cycle.ts +15 -15
- package/src/life-cycle/detect-resource-type.ts +2 -2
- package/src/life-cycle/download-resource.ts +18 -20
- package/src/life-cycle/download-streaming-resource.ts +20 -18
- package/src/life-cycle/index.ts +15 -15
- package/src/life-cycle/pipeline-executor.ts +6 -6
- package/src/life-cycle/process-css.ts +6 -5
- package/src/life-cycle/process-html-meta.ts +7 -6
- package/src/life-cycle/process-html.ts +21 -13
- package/src/life-cycle/process-site-map.ts +7 -6
- package/src/life-cycle/process-source-map.ts +5 -4
- package/src/life-cycle/process-svg.ts +10 -9
- package/src/life-cycle/read-or-copy-local-resource.ts +9 -7
- package/src/life-cycle/save-html-to-disk.ts +9 -13
- package/src/life-cycle/save-resource-to-disk.ts +6 -6
- package/src/life-cycle/types.ts +7 -7
- package/src/logger/config-logger.ts +5 -3
- package/src/logger/logger-worker.ts +8 -4
- package/src/logger/logger.ts +6 -4
- package/src/options.ts +15 -19
- package/src/resource.ts +10 -5
- package/src/sources.ts +1 -1
- package/src/util.ts +6 -10
- package/tsconfig.json +6 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjust-concurrency.d.ts","sourceRoot":"","sources":["../../src/downloader/adjust-concurrency.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAEnD,wBAAgB,MAAM,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAuC3D"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.adjust = void 0;
|
|
4
|
-
const logger_1 = require("../logger/logger");
|
|
5
|
-
function adjust(downloader) {
|
|
1
|
+
import { adjustConcurrency as logger } from '../logger/logger.js';
|
|
2
|
+
export function adjust(downloader) {
|
|
6
3
|
var _a;
|
|
7
4
|
const { meta } = downloader;
|
|
8
5
|
if (!meta.firstPeriodCount) {
|
|
@@ -18,7 +15,7 @@ function adjust(downloader) {
|
|
|
18
15
|
meta.currentPeriodCount = total - meta.lastPeriodTotalCount;
|
|
19
16
|
meta.lastPeriodTotalCount = total;
|
|
20
17
|
if (downloader.queueSize === 0) {
|
|
21
|
-
return
|
|
18
|
+
return logger.info('Queue is empty, keep concurrency as ', downloader.concurrency, 'pending items: ', downloader.queuePending);
|
|
22
19
|
}
|
|
23
20
|
let concurrency = downloader.concurrency;
|
|
24
21
|
if (meta.currentPeriodCount < 2) {
|
|
@@ -41,7 +38,6 @@ function adjust(downloader) {
|
|
|
41
38
|
}
|
|
42
39
|
downloader.concurrency =
|
|
43
40
|
Math.max((_a = downloader.options.minConcurrency) !== null && _a !== void 0 ? _a : 4, concurrency);
|
|
44
|
-
|
|
41
|
+
logger.info('concurrency', downloader.concurrency, 'queue size:', downloader.queueSize);
|
|
45
42
|
}
|
|
46
|
-
exports.adjust = adjust;
|
|
47
43
|
//# sourceMappingURL=adjust-concurrency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adjust-concurrency.js","sourceRoot":"","sources":["../../src/downloader/adjust-concurrency.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adjust-concurrency.js","sourceRoot":"","sources":["../../src/downloader/adjust-concurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,IAAI,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAGhE,MAAM,UAAU,MAAM,CAAC,UAA8B;;IACnD,MAAM,EAAC,IAAI,EAAC,GAAG,UAAU,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC;QACnD,IAAI,CAAC,oBAAoB;YACvB,IAAI,CAAC,kBAAkB;gBACrB,IAAI,CAAC,eAAe;oBAClB,IAAI,CAAC,gBAAgB,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC;IACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC/C,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAC5D,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IAClC,IAAI,UAAU,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,sCAAsC,EACvD,UAAU,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IACzC,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAChC,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;QAC/D,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACzD,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;QACxD,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;QAC/D,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3D,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,UAAU,CAAC,WAAW;QACpB,IAAI,CAAC,GAAG,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,EAC/C,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { adjust } from './adjust-concurrency';
|
|
2
|
-
export { AbstractDownloader } from './main';
|
|
3
|
-
export { MultiThreadDownloader } from './multi';
|
|
4
|
-
export { PipelineExecutorImpl } from './pipeline-executor-impl';
|
|
5
|
-
export { SingleThreadDownloader } from './single';
|
|
6
|
-
export * as types from './types';
|
|
7
|
-
export { WorkerPool } from './worker-pool';
|
|
8
|
-
export * as workerType from './worker-type';
|
|
1
|
+
export { adjust } from './adjust-concurrency.js';
|
|
2
|
+
export { AbstractDownloader } from './main.js';
|
|
3
|
+
export { MultiThreadDownloader } from './multi.js';
|
|
4
|
+
export { PipelineExecutorImpl } from './pipeline-executor-impl.js';
|
|
5
|
+
export { SingleThreadDownloader } from './single.js';
|
|
6
|
+
export * as types from './types.js';
|
|
7
|
+
export { WorkerPool } from './worker-pool.js';
|
|
8
|
+
export * as workerType from './worker-type.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/downloader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC"}
|
package/lib/downloader/index.js
CHANGED
|
@@ -1,41 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.workerType = exports.WorkerPool = exports.types = exports.SingleThreadDownloader = exports.PipelineExecutorImpl = exports.MultiThreadDownloader = exports.AbstractDownloader = exports.adjust = void 0;
|
|
27
|
-
var adjust_concurrency_1 = require("./adjust-concurrency");
|
|
28
|
-
Object.defineProperty(exports, "adjust", { enumerable: true, get: function () { return adjust_concurrency_1.adjust; } });
|
|
29
|
-
var main_1 = require("./main");
|
|
30
|
-
Object.defineProperty(exports, "AbstractDownloader", { enumerable: true, get: function () { return main_1.AbstractDownloader; } });
|
|
31
|
-
var multi_1 = require("./multi");
|
|
32
|
-
Object.defineProperty(exports, "MultiThreadDownloader", { enumerable: true, get: function () { return multi_1.MultiThreadDownloader; } });
|
|
33
|
-
var pipeline_executor_impl_1 = require("./pipeline-executor-impl");
|
|
34
|
-
Object.defineProperty(exports, "PipelineExecutorImpl", { enumerable: true, get: function () { return pipeline_executor_impl_1.PipelineExecutorImpl; } });
|
|
35
|
-
var single_1 = require("./single");
|
|
36
|
-
Object.defineProperty(exports, "SingleThreadDownloader", { enumerable: true, get: function () { return single_1.SingleThreadDownloader; } });
|
|
37
|
-
exports.types = __importStar(require("./types"));
|
|
38
|
-
var worker_pool_1 = require("./worker-pool");
|
|
39
|
-
Object.defineProperty(exports, "WorkerPool", { enumerable: true, get: function () { return worker_pool_1.WorkerPool; } });
|
|
40
|
-
exports.workerType = __importStar(require("./worker-type"));
|
|
1
|
+
export { adjust } from './adjust-concurrency.js';
|
|
2
|
+
export { AbstractDownloader } from './main.js';
|
|
3
|
+
export { MultiThreadDownloader } from './multi.js';
|
|
4
|
+
export { PipelineExecutorImpl } from './pipeline-executor-impl.js';
|
|
5
|
+
export { SingleThreadDownloader } from './single.js';
|
|
6
|
+
export * as types from './types.js';
|
|
7
|
+
export { WorkerPool } from './worker-pool.js';
|
|
8
|
+
export * as workerType from './worker-type.js';
|
|
41
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/downloader/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/downloader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC"}
|
package/lib/downloader/main.d.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import PQueue from 'p-queue';
|
|
2
|
-
import { DownloadOptions, StaticDownloadOptions } from '../options';
|
|
3
|
-
import { RawResource } from '../resource';
|
|
4
|
-
import type { DownloaderStats, DownloaderWithMeta } from './types';
|
|
5
|
-
import { PipelineExecutorImpl } from './pipeline-executor-impl';
|
|
2
|
+
import type { DownloadOptions, StaticDownloadOptions } from '../options.js';
|
|
3
|
+
import type { RawResource } from '../resource.js';
|
|
4
|
+
import type { DownloaderStats, DownloaderWithMeta } from './types.js';
|
|
5
|
+
import { PipelineExecutorImpl } from './pipeline-executor-impl.js';
|
|
6
6
|
export declare abstract class AbstractDownloader implements DownloaderWithMeta {
|
|
7
7
|
pathToOptions: string;
|
|
8
8
|
readonly queue: PQueue;
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
9
|
+
readonly _asyncOptions: Promise<DownloadOptions>;
|
|
10
|
+
readonly _overrideOptions?: Partial<StaticDownloadOptions> & {
|
|
11
|
+
pathToWorker?: string;
|
|
12
|
+
};
|
|
13
|
+
_options?: DownloadOptions;
|
|
14
|
+
_isInit: boolean;
|
|
15
|
+
_pipeline?: PipelineExecutorImpl;
|
|
16
|
+
_initOptions: Promise<void>;
|
|
11
17
|
readonly downloadedUrl: Set<string>;
|
|
12
18
|
readonly queuedUrl: Set<string>;
|
|
13
19
|
readonly meta: DownloaderStats;
|
|
@@ -15,6 +21,8 @@ export declare abstract class AbstractDownloader implements DownloaderWithMeta {
|
|
|
15
21
|
protected constructor(pathToOptions: string, overrideOptions?: Partial<StaticDownloadOptions> & {
|
|
16
22
|
pathToWorker?: string;
|
|
17
23
|
});
|
|
24
|
+
get options(): DownloadOptions;
|
|
25
|
+
get pipeline(): PipelineExecutorImpl;
|
|
18
26
|
get concurrency(): number;
|
|
19
27
|
set concurrency(newConcurrency: number);
|
|
20
28
|
get queueSize(): number;
|
|
@@ -30,3 +38,4 @@ export declare abstract class AbstractDownloader implements DownloaderWithMeta {
|
|
|
30
38
|
onIdle(): Promise<void>;
|
|
31
39
|
dispose(): Promise<void>;
|
|
32
40
|
}
|
|
41
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/downloader/main.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAG7B,OAAO,KAAK,EAAC,eAAe,EAAE,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAE1E,OAAO,KAAK,EAAC,WAAW,EAAW,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAEjE,8BAAsB,kBAAmB,YAAW,kBAAkB;IAkBvC,aAAa,EAAE,MAAM;IAjBlD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAqB;IACxD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAqB;IACpD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAK5B;IACF,WAAW,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAa;IAE/D,SAAS,aAAoB,aAAa,EAAE,MAAM,EAChD,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAc9E,IAAI,OAAO,IAAI,eAAe,CAK7B;IAED,IAAI,QAAQ,IAAI,oBAAoB,CAKnC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,cAAc,EAAE,MAAM,EAErC;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI;IAwBjE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAE9E,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI;IAStD,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAapF,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IAOZ,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
|
package/lib/downloader/main.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const options_1 = require("../options");
|
|
10
|
-
const resource_1 = require("../resource");
|
|
11
|
-
const logger_1 = require("../logger/logger");
|
|
12
|
-
const util_1 = require("../util");
|
|
13
|
-
const pipeline_executor_impl_1 = require("./pipeline-executor-impl");
|
|
14
|
-
class AbstractDownloader {
|
|
1
|
+
import PQueue from 'p-queue';
|
|
2
|
+
import URI from 'urijs';
|
|
3
|
+
import { mergeOverrideOptions } from '../options.js';
|
|
4
|
+
import { normalizeResource, ResourceType } from '../resource.js';
|
|
5
|
+
import { error, notFound, skip } from '../logger/logger.js';
|
|
6
|
+
import { importDefaultFromPath } from '../util.js';
|
|
7
|
+
import { PipelineExecutorImpl } from './pipeline-executor-impl.js';
|
|
8
|
+
export class AbstractDownloader {
|
|
15
9
|
constructor(pathToOptions, overrideOptions) {
|
|
16
10
|
this.pathToOptions = pathToOptions;
|
|
17
11
|
this.downloadedUrl = new Set();
|
|
@@ -23,10 +17,29 @@ class AbstractDownloader {
|
|
|
23
17
|
lastPeriodTotalCount: 0
|
|
24
18
|
};
|
|
25
19
|
this.adjustTimer = undefined;
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
20
|
+
this._asyncOptions = importDefaultFromPath(pathToOptions);
|
|
21
|
+
this._overrideOptions = overrideOptions;
|
|
22
|
+
this.queue = new PQueue();
|
|
23
|
+
this._isInit = false;
|
|
24
|
+
this._initOptions = this._asyncOptions.then(options => {
|
|
25
|
+
options = mergeOverrideOptions(options, this._overrideOptions);
|
|
26
|
+
this._options = options;
|
|
27
|
+
this._pipeline = new PipelineExecutorImpl(options, options.req, options);
|
|
28
|
+
options.configureLogger(options.localRoot, options.logSubDir || '');
|
|
29
|
+
this._isInit = true;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
get options() {
|
|
33
|
+
if (this._options) {
|
|
34
|
+
return this._options;
|
|
35
|
+
}
|
|
36
|
+
throw new TypeError('AbstractDownloader: not initialized');
|
|
37
|
+
}
|
|
38
|
+
get pipeline() {
|
|
39
|
+
if (this._pipeline) {
|
|
40
|
+
return this._pipeline;
|
|
41
|
+
}
|
|
42
|
+
throw new TypeError('AbstractDownloader: not initialized');
|
|
30
43
|
}
|
|
31
44
|
get concurrency() {
|
|
32
45
|
return this.queue.concurrency;
|
|
@@ -41,20 +54,22 @@ class AbstractDownloader {
|
|
|
41
54
|
return this.queue.pending;
|
|
42
55
|
}
|
|
43
56
|
async addInitialResource(urlArr) {
|
|
44
|
-
await this.
|
|
57
|
+
await this._initOptions;
|
|
58
|
+
const pipeline = this.pipeline;
|
|
59
|
+
await pipeline.init(pipeline, this);
|
|
45
60
|
// noinspection DuplicatedCode
|
|
46
61
|
for (let i = 0, l = urlArr.length; i < l; i++) {
|
|
47
62
|
let url = urlArr[i];
|
|
48
|
-
url = await
|
|
63
|
+
url = await pipeline.linkRedirect(url, null, null);
|
|
49
64
|
if (!url)
|
|
50
65
|
continue;
|
|
51
|
-
const type = await
|
|
66
|
+
const type = await pipeline.detectResourceType(url, ResourceType.Html, null, null);
|
|
52
67
|
if (!type)
|
|
53
68
|
continue;
|
|
54
|
-
let r = await
|
|
69
|
+
let r = await pipeline.createResource(type, 0, url, url, undefined, undefined, undefined, type);
|
|
55
70
|
if (!r)
|
|
56
71
|
continue;
|
|
57
|
-
r = await
|
|
72
|
+
r = await pipeline.processBeforeDownload(r, null, null);
|
|
58
73
|
if (!r)
|
|
59
74
|
continue;
|
|
60
75
|
if (!r.shouldBeDiscardedFromDownload) {
|
|
@@ -66,11 +81,11 @@ class AbstractDownloader {
|
|
|
66
81
|
var _a;
|
|
67
82
|
// noinspection DuplicatedCode
|
|
68
83
|
if (res.depth > this.options.maxDepth) {
|
|
69
|
-
|
|
84
|
+
skip.info('skipped max depth', res.url, res.refUrl, res.depth);
|
|
70
85
|
return false;
|
|
71
86
|
}
|
|
72
87
|
let url;
|
|
73
|
-
const uri = (((_a = res === null || res === void 0 ? void 0 : res.uri) === null || _a === void 0 ? void 0 : _a.clone()) || (
|
|
88
|
+
const uri = (((_a = res === null || res === void 0 ? void 0 : res.uri) === null || _a === void 0 ? void 0 : _a.clone()) || URI(res.url)).hash('');
|
|
74
89
|
if (this.options.deduplicateStripSearch) {
|
|
75
90
|
url = uri.search('').toString();
|
|
76
91
|
}
|
|
@@ -81,7 +96,7 @@ class AbstractDownloader {
|
|
|
81
96
|
return false;
|
|
82
97
|
}
|
|
83
98
|
this.queuedUrl.add(url);
|
|
84
|
-
const resource =
|
|
99
|
+
const resource = normalizeResource(res);
|
|
85
100
|
// cut the call stack
|
|
86
101
|
// noinspection JSIgnoredPromiseFromCall
|
|
87
102
|
this.queue.add(() => new Promise(r => setImmediate(() => r(this.downloadAndProcessResource(resource)))));
|
|
@@ -100,13 +115,13 @@ class AbstractDownloader {
|
|
|
100
115
|
// force cast in case of typescript 4.4
|
|
101
116
|
if (err && err.name === 'HTTPError' &&
|
|
102
117
|
((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.statusCode) === 404) {
|
|
103
|
-
|
|
118
|
+
notFound.error(resource.url, resource.downloadLink, resource.refUrl);
|
|
104
119
|
}
|
|
105
120
|
else if (err) {
|
|
106
|
-
|
|
121
|
+
error.error(cause, resource.url, resource.downloadLink, resource.refUrl, err);
|
|
107
122
|
}
|
|
108
123
|
else {
|
|
109
|
-
|
|
124
|
+
error.error(cause, resource.url, resource.downloadLink, resource.refUrl);
|
|
110
125
|
}
|
|
111
126
|
}
|
|
112
127
|
get downloadedCount() {
|
|
@@ -119,7 +134,9 @@ class AbstractDownloader {
|
|
|
119
134
|
}
|
|
120
135
|
this.adjustTimer = setInterval(() => { var _a, _b; return (_b = (_a = this.options).adjustConcurrencyFunc) === null || _b === void 0 ? void 0 : _b.call(_a, this); }, this.options.adjustConcurrencyPeriod || 60000);
|
|
121
136
|
}
|
|
122
|
-
this.
|
|
137
|
+
this._initOptions.then(() => {
|
|
138
|
+
this.queue.start();
|
|
139
|
+
});
|
|
123
140
|
}
|
|
124
141
|
stop() {
|
|
125
142
|
if (this.adjustTimer) {
|
|
@@ -131,10 +148,10 @@ class AbstractDownloader {
|
|
|
131
148
|
return this.queue.onIdle();
|
|
132
149
|
}
|
|
133
150
|
async dispose() {
|
|
151
|
+
var _a;
|
|
134
152
|
this.stop();
|
|
135
153
|
this.queue.clear();
|
|
136
|
-
await this.pipeline.dispose(this.pipeline, this);
|
|
154
|
+
await ((_a = this.pipeline) === null || _a === void 0 ? void 0 : _a.dispose(this.pipeline, this));
|
|
137
155
|
}
|
|
138
156
|
}
|
|
139
|
-
exports.AbstractDownloader = AbstractDownloader;
|
|
140
157
|
//# sourceMappingURL=main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/downloader/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/downloader/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import {
|
|
1
|
+
import type { WorkerFactory } from './worker-pool.js';
|
|
2
|
+
import { WorkerPool } from './worker-pool.js';
|
|
3
|
+
import type { RawResource, Resource } from '../resource.js';
|
|
4
|
+
import type { DownloadWorkerMessage } from './types.js';
|
|
5
|
+
import type { StaticDownloadOptions } from '../options.js';
|
|
6
|
+
import { AbstractDownloader } from './main.js';
|
|
6
7
|
export interface MultiThreadDownloaderOptions extends StaticDownloadOptions {
|
|
7
8
|
pathToWorker?: string;
|
|
8
9
|
maxLoad: number;
|
|
@@ -17,3 +18,4 @@ export declare class MultiThreadDownloader extends AbstractDownloader {
|
|
|
17
18
|
onIdle(): Promise<void>;
|
|
18
19
|
dispose(): Promise<void>;
|
|
19
20
|
}
|
|
21
|
+
//# sourceMappingURL=multi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../src/downloader/multi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IAMlD,aAAa,EAAE,MAAM;IAL9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAGtB,aAAa,EAAE,MAAM,EAC5B,eAAe,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,EACvD,aAAa,CAAC,EAAE,aAAa;IA8BzB,0BAA0B,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA+CxE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
|
package/lib/downloader/multi.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
exports.MultiThreadDownloader = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const worker_pool_1 = require("./worker-pool");
|
|
9
|
-
const logger_1 = require("../logger/logger");
|
|
10
|
-
const main_1 = require("./main");
|
|
11
|
-
class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { WorkerPool } from './worker-pool.js';
|
|
3
|
+
import { skip } from '../logger/logger.js';
|
|
4
|
+
import { AbstractDownloader } from './main.js';
|
|
5
|
+
export class MultiThreadDownloader extends AbstractDownloader {
|
|
12
6
|
constructor(pathToOptions, overrideOptions, workerFactory) {
|
|
13
7
|
super(pathToOptions, overrideOptions);
|
|
14
8
|
this.pathToOptions = pathToOptions;
|
|
@@ -19,9 +13,9 @@ class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
|
19
13
|
if (workerCount < 1) {
|
|
20
14
|
workerCount = 1;
|
|
21
15
|
}
|
|
22
|
-
this.pool = new
|
|
16
|
+
this.pool = new WorkerPool(workerCount,
|
|
23
17
|
// worker script should be compiled to .js
|
|
24
|
-
(overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.pathToWorker) ||
|
|
18
|
+
(overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.pathToWorker) || path.resolve(__dirname, 'worker.js'), { pathToOptions, overrideOptions }, (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.maxLoad) || -1, workerFactory);
|
|
25
19
|
this.workerDispose = [];
|
|
26
20
|
for (const info of this.pool.workers) {
|
|
27
21
|
info.worker.addListener('exit', exitCode => this.workerDispose.push(this.pipeline.dispose(this.pipeline, this, info, exitCode)));
|
|
@@ -30,7 +24,7 @@ class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
|
30
24
|
this.init = this.addInitialResource(this.options.initialUrl);
|
|
31
25
|
}
|
|
32
26
|
else {
|
|
33
|
-
this.init = this.pipeline.init(this.pipeline, this);
|
|
27
|
+
this.init = this._initOptions.then(() => this.pipeline.init(this.pipeline, this));
|
|
34
28
|
}
|
|
35
29
|
}
|
|
36
30
|
async downloadAndProcessResource(res) {
|
|
@@ -39,7 +33,7 @@ class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
|
39
33
|
try {
|
|
40
34
|
r = await this.pipeline.download(res);
|
|
41
35
|
if (!r) {
|
|
42
|
-
|
|
36
|
+
skip.debug('discarded after download', res.url, res.rawUrl, res.refUrl);
|
|
43
37
|
return;
|
|
44
38
|
}
|
|
45
39
|
}
|
|
@@ -67,7 +61,7 @@ class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
|
67
61
|
}
|
|
68
62
|
this.downloadedUrl.add(res.url);
|
|
69
63
|
if (!msg) {
|
|
70
|
-
|
|
64
|
+
skip.info('discarded in post-processing', res.url, res.rawUrl, res.refUrl);
|
|
71
65
|
return;
|
|
72
66
|
}
|
|
73
67
|
if (msg.error) {
|
|
@@ -95,5 +89,4 @@ class MultiThreadDownloader extends main_1.AbstractDownloader {
|
|
|
95
89
|
await Promise.all(workerDispose);
|
|
96
90
|
}
|
|
97
91
|
}
|
|
98
|
-
exports.MultiThreadDownloader = MultiThreadDownloader;
|
|
99
92
|
//# sourceMappingURL=multi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.js","sourceRoot":"","sources":["../../src/downloader/multi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi.js","sourceRoot":"","sources":["../../src/downloader/multi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { StaticDownloadOptions } from '../options';
|
|
2
|
-
import type { Resource, ResourceEncoding, ResourceType } from '../resource';
|
|
3
|
-
import type { DownloadResource, ProcessingLifeCycle, RequestOptions, SubmitResourceFunc } from '../life-cycle/types';
|
|
4
|
-
import type { PipelineExecutor } from '../life-cycle/pipeline-executor';
|
|
5
|
-
import type { Cheerio } from '../types';
|
|
6
|
-
import type { DownloaderWithMeta } from './types';
|
|
7
|
-
import type { WorkerInfo } from './worker-pool';
|
|
1
|
+
import type { StaticDownloadOptions } from '../options.js';
|
|
2
|
+
import type { Resource, ResourceEncoding, ResourceType } from '../resource.js';
|
|
3
|
+
import type { DownloadResource, ProcessingLifeCycle, RequestOptions, SubmitResourceFunc } from '../life-cycle/types.js';
|
|
4
|
+
import type { PipelineExecutor } from '../life-cycle/pipeline-executor.js';
|
|
5
|
+
import type { Cheerio } from '../types.js';
|
|
6
|
+
import type { DownloaderWithMeta } from './types.js';
|
|
7
|
+
import type { WorkerInfo } from './worker-pool.js';
|
|
8
8
|
/**
|
|
9
9
|
* Pipeline executor
|
|
10
10
|
*/
|
|
@@ -30,3 +30,4 @@ export declare class PipelineExecutorImpl implements PipelineExecutor {
|
|
|
30
30
|
saveToDisk(res: DownloadResource, options?: StaticDownloadOptions): Promise<DownloadResource | void>;
|
|
31
31
|
dispose(pipeline: PipelineExecutor, downloader: DownloaderWithMeta, workerInfo?: WorkerInfo, workerExitCode?: number): Promise<void>;
|
|
32
32
|
}
|
|
33
|
+
//# sourceMappingURL=pipeline-executor-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-executor-impl.d.ts","sourceRoot":"","sources":["../../src/downloader/pipeline-executor-impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAEV,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IACxC,SAAS,EAAE,mBAAmB;IAC9B,cAAc,EAAE,cAAc;IAC9B,OAAO,EAAE,qBAAqB;gBAF9B,SAAS,EAAE,mBAAmB,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB;IAG3C,IAAI,CACR,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,CAAC,EAAE,kBAAkB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAOV,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,YAAY,EACzB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiBrB,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,QAAQ,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYnB,kBAAkB,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,QAAQ,GAAG,IAAI,GACtB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAc/B,cAAc,CACZ,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,QAAQ;IAkBL,qBAAqB,CACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,QAAQ,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBrB,QAAQ,CACZ,GAAG,EAAE,QAAQ,EACb,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA0BnC;;;;;OAKG;IACG,oBAAoB,CACxB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAe7B,UAAU,CACd,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiB7B,OAAO,CACX,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,CAAC,EAAE,UAAU,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PipelineExecutorImpl = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Pipeline executor
|
|
6
3
|
*/
|
|
7
|
-
class PipelineExecutorImpl {
|
|
4
|
+
export class PipelineExecutorImpl {
|
|
8
5
|
constructor(lifeCycle, requestOptions, options) {
|
|
9
6
|
this.lifeCycle = lifeCycle;
|
|
10
7
|
this.requestOptions = requestOptions;
|
|
@@ -150,5 +147,4 @@ class PipelineExecutorImpl {
|
|
|
150
147
|
}
|
|
151
148
|
}
|
|
152
149
|
}
|
|
153
|
-
exports.PipelineExecutorImpl = PipelineExecutorImpl;
|
|
154
150
|
//# sourceMappingURL=pipeline-executor-impl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-executor-impl.js","sourceRoot":"","sources":["../../src/downloader/pipeline-executor-impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline-executor-impl.js","sourceRoot":"","sources":["../../src/downloader/pipeline-executor-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AbstractDownloader } from './main';
|
|
2
|
-
import type { Resource } from '../resource';
|
|
3
|
-
import type { StaticDownloadOptions } from '../options';
|
|
1
|
+
import { AbstractDownloader } from './main.js';
|
|
2
|
+
import type { Resource } from '../resource.js';
|
|
3
|
+
import type { StaticDownloadOptions } from '../options.js';
|
|
4
4
|
export declare class SingleThreadDownloader extends AbstractDownloader {
|
|
5
5
|
pathToOptions: string;
|
|
6
6
|
readonly init: Promise<void>;
|
|
@@ -10,3 +10,4 @@ export declare class SingleThreadDownloader extends AbstractDownloader {
|
|
|
10
10
|
downloadAndProcessResource(res: Resource): Promise<void>;
|
|
11
11
|
onIdle(): Promise<void>;
|
|
12
12
|
}
|
|
13
|
+
//# sourceMappingURL=single.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../src/downloader/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAOzD,qBAAa,sBAAuB,SAAQ,kBAAkB;IAGzC,aAAa,EAAE,MAAM;IAFxC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEV,aAAa,EAAE,MAAM,EACtC,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IASxE,0BAA0B,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC9D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAMxB"}
|