mwoffliner 1.17.4 → 2.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 +355 -62
- package/docs/functional_architecture.md +34 -38
- package/extensions/wiktionary_fr.js +18 -17
- package/jest.config.cjs +2 -2
- package/lib/DOMUtils.js +0 -1
- package/lib/DOMUtils.js.map +1 -1
- package/lib/Downloader.d.ts +39 -31
- package/lib/Downloader.js +418 -349
- package/lib/Downloader.js.map +1 -1
- package/lib/Dump.d.ts +24 -10
- package/lib/Dump.js +95 -50
- package/lib/Dump.js.map +1 -1
- package/lib/Gadgets.d.ts +2 -1
- package/lib/Gadgets.js +7 -5
- package/lib/Gadgets.js.map +1 -1
- package/lib/Logger.d.ts +6 -6
- package/lib/Logger.js +33 -33
- package/lib/Logger.js.map +1 -1
- package/lib/MediaWiki.d.ts +14 -31
- package/lib/MediaWiki.js +119 -172
- package/lib/MediaWiki.js.map +1 -1
- package/lib/RedisStore.d.ts +3 -3
- package/lib/RedisStore.js +21 -23
- package/lib/RedisStore.js.map +1 -1
- package/lib/S3.js +1 -1
- package/lib/S3.js.map +1 -1
- package/lib/Templates.d.ts +3 -10
- package/lib/Templates.js +5 -14
- package/lib/Templates.js.map +1 -1
- package/lib/cli.js +7 -6
- package/lib/cli.js.map +1 -1
- package/lib/config.d.ts +10 -16
- package/lib/config.js +33 -55
- package/lib/config.js.map +1 -1
- package/lib/error.manager.d.ts +2 -2
- package/lib/error.manager.js +42 -49
- package/lib/error.manager.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.js +53 -0
- package/lib/i18n.js.map +1 -0
- package/lib/mutex.d.ts +2 -1
- package/lib/mutex.js +2 -1
- package/lib/mutex.js.map +1 -1
- package/lib/mwoffliner.lib.js +370 -222
- package/lib/mwoffliner.lib.js.map +1 -1
- package/lib/parameterList.d.ts +20 -8
- package/lib/parameterList.js +30 -18
- package/lib/parameterList.js.map +1 -1
- package/lib/renderers/abstract.renderer.d.ts +48 -55
- package/lib/renderers/abstract.renderer.js +377 -98
- package/lib/renderers/abstract.renderer.js.map +1 -1
- package/lib/renderers/action-parse.renderer.d.ts +22 -3
- package/lib/renderers/action-parse.renderer.js +123 -81
- package/lib/renderers/action-parse.renderer.js.map +1 -1
- package/lib/renderers/renderer.builder.js +6 -69
- package/lib/renderers/renderer.builder.js.map +1 -1
- package/lib/renderers/rendering.context.d.ts +2 -3
- package/lib/renderers/rendering.context.js +6 -14
- package/lib/renderers/rendering.context.js.map +1 -1
- package/lib/sanitize-argument.d.ts +7 -4
- package/lib/sanitize-argument.js +99 -41
- package/lib/sanitize-argument.js.map +1 -1
- package/lib/util/FileManager.d.ts +36 -0
- package/lib/util/FileManager.js +246 -0
- package/lib/util/FileManager.js.map +1 -0
- package/lib/util/RedisKvs.js +4 -4
- package/lib/util/RedisKvs.js.map +1 -1
- package/lib/util/RedisQueue.js +1 -1
- package/lib/util/RedisQueue.js.map +1 -1
- package/lib/util/builders/url/action-parse.director.d.ts +2 -2
- package/lib/util/builders/url/action-parse.director.js +7 -7
- package/lib/util/builders/url/action-parse.director.js.map +1 -1
- package/lib/util/builders/url/api.director.d.ts +2 -4
- package/lib/util/builders/url/api.director.js +10 -17
- package/lib/util/builders/url/api.director.js.map +1 -1
- package/lib/util/builders/url/base.director.d.ts +0 -4
- package/lib/util/builders/url/base.director.js +0 -25
- package/lib/util/builders/url/base.director.js.map +1 -1
- package/lib/util/builders/url/basic.director.d.ts +1 -1
- package/lib/util/builders/url/basic.director.js +1 -1
- package/lib/util/builders/url/web.director.d.ts +1 -1
- package/lib/util/builders/url/web.director.js +2 -2
- package/lib/util/builders/url/web.director.js.map +1 -1
- package/lib/util/categories.d.ts +5 -5
- package/lib/util/categories.js +175 -174
- package/lib/util/categories.js.map +1 -1
- package/lib/util/const.d.ts +4 -8
- package/lib/util/const.js +9 -17
- package/lib/util/const.js.map +1 -1
- package/lib/util/customCssJs.d.ts +6 -0
- package/lib/util/customCssJs.js +70 -0
- package/lib/util/customCssJs.js.map +1 -0
- package/lib/util/dump.d.ts +15 -4
- package/lib/util/dump.js +282 -86
- package/lib/util/dump.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/metaData.js.map +1 -1
- package/lib/util/misc.d.ts +23 -13
- package/lib/util/misc.js +90 -59
- package/lib/util/misc.js.map +1 -1
- package/lib/util/mw-api.d.ts +7 -5
- package/lib/util/mw-api.js +167 -221
- package/lib/util/mw-api.js.map +1 -1
- package/lib/util/pageListMainPage.d.ts +3 -0
- package/lib/util/pageListMainPage.js +10 -0
- package/lib/util/pageListMainPage.js.map +1 -0
- package/lib/util/pages.d.ts +30 -0
- package/lib/util/pages.js +146 -0
- package/lib/util/pages.js.map +1 -0
- package/lib/util/rewriteUrls.d.ts +2 -2
- package/lib/util/rewriteUrls.js +33 -31
- package/lib/util/rewriteUrls.js.map +1 -1
- package/lib/util/savePages.d.ts +8 -0
- package/lib/util/savePages.js +182 -0
- package/lib/util/savePages.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/offliner-definition.json +178 -90
- package/package.json +50 -49
- package/res/page_list_home.js +20 -0
- package/res/{article_not_found.svg → page_not_found.svg} +1 -1
- package/res/script.js +30 -45
- package/res/style.css +52 -68
- package/res/templates/download_error_placeholder.html +7 -8
- package/res/templates/javaScript.html +19 -0
- package/res/templates/pageFallback.html +9 -7
- package/res/templates/pageVector2022.html +9 -7
- package/res/templates/pageVectorLegacy.html +9 -7
- package/res/templates/{article_list_home.html → page_list_home.html} +1 -2
- package/translation/ar.json +21 -21
- package/translation/bn.json +1 -1
- package/translation/de.json +46 -19
- package/translation/en.json +54 -21
- package/translation/es.json +17 -19
- package/translation/fi.json +23 -3
- package/translation/fr.json +57 -21
- package/translation/he.json +8 -6
- package/translation/ia.json +19 -19
- package/translation/id.json +13 -13
- package/translation/it.json +13 -8
- package/translation/ko.json +55 -3
- package/translation/lb.json +5 -2
- package/translation/mk.json +5 -5
- package/translation/nl.json +57 -22
- package/translation/or.json +2 -2
- package/translation/pt.json +2 -2
- package/translation/qqq.json +55 -22
- package/translation/ru.json +2 -2
- package/translation/sc.json +2 -2
- package/translation/sk.json +62 -0
- package/translation/sl.json +54 -21
- package/translation/sv.json +20 -19
- package/translation/sw.json +45 -2
- package/translation/zh-hans.json +56 -22
- package/translation/zh-hant.json +26 -19
- package/lib/renderers/abstractDesktop.render.d.ts +0 -12
- package/lib/renderers/abstractDesktop.render.js +0 -67
- package/lib/renderers/abstractDesktop.render.js.map +0 -1
- package/lib/renderers/abstractMobile.render.d.ts +0 -12
- package/lib/renderers/abstractMobile.render.js +0 -54
- package/lib/renderers/abstractMobile.render.js.map +0 -1
- package/lib/renderers/rest-api.renderer.d.ts +0 -7
- package/lib/renderers/rest-api.renderer.js +0 -68
- package/lib/renderers/rest-api.renderer.js.map +0 -1
- package/lib/renderers/visual-editor.renderer.d.ts +0 -7
- package/lib/renderers/visual-editor.renderer.js +0 -76
- package/lib/renderers/visual-editor.renderer.js.map +0 -1
- package/lib/renderers/wikimedia-desktop.renderer.d.ts +0 -4
- package/lib/renderers/wikimedia-desktop.renderer.js +0 -7
- package/lib/renderers/wikimedia-desktop.renderer.js.map +0 -1
- package/lib/renderers/wikimedia-mobile.renderer.d.ts +0 -19
- package/lib/renderers/wikimedia-mobile.renderer.js +0 -243
- package/lib/renderers/wikimedia-mobile.renderer.js.map +0 -1
- package/lib/util/articleListMainPage.d.ts +0 -3
- package/lib/util/articleListMainPage.js +0 -10
- package/lib/util/articleListMainPage.js.map +0 -1
- package/lib/util/articles.d.ts +0 -26
- package/lib/util/articles.js +0 -102
- package/lib/util/articles.js.map +0 -1
- package/lib/util/builders/url/desktop.director.d.ts +0 -8
- package/lib/util/builders/url/desktop.director.js +0 -15
- package/lib/util/builders/url/desktop.director.js.map +0 -1
- package/lib/util/builders/url/mobile.director.d.ts +0 -8
- package/lib/util/builders/url/mobile.director.js +0 -15
- package/lib/util/builders/url/mobile.director.js.map +0 -1
- package/lib/util/builders/url/rest-api.director.d.ts +0 -8
- package/lib/util/builders/url/rest-api.director.js +0 -18
- package/lib/util/builders/url/rest-api.director.js.map +0 -1
- package/lib/util/builders/url/visual-editor.director.d.ts +0 -9
- package/lib/util/builders/url/visual-editor.director.js +0 -18
- package/lib/util/builders/url/visual-editor.director.js.map +0 -1
- package/lib/util/saveArticles.d.ts +0 -8
- package/lib/util/saveArticles.js +0 -411
- package/lib/util/saveArticles.js.map +0 -1
- package/res/article_list_home.js +0 -24
- package/res/content.parsoid.css +0 -196
- package/res/inserted_style.css +0 -45
- package/res/templates/categories.html +0 -11
- package/res/templates/lead_section_wrapper.html +0 -6
- package/res/templates/pageWikimediaDesktop.html +0 -24
- package/res/templates/pageWikimediaMobile.html +0 -24
- package/res/templates/section_wrapper.html +0 -5
- package/res/templates/subcategories.html +0 -23
- package/res/templates/subpages.html +0 -17
- package/res/templates/subsection_wrapper.html +0 -5
- package/res/webpHandler.js +0 -165
- package/res/wm_mobile_override_script.js +0 -15
- package/res/wm_mobile_override_style.css +0 -20
- package/translation/br.json +0 -8
- package/translation/dag.json +0 -9
- package/translation/es-formal.json +0 -29
- package/translation/ha.json +0 -10
- package/translation/hi.json +0 -9
- package/translation/ig.json +0 -10
- package/translation/kaa.json +0 -9
- package/translation/nb.json +0 -9
- package/translation/nqo.json +0 -8
- package/translation/pt-br.json +0 -10
- package/translation/ro.json +0 -9
- package/translation/scn.json +0 -8
- package/translation/sq.json +0 -9
- package/translation/te.json +0 -9
- package/translation/tn.json +0 -9
- package/translation/tr.json +0 -10
package/jest.config.cjs
CHANGED
|
@@ -3,9 +3,10 @@ module.exports = {
|
|
|
3
3
|
moduleNameMapper: {
|
|
4
4
|
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
5
5
|
},
|
|
6
|
-
moduleFileExtensions: [
|
|
6
|
+
moduleFileExtensions: ['ts', 'js'],
|
|
7
7
|
collectCoverage: false,
|
|
8
8
|
verbose: true,
|
|
9
|
+
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts'],
|
|
9
10
|
transform: {
|
|
10
11
|
'^.+\\.ts?$': [
|
|
11
12
|
'ts-jest',
|
|
@@ -15,4 +16,3 @@ module.exports = {
|
|
|
15
16
|
],
|
|
16
17
|
},
|
|
17
18
|
}
|
|
18
|
-
|
package/lib/DOMUtils.js
CHANGED
package/lib/DOMUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DOMUtils.js","sourceRoot":"","sources":["../src/DOMUtils.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,UAAU,CAAC,IAAmB;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"DOMUtils.js","sourceRoot":"","sources":["../src/DOMUtils.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,UAAU,CAAC,IAAmB;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAmB,EAAE,IAAY,EAAE,GAAQ;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAe,CAAC,CAAA;IAC1C,CAAC;IAED,kBAAkB,CAAC,IAAmB;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAA;QAC9B,OAAO,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAC5D,OAAO,GAAG,OAAO,CAAC,WAAW,CAAA;QAC/B,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
package/lib/Downloader.d.ts
CHANGED
|
@@ -7,11 +7,13 @@ import ApiURLDirector from './util/builders/url/api.director.js';
|
|
|
7
7
|
import { Renderer } from './renderers/abstract.renderer.js';
|
|
8
8
|
interface DownloaderOpts {
|
|
9
9
|
uaString: string;
|
|
10
|
-
|
|
10
|
+
workers: number;
|
|
11
|
+
pageRequestInterval?: number;
|
|
11
12
|
reqTimeout: number;
|
|
12
13
|
optimisationCacheUrl: string;
|
|
13
14
|
s3?: S3;
|
|
14
15
|
webp: boolean;
|
|
16
|
+
trustedJs?: string[];
|
|
15
17
|
backoffOptions?: BackoffOptions;
|
|
16
18
|
insecure?: boolean;
|
|
17
19
|
}
|
|
@@ -41,76 +43,82 @@ export interface DownloadErrorContext {
|
|
|
41
43
|
declare class Downloader {
|
|
42
44
|
private static instance;
|
|
43
45
|
static getInstance(): Downloader;
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
+
private _workers;
|
|
47
|
+
private _pageRequestInterval;
|
|
46
48
|
private _webp;
|
|
47
49
|
private _requestTimeout;
|
|
48
50
|
private _basicRequestOptions;
|
|
49
51
|
private _arrayBufferRequestOptions;
|
|
50
52
|
private _jsonRequestOptions;
|
|
51
53
|
private _streamRequestOptions;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
trustedJs: string[];
|
|
55
|
+
customCssUrls: string[];
|
|
56
|
+
customJsUrls: string[];
|
|
57
|
+
mathJaxSource: string | null;
|
|
58
|
+
mathJaxConfig: string | null;
|
|
59
|
+
mathJaxConfigScript: string | null;
|
|
60
|
+
mathJaxEntryPoint: string;
|
|
61
|
+
mathJaxAllPages: boolean;
|
|
54
62
|
private uaString;
|
|
55
63
|
private backoffOptions;
|
|
56
64
|
private optimisationCacheUrl;
|
|
57
65
|
private s3;
|
|
58
66
|
private _apiUrlDirector;
|
|
59
67
|
private cookierJar;
|
|
60
|
-
private
|
|
61
|
-
private mainPageUrlDirector;
|
|
68
|
+
private pageUrlDirector;
|
|
62
69
|
private insecure;
|
|
63
|
-
get
|
|
70
|
+
get workers(): number;
|
|
71
|
+
get pageRequestInterval(): number;
|
|
64
72
|
get webp(): boolean;
|
|
65
73
|
get requestTimeout(): number;
|
|
66
|
-
get basicRequestOptions(): AxiosRequestConfig<any>;
|
|
67
|
-
get arrayBufferRequestOptions(): AxiosRequestConfig<any>;
|
|
68
|
-
get jsonRequestOptions(): AxiosRequestConfig<any>;
|
|
69
|
-
get streamRequestOptions(): AxiosRequestConfig<any>;
|
|
74
|
+
get basicRequestOptions(): AxiosRequestConfig<any, any>;
|
|
75
|
+
get arrayBufferRequestOptions(): AxiosRequestConfig<any, any>;
|
|
76
|
+
get jsonRequestOptions(): AxiosRequestConfig<any, any>;
|
|
77
|
+
get streamRequestOptions(): AxiosRequestConfig<any, any>;
|
|
70
78
|
get apiUrlDirector(): ApiURLDirector;
|
|
71
|
-
set init({ uaString,
|
|
79
|
+
set init({ uaString, workers, pageRequestInterval, reqTimeout, optimisationCacheUrl, s3, webp, trustedJs, backoffOptions, insecure, }: DownloaderOpts);
|
|
72
80
|
private reset;
|
|
81
|
+
/**
|
|
82
|
+
* Destroys HTTP agents to properly close all connections.
|
|
83
|
+
* This is required for tests to prevent "Jest environment has been torn down" errors.
|
|
84
|
+
* Safe to call multiple times (idempotent).
|
|
85
|
+
*/
|
|
86
|
+
destroy(): Promise<void>;
|
|
73
87
|
private getUrlDirector;
|
|
74
|
-
setUrlsDirectors(
|
|
75
|
-
|
|
76
|
-
getMainPageUrl(articleId: string): string;
|
|
88
|
+
setUrlsDirectors(pagesRenderer: Renderer): void;
|
|
89
|
+
getPageUrl(pageTitle: PageTitle, pageUrlOpts?: PageUrlOpts): string;
|
|
77
90
|
removeEtagWeakPrefix(etag: string): string;
|
|
78
91
|
querySiteInfo(): Promise<SiteInfoResponse>;
|
|
79
|
-
|
|
80
|
-
|
|
92
|
+
getPagesByTitle(pageTitles: PageTitle[], shouldGetThumbnail?: boolean, followRedirects?: boolean): Promise<QueryMwRet>;
|
|
93
|
+
getPagesByNamespace(namespace: number, requestGapcontinue?: string): Promise<{
|
|
81
94
|
gapContinue: string;
|
|
82
|
-
|
|
95
|
+
pages: QueryMwRet;
|
|
83
96
|
}>;
|
|
84
|
-
getLogEvents(letype: string,
|
|
85
|
-
|
|
97
|
+
getLogEvents(letype: string, pageTitle: PageTitle): Promise<any>;
|
|
98
|
+
getPage(pageTitle: PageTitle, pageRenderer: Renderer, pageUrl: any, dump: Dump, pageDetail?: PageDetail): Promise<RenderOutput>;
|
|
86
99
|
getJSON<T>(_url: string): Promise<T>;
|
|
87
100
|
request<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>;
|
|
88
101
|
get<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
|
|
89
102
|
post<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
|
|
90
|
-
downloadContent(_url: string, kind:
|
|
103
|
+
downloadContent(_url: string, kind: DownloadKind, retry?: boolean, requestedWidth?: number): Promise<{
|
|
91
104
|
content: Buffer | string;
|
|
92
105
|
contentType: string;
|
|
93
106
|
setCookie: string | null;
|
|
94
107
|
}>;
|
|
95
108
|
canGetUrl(url: string): Promise<boolean>;
|
|
96
109
|
private static handleMWWarningsAndErrors;
|
|
97
|
-
private
|
|
98
|
-
private setArticleSubCategories;
|
|
110
|
+
private getPageQueryOpts;
|
|
99
111
|
private getJSONCb;
|
|
100
112
|
private getImageMimeType;
|
|
113
|
+
private getSharpObject;
|
|
114
|
+
private compressDefault;
|
|
101
115
|
private getCompressedBody;
|
|
102
116
|
private getContentCb;
|
|
103
117
|
private downloadImage;
|
|
104
118
|
private errHandler;
|
|
105
|
-
private
|
|
119
|
+
private getCategoryMembers;
|
|
106
120
|
private backoffCall;
|
|
107
|
-
getModuleDependencies(title: string): Promise<{
|
|
108
|
-
jsConfigVars: string;
|
|
109
|
-
jsDependenciesList: string[];
|
|
110
|
-
styleDependenciesList: any[];
|
|
111
|
-
}>;
|
|
112
121
|
private streamToBuffer;
|
|
113
|
-
static extractJsConfigVars(headhtml: string): string;
|
|
114
122
|
}
|
|
115
123
|
export { Downloader as DownloaderClass };
|
|
116
124
|
declare const _default: Downloader;
|