chromiumly 2.8.0 → 2.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.
- package/README.md +36 -0
- package/dist/chromium/converters/html.converter.d.ts +12 -2
- package/dist/chromium/converters/html.converter.js +5 -3
- package/dist/chromium/converters/html.converter.js.map +1 -1
- package/dist/chromium/converters/markdown.converter.d.ts +12 -2
- package/dist/chromium/converters/markdown.converter.js +5 -3
- package/dist/chromium/converters/markdown.converter.js.map +1 -1
- package/dist/chromium/converters/url.converter.d.ts +12 -2
- package/dist/chromium/converters/url.converter.js +5 -3
- package/dist/chromium/converters/url.converter.js.map +1 -1
- package/dist/chromium/interfaces/converter.types.d.ts +2 -1
- package/dist/chromium/screenshots/html.screenshot.js +2 -2
- package/dist/chromium/screenshots/html.screenshot.js.map +1 -1
- package/dist/chromium/screenshots/markdown.screenshot.js +2 -2
- package/dist/chromium/screenshots/markdown.screenshot.js.map +1 -1
- package/dist/chromium/screenshots/url.screenshot.js +2 -2
- package/dist/chromium/screenshots/url.screenshot.js.map +1 -1
- package/dist/chromium/utils/converter.utils.js +3 -0
- package/dist/chromium/utils/converter.utils.js.map +1 -1
- package/dist/common/constants.d.ts +4 -0
- package/dist/common/constants.js +4 -0
- package/dist/common/constants.js.map +1 -1
- package/dist/common/index.d.ts +1 -1
- package/dist/common/types.d.ts +3 -0
- package/dist/libre-office/utils/constants.js +2 -1
- package/dist/libre-office/utils/constants.js.map +1 -1
- package/dist/main.config.d.ts +5 -1
- package/dist/main.config.js +5 -1
- package/dist/main.config.js.map +1 -1
- package/dist/pdf-engines/pdf.engine.d.ts +23 -1
- package/dist/pdf-engines/pdf.engine.js +34 -4
- package/dist/pdf-engines/pdf.engine.js.map +1 -1
- package/package.json +7 -7
- package/src/chromium/converters/html.converter.ts +20 -3
- package/src/chromium/converters/markdown.converter.ts +20 -3
- package/src/chromium/converters/url.converter.ts +20 -3
- package/src/chromium/interfaces/converter.types.ts +2 -1
- package/src/chromium/utils/converter.utils.ts +3 -0
- package/src/chromium/utils/tests/converter.utils.test.ts +21 -2
- package/src/common/constants.ts +4 -0
- package/src/common/index.ts +1 -1
- package/src/common/types.ts +4 -0
- package/src/libre-office/utils/constants.ts +2 -1
- package/src/main.config.ts +6 -2
- package/src/pdf-engines/pdf.engine.ts +52 -1
- package/src/pdf-engines/tests/pdf.engine.test.ts +36 -0
package/README.md
CHANGED
|
@@ -209,6 +209,7 @@ type ConversionOptions = {
|
|
|
209
209
|
failOnHttpStatusCodes?: number[]; // List of HTTP status codes triggering a 409 Conflict response (default [499, 599])
|
|
210
210
|
failOnConsoleExceptions?: boolean; // Return a 409 Conflict response if there are exceptions in the Chromium console (default false)
|
|
211
211
|
skipNetworkIdleEvent?: boolean; // Do not wait for Chromium network to be idle (default false)
|
|
212
|
+
metadata?: Metadata; // Metadata to be written.
|
|
212
213
|
};
|
|
213
214
|
```
|
|
214
215
|
|
|
@@ -283,6 +284,41 @@ const buffer = await PDFEngine.merge({
|
|
|
283
284
|
});
|
|
284
285
|
```
|
|
285
286
|
|
|
287
|
+
#### readMetadata
|
|
288
|
+
|
|
289
|
+
This method reads metadata from the provided PDF files.
|
|
290
|
+
|
|
291
|
+
```typescript
|
|
292
|
+
import { PDFEngine } from "chromiumly";
|
|
293
|
+
|
|
294
|
+
const metadataBuffer = await PDFEngine.readMetadata([
|
|
295
|
+
"path/to/file_1.pdf",
|
|
296
|
+
"path/to/file_2.pdf",
|
|
297
|
+
]);
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
#### writeMetadata
|
|
301
|
+
|
|
302
|
+
This method writes metadata to the provided PDF files.
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
import { PDFEngine } from "chromiumly";
|
|
306
|
+
|
|
307
|
+
const buffer = await PDFEngine.writeMetadata({
|
|
308
|
+
files: [
|
|
309
|
+
"path/to/file_1.pdf",
|
|
310
|
+
"path/to/file_2.pdf",
|
|
311
|
+
],
|
|
312
|
+
metadata: {
|
|
313
|
+
Author: 'Taha Cherfia',
|
|
314
|
+
Tite: 'Chromiumly'
|
|
315
|
+
Keywords: ['pdf', 'html', 'gotenberg'],
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Please consider referring to [ExifTool](https://exiftool.org/TagNames/XMP.html#pdf) for a comprehensive list of accessible metadata options.
|
|
321
|
+
|
|
286
322
|
#### generate
|
|
287
323
|
|
|
288
324
|
It is just a generic complementary method that takes the `buffer` returned by the `convert` method, and a
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { PathLikeOrReadStream, PdfFormat } from '../../common';
|
|
2
|
+
import { Metadata, PathLikeOrReadStream, PdfFormat } from '../../common';
|
|
3
3
|
import { PageProperties } from '../interfaces/converter.types';
|
|
4
4
|
import { Converter } from './converter';
|
|
5
5
|
import { EmulatedMediaType } from '../interfaces/common.types';
|
|
@@ -33,9 +33,10 @@ export declare class HtmlConverter extends Converter {
|
|
|
33
33
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
34
34
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
35
35
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
36
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
36
37
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
37
38
|
*/
|
|
38
|
-
convert({ html, assets, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }: {
|
|
39
|
+
convert({ html, assets, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }: {
|
|
39
40
|
html: PathLikeOrReadStream;
|
|
40
41
|
assets?: {
|
|
41
42
|
file: PathLikeOrReadStream;
|
|
@@ -44,15 +45,24 @@ export declare class HtmlConverter extends Converter {
|
|
|
44
45
|
header?: PathLikeOrReadStream;
|
|
45
46
|
footer?: PathLikeOrReadStream;
|
|
46
47
|
properties?: PageProperties;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
50
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
51
|
+
*/
|
|
47
52
|
pdfFormat?: PdfFormat;
|
|
48
53
|
pdfUA?: boolean;
|
|
49
54
|
emulatedMediaType?: EmulatedMediaType;
|
|
50
55
|
waitDelay?: string;
|
|
51
56
|
waitForExpression?: string;
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
59
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
60
|
+
*/
|
|
52
61
|
userAgent?: string;
|
|
53
62
|
extraHttpHeaders?: Record<string, string>;
|
|
54
63
|
failOnHttpStatusCodes?: number[];
|
|
55
64
|
failOnConsoleExceptions?: boolean;
|
|
56
65
|
skipNetworkIdleEvent?: boolean;
|
|
66
|
+
metadata?: Metadata;
|
|
57
67
|
}): Promise<Buffer>;
|
|
58
68
|
}
|
|
@@ -39,10 +39,11 @@ class HtmlConverter extends converter_1.Converter {
|
|
|
39
39
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
40
40
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
41
41
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
42
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
42
43
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
43
44
|
*/
|
|
44
|
-
convert(
|
|
45
|
-
return tslib_1.__awaiter(this,
|
|
45
|
+
convert(_a) {
|
|
46
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ html, assets, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }) {
|
|
46
47
|
const data = new form_data_1.default();
|
|
47
48
|
yield common_1.GotenbergUtils.addFile(data, html, 'index.html');
|
|
48
49
|
if (assets === null || assets === void 0 ? void 0 : assets.length) {
|
|
@@ -61,7 +62,8 @@ class HtmlConverter extends converter_1.Converter {
|
|
|
61
62
|
extraHttpHeaders,
|
|
62
63
|
failOnHttpStatusCodes,
|
|
63
64
|
failOnConsoleExceptions,
|
|
64
|
-
skipNetworkIdleEvent
|
|
65
|
+
skipNetworkIdleEvent,
|
|
66
|
+
metadata
|
|
65
67
|
});
|
|
66
68
|
return common_1.GotenbergUtils.fetch(this.endpoint, data);
|
|
67
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/html.converter.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,
|
|
1
|
+
{"version":3,"file":"html.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/html.converter.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAKsB;AAEtB,8DAA0D;AAC1D,2CAAwC;AACxC,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,qBAAS;IACxC;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO;qEAAC,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,QAAQ,EA0BX;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEvD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,CAAC;gBACjB,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAC1B,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAC3C,CACJ,CAAC;YACN,CAAC;YAED,MAAM,gCAAc,CAAC,SAAS,CAAC,IAAI,EAAE;gBACjC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,SAAS;gBACT,KAAK;gBACL,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,SAAS;gBACT,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,QAAQ;aACX,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AAxGD,sCAwGC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { PdfFormat, PathLikeOrReadStream } from '../../common';
|
|
2
|
+
import { PdfFormat, PathLikeOrReadStream, Metadata } from '../../common';
|
|
3
3
|
import { PageProperties } from '../interfaces/converter.types';
|
|
4
4
|
import { Converter } from './converter';
|
|
5
5
|
import { EmulatedMediaType } from '../interfaces/common.types';
|
|
@@ -34,23 +34,33 @@ export declare class MarkdownConverter extends Converter {
|
|
|
34
34
|
* @param {number []} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
35
35
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
36
36
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
37
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
37
38
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
38
39
|
*/
|
|
39
|
-
convert({ html, markdown, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }: {
|
|
40
|
+
convert({ html, markdown, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }: {
|
|
40
41
|
html: PathLikeOrReadStream;
|
|
41
42
|
markdown: PathLikeOrReadStream;
|
|
42
43
|
header?: PathLikeOrReadStream;
|
|
43
44
|
footer?: PathLikeOrReadStream;
|
|
44
45
|
properties?: PageProperties;
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
48
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
49
|
+
*/
|
|
45
50
|
pdfFormat?: PdfFormat;
|
|
46
51
|
pdfUA?: boolean;
|
|
47
52
|
emulatedMediaType?: EmulatedMediaType;
|
|
48
53
|
waitDelay?: string;
|
|
49
54
|
waitForExpression?: string;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
57
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
58
|
+
*/
|
|
50
59
|
userAgent?: string;
|
|
51
60
|
extraHttpHeaders?: Record<string, string>;
|
|
52
61
|
failOnHttpStatusCodes?: number[];
|
|
53
62
|
failOnConsoleExceptions?: boolean;
|
|
54
63
|
skipNetworkIdleEvent?: boolean;
|
|
64
|
+
metadata?: Metadata;
|
|
55
65
|
}): Promise<Buffer>;
|
|
56
66
|
}
|
|
@@ -40,10 +40,11 @@ class MarkdownConverter extends converter_1.Converter {
|
|
|
40
40
|
* @param {number []} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
41
41
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
42
42
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
43
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
43
44
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
44
45
|
*/
|
|
45
|
-
convert(
|
|
46
|
-
return tslib_1.__awaiter(this,
|
|
46
|
+
convert(_a) {
|
|
47
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ html, markdown, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }) {
|
|
47
48
|
const data = new form_data_1.default();
|
|
48
49
|
yield common_1.GotenbergUtils.addFile(data, html, 'index.html');
|
|
49
50
|
yield common_1.GotenbergUtils.addFile(data, markdown, 'file.md');
|
|
@@ -60,7 +61,8 @@ class MarkdownConverter extends converter_1.Converter {
|
|
|
60
61
|
extraHttpHeaders,
|
|
61
62
|
failOnHttpStatusCodes,
|
|
62
63
|
failOnConsoleExceptions,
|
|
63
|
-
skipNetworkIdleEvent
|
|
64
|
+
skipNetworkIdleEvent,
|
|
65
|
+
metadata
|
|
64
66
|
});
|
|
65
67
|
return common_1.GotenbergUtils.fetch(this.endpoint, data);
|
|
66
68
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/markdown.converter.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,
|
|
1
|
+
{"version":3,"file":"markdown.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/markdown.converter.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAKsB;AAEtB,8DAA0D;AAC1D,2CAAwC;AACxC,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,iBAAkB,SAAQ,qBAAS;IAC5C;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO;qEAAC,EACV,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,QAAQ,EA0BX;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEvD,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAExD,MAAM,gCAAc,CAAC,SAAS,CAAC,IAAI,EAAE;gBACjC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,SAAS;gBACT,KAAK;gBACL,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,SAAS;gBACT,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,QAAQ;aACX,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AAnGD,8CAmGC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { PdfFormat, PathLikeOrReadStream } from '../../common';
|
|
2
|
+
import { PdfFormat, PathLikeOrReadStream, Metadata } from '../../common';
|
|
3
3
|
import { PageProperties } from '../interfaces/converter.types';
|
|
4
4
|
import { Converter } from './converter';
|
|
5
5
|
import { EmulatedMediaType } from '../interfaces/common.types';
|
|
@@ -33,22 +33,32 @@ export declare class UrlConverter extends Converter {
|
|
|
33
33
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
34
34
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
35
35
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
36
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
36
37
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
37
38
|
*/
|
|
38
|
-
convert({ url, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }: {
|
|
39
|
+
convert({ url, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }: {
|
|
39
40
|
url: string;
|
|
40
41
|
header?: PathLikeOrReadStream;
|
|
41
42
|
footer?: PathLikeOrReadStream;
|
|
42
43
|
properties?: PageProperties;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
46
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
47
|
+
*/
|
|
43
48
|
pdfFormat?: PdfFormat;
|
|
44
49
|
pdfUA?: boolean;
|
|
45
50
|
emulatedMediaType?: EmulatedMediaType;
|
|
46
51
|
waitDelay?: string;
|
|
47
52
|
waitForExpression?: string;
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
55
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
56
|
+
*/
|
|
48
57
|
userAgent?: string;
|
|
49
58
|
extraHttpHeaders?: Record<string, string>;
|
|
50
59
|
failOnHttpStatusCodes?: number[];
|
|
51
60
|
failOnConsoleExceptions?: boolean;
|
|
52
61
|
skipNetworkIdleEvent?: boolean;
|
|
62
|
+
metadata?: Metadata;
|
|
53
63
|
}): Promise<Buffer>;
|
|
54
64
|
}
|
|
@@ -40,10 +40,11 @@ class UrlConverter extends converter_1.Converter {
|
|
|
40
40
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
41
41
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
42
42
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
43
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
43
44
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
44
45
|
*/
|
|
45
|
-
convert(
|
|
46
|
-
return tslib_1.__awaiter(this,
|
|
46
|
+
convert(_a) {
|
|
47
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ url, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, metadata }) {
|
|
47
48
|
const _url = new url_1.URL(url);
|
|
48
49
|
const data = new form_data_1.default();
|
|
49
50
|
data.append('url', _url.href);
|
|
@@ -60,7 +61,8 @@ class UrlConverter extends converter_1.Converter {
|
|
|
60
61
|
extraHttpHeaders,
|
|
61
62
|
failOnHttpStatusCodes,
|
|
62
63
|
failOnConsoleExceptions,
|
|
63
|
-
skipNetworkIdleEvent
|
|
64
|
+
skipNetworkIdleEvent,
|
|
65
|
+
metadata
|
|
64
66
|
});
|
|
65
67
|
return common_1.GotenbergUtils.fetch(this.endpoint, data);
|
|
66
68
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/url.converter.ts"],"names":[],"mappings":";;;;AAAA,6BAA0B;AAC1B,kEAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"url.converter.js","sourceRoot":"","sources":["../../../src/chromium/converters/url.converter.ts"],"names":[],"mappings":";;;;AAAA,6BAA0B;AAC1B,kEAAiC;AACjC,yCAKsB;AAEtB,8DAA0D;AAC1D,2CAAwC;AACxC,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,YAAa,SAAQ,qBAAS;IACvC;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO;qEAAC,EACV,GAAG,EACH,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,QAAQ,EAyBX;YACG,MAAM,IAAI,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9B,MAAM,gCAAc,CAAC,SAAS,CAAC,IAAI,EAAE;gBACjC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,SAAS;gBACT,KAAK;gBACL,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,SAAS;gBACT,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,QAAQ;aACX,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AA/FD,oCA+FC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PdfFormat } from '../../common';
|
|
1
|
+
import { Metadata, PdfFormat } from '../../common';
|
|
2
2
|
import { ChromiumOptions } from './common.types';
|
|
3
3
|
type PageSize = {
|
|
4
4
|
width: number;
|
|
@@ -29,5 +29,6 @@ export type ConversionOptions = ChromiumOptions & {
|
|
|
29
29
|
pdfFormat?: PdfFormat;
|
|
30
30
|
pdfUA?: boolean;
|
|
31
31
|
userAgent?: string;
|
|
32
|
+
metadata?: Metadata;
|
|
32
33
|
};
|
|
33
34
|
export {};
|
|
@@ -39,8 +39,8 @@ class HtmlScreenshot extends screenshot_1.Screenshot {
|
|
|
39
39
|
* @param {boolean} [options.optimizeForSpeed] - Whether to optimize for speed.
|
|
40
40
|
* @returns {Promise<Buffer>} A Promise resolving to the image buffer.
|
|
41
41
|
*/
|
|
42
|
-
capture(
|
|
43
|
-
return tslib_1.__awaiter(this,
|
|
42
|
+
capture(_a) {
|
|
43
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ html, assets, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnConsoleExceptions, failOnHttpStatusCodes, skipNetworkIdleEvent, optimizeForSpeed }) {
|
|
44
44
|
const data = new form_data_1.default();
|
|
45
45
|
yield common_1.GotenbergUtils.addFile(data, html, 'index.html');
|
|
46
46
|
if (assets === null || assets === void 0 ? void 0 : assets.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/html.screenshot.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAAoE;AACpE,mDAAkD;AAElD,gEAA4D;AAC5D,6CAA0C;AAG1C;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,uBAAU;IAC1C;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,
|
|
1
|
+
{"version":3,"file":"html.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/html.screenshot.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAAoE;AACpE,mDAAkD;AAElD,gEAA4D;AAC5D,6CAA0C;AAG1C;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,uBAAU;IAC1C;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO;qEAAC,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAenB;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEvD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,CAAC;gBACjB,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAC1B,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAC3C,CACJ,CAAC;YACN,CAAC;YAED,MAAM,kCAAe,CAAC,SAAS,CAAC,IAAI,EAAE;gBAClC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,gBAAgB;aACnB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AApFD,wCAoFC"}
|
|
@@ -40,8 +40,8 @@ class MarkdownScreenshot extends screenshot_1.Screenshot {
|
|
|
40
40
|
* @param {boolean} [options.optimizeForSpeed] - Whether to optimize for speed.
|
|
41
41
|
* @returns {Promise<Buffer>} A Promise resolving to the image buffer.
|
|
42
42
|
*/
|
|
43
|
-
capture(
|
|
44
|
-
return tslib_1.__awaiter(this,
|
|
43
|
+
capture(_a) {
|
|
44
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ html, markdown, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, optimizeForSpeed }) {
|
|
45
45
|
const data = new form_data_1.default();
|
|
46
46
|
yield common_1.GotenbergUtils.addFile(data, html, 'index.html');
|
|
47
47
|
yield common_1.GotenbergUtils.addFile(data, markdown, 'file.md');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/markdown.screenshot.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAAoE;AAEpE,gEAA4D;AAC5D,6CAA0C;AAC1C,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,uBAAU;IAC9C;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO,
|
|
1
|
+
{"version":3,"file":"markdown.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/markdown.screenshot.ts"],"names":[],"mappings":";;;;AAAA,kEAAiC;AAEjC,yCAAoE;AAEpE,gEAA4D;AAC5D,6CAA0C;AAC1C,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,uBAAU;IAC9C;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO;qEAAC,EACV,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAenB;YACG,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEvD,MAAM,uBAAc,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAExD,MAAM,kCAAe,CAAC,SAAS,CAAC,IAAI,EAAE;gBAClC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,gBAAgB;aACnB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AA/ED,gDA+EC"}
|
|
@@ -40,8 +40,8 @@ class UrlScreenshot extends screenshot_1.Screenshot {
|
|
|
40
40
|
* @param {boolean} [options.optimizeForSpeed] - Whether to optimize for speed.
|
|
41
41
|
* @returns {Promise<Buffer>} A Promise resolving to the image buffer.
|
|
42
42
|
*/
|
|
43
|
-
capture(
|
|
44
|
-
return tslib_1.__awaiter(this,
|
|
43
|
+
capture(_a) {
|
|
44
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ url, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, optimizeForSpeed }) {
|
|
45
45
|
const _url = new url_1.URL(url);
|
|
46
46
|
const data = new form_data_1.default();
|
|
47
47
|
data.append('url', _url.href);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/url.screenshot.ts"],"names":[],"mappings":";;;;AAAA,6BAA0B;AAC1B,kEAAiC;AACjC,yCAAoE;AAEpE,gEAA4D;AAC5D,6CAA0C;AAC1C,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,uBAAU;IACzC;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,
|
|
1
|
+
{"version":3,"file":"url.screenshot.js","sourceRoot":"","sources":["../../../src/chromium/screenshots/url.screenshot.ts"],"names":[],"mappings":";;;;AAAA,6BAA0B;AAC1B,kEAAiC;AACjC,yCAAoE;AAEpE,gEAA4D;AAC5D,6CAA0C;AAC1C,mDAAkD;AAGlD;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,uBAAU;IACzC;;;OAGG;IACH;QACI,KAAK,CAAC,2BAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO;qEAAC,EACV,GAAG,EACH,MAAM,EACN,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAcnB;YACG,MAAM,IAAI,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9B,MAAM,kCAAe,CAAC,SAAS,CAAC,IAAI,EAAE;gBAClC,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,SAAS;gBACT,iBAAiB;gBACjB,gBAAgB;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,oBAAoB;gBACpB,gBAAgB;aACnB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AA3ED,sCA2EC"}
|
|
@@ -107,6 +107,9 @@ class ConverterUtils {
|
|
|
107
107
|
if (options.skipNetworkIdleEvent) {
|
|
108
108
|
data.append('skipNetworkIdleEvent', String(options.skipNetworkIdleEvent));
|
|
109
109
|
}
|
|
110
|
+
if (options.metadata) {
|
|
111
|
+
data.append('metadata', JSON.stringify(options.metadata));
|
|
112
|
+
}
|
|
110
113
|
});
|
|
111
114
|
}
|
|
112
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.utils.js","sourceRoot":"","sources":["../../../src/chromium/utils/converter.utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"converter.utils.js","sourceRoot":"","sources":["../../../src/chromium/utils/converter.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare enum PdfFormat {
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Starting from Gotenberg version 7.6, LibreOffice no longer provides support for PDF/A-1a.
|
|
4
|
+
* @see {@link https://gotenberg.dev/docs/troubleshooting#pdfa-1a}
|
|
5
|
+
*/
|
|
2
6
|
A_1a = "PDF/A-1a",
|
|
3
7
|
A_2b = "PDF/A-2b",
|
|
4
8
|
A_3b = "PDF/A-3b"
|
package/dist/common/constants.js
CHANGED
|
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PdfFormat = void 0;
|
|
4
4
|
var PdfFormat;
|
|
5
5
|
(function (PdfFormat) {
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Starting from Gotenberg version 7.6, LibreOffice no longer provides support for PDF/A-1a.
|
|
8
|
+
* @see {@link https://gotenberg.dev/docs/troubleshooting#pdfa-1a}
|
|
9
|
+
*/
|
|
6
10
|
PdfFormat["A_1a"] = "PDF/A-1a";
|
|
7
11
|
PdfFormat["A_2b"] = "PDF/A-2b";
|
|
8
12
|
PdfFormat["A_3b"] = "PDF/A-3b";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAQX;AARD,WAAY,SAAS;IACjB;;;OAGG;IACH,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AACrB,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB"}
|
package/dist/common/index.d.ts
CHANGED
package/dist/common/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/libre-office/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/libre-office/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACR,CAAC"}
|
package/dist/main.config.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export declare enum ChromiumRoute {
|
|
|
12
12
|
* @enum {string}
|
|
13
13
|
*/
|
|
14
14
|
declare enum PdfEngineRoute {
|
|
15
|
-
MERGE = "merge"
|
|
15
|
+
MERGE = "merge",
|
|
16
|
+
READ_METADATA = "metadata/read",
|
|
17
|
+
WRITE_METADATA = "metadata/write"
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Enum representing the available routes for LibreOffice.
|
|
@@ -65,6 +67,8 @@ export declare class Chromiumly {
|
|
|
65
67
|
*/
|
|
66
68
|
static readonly PDF_ENGINE_ROUTES: {
|
|
67
69
|
merge: PdfEngineRoute;
|
|
70
|
+
readMetadata: PdfEngineRoute;
|
|
71
|
+
writeMetadata: PdfEngineRoute;
|
|
68
72
|
};
|
|
69
73
|
/**
|
|
70
74
|
* Routes for LibreOffice conversions.
|
package/dist/main.config.js
CHANGED
|
@@ -19,6 +19,8 @@ var ChromiumRoute;
|
|
|
19
19
|
var PdfEngineRoute;
|
|
20
20
|
(function (PdfEngineRoute) {
|
|
21
21
|
PdfEngineRoute["MERGE"] = "merge";
|
|
22
|
+
PdfEngineRoute["READ_METADATA"] = "metadata/read";
|
|
23
|
+
PdfEngineRoute["WRITE_METADATA"] = "metadata/write";
|
|
22
24
|
})(PdfEngineRoute || (PdfEngineRoute = {}));
|
|
23
25
|
/**
|
|
24
26
|
* Enum representing the available routes for LibreOffice.
|
|
@@ -73,7 +75,9 @@ Chromiumly.CHROMIUM_ROUTES = {
|
|
|
73
75
|
* @type {Object}
|
|
74
76
|
*/
|
|
75
77
|
Chromiumly.PDF_ENGINE_ROUTES = {
|
|
76
|
-
merge: PdfEngineRoute.MERGE
|
|
78
|
+
merge: PdfEngineRoute.MERGE,
|
|
79
|
+
readMetadata: PdfEngineRoute.READ_METADATA,
|
|
80
|
+
writeMetadata: PdfEngineRoute.WRITE_METADATA
|
|
77
81
|
};
|
|
78
82
|
/**
|
|
79
83
|
* Routes for LibreOffice conversions.
|
package/dist/main.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.config.js","sourceRoot":"","sources":["../src/main.config.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC;;;GAGG;AACH,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,8BAAa,CAAA;IACb,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,IAAK,
|
|
1
|
+
{"version":3,"file":"main.config.js","sourceRoot":"","sources":["../src/main.config.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC;;;GAGG;AACH,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,8BAAa,CAAA;IACb,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,IAAK,cAIJ;AAJD,WAAK,cAAc;IACf,iCAAe,CAAA;IACf,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;AACrC,CAAC,EAJI,cAAc,KAAd,cAAc,QAIlB;AAED;;;GAGG;AACH,IAAK,gBAEJ;AAFD,WAAK,gBAAgB;IACjB,uCAAmB,CAAA;AACvB,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,QAEpB;AAED;;GAEG;AACH,MAAa,UAAU;;AAAvB,gCA0DC;AAzDG;;;GAGG;AACoB,6BAAkB,GAAG,qBAAS,CAAC,QAAQ,CAAC;AAE/D;;;GAGG;AACoB,gCAAqB,GAAG,wBAAwB,CAAC;AAExE;;;GAGG;AACoB,mCAAwB,GAC3C,2BAA2B,CAAC;AAChC;;;GAGG;AACoB,2BAAgB,GAAG,kBAAkB,CAAC;AAE7D;;;GAGG;AACoB,4BAAiB,GAAG,mBAAmB,CAAC;AAE/D;;;GAGG;AACoB,0BAAe,GAAG;IACrC,GAAG,EAAE,aAAa,CAAC,GAAG;IACtB,IAAI,EAAE,aAAa,CAAC,IAAI;IACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ;CACnC,CAAC;AAEF;;;GAGG;AACoB,4BAAiB,GAAG;IACvC,KAAK,EAAE,cAAc,CAAC,KAAK;IAC3B,YAAY,EAAE,cAAc,CAAC,aAAa;IAC1C,aAAa,EAAE,cAAc,CAAC,cAAc;CAC/C,CAAC;AAEF;;;GAGG;AACoB,8BAAmB,GAAG;IACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;CACpC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { PathLikeOrReadStream, PdfFormat } from '../common';
|
|
2
|
+
import { PathLikeOrReadStream, PdfFormat, Metadata } from '../common';
|
|
3
3
|
import { PageProperties } from '../libre-office';
|
|
4
4
|
/**
|
|
5
5
|
* Class representing a PDF engine for various operations such as merging and conversion.
|
|
@@ -29,10 +29,32 @@ export declare class PDFEngine {
|
|
|
29
29
|
static convert({ files, properties, pdfFormat, pdfUA, merge }: {
|
|
30
30
|
files: PathLikeOrReadStream[];
|
|
31
31
|
properties?: PageProperties;
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Starting from Gotenberg version 8.0.0, LibreOffice no longer provides support for pdfFormat.
|
|
34
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
35
|
+
*/
|
|
32
36
|
pdfFormat?: PdfFormat;
|
|
33
37
|
pdfUA?: boolean;
|
|
34
38
|
merge?: boolean;
|
|
35
39
|
}): Promise<Buffer>;
|
|
40
|
+
/**
|
|
41
|
+
* Reads metadata from the provided files.
|
|
42
|
+
*
|
|
43
|
+
* @param {PathLikeOrReadStream[]} files An array of PathLikes or ReadStreams to the PDF files.
|
|
44
|
+
* @returns {Promise<Buffer>} A Promise resolving to the metadata buffer.
|
|
45
|
+
*/
|
|
46
|
+
static readMetadata(files: PathLikeOrReadStream[]): Promise<Buffer>;
|
|
47
|
+
/**
|
|
48
|
+
* Writes metadata to the provided PDF files.
|
|
49
|
+
*
|
|
50
|
+
* @param {PathLikeOrReadStream[]} files - An array of PathLikes or ReadStreams to the PDF files.
|
|
51
|
+
* @param {Metadata} metadata - Metadata to be written.
|
|
52
|
+
* @returns {Promise<Buffer>} A Promise that resolves to the PDF file containing metadata as a buffer.
|
|
53
|
+
*/
|
|
54
|
+
static writeMetadata({ files, metadata }: {
|
|
55
|
+
files: PathLikeOrReadStream[];
|
|
56
|
+
metadata: Metadata;
|
|
57
|
+
}): Promise<Buffer>;
|
|
36
58
|
/**
|
|
37
59
|
* Generates a PDF file from a buffer and saves it to the "__generated__" directory.
|
|
38
60
|
*
|
|
@@ -20,8 +20,8 @@ class PDFEngine {
|
|
|
20
20
|
* @param {PathLikeOrReadStream[]} options.files - An array of PathLikes or ReadStreams to the PDF files to be merged.
|
|
21
21
|
* @returns {Promise<Buffer>} A Promise resolving to the merged PDF content as a Buffer.
|
|
22
22
|
*/
|
|
23
|
-
static merge(
|
|
24
|
-
return tslib_1.__awaiter(this,
|
|
23
|
+
static merge(_a) {
|
|
24
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ files }) {
|
|
25
25
|
const data = new form_data_1.default();
|
|
26
26
|
yield engine_utils_1.PDFEngineUtils.addFiles(files, data);
|
|
27
27
|
const endpoint = `${main_config_1.Chromiumly.GOTENBERG_ENDPOINT}/${main_config_1.Chromiumly.PDF_ENGINES_PATH}/${main_config_1.Chromiumly.PDF_ENGINE_ROUTES.merge}`;
|
|
@@ -39,8 +39,8 @@ 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(
|
|
43
|
-
return tslib_1.__awaiter(this,
|
|
42
|
+
static convert(_a) {
|
|
43
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ files, properties, pdfFormat, pdfUA, merge }) {
|
|
44
44
|
const data = new form_data_1.default();
|
|
45
45
|
if (pdfFormat) {
|
|
46
46
|
data.append('pdfa', pdfFormat);
|
|
@@ -59,6 +59,36 @@ class PDFEngine {
|
|
|
59
59
|
return common_1.GotenbergUtils.fetch(endpoint, data);
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Reads metadata from the provided files.
|
|
64
|
+
*
|
|
65
|
+
* @param {PathLikeOrReadStream[]} files An array of PathLikes or ReadStreams to the PDF files.
|
|
66
|
+
* @returns {Promise<Buffer>} A Promise resolving to the metadata buffer.
|
|
67
|
+
*/
|
|
68
|
+
static readMetadata(files) {
|
|
69
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const data = new form_data_1.default();
|
|
71
|
+
yield engine_utils_1.PDFEngineUtils.addFiles(files, data);
|
|
72
|
+
const endpoint = `${main_config_1.Chromiumly.GOTENBERG_ENDPOINT}/${main_config_1.Chromiumly.PDF_ENGINES_PATH}/${main_config_1.Chromiumly.PDF_ENGINE_ROUTES.readMetadata}`;
|
|
73
|
+
return common_1.GotenbergUtils.fetch(endpoint, data);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Writes metadata to the provided PDF files.
|
|
78
|
+
*
|
|
79
|
+
* @param {PathLikeOrReadStream[]} files - An array of PathLikes or ReadStreams to the PDF files.
|
|
80
|
+
* @param {Metadata} metadata - Metadata to be written.
|
|
81
|
+
* @returns {Promise<Buffer>} A Promise that resolves to the PDF file containing metadata as a buffer.
|
|
82
|
+
*/
|
|
83
|
+
static writeMetadata(_a) {
|
|
84
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ files, metadata }) {
|
|
85
|
+
const data = new form_data_1.default();
|
|
86
|
+
data.append('metadata', JSON.stringify(metadata));
|
|
87
|
+
yield engine_utils_1.PDFEngineUtils.addFiles(files, data);
|
|
88
|
+
const endpoint = `${main_config_1.Chromiumly.GOTENBERG_ENDPOINT}/${main_config_1.Chromiumly.PDF_ENGINES_PATH}/${main_config_1.Chromiumly.PDF_ENGINE_ROUTES.writeMetadata}`;
|
|
89
|
+
return common_1.GotenbergUtils.fetch(endpoint, data);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
62
92
|
/**
|
|
63
93
|
* Generates a PDF file from a buffer and saves it to the "__generated__" directory.
|
|
64
94
|
*
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"pdf.engine.js","sourceRoot":"","sources":["../../src/pdf-engines/pdf.engine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chromiumly",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.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",
|
|
@@ -41,19 +41,19 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@babel/preset-typescript": "7.
|
|
44
|
+
"@babel/preset-typescript": "7.24.1",
|
|
45
45
|
"@commitlint/cli": "^19.0.3",
|
|
46
46
|
"@commitlint/config-conventional": "^19.0.3",
|
|
47
47
|
"@commitlint/cz-commitlint": "^19.0.3",
|
|
48
48
|
"@release-it/conventional-changelog": "8.0.1",
|
|
49
|
-
"@types/config": "3.3.
|
|
49
|
+
"@types/config": "3.3.4",
|
|
50
50
|
"@types/dotenv": "8.2.0",
|
|
51
51
|
"@types/form-data": "2.5.0",
|
|
52
52
|
"@types/jest": "29.5.12",
|
|
53
|
-
"@types/node": "20.11.
|
|
53
|
+
"@types/node": "20.11.30",
|
|
54
54
|
"@types/node-fetch": "2.6.11",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "7.
|
|
56
|
-
"@typescript-eslint/parser": "7.
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "7.3.1",
|
|
56
|
+
"@typescript-eslint/parser": "7.3.1",
|
|
57
57
|
"commitizen": "4.3.0",
|
|
58
58
|
"eslint": "8.57.0",
|
|
59
59
|
"eslint-config-prettier": "^9.1.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"ts-jest": "29.1.2",
|
|
68
68
|
"ts-node": "10.9.2",
|
|
69
69
|
"tslib": "2.6.2",
|
|
70
|
-
"typescript": "5.
|
|
70
|
+
"typescript": "5.4.3"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"config": "3.3.11",
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import FormData from 'form-data';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
GotenbergUtils,
|
|
5
|
+
Metadata,
|
|
6
|
+
PathLikeOrReadStream,
|
|
7
|
+
PdfFormat
|
|
8
|
+
} from '../../common';
|
|
4
9
|
import { PageProperties } from '../interfaces/converter.types';
|
|
5
10
|
import { ConverterUtils } from '../utils/converter.utils';
|
|
6
11
|
import { Converter } from './converter';
|
|
@@ -40,6 +45,7 @@ export class HtmlConverter extends Converter {
|
|
|
40
45
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
41
46
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
42
47
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
48
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
43
49
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
44
50
|
*/
|
|
45
51
|
async convert({
|
|
@@ -57,23 +63,33 @@ export class HtmlConverter extends Converter {
|
|
|
57
63
|
extraHttpHeaders,
|
|
58
64
|
failOnHttpStatusCodes,
|
|
59
65
|
failOnConsoleExceptions,
|
|
60
|
-
skipNetworkIdleEvent
|
|
66
|
+
skipNetworkIdleEvent,
|
|
67
|
+
metadata
|
|
61
68
|
}: {
|
|
62
69
|
html: PathLikeOrReadStream;
|
|
63
70
|
assets?: { file: PathLikeOrReadStream; name: string }[];
|
|
64
71
|
header?: PathLikeOrReadStream;
|
|
65
72
|
footer?: PathLikeOrReadStream;
|
|
66
73
|
properties?: PageProperties;
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
76
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
77
|
+
*/
|
|
67
78
|
pdfFormat?: PdfFormat;
|
|
68
79
|
pdfUA?: boolean;
|
|
69
80
|
emulatedMediaType?: EmulatedMediaType;
|
|
70
81
|
waitDelay?: string;
|
|
71
82
|
waitForExpression?: string;
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
85
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
86
|
+
*/
|
|
72
87
|
userAgent?: string;
|
|
73
88
|
extraHttpHeaders?: Record<string, string>;
|
|
74
89
|
failOnHttpStatusCodes?: number[];
|
|
75
90
|
failOnConsoleExceptions?: boolean;
|
|
76
91
|
skipNetworkIdleEvent?: boolean;
|
|
92
|
+
metadata?: Metadata;
|
|
77
93
|
}): Promise<Buffer> {
|
|
78
94
|
const data = new FormData();
|
|
79
95
|
|
|
@@ -100,7 +116,8 @@ export class HtmlConverter extends Converter {
|
|
|
100
116
|
extraHttpHeaders,
|
|
101
117
|
failOnHttpStatusCodes,
|
|
102
118
|
failOnConsoleExceptions,
|
|
103
|
-
skipNetworkIdleEvent
|
|
119
|
+
skipNetworkIdleEvent,
|
|
120
|
+
metadata
|
|
104
121
|
});
|
|
105
122
|
|
|
106
123
|
return GotenbergUtils.fetch(this.endpoint, data);
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import FormData from 'form-data';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
GotenbergUtils,
|
|
5
|
+
PdfFormat,
|
|
6
|
+
PathLikeOrReadStream,
|
|
7
|
+
Metadata
|
|
8
|
+
} from '../../common';
|
|
4
9
|
import { PageProperties } from '../interfaces/converter.types';
|
|
5
10
|
import { ConverterUtils } from '../utils/converter.utils';
|
|
6
11
|
import { Converter } from './converter';
|
|
@@ -41,6 +46,7 @@ export class MarkdownConverter extends Converter {
|
|
|
41
46
|
* @param {number []} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
42
47
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
43
48
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
49
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
44
50
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
45
51
|
*/
|
|
46
52
|
async convert({
|
|
@@ -58,23 +64,33 @@ export class MarkdownConverter extends Converter {
|
|
|
58
64
|
extraHttpHeaders,
|
|
59
65
|
failOnHttpStatusCodes,
|
|
60
66
|
failOnConsoleExceptions,
|
|
61
|
-
skipNetworkIdleEvent
|
|
67
|
+
skipNetworkIdleEvent,
|
|
68
|
+
metadata
|
|
62
69
|
}: {
|
|
63
70
|
html: PathLikeOrReadStream;
|
|
64
71
|
markdown: PathLikeOrReadStream;
|
|
65
72
|
header?: PathLikeOrReadStream;
|
|
66
73
|
footer?: PathLikeOrReadStream;
|
|
67
74
|
properties?: PageProperties;
|
|
75
|
+
/**
|
|
76
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
77
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
78
|
+
*/
|
|
68
79
|
pdfFormat?: PdfFormat;
|
|
69
80
|
pdfUA?: boolean;
|
|
70
81
|
emulatedMediaType?: EmulatedMediaType;
|
|
71
82
|
waitDelay?: string;
|
|
72
83
|
waitForExpression?: string;
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
86
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
87
|
+
*/
|
|
73
88
|
userAgent?: string;
|
|
74
89
|
extraHttpHeaders?: Record<string, string>;
|
|
75
90
|
failOnHttpStatusCodes?: number[];
|
|
76
91
|
failOnConsoleExceptions?: boolean;
|
|
77
92
|
skipNetworkIdleEvent?: boolean;
|
|
93
|
+
metadata?: Metadata;
|
|
78
94
|
}): Promise<Buffer> {
|
|
79
95
|
const data = new FormData();
|
|
80
96
|
|
|
@@ -95,7 +111,8 @@ export class MarkdownConverter extends Converter {
|
|
|
95
111
|
extraHttpHeaders,
|
|
96
112
|
failOnHttpStatusCodes,
|
|
97
113
|
failOnConsoleExceptions,
|
|
98
|
-
skipNetworkIdleEvent
|
|
114
|
+
skipNetworkIdleEvent,
|
|
115
|
+
metadata
|
|
99
116
|
});
|
|
100
117
|
|
|
101
118
|
return GotenbergUtils.fetch(this.endpoint, data);
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { URL } from 'url';
|
|
2
2
|
import FormData from 'form-data';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
GotenbergUtils,
|
|
5
|
+
PdfFormat,
|
|
6
|
+
PathLikeOrReadStream,
|
|
7
|
+
Metadata
|
|
8
|
+
} from '../../common';
|
|
4
9
|
import { PageProperties } from '../interfaces/converter.types';
|
|
5
10
|
import { ConverterUtils } from '../utils/converter.utils';
|
|
6
11
|
import { Converter } from './converter';
|
|
@@ -40,6 +45,7 @@ export class UrlConverter extends Converter {
|
|
|
40
45
|
* @param {number[]} [options.failOnHttpStatusCodes] - Whether to fail on HTTP status code.
|
|
41
46
|
* @param {boolean} [options.failOnConsoleExceptions] - Whether to fail on console exceptions during conversion.
|
|
42
47
|
* @param {boolean} [options.skipNetworkIdleEvent] - Whether to skip network idle event.
|
|
48
|
+
* @param {Metadata} options.metadata - Metadata to be written.
|
|
43
49
|
* @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
|
|
44
50
|
*/
|
|
45
51
|
async convert({
|
|
@@ -56,22 +62,32 @@ export class UrlConverter extends Converter {
|
|
|
56
62
|
extraHttpHeaders,
|
|
57
63
|
failOnHttpStatusCodes,
|
|
58
64
|
failOnConsoleExceptions,
|
|
59
|
-
skipNetworkIdleEvent
|
|
65
|
+
skipNetworkIdleEvent,
|
|
66
|
+
metadata
|
|
60
67
|
}: {
|
|
61
68
|
url: string;
|
|
62
69
|
header?: PathLikeOrReadStream;
|
|
63
70
|
footer?: PathLikeOrReadStream;
|
|
64
71
|
properties?: PageProperties;
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for pdfFormat.
|
|
74
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
75
|
+
*/
|
|
65
76
|
pdfFormat?: PdfFormat;
|
|
66
77
|
pdfUA?: boolean;
|
|
67
78
|
emulatedMediaType?: EmulatedMediaType;
|
|
68
79
|
waitDelay?: string;
|
|
69
80
|
waitForExpression?: string;
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated Starting from Gotenberg version 8.0.0, Chromium no longer provides support for userAgent.
|
|
83
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
84
|
+
*/
|
|
70
85
|
userAgent?: string;
|
|
71
86
|
extraHttpHeaders?: Record<string, string>;
|
|
72
87
|
failOnHttpStatusCodes?: number[];
|
|
73
88
|
failOnConsoleExceptions?: boolean;
|
|
74
89
|
skipNetworkIdleEvent?: boolean;
|
|
90
|
+
metadata?: Metadata;
|
|
75
91
|
}): Promise<Buffer> {
|
|
76
92
|
const _url = new URL(url);
|
|
77
93
|
const data = new FormData();
|
|
@@ -91,7 +107,8 @@ export class UrlConverter extends Converter {
|
|
|
91
107
|
extraHttpHeaders,
|
|
92
108
|
failOnHttpStatusCodes,
|
|
93
109
|
failOnConsoleExceptions,
|
|
94
|
-
skipNetworkIdleEvent
|
|
110
|
+
skipNetworkIdleEvent,
|
|
111
|
+
metadata
|
|
95
112
|
});
|
|
96
113
|
|
|
97
114
|
return GotenbergUtils.fetch(this.endpoint, data);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PdfFormat } from '../../common';
|
|
1
|
+
import { Metadata, PdfFormat } from '../../common';
|
|
2
2
|
import { ChromiumOptions } from './common.types';
|
|
3
3
|
|
|
4
4
|
type PageSize = {
|
|
@@ -30,4 +30,5 @@ export type ConversionOptions = ChromiumOptions & {
|
|
|
30
30
|
pdfFormat?: PdfFormat;
|
|
31
31
|
pdfUA?: boolean; // Enable PDF for Universal Access for optimal accessibility (default false)
|
|
32
32
|
userAgent?: string;
|
|
33
|
+
metadata?: Metadata;
|
|
33
34
|
};
|
|
@@ -351,6 +351,19 @@ describe('GotenbergUtils', () => {
|
|
|
351
351
|
});
|
|
352
352
|
});
|
|
353
353
|
|
|
354
|
+
describe('when metadata parameter is passed', () => {
|
|
355
|
+
it('should append metadata', async () => {
|
|
356
|
+
await ConverterUtils.customize(data, {
|
|
357
|
+
metadata: { Author: 'John Doe' }
|
|
358
|
+
});
|
|
359
|
+
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
360
|
+
expect(data.append).toHaveBeenCalledWith(
|
|
361
|
+
'metadata',
|
|
362
|
+
JSON.stringify({ Author: 'John Doe' })
|
|
363
|
+
);
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
|
|
354
367
|
describe('when all options are passed', () => {
|
|
355
368
|
it('should append all options', async () => {
|
|
356
369
|
await ConverterUtils.customize(data, {
|
|
@@ -367,9 +380,10 @@ describe('GotenbergUtils', () => {
|
|
|
367
380
|
extraHttpHeaders: { 'X-Custom-Header': 'value' },
|
|
368
381
|
failOnHttpStatusCodes: [499, 599],
|
|
369
382
|
skipNetworkIdleEvent: true,
|
|
370
|
-
failOnConsoleExceptions: true
|
|
383
|
+
failOnConsoleExceptions: true,
|
|
384
|
+
metadata: { Author: 'John Doe' }
|
|
371
385
|
});
|
|
372
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(
|
|
386
|
+
expect(mockFormDataAppend).toHaveBeenCalledTimes(15);
|
|
373
387
|
expect(data.append).toHaveBeenNthCalledWith(
|
|
374
388
|
1,
|
|
375
389
|
'pdfa',
|
|
@@ -438,6 +452,11 @@ describe('GotenbergUtils', () => {
|
|
|
438
452
|
'skipNetworkIdleEvent',
|
|
439
453
|
'true'
|
|
440
454
|
);
|
|
455
|
+
expect(data.append).toHaveBeenNthCalledWith(
|
|
456
|
+
15,
|
|
457
|
+
'metadata',
|
|
458
|
+
JSON.stringify({ Author: 'John Doe' })
|
|
459
|
+
);
|
|
441
460
|
});
|
|
442
461
|
});
|
|
443
462
|
});
|
package/src/common/constants.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export enum PdfFormat {
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Starting from Gotenberg version 7.6, LibreOffice no longer provides support for PDF/A-1a.
|
|
4
|
+
* @see {@link https://gotenberg.dev/docs/troubleshooting#pdfa-1a}
|
|
5
|
+
*/
|
|
2
6
|
A_1a = 'PDF/A-1a',
|
|
3
7
|
A_2b = 'PDF/A-2b',
|
|
4
8
|
A_3b = 'PDF/A-3b'
|
package/src/common/index.ts
CHANGED
package/src/common/types.ts
CHANGED
package/src/main.config.ts
CHANGED
|
@@ -15,7 +15,9 @@ export enum ChromiumRoute {
|
|
|
15
15
|
* @enum {string}
|
|
16
16
|
*/
|
|
17
17
|
enum PdfEngineRoute {
|
|
18
|
-
MERGE = 'merge'
|
|
18
|
+
MERGE = 'merge',
|
|
19
|
+
READ_METADATA = 'metadata/read',
|
|
20
|
+
WRITE_METADATA = 'metadata/write'
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
/**
|
|
@@ -75,7 +77,9 @@ export class Chromiumly {
|
|
|
75
77
|
* @type {Object}
|
|
76
78
|
*/
|
|
77
79
|
public static readonly PDF_ENGINE_ROUTES = {
|
|
78
|
-
merge: PdfEngineRoute.MERGE
|
|
80
|
+
merge: PdfEngineRoute.MERGE,
|
|
81
|
+
readMetadata: PdfEngineRoute.READ_METADATA,
|
|
82
|
+
writeMetadata: PdfEngineRoute.WRITE_METADATA
|
|
79
83
|
};
|
|
80
84
|
|
|
81
85
|
/**
|
|
@@ -4,7 +4,12 @@ import path from 'path';
|
|
|
4
4
|
import FormData from 'form-data';
|
|
5
5
|
|
|
6
6
|
import { Chromiumly } from '../main.config';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
GotenbergUtils,
|
|
9
|
+
PathLikeOrReadStream,
|
|
10
|
+
PdfFormat,
|
|
11
|
+
Metadata
|
|
12
|
+
} from '../common';
|
|
8
13
|
import { LibreOfficeUtils, PageProperties } from '../libre-office';
|
|
9
14
|
import { PDFEngineUtils } from './utils/engine.utils';
|
|
10
15
|
|
|
@@ -50,6 +55,10 @@ export class PDFEngine {
|
|
|
50
55
|
}: {
|
|
51
56
|
files: PathLikeOrReadStream[];
|
|
52
57
|
properties?: PageProperties;
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Starting from Gotenberg version 8.0.0, LibreOffice no longer provides support for pdfFormat.
|
|
60
|
+
* @see {@link https://github.com/gotenberg/gotenberg/releases/tag/v8.0.0}
|
|
61
|
+
*/
|
|
53
62
|
pdfFormat?: PdfFormat;
|
|
54
63
|
pdfUA?: boolean;
|
|
55
64
|
merge?: boolean;
|
|
@@ -79,6 +88,48 @@ export class PDFEngine {
|
|
|
79
88
|
return GotenbergUtils.fetch(endpoint, data);
|
|
80
89
|
}
|
|
81
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Reads metadata from the provided files.
|
|
93
|
+
*
|
|
94
|
+
* @param {PathLikeOrReadStream[]} files An array of PathLikes or ReadStreams to the PDF files.
|
|
95
|
+
* @returns {Promise<Buffer>} A Promise resolving to the metadata buffer.
|
|
96
|
+
*/
|
|
97
|
+
public static async readMetadata(
|
|
98
|
+
files: PathLikeOrReadStream[]
|
|
99
|
+
): Promise<Buffer> {
|
|
100
|
+
const data = new FormData();
|
|
101
|
+
|
|
102
|
+
await PDFEngineUtils.addFiles(files, data);
|
|
103
|
+
|
|
104
|
+
const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.readMetadata}`;
|
|
105
|
+
|
|
106
|
+
return GotenbergUtils.fetch(endpoint, data);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Writes metadata to the provided PDF files.
|
|
111
|
+
*
|
|
112
|
+
* @param {PathLikeOrReadStream[]} files - An array of PathLikes or ReadStreams to the PDF files.
|
|
113
|
+
* @param {Metadata} metadata - Metadata to be written.
|
|
114
|
+
* @returns {Promise<Buffer>} A Promise that resolves to the PDF file containing metadata as a buffer.
|
|
115
|
+
*/
|
|
116
|
+
public static async writeMetadata({
|
|
117
|
+
files,
|
|
118
|
+
metadata
|
|
119
|
+
}: {
|
|
120
|
+
files: PathLikeOrReadStream[];
|
|
121
|
+
metadata: Metadata;
|
|
122
|
+
}): Promise<Buffer> {
|
|
123
|
+
const data = new FormData();
|
|
124
|
+
data.append('metadata', JSON.stringify(metadata));
|
|
125
|
+
|
|
126
|
+
await PDFEngineUtils.addFiles(files, data);
|
|
127
|
+
|
|
128
|
+
const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.writeMetadata}`;
|
|
129
|
+
|
|
130
|
+
return GotenbergUtils.fetch(endpoint, data);
|
|
131
|
+
}
|
|
132
|
+
|
|
82
133
|
/**
|
|
83
134
|
* Generates a PDF file from a buffer and saves it to the "__generated__" directory.
|
|
84
135
|
*
|
|
@@ -68,6 +68,42 @@ describe('PDFEngine', () => {
|
|
|
68
68
|
});
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
+
describe('readMetadata', () => {
|
|
72
|
+
it('should return a buffer', async () => {
|
|
73
|
+
mockPromisesAccess.mockResolvedValue();
|
|
74
|
+
mockFetch.mockResolvedValue(new Response('content'));
|
|
75
|
+
const buffer = await PDFEngine.readMetadata(['path/to/file.pdf']);
|
|
76
|
+
expect(buffer).toEqual(Buffer.from('content'));
|
|
77
|
+
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
describe('writeMetadata', () => {
|
|
82
|
+
it('should return a buffer', async () => {
|
|
83
|
+
mockPromisesAccess.mockResolvedValue();
|
|
84
|
+
mockFetch.mockResolvedValue(new Response('content'));
|
|
85
|
+
const buffer = await PDFEngine.writeMetadata({
|
|
86
|
+
files: ['path/to/file.pdf'],
|
|
87
|
+
metadata: {
|
|
88
|
+
Author: 'John Doe',
|
|
89
|
+
Copyright: 'John Doe',
|
|
90
|
+
CreationDate: Date.now(),
|
|
91
|
+
Creator: 'Chromiumly',
|
|
92
|
+
Keywords: ['first', 'second'],
|
|
93
|
+
Marked: true,
|
|
94
|
+
ModDate: Date.now(),
|
|
95
|
+
PDFVersion: 1.7,
|
|
96
|
+
Producer: 'Chromiumly',
|
|
97
|
+
Subject: 'Sample',
|
|
98
|
+
Title: 'Sample',
|
|
99
|
+
Trapped: 'Unknown'
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
expect(buffer).toEqual(Buffer.from('content'));
|
|
103
|
+
expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
71
107
|
describe('generate', () => {
|
|
72
108
|
const mockFilename = 'test.pdf';
|
|
73
109
|
const mockBuffer = Buffer.from('mock pdf content');
|