jsxpression 0.1.8 → 0.1.11

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 (133) hide show
  1. package/lib/analyze/analysis-error.js +5 -1
  2. package/lib/analyze/analysis-error.js.map +1 -1
  3. package/lib/analyze/analysis-report.js +5 -1
  4. package/lib/analyze/analysis-report.js.map +1 -1
  5. package/lib/analyze/analyze.js +9 -6
  6. package/lib/analyze/analyze.js.map +1 -1
  7. package/lib/analyze/analyze.test.d.ts +2 -0
  8. package/lib/analyze/analyze.test.js +314 -312
  9. package/lib/analyze/analyze.test.js.map +1 -1
  10. package/lib/analyze/data/analyze.js +10 -7
  11. package/lib/analyze/data/analyze.js.map +1 -1
  12. package/lib/analyze/data/data-access.js +24 -20
  13. package/lib/analyze/data/data-access.js.map +1 -1
  14. package/lib/analyze/data/index.js +5 -1
  15. package/lib/analyze/data/index.js.map +1 -1
  16. package/lib/analyze/data/method-calls.js +20 -17
  17. package/lib/analyze/data/method-calls.js.map +1 -1
  18. package/lib/analyze/data/utils.js +29 -22
  19. package/lib/analyze/data/utils.js.map +1 -1
  20. package/lib/analyze/index.js +9 -3
  21. package/lib/analyze/index.js.map +1 -1
  22. package/lib/analyze/jsx/analyze.js +11 -8
  23. package/lib/analyze/jsx/analyze.js.map +1 -1
  24. package/lib/analyze/jsx/element-attributes.js +24 -21
  25. package/lib/analyze/jsx/element-attributes.js.map +1 -1
  26. package/lib/analyze/jsx/element-children.js +23 -20
  27. package/lib/analyze/jsx/element-children.js.map +1 -1
  28. package/lib/analyze/jsx/element-tags.js +15 -12
  29. package/lib/analyze/jsx/element-tags.js.map +1 -1
  30. package/lib/analyze/jsx/index.js +5 -1
  31. package/lib/analyze/jsx/index.js.map +1 -1
  32. package/lib/analyze/security/analyze.js +13 -10
  33. package/lib/analyze/security/analyze.js.map +1 -1
  34. package/lib/analyze/security/call-expressions.js +11 -8
  35. package/lib/analyze/security/call-expressions.js.map +1 -1
  36. package/lib/analyze/security/declarations.js +15 -12
  37. package/lib/analyze/security/declarations.js.map +1 -1
  38. package/lib/analyze/security/expressions.js +17 -14
  39. package/lib/analyze/security/expressions.js.map +1 -1
  40. package/lib/analyze/security/identifiers.js +13 -10
  41. package/lib/analyze/security/identifiers.js.map +1 -1
  42. package/lib/analyze/security/index.js +5 -1
  43. package/lib/analyze/security/index.js.map +1 -1
  44. package/lib/analyze/security/member-access.js +10 -7
  45. package/lib/analyze/security/member-access.js.map +1 -1
  46. package/lib/analyze/utils.d.ts +20 -0
  47. package/lib/analyze/utils.js +10 -4
  48. package/lib/analyze/utils.js.map +1 -1
  49. package/lib/analyze/validation-context.d.ts +13 -0
  50. package/lib/analyze/validation-context.js +5 -1
  51. package/lib/analyze/validation-context.js.map +1 -1
  52. package/lib/builtins.js +20 -9
  53. package/lib/builtins.js.map +1 -1
  54. package/lib/codegen/builtins/builtin-types.js +6 -3
  55. package/lib/codegen/builtins/builtin-types.js.map +1 -1
  56. package/lib/codegen/builtins/index.js +5 -1
  57. package/lib/codegen/builtins/index.js.map +1 -1
  58. package/lib/codegen/generate-typescript-definitions.js +7 -4
  59. package/lib/codegen/generate-typescript-definitions.js.map +1 -1
  60. package/lib/codegen/generate-typescript-definitions.test.js +192 -190
  61. package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
  62. package/lib/codegen/index.js +5 -1
  63. package/lib/codegen/index.js.map +1 -1
  64. package/lib/codegen/schema/component-types.js +6 -3
  65. package/lib/codegen/schema/component-types.js.map +1 -1
  66. package/lib/codegen/schema/data-types.js +6 -3
  67. package/lib/codegen/schema/data-types.js.map +1 -1
  68. package/lib/codegen/schema/index.js +7 -2
  69. package/lib/codegen/schema/index.js.map +1 -1
  70. package/lib/codegen/schema/utils.js +8 -3
  71. package/lib/codegen/schema/utils.js.map +1 -1
  72. package/lib/compile/compilation-error.d.ts +17 -0
  73. package/lib/compile/compilation-error.js +5 -1
  74. package/lib/compile/compilation-error.js.map +1 -1
  75. package/lib/compile/compile.js +21 -18
  76. package/lib/compile/compile.js.map +1 -1
  77. package/lib/compile/compile.test.d.ts +2 -0
  78. package/lib/compile/compile.test.js +112 -110
  79. package/lib/compile/compile.test.js.map +1 -1
  80. package/lib/compile/index.js +7 -2
  81. package/lib/compile/index.js.map +1 -1
  82. package/lib/evaluate/evaluate.js +11 -8
  83. package/lib/evaluate/evaluate.js.map +1 -1
  84. package/lib/evaluate/evaluate.test.d.ts +2 -0
  85. package/lib/evaluate/evaluate.test.js +58 -56
  86. package/lib/evaluate/evaluate.test.js.map +1 -1
  87. package/lib/evaluate/evaluation-error.js +5 -1
  88. package/lib/evaluate/evaluation-error.js.map +1 -1
  89. package/lib/evaluate/index.js +7 -2
  90. package/lib/evaluate/index.js.map +1 -1
  91. package/lib/index.js +15 -6
  92. package/lib/index.js.map +1 -1
  93. package/lib/jsx.js +22 -10
  94. package/lib/jsx.js.map +1 -1
  95. package/lib/parse/index.js +7 -2
  96. package/lib/parse/index.js.map +1 -1
  97. package/lib/parse/parse-error.d.ts +10 -0
  98. package/lib/parse/parse-error.js +5 -1
  99. package/lib/parse/parse-error.js.map +1 -1
  100. package/lib/parse/parse.js +13 -7
  101. package/lib/parse/parse.js.map +1 -1
  102. package/lib/parse/parse.test.d.ts +2 -0
  103. package/lib/parse/parse.test.js +58 -56
  104. package/lib/parse/parse.test.js.map +1 -1
  105. package/lib/render.js +12 -9
  106. package/lib/render.js.map +1 -1
  107. package/lib/render.test.d.ts +2 -0
  108. package/lib/render.test.js +64 -62
  109. package/lib/render.test.js.map +1 -1
  110. package/lib/schema.js +38 -18
  111. package/lib/schema.js.map +1 -1
  112. package/lib/traverse.js +11 -8
  113. package/lib/traverse.js.map +1 -1
  114. package/lib/traverse.test.d.ts +2 -0
  115. package/lib/traverse.test.js +36 -34
  116. package/lib/traverse.test.js.map +1 -1
  117. package/lib/types.d.ts +12 -0
  118. package/lib/types.js +2 -1
  119. package/lib/validate.js +10 -7
  120. package/lib/validate.js.map +1 -1
  121. package/package.json +7 -7
  122. package/lib/codegen/builtin-types.d.ts +0 -11
  123. package/lib/codegen/builtin-types.d.ts.map +0 -1
  124. package/lib/codegen/builtin-types.js +0 -151
  125. package/lib/codegen/builtin-types.js.map +0 -1
  126. package/lib/codegen/declare-types.d.ts +0 -20
  127. package/lib/codegen/declare-types.d.ts.map +0 -1
  128. package/lib/codegen/declare-types.js +0 -299
  129. package/lib/codegen/declare-types.js.map +0 -1
  130. package/lib/codegen/schema-to-types.d.ts +0 -14
  131. package/lib/codegen/schema-to-types.d.ts.map +0 -1
  132. package/lib/codegen/schema-to-types.js +0 -203
  133. package/lib/codegen/schema-to-types.js.map +0 -1
@@ -1,139 +1,141 @@
1
- import { describe, it, expect } from "vitest";
2
- import { compile } from "../compile/index.js";
3
- import { parse } from "../parse/index.js";
4
- describe("compile", () => {
5
- it("should compile ternary expression", () => {
6
- const ast = parse("<div>{props.show ? 'Yes' : 'No'}</div>");
7
- const result = compile(ast);
8
- expect(result).toBe('"use strict";return h("div", null, (props.show?"Yes":"No"));');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const index_js_1 = require("../compile/index.js");
5
+ const index_js_2 = require("../parse/index.js");
6
+ (0, vitest_1.describe)("compile", () => {
7
+ (0, vitest_1.it)("should compile ternary expression", () => {
8
+ const ast = (0, index_js_2.parse)("<div>{props.show ? 'Yes' : 'No'}</div>");
9
+ const result = (0, index_js_1.compile)(ast);
10
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, (props.show?"Yes":"No"));');
9
11
  });
10
- it("should compile logical OR expression", () => {
11
- const ast = parse("<div>{props.value || 'default'}</div>");
12
- const result = compile(ast);
13
- expect(result).toBe('"use strict";return h("div", null, (props.value || "default"));');
12
+ (0, vitest_1.it)("should compile logical OR expression", () => {
13
+ const ast = (0, index_js_2.parse)("<div>{props.value || 'default'}</div>");
14
+ const result = (0, index_js_1.compile)(ast);
15
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, (props.value || "default"));');
14
16
  });
15
- it("should compile array operations", () => {
16
- const ast = parse("<div>{props.items.filter(x => x.length > 2).join(', ')}</div>");
17
- const result = compile(ast);
18
- expect(result).toBe('"use strict";return h("div", null, props.items.filter((x) => (x.length > 2)).join(", "));');
17
+ (0, vitest_1.it)("should compile array operations", () => {
18
+ const ast = (0, index_js_2.parse)("<div>{props.items.filter(x => x.length > 2).join(', ')}</div>");
19
+ const result = (0, index_js_1.compile)(ast);
20
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, props.items.filter((x) => (x.length > 2)).join(", "));');
19
21
  });
20
- it("should compile object literals in props", () => {
21
- const ast = parse("<div style={{ color: 'red' }}>Text</div>");
22
- const result = compile(ast);
23
- expect(result).toBe('"use strict";return h("div", { style: { color: "red" } }, "Text");');
22
+ (0, vitest_1.it)("should compile object literals in props", () => {
23
+ const ast = (0, index_js_2.parse)("<div style={{ color: 'red' }}>Text</div>");
24
+ const result = (0, index_js_1.compile)(ast);
25
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", { style: { color: "red" } }, "Text");');
24
26
  });
25
- it("should compile nested ternary expressions", () => {
26
- const ast = parse("<div>{props.level > 2 ? 'high' : props.level > 1 ? 'medium' : 'low'}</div>");
27
- const result = compile(ast);
28
- expect(result).toBe('"use strict";return h("div", null, ((props.level > 2)?"high":((props.level > 1)?"medium":"low")));');
27
+ (0, vitest_1.it)("should compile nested ternary expressions", () => {
28
+ const ast = (0, index_js_2.parse)("<div>{props.level > 2 ? 'high' : props.level > 1 ? 'medium' : 'low'}</div>");
29
+ const result = (0, index_js_1.compile)(ast);
30
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, ((props.level > 2)?"high":((props.level > 1)?"medium":"low")));');
29
31
  });
30
- it("should compile nested JSX elements", () => {
31
- const ast = parse("<div><span><strong>Nested</strong></span></div>");
32
- const result = compile(ast);
33
- expect(result).toBe('"use strict";return h("div", null, h("span", null, h("strong", null, "Nested")));');
32
+ (0, vitest_1.it)("should compile nested JSX elements", () => {
33
+ const ast = (0, index_js_2.parse)("<div><span><strong>Nested</strong></span></div>");
34
+ const result = (0, index_js_1.compile)(ast);
35
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, h("span", null, h("strong", null, "Nested")));');
34
36
  });
35
- it("should compile nested array operations", () => {
36
- const ast = parse("<div>{props.items.map(x => x.split(',').map(y => y.trim()).join(' ')).join(' | ')}</div>");
37
- const result = compile(ast);
38
- expect(result).toBe('"use strict";return h("div", null, props.items.map((x) => x.split(",").map((y) => y.trim()).join(" ")).join(" | "));');
37
+ (0, vitest_1.it)("should compile nested array operations", () => {
38
+ const ast = (0, index_js_2.parse)("<div>{props.items.map(x => x.split(',').map(y => y.trim()).join(' ')).join(' | ')}</div>");
39
+ const result = (0, index_js_1.compile)(ast);
40
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, props.items.map((x) => x.split(",").map((y) => y.trim()).join(" ")).join(" | "));');
39
41
  });
40
- it("should compile bare expression containers", () => {
41
- const ast = parse("{data.user.name}");
42
- const result = compile(ast);
43
- expect(result).toBe('"use strict";return data.user.name;');
42
+ (0, vitest_1.it)("should compile bare expression containers", () => {
43
+ const ast = (0, index_js_2.parse)("{data.user.name}");
44
+ const result = (0, index_js_1.compile)(ast);
45
+ (0, vitest_1.expect)(result).toBe('"use strict";return data.user.name;');
44
46
  });
45
- it("should compile bare mathematical expressions", () => {
46
- const ast = parse("{data.count * 2}");
47
- const result = compile(ast);
48
- expect(result).toBe('"use strict";return (data.count * 2);');
47
+ (0, vitest_1.it)("should compile bare mathematical expressions", () => {
48
+ const ast = (0, index_js_2.parse)("{data.count * 2}");
49
+ const result = (0, index_js_1.compile)(ast);
50
+ (0, vitest_1.expect)(result).toBe('"use strict";return (data.count * 2);');
49
51
  });
50
- it("should compile bare method calls", () => {
51
- const ast = parse("{data.text.toUpperCase()}");
52
- const result = compile(ast);
53
- expect(result).toBe('"use strict";return data.text.toUpperCase();');
52
+ (0, vitest_1.it)("should compile bare method calls", () => {
53
+ const ast = (0, index_js_2.parse)("{data.text.toUpperCase()}");
54
+ const result = (0, index_js_1.compile)(ast);
55
+ (0, vitest_1.expect)(result).toBe('"use strict";return data.text.toUpperCase();');
54
56
  });
55
- it("should compile bare complex expressions", () => {
56
- const ast = parse("{data.items.filter(x => x.length > 2).length}");
57
- const result = compile(ast);
58
- expect(result).toBe('"use strict";return data.items.filter((x) => (x.length > 2)).length;');
57
+ (0, vitest_1.it)("should compile bare complex expressions", () => {
58
+ const ast = (0, index_js_2.parse)("{data.items.filter(x => x.length > 2).length}");
59
+ const result = (0, index_js_1.compile)(ast);
60
+ (0, vitest_1.expect)(result).toBe('"use strict";return data.items.filter((x) => (x.length > 2)).length;');
59
61
  });
60
- describe("JSX empty expressions", () => {
61
- it("should handle empty expressions in children", () => {
62
- const ast = parse("<Text>{}</Text>");
63
- const compiled = compile(ast);
64
- expect(compiled).toContain("return");
65
- expect(compiled).toContain("Text");
62
+ (0, vitest_1.describe)("JSX empty expressions", () => {
63
+ (0, vitest_1.it)("should handle empty expressions in children", () => {
64
+ const ast = (0, index_js_2.parse)("<Text>{}</Text>");
65
+ const compiled = (0, index_js_1.compile)(ast);
66
+ (0, vitest_1.expect)(compiled).toContain("return");
67
+ (0, vitest_1.expect)(compiled).toContain("Text");
66
68
  // Empty expressions should be skipped, so no children array should be empty or minimal
67
- expect(compiled).toBeDefined();
69
+ (0, vitest_1.expect)(compiled).toBeDefined();
68
70
  });
69
- it("should handle multiple empty expressions", () => {
70
- const ast = parse("<Text>{}{}{}</Text>");
71
- const compiled = compile(ast);
72
- expect(compiled).toContain("return");
73
- expect(compiled).toContain("Text");
74
- expect(compiled).toBeDefined();
71
+ (0, vitest_1.it)("should handle multiple empty expressions", () => {
72
+ const ast = (0, index_js_2.parse)("<Text>{}{}{}</Text>");
73
+ const compiled = (0, index_js_1.compile)(ast);
74
+ (0, vitest_1.expect)(compiled).toContain("return");
75
+ (0, vitest_1.expect)(compiled).toContain("Text");
76
+ (0, vitest_1.expect)(compiled).toBeDefined();
75
77
  });
76
- it("should handle mixed empty and real expressions", () => {
77
- const ast = parse("<Text>Hello {}{data.x}{} World</Text>");
78
- const compiled = compile(ast);
79
- expect(compiled).toContain("return");
80
- expect(compiled).toContain("Text");
81
- expect(compiled).toContain("Hello");
82
- expect(compiled).toContain("World");
83
- expect(compiled).toContain("data.x");
78
+ (0, vitest_1.it)("should handle mixed empty and real expressions", () => {
79
+ const ast = (0, index_js_2.parse)("<Text>Hello {}{data.x}{} World</Text>");
80
+ const compiled = (0, index_js_1.compile)(ast);
81
+ (0, vitest_1.expect)(compiled).toContain("return");
82
+ (0, vitest_1.expect)(compiled).toContain("Text");
83
+ (0, vitest_1.expect)(compiled).toContain("Hello");
84
+ (0, vitest_1.expect)(compiled).toContain("World");
85
+ (0, vitest_1.expect)(compiled).toContain("data.x");
84
86
  });
85
- it("should generate valid JavaScript code structure", () => {
86
- const ast = parse("<Text>{}</Text>");
87
- const compiled = compile(ast);
87
+ (0, vitest_1.it)("should generate valid JavaScript code structure", () => {
88
+ const ast = (0, index_js_2.parse)("<Text>{}</Text>");
89
+ const compiled = (0, index_js_1.compile)(ast);
88
90
  // The compiled code should have expected structure
89
- expect(compiled).toMatch(/^"use strict";return .+;$/);
91
+ (0, vitest_1.expect)(compiled).toMatch(/^"use strict";return .+;$/);
90
92
  });
91
93
  });
92
- describe("spread elements", () => {
93
- it("should compile spread in arrays", () => {
94
- const ast = parse("<div>{[...data.items]}</div>");
95
- const result = compile(ast);
96
- expect(result).toBe('"use strict";return h("div", null, [...data.items]);');
94
+ (0, vitest_1.describe)("spread elements", () => {
95
+ (0, vitest_1.it)("should compile spread in arrays", () => {
96
+ const ast = (0, index_js_2.parse)("<div>{[...data.items]}</div>");
97
+ const result = (0, index_js_1.compile)(ast);
98
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, [...data.items]);');
97
99
  });
98
- it("should compile spread in objects", () => {
99
- const ast = parse("<div style={{ ...data.styles }}>Text</div>");
100
- const result = compile(ast);
101
- expect(result).toBe('"use strict";return h("div", { style: { ...data.styles } }, "Text");');
100
+ (0, vitest_1.it)("should compile spread in objects", () => {
101
+ const ast = (0, index_js_2.parse)("<div style={{ ...data.styles }}>Text</div>");
102
+ const result = (0, index_js_1.compile)(ast);
103
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", { style: { ...data.styles } }, "Text");');
102
104
  });
103
- it("should compile mixed spread and regular elements in arrays", () => {
104
- const ast = parse("<div>{[1, ...data.items, 2]}</div>");
105
- const result = compile(ast);
106
- expect(result).toBe('"use strict";return h("div", null, [1, ...data.items, 2]);');
105
+ (0, vitest_1.it)("should compile mixed spread and regular elements in arrays", () => {
106
+ const ast = (0, index_js_2.parse)("<div>{[1, ...data.items, 2]}</div>");
107
+ const result = (0, index_js_1.compile)(ast);
108
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, [1, ...data.items, 2]);');
107
109
  });
108
- it("should compile mixed spread and regular properties in objects", () => {
109
- const ast = parse("<div style={{ color: 'red', ...data.styles, width: 100 }}>Text</div>");
110
- const result = compile(ast);
111
- expect(result).toBe('"use strict";return h("div", { style: { color: "red", ...data.styles, width: 100 } }, "Text");');
110
+ (0, vitest_1.it)("should compile mixed spread and regular properties in objects", () => {
111
+ const ast = (0, index_js_2.parse)("<div style={{ color: 'red', ...data.styles, width: 100 }}>Text</div>");
112
+ const result = (0, index_js_1.compile)(ast);
113
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", { style: { color: "red", ...data.styles, width: 100 } }, "Text");');
112
114
  });
113
- it("should compile multiple spreads in arrays", () => {
114
- const ast = parse("<div>{[...data.first, ...data.second]}</div>");
115
- const result = compile(ast);
116
- expect(result).toBe('"use strict";return h("div", null, [...data.first, ...data.second]);');
115
+ (0, vitest_1.it)("should compile multiple spreads in arrays", () => {
116
+ const ast = (0, index_js_2.parse)("<div>{[...data.first, ...data.second]}</div>");
117
+ const result = (0, index_js_1.compile)(ast);
118
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, [...data.first, ...data.second]);');
117
119
  });
118
- it("should compile multiple spreads in objects", () => {
119
- const ast = parse("<div style={{ ...data.base, ...data.override }}>Text</div>");
120
- const result = compile(ast);
121
- expect(result).toBe('"use strict";return h("div", { style: { ...data.base, ...data.override } }, "Text");');
120
+ (0, vitest_1.it)("should compile multiple spreads in objects", () => {
121
+ const ast = (0, index_js_2.parse)("<div style={{ ...data.base, ...data.override }}>Text</div>");
122
+ const result = (0, index_js_1.compile)(ast);
123
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", { style: { ...data.base, ...data.override } }, "Text");');
122
124
  });
123
- it("should compile spread in function call arguments", () => {
124
- const ast = parse("<div>{Math.max(...data.numbers)}</div>");
125
- const result = compile(ast);
126
- expect(result).toBe('"use strict";return h("div", null, Math.max(...data.numbers));');
125
+ (0, vitest_1.it)("should compile spread in function call arguments", () => {
126
+ const ast = (0, index_js_2.parse)("<div>{Math.max(...data.numbers)}</div>");
127
+ const result = (0, index_js_1.compile)(ast);
128
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, Math.max(...data.numbers));');
127
129
  });
128
- it("should compile spread with map in function call", () => {
129
- const ast = parse("<div>{Math.min(...data.items.map(x => x.price))}</div>");
130
- const result = compile(ast);
131
- expect(result).toBe('"use strict";return h("div", null, Math.min(...data.items.map((x) => x.price)));');
130
+ (0, vitest_1.it)("should compile spread with map in function call", () => {
131
+ const ast = (0, index_js_2.parse)("<div>{Math.min(...data.items.map(x => x.price))}</div>");
132
+ const result = (0, index_js_1.compile)(ast);
133
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, Math.min(...data.items.map((x) => x.price)));');
132
134
  });
133
- it("should compile mixed spread and regular arguments", () => {
134
- const ast = parse("<div>{Math.max(0, ...data.numbers, 100)}</div>");
135
- const result = compile(ast);
136
- expect(result).toBe('"use strict";return h("div", null, Math.max(0, ...data.numbers, 100));');
135
+ (0, vitest_1.it)("should compile mixed spread and regular arguments", () => {
136
+ const ast = (0, index_js_2.parse)("<div>{Math.max(0, ...data.numbers, 100)}</div>");
137
+ const result = (0, index_js_1.compile)(ast);
138
+ (0, vitest_1.expect)(result).toBe('"use strict";return h("div", null, Math.max(0, ...data.numbers, 100));');
137
139
  });
138
140
  });
139
141
  // TODO: Add ChainExpression support for optional chaining (?.)
@@ -1 +1 @@
1
- {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,kDAA8C;AAC9C,gDAA0C;AAE1C,IAAA,iBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,wCAAwC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,uCAAuC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,+DAA+D,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,0CAA0C,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,4EAA4E,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CACjB,oGAAoG,CACrG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,iDAAiD,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,0FAA0F,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CACjB,sHAAsH,CACvH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,kBAAkB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,kBAAkB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,2BAA2B,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,+CAA+C,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,iBAAiB,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAE9B,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,uFAAuF;YACvF,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,qBAAqB,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAE9B,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,uCAAuC,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAE9B,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,iBAAiB,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAE9B,mDAAmD;YACnD,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,8BAA8B,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,4CAA4C,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,oCAAoC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,sEAAsE,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CACjB,gGAAgG,CACjG,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,8CAA8C,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,4DAA4D,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,wCAAwC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,wDAAwD,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,gDAAgD,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC;YAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,sEAAsE;IACtE,gFAAgF;IAChF,iCAAiC;IACjC,8GAA8G;IAC9G,MAAM;AACR,CAAC,CAAC,CAAC"}
@@ -1,3 +1,8 @@
1
- export { compile } from "./compile.js";
2
- export { CompilationError } from "./compilation-error.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompilationError = exports.compile = void 0;
4
+ var compile_js_1 = require("./compile.js");
5
+ Object.defineProperty(exports, "compile", { enumerable: true, get: function () { return compile_js_1.compile; } });
6
+ var compilation_error_js_1 = require("./compilation-error.js");
7
+ Object.defineProperty(exports, "CompilationError", { enumerable: true, get: function () { return compilation_error_js_1.CompilationError; } });
3
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAChB,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA"}
@@ -1,6 +1,9 @@
1
- import { EvaluationError } from "./evaluation-error.js";
2
- import { isElementAllowed, canHaveChildren } from "../schema.js";
3
- export function evaluate(source, schema, options) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluate = evaluate;
4
+ const evaluation_error_js_1 = require("./evaluation-error.js");
5
+ const schema_js_1 = require("../schema.js");
6
+ function evaluate(source, schema, options) {
4
7
  const { data = {}, components = {}, createElement } = options;
5
8
  const h = createH(components, createElement || defaultCreateElement, schema);
6
9
  try {
@@ -9,22 +12,22 @@ export function evaluate(source, schema, options) {
9
12
  }
10
13
  catch (error) {
11
14
  // We may have thrown an EvaluationError from createH()
12
- if (error instanceof EvaluationError) {
15
+ if (error instanceof evaluation_error_js_1.EvaluationError) {
13
16
  throw error;
14
17
  }
15
- throw new EvaluationError(error instanceof Error ? error.message : "Evaluation failed");
18
+ throw new evaluation_error_js_1.EvaluationError(error instanceof Error ? error.message : "Evaluation failed");
16
19
  }
17
20
  }
18
21
  function createH(components, createElement, schema) {
19
22
  return function h(type, props, ...children) {
20
23
  const Component = components[type];
21
24
  if (!Component) {
22
- if (isElementAllowed(schema, type)) {
23
- const defaultComponent = (props) => (canHaveChildren(schema, type) ? props.children : null);
25
+ if ((0, schema_js_1.isElementAllowed)(schema, type)) {
26
+ const defaultComponent = (props) => ((0, schema_js_1.canHaveChildren)(schema, type) ? props.children : null);
24
27
  return createElement(defaultComponent, props, ...children.flat().filter(Boolean));
25
28
  }
26
29
  // Component not in schema - throw error
27
- throw new EvaluationError(`component "${type}" is not allowed`);
30
+ throw new evaluation_error_js_1.EvaluationError(`component "${type}" is not allowed`);
28
31
  }
29
32
  return createElement(Component, props, ...children.flat().filter(Boolean));
30
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAU,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAkCzE,MAAM,UAAU,QAAQ,CAAU,MAAc,EAAE,MAAc,EAAE,OAA2B;IAC3F,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,2EAA2E;QAC3E,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAM,CAAC;IACvF,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,uDAAuD;QACvD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,UAAyB,EAAE,aAA4B,EAAE,MAAc;IACtF,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAO,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5G,OAAO,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,CAAC;YAED,wCAAwC;YACxC,MAAM,IAAI,eAAe,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAa;IACnC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAoB,EAAE,QAAmB,EAAE,EAAE,GAAG,QAAe;IAC3F,OAAO,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.ts"],"names":[],"mappings":";;AAmCA,4BAgBC;AAnDD,+DAAwD;AACxD,4CAAyE;AAkCzE,SAAgB,QAAQ,CAAU,MAAc,EAAE,MAAc,EAAE,OAA2B;IAC3F,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,2EAA2E;QAC3E,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAM,CAAC;IACvF,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,uDAAuD;QACvD,IAAI,KAAK,YAAY,qCAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,qCAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,UAAyB,EAAE,aAA4B,EAAE,MAAc;IACtF,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,IAAA,4BAAgB,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAO,EAAE,CAAC,CAAC,IAAA,2BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5G,OAAO,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,CAAC;YAED,wCAAwC;YACxC,MAAM,IAAI,qCAAe,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAa;IACnC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAoB,EAAE,QAAmB,EAAE,EAAE,GAAG,QAAe;IAC3F,OAAO,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=evaluate.test.d.ts.map