@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,426 @@
1
+ import * as acorn from 'acorn';
2
+ const expressionCache = new Map();
3
+ const parseDataCache = new Map();
4
+ const parseData = (data) => {
5
+ const key = JSON.stringify(data);
6
+ if (parseDataCache.has(key)) {
7
+ return parseDataCache.get(key);
8
+ }
9
+ const parsed = Object.fromEntries(Object.entries(data).map(([key, value]) => {
10
+ if (typeof value === 'string') {
11
+ try {
12
+ const parsedValue = JSON.parse(value);
13
+ return [key, parsedValue];
14
+ }
15
+ catch {
16
+ return [key, value];
17
+ }
18
+ }
19
+ return [key, value];
20
+ }));
21
+ parseDataCache.set(key, parsed);
22
+ return parsed;
23
+ };
24
+ const padZero = (num) => String(num).padStart(2, '0');
25
+ const formatDate = (date) => `${date.getFullYear()}/${padZero(date.getMonth() + 1)}/${padZero(date.getDate())}`;
26
+ const formatDateTime = (date) => `${formatDate(date)} ${padZero(date.getHours())}:${padZero(date.getMinutes())}`;
27
+ // Safe assign function that prevents prototype pollution
28
+ const safeAssign = (target, ...sources) => {
29
+ if (target == null) {
30
+ throw new TypeError('Cannot convert undefined or null to object');
31
+ }
32
+ const to = { ...target };
33
+ for (const source of sources) {
34
+ if (source != null) {
35
+ for (const key in source) {
36
+ // Skip prototype pollution keys
37
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
38
+ continue;
39
+ }
40
+ // Only copy own properties
41
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
42
+ to[key] = source[key];
43
+ }
44
+ }
45
+ }
46
+ }
47
+ return to;
48
+ };
49
+ // Create a safe copy of Object with dangerous methods excluded
50
+ const safeObject = {
51
+ keys: Object.keys,
52
+ values: Object.values,
53
+ entries: Object.entries,
54
+ fromEntries: Object.fromEntries,
55
+ is: Object.is,
56
+ hasOwnProperty: Object.hasOwnProperty,
57
+ assign: safeAssign, // Safe version of Object.assign
58
+ // The following methods are excluded due to security concerns:
59
+ // - Side effects: create, freeze, seal (can still be used for attacks)
60
+ // - Prototype access: getOwnPropertyDescriptor, getPrototypeOf, setPrototypeOf,
61
+ // defineProperty, defineProperties, getOwnPropertyNames, getOwnPropertySymbols
62
+ };
63
+ const allowedGlobals = {
64
+ Math,
65
+ String,
66
+ Number,
67
+ Boolean,
68
+ Array,
69
+ Object: safeObject,
70
+ Date,
71
+ JSON,
72
+ isNaN,
73
+ parseFloat,
74
+ parseInt,
75
+ decodeURI,
76
+ decodeURIComponent,
77
+ encodeURI,
78
+ encodeURIComponent,
79
+ };
80
+ const validateAST = (node) => {
81
+ switch (node.type) {
82
+ case 'Literal':
83
+ case 'Identifier':
84
+ break;
85
+ case 'BinaryExpression':
86
+ case 'LogicalExpression': {
87
+ const binaryNode = node;
88
+ validateAST(binaryNode.left);
89
+ validateAST(binaryNode.right);
90
+ break;
91
+ }
92
+ case 'UnaryExpression': {
93
+ const unaryNode = node;
94
+ validateAST(unaryNode.argument);
95
+ break;
96
+ }
97
+ case 'ConditionalExpression': {
98
+ const condNode = node;
99
+ validateAST(condNode.test);
100
+ validateAST(condNode.consequent);
101
+ validateAST(condNode.alternate);
102
+ break;
103
+ }
104
+ case 'MemberExpression': {
105
+ const memberNode = node;
106
+ validateAST(memberNode.object);
107
+ if (memberNode.computed) {
108
+ validateAST(memberNode.property);
109
+ }
110
+ else {
111
+ const propName = memberNode.property.name;
112
+ if (['constructor', '__proto__', 'prototype'].includes(propName)) {
113
+ throw new Error('Access to prohibited property');
114
+ }
115
+ // Block prototype pollution methods
116
+ if (['__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'].includes(propName)) {
117
+ throw new Error(`Access to prohibited method: ${propName}`);
118
+ }
119
+ const prohibitedMethods = ['toLocaleString', 'valueOf'];
120
+ if (typeof propName === 'string' && prohibitedMethods.includes(propName)) {
121
+ throw new Error(`Access to prohibited method: ${propName}`);
122
+ }
123
+ }
124
+ break;
125
+ }
126
+ case 'CallExpression': {
127
+ const callNode = node;
128
+ validateAST(callNode.callee);
129
+ callNode.arguments.forEach(validateAST);
130
+ break;
131
+ }
132
+ case 'ArrayExpression': {
133
+ const arrayNode = node;
134
+ arrayNode.elements.forEach((elem) => {
135
+ if (elem)
136
+ validateAST(elem);
137
+ });
138
+ break;
139
+ }
140
+ case 'ObjectExpression': {
141
+ const objectNode = node;
142
+ objectNode.properties.forEach((prop) => {
143
+ const propNode = prop;
144
+ validateAST(propNode.key);
145
+ validateAST(propNode.value);
146
+ });
147
+ break;
148
+ }
149
+ case 'ArrowFunctionExpression': {
150
+ const arrowFuncNode = node;
151
+ arrowFuncNode.params.forEach((param) => {
152
+ if (param.type !== 'Identifier') {
153
+ throw new Error('Only identifier parameters are supported in arrow functions');
154
+ }
155
+ validateAST(param);
156
+ });
157
+ validateAST(arrowFuncNode.body);
158
+ break;
159
+ }
160
+ default:
161
+ throw new Error(`Unsupported syntax in placeholder: ${node.type}`);
162
+ }
163
+ };
164
+ const evaluateAST = (node, context) => {
165
+ switch (node.type) {
166
+ case 'Literal': {
167
+ const literalNode = node;
168
+ return literalNode.value;
169
+ }
170
+ case 'Identifier': {
171
+ const idNode = node;
172
+ if (Object.prototype.hasOwnProperty.call(context, idNode.name)) {
173
+ return context[idNode.name];
174
+ }
175
+ else if (Object.prototype.hasOwnProperty.call(allowedGlobals, idNode.name)) {
176
+ return allowedGlobals[idNode.name];
177
+ }
178
+ else {
179
+ throw new Error(`Undefined variable: ${idNode.name}`);
180
+ }
181
+ }
182
+ case 'BinaryExpression': {
183
+ const binaryNode = node;
184
+ const left = evaluateAST(binaryNode.left, context);
185
+ const right = evaluateAST(binaryNode.right, context);
186
+ switch (binaryNode.operator) {
187
+ case '+':
188
+ return left + right;
189
+ case '-':
190
+ return left - right;
191
+ case '*':
192
+ return left * right;
193
+ case '/':
194
+ return left / right;
195
+ case '%':
196
+ return left % right;
197
+ case '**':
198
+ return left ** right;
199
+ case '==':
200
+ return left == right;
201
+ case '!=':
202
+ return left != right;
203
+ case '===':
204
+ return left === right;
205
+ case '!==':
206
+ return left !== right;
207
+ case '<':
208
+ return left < right;
209
+ case '>':
210
+ return left > right;
211
+ case '<=':
212
+ return left <= right;
213
+ case '>=':
214
+ return left >= right;
215
+ default:
216
+ throw new Error(`Unsupported operator: ${binaryNode.operator}`);
217
+ }
218
+ }
219
+ case 'LogicalExpression': {
220
+ const logicalNode = node;
221
+ const leftLogical = evaluateAST(logicalNode.left, context);
222
+ const rightLogical = evaluateAST(logicalNode.right, context);
223
+ switch (logicalNode.operator) {
224
+ case '&&':
225
+ return leftLogical && rightLogical;
226
+ case '||':
227
+ return leftLogical || rightLogical;
228
+ default:
229
+ throw new Error(`Unsupported operator: ${logicalNode.operator}`);
230
+ }
231
+ }
232
+ case 'UnaryExpression': {
233
+ const unaryNode = node;
234
+ const arg = evaluateAST(unaryNode.argument, context);
235
+ switch (unaryNode.operator) {
236
+ case '+':
237
+ return +arg;
238
+ case '-':
239
+ return -arg;
240
+ case '!':
241
+ return !arg;
242
+ default:
243
+ throw new Error(`Unsupported operator: ${unaryNode.operator}`);
244
+ }
245
+ }
246
+ case 'ConditionalExpression': {
247
+ const condNode = node;
248
+ const test = evaluateAST(condNode.test, context);
249
+ return test
250
+ ? evaluateAST(condNode.consequent, context)
251
+ : evaluateAST(condNode.alternate, context);
252
+ }
253
+ case 'MemberExpression': {
254
+ const memberNode = node;
255
+ const obj = evaluateAST(memberNode.object, context);
256
+ let prop;
257
+ if (memberNode.computed) {
258
+ prop = evaluateAST(memberNode.property, context);
259
+ }
260
+ else {
261
+ prop = memberNode.property.name;
262
+ }
263
+ if (typeof prop === 'string' || typeof prop === 'number') {
264
+ if (typeof prop === 'string' && ['constructor', '__proto__', 'prototype'].includes(prop)) {
265
+ throw new Error('Access to prohibited property');
266
+ }
267
+ // Block prototype pollution methods
268
+ if (typeof prop === 'string' && ['__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'].includes(prop)) {
269
+ throw new Error(`Access to prohibited method: ${prop}`);
270
+ }
271
+ return obj[prop];
272
+ }
273
+ else {
274
+ throw new Error('Invalid property access');
275
+ }
276
+ }
277
+ case 'CallExpression': {
278
+ const callNode = node;
279
+ const callee = evaluateAST(callNode.callee, context);
280
+ const args = callNode.arguments.map((argNode) => evaluateAST(argNode, context));
281
+ if (typeof callee === 'function') {
282
+ if (callNode.callee.type === 'MemberExpression') {
283
+ const memberExpr = callNode.callee;
284
+ const obj = evaluateAST(memberExpr.object, context);
285
+ if (obj !== null &&
286
+ (typeof obj === 'object' ||
287
+ typeof obj === 'number' ||
288
+ typeof obj === 'string' ||
289
+ typeof obj === 'boolean')) {
290
+ return callee.call(obj, ...args);
291
+ }
292
+ else {
293
+ throw new Error('Invalid object in member function call');
294
+ }
295
+ }
296
+ else {
297
+ // Use a type assertion to tell TypeScript this is a safe function call
298
+ return callee(...args);
299
+ }
300
+ }
301
+ else {
302
+ throw new Error('Attempted to call a non-function');
303
+ }
304
+ }
305
+ case 'ArrowFunctionExpression': {
306
+ const arrowFuncNode = node;
307
+ const params = arrowFuncNode.params.map((param) => param.name);
308
+ const body = arrowFuncNode.body;
309
+ return (...args) => {
310
+ const newContext = { ...context };
311
+ params.forEach((param, index) => {
312
+ newContext[param] = args[index];
313
+ });
314
+ return evaluateAST(body, newContext);
315
+ };
316
+ }
317
+ case 'ArrayExpression': {
318
+ const arrayNode = node;
319
+ return arrayNode.elements.map((elem) => (elem ? evaluateAST(elem, context) : null));
320
+ }
321
+ case 'ObjectExpression': {
322
+ const objectNode = node;
323
+ const objResult = {};
324
+ objectNode.properties.forEach((prop) => {
325
+ const propNode = prop;
326
+ let key;
327
+ if (propNode.key.type === 'Identifier') {
328
+ key = propNode.key.name;
329
+ }
330
+ else {
331
+ const evaluatedKey = evaluateAST(propNode.key, context);
332
+ if (typeof evaluatedKey !== 'string' && typeof evaluatedKey !== 'number') {
333
+ throw new Error('Object property keys must be strings or numbers');
334
+ }
335
+ key = String(evaluatedKey);
336
+ }
337
+ const value = evaluateAST(propNode.value, context);
338
+ objResult[key] = value;
339
+ });
340
+ return objResult;
341
+ }
342
+ default:
343
+ throw new Error(`Unsupported syntax in placeholder: ${node.type}`);
344
+ }
345
+ };
346
+ const evaluatePlaceholders = (arg) => {
347
+ const { content, context } = arg;
348
+ let resultContent = '';
349
+ let index = 0;
350
+ while (index < content.length) {
351
+ const startIndex = content.indexOf('{', index);
352
+ if (startIndex === -1) {
353
+ resultContent += content.slice(index);
354
+ break;
355
+ }
356
+ resultContent += content.slice(index, startIndex);
357
+ let braceCount = 1;
358
+ let endIndex = startIndex + 1;
359
+ while (endIndex < content.length && braceCount > 0) {
360
+ if (content[endIndex] === '{') {
361
+ braceCount++;
362
+ }
363
+ else if (content[endIndex] === '}') {
364
+ braceCount--;
365
+ }
366
+ endIndex++;
367
+ }
368
+ if (braceCount === 0) {
369
+ const code = content.slice(startIndex + 1, endIndex - 1).trim();
370
+ if (expressionCache.has(code)) {
371
+ const evalFunc = expressionCache.get(code);
372
+ try {
373
+ const value = evalFunc(context);
374
+ resultContent += String(value);
375
+ }
376
+ catch {
377
+ resultContent += content.slice(startIndex, endIndex);
378
+ }
379
+ }
380
+ else {
381
+ try {
382
+ const ast = acorn.parseExpressionAt(code, 0, { ecmaVersion: 'latest' });
383
+ validateAST(ast);
384
+ const evalFunc = (ctx) => evaluateAST(ast, ctx);
385
+ expressionCache.set(code, evalFunc);
386
+ const value = evalFunc(context);
387
+ resultContent += String(value);
388
+ }
389
+ catch {
390
+ resultContent += content.slice(startIndex, endIndex);
391
+ }
392
+ }
393
+ index = endIndex;
394
+ }
395
+ else {
396
+ throw new Error('Invalid placeholder');
397
+ }
398
+ }
399
+ return resultContent;
400
+ };
401
+ export const replacePlaceholders = (arg) => {
402
+ const { content, variables, schemas } = arg;
403
+ if (!content || typeof content !== 'string' || !content.includes('{') || !content.includes('}')) {
404
+ return content;
405
+ }
406
+ const date = new Date();
407
+ const formattedDate = formatDate(date);
408
+ const formattedDateTime = formatDateTime(date);
409
+ const data = {
410
+ ...Object.fromEntries(schemas.flat().map((schema) => [schema.name, schema.readOnly ? schema.content || '' : ''])),
411
+ ...variables,
412
+ };
413
+ const parsedInput = parseData(data);
414
+ const context = {
415
+ date: formattedDate,
416
+ dateTime: formattedDateTime,
417
+ ...parsedInput,
418
+ };
419
+ Object.entries(context).forEach(([key, value]) => {
420
+ if (typeof value === 'string' && value.includes('{') && value.includes('}')) {
421
+ context[key] = evaluatePlaceholders({ content: value, context });
422
+ }
423
+ });
424
+ return evaluatePlaceholders({ content, context });
425
+ };
426
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ import { z } from 'zod';
2
+ import { Buffer } from 'buffer';
3
+ import { Inputs as InputsSchema, UIOptions as UIOptionsSchema, Template as TemplateSchema, PreviewProps as PreviewPropsSchema, DesignerProps as DesignerPropsSchema, GenerateProps as GeneratePropsSchema, UIProps as UIPropsSchema, BlankPdf as BlankPdfSchema, } from './schema.js';
4
+ import { MM_TO_PT_RATIO, PT_TO_MM_RATIO, PT_TO_PX_RATIO, DEFAULT_FONT_NAME, DEFAULT_FONT_VALUE, } from './constants.js';
5
+ export const cloneDeep = structuredClone;
6
+ const uniq = (array) => Array.from(new Set(array));
7
+ export const getFallbackFontName = (font) => {
8
+ const initial = '';
9
+ const fallbackFontName = Object.entries(font).reduce((acc, cur) => {
10
+ const [fontName, fontValue] = cur;
11
+ return !acc && fontValue.fallback ? fontName : acc;
12
+ }, initial);
13
+ if (fallbackFontName === initial) {
14
+ throw Error(`[@pdfme/common] fallback flag is not found in font. true fallback flag must be only one.`);
15
+ }
16
+ return fallbackFontName;
17
+ };
18
+ export const getDefaultFont = () => ({
19
+ [DEFAULT_FONT_NAME]: { data: b64toUint8Array(DEFAULT_FONT_VALUE), fallback: true },
20
+ });
21
+ export const mm2pt = (mm) => {
22
+ return parseFloat(String(mm)) * MM_TO_PT_RATIO;
23
+ };
24
+ export const pt2mm = (pt) => {
25
+ return pt * PT_TO_MM_RATIO;
26
+ };
27
+ export const pt2px = (pt) => {
28
+ return pt * PT_TO_PX_RATIO;
29
+ };
30
+ export const px2mm = (px) => {
31
+ // http://www.endmemo.com/sconvert/millimeterpixel.php
32
+ const ratio = 0.26458333333333;
33
+ return parseFloat(String(px)) * ratio;
34
+ };
35
+ const blob2Base64Pdf = (blob) => {
36
+ return new Promise((resolve, reject) => {
37
+ const reader = new FileReader();
38
+ reader.onloadend = () => {
39
+ if (reader.result.startsWith('data:application/pdf;')) {
40
+ resolve(reader.result);
41
+ }
42
+ else {
43
+ reject(Error('[@pdfme/common] template.basePdf must be pdf data.'));
44
+ }
45
+ };
46
+ reader.readAsDataURL(blob);
47
+ });
48
+ };
49
+ export const isHexValid = (hex) => {
50
+ return /^#(?:[A-Fa-f0-9]{3,4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/i.test(hex);
51
+ };
52
+ /**
53
+ * Migrate from legacy keyed object format to array format
54
+ * @param template Template
55
+ */
56
+ export const migrateTemplate = (template) => {
57
+ if (!template.schemas) {
58
+ return;
59
+ }
60
+ if (Array.isArray(template.schemas) &&
61
+ template.schemas.length > 0 &&
62
+ !Array.isArray(template.schemas[0])) {
63
+ template.schemas = template.schemas.map((page) => Object.entries(page).map(([key, value]) => ({
64
+ ...value,
65
+ name: key,
66
+ })));
67
+ }
68
+ };
69
+ export const getInputFromTemplate = (template) => {
70
+ migrateTemplate(template);
71
+ const input = {};
72
+ template.schemas.forEach((page) => {
73
+ page.forEach((schema) => {
74
+ if (!schema.readOnly) {
75
+ input[schema.name] = schema.content || '';
76
+ }
77
+ });
78
+ });
79
+ return [input];
80
+ };
81
+ export const getB64BasePdf = async (customPdf) => {
82
+ if (typeof customPdf === 'string' &&
83
+ !customPdf.startsWith('data:application/pdf;') &&
84
+ typeof window !== 'undefined') {
85
+ const response = await fetch(customPdf);
86
+ const blob = await response.blob();
87
+ return blob2Base64Pdf(blob);
88
+ }
89
+ if (typeof customPdf === 'string') {
90
+ return customPdf;
91
+ }
92
+ const uint8Array = customPdf instanceof Uint8Array ? customPdf : new Uint8Array(customPdf);
93
+ return 'data:application/pdf;base64,' + Buffer.from(uint8Array).toString('base64');
94
+ };
95
+ export const isBlankPdf = (basePdf) => BlankPdfSchema.safeParse(basePdf).success;
96
+ const getByteString = (base64) => Buffer.from(base64, 'base64').toString('binary');
97
+ export const b64toUint8Array = (base64) => {
98
+ const data = base64.split(';base64,')[1] ? base64.split(';base64,')[1] : base64;
99
+ const byteString = getByteString(data);
100
+ const unit8arr = new Uint8Array(byteString.length);
101
+ for (let i = 0; i < byteString.length; i += 1) {
102
+ unit8arr[i] = byteString.charCodeAt(i);
103
+ }
104
+ return unit8arr;
105
+ };
106
+ const getFontNamesInSchemas = (schemas) => uniq(schemas
107
+ .map((p) => p.map((v) => v.fontName ?? ''))
108
+ .reduce((acc, cur) => acc.concat(cur), [])
109
+ .filter(Boolean));
110
+ export const checkFont = (arg) => {
111
+ const { font, template: { schemas }, } = arg;
112
+ const fontValues = Object.values(font);
113
+ const fallbackFontNum = fontValues.reduce((acc, cur) => (cur.fallback ? acc + 1 : acc), 0);
114
+ if (fallbackFontNum === 0) {
115
+ throw Error(`[@pdfme/common] fallback flag is not found in font. true fallback flag must be only one.
116
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
117
+ }
118
+ if (fallbackFontNum > 1) {
119
+ throw Error(`[@pdfme/common] ${fallbackFontNum} fallback flags found in font. true fallback flag must be only one.
120
+ Check this document: https://pdfme.com/docs/custom-fonts#about-font-type`);
121
+ }
122
+ const fontNamesInSchemas = getFontNamesInSchemas(schemas);
123
+ const fontNames = Object.keys(font);
124
+ if (fontNamesInSchemas.some((f) => !fontNames.includes(f))) {
125
+ throw Error(`[@pdfme/common] ${fontNamesInSchemas
126
+ .filter((f) => !fontNames.includes(f))
127
+ .join()} of template.schemas is not found in font.
128
+ Check this document: https://pdfme.com/docs/custom-fonts`);
129
+ }
130
+ };
131
+ export const checkPlugins = (arg) => {
132
+ const { plugins, template: { schemas }, } = arg;
133
+ const allSchemaTypes = uniq(schemas.map((p) => p.map((v) => v.type)).flat());
134
+ const pluginsSchemaTypes = Object.values(plugins).map((p) => p ? p.propPanel.defaultSchema.type : undefined);
135
+ if (allSchemaTypes.some((s) => !pluginsSchemaTypes.includes(s))) {
136
+ throw Error(`[@pdfme/common] ${allSchemaTypes
137
+ .filter((s) => !pluginsSchemaTypes.includes(s))
138
+ .join()} of template.schemas is not found in plugins.`);
139
+ }
140
+ };
141
+ const checkProps = (data, zodSchema) => {
142
+ try {
143
+ zodSchema.parse(data);
144
+ }
145
+ catch (e) {
146
+ if (e instanceof z.ZodError) {
147
+ const messages = e.issues.map((issue) => `ERROR POSITION: ${issue.path.join('.')}
148
+ ERROR MESSAGE: ${issue.message}
149
+ --------------------------`);
150
+ throw Error(`[@pdfme/common] Invalid argument:
151
+ --------------------------
152
+ ${messages.join('\n')}`);
153
+ }
154
+ else {
155
+ throw Error(`[@pdfme/common] Unexpected parsing error: ${e instanceof Error ? e.message : String(e)}`);
156
+ }
157
+ }
158
+ // Check fonts if template and options exist
159
+ if (data && typeof data === 'object' && 'template' in data && 'options' in data) {
160
+ const { template, options } = data;
161
+ if (options && options.font) {
162
+ checkFont({ font: options.font, template });
163
+ }
164
+ }
165
+ // Check plugins if template and plugins exist
166
+ if (data && typeof data === 'object' && 'template' in data && 'plugins' in data) {
167
+ const { template, plugins } = data;
168
+ if (plugins) {
169
+ checkPlugins({ plugins, template });
170
+ }
171
+ }
172
+ };
173
+ export const checkInputs = (data) => checkProps(data, InputsSchema);
174
+ export const checkUIOptions = (data) => checkProps(data, UIOptionsSchema);
175
+ export const checkPreviewProps = (data) => checkProps(data, PreviewPropsSchema);
176
+ export const checkDesignerProps = (data) => checkProps(data, DesignerPropsSchema);
177
+ export const checkUIProps = (data) => {
178
+ if (typeof data === 'object' && data !== null && 'template' in data) {
179
+ migrateTemplate(data.template);
180
+ }
181
+ checkProps(data, UIPropsSchema);
182
+ };
183
+ export const checkTemplate = (template) => {
184
+ migrateTemplate(template);
185
+ checkProps(template, TemplateSchema);
186
+ };
187
+ export const checkGenerateProps = (data) => {
188
+ if (typeof data === 'object' && data !== null && 'template' in data) {
189
+ migrateTemplate(data.template);
190
+ }
191
+ checkProps(data, GeneratePropsSchema);
192
+ };
193
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { PDFME_VERSION } from './version.js';
2
+ import { MM_TO_PT_RATIO, PT_TO_MM_RATIO, PT_TO_PX_RATIO, BLANK_PDF, BLANK_A4_PDF, CUSTOM_A4_PDF, ZOOM, DEFAULT_FONT_NAME, } from './constants.js';
3
+ import { cloneDeep, getFallbackFontName, getDefaultFont, getB64BasePdf, b64toUint8Array, checkFont, checkInputs, checkUIOptions, checkTemplate, checkUIProps, checkPreviewProps, checkDesignerProps, checkGenerateProps, mm2pt, pt2mm, pt2px, px2mm, isHexValid, getInputFromTemplate, isBlankPdf, } from './helper.js';
4
+ import { getDynamicTemplate } from './dynamicTemplate.js';
5
+ import { replacePlaceholders } from './expression.js';
6
+ import { pluginRegistry } from './pluginRegistry.js';
7
+ export { PDFME_VERSION, MM_TO_PT_RATIO, PT_TO_MM_RATIO, PT_TO_PX_RATIO, BLANK_PDF, BLANK_A4_PDF, CUSTOM_A4_PDF, ZOOM, DEFAULT_FONT_NAME, cloneDeep, getFallbackFontName, getDefaultFont, getB64BasePdf, b64toUint8Array, mm2pt, pt2mm, pt2px, px2mm, isHexValid, getInputFromTemplate, isBlankPdf, getDynamicTemplate, replacePlaceholders, checkFont, checkInputs, checkUIOptions, checkTemplate, checkUIProps, checkPreviewProps, checkDesignerProps, checkGenerateProps, pluginRegistry, };
8
+ //# sourceMappingURL=index.js.map