chromiumly 3.0.1 → 3.2.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 (60) hide show
  1. package/README.md +43 -2
  2. package/dist/chromium/converters/html.converter.d.ts +4 -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 +4 -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 +4 -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 +10 -0
  12. package/dist/chromium/interfaces/screenshot.types.d.ts +3 -0
  13. package/dist/chromium/screenshots/html.screenshot.js +1 -1
  14. package/dist/chromium/screenshots/html.screenshot.js.map +1 -1
  15. package/dist/chromium/screenshots/markdown.screenshot.js +1 -1
  16. package/dist/chromium/screenshots/markdown.screenshot.js.map +1 -1
  17. package/dist/chromium/screenshots/url.screenshot.js +1 -1
  18. package/dist/chromium/screenshots/url.screenshot.js.map +1 -1
  19. package/dist/chromium/utils/converter.utils.js +3 -0
  20. package/dist/chromium/utils/converter.utils.js.map +1 -1
  21. package/dist/chromium/utils/screenshot.utils.js +9 -0
  22. package/dist/chromium/utils/screenshot.utils.js.map +1 -1
  23. package/dist/common/gotenberg.utils.d.ts +3 -1
  24. package/dist/common/gotenberg.utils.js +10 -2
  25. package/dist/common/gotenberg.utils.js.map +1 -1
  26. package/dist/gotenberg.d.ts +12 -3
  27. package/dist/gotenberg.js +28 -7
  28. package/dist/gotenberg.js.map +1 -1
  29. package/dist/libre-office/interfaces/libre-office.types.d.ts +1 -0
  30. package/dist/libre-office/libre-office.js +1 -1
  31. package/dist/libre-office/libre-office.js.map +1 -1
  32. package/dist/libre-office/utils/libre-office.utils.js +3 -0
  33. package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
  34. package/dist/main.config.d.ts +10 -0
  35. package/dist/main.config.js +10 -0
  36. package/dist/main.config.js.map +1 -1
  37. package/dist/pdf-engines/pdf-engines.js +4 -4
  38. package/dist/pdf-engines/pdf-engines.js.map +1 -1
  39. package/package.json +6 -6
  40. package/src/chromium/converters/html.converter.ts +14 -5
  41. package/src/chromium/converters/markdown.converter.ts +14 -5
  42. package/src/chromium/converters/url.converter.ts +14 -5
  43. package/src/chromium/interfaces/converter.types.ts +11 -0
  44. package/src/chromium/interfaces/screenshot.types.ts +3 -0
  45. package/src/chromium/screenshots/html.screenshot.ts +7 -2
  46. package/src/chromium/screenshots/markdown.screenshot.ts +7 -2
  47. package/src/chromium/screenshots/url.screenshot.ts +7 -2
  48. package/src/chromium/utils/converter.utils.ts +4 -0
  49. package/src/chromium/utils/screenshot.utils.ts +12 -0
  50. package/src/chromium/utils/tests/converter.utils.test.ts +33 -0
  51. package/src/chromium/utils/tests/screenshot.utils.test.ts +56 -2
  52. package/src/common/gotenberg.utils.ts +15 -4
  53. package/src/common/tests/gotenberg.utils.test.ts +20 -3
  54. package/src/gotenberg.ts +29 -5
  55. package/src/libre-office/interfaces/libre-office.types.ts +1 -0
  56. package/src/libre-office/libre-office.ts +6 -1
  57. package/src/libre-office/utils/libre-office.utils.ts +7 -0
  58. package/src/libre-office/utils/tests/libre-office.utils.test.ts +15 -0
  59. package/src/main.config.ts +14 -0
  60. package/src/pdf-engines/pdf-engines.ts +24 -4
package/src/gotenberg.ts CHANGED
@@ -20,11 +20,35 @@ if (dotenvConfig.error) {
20
20
  */
21
21
  export class Gotenberg {
22
22
  /**
23
- * The Gotenberg service endpoint.
24
- * Defaults to the value from the environment variable `GOTENBERG_ENDPOINT`, or falls back to the configuration file.
23
+ * The endpoint for the Gotenberg service.
25
24
  * @type {string}
26
25
  */
27
- public static endpoint: string =
28
- process.env.GOTENBERG_ENDPOINT ||
29
- config.get<string>('gotenberg.endpoint');
26
+ static get endpoint(): string {
27
+ return (
28
+ process.env.GOTENBERG_ENDPOINT ||
29
+ config.get<string>('gotenberg.endpoint')
30
+ );
31
+ }
32
+
33
+ /**
34
+ * The username for basic authentication with the Gotenberg service.
35
+ * @type {string | undefined}
36
+ */
37
+ static get username(): string | undefined {
38
+ const hasUsername = config.has('gotenberg.api.basicAuth.username');
39
+ return hasUsername
40
+ ? config.get<string>('gotenberg.api.basicAuth.username')
41
+ : process.env.GOTENBERG_API_BASIC_AUTH_USERNAME;
42
+ }
43
+
44
+ /**
45
+ * The password for basic authentication with the Gotenberg service.
46
+ * @type {string | undefined}
47
+ */
48
+ static get password(): string | undefined {
49
+ const hasPassword = config.has('gotenberg.api.basicAuth.password');
50
+ return hasPassword
51
+ ? config.get<string>('gotenberg.api.basicAuth.password')
52
+ : process.env.GOTENBERG_API_BASIC_AUTH_PASSWORD;
53
+ }
30
54
  }
@@ -144,6 +144,7 @@ export type PageProperties = {
144
144
  landscape?: boolean; // Set the paper orientation to landscape (default false)
145
145
  nativePageRanges?: { from: number; to: number }; // Page ranges to print
146
146
  exportFormFields?: boolean; // Set whether to export the form fields or to use the inputted/selected content of the fields (default true)
147
+ singlePageSheets?: boolean; // Set whether to render the entire spreadsheet as a single page. (default false)
147
148
  };
148
149
 
149
150
  export type ConversionOptions = {
@@ -51,6 +51,11 @@ export class LibreOffice {
51
51
 
52
52
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.LIBRE_OFFICE_PATH}/${Chromiumly.LIBRE_OFFICE_ROUTES.convert}`;
53
53
 
54
- return GotenbergUtils.fetch(endpoint, data);
54
+ return GotenbergUtils.fetch(
55
+ endpoint,
56
+ data,
57
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_USERNAME,
58
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_PASSWORD
59
+ );
55
60
  }
56
61
  }
@@ -85,6 +85,13 @@ export class LibreOfficeUtils {
85
85
  String(pageProperties.exportFormFields)
86
86
  );
87
87
  }
88
+
89
+ if (pageProperties.singlePageSheets) {
90
+ data.append(
91
+ 'singlePageSheets',
92
+ String(pageProperties.singlePageSheets)
93
+ );
94
+ }
88
95
  }
89
96
 
90
97
  /**
@@ -137,5 +137,20 @@ describe('LibreOfficeUtils', () => {
137
137
  });
138
138
  });
139
139
  });
140
+
141
+ describe('Single page sheets', () => {
142
+ describe('when singlePageSheets parameter is set', () => {
143
+ it('should append singlePageSheets to data', () => {
144
+ LibreOfficeUtils.addPageProperties(data, {
145
+ singlePageSheets: true
146
+ });
147
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
148
+ expect(data.append).toHaveBeenCalledWith(
149
+ 'singlePageSheets',
150
+ 'true'
151
+ );
152
+ });
153
+ });
154
+ });
140
155
  });
141
156
  });
@@ -38,6 +38,20 @@ export class Chromiumly {
38
38
  */
39
39
  public static readonly GOTENBERG_ENDPOINT = Gotenberg.endpoint;
40
40
 
41
+ /**
42
+ * The username for basic authentication with the Gotenberg service.
43
+ * @type {string | undefined}
44
+ */
45
+ public static readonly GOTENBERG_API_BASIC_AUTH_USERNAME =
46
+ Gotenberg.username;
47
+
48
+ /**
49
+ * The password for basic authentication with the Gotenberg service.
50
+ * @type {string | undefined}
51
+ */
52
+ public static readonly GOTENBERG_API_BASIC_AUTH_PASSWORD =
53
+ Gotenberg.password;
54
+
41
55
  /**
42
56
  * The path for Chromium-related conversions.
43
57
  * @type {string}
@@ -42,7 +42,12 @@ export class PDFEngines {
42
42
  metadata
43
43
  });
44
44
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.merge}`;
45
- return GotenbergUtils.fetch(endpoint, data);
45
+ return GotenbergUtils.fetch(
46
+ endpoint,
47
+ data,
48
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_USERNAME,
49
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_PASSWORD
50
+ );
46
51
  }
47
52
 
48
53
  /**
@@ -73,7 +78,12 @@ export class PDFEngines {
73
78
 
74
79
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.LIBRE_OFFICE_PATH}/${Chromiumly.LIBRE_OFFICE_ROUTES.convert}`;
75
80
 
76
- return GotenbergUtils.fetch(endpoint, data);
81
+ return GotenbergUtils.fetch(
82
+ endpoint,
83
+ data,
84
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_USERNAME,
85
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_PASSWORD
86
+ );
77
87
  }
78
88
 
79
89
  /**
@@ -91,7 +101,12 @@ export class PDFEngines {
91
101
 
92
102
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.readMetadata}`;
93
103
 
94
- return GotenbergUtils.fetch(endpoint, data);
104
+ return GotenbergUtils.fetch(
105
+ endpoint,
106
+ data,
107
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_USERNAME,
108
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_PASSWORD
109
+ );
95
110
  }
96
111
 
97
112
  /**
@@ -115,7 +130,12 @@ export class PDFEngines {
115
130
 
116
131
  const endpoint = `${Chromiumly.GOTENBERG_ENDPOINT}/${Chromiumly.PDF_ENGINES_PATH}/${Chromiumly.PDF_ENGINE_ROUTES.writeMetadata}`;
117
132
 
118
- return GotenbergUtils.fetch(endpoint, data);
133
+ return GotenbergUtils.fetch(
134
+ endpoint,
135
+ data,
136
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_USERNAME,
137
+ Chromiumly.GOTENBERG_API_BASIC_AUTH_PASSWORD
138
+ );
119
139
  }
120
140
 
121
141
  /**