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.
Files changed (46) hide show
  1. package/README.md +36 -0
  2. package/dist/chromium/converters/html.converter.d.ts +12 -2
  3. package/dist/chromium/converters/html.converter.js +5 -3
  4. package/dist/chromium/converters/html.converter.js.map +1 -1
  5. package/dist/chromium/converters/markdown.converter.d.ts +12 -2
  6. package/dist/chromium/converters/markdown.converter.js +5 -3
  7. package/dist/chromium/converters/markdown.converter.js.map +1 -1
  8. package/dist/chromium/converters/url.converter.d.ts +12 -2
  9. package/dist/chromium/converters/url.converter.js +5 -3
  10. package/dist/chromium/converters/url.converter.js.map +1 -1
  11. package/dist/chromium/interfaces/converter.types.d.ts +2 -1
  12. package/dist/chromium/screenshots/html.screenshot.js +2 -2
  13. package/dist/chromium/screenshots/html.screenshot.js.map +1 -1
  14. package/dist/chromium/screenshots/markdown.screenshot.js +2 -2
  15. package/dist/chromium/screenshots/markdown.screenshot.js.map +1 -1
  16. package/dist/chromium/screenshots/url.screenshot.js +2 -2
  17. package/dist/chromium/screenshots/url.screenshot.js.map +1 -1
  18. package/dist/chromium/utils/converter.utils.js +3 -0
  19. package/dist/chromium/utils/converter.utils.js.map +1 -1
  20. package/dist/common/constants.d.ts +4 -0
  21. package/dist/common/constants.js +4 -0
  22. package/dist/common/constants.js.map +1 -1
  23. package/dist/common/index.d.ts +1 -1
  24. package/dist/common/types.d.ts +3 -0
  25. package/dist/libre-office/utils/constants.js +2 -1
  26. package/dist/libre-office/utils/constants.js.map +1 -1
  27. package/dist/main.config.d.ts +5 -1
  28. package/dist/main.config.js +5 -1
  29. package/dist/main.config.js.map +1 -1
  30. package/dist/pdf-engines/pdf.engine.d.ts +23 -1
  31. package/dist/pdf-engines/pdf.engine.js +34 -4
  32. package/dist/pdf-engines/pdf.engine.js.map +1 -1
  33. package/package.json +7 -7
  34. package/src/chromium/converters/html.converter.ts +20 -3
  35. package/src/chromium/converters/markdown.converter.ts +20 -3
  36. package/src/chromium/converters/url.converter.ts +20 -3
  37. package/src/chromium/interfaces/converter.types.ts +2 -1
  38. package/src/chromium/utils/converter.utils.ts +3 -0
  39. package/src/chromium/utils/tests/converter.utils.test.ts +21 -2
  40. package/src/common/constants.ts +4 -0
  41. package/src/common/index.ts +1 -1
  42. package/src/common/types.ts +4 -0
  43. package/src/libre-office/utils/constants.ts +2 -1
  44. package/src/main.config.ts +6 -2
  45. package/src/pdf-engines/pdf.engine.ts +52 -1
  46. 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({ html, assets, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }) {
45
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,yCAA+E;AAE/E,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;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CAAC,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,EAiBvB;;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;aACvB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AA5FD,sCA4FC"}
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({ html, markdown, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }) {
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,yCAA+E;AAE/E,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;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CAAC,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,EAiBvB;;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;aACvB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AAvFD,8CAuFC"}
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({ url, header, footer, properties, pdfFormat, pdfUA, emulatedMediaType, waitDelay, waitForExpression, userAgent, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent }) {
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,yCAA+E;AAE/E,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;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CAAC,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,EAgBvB;;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;aACvB,CAAC,CAAC;YAEH,OAAO,uBAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;CACJ;AAnFD,oCAmFC"}
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({ html, assets, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnConsoleExceptions, failOnHttpStatusCodes, skipNetworkIdleEvent, optimizeForSpeed }) {
43
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,CAAC,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"}
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({ html, markdown, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, optimizeForSpeed }) {
44
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,CAAC,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"}
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({ url, header, footer, properties, emulatedMediaType, waitDelay, waitForExpression, extraHttpHeaders, failOnHttpStatusCodes, failOnConsoleExceptions, skipNetworkIdleEvent, optimizeForSpeed }) {
44
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,CAAC,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"}
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"
@@ -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,SAIX;AAJD,WAAY,SAAS;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AACrB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB"}
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"}
@@ -1,3 +1,3 @@
1
1
  export { PdfFormat } from './constants';
2
2
  export { GotenbergUtils } from './gotenberg.utils';
3
- export { PathLikeOrReadStream } from './types';
3
+ export { PathLikeOrReadStream, Metadata } from './types';
@@ -1,3 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { PathLike, ReadStream } from 'fs';
3
3
  export type PathLikeOrReadStream = PathLike | ReadStream;
4
+ export type Metadata = {
5
+ [key: string]: boolean | number | string | string[];
6
+ };
@@ -81,6 +81,7 @@ exports.LIBRE_OFFICE_EXTENSIONS = [
81
81
  'odp',
82
82
  'odg',
83
83
  'dotx',
84
- 'xltx'
84
+ 'xltx',
85
+ 'key'
85
86
  ];
86
87
  //# sourceMappingURL=constants.js.map
@@ -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;CACT,CAAC"}
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"}
@@ -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.
@@ -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.
@@ -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,cAEJ;AAFD,WAAK,cAAc;IACf,iCAAe,CAAA;AACnB,CAAC,EAFI,cAAc,KAAd,cAAc,QAElB;AAED;;;GAGG;AACH,IAAK,gBAEJ;AAFD,WAAK,gBAAgB;IACjB,uCAAmB,CAAA;AACvB,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,QAEpB;AAED;;GAEG;AACH,MAAa,UAAU;;AAAvB,gCAwDC;AAvDG;;;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;CAC9B,CAAC;AAEF;;;GAGG;AACoB,8BAAmB,GAAG;IACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;CACpC,CAAC"}
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({ files }) {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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({ files, properties, pdfFormat, pdfUA, merge }) {
43
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
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,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
+ {"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.8.0",
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.23.3",
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.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.24",
53
+ "@types/node": "20.11.30",
54
54
  "@types/node-fetch": "2.6.11",
55
- "@typescript-eslint/eslint-plugin": "7.1.1",
56
- "@typescript-eslint/parser": "7.1.1",
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.3.3"
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 { GotenbergUtils, PathLikeOrReadStream, PdfFormat } from '../../common';
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 { GotenbergUtils, PdfFormat, PathLikeOrReadStream } from '../../common';
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 { GotenbergUtils, PdfFormat, PathLikeOrReadStream } from '../../common';
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
  };
@@ -176,5 +176,8 @@ export class ConverterUtils {
176
176
  String(options.skipNetworkIdleEvent)
177
177
  );
178
178
  }
179
+ if (options.metadata) {
180
+ data.append('metadata', JSON.stringify(options.metadata));
181
+ }
179
182
  }
180
183
  }
@@ -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(14);
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
  });
@@ -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'
@@ -1,3 +1,3 @@
1
1
  export { PdfFormat } from './constants';
2
2
  export { GotenbergUtils } from './gotenberg.utils';
3
- export { PathLikeOrReadStream } from './types';
3
+ export { PathLikeOrReadStream, Metadata } from './types';
@@ -1,3 +1,7 @@
1
1
  import { PathLike, ReadStream } from 'fs';
2
2
 
3
3
  export type PathLikeOrReadStream = PathLike | ReadStream;
4
+
5
+ export type Metadata = {
6
+ [key: string]: boolean | number | string | string[];
7
+ };
@@ -78,5 +78,6 @@ export const LIBRE_OFFICE_EXTENSIONS = [
78
78
  'odp',
79
79
  'odg',
80
80
  'dotx',
81
- 'xltx'
81
+ 'xltx',
82
+ 'key'
82
83
  ];
@@ -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 { GotenbergUtils, PathLikeOrReadStream, PdfFormat } from '../common';
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');