@pdfme/common 0.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.
Files changed (108) hide show
  1. package/README.md +5 -0
  2. package/dist/cjs/__tests__/dynamicTemplate.test.js +275 -0
  3. package/dist/cjs/__tests__/dynamicTemplate.test.js.map +1 -0
  4. package/dist/cjs/__tests__/expression.test.js +474 -0
  5. package/dist/cjs/__tests__/expression.test.js.map +1 -0
  6. package/dist/cjs/__tests__/helper.test.js +647 -0
  7. package/dist/cjs/__tests__/helper.test.js.map +1 -0
  8. package/dist/cjs/__tests__/pluginRegistry.test.js +83 -0
  9. package/dist/cjs/__tests__/pluginRegistry.test.js.map +1 -0
  10. package/dist/cjs/src/constants.js +27 -0
  11. package/dist/cjs/src/constants.js.map +1 -0
  12. package/dist/cjs/src/dynamicTemplate.js +284 -0
  13. package/dist/cjs/src/dynamicTemplate.js.map +1 -0
  14. package/dist/cjs/src/expression.js +463 -0
  15. package/dist/cjs/src/expression.js.map +1 -0
  16. package/dist/cjs/src/helper.js +217 -0
  17. package/dist/cjs/src/helper.js.map +1 -0
  18. package/dist/cjs/src/index.js +42 -0
  19. package/dist/cjs/src/index.js.map +1 -0
  20. package/dist/cjs/src/pluginRegistry.js +33 -0
  21. package/dist/cjs/src/pluginRegistry.js.map +1 -0
  22. package/dist/cjs/src/schema.js +190 -0
  23. package/dist/cjs/src/schema.js.map +1 -0
  24. package/dist/cjs/src/types.js +3 -0
  25. package/dist/cjs/src/types.js.map +1 -0
  26. package/dist/cjs/src/version.js +5 -0
  27. package/dist/cjs/src/version.js.map +1 -0
  28. package/dist/esm/__tests__/dynamicTemplate.test.js +240 -0
  29. package/dist/esm/__tests__/dynamicTemplate.test.js.map +1 -0
  30. package/dist/esm/__tests__/expression.test.js +472 -0
  31. package/dist/esm/__tests__/expression.test.js.map +1 -0
  32. package/dist/esm/__tests__/helper.test.js +612 -0
  33. package/dist/esm/__tests__/helper.test.js.map +1 -0
  34. package/dist/esm/__tests__/pluginRegistry.test.js +81 -0
  35. package/dist/esm/__tests__/pluginRegistry.test.js.map +1 -0
  36. package/dist/esm/src/constants.js +24 -0
  37. package/dist/esm/src/constants.js.map +1 -0
  38. package/dist/esm/src/dynamicTemplate.js +280 -0
  39. package/dist/esm/src/dynamicTemplate.js.map +1 -0
  40. package/dist/esm/src/expression.js +426 -0
  41. package/dist/esm/src/expression.js.map +1 -0
  42. package/dist/esm/src/helper.js +193 -0
  43. package/dist/esm/src/helper.js.map +1 -0
  44. package/dist/esm/src/index.js +8 -0
  45. package/dist/esm/src/index.js.map +1 -0
  46. package/dist/esm/src/pluginRegistry.js +29 -0
  47. package/dist/esm/src/pluginRegistry.js.map +1 -0
  48. package/dist/esm/src/schema.js +187 -0
  49. package/dist/esm/src/schema.js.map +1 -0
  50. package/dist/esm/src/types.js +2 -0
  51. package/dist/esm/src/types.js.map +1 -0
  52. package/dist/esm/src/version.js +2 -0
  53. package/dist/esm/src/version.js.map +1 -0
  54. package/dist/node/__tests__/dynamicTemplate.test.js +275 -0
  55. package/dist/node/__tests__/dynamicTemplate.test.js.map +1 -0
  56. package/dist/node/__tests__/expression.test.js +474 -0
  57. package/dist/node/__tests__/expression.test.js.map +1 -0
  58. package/dist/node/__tests__/helper.test.js +647 -0
  59. package/dist/node/__tests__/helper.test.js.map +1 -0
  60. package/dist/node/__tests__/pluginRegistry.test.js +83 -0
  61. package/dist/node/__tests__/pluginRegistry.test.js.map +1 -0
  62. package/dist/node/src/constants.js +27 -0
  63. package/dist/node/src/constants.js.map +1 -0
  64. package/dist/node/src/dynamicTemplate.js +284 -0
  65. package/dist/node/src/dynamicTemplate.js.map +1 -0
  66. package/dist/node/src/expression.js +463 -0
  67. package/dist/node/src/expression.js.map +1 -0
  68. package/dist/node/src/helper.js +217 -0
  69. package/dist/node/src/helper.js.map +1 -0
  70. package/dist/node/src/index.js +42 -0
  71. package/dist/node/src/index.js.map +1 -0
  72. package/dist/node/src/pluginRegistry.js +33 -0
  73. package/dist/node/src/pluginRegistry.js.map +1 -0
  74. package/dist/node/src/schema.js +190 -0
  75. package/dist/node/src/schema.js.map +1 -0
  76. package/dist/node/src/types.js +3 -0
  77. package/dist/node/src/types.js.map +1 -0
  78. package/dist/node/src/version.js +5 -0
  79. package/dist/node/src/version.js.map +1 -0
  80. package/dist/types/__tests__/dynamicTemplate.test.d.ts +1 -0
  81. package/dist/types/__tests__/expression.test.d.ts +1 -0
  82. package/dist/types/__tests__/helper.test.d.ts +1 -0
  83. package/dist/types/__tests__/pluginRegistry.test.d.ts +1 -0
  84. package/dist/types/src/constants.d.ts +20 -0
  85. package/dist/types/src/dynamicTemplate.d.ts +15 -0
  86. package/dist/types/src/expression.d.ts +6 -0
  87. package/dist/types/src/helper.d.ts +35 -0
  88. package/dist/types/src/index.d.ts +9 -0
  89. package/dist/types/src/pluginRegistry.d.ts +5 -0
  90. package/dist/types/src/schema.d.ts +820 -0
  91. package/dist/types/src/types.d.ts +181 -0
  92. package/dist/types/src/version.d.ts +1 -0
  93. package/eslint.config.mjs +22 -0
  94. package/package.json +84 -0
  95. package/set-version.js +31 -0
  96. package/src/constants.ts +30 -0
  97. package/src/dynamicTemplate.ts +349 -0
  98. package/src/expression.ts +460 -0
  99. package/src/helper.ts +284 -0
  100. package/src/index.ts +136 -0
  101. package/src/pluginRegistry.ts +30 -0
  102. package/src/schema.ts +223 -0
  103. package/src/types.ts +198 -0
  104. package/src/version.ts +1 -0
  105. package/tsconfig.cjs.json +10 -0
  106. package/tsconfig.esm.json +11 -0
  107. package/tsconfig.json +6 -0
  108. package/tsconfig.node.json +11 -0
@@ -0,0 +1,612 @@
1
+ import { readFileSync } from 'fs';
2
+ import * as path from 'path';
3
+ import { mm2pt, pt2mm, pt2px, checkGenerateProps, checkFont, checkPlugins, isHexValid, migrateTemplate, } from '../src/helper.js';
4
+ import { PT_TO_PX_RATIO, BLANK_PDF, getB64BasePdf, } from '../src/index.js';
5
+ const sansData = readFileSync(path.join(__dirname, `/assets/fonts/NotoSans-Regular.ttf`));
6
+ const serifData = readFileSync(path.join(__dirname, `/assets/fonts/NotoSerif-Regular.ttf`));
7
+ const getSampleFont = () => ({
8
+ NotoSans: { fallback: true, data: sansData },
9
+ NotoSerif: { data: serifData },
10
+ });
11
+ const getTemplate = () => ({
12
+ basePdf: BLANK_PDF,
13
+ schemas: [
14
+ [
15
+ {
16
+ name: 'a',
17
+ content: 'a',
18
+ type: 'text',
19
+ fontName: 'NotoSans',
20
+ position: { x: 0, y: 0 },
21
+ width: 100,
22
+ height: 100,
23
+ },
24
+ {
25
+ name: 'b',
26
+ content: 'b',
27
+ type: 'text',
28
+ position: { x: 0, y: 0 },
29
+ width: 100,
30
+ height: 100,
31
+ },
32
+ ],
33
+ ],
34
+ });
35
+ describe('mm2pt test', () => {
36
+ it('converts millimeters to points', () => {
37
+ expect(mm2pt(1)).toEqual(2.8346);
38
+ expect(mm2pt(10)).toEqual(28.346);
39
+ expect(mm2pt(4395.12)).toEqual(12458.407152);
40
+ });
41
+ });
42
+ describe('pt2mm test', () => {
43
+ it('converts points to millimeters', () => {
44
+ expect(pt2mm(1)).toEqual(0.3528);
45
+ expect(pt2mm(2.8346)).toEqual(1.00004688); // close enough!
46
+ expect(pt2mm(10)).toEqual(3.528);
47
+ expect(pt2mm(5322.98)).toEqual(1877.947344);
48
+ });
49
+ });
50
+ describe('pt2px test', () => {
51
+ it('converts points to pixels', () => {
52
+ expect(pt2px(1)).toEqual(PT_TO_PX_RATIO);
53
+ expect(pt2px(1)).toEqual(1.333);
54
+ expect(pt2px(2.8346)).toEqual(3.7785218);
55
+ expect(pt2px(10)).toEqual(13.33);
56
+ expect(pt2px(5322.98)).toEqual(7095.532339999999);
57
+ });
58
+ });
59
+ describe('isHexValid test', () => {
60
+ test('valid hex', () => {
61
+ expect(isHexValid('#fff')).toEqual(true);
62
+ expect(isHexValid('#ffffff')).toEqual(true);
63
+ expect(isHexValid('#ffffff00')).toEqual(true);
64
+ expect(isHexValid('#ffffff00')).toEqual(true);
65
+ });
66
+ test('invalid hex', () => {
67
+ expect(isHexValid('#ff')).toEqual(false);
68
+ expect(isHexValid('#fffff')).toEqual(false);
69
+ expect(isHexValid('#ffffff000')).toEqual(false);
70
+ expect(isHexValid('#ffffff0000')).toEqual(false);
71
+ expect(isHexValid('#ffffff00000')).toEqual(false);
72
+ expect(isHexValid('#ffffff000000')).toEqual(false);
73
+ expect(isHexValid('#pdfme123')).toEqual(false);
74
+ });
75
+ });
76
+ // NOTE: We only test the generator check function because the others
77
+ // have a schema that checks for HTMLElement, which isn't available in the test environment
78
+ describe('checkGenerateProps', () => {
79
+ test('accepts valid generator schema', () => {
80
+ const validProps = {
81
+ inputs: [{ a: 'a', b: 'b' }],
82
+ template: {
83
+ basePdf: 'data:application/pdf;base64,abc123',
84
+ schemas: [
85
+ [
86
+ {
87
+ name: 'field1',
88
+ type: 'text',
89
+ position: { x: 0, y: 0 },
90
+ width: 100,
91
+ height: 100,
92
+ content: 'Test'
93
+ }
94
+ ]
95
+ ]
96
+ },
97
+ options: {
98
+ font: getSampleFont()
99
+ },
100
+ plugins: {
101
+ text: {
102
+ pdf: async () => { },
103
+ ui: async () => { },
104
+ propPanel: {
105
+ schema: {},
106
+ defaultSchema: {
107
+ type: 'text',
108
+ name: 'myText',
109
+ content: '',
110
+ position: { x: 0, y: 0 },
111
+ width: 100,
112
+ height: 100
113
+ }
114
+ }
115
+ }
116
+ }
117
+ };
118
+ expect(() => checkGenerateProps(validProps)).not.toThrow();
119
+ });
120
+ test('throws for invalid template structure', () => {
121
+ const invalidProps = {
122
+ template: {
123
+ schemas: 'not-an-array' // Invalid type
124
+ }
125
+ };
126
+ expect(() => checkGenerateProps(invalidProps)).toThrow("[@pdfme/common] Invalid argument:\n" +
127
+ "--------------------------\n" +
128
+ "ERROR POSITION: template.schemas\n" +
129
+ "ERROR MESSAGE: Invalid input: expected array, received string\n" +
130
+ "--------------------------\n" +
131
+ "ERROR POSITION: template.basePdf\n" +
132
+ "ERROR MESSAGE: Invalid input\n" +
133
+ "--------------------------\n" +
134
+ "ERROR POSITION: inputs\n" +
135
+ "ERROR MESSAGE: Invalid input: expected array, received undefined\n" +
136
+ "--------------------------");
137
+ });
138
+ test('throws for missing required template field and empty inputs', () => {
139
+ const missingSchemaProps = {
140
+ inputs: [],
141
+ template: {
142
+ basePdf: 'data:application/pdf;base64,abc123',
143
+ // schemas is missing
144
+ }
145
+ };
146
+ expect(() => checkGenerateProps(missingSchemaProps)).toThrow("[@pdfme/common] Invalid argument:\n" +
147
+ "--------------------------\n" +
148
+ "ERROR POSITION: template.schemas\n" +
149
+ "ERROR MESSAGE: Invalid input: expected array, received undefined\n" +
150
+ "--------------------------\n" +
151
+ "ERROR POSITION: inputs\n" +
152
+ "ERROR MESSAGE: Too small: expected array to have >=1 items\n" +
153
+ "--------------------------");
154
+ });
155
+ test('throws for invalid plugin definitions', () => {
156
+ const invalidPluginProps = {
157
+ inputs: [{ a: 'a' }],
158
+ template: {
159
+ basePdf: 'data:application/pdf;base64,abc123',
160
+ schemas: [[]]
161
+ },
162
+ plugins: {
163
+ invalid: {
164
+ // missing pdf
165
+ // missing ui
166
+ propPanel: {
167
+ schema: {},
168
+ defaultSchema: {
169
+ // missing type
170
+ name: 'myText',
171
+ content: '',
172
+ position: { x: 0, y: 0 },
173
+ width: 100,
174
+ height: 100
175
+ }
176
+ }
177
+ },
178
+ missingPanel: {
179
+ pdf: async () => { },
180
+ ui: async () => { },
181
+ // missing propPanel
182
+ },
183
+ missingDefaultSchema: {
184
+ pdf: async () => { },
185
+ ui: async () => { },
186
+ propPanel: {}
187
+ }
188
+ }
189
+ };
190
+ expect(() => checkGenerateProps(invalidPluginProps)).toThrow("[@pdfme/common] Invalid argument:\n" +
191
+ "--------------------------\n" +
192
+ "ERROR POSITION: plugins.invalid.propPanel.defaultSchema.type\n" +
193
+ "ERROR MESSAGE: Invalid input: expected string, received undefined\n" +
194
+ "--------------------------\n" +
195
+ "ERROR POSITION: plugins.missingPanel.propPanel\n" +
196
+ "ERROR MESSAGE: Invalid input: expected object, received undefined\n" +
197
+ "--------------------------\n" +
198
+ "ERROR POSITION: plugins.missingDefaultSchema.propPanel.defaultSchema\n" +
199
+ "ERROR MESSAGE: Invalid input: expected object, received undefined\n" +
200
+ "--------------------------");
201
+ });
202
+ test('calls checkFont when font option is provided', () => {
203
+ const propsWithFont = {
204
+ inputs: [{ a: 'a' }],
205
+ template: {
206
+ basePdf: 'data:application/pdf;base64,abc123',
207
+ schemas: [[]]
208
+ },
209
+ options: {
210
+ font: { Roboto: { data: new Uint8Array(), fallback: true } }
211
+ }
212
+ };
213
+ checkGenerateProps(propsWithFont);
214
+ });
215
+ });
216
+ describe('checkFont test', () => {
217
+ test('success test: no fontName in Schemas', () => {
218
+ const _getTemplate = () => ({
219
+ basePdf: BLANK_PDF,
220
+ schemas: [
221
+ [
222
+ {
223
+ name: 'a',
224
+ content: 'a',
225
+ type: 'text',
226
+ position: { x: 0, y: 0 },
227
+ width: 100,
228
+ height: 100,
229
+ },
230
+ {
231
+ name: 'b',
232
+ content: 'b',
233
+ type: 'text',
234
+ position: { x: 0, y: 0 },
235
+ width: 100,
236
+ height: 100,
237
+ },
238
+ ],
239
+ ],
240
+ });
241
+ try {
242
+ checkFont({ template: _getTemplate(), font: getSampleFont() });
243
+ expect.anything();
244
+ }
245
+ catch (e) {
246
+ fail();
247
+ }
248
+ });
249
+ test('success test: fontName in Schemas(fallback font)', () => {
250
+ try {
251
+ checkFont({ template: getTemplate(), font: getSampleFont() });
252
+ expect.anything();
253
+ }
254
+ catch (e) {
255
+ fail();
256
+ }
257
+ });
258
+ test('success test: fontName in Schemas(not fallback font)', () => {
259
+ const getFont = () => ({
260
+ NotoSans: { data: sansData },
261
+ NotoSerif: { fallback: true, data: serifData },
262
+ });
263
+ try {
264
+ checkFont({ template: getTemplate(), font: getFont() });
265
+ expect.anything();
266
+ }
267
+ catch (e) {
268
+ fail();
269
+ }
270
+ });
271
+ test('fail test: no fallback font', () => {
272
+ const getFont = () => ({
273
+ NotoSans: { data: sansData },
274
+ NotoSerif: { data: serifData },
275
+ });
276
+ try {
277
+ checkFont({ template: getTemplate(), font: getFont() });
278
+ fail();
279
+ }
280
+ catch (e) {
281
+ expect(e.message).toEqual(`[@pdfme/common] fallback flag is not found in font. true fallback flag must be only one.
282
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
283
+ }
284
+ });
285
+ test('fail test: too many fallback font', () => {
286
+ const getFont = () => ({
287
+ NotoSans: { data: sansData, fallback: true },
288
+ NotoSerif: { data: serifData, fallback: true },
289
+ });
290
+ try {
291
+ checkFont({ template: getTemplate(), font: getFont() });
292
+ fail();
293
+ }
294
+ catch (e) {
295
+ expect(e.message).toEqual(`[@pdfme/common] 2 fallback flags found in font. true fallback flag must be only one.
296
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
297
+ }
298
+ });
299
+ test('fail test: fontName in Schemas not found in font(single)', () => {
300
+ const _getTemplate = () => ({
301
+ basePdf: BLANK_PDF,
302
+ schemas: [
303
+ [
304
+ {
305
+ name: 'a',
306
+ type: 'text',
307
+ content: 'a',
308
+ fontName: 'NotoSans2',
309
+ position: { x: 0, y: 0 },
310
+ width: 100,
311
+ height: 100,
312
+ },
313
+ {
314
+ name: 'b',
315
+ type: 'text',
316
+ content: 'b',
317
+ position: { x: 0, y: 0 },
318
+ width: 100,
319
+ height: 100,
320
+ },
321
+ ],
322
+ ],
323
+ });
324
+ try {
325
+ checkFont({ template: _getTemplate(), font: getSampleFont() });
326
+ fail();
327
+ }
328
+ catch (e) {
329
+ expect(e.message).toEqual(`[@pdfme/common] NotoSans2 of template.schemas is not found in font.
330
+ Check this document: https://pdfme.com/docs/custom-fonts`);
331
+ }
332
+ });
333
+ test('fail test: fontName in Schemas not found in font(single)', () => {
334
+ const _getTemplate = () => ({
335
+ basePdf: BLANK_PDF,
336
+ schemas: [
337
+ [
338
+ {
339
+ name: 'a',
340
+ type: 'text',
341
+ content: 'a',
342
+ fontName: 'NotoSans2',
343
+ position: { x: 0, y: 0 },
344
+ width: 100,
345
+ height: 100,
346
+ },
347
+ {
348
+ name: 'b',
349
+ type: 'text',
350
+ content: 'b',
351
+ fontName: 'NotoSerif2',
352
+ position: { x: 0, y: 0 },
353
+ width: 100,
354
+ height: 100,
355
+ },
356
+ ],
357
+ ],
358
+ });
359
+ try {
360
+ checkFont({ template: _getTemplate(), font: getSampleFont() });
361
+ fail();
362
+ }
363
+ catch (e) {
364
+ expect(e.message).toEqual(`[@pdfme/common] NotoSans2,NotoSerif2 of template.schemas is not found in font.
365
+ Check this document: https://pdfme.com/docs/custom-fonts`);
366
+ }
367
+ });
368
+ });
369
+ describe('checkPlugins test', () => {
370
+ const plugins = {
371
+ myText: {
372
+ pdf: async () => { },
373
+ ui: async () => { },
374
+ propPanel: {
375
+ schema: {},
376
+ defaultSchema: {
377
+ type: 'myText',
378
+ name: 'myText',
379
+ content: '',
380
+ position: { x: 0, y: 0 },
381
+ width: 100,
382
+ height: 100,
383
+ },
384
+ },
385
+ },
386
+ myImage: {
387
+ pdf: async () => { },
388
+ ui: async () => { },
389
+ propPanel: {
390
+ schema: {},
391
+ defaultSchema: {
392
+ type: 'myImage',
393
+ name: 'myImage',
394
+ content: '',
395
+ position: { x: 0, y: 0 },
396
+ width: 100,
397
+ height: 100,
398
+ },
399
+ },
400
+ },
401
+ };
402
+ test('success test: no type in Schemas(no plugins)', () => {
403
+ try {
404
+ const template = getTemplate();
405
+ template.schemas = [];
406
+ checkPlugins({ template, plugins: {} });
407
+ expect.anything();
408
+ }
409
+ catch (e) {
410
+ fail();
411
+ }
412
+ });
413
+ test('success test: no type in Schemas(with plugins)', () => {
414
+ try {
415
+ const template = getTemplate();
416
+ template.schemas = [];
417
+ checkPlugins({ template, plugins });
418
+ expect.anything();
419
+ }
420
+ catch (e) {
421
+ fail();
422
+ }
423
+ });
424
+ test('success test: type in Schemas(single)', () => {
425
+ try {
426
+ const template = getTemplate();
427
+ template.schemas[0][0].type = 'myText';
428
+ template.schemas[0][1].type = 'myText';
429
+ checkPlugins({ template, plugins });
430
+ expect.anything();
431
+ }
432
+ catch (e) {
433
+ fail();
434
+ }
435
+ });
436
+ test('success test: type in Schemas(multiple)', () => {
437
+ try {
438
+ const template = getTemplate();
439
+ template.schemas[0][0].type = 'myText';
440
+ template.schemas[0][1].type = 'myImage';
441
+ checkPlugins({ template, plugins });
442
+ expect.anything();
443
+ }
444
+ catch (e) {
445
+ fail();
446
+ }
447
+ });
448
+ test('fail test: type in Schemas not found in plugins(single)', () => {
449
+ try {
450
+ const template = getTemplate();
451
+ template.schemas[0][0].type = 'fail';
452
+ template.schemas[0][1].type = 'myImage';
453
+ checkPlugins({ template, plugins });
454
+ fail();
455
+ }
456
+ catch (e) {
457
+ expect(e.message).toEqual(`[@pdfme/common] fail of template.schemas is not found in plugins.`);
458
+ }
459
+ });
460
+ test('fail test: type in Schemas not found in plugins(multiple)', () => {
461
+ try {
462
+ const template = getTemplate();
463
+ template.schemas[0][0].type = 'fail';
464
+ template.schemas[0][1].type = 'fail2';
465
+ checkPlugins({ template, plugins });
466
+ fail();
467
+ }
468
+ catch (e) {
469
+ expect(e.message).toEqual(`[@pdfme/common] fail,fail2 of template.schemas is not found in plugins.`);
470
+ }
471
+ });
472
+ });
473
+ describe('migrateTemplate', () => {
474
+ it('should convert LegacySchemaPageArray to SchemaPageArray', () => {
475
+ const legacyTemplate = {
476
+ schemas: [
477
+ {
478
+ field1: {
479
+ type: 'text',
480
+ content: 'Field 1',
481
+ width: 45,
482
+ height: 10,
483
+ position: {
484
+ x: 0,
485
+ y: 0,
486
+ },
487
+ },
488
+ field2: {
489
+ type: 'text',
490
+ content: 'Field 2',
491
+ width: 45,
492
+ height: 10,
493
+ position: {
494
+ x: 0,
495
+ y: 0,
496
+ },
497
+ },
498
+ },
499
+ {
500
+ field3: {
501
+ type: 'text',
502
+ content: 'Field 3',
503
+ width: 45,
504
+ height: 10,
505
+ position: {
506
+ x: 0,
507
+ y: 0,
508
+ },
509
+ },
510
+ },
511
+ ],
512
+ };
513
+ migrateTemplate(legacyTemplate);
514
+ const expectedSchemaPageArray = [
515
+ [
516
+ {
517
+ name: 'field1',
518
+ type: 'text',
519
+ content: 'Field 1',
520
+ width: 45,
521
+ height: 10,
522
+ position: {
523
+ x: 0,
524
+ y: 0,
525
+ },
526
+ },
527
+ {
528
+ name: 'field2',
529
+ type: 'text',
530
+ content: 'Field 2',
531
+ width: 45,
532
+ height: 10,
533
+ position: {
534
+ x: 0,
535
+ y: 0,
536
+ },
537
+ },
538
+ ],
539
+ [
540
+ {
541
+ name: 'field3',
542
+ type: 'text',
543
+ content: 'Field 3',
544
+ width: 45,
545
+ height: 10,
546
+ position: {
547
+ x: 0,
548
+ y: 0,
549
+ },
550
+ },
551
+ ],
552
+ ];
553
+ expect(legacyTemplate.schemas).toEqual(expectedSchemaPageArray);
554
+ });
555
+ it('should not modify already SchemaPageArray', () => {
556
+ const pagedTemplate = {
557
+ schemas: [
558
+ [
559
+ {
560
+ name: 'field1',
561
+ type: 'text',
562
+ content: 'Field 1',
563
+ width: 45,
564
+ height: 10,
565
+ position: {
566
+ x: 0,
567
+ y: 0,
568
+ },
569
+ },
570
+ {
571
+ name: 'field2',
572
+ type: 'text',
573
+ content: 'Field 2',
574
+ width: 45,
575
+ height: 10,
576
+ position: {
577
+ x: 0,
578
+ y: 0,
579
+ },
580
+ },
581
+ ],
582
+ [
583
+ {
584
+ name: 'field3',
585
+ type: 'text',
586
+ content: 'Field 3',
587
+ width: 45,
588
+ height: 10,
589
+ position: {
590
+ x: 0,
591
+ y: 0,
592
+ },
593
+ },
594
+ ],
595
+ ],
596
+ };
597
+ const before = JSON.parse(JSON.stringify(pagedTemplate));
598
+ migrateTemplate(pagedTemplate);
599
+ expect(pagedTemplate.schemas).toEqual(before.schemas);
600
+ });
601
+ });
602
+ describe('getB64BasePdf', () => {
603
+ test('base64 string', async () => {
604
+ const result = await getB64BasePdf(BLANK_PDF);
605
+ expect(typeof result).toBe('string');
606
+ });
607
+ test('Uint8Array', async () => {
608
+ const result = await getB64BasePdf(new Uint8Array([10, 20, 30, 40, 50]));
609
+ expect(typeof result).toBe('string');
610
+ });
611
+ });
612
+ //# 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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"}