website-scrap-engine 0.8.7 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +245 -39
  2. package/lib/downloader/main.d.ts.map +1 -1
  3. package/lib/downloader/main.js +15 -16
  4. package/lib/downloader/main.js.map +1 -1
  5. package/lib/downloader/multi.d.ts.map +1 -1
  6. package/lib/downloader/multi.js +3 -4
  7. package/lib/downloader/multi.js.map +1 -1
  8. package/lib/downloader/pipeline-executor-impl.d.ts +6 -3
  9. package/lib/downloader/pipeline-executor-impl.d.ts.map +1 -1
  10. package/lib/downloader/pipeline-executor-impl.js +86 -2
  11. package/lib/downloader/pipeline-executor-impl.js.map +1 -1
  12. package/lib/downloader/single.d.ts.map +1 -1
  13. package/lib/downloader/single.js +4 -5
  14. package/lib/downloader/single.js.map +1 -1
  15. package/lib/downloader/worker-pool.d.ts.map +1 -1
  16. package/lib/downloader/worker-pool.js +12 -7
  17. package/lib/downloader/worker-pool.js.map +1 -1
  18. package/lib/downloader/worker-type.d.ts +2 -2
  19. package/lib/downloader/worker-type.d.ts.map +1 -1
  20. package/lib/downloader/worker.js +2 -4
  21. package/lib/downloader/worker.js.map +1 -1
  22. package/lib/index.d.ts +2 -0
  23. package/lib/index.d.ts.map +1 -1
  24. package/lib/index.js +1 -0
  25. package/lib/index.js.map +1 -1
  26. package/lib/life-cycle/adapters.d.ts +7 -1
  27. package/lib/life-cycle/adapters.d.ts.map +1 -1
  28. package/lib/life-cycle/adapters.js +6 -0
  29. package/lib/life-cycle/adapters.js.map +1 -1
  30. package/lib/life-cycle/default-life-cycle.d.ts.map +1 -1
  31. package/lib/life-cycle/default-life-cycle.js +3 -1
  32. package/lib/life-cycle/default-life-cycle.js.map +1 -1
  33. package/lib/life-cycle/default-status-listener.d.ts +4 -0
  34. package/lib/life-cycle/default-status-listener.d.ts.map +1 -0
  35. package/lib/life-cycle/default-status-listener.js +38 -0
  36. package/lib/life-cycle/default-status-listener.js.map +1 -0
  37. package/lib/life-cycle/download-resource.d.ts.map +1 -1
  38. package/lib/life-cycle/download-resource.js +13 -3
  39. package/lib/life-cycle/download-resource.js.map +1 -1
  40. package/lib/life-cycle/index.d.ts +1 -0
  41. package/lib/life-cycle/index.d.ts.map +1 -1
  42. package/lib/life-cycle/index.js +1 -0
  43. package/lib/life-cycle/index.js.map +1 -1
  44. package/lib/life-cycle/pipeline-executor.d.ts +10 -3
  45. package/lib/life-cycle/pipeline-executor.d.ts.map +1 -1
  46. package/lib/life-cycle/types.d.ts +56 -4
  47. package/lib/life-cycle/types.d.ts.map +1 -1
  48. package/lib/logger/default-logger.d.ts +3 -0
  49. package/lib/logger/default-logger.d.ts.map +1 -0
  50. package/lib/logger/default-logger.js +11 -0
  51. package/lib/logger/default-logger.js.map +1 -0
  52. package/lib/logger/log4js-adapter.d.ts +3 -0
  53. package/lib/logger/log4js-adapter.d.ts.map +1 -0
  54. package/lib/logger/log4js-adapter.js +143 -0
  55. package/lib/logger/log4js-adapter.js.map +1 -0
  56. package/lib/logger/logger-worker.d.ts +3 -4
  57. package/lib/logger/logger-worker.d.ts.map +1 -1
  58. package/lib/logger/logger-worker.js +21 -20
  59. package/lib/logger/logger-worker.js.map +1 -1
  60. package/lib/logger/logger.d.ts +13 -11
  61. package/lib/logger/logger.d.ts.map +1 -1
  62. package/lib/logger/logger.js +32 -14
  63. package/lib/logger/logger.js.map +1 -1
  64. package/lib/logger/types.d.ts +23 -0
  65. package/lib/logger/types.d.ts.map +1 -0
  66. package/lib/logger/types.js +2 -0
  67. package/lib/logger/types.js.map +1 -0
  68. package/lib/options.d.ts +5 -4
  69. package/lib/options.d.ts.map +1 -1
  70. package/lib/options.js +6 -4
  71. package/lib/options.js.map +1 -1
  72. package/package.json +7 -5
  73. package/src/downloader/main.ts +15 -14
  74. package/src/downloader/multi.ts +3 -5
  75. package/src/downloader/pipeline-executor-impl.ts +98 -2
  76. package/src/downloader/single.ts +4 -5
  77. package/src/downloader/worker-pool.ts +12 -6
  78. package/src/downloader/worker-type.ts +2 -2
  79. package/src/downloader/worker.ts +2 -7
  80. package/src/index.ts +2 -0
  81. package/src/life-cycle/adapters.ts +13 -0
  82. package/src/life-cycle/default-life-cycle.ts +3 -1
  83. package/src/life-cycle/default-status-listener.ts +40 -0
  84. package/src/life-cycle/download-resource.ts +13 -4
  85. package/src/life-cycle/index.ts +1 -0
  86. package/src/life-cycle/pipeline-executor.ts +16 -2
  87. package/src/life-cycle/types.ts +79 -3
  88. package/src/logger/default-logger.ts +12 -0
  89. package/src/logger/log4js-adapter.ts +147 -0
  90. package/src/logger/logger-worker.ts +24 -23
  91. package/src/logger/logger.ts +36 -16
  92. package/src/logger/types.ts +35 -0
  93. package/src/options.ts +11 -7
  94. package/lib/logger/config-logger.d.ts +0 -3
  95. package/lib/logger/config-logger.d.ts.map +0 -1
  96. package/lib/logger/config-logger.js +0 -92
  97. package/lib/logger/config-logger.js.map +0 -1
  98. package/src/logger/config-logger.ts +0 -95
@@ -1,20 +1,36 @@
1
1
  import type { OptionsInit as GotOptions } from 'got';
2
- import type { createResource, GenerateSavePathFn, Resource, ResourceBody, ResourceType } from '../resource.js';
2
+ import type { Stats } from 'node:fs';
3
+ import type { createResource, GenerateSavePathFn, RawResource, Resource, ResourceBody, ResourceType } from '../resource.js';
3
4
  import type { StaticDownloadOptions } from '../options.js';
4
5
  import type { PipelineExecutor } from './pipeline-executor.js';
5
6
  import type { Cheerio } from '../types.js';
6
7
  import type { DownloaderWithMeta } from '../downloader/types.js';
7
8
  import type { WorkerInfo } from '../downloader/worker-pool.js';
8
9
  export type AsyncResult<T> = T | Promise<T>;
10
+ export type ResourceStatus = 'createResource' | 'processBeforeDownload' | 'download' | 'processAfterDownload' | 'saveToDisk' | 'error' | 'dispose';
11
+ export interface StatusChangeFunc {
12
+ (res: Resource | RawResource, status: ResourceStatus, options: StaticDownloadOptions, pipeline: PipelineExecutor): void | Promise<void>;
13
+ }
14
+ export interface InitSubmitFunc {
15
+ /**
16
+ * Submit a raw URL to be processed through the full pipeline
17
+ * after all init hooks complete.
18
+ *
19
+ * This is fire-and-forget: the URL is appended to the initial URL list
20
+ * and processed identically to entries in {@link DownloadOptions.initialUrl}.
21
+ * No pipeline stages run during the call.
22
+ */
23
+ (url: string): void;
24
+ }
9
25
  export interface InitLifeCycleFunc {
10
26
  /**
11
27
  * The init life cycle would be called:
12
28
  *
13
29
  * Each time a downloader initialized,
14
- * after configureLogger but before addInitialResource.
30
+ * after logger initialization but before addInitialResource.
15
31
  *
16
32
  * Each time a worker initialized,
17
- * after configureLogger but before parentPort?.addListener.
33
+ * before parentPort?.addListener.
18
34
  *
19
35
  * The init life cycle could be async,
20
36
  * in main thread the addInitialResource should wait for init completed,
@@ -23,8 +39,10 @@ export interface InitLifeCycleFunc {
23
39
  *
24
40
  * @param pipeline the PipelineExecutor
25
41
  * @param downloader the DownloaderWithMeta when in main thread
42
+ * @param submit function to submit URLs for processing after init;
43
+ * undefined in worker threads
26
44
  */
27
- (pipeline: PipelineExecutor, downloader?: DownloaderWithMeta): AsyncResult<void>;
45
+ (pipeline: PipelineExecutor, downloader?: DownloaderWithMeta, submit?: InitSubmitFunc): AsyncResult<void>;
28
46
  }
29
47
  export interface LinkRedirectFunc {
30
48
  /**
@@ -154,5 +172,39 @@ export interface ProcessingLifeCycle {
154
172
  processAfterDownload: ProcessResourceAfterDownloadFunc[];
155
173
  saveToDisk: SaveToDiskFunc[];
156
174
  dispose: DisposeLifeCycle[];
175
+ /**
176
+ * Status change listeners.
177
+ *
178
+ * Unlike other life cycle hooks, all listeners always run
179
+ * (returning void does not short-circuit), and thrown errors are swallowed.
180
+ *
181
+ * Listeners should treat the resource and all parameters as readonly.
182
+ * Mutating them is undefined behavior.
183
+ */
184
+ statusChange: StatusChangeFunc[];
185
+ /**
186
+ * Optional callback to decide what to do when a local file already exists
187
+ * for a resource. Called at most twice per resource: once before download
188
+ * and once before save.
189
+ *
190
+ * Unlike other life cycle hooks, this is a single function (not an array)
191
+ * because the decision is mutually exclusive — there is no meaningful way
192
+ * to compose multiple strategies.
193
+ *
194
+ * If absent, the pipeline behaves as before (always download and overwrite).
195
+ */
196
+ existingResource?: ExistingResourceFunc;
197
+ }
198
+ export type ExistingResourceAction = 'skip' | 'overwrite' | 'ifModifiedSince' | 'skipSave';
199
+ export type ExistingResourceStage = 'download' | 'saveToDisk';
200
+ export interface ExistingResourceContext {
201
+ res: Resource;
202
+ stage: ExistingResourceStage;
203
+ localPath: string;
204
+ stat: Stats;
205
+ options: StaticDownloadOptions;
206
+ }
207
+ export interface ExistingResourceFunc {
208
+ (ctx: ExistingResourceContext): ExistingResourceAction;
157
209
  }
158
210
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/life-cycle/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/life-cycle/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Logger } from './types.js';
2
+ export declare function createDefaultLogger(): Logger;
3
+ //# sourceMappingURL=default-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-logger.d.ts","sourceRoot":"","sources":["../../src/logger/default-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAEvC,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C"}
@@ -0,0 +1,11 @@
1
+ export function createDefaultLogger() {
2
+ return {
3
+ trace() { },
4
+ debug(type, ...contents) { console.debug(`[${type}]`, ...contents); },
5
+ info(type, ...contents) { console.info(`[${type}]`, ...contents); },
6
+ warn(type, ...contents) { console.warn(`[${type}]`, ...contents); },
7
+ error(type, ...contents) { console.error(`[${type}]`, ...contents); },
8
+ isTraceEnabled() { return false; },
9
+ };
10
+ }
11
+ //# sourceMappingURL=default-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-logger.js","sourceRoot":"","sources":["../../src/logger/default-logger.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,KAAiB,CAAC;QACvB,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrE,cAAc,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Logger } from './types.js';
2
+ export declare function createLog4jsLogger(localRoot: string, logSubDir?: string): Logger;
3
+ //# sourceMappingURL=log4js-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log4js-adapter.d.ts","sourceRoot":"","sources":["../../src/logger/log4js-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAU,MAAM,YAAY,CAAC;AAehD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CA8HR"}
@@ -0,0 +1,143 @@
1
+ import * as path from 'node:path';
2
+ import log4js from 'log4js';
3
+ const typeToCategory = {
4
+ 'io.http.request': 'request',
5
+ 'io.http.response': 'response',
6
+ 'io.http.notFound': 'notFound',
7
+ 'io.http.retry': 'retry',
8
+ 'io.disk.mkdir': 'mkdir',
9
+ 'system.skip': 'skip',
10
+ 'system.skipExternal': 'skipExternal',
11
+ 'system.complete': 'complete',
12
+ 'system.adjustConcurrency': 'adjustConcurrency',
13
+ 'system.error': 'error',
14
+ };
15
+ export function createLog4jsLogger(localRoot, logSubDir) {
16
+ const logDir = path.join(localRoot, logSubDir || '', 'logs');
17
+ log4js.configure({
18
+ appenders: {
19
+ 'retry': {
20
+ type: 'file',
21
+ filename: path.join(logDir, 'retry.log')
22
+ },
23
+ 'mkdir': {
24
+ type: 'file',
25
+ filename: path.join(logDir, 'mkdir.log')
26
+ },
27
+ 'error': {
28
+ type: 'file',
29
+ filename: path.join(logDir, 'error.log')
30
+ },
31
+ 'skip': {
32
+ type: 'file',
33
+ filename: path.join(logDir, 'skip.log')
34
+ },
35
+ '404': {
36
+ type: 'file',
37
+ filename: path.join(logDir, '404.log')
38
+ },
39
+ 'complete': {
40
+ type: 'file',
41
+ filename: path.join(logDir, 'complete.log')
42
+ },
43
+ 'request': {
44
+ type: 'file',
45
+ filename: path.join(logDir, 'request.log')
46
+ },
47
+ 'response': {
48
+ type: 'file',
49
+ filename: path.join(logDir, 'response.log')
50
+ },
51
+ 'stdout': {
52
+ type: 'stdout'
53
+ },
54
+ 'stderr': {
55
+ type: 'stderr'
56
+ }
57
+ },
58
+ categories: {
59
+ 'retry': {
60
+ appenders: ['stdout', 'retry'],
61
+ level: 'debug'
62
+ },
63
+ 'mkdir': {
64
+ appenders: ['mkdir'],
65
+ level: 'debug'
66
+ },
67
+ 'error': {
68
+ appenders: ['stderr', 'error'],
69
+ level: 'debug'
70
+ },
71
+ 'skip': {
72
+ appenders: ['stdout', 'skip'],
73
+ level: 'debug'
74
+ },
75
+ 'skipExternal': {
76
+ appenders: ['skip'],
77
+ level: 'debug'
78
+ },
79
+ 'notFound': {
80
+ appenders: ['404'],
81
+ level: 'debug'
82
+ },
83
+ 'complete': {
84
+ appenders: ['complete'],
85
+ level: 'debug'
86
+ },
87
+ 'request': {
88
+ appenders: ['request'],
89
+ level: 'debug'
90
+ },
91
+ 'response': {
92
+ appenders: ['response'],
93
+ level: 'debug'
94
+ },
95
+ 'adjustConcurrency': {
96
+ appenders: ['stdout', 'complete'],
97
+ level: 'debug'
98
+ },
99
+ 'default': {
100
+ appenders: ['stdout', 'complete'],
101
+ level: 'debug'
102
+ }
103
+ }
104
+ });
105
+ const loggers = new Map();
106
+ const getOrCreate = (category) => {
107
+ let l = loggers.get(category);
108
+ if (!l) {
109
+ l = log4js.getLogger(category);
110
+ loggers.set(category, l);
111
+ }
112
+ return l;
113
+ };
114
+ /* eslint-disable @typescript-eslint/no-explicit-any */
115
+ const spread = (contents) => contents;
116
+ /* eslint-enable @typescript-eslint/no-explicit-any */
117
+ return {
118
+ trace(type, ...contents) {
119
+ var _a;
120
+ getOrCreate((_a = typeToCategory[type]) !== null && _a !== void 0 ? _a : 'default').trace(...spread(contents));
121
+ },
122
+ debug(type, ...contents) {
123
+ var _a;
124
+ getOrCreate((_a = typeToCategory[type]) !== null && _a !== void 0 ? _a : 'default').debug(...spread(contents));
125
+ },
126
+ info(type, ...contents) {
127
+ var _a;
128
+ getOrCreate((_a = typeToCategory[type]) !== null && _a !== void 0 ? _a : 'default').info(...spread(contents));
129
+ },
130
+ warn(type, ...contents) {
131
+ var _a;
132
+ getOrCreate((_a = typeToCategory[type]) !== null && _a !== void 0 ? _a : 'default').warn(...spread(contents));
133
+ },
134
+ error(type, ...contents) {
135
+ var _a;
136
+ getOrCreate((_a = typeToCategory[type]) !== null && _a !== void 0 ? _a : 'default').error(...spread(contents));
137
+ },
138
+ isTraceEnabled() {
139
+ return log4js.getLogger().isTraceEnabled();
140
+ },
141
+ };
142
+ }
143
+ //# sourceMappingURL=log4js-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log4js-adapter.js","sourceRoot":"","sources":["../../src/logger/log4js-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { Logger } from 'log4js';
2
- import type { WorkerLog } from '../downloader/worker-type.js';
3
- export declare const logLevels: readonly ["trace", "debug", "info", "warn", "error", "fatal", "mark"];
4
- export declare function getWorkerLogger(category: WorkerLog['logger']): Logger;
1
+ import type { CategoryLogger, LogType } from './types.js';
2
+ export declare const logLevels: readonly ["trace", "debug", "info", "warn", "error"];
3
+ export declare function createWorkerCategoryLogger(type: LogType): CategoryLogger;
5
4
  //# sourceMappingURL=logger-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger-worker.d.ts","sourceRoot":"","sources":["../../src/logger/logger-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAInC,OAAO,KAAK,EAAmB,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAK9E,eAAO,MAAM,SAAS,uEAEZ,CAAC;AAEX,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAiBrE"}
1
+ {"version":3,"file":"logger-worker.d.ts","sourceRoot":"","sources":["../../src/logger/logger-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAIxD,eAAO,MAAM,SAAS,sDAEZ,CAAC;AAEX,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAsBxE"}
@@ -1,27 +1,28 @@
1
- // https://github.com/jestjs/jest/issues/11563
2
- import log4js from 'log4js';
3
1
  import { parentPort } from 'node:worker_threads';
4
2
  import { WorkerMessageType } from '../downloader/types.js';
5
- const getLogger = log4js.getLogger;
6
3
  export const logLevels = [
7
- 'trace', 'debug', 'info', 'warn', 'error', 'fatal', 'mark'
4
+ 'trace', 'debug', 'info', 'warn', 'error'
8
5
  ];
9
- export function getWorkerLogger(category) {
10
- const logger = getLogger(category);
11
- logLevels.forEach((level) => {
12
- logger[level] = (...content) => {
13
- const msg = {
14
- taskId: -1,
15
- type: WorkerMessageType.Log,
16
- body: {
17
- level,
18
- logger: category,
19
- content
20
- }
21
- };
22
- parentPort === null || parentPort === void 0 ? void 0 : parentPort.postMessage(msg);
6
+ export function createWorkerCategoryLogger(type) {
7
+ function send(level, content) {
8
+ const msg = {
9
+ taskId: -1,
10
+ type: WorkerMessageType.Log,
11
+ body: {
12
+ logType: type,
13
+ level,
14
+ content
15
+ }
23
16
  };
24
- });
25
- return logger;
17
+ parentPort === null || parentPort === void 0 ? void 0 : parentPort.postMessage(msg);
18
+ }
19
+ return {
20
+ trace(...content) { send('trace', content); },
21
+ debug(...content) { send('debug', content); },
22
+ info(...content) { send('info', content); },
23
+ warn(...content) { send('warn', content); },
24
+ error(...content) { send('error', content); },
25
+ isTraceEnabled() { return false; },
26
+ };
26
27
  }
27
28
  //# sourceMappingURL=logger-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger-worker.js","sourceRoot":"","sources":["../../src/logger/logger-worker.ts"],"names":[],"mappings":"AACA,8CAA8C;AAC9C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAEzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CAClD,CAAC;AAEX,MAAM,UAAU,eAAe,CAAC,QAA6B;IAC3D,MAAM,MAAM,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,SAAS,CAAC,OAAO,CAAC,CAAC,KAA+B,EAAE,EAAE;QACpD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,OAAY,EAAE,EAAE;YACrC,MAAM,GAAG,GAAwB;gBAC/B,MAAM,EAAE,CAAC,CAAC;gBACV,IAAI,EAAE,iBAAiB,CAAC,GAAG;gBAC3B,IAAI,EAAE;oBACJ,KAAK;oBACL,MAAM,EAAE,QAAQ;oBAChB,OAAO;iBACR;aACF,CAAC;YACF,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"logger-worker.js","sourceRoot":"","sources":["../../src/logger/logger-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CACjC,CAAC;AAEX,MAAM,UAAU,0BAA0B,CAAC,IAAa;IACtD,SAAS,IAAI,CAAI,KAA+B,EAAE,OAAY;QAC5D,MAAM,GAAG,GAAwB;YAC/B,MAAM,EAAE,CAAC,CAAC;YACV,IAAI,EAAE,iBAAiB,CAAC,GAAG;YAC3B,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,OAAO;aACR;SACF,CAAC;QACF,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,KAAK,CAAC,GAAG,OAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,CAAC,GAAG,OAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,OAAkB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,OAAkB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,KAAK,CAAC,GAAG,OAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,cAAc,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -1,12 +1,14 @@
1
- import type { Logger } from 'log4js';
2
- export declare const notFound: Logger;
3
- export declare const retry: Logger;
4
- export declare const mkdir: Logger;
5
- export declare const request: Logger;
6
- export declare const response: Logger;
7
- export declare const error: Logger;
8
- export declare const complete: Logger;
9
- export declare const skip: Logger;
10
- export declare const skipExternal: Logger;
11
- export declare const adjustConcurrency: Logger;
1
+ import type { CategoryLogger, Logger } from './types.js';
2
+ export declare function setLogger(logger: Logger): void;
3
+ export declare function getLogger(): Logger;
4
+ export declare const notFound: CategoryLogger;
5
+ export declare const retry: CategoryLogger;
6
+ export declare const mkdir: CategoryLogger;
7
+ export declare const request: CategoryLogger;
8
+ export declare const response: CategoryLogger;
9
+ export declare const error: CategoryLogger;
10
+ export declare const complete: CategoryLogger;
11
+ export declare const skip: CategoryLogger;
12
+ export declare const skipExternal: CategoryLogger;
13
+ export declare const adjustConcurrency: CategoryLogger;
12
14
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AASnC,eAAO,MAAM,QAAQ,EAAE,MAA8B,CAAC;AACtD,eAAO,MAAM,KAAK,EAAE,MAA2B,CAAC;AAChD,eAAO,MAAM,KAAK,EAAE,MAA2B,CAAC;AAChD,eAAO,MAAM,OAAO,EAAE,MAA6B,CAAC;AACpD,eAAO,MAAM,QAAQ,EAAE,MAA8B,CAAC;AACtD,eAAO,MAAM,KAAK,EAAE,MAA2B,CAAC;AAChD,eAAO,MAAM,QAAQ,EAAE,MAA8B,CAAC;AACtD,eAAO,MAAM,IAAI,EAAE,MAA0B,CAAC;AAC9C,eAAO,MAAM,YAAY,EAAE,MAAkC,CAAC;AAC9D,eAAO,MAAM,iBAAiB,EAAE,MAAuC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAE,MAAM,EAAU,MAAM,YAAY,CAAC;AAMhE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAgBD,eAAO,MAAM,QAAQ,EAAE,cAAwD,CAAC;AAChF,eAAO,MAAM,KAAK,EAAE,cAAqD,CAAC;AAC1E,eAAO,MAAM,KAAK,EAAE,cAAqD,CAAC;AAC1E,eAAO,MAAM,OAAO,EAAE,cAAuD,CAAC;AAC9E,eAAO,MAAM,QAAQ,EAAE,cAAwD,CAAC;AAChF,eAAO,MAAM,KAAK,EAAE,cAAoD,CAAC;AACzE,eAAO,MAAM,QAAQ,EAAE,cAAuD,CAAC;AAC/E,eAAO,MAAM,IAAI,EAAE,cAAmD,CAAC;AACvE,eAAO,MAAM,YAAY,EAAE,cAA2D,CAAC;AACvF,eAAO,MAAM,iBAAiB,EAAE,cAAgE,CAAC"}
@@ -1,16 +1,34 @@
1
- // https://github.com/jestjs/jest/issues/11563
2
- import log4js from 'log4js';
3
1
  import { isMainThread } from 'node:worker_threads';
4
- import { getWorkerLogger } from './logger-worker.js';
5
- const getLogger = isMainThread ? log4js.getLogger : getWorkerLogger;
6
- export const notFound = getLogger('notFound');
7
- export const retry = getLogger('retry');
8
- export const mkdir = getLogger('mkdir');
9
- export const request = getLogger('request');
10
- export const response = getLogger('response');
11
- export const error = getLogger('error');
12
- export const complete = getLogger('complete');
13
- export const skip = getLogger('skip');
14
- export const skipExternal = getLogger('skipExternal');
15
- export const adjustConcurrency = getLogger('adjustConcurrency');
2
+ import { createDefaultLogger } from './default-logger.js';
3
+ import { createWorkerCategoryLogger } from './logger-worker.js';
4
+ let _logger = createDefaultLogger();
5
+ export function setLogger(logger) {
6
+ _logger = logger;
7
+ }
8
+ export function getLogger() {
9
+ return _logger;
10
+ }
11
+ function createCategoryProxy(type) {
12
+ if (!isMainThread) {
13
+ return createWorkerCategoryLogger(type);
14
+ }
15
+ return {
16
+ trace(...contents) { _logger.trace(type, ...contents); },
17
+ debug(...contents) { _logger.debug(type, ...contents); },
18
+ info(...contents) { _logger.info(type, ...contents); },
19
+ warn(...contents) { _logger.warn(type, ...contents); },
20
+ error(...contents) { _logger.error(type, ...contents); },
21
+ isTraceEnabled() { return _logger.isTraceEnabled(); },
22
+ };
23
+ }
24
+ export const notFound = createCategoryProxy('io.http.notFound');
25
+ export const retry = createCategoryProxy('io.http.retry');
26
+ export const mkdir = createCategoryProxy('io.disk.mkdir');
27
+ export const request = createCategoryProxy('io.http.request');
28
+ export const response = createCategoryProxy('io.http.response');
29
+ export const error = createCategoryProxy('system.error');
30
+ export const complete = createCategoryProxy('system.complete');
31
+ export const skip = createCategoryProxy('system.skip');
32
+ export const skipExternal = createCategoryProxy('system.skipExternal');
33
+ export const adjustConcurrency = createCategoryProxy('system.adjustConcurrency');
16
34
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AACA,8CAA8C;AAC9C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,MAAM,SAAS,GACb,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAW,SAAS,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,KAAK,GAAW,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,KAAK,GAAW,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,OAAO,GAAW,SAAS,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,QAAQ,GAAW,SAAS,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,KAAK,GAAW,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAW,SAAS,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,IAAI,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAW,SAAS,CAAC,cAAc,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAW,SAAS,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,0BAA0B,EAAC,MAAM,oBAAoB,CAAC;AAE9D,IAAI,OAAO,GAAW,mBAAmB,EAAE,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO;QACL,KAAK,CAAC,GAAG,QAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,GAAG,QAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,QAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG,QAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,GAAG,QAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,cAAc,KAAK,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAmB,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,KAAK,GAAmB,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAmB,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,OAAO,GAAmB,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAmB,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,KAAK,GAAmB,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAmB,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,IAAI,GAAmB,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,YAAY,GAAmB,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAmB,mBAAmB,CAAC,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ export type LogType = 'io.http.request' | 'io.http.response' | 'io.http.notFound' | 'io.http.retry' | 'io.disk.mkdir' | 'system.skip' | 'system.skipExternal' | 'system.complete' | 'system.adjustConcurrency' | 'system.error' | `custom.${string}`;
2
+ export interface Logger {
3
+ trace(type: LogType, ...contents: unknown[]): void;
4
+ debug(type: LogType, ...contents: unknown[]): void;
5
+ info(type: LogType, ...contents: unknown[]): void;
6
+ warn(type: LogType, ...contents: unknown[]): void;
7
+ error(type: LogType, ...contents: unknown[]): void;
8
+ isTraceEnabled(): boolean;
9
+ }
10
+ /**
11
+ * Logger proxy for a specific category.
12
+ * Consumer code calls methods without a LogType argument;
13
+ * the proxy prepends the appropriate LogType automatically.
14
+ */
15
+ export interface CategoryLogger {
16
+ trace(...contents: unknown[]): void;
17
+ debug(...contents: unknown[]): void;
18
+ info(...contents: unknown[]): void;
19
+ warn(...contents: unknown[]): void;
20
+ error(...contents: unknown[]): void;
21
+ isTraceEnabled(): boolean;
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/logger/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,iBAAiB,GACjB,0BAA0B,GAC1B,cAAc,GACd,UAAU,MAAM,EAAE,CAAC;AAEvB,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnD,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logger/types.ts"],"names":[],"mappings":""}
package/lib/options.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { RequestError, RetryFunction, TimeoutError } from 'got';
2
2
  import type { ResourceEncoding, ResourceType } from './resource.js';
3
3
  import type { ProcessingLifeCycle, RequestOptions } from './life-cycle/types.js';
4
- import { configureLogger } from './logger/config-logger.js';
4
+ import type { Logger } from './logger/types.js';
5
5
  import type { DownloaderWithMeta } from './downloader/types.js';
6
6
  import type { SourceDefinition } from './sources.js';
7
7
  import type { CheerioOptionsInterface } from './types.js';
@@ -88,7 +88,7 @@ export interface StaticDownloadOptions {
88
88
  */
89
89
  initialUrl?: string[];
90
90
  /**
91
- * @see DownloadOptions.configureLogger
91
+ * @see DownloadOptions.createLogger
92
92
  */
93
93
  logSubDir?: string;
94
94
  /**
@@ -131,9 +131,10 @@ export interface DownloadOptions extends StaticDownloadOptions, ProcessingLifeCy
131
131
  adjustConcurrencyPeriod?: number;
132
132
  adjustConcurrencyFunc?: (downloader: DownloaderWithMeta) => void;
133
133
  /**
134
- * Use a custom function to configure logger.
134
+ * Use a custom function to create a logger instance.
135
+ * Defaults to {@link createDefaultLogger} (console-based).
135
136
  */
136
- configureLogger: typeof configureLogger;
137
+ createLogger?: (options: StaticDownloadOptions) => Logger;
137
138
  }
138
139
  export type ExtendedError = (TimeoutError | RequestError) & {
139
140
  retryLimitExceeded: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,aAAa,EAAe,YAAY,EAAC,MAAM,KAAK,CAAC;AAEhF,OAAO,KAAK,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAElE,OAAO,KAAK,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAM/E,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAE,IAAI,CAAC;IACvD,oBAAoB,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE7B;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAC;IAEzB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;OAMG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,eAAgB,SAAQ,qBAAqB,EAAE,mBAAmB;IACjF;;;;OAIG;IACH,GAAG,EAAE,cAAc,CAAC;IAEpB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEjE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,CAAC;CAC3D;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG;IAC1D,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAyBF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAqEhC,CAAC;AA2BF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAkD1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAiB9E;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,GAAG,CAAC,MAAM,eAAe,CAAC,EAClD,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAmBnE"}
package/lib/options.js CHANGED
@@ -5,7 +5,7 @@ import { beforeRetryHook } from './life-cycle/download-resource.js';
5
5
  import { error } from './logger/logger.js';
6
6
  // noinspection ES6PreferShortImport
7
7
  import { adjust } from './downloader/adjust-concurrency.js';
8
- import { configureLogger } from './logger/config-logger.js';
8
+ import { createDefaultLogger } from './logger/default-logger.js';
9
9
  import { weakAssign } from './util.js';
10
10
  const MAX_RETRY_DELAY = 5000;
11
11
  const retryErrorCodes = new Set([
@@ -106,7 +106,7 @@ const defaultOptions = {
106
106
  init: [],
107
107
  dispose: [],
108
108
  concurrency: 12,
109
- configureLogger,
109
+ createLogger: createDefaultLogger,
110
110
  createResource,
111
111
  detectResourceType: [],
112
112
  download: [],
@@ -116,13 +116,15 @@ const defaultOptions = {
116
116
  localRoot: '',
117
117
  maxDepth: 1,
118
118
  meta: {
119
- detectIncompleteHtml: '</html>'
119
+ detectIncompleteHtml: '</html>',
120
+ warnForNonHtml: true
120
121
  },
121
122
  processAfterDownload: [],
122
123
  processBeforeDownload: [],
123
124
  req: {},
124
125
  saveToDisk: [],
125
- deduplicateStripSearch: true
126
+ deduplicateStripSearch: true,
127
+ statusChange: []
126
128
  };
127
129
  export function defaultDownloadOptions(options) {
128
130
  const merged = weakAssign(options, defaultOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}