chromiumly 2.8.0 → 2.10.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 (52) hide show
  1. package/README.md +38 -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/interfaces/libre-office.types.d.ts +1 -0
  26. package/dist/libre-office/utils/constants.js +103 -53
  27. package/dist/libre-office/utils/constants.js.map +1 -1
  28. package/dist/libre-office/utils/libre-office.utils.js +3 -0
  29. package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
  30. package/dist/main.config.d.ts +5 -1
  31. package/dist/main.config.js +5 -1
  32. package/dist/main.config.js.map +1 -1
  33. package/dist/pdf-engines/pdf.engine.d.ts +23 -1
  34. package/dist/pdf-engines/pdf.engine.js +34 -4
  35. package/dist/pdf-engines/pdf.engine.js.map +1 -1
  36. package/package.json +7 -7
  37. package/src/chromium/converters/html.converter.ts +20 -3
  38. package/src/chromium/converters/markdown.converter.ts +20 -3
  39. package/src/chromium/converters/url.converter.ts +20 -3
  40. package/src/chromium/interfaces/converter.types.ts +2 -1
  41. package/src/chromium/utils/converter.utils.ts +3 -0
  42. package/src/chromium/utils/tests/converter.utils.test.ts +21 -2
  43. package/src/common/constants.ts +4 -0
  44. package/src/common/index.ts +1 -1
  45. package/src/common/types.ts +4 -0
  46. package/src/libre-office/interfaces/libre-office.types.ts +1 -0
  47. package/src/libre-office/utils/constants.ts +103 -53
  48. package/src/libre-office/utils/libre-office.utils.ts +7 -0
  49. package/src/libre-office/utils/tests/libre-office.utils.test.ts +15 -0
  50. package/src/main.config.ts +6 -2
  51. package/src/pdf-engines/pdf.engine.ts +52 -1
  52. package/src/pdf-engines/tests/pdf.engine.test.ts +36 -0
@@ -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,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,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,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,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;CACT,CAAC"}
@@ -65,6 +65,9 @@ class LibreOfficeUtils {
65
65
  pageProperties.nativePageRanges.from, 'page ranges syntax error');
66
66
  data.append('nativePageRanges', `${pageProperties.nativePageRanges.from}-${pageProperties.nativePageRanges.to}`);
67
67
  }
68
+ if (pageProperties.exportFormFields === false) {
69
+ data.append('exportFormFields', String(pageProperties.exportFormFields));
70
+ }
68
71
  }
69
72
  }
70
73
  exports.LibreOfficeUtils = LibreOfficeUtils;
@@ -1 +1 @@
1
- {"version":3,"file":"libre-office.utils.js","sourceRoot":"","sources":["../../../src/libre-office/utils/libre-office.utils.ts"],"names":[],"mappings":";;;;AAAA,2BAAuE;AACvE,wDAAwB;AAExB,yCAAmD;AAInD,yCAAoE;AACpE,2CAAsD;AAGtD;;GAEG;AACH,MAAa,gBAAgB;IACzB;;;;;;OAMG;IACI,MAAM,CAAO,QAAQ,CACxB,KAA6B,EAC7B,IAAc;;YAEd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,IAAI,QAAQ,CAAC;gBAEb,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,QAAQ,GAAG,MAAM,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;qBAAM,IAAI,KAAK,YAAY,eAAU,EAAE,CAAC;oBACrC,QAAQ,GAAG,MAAM,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACJ,MAAM,aAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjD,QAAQ,GAAG,EAAE,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,IAAI,GAAG,IAAA,qBAAgB,EAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;gBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAE/B,IAAI,mCAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAC3B,IAAc,EACd,cAA8B;QAE9B,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAClC,uBAAc,CAAC,MAAM,CACjB,cAAc,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC;gBACpC,cAAc,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;gBACtC,cAAc,CAAC,gBAAgB,CAAC,EAAE;oBAC9B,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAC5C,0BAA0B,CAC7B,CAAC;YAEF,IAAI,CAAC,MAAM,CACP,kBAAkB,EAClB,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAClF,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAtED,4CAsEC"}
1
+ {"version":3,"file":"libre-office.utils.js","sourceRoot":"","sources":["../../../src/libre-office/utils/libre-office.utils.ts"],"names":[],"mappings":";;;;AAAA,2BAAuE;AACvE,wDAAwB;AAExB,yCAAmD;AAInD,yCAAoE;AACpE,2CAAsD;AAGtD;;GAEG;AACH,MAAa,gBAAgB;IACzB;;;;;;OAMG;IACI,MAAM,CAAO,QAAQ,CACxB,KAA6B,EAC7B,IAAc;;YAEd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,IAAI,QAAQ,CAAC;gBAEb,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,QAAQ,GAAG,MAAM,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;qBAAM,IAAI,KAAK,YAAY,eAAU,EAAE,CAAC;oBACrC,QAAQ,GAAG,MAAM,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACJ,MAAM,aAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjD,QAAQ,GAAG,EAAE,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,IAAI,GAAG,IAAA,qBAAgB,EAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;gBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAE/B,IAAI,mCAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAC3B,IAAc,EACd,cAA8B;QAE9B,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAClC,uBAAc,CAAC,MAAM,CACjB,cAAc,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC;gBACpC,cAAc,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;gBACtC,cAAc,CAAC,gBAAgB,CAAC,EAAE;oBAC9B,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAC5C,0BAA0B,CAC7B,CAAC;YAEF,IAAI,CAAC,MAAM,CACP,kBAAkB,EAClB,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAClF,CAAC;QACN,CAAC;QAED,IAAI,cAAc,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CACP,kBAAkB,EAClB,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAC1C,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AA7ED,4CA6EC"}
@@ -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.10.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.12.4",
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.5.0",
56
+ "@typescript-eslint/parser": "7.5.0",
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
+ };
@@ -1,4 +1,5 @@
1
1
  export type PageProperties = {
2
2
  landscape?: boolean; // Set the paper orientation to landscape (default false)
3
3
  nativePageRanges?: { from: number; to: number }; // Page ranges to print
4
+ exportFormFields?: boolean; // Set whether to export the form fields or to use the inputted/selected content of the fields (default true)
4
5
  };