@veztraa/report-core 0.1.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.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Evaluates {{field.path}} expressions against a data object.
3
+ * Supports: {{name}}, {{address.city}}, {{items.0.price}}
4
+ */
5
+ export declare function evaluate(template: string, data: Record<string, unknown>): string;
6
+ /**
7
+ * Evaluates a condition string like "{{status}} === 'active'" against data.
8
+ * Returns true if the condition is truthy, false otherwise.
9
+ *
10
+ * Conditions are parsed structurally — NEVER eval'd — so neither a template's
11
+ * condition nor a data value can execute code. Supported:
12
+ * {{path}} OP value OP ∈ === == != !== > < >= <=
13
+ * combinations with && and ||
14
+ * a bare {{path}} (truthiness)
15
+ * Operands may be {{path}} references, 'quoted'/"quoted" strings, numbers,
16
+ * or true/false/null. Anything unparseable makes the element visible (true).
17
+ */
18
+ export declare function evaluateCondition(condition: string, data: Record<string, unknown>): boolean;
19
+ /**
20
+ * Resolves a dot-path to an array in the data object for table/chart repeating.
21
+ */
22
+ export declare function resolveArray(dataSource: string, data: Record<string, unknown>): Record<string, unknown>[];
23
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKhF;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQ3F;AA6FD;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAIzG"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Evaluates {{field.path}} expressions against a data object.
3
+ * Supports: {{name}}, {{address.city}}, {{items.0.price}}
4
+ */
5
+ export function evaluate(template, data) {
6
+ return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
7
+ const value = resolvePath(data, path.trim());
8
+ return value !== undefined && value !== null ? String(value) : "";
9
+ });
10
+ }
11
+ function resolvePath(obj, path) {
12
+ return path.split(".").reduce((current, key) => {
13
+ if (current === null || current === undefined)
14
+ return undefined;
15
+ if (typeof current === "object")
16
+ return current[key];
17
+ return undefined;
18
+ }, obj);
19
+ }
20
+ /**
21
+ * Evaluates a condition string like "{{status}} === 'active'" against data.
22
+ * Returns true if the condition is truthy, false otherwise.
23
+ *
24
+ * Conditions are parsed structurally — NEVER eval'd — so neither a template's
25
+ * condition nor a data value can execute code. Supported:
26
+ * {{path}} OP value OP ∈ === == != !== > < >= <=
27
+ * combinations with && and ||
28
+ * a bare {{path}} (truthiness)
29
+ * Operands may be {{path}} references, 'quoted'/"quoted" strings, numbers,
30
+ * or true/false/null. Anything unparseable makes the element visible (true).
31
+ */
32
+ export function evaluateCondition(condition, data) {
33
+ const expr = condition.trim();
34
+ if (!expr)
35
+ return true;
36
+ try {
37
+ return evalOr(expr, data);
38
+ }
39
+ catch {
40
+ return true;
41
+ }
42
+ }
43
+ // Split on a top-level operator (&& or ||), ignoring occurrences inside quotes.
44
+ function splitTop(expr, op) {
45
+ const out = [];
46
+ let depth = 0, quote = "", start = 0;
47
+ for (let i = 0; i < expr.length; i++) {
48
+ const c = expr[i];
49
+ if (quote) {
50
+ if (c === quote)
51
+ quote = "";
52
+ continue;
53
+ }
54
+ if (c === "'" || c === '"') {
55
+ quote = c;
56
+ continue;
57
+ }
58
+ if (c === "(")
59
+ depth++;
60
+ else if (c === ")")
61
+ depth--;
62
+ else if (depth === 0 && expr[i] === op[0] && expr[i + 1] === op[1]) {
63
+ out.push(expr.slice(start, i));
64
+ i++;
65
+ start = i + 1;
66
+ }
67
+ }
68
+ out.push(expr.slice(start));
69
+ return out;
70
+ }
71
+ function evalOr(expr, data) {
72
+ const parts = splitTop(expr, "||");
73
+ if (parts.length > 1)
74
+ return parts.some((p) => evalAnd(p.trim(), data));
75
+ return evalAnd(expr, data);
76
+ }
77
+ function evalAnd(expr, data) {
78
+ const parts = splitTop(expr, "&&");
79
+ if (parts.length > 1)
80
+ return parts.every((p) => evalComparison(p.trim(), data));
81
+ return evalComparison(expr.trim(), data);
82
+ }
83
+ const COMPARE_OPS = ["===", "!==", ">=", "<=", "==", "!=", ">", "<"];
84
+ function evalComparison(expr, data) {
85
+ // Strip a single wrapping pair of parens.
86
+ if (expr.startsWith("(") && expr.endsWith(")"))
87
+ return evalOr(expr.slice(1, -1).trim(), data);
88
+ for (const op of COMPARE_OPS) {
89
+ const i = findOp(expr, op);
90
+ if (i > 0) {
91
+ const lhs = resolveOperand(expr.slice(0, i).trim(), data);
92
+ const rhs = resolveOperand(expr.slice(i + op.length).trim(), data);
93
+ return compare(lhs, op, rhs);
94
+ }
95
+ }
96
+ // No operator → truthiness of the single operand.
97
+ return Boolean(resolveOperand(expr.trim(), data));
98
+ }
99
+ // Find an operator outside of quotes.
100
+ function findOp(expr, op) {
101
+ let quote = "";
102
+ for (let i = 0; i <= expr.length - op.length; i++) {
103
+ const c = expr[i];
104
+ if (quote) {
105
+ if (c === quote)
106
+ quote = "";
107
+ continue;
108
+ }
109
+ if (c === "'" || c === '"') {
110
+ quote = c;
111
+ continue;
112
+ }
113
+ if (expr.startsWith(op, i))
114
+ return i;
115
+ }
116
+ return -1;
117
+ }
118
+ function resolveOperand(token, data) {
119
+ if (!token)
120
+ return undefined;
121
+ const ref = /^\{\{\s*([^}]+?)\s*\}\}$/.exec(token);
122
+ if (ref)
123
+ return resolvePath(data, ref[1].trim());
124
+ const q = token[0];
125
+ if ((q === "'" || q === '"') && token.length >= 2 && token[token.length - 1] === q) {
126
+ return token.slice(1, -1);
127
+ }
128
+ if (/^-?\d+(\.\d+)?$/.test(token))
129
+ return Number(token);
130
+ if (token === "true")
131
+ return true;
132
+ if (token === "false")
133
+ return false;
134
+ if (token === "null")
135
+ return null;
136
+ if (token === "undefined")
137
+ return undefined;
138
+ return token; // bare word → literal string
139
+ }
140
+ function compare(a, op, b) {
141
+ switch (op) {
142
+ case "===": return a === b;
143
+ case "==": return a == b; // eslint-disable-line eqeqeq
144
+ case "!==": return a !== b;
145
+ case "!=": return a != b; // eslint-disable-line eqeqeq
146
+ case ">": return Number(a) > Number(b);
147
+ case "<": return Number(a) < Number(b);
148
+ case ">=": return Number(a) >= Number(b);
149
+ case "<=": return Number(a) <= Number(b);
150
+ default: return false;
151
+ }
152
+ }
153
+ /**
154
+ * Resolves a dot-path to an array in the data object for table/chart repeating.
155
+ */
156
+ export function resolveArray(dataSource, data) {
157
+ const result = resolvePath(data, dataSource);
158
+ if (Array.isArray(result))
159
+ return result;
160
+ return [];
161
+ }
162
+ //# 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,64 @@
1
+ export declare const SUPPORTED_FONTS: readonly [{
2
+ readonly value: "Helvetica";
3
+ readonly label: "Helvetica";
4
+ readonly category: "sans-serif";
5
+ }, {
6
+ readonly value: "Times-Roman";
7
+ readonly label: "Times Roman";
8
+ readonly category: "serif";
9
+ }, {
10
+ readonly value: "Courier";
11
+ readonly label: "Courier";
12
+ readonly category: "monospace";
13
+ }, {
14
+ readonly value: "Roboto";
15
+ readonly label: "Roboto";
16
+ readonly category: "sans-serif";
17
+ }, {
18
+ readonly value: "Open Sans";
19
+ readonly label: "Open Sans";
20
+ readonly category: "sans-serif";
21
+ }, {
22
+ readonly value: "Lato";
23
+ readonly label: "Lato";
24
+ readonly category: "sans-serif";
25
+ }, {
26
+ readonly value: "Montserrat";
27
+ readonly label: "Montserrat";
28
+ readonly category: "sans-serif";
29
+ }, {
30
+ readonly value: "Inter";
31
+ readonly label: "Inter";
32
+ readonly category: "sans-serif";
33
+ }, {
34
+ readonly value: "Poppins";
35
+ readonly label: "Poppins";
36
+ readonly category: "sans-serif";
37
+ }, {
38
+ readonly value: "Nunito";
39
+ readonly label: "Nunito";
40
+ readonly category: "sans-serif";
41
+ }, {
42
+ readonly value: "Raleway";
43
+ readonly label: "Raleway";
44
+ readonly category: "sans-serif";
45
+ }, {
46
+ readonly value: "Ubuntu";
47
+ readonly label: "Ubuntu";
48
+ readonly category: "sans-serif";
49
+ }, {
50
+ readonly value: "Playfair Display";
51
+ readonly label: "Playfair Display";
52
+ readonly category: "serif";
53
+ }, {
54
+ readonly value: "Merriweather";
55
+ readonly label: "Merriweather";
56
+ readonly category: "serif";
57
+ }, {
58
+ readonly value: "Source Code Pro";
59
+ readonly label: "Source Code Pro";
60
+ readonly category: "monospace";
61
+ }];
62
+ export type FontCategory = "sans-serif" | "serif" | "monospace";
63
+ export type FontFamily = (typeof SUPPORTED_FONTS)[number]["value"];
64
+ //# sourceMappingURL=fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC"}
package/dist/fonts.js ADDED
@@ -0,0 +1,20 @@
1
+ export const SUPPORTED_FONTS = [
2
+ // Built-in @react-pdf/renderer fonts — always available, no CDN needed
3
+ { value: "Helvetica", label: "Helvetica", category: "sans-serif" },
4
+ { value: "Times-Roman", label: "Times Roman", category: "serif" },
5
+ { value: "Courier", label: "Courier", category: "monospace" },
6
+ // Google Fonts registered via jsDelivr CDN in the renderer
7
+ { value: "Roboto", label: "Roboto", category: "sans-serif" },
8
+ { value: "Open Sans", label: "Open Sans", category: "sans-serif" },
9
+ { value: "Lato", label: "Lato", category: "sans-serif" },
10
+ { value: "Montserrat", label: "Montserrat", category: "sans-serif" },
11
+ { value: "Inter", label: "Inter", category: "sans-serif" },
12
+ { value: "Poppins", label: "Poppins", category: "sans-serif" },
13
+ { value: "Nunito", label: "Nunito", category: "sans-serif" },
14
+ { value: "Raleway", label: "Raleway", category: "sans-serif" },
15
+ { value: "Ubuntu", label: "Ubuntu", category: "sans-serif" },
16
+ { value: "Playfair Display", label: "Playfair Display", category: "serif" },
17
+ { value: "Merriweather", label: "Merriweather", category: "serif" },
18
+ { value: "Source Code Pro", label: "Source Code Pro", category: "monospace" },
19
+ ];
20
+ //# sourceMappingURL=fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,uEAAuE;IACvE,EAAE,KAAK,EAAE,WAAW,EAAS,KAAK,EAAE,WAAW,EAAS,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,aAAa,EAAO,KAAK,EAAE,aAAa,EAAO,QAAQ,EAAE,OAAO,EAAO;IAChF,EAAE,KAAK,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS,EAAW,QAAQ,EAAE,WAAW,EAAG;IAChF,2DAA2D;IAC3D,EAAE,KAAK,EAAE,QAAQ,EAAY,KAAK,EAAE,QAAQ,EAAY,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,WAAW,EAAS,KAAK,EAAE,WAAW,EAAS,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,MAAM,EAAc,KAAK,EAAE,MAAM,EAAc,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,YAAY,EAAQ,KAAK,EAAE,YAAY,EAAQ,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,OAAO,EAAa,KAAK,EAAE,OAAO,EAAa,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS,EAAW,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,QAAQ,EAAY,KAAK,EAAE,QAAQ,EAAY,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS,EAAW,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,QAAQ,EAAY,KAAK,EAAE,QAAQ,EAAY,QAAQ,EAAE,YAAY,EAAE;IAChF,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAO;IAChF,EAAE,KAAK,EAAE,cAAc,EAAM,KAAK,EAAE,cAAc,EAAM,QAAQ,EAAE,OAAO,EAAO;IAChF,EAAE,KAAK,EAAE,iBAAiB,EAAG,KAAK,EAAE,iBAAiB,EAAG,QAAQ,EAAE,WAAW,EAAG;CACxE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./schema.js";
2
+ export * from "./expression.js";
3
+ export * from "./fonts.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./schema.js";
2
+ export * from "./expression.js";
3
+ export * from "./fonts.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}