chromiumly 4.1.0 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -352,6 +352,7 @@ Similarly to Chromium's route `convert` method, this method takes the following
352
352
  - `reduceImageResolution`: allows turning on or off image resolution reduction to tweak image conversion performance.
353
353
  - `quality`: specifies the quality of the JPG export. The value ranges from 1 to 100, with higher values producing higher-quality images and larger file sizes.
354
354
  - `maxImageResolution`: specifies if all images will be reduced to the specified DPI value. Possible values are: `75`, `150`, `300`, `600`, and `1200`.
355
+ - `flatten`: a boolean that, when set to true, flattens the split PDF files, making form fields and annotations uneditable.
355
356
 
356
357
  ### PDF Engines
357
358
 
@@ -439,6 +440,7 @@ Each [Chromium](#chromium) and [LibreOffice](#libreoffice) route has a `split` p
439
440
  - `mode`: the mode of the split. It can be `pages` or `intervals`.
440
441
  - `span`: the span of the split. It is a string that represents the range of pages to split.
441
442
  - `unify`: a boolean that allows unifying the split files. Only works when `mode` is `pages`.
443
+ - `flatten`: a boolean that, when set to true, flattens the split PDF files, making form fields and annotations uneditable.
442
444
 
443
445
  ```typescript
444
446
  import { UrlConverter } from "chromiumly";
@@ -469,6 +471,18 @@ const buffer = await PDFEngines.split({
469
471
 
470
472
  > ⚠️ **Note**: Gotenberg does not currently validate the `span` value when `mode` is set to `pages`, as the validation depends on the chosen engine for the split feature. See [PDF Engines module configuration](https://gotenberg.dev/docs/configuration#pdf-engines) for more details.
471
473
 
474
+ ### PDF Flattening
475
+
476
+ PDF flattening converts interactive elements like forms and annotations into a static PDF. This ensures the document looks the same everywhere and prevents further edits.
477
+
478
+ ```typescript
479
+ import { PDFEngines } from "chromiumly";
480
+
481
+ const buffer = await PDFEngines.flatten({
482
+ files: ["path/to/file_1.pdf", "path/to/file_2.pdf"],
483
+ });
484
+ ```
485
+
472
486
  ## Snippet
473
487
 
474
488
  The following is a short snippet of how to use the library.
@@ -35,7 +35,7 @@ class PDFEnginesUtils {
35
35
  const extension = path_1.default.extname(_filename);
36
36
  if (extension === '.pdf') {
37
37
  const content = yield (0, fs_1.openAsBlob)(file);
38
- data.append(_filename, content);
38
+ data.append('files', content, _filename);
39
39
  }
40
40
  else {
41
41
  throw new Error(`${extension} is not supported`);
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-engines.utils.js","sourceRoot":"","sources":["../../../src/pdf-engines/utils/pdf-engines.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-engines.utils.js","sourceRoot":"","sources":["../../../src/pdf-engines/utils/pdf-engines.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chromiumly",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
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",
@@ -44,34 +44,34 @@
44
44
  }
45
45
  },
46
46
  "devDependencies": {
47
- "@babel/preset-typescript": "7.26.0",
47
+ "@babel/preset-typescript": "7.27.1",
48
48
  "@commitlint/cli": "^19.0.3",
49
49
  "@commitlint/config-conventional": "^19.0.3",
50
50
  "@commitlint/cz-commitlint": "^19.0.3",
51
- "@release-it/conventional-changelog": "10.0.0",
51
+ "@release-it/conventional-changelog": "10.0.1",
52
52
  "@types/config": "3.3.5",
53
53
  "@types/dotenv": "8.2.3",
54
- "@types/jest": "29.5.14",
55
- "@types/node": "22.13.10",
56
- "@typescript-eslint/eslint-plugin": "8.26.1",
57
- "@typescript-eslint/parser": "8.26.1",
54
+ "@types/jest": "30.0.0",
55
+ "@types/node": "22.15.32",
56
+ "@typescript-eslint/eslint-plugin": "8.34.1",
57
+ "@typescript-eslint/parser": "8.34.1",
58
58
  "commitizen": "4.3.1",
59
59
  "eslint": "8.57.0",
60
60
  "eslint-config-prettier": "^10.0.0",
61
61
  "husky": "^9.0.11",
62
62
  "inquirer": "8",
63
- "jest": "29.7.0",
63
+ "jest": "30.0.2",
64
64
  "jest-junit": "16.0.0",
65
- "lint-staged": "^15.2.2",
66
- "prettier": "3.5.3",
67
- "release-it": "18.1.2",
68
- "ts-jest": "29.2.6",
65
+ "lint-staged": "^16.0.0",
66
+ "prettier": "3.6.0",
67
+ "release-it": "19.0.3",
68
+ "ts-jest": "29.4.0",
69
69
  "ts-node": "10.9.2",
70
70
  "tslib": "2.8.1",
71
- "typescript": "5.8.2"
71
+ "typescript": "5.8.3"
72
72
  },
73
73
  "optionalDependencies": {
74
- "config": "3.x",
74
+ "config": "4.x",
75
75
  "dotenv": "16.x"
76
76
  },
77
77
  "lint-staged": {