@digipair/skill-pdf 0.89.0 → 0.91.0-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.
- package/.swcrc +28 -0
- package/README.md +7 -0
- package/eslint.config.mjs +22 -0
- package/package.json +23 -7
- package/rollup.config.cjs +28 -0
- package/src/lib/skill-pdf.spec.ts +7 -0
- package/src/lib/skill-pdf.ts +108 -0
- package/tsconfig.json +13 -0
- package/tsconfig.lib.json +19 -0
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -27741
- package/index.esm.js +0 -27734
- package/libs/skill-pdf/src/lib/skill-pdf.d.ts +0 -4
- /package/{index.d.ts → src/index.d.ts} +0 -0
- /package/{libs/skill-pdf/src/index.d.ts → src/index.ts} +0 -0
- /package/{schema.fr.json → src/schema.fr.json} +0 -0
- /package/{schema.json → src/schema.json} +0 -0
package/.swcrc
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"jsc": {
|
3
|
+
"target": "es2017",
|
4
|
+
"parser": {
|
5
|
+
"syntax": "typescript",
|
6
|
+
"decorators": true,
|
7
|
+
"dynamicImport": true
|
8
|
+
},
|
9
|
+
"transform": {
|
10
|
+
"decoratorMetadata": true,
|
11
|
+
"legacyDecorator": true
|
12
|
+
},
|
13
|
+
"keepClassNames": true,
|
14
|
+
"externalHelpers": true,
|
15
|
+
"loose": true
|
16
|
+
},
|
17
|
+
"module": {
|
18
|
+
"type": "es6"
|
19
|
+
},
|
20
|
+
"sourceMaps": true,
|
21
|
+
"exclude": [
|
22
|
+
"jest.config.ts",
|
23
|
+
".*\\.spec.tsx?$",
|
24
|
+
".*\\.test.tsx?$",
|
25
|
+
"./src/jest-setup.ts$",
|
26
|
+
"./**/jest-setup.ts$"
|
27
|
+
]
|
28
|
+
}
|
package/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
import baseConfig from '../../eslint.config.mjs';
|
2
|
+
|
3
|
+
export default [
|
4
|
+
...baseConfig,
|
5
|
+
{
|
6
|
+
files: ['**/*.json'],
|
7
|
+
rules: {
|
8
|
+
'@nx/dependency-checks': [
|
9
|
+
'error',
|
10
|
+
{
|
11
|
+
ignoredFiles: [
|
12
|
+
'{projectRoot}/eslint.config.{js,cjs,mjs}',
|
13
|
+
'{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
|
14
|
+
],
|
15
|
+
},
|
16
|
+
],
|
17
|
+
},
|
18
|
+
languageOptions: {
|
19
|
+
parser: await import('jsonc-eslint-parser'),
|
20
|
+
},
|
21
|
+
},
|
22
|
+
];
|
package/package.json
CHANGED
@@ -1,12 +1,28 @@
|
|
1
1
|
{
|
2
2
|
"name": "@digipair/skill-pdf",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.91.0-0",
|
4
|
+
"type": "module",
|
5
|
+
"main": "dist/libs/skill-pdf/index.cjs.js",
|
6
|
+
"module": "dist/libs/skill-pdf/index.esm.js",
|
7
|
+
"types": "dist/libs/skill-pdf/index.esm.d.ts",
|
8
|
+
"exports": {
|
9
|
+
"./package.json": "./libs/skill-pdf/package.json",
|
10
|
+
".": {
|
11
|
+
"development": "./dist/libs/skill-pdf/src/index.ts",
|
12
|
+
"types": "./dist/libs/skill-pdf/index.esm.d.ts",
|
13
|
+
"import": "./dist/libs/skill-pdf/index.esm.js",
|
14
|
+
"default": "./dist/libs/skill-pdf/index.cjs.js"
|
15
|
+
}
|
16
|
+
},
|
4
17
|
"keywords": [
|
5
18
|
"digipair",
|
6
|
-
"
|
7
|
-
"
|
19
|
+
"tool",
|
20
|
+
"service"
|
8
21
|
],
|
9
|
-
"
|
10
|
-
|
11
|
-
|
12
|
-
|
22
|
+
"nx": {
|
23
|
+
"name": "skill-pdf"
|
24
|
+
},
|
25
|
+
"dependencies": {
|
26
|
+
"@digipair/engine": "0.91.0-0"
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
const { withNx } = require('@nx/rollup/with-nx');
|
2
|
+
|
3
|
+
module.exports = withNx(
|
4
|
+
{
|
5
|
+
main: 'libs/skill-pdf/src/index.ts',
|
6
|
+
outputPath: 'dist/libs/skill-pdf',
|
7
|
+
tsConfig: 'libs/skill-pdf/tsconfig.lib.json',
|
8
|
+
compiler: 'swc',
|
9
|
+
format: ['esm', "cjs"],
|
10
|
+
assets: [
|
11
|
+
{
|
12
|
+
input: 'libs/skill-pdf/',
|
13
|
+
glob: 'package.json',
|
14
|
+
output: '.'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
input: 'libs/skill-pdf/src/',
|
18
|
+
glob: '*.json',
|
19
|
+
output: '.'
|
20
|
+
}
|
21
|
+
]
|
22
|
+
},
|
23
|
+
{
|
24
|
+
// Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
|
25
|
+
// e.g.
|
26
|
+
// output: { sourcemap: true },
|
27
|
+
}
|
28
|
+
);
|
@@ -0,0 +1,108 @@
|
|
1
|
+
import { PinsSettings } from '@digipair/engine';
|
2
|
+
import { PDFDocument } from 'pdf-lib';
|
3
|
+
|
4
|
+
class PDFService {
|
5
|
+
private base64ToPdf(base64: string) {
|
6
|
+
const data = base64.replace(/^data:.*;base64,/, '');
|
7
|
+
const buffer = Buffer.from(data, 'base64');
|
8
|
+
return buffer;
|
9
|
+
}
|
10
|
+
|
11
|
+
async fillForm(params: any, _pinsSettingsList: PinsSettings[], _context: any) {
|
12
|
+
const { file, data, flatten = false } = params;
|
13
|
+
|
14
|
+
const buffer = this.base64ToPdf(file);
|
15
|
+
const document = await PDFDocument.load(buffer);
|
16
|
+
const form = document.getForm();
|
17
|
+
const fields = form.getFields().filter(field => data[field.getName()] !== undefined);
|
18
|
+
|
19
|
+
for (const field of fields) {
|
20
|
+
const name = field.getName();
|
21
|
+
const value = data[name];
|
22
|
+
const type = field.constructor.name;
|
23
|
+
|
24
|
+
switch (type) {
|
25
|
+
case 'PDFTextField':
|
26
|
+
form.getTextField(name).setText(value);
|
27
|
+
break;
|
28
|
+
case 'PDFCheckBox':
|
29
|
+
value ? form.getCheckBox(name).check() : form.getCheckBox(name).uncheck();
|
30
|
+
break;
|
31
|
+
case 'PDFRadioGroup':
|
32
|
+
form.getRadioGroup(name).select(value);
|
33
|
+
break;
|
34
|
+
case 'PDFDropdown':
|
35
|
+
form.getDropdown(name).select(value);
|
36
|
+
break;
|
37
|
+
default:
|
38
|
+
break;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
if (flatten) {
|
43
|
+
form.flatten();
|
44
|
+
}
|
45
|
+
|
46
|
+
return document.saveAsBase64({ dataUri: true });
|
47
|
+
}
|
48
|
+
|
49
|
+
async getFields(params: any, _pinsSettingsList: PinsSettings[], _context: any) {
|
50
|
+
const { file } = params;
|
51
|
+
|
52
|
+
const buffer = this.base64ToPdf(file);
|
53
|
+
const document = await PDFDocument.load(buffer);
|
54
|
+
const form = document.getForm();
|
55
|
+
const fields = form
|
56
|
+
.getFields()
|
57
|
+
.filter(field =>
|
58
|
+
['PDFTextField', 'PDFCheckBox', 'PDFRadioGroup', 'PDFDropdown'].includes(
|
59
|
+
field.constructor.name,
|
60
|
+
),
|
61
|
+
)
|
62
|
+
.reduce((acc, field) => {
|
63
|
+
const name = field.getName();
|
64
|
+
const type = field.constructor.name;
|
65
|
+
let value;
|
66
|
+
|
67
|
+
switch (type) {
|
68
|
+
case 'PDFTextField':
|
69
|
+
value = form.getTextField(name).getText();
|
70
|
+
break;
|
71
|
+
case 'PDFCheckBox':
|
72
|
+
value = form.getCheckBox(name).isChecked();
|
73
|
+
break;
|
74
|
+
case 'PDFRadioGroup':
|
75
|
+
value = form.getRadioGroup(name).getSelected();
|
76
|
+
break;
|
77
|
+
case 'PDFDropdown':
|
78
|
+
value = form.getDropdown(name).getSelected();
|
79
|
+
break;
|
80
|
+
default:
|
81
|
+
break;
|
82
|
+
}
|
83
|
+
|
84
|
+
acc[name] = value;
|
85
|
+
return acc;
|
86
|
+
}, {} as any);
|
87
|
+
|
88
|
+
return fields;
|
89
|
+
}
|
90
|
+
|
91
|
+
async getSize(params: any, _pinsSettingsList: PinsSettings[], _context: any) {
|
92
|
+
const { file } = params;
|
93
|
+
|
94
|
+
const buffer = this.base64ToPdf(file);
|
95
|
+
const document = await PDFDocument.load(buffer);
|
96
|
+
|
97
|
+
return document.getPages().length;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
export const fillForm = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
102
|
+
new PDFService().fillForm(params, pinsSettingsList, context);
|
103
|
+
|
104
|
+
export const getFields = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
105
|
+
new PDFService().getFields(params, pinsSettingsList, context);
|
106
|
+
|
107
|
+
export const getSize = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
108
|
+
new PDFService().getSize(params, pinsSettingsList, context);
|
package/tsconfig.json
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"extends": "../../tsconfig.base.json",
|
3
|
+
"compilerOptions": {
|
4
|
+
"rootDir": "src",
|
5
|
+
"outDir": "dist",
|
6
|
+
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
7
|
+
"emitDeclarationOnly": true,
|
8
|
+
"module": "esnext",
|
9
|
+
"moduleResolution": "node",
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
11
|
+
"types": ["node"]
|
12
|
+
},
|
13
|
+
"include": ["src/**/*.ts"],
|
14
|
+
"references": [
|
15
|
+
{
|
16
|
+
"path": "../engine/tsconfig.lib.json"
|
17
|
+
}
|
18
|
+
]
|
19
|
+
}
|
package/index.cjs.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from "./src/index";
|