chromiumly 2.10.0 → 3.0.1

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 (43) hide show
  1. package/README.md +51 -29
  2. package/dist/libre-office/index.d.ts +1 -2
  3. package/dist/libre-office/index.js +3 -3
  4. package/dist/libre-office/index.js.map +1 -1
  5. package/dist/libre-office/interfaces/libre-office.types.d.ts +18 -0
  6. package/dist/libre-office/libre-office.d.ts +27 -0
  7. package/dist/libre-office/libre-office.js +41 -0
  8. package/dist/libre-office/libre-office.js.map +1 -0
  9. package/dist/libre-office/utils/libre-office.utils.d.ts +10 -2
  10. package/dist/libre-office/utils/libre-office.utils.js +47 -26
  11. package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
  12. package/dist/main.d.ts +2 -1
  13. package/dist/main.js +4 -2
  14. package/dist/main.js.map +1 -1
  15. package/dist/pdf-engines/index.d.ts +1 -1
  16. package/dist/pdf-engines/index.js +3 -3
  17. package/dist/pdf-engines/index.js.map +1 -1
  18. package/dist/pdf-engines/interfaces/pdf-engines.types.d.ts +8 -0
  19. package/dist/pdf-engines/interfaces/pdf-engines.types.js +3 -0
  20. package/dist/pdf-engines/interfaces/pdf-engines.types.js.map +1 -0
  21. package/dist/pdf-engines/{pdf.engine.d.ts → pdf-engines.d.ts} +9 -15
  22. package/dist/pdf-engines/{pdf.engine.js → pdf-engines.js} +22 -28
  23. package/dist/pdf-engines/pdf-engines.js.map +1 -0
  24. package/dist/pdf-engines/utils/{engine.utils.d.ts → pdf-engines.utils.d.ts} +10 -1
  25. package/dist/pdf-engines/utils/{engine.utils.js → pdf-engines.utils.js} +24 -4
  26. package/dist/pdf-engines/utils/pdf-engines.utils.js.map +1 -0
  27. package/package.json +3 -4
  28. package/src/chromium/interfaces/common.types.ts +1 -1
  29. package/src/libre-office/index.ts +1 -2
  30. package/src/libre-office/interfaces/libre-office.types.ts +150 -0
  31. package/src/libre-office/libre-office.ts +56 -0
  32. package/src/libre-office/tests/libre-office.test.ts +56 -0
  33. package/src/libre-office/utils/libre-office.utils.ts +61 -32
  34. package/src/libre-office/utils/tests/libre-office.utils.test.ts +9 -10
  35. package/src/main.ts +2 -1
  36. package/src/pdf-engines/index.ts +1 -1
  37. package/src/pdf-engines/interfaces/pdf-engines.types.ts +10 -0
  38. package/src/pdf-engines/{pdf.engine.ts → pdf-engines.ts} +27 -39
  39. package/src/pdf-engines/tests/pdf.engine.test.ts +20 -19
  40. package/src/pdf-engines/utils/{engine.utils.ts → pdf-engines.utils.ts} +29 -1
  41. package/src/pdf-engines/utils/tests/{engine.utils.test.ts → pdf-engines.utils.test.ts} +6 -7
  42. package/dist/pdf-engines/pdf.engine.js.map +0 -1
  43. package/dist/pdf-engines/utils/engine.utils.js.map +0 -1
@@ -1 +1 @@
1
- export { PDFEngine } from './pdf.engine';
1
+ export { PDFEngines } from './pdf-engines';
@@ -0,0 +1,10 @@
1
+ import { Metadata, PdfFormat } from '../../common';
2
+
3
+ export type ConversionOptions = {
4
+ pdfa?: PdfFormat;
5
+ pdfUA?: boolean;
6
+ };
7
+
8
+ export type MergeOptions = ConversionOptions & {
9
+ metadata?: Metadata;
10
+ };
@@ -10,13 +10,12 @@ import {
10
10
  PdfFormat,
11
11
  Metadata
12
12
  } from '../common';
13
- import { LibreOfficeUtils, PageProperties } from '../libre-office';
14
- import { PDFEngineUtils } from './utils/engine.utils';
13
+ import { PDFEnginesUtils } from './utils/pdf-engines.utils';
15
14
 
16
15
  /**
17
- * Class representing a PDF engine for various operations such as merging and conversion.
16
+ * Class uses PDF engines for various operations such as merging and conversion.
18
17
  */
19
- export class PDFEngine {
18
+ export class PDFEngines {
20
19
  /**
21
20
  * Merges multiple PDF files into a single PDF document.
22
21
  *
@@ -25,12 +24,23 @@ export class PDFEngine {
25
24
  * @returns {Promise<Buffer>} A Promise resolving to the merged PDF content as a Buffer.
26
25
  */
27
26
  public static async merge({
28
- files
27
+ files,
28
+ pdfa,
29
+ pdfUA,
30
+ metadata
29
31
  }: {
30
32
  files: PathLikeOrReadStream[];
33
+ pdfa?: PdfFormat;
34
+ pdfUA?: boolean;
35
+ metadata?: Metadata;
31
36
  }): Promise<Buffer> {
32
37
  const data = new FormData();
33
- await PDFEngineUtils.addFiles(files, data);
38
+ await PDFEnginesUtils.addFiles(files, data);
39
+ await PDFEnginesUtils.customize(data, {
40
+ pdfa,
41
+ pdfUA,
42
+ metadata
43
+ });
34
44
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.merge}`;
35
45
  return GotenbergUtils.fetch(endpoint, data);
36
46
  }
@@ -40,48 +50,26 @@ export class PDFEngine {
40
50
  *
41
51
  * @param {Object} options - Options for the conversion operation.
42
52
  * @param {PathLikeOrReadStream[]} options.files - An array of PathLikes or ReadStreams to the files to be converted to PDF.
43
- * @param {PageProperties} [options.properties] - Page properties for the conversion.
44
- * @param {PdfFormat} [options.pdfFormat] - PDF format options.
53
+ * @param {pdfa} [options.pdfa] - PDF format options.
45
54
  * @param {boolean} [options.pdfUA] - Indicates whether to generate PDF/UA compliant output.
46
- * @param {boolean} [options.merge] - Indicates whether to merge the resulting PDFs.
47
55
  * @returns {Promise<Buffer>} A Promise resolving to the converted PDF content as a Buffer.
48
56
  */
49
57
  public static async convert({
50
58
  files,
51
- properties,
52
- pdfFormat,
53
- pdfUA,
54
- merge
59
+ pdfa,
60
+ pdfUA
55
61
  }: {
56
62
  files: PathLikeOrReadStream[];
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
- */
62
- pdfFormat?: PdfFormat;
63
+ pdfa?: PdfFormat;
63
64
  pdfUA?: boolean;
64
- merge?: boolean;
65
65
  }): Promise<Buffer> {
66
66
  const data = new FormData();
67
67
 
68
- if (pdfFormat) {
69
- data.append('pdfa', pdfFormat);
70
- }
71
-
72
- if (pdfUA) {
73
- data.append('pdfUA', String(pdfUA));
74
- }
75
-
76
- if (merge) {
77
- data.append('merge', String(merge));
78
- }
79
-
80
- if (properties) {
81
- LibreOfficeUtils.addPageProperties(data, properties);
82
- }
83
-
84
- await LibreOfficeUtils.addFiles(files, data);
68
+ await PDFEnginesUtils.addFiles(files, data);
69
+ await PDFEnginesUtils.customize(data, {
70
+ pdfa,
71
+ pdfUA
72
+ });
85
73
 
86
74
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.LIBRE_OFFICE_PATH}/${Chromiumly.LIBRE_OFFICE_ROUTES.convert}`;
87
75
 
@@ -99,7 +87,7 @@ export class PDFEngine {
99
87
  ): Promise<Buffer> {
100
88
  const data = new FormData();
101
89
 
102
- await PDFEngineUtils.addFiles(files, data);
90
+ await PDFEnginesUtils.addFiles(files, data);
103
91
 
104
92
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.readMetadata}`;
105
93
 
@@ -123,7 +111,7 @@ export class PDFEngine {
123
111
  const data = new FormData();
124
112
  data.append('metadata', JSON.stringify(metadata));
125
113
 
126
- await PDFEngineUtils.addFiles(files, data);
114
+ await PDFEnginesUtils.addFiles(files, data);
127
115
 
128
116
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.writeMetadata}`;
129
117
 
@@ -6,12 +6,12 @@ import fetch from 'node-fetch';
6
6
  import path from 'path';
7
7
 
8
8
  import { PdfFormat } from '../../common';
9
- import { PDFEngine } from '../pdf.engine';
9
+ import { PDFEngines } from '../pdf-engines';
10
10
 
11
11
  const { Response } = jest.requireActual('node-fetch');
12
12
  jest.mock('node-fetch', () => jest.fn());
13
13
 
14
- describe('PDFEngine', () => {
14
+ describe('PDFEngines', () => {
15
15
  const mockPromisesAccess = jest.spyOn(promises, 'access');
16
16
  const mockFetch = fetch as jest.MockedFunction<typeof fetch>;
17
17
  const mockFormDataAppend = jest.spyOn(FormData.prototype, 'append');
@@ -31,8 +31,8 @@ describe('PDFEngine', () => {
31
31
  it('should return a buffer', async () => {
32
32
  mockPromisesAccess.mockResolvedValue();
33
33
  mockFetch.mockResolvedValue(new Response('content'));
34
- const buffer = await PDFEngine.convert({
35
- files: ['path/to/file.docx', 'path/to/file.bib']
34
+ const buffer = await PDFEngines.convert({
35
+ files: ['path/to/file_1.pdf', 'path/to/file_2.pdf']
36
36
  });
37
37
  expect(buffer).toEqual(Buffer.from('content'));
38
38
  expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
@@ -43,15 +43,13 @@ describe('PDFEngine', () => {
43
43
  it('should return a buffer', async () => {
44
44
  mockPromisesAccess.mockResolvedValue();
45
45
  mockFetch.mockResolvedValue(new Response('content'));
46
- const buffer = await PDFEngine.convert({
47
- files: ['path/to/file.docx', 'path/to/file.bib'],
48
- properties: { landscape: true },
49
- pdfFormat: PdfFormat.A_1a,
50
- pdfUA: true,
51
- merge: true
46
+ const buffer = await PDFEngines.convert({
47
+ files: ['path/to/file_1.pdf', 'path/to/file_2.pdf'],
48
+ pdfa: PdfFormat.A_2b,
49
+ pdfUA: true
52
50
  });
53
51
  expect(buffer).toEqual(Buffer.from('content'));
54
- expect(mockFormDataAppend).toHaveBeenCalledTimes(6);
52
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(4);
55
53
  });
56
54
  });
57
55
  });
@@ -60,11 +58,14 @@ describe('PDFEngine', () => {
60
58
  it('should return a buffer', async () => {
61
59
  mockPromisesAccess.mockResolvedValue();
62
60
  mockFetch.mockResolvedValue(new Response('content'));
63
- const buffer = await PDFEngine.merge({
64
- files: ['path/to/file.pdf', 'path/to/another-file.pdf']
61
+ const buffer = await PDFEngines.merge({
62
+ files: ['path/to/file.pdf', 'path/to/another-file.pdf'],
63
+ pdfa: PdfFormat.A_2b,
64
+ pdfUA: true,
65
+ metadata: { Author: 'John Doe' }
65
66
  });
66
67
  expect(buffer).toEqual(Buffer.from('content'));
67
- expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
68
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(5);
68
69
  });
69
70
  });
70
71
 
@@ -72,7 +73,7 @@ describe('PDFEngine', () => {
72
73
  it('should return a buffer', async () => {
73
74
  mockPromisesAccess.mockResolvedValue();
74
75
  mockFetch.mockResolvedValue(new Response('content'));
75
- const buffer = await PDFEngine.readMetadata(['path/to/file.pdf']);
76
+ const buffer = await PDFEngines.readMetadata(['path/to/file.pdf']);
76
77
  expect(buffer).toEqual(Buffer.from('content'));
77
78
  expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
78
79
  });
@@ -82,7 +83,7 @@ describe('PDFEngine', () => {
82
83
  it('should return a buffer', async () => {
83
84
  mockPromisesAccess.mockResolvedValue();
84
85
  mockFetch.mockResolvedValue(new Response('content'));
85
- const buffer = await PDFEngine.writeMetadata({
86
+ const buffer = await PDFEngines.writeMetadata({
86
87
  files: ['path/to/file.pdf'],
87
88
  metadata: {
88
89
  Author: 'John Doe',
@@ -127,7 +128,7 @@ describe('PDFEngine', () => {
127
128
  .spyOn(fs, 'writeFile')
128
129
  .mockResolvedValueOnce();
129
130
 
130
- await PDFEngine.generate(mockFilename, mockBuffer);
131
+ await PDFEngines.generate(mockFilename, mockBuffer);
131
132
 
132
133
  expect(mockPromisesMkDir).toHaveBeenCalledWith(mockGeneratedDir, {
133
134
  recursive: true
@@ -145,7 +146,7 @@ describe('PDFEngine', () => {
145
146
  );
146
147
 
147
148
  await expect(
148
- PDFEngine.generate(mockFilename, mockBuffer)
149
+ PDFEngines.generate(mockFilename, mockBuffer)
149
150
  ).rejects.toThrow('Cannot create directory');
150
151
  });
151
152
 
@@ -155,7 +156,7 @@ describe('PDFEngine', () => {
155
156
  );
156
157
 
157
158
  await expect(
158
- PDFEngine.generate(mockFilename, mockBuffer)
159
+ PDFEngines.generate(mockFilename, mockBuffer)
159
160
  ).rejects.toThrow('Failed to write to file');
160
161
  });
161
162
  });
@@ -3,11 +3,15 @@ import path from 'path';
3
3
 
4
4
  import FormData from 'form-data';
5
5
  import { PathLikeOrReadStream } from '../../common';
6
+ import {
7
+ ConversionOptions,
8
+ MergeOptions
9
+ } from '../interfaces/pdf-engines.types';
6
10
 
7
11
  /**
8
12
  * Utility class for handling common tasks related to PDF engine operations.
9
13
  */
10
- export class PDFEngineUtils {
14
+ export class PDFEnginesUtils {
11
15
  /**
12
16
  * Adds PDF files to the FormData object.
13
17
  *
@@ -37,4 +41,28 @@ export class PDFEngineUtils {
37
41
  }
38
42
  }
39
43
  }
44
+
45
+ /**
46
+ * Customizes the FormData object based on the provided conversion options.
47
+ *
48
+ * @param {FormData} data - The FormData object to be customized.
49
+ * @param {ConversionOptions | MergeOptions} options - The options to apply to the FormData.
50
+ * @returns {Promise<void>} A Promise that resolves once the customization is complete.
51
+ */
52
+ public static async customize(
53
+ data: FormData,
54
+ options: ConversionOptions | MergeOptions
55
+ ): Promise<void> {
56
+ if (options.pdfa) {
57
+ data.append('pdfa', options.pdfa);
58
+ }
59
+
60
+ if (options.pdfUA) {
61
+ data.append('pdfUA', String(options.pdfUA));
62
+ }
63
+
64
+ if ('metadata' in options && options.metadata) {
65
+ data.append('metadata', JSON.stringify(options.metadata));
66
+ }
67
+ }
40
68
  }
@@ -1,10 +1,9 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
2
  import { createReadStream, promises } from 'fs';
3
3
  import FormData from 'form-data';
4
+ import { PDFEnginesUtils } from '../pdf-engines.utils';
4
5
 
5
- import { PDFEngineUtils } from '../engine.utils';
6
-
7
- describe('PDFEngineUtils', () => {
6
+ describe('PDFEnginesUtils', () => {
8
7
  const mockPromisesAccess = jest.spyOn(promises, 'access');
9
8
  const mockFormDataAppend = jest.spyOn(FormData.prototype, 'append');
10
9
  const data = new FormData();
@@ -24,7 +23,7 @@ describe('PDFEngineUtils', () => {
24
23
  describe('when files parameter contains paths', () => {
25
24
  it('should append each file to data', async () => {
26
25
  mockPromisesAccess.mockResolvedValue();
27
- await PDFEngineUtils.addFiles(
26
+ await PDFEnginesUtils.addFiles(
28
27
  ['path/to/file.pdf', 'path/to/another-file.pdf'],
29
28
  data
30
29
  );
@@ -34,7 +33,7 @@ describe('PDFEngineUtils', () => {
34
33
  describe('when files parameter contains a buffer', () => {
35
34
  it('should append each file to data', async () => {
36
35
  mockPromisesAccess.mockResolvedValue();
37
- await PDFEngineUtils.addFiles(
36
+ await PDFEnginesUtils.addFiles(
38
37
  [Buffer.from('data'), 'path/to/another-file.pdf'],
39
38
  data
40
39
  );
@@ -47,7 +46,7 @@ describe('PDFEngineUtils', () => {
47
46
  it('should throw an error', async () => {
48
47
  mockPromisesAccess.mockResolvedValue();
49
48
  await expect(() =>
50
- PDFEngineUtils.addFiles(
49
+ PDFEnginesUtils.addFiles(
51
50
  ['path/to/file.docx', 'path/to/file.pdf'],
52
51
  data
53
52
  )
@@ -61,7 +60,7 @@ describe('PDFEngineUtils', () => {
61
60
  "ENOENT: no such file or directory, access 'path/to/index.html'";
62
61
  mockPromisesAccess.mockRejectedValue(new Error(errorMessage));
63
62
  await expect(() =>
64
- PDFEngineUtils.addFiles(
63
+ PDFEnginesUtils.addFiles(
65
64
  ['path/to/file.pdf', 'path/to/another-file.pdf'],
66
65
  data
67
66
  )
@@ -1 +0,0 @@
1
- {"version":3,"file":"pdf.engine.js","sourceRoot":"","sources":["../../src/pdf-engines/pdf.engine.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../src/pdf-engines/utils/engine.utils.ts"],"names":[],"mappings":";;;;AAAA,2BAAuE;AACvE,wDAAwB;AAKxB;;GAEG;AACH,MAAa,cAAc;IACvB;;;;;;OAMG;IACI,MAAM,CAAO,QAAQ,CACxB,KAA6B,EAC7B,IAAc;;YAEd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;gBAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,IAAI,YAAY,eAAU,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,MAAM,aAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChD,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACzC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAA,qBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;KAAA;CACJ;AA9BD,wCA8BC"}