@pdfme/common 5.3.6 → 5.3.7-dev.3

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.
@@ -0,0 +1,496 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fs_1 = require("fs");
27
+ const path = __importStar(require("path"));
28
+ const helper_1 = require("../src/helper");
29
+ const src_1 = require("../src");
30
+ const src_2 = require("../src");
31
+ const sansData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSansJP.ttf`));
32
+ const serifData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSerifJP.ttf`));
33
+ const getSampleFont = () => ({
34
+ SauceHanSansJP: { fallback: true, data: sansData },
35
+ SauceHanSerifJP: { data: serifData },
36
+ });
37
+ const getTemplate = () => ({
38
+ basePdf: src_1.BLANK_PDF,
39
+ schemas: [
40
+ [
41
+ {
42
+ name: 'a',
43
+ content: 'a',
44
+ type: 'text',
45
+ fontName: 'SauceHanSansJP',
46
+ position: { x: 0, y: 0 },
47
+ width: 100,
48
+ height: 100,
49
+ },
50
+ {
51
+ name: 'b',
52
+ content: 'b',
53
+ type: 'text',
54
+ position: { x: 0, y: 0 },
55
+ width: 100,
56
+ height: 100,
57
+ },
58
+ ],
59
+ ],
60
+ });
61
+ describe('mm2pt test', () => {
62
+ it('converts millimeters to points', () => {
63
+ expect((0, helper_1.mm2pt)(1)).toEqual(2.8346);
64
+ expect((0, helper_1.mm2pt)(10)).toEqual(28.346);
65
+ expect((0, helper_1.mm2pt)(4395.12)).toEqual(12458.407152);
66
+ });
67
+ });
68
+ describe('pt2mm test', () => {
69
+ it('converts points to millimeters', () => {
70
+ expect((0, helper_1.pt2mm)(1)).toEqual(0.3528);
71
+ expect((0, helper_1.pt2mm)(2.8346)).toEqual(1.00004688); // close enough!
72
+ expect((0, helper_1.pt2mm)(10)).toEqual(3.528);
73
+ expect((0, helper_1.pt2mm)(5322.98)).toEqual(1877.947344);
74
+ });
75
+ });
76
+ describe('pt2px test', () => {
77
+ it('converts points to pixels', () => {
78
+ expect((0, helper_1.pt2px)(1)).toEqual(src_1.PT_TO_PX_RATIO);
79
+ expect((0, helper_1.pt2px)(1)).toEqual(1.333);
80
+ expect((0, helper_1.pt2px)(2.8346)).toEqual(3.7785218);
81
+ expect((0, helper_1.pt2px)(10)).toEqual(13.33);
82
+ expect((0, helper_1.pt2px)(5322.98)).toEqual(7095.532339999999);
83
+ });
84
+ });
85
+ describe('isHexValid test', () => {
86
+ test('valid hex', () => {
87
+ expect((0, helper_1.isHexValid)('#fff')).toEqual(true);
88
+ expect((0, helper_1.isHexValid)('#ffffff')).toEqual(true);
89
+ expect((0, helper_1.isHexValid)('#ffffff00')).toEqual(true);
90
+ expect((0, helper_1.isHexValid)('#ffffff00')).toEqual(true);
91
+ });
92
+ test('invalid hex', () => {
93
+ expect((0, helper_1.isHexValid)('#ff')).toEqual(false);
94
+ expect((0, helper_1.isHexValid)('#fffff')).toEqual(false);
95
+ expect((0, helper_1.isHexValid)('#ffffff000')).toEqual(false);
96
+ expect((0, helper_1.isHexValid)('#ffffff0000')).toEqual(false);
97
+ expect((0, helper_1.isHexValid)('#ffffff00000')).toEqual(false);
98
+ expect((0, helper_1.isHexValid)('#ffffff000000')).toEqual(false);
99
+ expect((0, helper_1.isHexValid)('#pdfme123')).toEqual(false);
100
+ });
101
+ });
102
+ describe('checkFont test', () => {
103
+ test('success test: no fontName in Schemas', () => {
104
+ const _getTemplate = () => ({
105
+ basePdf: src_1.BLANK_PDF,
106
+ schemas: [
107
+ [
108
+ {
109
+ name: 'a',
110
+ content: 'a',
111
+ type: 'text',
112
+ position: { x: 0, y: 0 },
113
+ width: 100,
114
+ height: 100,
115
+ },
116
+ {
117
+ name: 'b',
118
+ content: 'b',
119
+ type: 'text',
120
+ position: { x: 0, y: 0 },
121
+ width: 100,
122
+ height: 100,
123
+ },
124
+ ],
125
+ ],
126
+ });
127
+ try {
128
+ (0, helper_1.checkFont)({ template: _getTemplate(), font: getSampleFont() });
129
+ expect.anything();
130
+ }
131
+ catch (e) {
132
+ fail();
133
+ }
134
+ });
135
+ test('success test: fontName in Schemas(fallback font)', () => {
136
+ try {
137
+ (0, helper_1.checkFont)({ template: getTemplate(), font: getSampleFont() });
138
+ expect.anything();
139
+ }
140
+ catch (e) {
141
+ fail();
142
+ }
143
+ });
144
+ test('success test: fontName in Schemas(not fallback font)', () => {
145
+ const getFont = () => ({
146
+ SauceHanSansJP: { data: sansData },
147
+ SauceHanSerifJP: { fallback: true, data: serifData },
148
+ });
149
+ try {
150
+ (0, helper_1.checkFont)({ template: getTemplate(), font: getFont() });
151
+ expect.anything();
152
+ }
153
+ catch (e) {
154
+ fail();
155
+ }
156
+ });
157
+ test('fail test: no fallback font', () => {
158
+ const getFont = () => ({
159
+ SauceHanSansJP: { data: sansData },
160
+ SauceHanSerifJP: { data: serifData },
161
+ });
162
+ try {
163
+ (0, helper_1.checkFont)({ template: getTemplate(), font: getFont() });
164
+ fail();
165
+ }
166
+ catch (e) {
167
+ expect(e.message).toEqual(`[@pdfme/common] fallback flag is not found in font. true fallback flag must be only one.
168
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
169
+ }
170
+ });
171
+ test('fail test: too many fallback font', () => {
172
+ const getFont = () => ({
173
+ SauceHanSansJP: { data: sansData, fallback: true },
174
+ SauceHanSerifJP: { data: serifData, fallback: true },
175
+ });
176
+ try {
177
+ (0, helper_1.checkFont)({ template: getTemplate(), font: getFont() });
178
+ fail();
179
+ }
180
+ catch (e) {
181
+ expect(e.message).toEqual(`[@pdfme/common] 2 fallback flags found in font. true fallback flag must be only one.
182
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
183
+ }
184
+ });
185
+ test('fail test: fontName in Schemas not found in font(single)', () => {
186
+ const _getTemplate = () => ({
187
+ basePdf: src_1.BLANK_PDF,
188
+ schemas: [
189
+ [
190
+ {
191
+ name: 'a',
192
+ type: 'text',
193
+ content: 'a',
194
+ fontName: 'SauceHanSansJP2',
195
+ position: { x: 0, y: 0 },
196
+ width: 100,
197
+ height: 100,
198
+ },
199
+ {
200
+ name: 'b',
201
+ type: 'text',
202
+ content: 'b',
203
+ position: { x: 0, y: 0 },
204
+ width: 100,
205
+ height: 100,
206
+ },
207
+ ],
208
+ ],
209
+ });
210
+ try {
211
+ (0, helper_1.checkFont)({ template: _getTemplate(), font: getSampleFont() });
212
+ fail();
213
+ }
214
+ catch (e) {
215
+ expect(e.message).toEqual(`[@pdfme/common] SauceHanSansJP2 of template.schemas is not found in font.
216
+ Check this document: https://pdfme.com/docs/custom-fonts`);
217
+ }
218
+ });
219
+ test('fail test: fontName in Schemas not found in font(single)', () => {
220
+ const _getTemplate = () => ({
221
+ basePdf: src_1.BLANK_PDF,
222
+ schemas: [
223
+ [
224
+ {
225
+ name: 'a',
226
+ type: 'text',
227
+ content: 'a',
228
+ fontName: 'SauceHanSansJP2',
229
+ position: { x: 0, y: 0 },
230
+ width: 100,
231
+ height: 100,
232
+ },
233
+ {
234
+ name: 'b',
235
+ type: 'text',
236
+ content: 'b',
237
+ fontName: 'SauceHanSerifJP2',
238
+ position: { x: 0, y: 0 },
239
+ width: 100,
240
+ height: 100,
241
+ },
242
+ ],
243
+ ],
244
+ });
245
+ try {
246
+ (0, helper_1.checkFont)({ template: _getTemplate(), font: getSampleFont() });
247
+ fail();
248
+ }
249
+ catch (e) {
250
+ expect(e.message).toEqual(`[@pdfme/common] SauceHanSansJP2,SauceHanSerifJP2 of template.schemas is not found in font.
251
+ Check this document: https://pdfme.com/docs/custom-fonts`);
252
+ }
253
+ });
254
+ });
255
+ describe('checkPlugins test', () => {
256
+ const plugins = {
257
+ myText: {
258
+ pdf: async () => { },
259
+ ui: async () => { },
260
+ propPanel: {
261
+ schema: {},
262
+ defaultSchema: {
263
+ type: 'myText',
264
+ content: '',
265
+ position: { x: 0, y: 0 },
266
+ width: 100,
267
+ height: 100,
268
+ },
269
+ },
270
+ },
271
+ myImage: {
272
+ pdf: async () => { },
273
+ ui: async () => { },
274
+ propPanel: {
275
+ schema: {},
276
+ defaultSchema: {
277
+ type: 'myImage',
278
+ content: '',
279
+ position: { x: 0, y: 0 },
280
+ width: 100,
281
+ height: 100,
282
+ },
283
+ },
284
+ },
285
+ };
286
+ test('success test: no type in Schemas(no plugins)', () => {
287
+ try {
288
+ const template = getTemplate();
289
+ template.schemas = [];
290
+ (0, helper_1.checkPlugins)({ template, plugins: {} });
291
+ expect.anything();
292
+ }
293
+ catch (e) {
294
+ fail();
295
+ }
296
+ });
297
+ test('success test: no type in Schemas(with plugins)', () => {
298
+ try {
299
+ const template = getTemplate();
300
+ template.schemas = [];
301
+ (0, helper_1.checkPlugins)({ template, plugins });
302
+ expect.anything();
303
+ }
304
+ catch (e) {
305
+ fail();
306
+ }
307
+ });
308
+ test('success test: type in Schemas(single)', () => {
309
+ try {
310
+ const template = getTemplate();
311
+ template.schemas[0][0].type = 'myText';
312
+ template.schemas[0][1].type = 'myText';
313
+ (0, helper_1.checkPlugins)({ template, plugins });
314
+ expect.anything();
315
+ }
316
+ catch (e) {
317
+ fail();
318
+ }
319
+ });
320
+ test('success test: type in Schemas(multiple)', () => {
321
+ try {
322
+ const template = getTemplate();
323
+ template.schemas[0][0].type = 'myText';
324
+ template.schemas[0][1].type = 'myImage';
325
+ (0, helper_1.checkPlugins)({ template, plugins });
326
+ expect.anything();
327
+ }
328
+ catch (e) {
329
+ fail();
330
+ }
331
+ });
332
+ test('fail test: type in Schemas not found in plugins(single)', () => {
333
+ try {
334
+ const template = getTemplate();
335
+ template.schemas[0][0].type = 'fail';
336
+ template.schemas[0][1].type = 'myImage';
337
+ (0, helper_1.checkPlugins)({ template, plugins });
338
+ fail();
339
+ }
340
+ catch (e) {
341
+ expect(e.message).toEqual(`[@pdfme/common] fail of template.schemas is not found in plugins.`);
342
+ }
343
+ });
344
+ test('fail test: type in Schemas not found in plugins(multiple)', () => {
345
+ try {
346
+ const template = getTemplate();
347
+ template.schemas[0][0].type = 'fail';
348
+ template.schemas[0][1].type = 'fail2';
349
+ (0, helper_1.checkPlugins)({ template, plugins });
350
+ fail();
351
+ }
352
+ catch (e) {
353
+ expect(e.message).toEqual(`[@pdfme/common] fail,fail2 of template.schemas is not found in plugins.`);
354
+ }
355
+ });
356
+ });
357
+ describe('migrateTemplate', () => {
358
+ it('should convert LegacySchemaPageArray to SchemaPageArray', () => {
359
+ const legacyTemplate = {
360
+ schemas: [
361
+ {
362
+ field1: {
363
+ type: 'text',
364
+ content: 'Field 1',
365
+ width: 45,
366
+ height: 10,
367
+ position: {
368
+ x: 0,
369
+ y: 0,
370
+ },
371
+ },
372
+ field2: {
373
+ type: 'text',
374
+ content: 'Field 2',
375
+ width: 45,
376
+ height: 10,
377
+ position: {
378
+ x: 0,
379
+ y: 0,
380
+ },
381
+ },
382
+ },
383
+ {
384
+ field3: {
385
+ type: 'text',
386
+ content: 'Field 3',
387
+ width: 45,
388
+ height: 10,
389
+ position: {
390
+ x: 0,
391
+ y: 0,
392
+ },
393
+ },
394
+ },
395
+ ],
396
+ };
397
+ (0, helper_1.migrateTemplate)(legacyTemplate);
398
+ const expectedSchemaPageArray = [
399
+ [
400
+ {
401
+ name: 'field1',
402
+ type: 'text',
403
+ content: 'Field 1',
404
+ width: 45,
405
+ height: 10,
406
+ position: {
407
+ x: 0,
408
+ y: 0,
409
+ },
410
+ },
411
+ {
412
+ name: 'field2',
413
+ type: 'text',
414
+ content: 'Field 2',
415
+ width: 45,
416
+ height: 10,
417
+ position: {
418
+ x: 0,
419
+ y: 0,
420
+ },
421
+ },
422
+ ],
423
+ [
424
+ {
425
+ name: 'field3',
426
+ type: 'text',
427
+ content: 'Field 3',
428
+ width: 45,
429
+ height: 10,
430
+ position: {
431
+ x: 0,
432
+ y: 0,
433
+ },
434
+ },
435
+ ],
436
+ ];
437
+ expect(legacyTemplate.schemas).toEqual(expectedSchemaPageArray);
438
+ });
439
+ it('should not modify already SchemaPageArray', () => {
440
+ const pagedTemplate = {
441
+ schemas: [
442
+ [
443
+ {
444
+ name: 'field1',
445
+ type: 'text',
446
+ content: 'Field 1',
447
+ width: 45,
448
+ height: 10,
449
+ position: {
450
+ x: 0,
451
+ y: 0,
452
+ },
453
+ },
454
+ {
455
+ name: 'field2',
456
+ type: 'text',
457
+ content: 'Field 2',
458
+ width: 45,
459
+ height: 10,
460
+ position: {
461
+ x: 0,
462
+ y: 0,
463
+ },
464
+ },
465
+ ],
466
+ [
467
+ {
468
+ name: 'field3',
469
+ type: 'text',
470
+ content: 'Field 3',
471
+ width: 45,
472
+ height: 10,
473
+ position: {
474
+ x: 0,
475
+ y: 0,
476
+ },
477
+ },
478
+ ],
479
+ ],
480
+ };
481
+ const before = JSON.parse(JSON.stringify(pagedTemplate));
482
+ (0, helper_1.migrateTemplate)(pagedTemplate);
483
+ expect(pagedTemplate.schemas).toEqual(before.schemas);
484
+ });
485
+ });
486
+ describe('getB64BasePdf', () => {
487
+ test('base64 string', async () => {
488
+ const result = await (0, src_2.getB64BasePdf)(src_1.BLANK_PDF);
489
+ expect(typeof result).toBe('string');
490
+ });
491
+ test('Uint8Array', async () => {
492
+ const result = await (0, src_2.getB64BasePdf)(new Uint8Array([10, 20, 30, 40, 50]));
493
+ expect(typeof result).toBe('string');
494
+ });
495
+ });
496
+ //# sourceMappingURL=helper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.test.js","sourceRoot":"","sources":["../../../__tests__/helper.test.ts"],"names":[],"mappings":"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"}