@pdfme/generator 5.5.10-dev.13 → 5.5.10-dev.135

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 (96) hide show
  1. package/package.json +27 -62
  2. package/src/generate.ts +2 -3
  3. package/src/helper.ts +2 -2
  4. package/tsconfig.build.json +14 -0
  5. package/tsconfig.json +13 -15
  6. package/vite.config.mts +39 -0
  7. package/vitest.setup.ts +3 -0
  8. package/dist/cjs/__tests__/assets/templates/index.js +0 -49
  9. package/dist/cjs/__tests__/assets/templates/index.js.map +0 -1
  10. package/dist/cjs/__tests__/generate.test.js +0 -277
  11. package/dist/cjs/__tests__/generate.test.js.map +0 -1
  12. package/dist/cjs/__tests__/integration-other.test.js +0 -70
  13. package/dist/cjs/__tests__/integration-other.test.js.map +0 -1
  14. package/dist/cjs/__tests__/integration-playground.test.js +0 -148
  15. package/dist/cjs/__tests__/integration-playground.test.js.map +0 -1
  16. package/dist/cjs/__tests__/integration-segmenter.test.js +0 -50
  17. package/dist/cjs/__tests__/integration-segmenter.test.js.map +0 -1
  18. package/dist/cjs/__tests__/integration-textType.test.js +0 -50
  19. package/dist/cjs/__tests__/integration-textType.test.js.map +0 -1
  20. package/dist/cjs/__tests__/utils.js +0 -70
  21. package/dist/cjs/__tests__/utils.js.map +0 -1
  22. package/dist/cjs/src/constants.js +0 -5
  23. package/dist/cjs/src/constants.js.map +0 -1
  24. package/dist/cjs/src/generate.js +0 -163
  25. package/dist/cjs/src/generate.js.map +0 -1
  26. package/dist/cjs/src/helper.js +0 -144
  27. package/dist/cjs/src/helper.js.map +0 -1
  28. package/dist/cjs/src/index.js +0 -9
  29. package/dist/cjs/src/index.js.map +0 -1
  30. package/dist/cjs/src/types.js +0 -3
  31. package/dist/cjs/src/types.js.map +0 -1
  32. package/dist/esm/__tests__/assets/templates/index.js +0 -46
  33. package/dist/esm/__tests__/assets/templates/index.js.map +0 -1
  34. package/dist/esm/__tests__/generate.test.js +0 -272
  35. package/dist/esm/__tests__/generate.test.js.map +0 -1
  36. package/dist/esm/__tests__/integration-other.test.js +0 -65
  37. package/dist/esm/__tests__/integration-other.test.js.map +0 -1
  38. package/dist/esm/__tests__/integration-playground.test.js +0 -110
  39. package/dist/esm/__tests__/integration-playground.test.js.map +0 -1
  40. package/dist/esm/__tests__/integration-segmenter.test.js +0 -45
  41. package/dist/esm/__tests__/integration-segmenter.test.js.map +0 -1
  42. package/dist/esm/__tests__/integration-textType.test.js +0 -45
  43. package/dist/esm/__tests__/integration-textType.test.js.map +0 -1
  44. package/dist/esm/__tests__/utils.js +0 -32
  45. package/dist/esm/__tests__/utils.js.map +0 -1
  46. package/dist/esm/src/constants.js +0 -2
  47. package/dist/esm/src/constants.js.map +0 -1
  48. package/dist/esm/src/generate.js +0 -128
  49. package/dist/esm/src/generate.js.map +0 -1
  50. package/dist/esm/src/helper.js +0 -103
  51. package/dist/esm/src/helper.js.map +0 -1
  52. package/dist/esm/src/index.js +0 -3
  53. package/dist/esm/src/index.js.map +0 -1
  54. package/dist/esm/src/types.js +0 -2
  55. package/dist/esm/src/types.js.map +0 -1
  56. package/dist/node/__tests__/assets/templates/index.js +0 -49
  57. package/dist/node/__tests__/assets/templates/index.js.map +0 -1
  58. package/dist/node/__tests__/generate.test.js +0 -277
  59. package/dist/node/__tests__/generate.test.js.map +0 -1
  60. package/dist/node/__tests__/integration-other.test.js +0 -70
  61. package/dist/node/__tests__/integration-other.test.js.map +0 -1
  62. package/dist/node/__tests__/integration-playground.test.js +0 -148
  63. package/dist/node/__tests__/integration-playground.test.js.map +0 -1
  64. package/dist/node/__tests__/integration-segmenter.test.js +0 -50
  65. package/dist/node/__tests__/integration-segmenter.test.js.map +0 -1
  66. package/dist/node/__tests__/integration-textType.test.js +0 -50
  67. package/dist/node/__tests__/integration-textType.test.js.map +0 -1
  68. package/dist/node/__tests__/utils.js +0 -70
  69. package/dist/node/__tests__/utils.js.map +0 -1
  70. package/dist/node/src/constants.js +0 -5
  71. package/dist/node/src/constants.js.map +0 -1
  72. package/dist/node/src/generate.js +0 -163
  73. package/dist/node/src/generate.js.map +0 -1
  74. package/dist/node/src/helper.js +0 -144
  75. package/dist/node/src/helper.js.map +0 -1
  76. package/dist/node/src/index.js +0 -9
  77. package/dist/node/src/index.js.map +0 -1
  78. package/dist/node/src/types.js +0 -3
  79. package/dist/node/src/types.js.map +0 -1
  80. package/dist/types/__tests__/assets/templates/index.d.ts +0 -975
  81. package/dist/types/__tests__/generate.test.d.ts +0 -1
  82. package/dist/types/__tests__/integration-other.test.d.ts +0 -1
  83. package/dist/types/__tests__/integration-playground.test.d.ts +0 -1
  84. package/dist/types/__tests__/integration-segmenter.test.d.ts +0 -1
  85. package/dist/types/__tests__/integration-textType.test.d.ts +0 -1
  86. package/dist/types/__tests__/utils.d.ts +0 -3
  87. package/dist/types/src/constants.d.ts +0 -1
  88. package/dist/types/src/generate.d.ts +0 -3
  89. package/dist/types/src/helper.d.ts +0 -29
  90. package/dist/types/src/index.d.ts +0 -2
  91. package/dist/types/src/types.d.ts +0 -20
  92. package/eslint.config.mjs +0 -22
  93. package/jest.setup.js +0 -2
  94. package/tsconfig.cjs.json +0 -10
  95. package/tsconfig.esm.json +0 -11
  96. package/tsconfig.node.json +0 -11
@@ -1,277 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const generate_js_1 = __importDefault(require("../src/generate.js"));
7
- const common_1 = require("@pdfme/common");
8
- const utils_js_1 = require("./utils.js");
9
- require("jest-image-snapshot");
10
- describe('generate integrate test', () => {
11
- describe('basic generator', () => {
12
- const textObject = (x, y, name = 'a') => ({
13
- name,
14
- type: 'text',
15
- content: '',
16
- position: { x, y },
17
- width: 100,
18
- height: 100,
19
- fontSize: 13,
20
- });
21
- const singleSchemaTemplate = {
22
- basePdf: common_1.BLANK_PDF,
23
- schemas: [[textObject(0, 0), textObject(25, 25, 'b')]],
24
- };
25
- const multiSchemasTemplate = {
26
- basePdf: 'data:application/pdf;base64,JVBERi0xLjcNJeLjz9MNCjYgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgMTg0NC9PIDgvRSAxMTEwL04gMi9UIDE1NzAvSCBbIDQyMyAxMzFdPj4NZW5kb2JqDSAgICAgICAgICAgICAgICAgICAgICAgDQoxMSAwIG9iag08PC9EZWNvZGVQYXJtczw8L0NvbHVtbnMgMy9QcmVkaWN0b3IgMTI+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvSURbPEJBMTk5MUY0MThCN0IyMTEwQTAwNjc0NThCNkJDNjIzPjxGOEE4OEZEMzMzNjQ2OTQ2QkE1ODMzM0M4MEFEMDFFNj5dL0luZGV4WzYgN10vTGVuZ3RoIDM2L1ByZXYgMTU3MS9Sb290IDcgMCBSL1NpemUgMTMvVHlwZS9YUmVmL1dbMSAyIDBdPj5zdHJlYW0NCmjeYmJkEGBiYJJiYmDQZWJgvA+k45gY/j4Aso0BAgwAISQDuA0KZW5kc3RyZWFtDWVuZG9iag1zdGFydHhyZWYNCjANCiUlRU9GDQogICAgICAgIA0KMTIgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1Ny9TIDQ0Pj5zdHJlYW0NCmjeYmBgYGJgYLzCwAgkbRk4GBCAAyjGxMDCwNFwiOGAQvkhJCkGZihmYIhj4GhkSGEACDAAvy4F4g0KZW5kc3RyZWFtDWVuZG9iag03IDAgb2JqDTw8L1BhZ2VzIDUgMCBSL1R5cGUvQ2F0YWxvZz4+DWVuZG9iag04IDAgb2JqDTw8L0Fubm90c1tdL0JsZWVkQm94WzAgMCA1OTUuNDQgODQxLjkyXS9Db250ZW50cyA5IDAgUi9Dcm9wQm94WzAgMCA1OTUuNDQgODQxLjkyXS9NZWRpYUJveFswIDAgNTk1LjQ0IDg0MS45Ml0vUGFyZW50IDUgMCBSL1Jlc291cmNlczw8L1hPYmplY3Q8PC9GbTAgMTAgMCBSPj4+Pi9Sb3RhdGUgMC9UcmltQm94WzAgMCA1OTUuNDQgODQxLjkyXS9UeXBlL1BhZ2U+Pg1lbmRvYmoNOSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI2Pj5zdHJlYW0NCkiJKlQwUAjx0XfLNVBwyVcIVAAIMAAiagP4DQplbmRzdHJlYW0NZW5kb2JqDTEwIDAgb2JqDTw8L0JCb3hbMzI3NjguMCAzMjc2OC4wIC0zMjc2OC4wIC0zMjc2OC4wXS9GaWx0ZXIvRmxhdGVEZWNvZGUvRm9ybVR5cGUgMS9MZW5ndGggMTQvTWF0cml4WzEgMCAwIDEgMCAwXS9SZXNvdXJjZXM8PD4+L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0KSIkq5ArkAggwAAKSANcNCmVuZHN0cmVhbQ1lbmRvYmoNMSAwIG9iag08PC9Bbm5vdHNbXS9CbGVlZEJveFswIDAgNTk1LjQ0IDg0MS45Ml0vQ29udGVudHMgMiAwIFIvQ3JvcEJveFswIDAgNTk1LjQ0IDg0MS45Ml0vTWVkaWFCb3hbMCAwIDU5NS40NCA4NDEuOTJdL1BhcmVudCA1IDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvRm0wIDEwIDAgUj4+Pj4vUm90YXRlIDAvVHJpbUJveFswIDAgNTk1LjQ0IDg0MS45Ml0vVHlwZS9QYWdlPj4NZW5kb2JqDTIgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNj4+c3RyZWFtDQpIiSpUMFAI8dF3yzVQcMlXCFQACDAAImoD+A0KZW5kc3RyZWFtDWVuZG9iag0zIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0L0xlbmd0aCA1Mi9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yVTBQsLHRd84vzStRMNL3zkwpjrYAigUpGILIWP2QyoJU/YDE9NRiOzuAAAMAETgMkw0KZW5kc3RyZWFtDWVuZG9iag00IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyAzL1ByZWRpY3RvciAxMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9JRFs8QkExOTkxRjQxOEI3QjIxMTBBMDA2NzQ1OEI2QkM2MjM+PEY4QTg4RkQzMzM2NDY5NDZCQTU4MzMzQzgwQUQwMUU2Pl0vTGVuZ3RoIDMzL1Jvb3QgNyAwIFIvU2l6ZSA2L1R5cGUvWFJlZi9XWzEgMiAwXT4+c3RyZWFtDQpo3mJiYGBgYmQJY2JgvM/EwBAHpCcwMf56ABBgABstBBINCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQoxMTYNCiUlRU9GDQo=',
27
- schemas: [[textObject(0, 0)], [textObject(25, 25, 'b')]],
28
- };
29
- const singleInputs = [{ a: 'a', b: 'b' }];
30
- const multiInputs = [
31
- { a: 'a-1', b: 'b-1' },
32
- { a: 'a-2', b: 'b-2' },
33
- ];
34
- const testCases = [
35
- {
36
- template: singleSchemaTemplate,
37
- inputs: singleInputs,
38
- testName: 'singleSchemaTemplate with singleInputs',
39
- },
40
- {
41
- template: singleSchemaTemplate,
42
- inputs: multiInputs,
43
- testName: 'singleSchemaTemplate with multiInputs',
44
- },
45
- {
46
- template: multiSchemasTemplate,
47
- inputs: singleInputs,
48
- testName: 'multiSchemasTemplate with singleInputs',
49
- },
50
- {
51
- template: multiSchemasTemplate,
52
- inputs: multiInputs,
53
- testName: 'multiSchemasTemplate with multiInputs',
54
- },
55
- ];
56
- // testCases for
57
- for (let i = 0; i < testCases.length; i += 1) {
58
- const { template, inputs, testName } = testCases[i];
59
- test(testName, async () => {
60
- const pdf = await (0, generate_js_1.default)({ inputs, template });
61
- const images = await (0, utils_js_1.pdfToImages)(pdf);
62
- for (let i = 0; i < images.length; i++) {
63
- expect(images[i]).toMatchImageSnapshot({
64
- customSnapshotIdentifier: `${testName}-${i + 1}`,
65
- });
66
- }
67
- });
68
- }
69
- });
70
- describe('use fontColor template', () => {
71
- test(`sample`, async () => {
72
- const inputs = [{ name: 'here is purple color' }];
73
- const template = {
74
- basePdf: common_1.BLANK_PDF,
75
- schemas: [
76
- [
77
- {
78
- name: 'name',
79
- type: 'text',
80
- content: '',
81
- position: { x: 30, y: 30 },
82
- width: 100,
83
- height: 20,
84
- fontColor: '#7d2ae8',
85
- },
86
- ],
87
- ],
88
- };
89
- const pdf = await (0, generate_js_1.default)({ inputs, template });
90
- const images = await (0, utils_js_1.pdfToImages)(pdf);
91
- for (let i = 0; i < images.length; i++) {
92
- expect(images[i]).toMatchImageSnapshot({
93
- customSnapshotIdentifier: `fontColor-${i + 1}`,
94
- });
95
- }
96
- });
97
- });
98
- describe('use fontSubset template', () => {
99
- test(`sample`, async () => {
100
- const inputs = [{ field1: 'NotoSansJP', field2: 'NotoSerifJP' }];
101
- const template = {
102
- basePdf: common_1.BLANK_PDF,
103
- schemas: [
104
- [
105
- {
106
- name: 'field1',
107
- type: 'text',
108
- content: '',
109
- position: { x: 30, y: 30 },
110
- width: 100,
111
- height: 20,
112
- fontName: 'NotoSansJP',
113
- },
114
- {
115
- name: 'field2',
116
- type: 'text',
117
- content: '',
118
- position: { x: 60, y: 60 },
119
- width: 100,
120
- height: 20,
121
- fontName: 'NotoSerifJP',
122
- },
123
- ],
124
- ],
125
- };
126
- const font = (0, utils_js_1.getFont)();
127
- const pdf = await (0, generate_js_1.default)({
128
- inputs,
129
- template,
130
- options: {
131
- font: {
132
- NotoSansJP: {
133
- ...font.NotoSansJP,
134
- fallback: true,
135
- subset: false,
136
- },
137
- NotoSerifJP: {
138
- ...font.NotoSerifJP,
139
- subset: false,
140
- },
141
- },
142
- },
143
- });
144
- const images = await (0, utils_js_1.pdfToImages)(pdf);
145
- for (let i = 0; i < images.length; i++) {
146
- expect(images[i]).toMatchImageSnapshot({
147
- customSnapshotIdentifier: `fontSubset-${i + 1}`,
148
- });
149
- }
150
- }, 10000);
151
- });
152
- });
153
- describe('check validation', () => {
154
- test(`inputs length is 0`, async () => {
155
- const inputs = [];
156
- const template = {
157
- basePdf: common_1.BLANK_PDF,
158
- schemas: [
159
- [
160
- {
161
- name: 'a',
162
- type: 'text',
163
- content: '',
164
- position: { x: 0, y: 0 },
165
- width: 100,
166
- height: 100,
167
- },
168
- ],
169
- ],
170
- };
171
- try {
172
- await (0, generate_js_1.default)({ inputs, template, options: { font: (0, utils_js_1.getFont)() } });
173
- fail();
174
- }
175
- catch (e) {
176
- expect(e.message).toEqual(`[@pdfme/common] Invalid argument:
177
- --------------------------
178
- ERROR POSITION: inputs
179
- ERROR MESSAGE: Too small: expected array to have >=1 items
180
- --------------------------`);
181
- }
182
- });
183
- test(`missing fallback font`, async () => {
184
- const inputs = [{ a: 'test' }];
185
- const template = {
186
- basePdf: common_1.BLANK_PDF,
187
- schemas: [
188
- [
189
- {
190
- name: 'a',
191
- type: 'text',
192
- content: '',
193
- position: { x: 0, y: 0 },
194
- width: 100,
195
- height: 100,
196
- },
197
- ],
198
- ],
199
- };
200
- const font = (0, utils_js_1.getFont)();
201
- font.Roboto.fallback = false;
202
- try {
203
- await (0, generate_js_1.default)({ inputs, template, options: { font } });
204
- fail();
205
- }
206
- catch (e) {
207
- expect(e.message).toEqual(`[@pdfme/common] fallback flag is not found in font. true fallback flag must be only one.
208
- Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
209
- }
210
- });
211
- test(`too many fallback font`, async () => {
212
- const inputs = [{ a: 'test' }];
213
- const template = {
214
- basePdf: common_1.BLANK_PDF,
215
- schemas: [
216
- [
217
- {
218
- name: 'a',
219
- type: 'text',
220
- content: '',
221
- position: { x: 0, y: 0 },
222
- width: 100,
223
- height: 100,
224
- },
225
- ],
226
- ],
227
- };
228
- const font = (0, utils_js_1.getFont)();
229
- // Set multiple fonts to have fallback = true to test the error
230
- font.Roboto.fallback = true;
231
- font.NotoSansJP = { ...font.NotoSansJP, fallback: true };
232
- try {
233
- await (0, generate_js_1.default)({ inputs, template, options: { font } });
234
- fail();
235
- }
236
- catch (e) {
237
- expect(e.message).toEqual(`[@pdfme/common] 2 fallback flags found in font. true fallback flag must be only one.
238
- Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
239
- }
240
- });
241
- test(`missing font in template.schemas`, async () => {
242
- const inputs = [{ a: 'test' }];
243
- const template = {
244
- basePdf: common_1.BLANK_PDF,
245
- schemas: [
246
- [
247
- {
248
- name: 'a',
249
- type: 'text',
250
- content: '',
251
- fontName: 'DUMMY_FONT',
252
- position: { x: 0, y: 0 },
253
- width: 100,
254
- height: 100,
255
- },
256
- {
257
- name: 'b',
258
- type: 'text',
259
- content: '',
260
- position: { x: 0, y: 0 },
261
- width: 100,
262
- height: 100,
263
- },
264
- ],
265
- ],
266
- };
267
- try {
268
- await (0, generate_js_1.default)({ inputs, template, options: { font: (0, utils_js_1.getFont)() } });
269
- fail();
270
- }
271
- catch (e) {
272
- expect(e.message).toEqual(`[@pdfme/common] DUMMY_FONT of template.schemas is not found in font.
273
- Check this document: https://pdfme.com/docs/custom-fonts`);
274
- }
275
- });
276
- });
277
- //# sourceMappingURL=generate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../../__tests__/generate.test.ts"],"names":[],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const generate_js_1 = __importDefault(require("../src/generate.js"));
7
- const index_js_1 = require("./assets/templates/index.js");
8
- const common_1 = require("@pdfme/common");
9
- const schemas_1 = require("@pdfme/schemas");
10
- const utils_js_1 = require("./utils.js");
11
- require("jest-image-snapshot");
12
- const signature = {
13
- pdf: schemas_1.image.pdf,
14
- ui: () => { },
15
- propPanel: {
16
- ...schemas_1.image.propPanel,
17
- defaultSchema: {
18
- ...schemas_1.image.propPanel.defaultSchema,
19
- type: 'signature',
20
- },
21
- },
22
- };
23
- const PERFORMANCE_THRESHOLD = parseFloat(process.env.PERFORMANCE_THRESHOLD || '1.5');
24
- describe('generate integration test(other)', () => {
25
- describe.each([index_js_1.other])('%s', (templateData) => {
26
- const entries = Object.entries(templateData);
27
- for (let l = 0; l < entries.length; l += 1) {
28
- const [key, template] = entries[l];
29
- // eslint-disable-next-line no-loop-func
30
- test(`snapshot ${key}`, async () => {
31
- const inputs = (0, common_1.getInputFromTemplate)(template);
32
- const font = (0, utils_js_1.getFont)();
33
- font['NotoSerifJP-Regular'].fallback = false;
34
- font.NotoSerifJP.fallback = false;
35
- font.NotoSansJP.fallback = false;
36
- const hrstart = process.hrtime();
37
- const pdf = await (0, generate_js_1.default)({
38
- inputs,
39
- template,
40
- plugins: {
41
- text: schemas_1.text,
42
- image: schemas_1.image,
43
- svg: schemas_1.svg,
44
- line: schemas_1.line,
45
- rectangle: schemas_1.rectangle,
46
- ellipse: schemas_1.ellipse,
47
- signature,
48
- ...schemas_1.barcodes,
49
- },
50
- options: { font },
51
- });
52
- const hrend = process.hrtime(hrstart);
53
- const execSeconds = hrend[0] + hrend[1] / 1000000000;
54
- if (process.env.CI) {
55
- expect(execSeconds).toBeLessThan(PERFORMANCE_THRESHOLD);
56
- }
57
- else if (execSeconds >= PERFORMANCE_THRESHOLD) {
58
- console.warn(`Warning: Execution time for ${key} is ${execSeconds} seconds, which is above the threshold of ${PERFORMANCE_THRESHOLD} seconds.`);
59
- }
60
- const images = await (0, utils_js_1.pdfToImages)(pdf);
61
- for (let i = 0; i < images.length; i++) {
62
- expect(images[i]).toMatchImageSnapshot({
63
- customSnapshotIdentifier: `${key}-${i + 1}`,
64
- });
65
- }
66
- });
67
- }
68
- });
69
- });
70
- //# sourceMappingURL=integration-other.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-other.test.js","sourceRoot":"","sources":["../../../__tests__/integration-other.test.ts"],"names":[],"mappings":"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"}
@@ -1,148 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const generate_js_1 = __importDefault(require("../src/generate.js"));
40
- const common_1 = require("@pdfme/common");
41
- const schemas_1 = require("@pdfme/schemas");
42
- const utils_js_1 = require("./utils.js");
43
- const fs = __importStar(require("fs"));
44
- const path = __importStar(require("path"));
45
- require("jest-image-snapshot");
46
- const signature = {
47
- pdf: schemas_1.image.pdf,
48
- ui: () => { },
49
- propPanel: {
50
- ...schemas_1.image.propPanel,
51
- defaultSchema: {
52
- ...schemas_1.image.propPanel.defaultSchema,
53
- type: 'signature',
54
- },
55
- },
56
- };
57
- const PERFORMANCE_THRESHOLD = parseFloat(process.env.PERFORMANCE_THRESHOLD || '1.5');
58
- // Load all templates from playground/public/template-assets
59
- function loadPlaygroundTemplates() {
60
- const templatesDir = path.join(__dirname, '../../../playground/public/template-assets');
61
- const templates = {};
62
- const folders = fs.readdirSync(templatesDir);
63
- for (const folder of folders) {
64
- const folderPath = path.join(templatesDir, folder);
65
- const stat = fs.statSync(folderPath);
66
- if (stat.isDirectory()) {
67
- const templatePath = path.join(folderPath, 'template.json');
68
- if (fs.existsSync(templatePath)) {
69
- try {
70
- const templateContent = fs.readFileSync(templatePath, 'utf-8');
71
- const template = JSON.parse(templateContent);
72
- templates[folder] = template;
73
- }
74
- catch (error) {
75
- console.warn(`Failed to load template from ${folder}:`, error);
76
- }
77
- }
78
- }
79
- }
80
- return templates;
81
- }
82
- describe('generate integration test(playground)', () => {
83
- const playgroundTemplates = loadPlaygroundTemplates();
84
- const RealDate = Date;
85
- beforeAll(() => {
86
- class MockDate extends RealDate {
87
- constructor(...args) {
88
- if (args.length === 0) {
89
- super('2024-01-01T00:00:00.000Z');
90
- }
91
- else {
92
- // @ts-expect-error Allow passing arguments to Date constructor
93
- super(...args);
94
- }
95
- }
96
- }
97
- global.Date = MockDate;
98
- });
99
- afterAll(() => {
100
- global.Date = RealDate;
101
- });
102
- describe.each([playgroundTemplates])('%s', (templateData) => {
103
- const entries = Object.entries(templateData);
104
- for (let l = 0; l < entries.length; l += 1) {
105
- const [key, template] = entries[l];
106
- // eslint-disable-next-line no-loop-func
107
- test(`snapshot ${key}`, async () => {
108
- const inputs = (0, common_1.getInputFromTemplate)(template);
109
- const font = (0, utils_js_1.getFont)();
110
- const hrstart = process.hrtime();
111
- const pdf = await (0, generate_js_1.default)({
112
- inputs,
113
- template,
114
- plugins: {
115
- text: schemas_1.text,
116
- image: schemas_1.image,
117
- svg: schemas_1.svg,
118
- line: schemas_1.line,
119
- rectangle: schemas_1.rectangle,
120
- ellipse: schemas_1.ellipse,
121
- signature,
122
- table: schemas_1.table,
123
- multiVariableText: schemas_1.multiVariableText,
124
- ...schemas_1.barcodes,
125
- },
126
- options: { font },
127
- });
128
- const hrend = process.hrtime(hrstart);
129
- const execSeconds = hrend[0] + hrend[1] / 1000000000;
130
- if (process.env.CI) {
131
- expect(execSeconds).toBeLessThan(PERFORMANCE_THRESHOLD);
132
- }
133
- else if (execSeconds >= PERFORMANCE_THRESHOLD) {
134
- console.warn(`Warning: Execution time for ${key} is ${execSeconds} seconds, which is above the threshold of ${PERFORMANCE_THRESHOLD} seconds.`);
135
- }
136
- const images = await (0, utils_js_1.pdfToImages)(pdf);
137
- for (let i = 0; i < images.length; i++) {
138
- expect(images[i]).toMatchImageSnapshot({
139
- customSnapshotIdentifier: `${key}-${i + 1}`,
140
- failureThreshold: 0.001, // Allow 0.1% pixel difference
141
- failureThresholdType: 'percent',
142
- });
143
- }
144
- });
145
- }
146
- });
147
- });
148
- //# sourceMappingURL=integration-playground.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-playground.test.js","sourceRoot":"","sources":["../../../__tests__/integration-playground.test.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const generate_js_1 = __importDefault(require("../src/generate.js"));
7
- const index_js_1 = require("./assets/templates/index.js");
8
- const common_1 = require("@pdfme/common");
9
- const schemas_1 = require("@pdfme/schemas");
10
- const utils_js_1 = require("./utils.js");
11
- require("jest-image-snapshot");
12
- const PERFORMANCE_THRESHOLD = parseFloat(process.env.PERFORMANCE_THRESHOLD || '2.5');
13
- describe('generate integration test(segmenter)', () => {
14
- describe.each([index_js_1.segmenter])('%s', (templateData) => {
15
- const entries = Object.entries(templateData);
16
- for (let l = 0; l < entries.length; l += 1) {
17
- const [key, template] = entries[l];
18
- // eslint-disable-next-line no-loop-func
19
- test(`snapshot ${key}`, async () => {
20
- const inputs = (0, common_1.getInputFromTemplate)(template);
21
- const font = (0, utils_js_1.getFont)();
22
- font['NotoSerifJP-Regular'].fallback = false;
23
- font.NotoSerifJP.fallback = false;
24
- font.NotoSansJP.fallback = false;
25
- const hrstart = process.hrtime();
26
- const pdf = await (0, generate_js_1.default)({
27
- inputs,
28
- template,
29
- plugins: { text: schemas_1.text, image: schemas_1.image, multiVariableText: schemas_1.multiVariableText, ...schemas_1.barcodes },
30
- options: { font },
31
- });
32
- const hrend = process.hrtime(hrstart);
33
- const execSeconds = hrend[0] + hrend[1] / 1000000000;
34
- if (process.env.CI) {
35
- expect(execSeconds).toBeLessThan(PERFORMANCE_THRESHOLD);
36
- }
37
- else if (execSeconds >= PERFORMANCE_THRESHOLD) {
38
- console.warn(`Warning: Execution time for ${key} is ${execSeconds} seconds, which is above the threshold of ${PERFORMANCE_THRESHOLD} seconds.`);
39
- }
40
- const images = await (0, utils_js_1.pdfToImages)(pdf);
41
- for (let i = 0; i < images.length; i++) {
42
- expect(images[i]).toMatchImageSnapshot({
43
- customSnapshotIdentifier: `${key}-${i + 1}`,
44
- });
45
- }
46
- });
47
- }
48
- });
49
- });
50
- //# sourceMappingURL=integration-segmenter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-segmenter.test.js","sourceRoot":"","sources":["../../../__tests__/integration-segmenter.test.ts"],"names":[],"mappings":";;;;;AAAA,qEAA0C;AAC1C,0DAAwD;AACxD,0CAAqD;AACrD,4CAA0E;AAC1E,yCAAkD;AAClD,+BAA6B;AAE7B,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,CAAC;AAErF,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,QAAQ,CAAC,IAAI,CAAC,CAAC,oBAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEnC,wCAAwC;YACxC,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;gBACjC,MAAM,MAAM,GAAG,IAAA,6BAAoB,EAAC,QAAQ,CAAC,CAAC;gBAE9C,MAAM,IAAI,GAAG,IAAA,kBAAO,GAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAEjC,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAQ,EAAC;oBACzB,MAAM;oBACN,QAAQ;oBACR,OAAO,EAAE,EAAE,IAAI,EAAJ,cAAI,EAAE,KAAK,EAAL,eAAK,EAAE,iBAAiB,EAAjB,2BAAiB,EAAE,GAAG,kBAAQ,EAAE;oBACxD,OAAO,EAAE,EAAE,IAAI,EAAE;iBAClB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,CAAC;qBAAM,IAAI,WAAW,IAAI,qBAAqB,EAAE,CAAC;oBAChD,OAAO,CAAC,IAAI,CACV,+BAA+B,GAAG,OAAO,WAAW,6CAA6C,qBAAqB,WAAW,CAClI,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC;gBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;wBACrC,wBAAwB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;qBAC5C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const generate_js_1 = __importDefault(require("../src/generate.js"));
7
- const index_js_1 = require("./assets/templates/index.js");
8
- const common_1 = require("@pdfme/common");
9
- const schemas_1 = require("@pdfme/schemas");
10
- const utils_js_1 = require("./utils.js");
11
- require("jest-image-snapshot");
12
- const PERFORMANCE_THRESHOLD = parseFloat(process.env.PERFORMANCE_THRESHOLD || '2.5');
13
- describe('generate integration test(textType)', () => {
14
- describe.each([index_js_1.textType])('%s', (templateData) => {
15
- const entries = Object.entries(templateData);
16
- for (let l = 0; l < entries.length; l += 1) {
17
- const [key, template] = entries[l];
18
- // eslint-disable-next-line no-loop-func
19
- test(`snapshot ${key}`, async () => {
20
- const inputs = (0, common_1.getInputFromTemplate)(template);
21
- const font = (0, utils_js_1.getFont)();
22
- font['NotoSerifJP-Regular'].fallback = false;
23
- font.NotoSerifJP.fallback = false;
24
- font.NotoSansJP.fallback = false;
25
- const hrstart = process.hrtime();
26
- const pdf = await (0, generate_js_1.default)({
27
- inputs,
28
- template,
29
- plugins: { text: schemas_1.text, image: schemas_1.image, multiVariableText: schemas_1.multiVariableText, ...schemas_1.barcodes },
30
- options: { font },
31
- });
32
- const hrend = process.hrtime(hrstart);
33
- const execSeconds = hrend[0] + hrend[1] / 1000000000;
34
- if (process.env.CI) {
35
- expect(execSeconds).toBeLessThan(PERFORMANCE_THRESHOLD);
36
- }
37
- else if (execSeconds >= PERFORMANCE_THRESHOLD) {
38
- console.warn(`Warning: Execution time for ${key} is ${execSeconds} seconds, which is above the threshold of ${PERFORMANCE_THRESHOLD} seconds.`);
39
- }
40
- const images = await (0, utils_js_1.pdfToImages)(pdf);
41
- for (let i = 0; i < images.length; i++) {
42
- expect(images[i]).toMatchImageSnapshot({
43
- customSnapshotIdentifier: `${key}-${i + 1}`,
44
- });
45
- }
46
- });
47
- }
48
- });
49
- });
50
- //# sourceMappingURL=integration-textType.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-textType.test.js","sourceRoot":"","sources":["../../../__tests__/integration-textType.test.ts"],"names":[],"mappings":";;;;;AAAA,qEAA0C;AAC1C,0DAAuD;AACvD,0CAAqD;AACrD,4CAA0E;AAC1E,yCAAkD;AAClD,+BAA6B;AAE7B,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,CAAC;AAErF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,QAAQ,CAAC,IAAI,CAAC,CAAC,mBAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEnC,wCAAwC;YACxC,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;gBACjC,MAAM,MAAM,GAAG,IAAA,6BAAoB,EAAC,QAAQ,CAAC,CAAC;gBAE9C,MAAM,IAAI,GAAG,IAAA,kBAAO,GAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAEjC,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAQ,EAAC;oBACzB,MAAM;oBACN,QAAQ;oBACR,OAAO,EAAE,EAAE,IAAI,EAAJ,cAAI,EAAE,KAAK,EAAL,eAAK,EAAE,iBAAiB,EAAjB,2BAAiB,EAAE,GAAG,kBAAQ,EAAE;oBACxD,OAAO,EAAE,EAAE,IAAI,EAAE;iBAClB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,CAAC;qBAAM,IAAI,WAAW,IAAI,qBAAqB,EAAE,CAAC;oBAChD,OAAO,CAAC,IAAI,CACV,+BAA+B,GAAG,OAAO,WAAW,6CAA6C,qBAAqB,WAAW,CAClI,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC;gBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;wBACrC,wBAAwB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;qBAC5C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}