chromiumly 2.5.1 → 2.7.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 +55 -35
- package/dist/chromium/converters/converter.d.ts +1 -1
- package/dist/chromium/converters/converter.js +1 -1
- package/dist/chromium/converters/converter.js.map +1 -1
- package/dist/chromium/converters/html.converter.d.ts +13 -4
- package/dist/chromium/converters/html.converter.js +9 -2
- package/dist/chromium/converters/html.converter.js.map +1 -1
- package/dist/chromium/converters/markdown.converter.d.ts +9 -4
- package/dist/chromium/converters/markdown.converter.js +7 -3
- package/dist/chromium/converters/markdown.converter.js.map +1 -1
- package/dist/chromium/converters/url.converter.d.ts +9 -4
- package/dist/chromium/converters/url.converter.js +6 -2
- package/dist/chromium/converters/url.converter.js.map +1 -1
- package/dist/chromium/index.d.ts +3 -3
- package/dist/chromium/index.js.map +1 -1
- package/dist/chromium/interfaces/common.types.d.ts +13 -0
- package/dist/chromium/interfaces/common.types.js +3 -0
- package/dist/chromium/interfaces/common.types.js.map +1 -0
- package/dist/chromium/interfaces/converter.types.d.ts +4 -10
- package/dist/chromium/utils/converter.utils.d.ts +2 -12
- package/dist/chromium/utils/converter.utils.js +36 -50
- package/dist/chromium/utils/converter.utils.js.map +1 -1
- package/dist/common/gotenberg.utils.d.ts +11 -1
- package/dist/common/gotenberg.utils.js +25 -2
- package/dist/common/gotenberg.utils.js.map +1 -1
- package/dist/common/index.d.ts +3 -3
- package/dist/common/index.js.map +1 -1
- package/dist/common/types.d.ts +1 -1
- package/dist/gotenberg.js +4 -3
- package/dist/gotenberg.js.map +1 -1
- package/dist/libre-office/index.d.ts +2 -2
- package/dist/libre-office/index.js.map +1 -1
- package/dist/libre-office/utils/constants.js +80 -76
- package/dist/libre-office/utils/constants.js.map +1 -1
- package/dist/libre-office/utils/libre-office.utils.d.ts +3 -3
- package/dist/libre-office/utils/libre-office.utils.js +5 -5
- package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
- package/dist/main.config.d.ts +1 -1
- package/dist/main.config.js +6 -6
- package/dist/main.config.js.map +1 -1
- package/dist/main.d.ts +3 -3
- package/dist/main.js.map +1 -1
- package/dist/pdf-engines/index.d.ts +1 -1
- package/dist/pdf-engines/index.js.map +1 -1
- package/dist/pdf-engines/pdf.engine.d.ts +3 -3
- package/dist/pdf-engines/pdf.engine.js +5 -5
- package/dist/pdf-engines/pdf.engine.js.map +1 -1
- package/dist/pdf-engines/utils/engine.utils.d.ts +2 -2
- package/dist/pdf-engines/utils/engine.utils.js +3 -3
- package/dist/pdf-engines/utils/engine.utils.js.map +1 -1
- package/package.json +25 -17
- package/src/.prettierrc.yml +4 -0
- package/src/chromium/converters/converter.ts +2 -2
- package/src/chromium/converters/html.converter.ts +40 -24
- package/src/chromium/converters/markdown.converter.ts +32 -26
- package/src/chromium/converters/tests/html.converter.test.ts +111 -68
- package/src/chromium/converters/tests/markdown.converter.test.ts +102 -77
- package/src/chromium/converters/tests/url.converter.test.ts +90 -66
- package/src/chromium/converters/url.converter.ts +31 -25
- package/src/chromium/index.ts +3 -3
- package/src/chromium/interfaces/common.types.ts +15 -0
- package/src/chromium/interfaces/converter.types.ts +4 -12
- package/src/chromium/utils/converter.utils.ts +67 -60
- package/src/chromium/utils/tests/converter.utils.test.ts +237 -167
- package/src/common/constants.ts +3 -3
- package/src/common/gotenberg.utils.ts +39 -8
- package/src/common/index.ts +3 -3
- package/src/common/tests/gotenberg.utils.test.ts +38 -31
- package/src/common/types.ts +2 -2
- package/src/gotenberg.ts +9 -9
- package/src/libre-office/index.ts +2 -2
- package/src/libre-office/utils/constants.ts +80 -76
- package/src/libre-office/utils/libre-office.utils.ts +21 -18
- package/src/libre-office/utils/tests/libre-office.utils.test.ts +58 -49
- package/src/main.config.ts +13 -13
- package/src/main.ts +3 -3
- package/src/pdf-engines/index.ts +1 -1
- package/src/pdf-engines/pdf.engine.ts +23 -19
- package/src/pdf-engines/tests/pdf.engine.test.ts +52 -49
- package/src/pdf-engines/utils/engine.utils.ts +12 -9
- package/src/pdf-engines/utils/tests/engine.utils.test.ts +23 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf-engines/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf-engines/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { PathLikeOrReadStream, PdfFormat } from
|
|
3
|
-
import { PageProperties } from
|
|
2
|
+
import { PathLikeOrReadStream, PdfFormat } from '../common';
|
|
3
|
+
import { PageProperties } from '../libre-office';
|
|
4
4
|
/**
|
|
5
5
|
* Class representing a PDF engine for various operations such as merging and conversion.
|
|
6
6
|
*/
|
|
@@ -26,7 +26,7 @@ export declare class PDFEngine {
|
|
|
26
26
|
* @param {boolean} [options.merge] - Indicates whether to merge the resulting PDFs.
|
|
27
27
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
28
28
|
*/
|
|
29
|
-
static convert({ files, properties, pdfFormat, pdfUA, merge
|
|
29
|
+
static convert({ files, properties, pdfFormat, pdfUA, merge }: {
|
|
30
30
|
files: PathLikeOrReadStream[];
|
|
31
31
|
properties?: PageProperties;
|
|
32
32
|
pdfFormat?: PdfFormat;
|
|
@@ -39,17 +39,17 @@ class PDFEngine {
|
|
|
39
39
|
* @param {boolean} [options.merge] - Indicates whether to merge the resulting PDFs.
|
|
40
40
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
41
41
|
*/
|
|
42
|
-
static convert({ files, properties, pdfFormat, pdfUA, merge
|
|
42
|
+
static convert({ files, properties, pdfFormat, pdfUA, merge }) {
|
|
43
43
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
const data = new form_data_1.default();
|
|
45
45
|
if (pdfFormat) {
|
|
46
|
-
data.append(
|
|
46
|
+
data.append('pdfa', pdfFormat);
|
|
47
47
|
}
|
|
48
48
|
if (pdfUA) {
|
|
49
|
-
data.append(
|
|
49
|
+
data.append('pdfUA', String(pdfUA));
|
|
50
50
|
}
|
|
51
51
|
if (merge) {
|
|
52
|
-
data.append(
|
|
52
|
+
data.append('merge', String(merge));
|
|
53
53
|
}
|
|
54
54
|
if (properties) {
|
|
55
55
|
libre_office_1.LibreOfficeUtils.addPageProperties(data, properties);
|
|
@@ -68,7 +68,7 @@ class PDFEngine {
|
|
|
68
68
|
*/
|
|
69
69
|
static generate(filename, buffer) {
|
|
70
70
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const __generated__ = path_1.default.resolve(process.cwd(),
|
|
71
|
+
const __generated__ = path_1.default.resolve(process.cwd(), '__generated__');
|
|
72
72
|
yield fs_1.promises.mkdir(path_1.default.resolve(__generated__), { recursive: true });
|
|
73
73
|
yield fs_1.promises.writeFile(path_1.default.resolve(__generated__, filename), buffer);
|
|
74
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.engine.js","sourceRoot":"","sources":["../../src/pdf-engines/pdf.engine.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"pdf.engine.js","sourceRoot":"","sources":["../../src/pdf-engines/pdf.engine.ts"],"names":[],"mappings":";;;;AAAA,2BAA8B;AAC9B,wDAAwB;AAExB,kEAAiC;AAEjC,gDAA4C;AAC5C,sCAA4E;AAC5E,kDAAmE;AACnE,uDAAsD;AAEtD;;GAEG;AACH,MAAa,SAAS;IAClB;;;;;;OAMG;IACI,MAAM,CAAO,KAAK,CAAC,EACtB,KAAK,EAGR;;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAC5B,MAAM,6BAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,wBAAU,CAAC,kBAAkB,IAAI,wBAAU,CAAC,gBAAgB,IAAI,wBAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACzH,OAAO,uBAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAO,OAAO,CAAC,EACxB,KAAK,EACL,UAAU,EACV,SAAS,EACT,KAAK,EACL,KAAK,EAOR;;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACb,+BAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,+BAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,GAAG,wBAAU,CAAC,kBAAkB,IAAI,wBAAU,CAAC,iBAAiB,IAAI,wBAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAE9H,OAAO,uBAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAED;;;;;;OAMG;IACI,MAAM,CAAO,QAAQ,CACxB,QAAgB,EAChB,MAAc;;YAEd,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YACnE,MAAM,aAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,MAAM,aAAQ,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;KAAA;CACJ;AAnFD,8BAmFC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import FormData from
|
|
2
|
-
import { PathLikeOrReadStream } from
|
|
1
|
+
import FormData from 'form-data';
|
|
2
|
+
import { PathLikeOrReadStream } from '../../common';
|
|
3
3
|
/**
|
|
4
4
|
* Utility class for handling common tasks related to PDF engine operations.
|
|
5
5
|
*/
|
|
@@ -20,16 +20,16 @@ class PDFEngineUtils {
|
|
|
20
20
|
for (const [key, file] of files.entries()) {
|
|
21
21
|
const filename = `file${key}.pdf`;
|
|
22
22
|
if (Buffer.isBuffer(file)) {
|
|
23
|
-
data.append(
|
|
23
|
+
data.append('files', file, filename);
|
|
24
24
|
}
|
|
25
25
|
else if (file instanceof fs_1.ReadStream) {
|
|
26
|
-
data.append(
|
|
26
|
+
data.append('files', file, filename);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
29
|
yield fs_1.promises.access(file, fs_1.constants.R_OK);
|
|
30
30
|
const filename = path_1.default.basename(file.toString());
|
|
31
31
|
const extension = path_1.default.extname(filename);
|
|
32
|
-
if (extension ===
|
|
32
|
+
if (extension === '.pdf') {
|
|
33
33
|
data.append(filename, (0, fs_1.createReadStream)(file));
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../src/pdf-engines/utils/engine.utils.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../src/pdf-engines/utils/engine.utils.ts"],"names":[],"mappings":";;;;AAAA,2BAAuE;AACvE,wDAAwB;AAKxB;;GAEG;AACH,MAAa,cAAc;IACvB;;;;;;OAMG;IACI,MAAM,CAAO,QAAQ,CACxB,KAA6B,EAC7B,IAAc;;YAEd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;gBAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,IAAI,YAAY,eAAU,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,MAAM,aAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChD,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACzC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAA,qBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;KAAA;CACJ;AA9BD,wCA8BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chromiumly",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "A lightweight Typescript library that interacts with Gotenberg's different modules to convert a variety of document formats to PDF files.",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"types": "dist/main.d.ts",
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
"build": "yarn clean && tsc -p tsconfig.json",
|
|
32
32
|
"test": "jest --runInBand --ci --coverage --reporters=default --reporters=jest-junit",
|
|
33
33
|
"commit": "git-cz",
|
|
34
|
-
"
|
|
34
|
+
"format": "yarn prettier . -w",
|
|
35
|
+
"release": "release-it",
|
|
36
|
+
"prepare": "husky"
|
|
35
37
|
},
|
|
36
38
|
"config": {
|
|
37
39
|
"commitizen": {
|
|
@@ -40,35 +42,41 @@
|
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
42
44
|
"@babel/preset-typescript": "7.23.3",
|
|
43
|
-
"@commitlint/cli": "
|
|
44
|
-
"@commitlint/config-conventional": "
|
|
45
|
-
"@commitlint/cz-commitlint": "^
|
|
45
|
+
"@commitlint/cli": "^19.0.3",
|
|
46
|
+
"@commitlint/config-conventional": "^19.0.3",
|
|
47
|
+
"@commitlint/cz-commitlint": "^19.0.3",
|
|
46
48
|
"@release-it/conventional-changelog": "8.0.1",
|
|
47
49
|
"@types/config": "3.3.3",
|
|
48
50
|
"@types/dotenv": "8.2.0",
|
|
49
51
|
"@types/form-data": "2.5.0",
|
|
50
|
-
"@types/jest": "29.5.
|
|
51
|
-
"@types/node": "20.
|
|
52
|
-
"@types/node-fetch": "2.6.
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "
|
|
54
|
-
"@typescript-eslint/parser": "
|
|
52
|
+
"@types/jest": "29.5.12",
|
|
53
|
+
"@types/node": "20.11.20",
|
|
54
|
+
"@types/node-fetch": "2.6.11",
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "7.1.0",
|
|
56
|
+
"@typescript-eslint/parser": "7.1.0",
|
|
55
57
|
"commitizen": "4.3.0",
|
|
56
|
-
"eslint": "8.
|
|
57
|
-
"
|
|
58
|
+
"eslint": "8.57.0",
|
|
59
|
+
"eslint-config-prettier": "^9.1.0",
|
|
60
|
+
"husky": "^9.0.11",
|
|
58
61
|
"inquirer": "8",
|
|
59
62
|
"jest": "29.7.0",
|
|
60
63
|
"jest-junit": "16.0.0",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
+
"lint-staged": "^15.2.2",
|
|
65
|
+
"prettier": "3.2.5",
|
|
66
|
+
"release-it": "17.1.1",
|
|
67
|
+
"ts-jest": "29.1.2",
|
|
68
|
+
"ts-node": "10.9.2",
|
|
64
69
|
"tslib": "2.6.2",
|
|
65
70
|
"typescript": "5.3.3"
|
|
66
71
|
},
|
|
67
72
|
"dependencies": {
|
|
68
|
-
"config": "3.3.
|
|
69
|
-
"dotenv": "16.
|
|
73
|
+
"config": "3.3.11",
|
|
74
|
+
"dotenv": "16.4.5",
|
|
70
75
|
"file-type": "16.5.4",
|
|
71
76
|
"form-data": "4.0.0",
|
|
72
77
|
"node-fetch": "2.7.0"
|
|
78
|
+
},
|
|
79
|
+
"lint-staged": {
|
|
80
|
+
"**/*": "prettier --write --ignore-unknown"
|
|
73
81
|
}
|
|
74
82
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {Chromiumly, ChromiumRoute} from
|
|
1
|
+
import { Chromiumly, ChromiumRoute } from '../../main.config';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Abstract class representing a generic converter.
|
|
@@ -17,6 +17,6 @@ export abstract class Converter {
|
|
|
17
17
|
* @param {ChromiumRoute} route - The ChromiumRoute enum value representing the conversion route.
|
|
18
18
|
*/
|
|
19
19
|
constructor(route: ChromiumRoute) {
|
|
20
|
-
this.endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.
|
|
20
|
+
this.endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.CHROMIUM_CONVERT_PATH}/${Chromiumly.CHROMIUM_ROUTES[route]}`;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import FormData from
|
|
1
|
+
import FormData from 'form-data';
|
|
2
2
|
|
|
3
|
-
import {GotenbergUtils, PathLikeOrReadStream, PdfFormat} from
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from
|
|
8
|
-
import {
|
|
9
|
-
import {Converter} from "./converter";
|
|
10
|
-
import {ChromiumRoute} from "../../main.config";
|
|
3
|
+
import { GotenbergUtils, PathLikeOrReadStream, PdfFormat } from '../../common';
|
|
4
|
+
import { PageProperties } from '../interfaces/converter.types';
|
|
5
|
+
import { ConverterUtils } from '../utils/converter.utils';
|
|
6
|
+
import { Converter } from './converter';
|
|
7
|
+
import { ChromiumRoute } from '../../main.config';
|
|
8
|
+
import { EmulatedMediaType } from '../interfaces/common.types';
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* Class representing an HTML converter that extends the base Converter class.
|
|
@@ -39,24 +37,30 @@ export class HtmlConverter extends Converter {
|
|
|
39
37
|
* @param {string} [options.waitForExpression] - JavaScript expression to wait for before completing the conversion.
|
|
40
38
|
* @param {string} [options.userAgent] - User agent string to use during the conversion.
|
|
41
39
|
* @param {Record<string, string>} [options.extraHttpHeaders] - Additional HTTP headers for the conversion.
|
|
40
|
+
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
42
41
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
42
|
+
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
43
43
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
44
44
|
*/
|
|
45
45
|
async convert({
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
html,
|
|
47
|
+
assets,
|
|
48
|
+
header,
|
|
49
|
+
footer,
|
|
50
|
+
properties,
|
|
51
|
+
pdfFormat,
|
|
52
|
+
pdfUA,
|
|
53
|
+
emulatedMediaType,
|
|
54
|
+
waitDelay,
|
|
55
|
+
waitForExpression,
|
|
56
|
+
userAgent,
|
|
57
|
+
extraHttpHeaders,
|
|
58
|
+
failOnHttpStatusCodes,
|
|
59
|
+
failOnConsoleExceptions,
|
|
60
|
+
skipNetworkIdleEvent
|
|
61
|
+
}: {
|
|
59
62
|
html: PathLikeOrReadStream;
|
|
63
|
+
assets?: { file: PathLikeOrReadStream; name: string }[];
|
|
60
64
|
header?: PathLikeOrReadStream;
|
|
61
65
|
footer?: PathLikeOrReadStream;
|
|
62
66
|
properties?: PageProperties;
|
|
@@ -67,11 +71,21 @@ export class HtmlConverter extends Converter {
|
|
|
67
71
|
waitForExpression?: string;
|
|
68
72
|
userAgent?: string;
|
|
69
73
|
extraHttpHeaders?: Record<string, string>;
|
|
74
|
+
failOnHttpStatusCodes?: number[];
|
|
70
75
|
failOnConsoleExceptions?: boolean;
|
|
76
|
+
skipNetworkIdleEvent?: boolean;
|
|
71
77
|
}): Promise<Buffer> {
|
|
72
78
|
const data = new FormData();
|
|
73
79
|
|
|
74
|
-
await
|
|
80
|
+
await GotenbergUtils.addFile(data, html, 'index.html');
|
|
81
|
+
|
|
82
|
+
if (assets?.length) {
|
|
83
|
+
await Promise.all(
|
|
84
|
+
assets.map(({ file, name }) =>
|
|
85
|
+
GotenbergUtils.addFile(data, file, name)
|
|
86
|
+
)
|
|
87
|
+
);
|
|
88
|
+
}
|
|
75
89
|
|
|
76
90
|
await ConverterUtils.customize(data, {
|
|
77
91
|
header,
|
|
@@ -84,9 +98,11 @@ export class HtmlConverter extends Converter {
|
|
|
84
98
|
waitForExpression,
|
|
85
99
|
userAgent,
|
|
86
100
|
extraHttpHeaders,
|
|
101
|
+
failOnHttpStatusCodes,
|
|
87
102
|
failOnConsoleExceptions,
|
|
103
|
+
skipNetworkIdleEvent
|
|
88
104
|
});
|
|
89
105
|
|
|
90
106
|
return GotenbergUtils.fetch(this.endpoint, data);
|
|
91
107
|
}
|
|
92
|
-
}
|
|
108
|
+
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import FormData from
|
|
1
|
+
import FormData from 'form-data';
|
|
2
2
|
|
|
3
|
-
import {GotenbergUtils, PdfFormat, PathLikeOrReadStream} from
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from
|
|
8
|
-
import {
|
|
9
|
-
import {Converter} from "./converter";
|
|
10
|
-
import {ChromiumRoute} from "../../main.config";
|
|
3
|
+
import { GotenbergUtils, PdfFormat, PathLikeOrReadStream } from '../../common';
|
|
4
|
+
import { PageProperties } from '../interfaces/converter.types';
|
|
5
|
+
import { ConverterUtils } from '../utils/converter.utils';
|
|
6
|
+
import { Converter } from './converter';
|
|
7
|
+
import { ChromiumRoute } from '../../main.config';
|
|
8
|
+
import { EmulatedMediaType } from '../interfaces/common.types';
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* Class representing a Markdown converter that extends the base Converter class.
|
|
@@ -40,24 +38,28 @@ export class MarkdownConverter extends Converter {
|
|
|
40
38
|
* @param {string} [options.waitForExpression] - JavaScript expression to wait for before completing the conversion.
|
|
41
39
|
* @param {string} [options.userAgent] - User agent string to use during the conversion.
|
|
42
40
|
* @param {Record<string, string>} [options.extraHttpHeaders] - Additional HTTP headers for the conversion.
|
|
41
|
+
* @param {number []} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
43
42
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
43
|
+
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
44
44
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
45
45
|
*/
|
|
46
46
|
async convert({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
html,
|
|
48
|
+
markdown,
|
|
49
|
+
header,
|
|
50
|
+
footer,
|
|
51
|
+
properties,
|
|
52
|
+
pdfFormat,
|
|
53
|
+
pdfUA,
|
|
54
|
+
emulatedMediaType,
|
|
55
|
+
waitDelay,
|
|
56
|
+
waitForExpression,
|
|
57
|
+
userAgent,
|
|
58
|
+
extraHttpHeaders,
|
|
59
|
+
failOnHttpStatusCodes,
|
|
60
|
+
failOnConsoleExceptions,
|
|
61
|
+
skipNetworkIdleEvent
|
|
62
|
+
}: {
|
|
61
63
|
html: PathLikeOrReadStream;
|
|
62
64
|
markdown: PathLikeOrReadStream;
|
|
63
65
|
header?: PathLikeOrReadStream;
|
|
@@ -70,13 +72,15 @@ export class MarkdownConverter extends Converter {
|
|
|
70
72
|
waitForExpression?: string;
|
|
71
73
|
userAgent?: string;
|
|
72
74
|
extraHttpHeaders?: Record<string, string>;
|
|
75
|
+
failOnHttpStatusCodes?: number[];
|
|
73
76
|
failOnConsoleExceptions?: boolean;
|
|
77
|
+
skipNetworkIdleEvent?: boolean;
|
|
74
78
|
}): Promise<Buffer> {
|
|
75
79
|
const data = new FormData();
|
|
76
80
|
|
|
77
|
-
await
|
|
81
|
+
await GotenbergUtils.addFile(data, html, 'index.html');
|
|
78
82
|
|
|
79
|
-
await
|
|
83
|
+
await GotenbergUtils.addFile(data, markdown, 'file.md');
|
|
80
84
|
|
|
81
85
|
await ConverterUtils.customize(data, {
|
|
82
86
|
header,
|
|
@@ -89,9 +93,11 @@ export class MarkdownConverter extends Converter {
|
|
|
89
93
|
waitForExpression,
|
|
90
94
|
userAgent,
|
|
91
95
|
extraHttpHeaders,
|
|
96
|
+
failOnHttpStatusCodes,
|
|
92
97
|
failOnConsoleExceptions,
|
|
98
|
+
skipNetworkIdleEvent
|
|
93
99
|
});
|
|
94
100
|
|
|
95
101
|
return GotenbergUtils.fetch(this.endpoint, data);
|
|
96
102
|
}
|
|
97
|
-
}
|
|
103
|
+
}
|