jsxpression 0.1.5 → 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.
- package/lib/analyze/analysis-error.js +5 -1
- package/lib/analyze/analysis-error.js.map +1 -1
- package/lib/analyze/analysis-report.js +5 -1
- package/lib/analyze/analysis-report.js.map +1 -1
- package/lib/analyze/analyze.js +9 -6
- package/lib/analyze/analyze.js.map +1 -1
- package/lib/analyze/analyze.test.d.ts +2 -0
- package/lib/analyze/analyze.test.js +314 -312
- package/lib/analyze/analyze.test.js.map +1 -1
- package/lib/analyze/data/analyze.js +10 -7
- package/lib/analyze/data/analyze.js.map +1 -1
- package/lib/analyze/data/data-access.js +24 -20
- package/lib/analyze/data/data-access.js.map +1 -1
- package/lib/analyze/data/index.js +5 -1
- package/lib/analyze/data/index.js.map +1 -1
- package/lib/analyze/data/method-calls.js +20 -17
- package/lib/analyze/data/method-calls.js.map +1 -1
- package/lib/analyze/data/utils.js +29 -22
- package/lib/analyze/data/utils.js.map +1 -1
- package/lib/analyze/index.js +9 -3
- package/lib/analyze/index.js.map +1 -1
- package/lib/analyze/jsx/analyze.js +11 -8
- package/lib/analyze/jsx/analyze.js.map +1 -1
- package/lib/analyze/jsx/element-attributes.js +24 -21
- package/lib/analyze/jsx/element-attributes.js.map +1 -1
- package/lib/analyze/jsx/element-children.js +23 -20
- package/lib/analyze/jsx/element-children.js.map +1 -1
- package/lib/analyze/jsx/element-tags.js +15 -12
- package/lib/analyze/jsx/element-tags.js.map +1 -1
- package/lib/analyze/jsx/index.js +5 -1
- package/lib/analyze/jsx/index.js.map +1 -1
- package/lib/analyze/security/analyze.js +13 -10
- package/lib/analyze/security/analyze.js.map +1 -1
- package/lib/analyze/security/call-expressions.js +11 -8
- package/lib/analyze/security/call-expressions.js.map +1 -1
- package/lib/analyze/security/declarations.js +15 -12
- package/lib/analyze/security/declarations.js.map +1 -1
- package/lib/analyze/security/expressions.js +17 -14
- package/lib/analyze/security/expressions.js.map +1 -1
- package/lib/analyze/security/identifiers.js +13 -10
- package/lib/analyze/security/identifiers.js.map +1 -1
- package/lib/analyze/security/index.js +5 -1
- package/lib/analyze/security/index.js.map +1 -1
- package/lib/analyze/security/member-access.js +10 -7
- package/lib/analyze/security/member-access.js.map +1 -1
- package/lib/analyze/utils.d.ts +20 -0
- package/lib/analyze/utils.js +10 -4
- package/lib/analyze/utils.js.map +1 -1
- package/lib/analyze/validation-context.d.ts +13 -0
- package/lib/analyze/validation-context.js +5 -1
- package/lib/analyze/validation-context.js.map +1 -1
- package/lib/builtins.js +20 -9
- package/lib/builtins.js.map +1 -1
- package/lib/codegen/builtins/builtin-types.js +6 -3
- package/lib/codegen/builtins/builtin-types.js.map +1 -1
- package/lib/codegen/builtins/index.js +5 -1
- package/lib/codegen/builtins/index.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.js +7 -4
- package/lib/codegen/generate-typescript-definitions.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.test.js +192 -190
- package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
- package/lib/codegen/index.js +5 -1
- package/lib/codegen/index.js.map +1 -1
- package/lib/codegen/schema/component-types.js +6 -3
- package/lib/codegen/schema/component-types.js.map +1 -1
- package/lib/codegen/schema/data-types.js +6 -3
- package/lib/codegen/schema/data-types.js.map +1 -1
- package/lib/codegen/schema/index.js +7 -2
- package/lib/codegen/schema/index.js.map +1 -1
- package/lib/codegen/schema/utils.js +8 -3
- package/lib/codegen/schema/utils.js.map +1 -1
- package/lib/compile/compilation-error.d.ts +17 -0
- package/lib/compile/compilation-error.js +5 -1
- package/lib/compile/compilation-error.js.map +1 -1
- package/lib/compile/compile.js +21 -18
- package/lib/compile/compile.js.map +1 -1
- package/lib/compile/compile.test.d.ts +2 -0
- package/lib/compile/compile.test.js +112 -110
- package/lib/compile/compile.test.js.map +1 -1
- package/lib/compile/index.js +7 -2
- package/lib/compile/index.js.map +1 -1
- package/lib/evaluate/evaluate.d.ts +2 -1
- package/lib/evaluate/evaluate.d.ts.map +1 -1
- package/lib/evaluate/evaluate.js +17 -12
- package/lib/evaluate/evaluate.js.map +1 -1
- package/lib/evaluate/evaluate.test.d.ts +2 -0
- package/lib/evaluate/evaluate.test.js +86 -74
- package/lib/evaluate/evaluate.test.js.map +1 -1
- package/lib/evaluate/evaluation-error.js +5 -1
- package/lib/evaluate/evaluation-error.js.map +1 -1
- package/lib/evaluate/index.js +7 -2
- package/lib/evaluate/index.js.map +1 -1
- package/lib/index.js +15 -6
- package/lib/index.js.map +1 -1
- package/lib/jsx.js +22 -10
- package/lib/jsx.js.map +1 -1
- package/lib/parse/index.js +7 -2
- package/lib/parse/index.js.map +1 -1
- package/lib/parse/parse-error.d.ts +10 -0
- package/lib/parse/parse-error.js +5 -1
- package/lib/parse/parse-error.js.map +1 -1
- package/lib/parse/parse.js +13 -7
- package/lib/parse/parse.js.map +1 -1
- package/lib/parse/parse.test.d.ts +2 -0
- package/lib/parse/parse.test.js +58 -56
- package/lib/parse/parse.test.js.map +1 -1
- package/lib/render.js +12 -9
- package/lib/render.js.map +1 -1
- package/lib/render.test.d.ts +2 -0
- package/lib/render.test.js +64 -62
- package/lib/render.test.js.map +1 -1
- package/lib/schema.js +38 -18
- package/lib/schema.js.map +1 -1
- package/lib/traverse.js +11 -8
- package/lib/traverse.js.map +1 -1
- package/lib/traverse.test.d.ts +2 -0
- package/lib/traverse.test.js +36 -34
- package/lib/traverse.test.js.map +1 -1
- package/lib/types.d.ts +12 -0
- package/lib/types.js +2 -1
- package/lib/validate.js +10 -7
- package/lib/validate.js.map +1 -1
- package/package.json +7 -7
- package/src/evaluate/evaluate.test.ts +39 -25
- package/src/evaluate/evaluate.ts +11 -8
- package/src/render.ts +1 -1
- package/lib/codegen/builtin-types.d.ts +0 -11
- package/lib/codegen/builtin-types.d.ts.map +0 -1
- package/lib/codegen/builtin-types.js +0 -151
- package/lib/codegen/builtin-types.js.map +0 -1
- package/lib/codegen/declare-types.d.ts +0 -20
- package/lib/codegen/declare-types.d.ts.map +0 -1
- package/lib/codegen/declare-types.js +0 -299
- package/lib/codegen/declare-types.js.map +0 -1
- package/lib/codegen/schema-to-types.d.ts +0 -14
- package/lib/codegen/schema-to-types.d.ts.map +0 -1
- package/lib/codegen/schema-to-types.js +0 -203
- package/lib/codegen/schema-to-types.js.map +0 -1
|
@@ -1,17 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const evaluate_js_1 = require("./evaluate.js");
|
|
5
|
+
const index_js_1 = require("../compile/index.js");
|
|
6
|
+
const index_js_2 = require("../parse/index.js");
|
|
7
|
+
const evaluation_error_js_1 = require("./evaluation-error.js");
|
|
8
|
+
function createPermissiveSchema(componentNames) {
|
|
9
|
+
return {
|
|
10
|
+
elements: Object.fromEntries(componentNames.map((name) => [name, {}])),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
(0, vitest_1.describe)("evaluate", () => {
|
|
7
14
|
const compileAndEvaluate = (source, options = {}) => {
|
|
8
|
-
|
|
15
|
+
const componentNames = Object.keys(options.components || {});
|
|
16
|
+
const schema = createPermissiveSchema(componentNames);
|
|
17
|
+
return (0, evaluate_js_1.evaluate)((0, index_js_1.compile)((0, index_js_2.parse)(source)), schema, options);
|
|
9
18
|
};
|
|
10
|
-
it("should evaluate JSX with props", () => {
|
|
11
|
-
const TestComponent = (props
|
|
19
|
+
(0, vitest_1.it)("should evaluate JSX with props", () => {
|
|
20
|
+
const TestComponent = (props) => ({
|
|
12
21
|
type: "TestComponent",
|
|
13
|
-
props,
|
|
14
|
-
children,
|
|
22
|
+
props: { x: props.x, y: props.y },
|
|
23
|
+
children: props.children,
|
|
15
24
|
});
|
|
16
25
|
const result = compileAndEvaluate("<Test x={data.x} y={data.y}>Hello</Test>", {
|
|
17
26
|
data: { x: 10, y: 20 },
|
|
@@ -19,13 +28,13 @@ describe("evaluate", () => {
|
|
|
19
28
|
Test: TestComponent,
|
|
20
29
|
},
|
|
21
30
|
});
|
|
22
|
-
expect(result).toEqual({
|
|
31
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
23
32
|
type: "TestComponent",
|
|
24
33
|
props: { x: 10, y: 20 },
|
|
25
34
|
children: ["Hello"],
|
|
26
35
|
});
|
|
27
36
|
});
|
|
28
|
-
it("should evaluate JSX with Math operations", () => {
|
|
37
|
+
(0, vitest_1.it)("should evaluate JSX with Math operations", () => {
|
|
29
38
|
const TestComponent = (props) => ({
|
|
30
39
|
type: "TestComponent",
|
|
31
40
|
props,
|
|
@@ -37,38 +46,40 @@ describe("evaluate", () => {
|
|
|
37
46
|
Test: TestComponent,
|
|
38
47
|
},
|
|
39
48
|
});
|
|
40
|
-
expect(result.props.value).toBe(15); // floor(5 * 3.14159...) = 15
|
|
49
|
+
(0, vitest_1.expect)(result.props.value).toBe(15); // floor(5 * 3.14159...) = 15
|
|
41
50
|
});
|
|
42
|
-
it("should throw EvaluationError for unknown component", () => {
|
|
43
|
-
const compiled = compile(parse("<UnknownComponent>Hello</UnknownComponent>"));
|
|
44
|
-
|
|
45
|
-
expect(() => evaluate(compiled, { components: {} })).toThrow(
|
|
51
|
+
(0, vitest_1.it)("should throw EvaluationError for unknown component", () => {
|
|
52
|
+
const compiled = (0, index_js_1.compile)((0, index_js_2.parse)("<UnknownComponent>Hello</UnknownComponent>"));
|
|
53
|
+
const emptySchema = createPermissiveSchema([]);
|
|
54
|
+
(0, vitest_1.expect)(() => (0, evaluate_js_1.evaluate)(compiled, emptySchema, { components: {} })).toThrow(evaluation_error_js_1.EvaluationError);
|
|
55
|
+
(0, vitest_1.expect)(() => (0, evaluate_js_1.evaluate)(compiled, emptySchema, { components: {} })).toThrow('component "UnknownComponent" is not allowed');
|
|
46
56
|
});
|
|
47
|
-
it("should deep-freeze props to prevent mutations", () => {
|
|
57
|
+
(0, vitest_1.it)("should deep-freeze props to prevent mutations", () => {
|
|
48
58
|
const TestComponent = (props) => {
|
|
49
|
-
expect(() => {
|
|
59
|
+
(0, vitest_1.expect)(() => {
|
|
50
60
|
props.nested.value = 999;
|
|
51
61
|
}).toThrow();
|
|
52
62
|
return { type: "Test", props, children: [] };
|
|
53
63
|
};
|
|
54
|
-
const compiled = compile(parse("<Test>Hello</Test>"));
|
|
55
|
-
|
|
64
|
+
const compiled = (0, index_js_1.compile)((0, index_js_2.parse)("<Test>Hello</Test>"));
|
|
65
|
+
const schema = createPermissiveSchema(["Test"]);
|
|
66
|
+
(0, evaluate_js_1.evaluate)(compiled, schema, {
|
|
56
67
|
data: { nested: { value: 42 } },
|
|
57
68
|
components: {
|
|
58
69
|
Test: TestComponent,
|
|
59
70
|
},
|
|
60
71
|
});
|
|
61
72
|
});
|
|
62
|
-
it("should evaluate nested elements", () => {
|
|
63
|
-
const OuterComponent = (props
|
|
73
|
+
(0, vitest_1.it)("should evaluate nested elements", () => {
|
|
74
|
+
const OuterComponent = (props) => ({
|
|
64
75
|
type: "Outer",
|
|
65
|
-
props,
|
|
66
|
-
children,
|
|
76
|
+
props: { x: props.x },
|
|
77
|
+
children: props.children,
|
|
67
78
|
});
|
|
68
|
-
const InnerComponent = (props
|
|
79
|
+
const InnerComponent = (props) => ({
|
|
69
80
|
type: "Inner",
|
|
70
|
-
props,
|
|
71
|
-
children,
|
|
81
|
+
props: { y: props.y },
|
|
82
|
+
children: props.children,
|
|
72
83
|
});
|
|
73
84
|
const result = compileAndEvaluate("<Outer x={data.x}><Inner y={data.y}>Text</Inner></Outer>", {
|
|
74
85
|
data: { x: 10, y: 20 },
|
|
@@ -77,15 +88,15 @@ describe("evaluate", () => {
|
|
|
77
88
|
Inner: InnerComponent,
|
|
78
89
|
},
|
|
79
90
|
});
|
|
80
|
-
expect(result.type).toBe("
|
|
81
|
-
expect(result.props).toEqual({ x: 10 });
|
|
82
|
-
expect(result.children).toHaveLength(1);
|
|
91
|
+
(0, vitest_1.expect)(result.type).toBe("Outer");
|
|
92
|
+
(0, vitest_1.expect)(result.props).toEqual({ x: 10 });
|
|
93
|
+
(0, vitest_1.expect)(result.children).toHaveLength(1);
|
|
83
94
|
const innerNode = result.children[0];
|
|
84
|
-
expect(innerNode.type).toBe("
|
|
85
|
-
expect(innerNode.props).toEqual({ y: 20 });
|
|
86
|
-
expect(innerNode.children).toEqual(["Text"]);
|
|
95
|
+
(0, vitest_1.expect)(innerNode.type).toBe("Inner");
|
|
96
|
+
(0, vitest_1.expect)(innerNode.props).toEqual({ y: 20 });
|
|
97
|
+
(0, vitest_1.expect)(innerNode.children).toEqual(["Text"]);
|
|
87
98
|
});
|
|
88
|
-
it("should use custom createElement when provided", () => {
|
|
99
|
+
(0, vitest_1.it)("should use custom createElement when provided", () => {
|
|
89
100
|
const customCreateElement = (type, props, ...children) => ({
|
|
90
101
|
type: type.name || "Unknown",
|
|
91
102
|
props: { ...props, custom: true },
|
|
@@ -98,13 +109,13 @@ describe("evaluate", () => {
|
|
|
98
109
|
},
|
|
99
110
|
createElement: customCreateElement,
|
|
100
111
|
});
|
|
101
|
-
expect(result).toEqual({
|
|
112
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
102
113
|
type: "TestComponent",
|
|
103
114
|
props: { x: 10, custom: true },
|
|
104
115
|
children: ["Hello"],
|
|
105
116
|
});
|
|
106
117
|
});
|
|
107
|
-
it("should evaluate conditional expressions with props", () => {
|
|
118
|
+
(0, vitest_1.it)("should evaluate conditional expressions with props", () => {
|
|
108
119
|
const TestComponent = (props) => ({
|
|
109
120
|
type: "TestComponent",
|
|
110
121
|
props,
|
|
@@ -116,9 +127,9 @@ describe("evaluate", () => {
|
|
|
116
127
|
Test: TestComponent,
|
|
117
128
|
},
|
|
118
129
|
});
|
|
119
|
-
expect(result.props.msg).toBe("visible");
|
|
130
|
+
(0, vitest_1.expect)(result.props.msg).toBe("visible");
|
|
120
131
|
});
|
|
121
|
-
it("should evaluate array methods on props", () => {
|
|
132
|
+
(0, vitest_1.it)("should evaluate array methods on props", () => {
|
|
122
133
|
const TestComponent = (props) => ({
|
|
123
134
|
type: "TestComponent",
|
|
124
135
|
props,
|
|
@@ -130,19 +141,20 @@ describe("evaluate", () => {
|
|
|
130
141
|
Test: TestComponent,
|
|
131
142
|
},
|
|
132
143
|
});
|
|
133
|
-
expect(result.props.values).toEqual([6, 8, 10]);
|
|
144
|
+
(0, vitest_1.expect)(result.props.values).toEqual([6, 8, 10]);
|
|
134
145
|
});
|
|
135
|
-
it("should handle runtime errors gracefully", () => {
|
|
136
|
-
const compiled = compile(parse("<Test value={data.missing.nested}>Text</Test>"));
|
|
146
|
+
(0, vitest_1.it)("should handle runtime errors gracefully", () => {
|
|
147
|
+
const compiled = (0, index_js_1.compile)((0, index_js_2.parse)("<Test value={data.missing.nested}>Text</Test>"));
|
|
137
148
|
const TestComponent = () => ({ type: "Test", props: {}, children: [] });
|
|
138
|
-
|
|
149
|
+
const schema = createPermissiveSchema(["Test"]);
|
|
150
|
+
(0, vitest_1.expect)(() => (0, evaluate_js_1.evaluate)(compiled, schema, {
|
|
139
151
|
data: {},
|
|
140
152
|
components: {
|
|
141
153
|
Test: TestComponent,
|
|
142
154
|
},
|
|
143
|
-
})).toThrow(EvaluationError);
|
|
155
|
+
})).toThrow(evaluation_error_js_1.EvaluationError);
|
|
144
156
|
});
|
|
145
|
-
it("should evaluate logical operators with props", () => {
|
|
157
|
+
(0, vitest_1.it)("should evaluate logical operators with props", () => {
|
|
146
158
|
const TestComponent = (props) => ({
|
|
147
159
|
type: "TestComponent",
|
|
148
160
|
props,
|
|
@@ -154,13 +166,13 @@ describe("evaluate", () => {
|
|
|
154
166
|
Test: TestComponent,
|
|
155
167
|
},
|
|
156
168
|
});
|
|
157
|
-
expect(result.props.msg).toBe("Anonymous");
|
|
169
|
+
(0, vitest_1.expect)(result.props.msg).toBe("Anonymous");
|
|
158
170
|
});
|
|
159
|
-
it("should flatten and filter children correctly", () => {
|
|
160
|
-
const TestComponent = (props
|
|
171
|
+
(0, vitest_1.it)("should flatten and filter children correctly", () => {
|
|
172
|
+
const TestComponent = (props) => ({
|
|
161
173
|
type: "Test",
|
|
162
|
-
props,
|
|
163
|
-
children,
|
|
174
|
+
props: {},
|
|
175
|
+
children: props.children,
|
|
164
176
|
});
|
|
165
177
|
const result = compileAndEvaluate("<Test>{data.show && 'Visible'}{false}{'Always'}</Test>", {
|
|
166
178
|
data: { show: true },
|
|
@@ -168,29 +180,29 @@ describe("evaluate", () => {
|
|
|
168
180
|
Test: TestComponent,
|
|
169
181
|
},
|
|
170
182
|
});
|
|
171
|
-
expect(result.children).toEqual(["Visible", "Always"]);
|
|
183
|
+
(0, vitest_1.expect)(result.children).toEqual(["Visible", "Always"]);
|
|
172
184
|
});
|
|
173
|
-
it("should handle JSX fragments", () => {
|
|
185
|
+
(0, vitest_1.it)("should handle JSX fragments", () => {
|
|
174
186
|
const TestComponent = () => ({ type: "Test", props: {}, children: [] });
|
|
175
187
|
const result = compileAndEvaluate("<><Test /><Test /></>", {
|
|
176
188
|
components: { Test: TestComponent },
|
|
177
189
|
});
|
|
178
|
-
expect(Array.isArray(result)).toBe(true);
|
|
179
|
-
expect(result).toHaveLength(2);
|
|
190
|
+
(0, vitest_1.expect)(Array.isArray(result)).toBe(true);
|
|
191
|
+
(0, vitest_1.expect)(result).toHaveLength(2);
|
|
180
192
|
});
|
|
181
|
-
it("should handle empty JSX expressions", () => {
|
|
182
|
-
const TestComponent = (props
|
|
193
|
+
(0, vitest_1.it)("should handle empty JSX expressions", () => {
|
|
194
|
+
const TestComponent = (props) => ({
|
|
183
195
|
type: "Test",
|
|
184
|
-
props,
|
|
185
|
-
children,
|
|
196
|
+
props: {},
|
|
197
|
+
children: props.children,
|
|
186
198
|
});
|
|
187
199
|
const result = compileAndEvaluate("<Test>{}{data.value}{}</Test>", {
|
|
188
200
|
data: { value: "hello" },
|
|
189
201
|
components: { Test: TestComponent },
|
|
190
202
|
});
|
|
191
|
-
expect(result.children).toEqual(["hello"]);
|
|
203
|
+
(0, vitest_1.expect)(result.children).toEqual(["hello"]);
|
|
192
204
|
});
|
|
193
|
-
it("should evaluate complex nested expressions", () => {
|
|
205
|
+
(0, vitest_1.it)("should evaluate complex nested expressions", () => {
|
|
194
206
|
const TestComponent = (props) => ({
|
|
195
207
|
type: "Test",
|
|
196
208
|
props,
|
|
@@ -200,17 +212,17 @@ describe("evaluate", () => {
|
|
|
200
212
|
data: { items: [1, 2, 3, 4, 5] },
|
|
201
213
|
components: { Test: TestComponent },
|
|
202
214
|
});
|
|
203
|
-
expect(result.props.values).toBe("6, 8, 10");
|
|
215
|
+
(0, vitest_1.expect)(result.props.values).toBe("6, 8, 10");
|
|
204
216
|
});
|
|
205
|
-
it("should pass correct parameters to custom createElement", () => {
|
|
206
|
-
const mockCreateElement = vi.fn();
|
|
217
|
+
(0, vitest_1.it)("should pass correct parameters to custom createElement", () => {
|
|
218
|
+
const mockCreateElement = vitest_1.vi.fn();
|
|
207
219
|
compileAndEvaluate("<Test x={10}>Hello</Test>", {
|
|
208
220
|
components: { Test: () => ({ type: "Test", props: {}, children: [] }) },
|
|
209
221
|
createElement: mockCreateElement,
|
|
210
222
|
});
|
|
211
|
-
expect(mockCreateElement).toHaveBeenCalledWith(expect.any(Function), { x: 10 }, "Hello");
|
|
223
|
+
(0, vitest_1.expect)(mockCreateElement).toHaveBeenCalledWith(vitest_1.expect.any(Function), { x: 10 }, "Hello");
|
|
212
224
|
});
|
|
213
|
-
it("should handle string literals in expressions", () => {
|
|
225
|
+
(0, vitest_1.it)("should handle string literals in expressions", () => {
|
|
214
226
|
const TestComponent = (props) => ({
|
|
215
227
|
type: "Test",
|
|
216
228
|
props,
|
|
@@ -220,9 +232,9 @@ describe("evaluate", () => {
|
|
|
220
232
|
data: { name: "World" },
|
|
221
233
|
components: { Test: TestComponent },
|
|
222
234
|
});
|
|
223
|
-
expect(result.props.msg).toBe("Hello World");
|
|
235
|
+
(0, vitest_1.expect)(result.props.msg).toBe("Hello World");
|
|
224
236
|
});
|
|
225
|
-
it("should handle numeric operations", () => {
|
|
237
|
+
(0, vitest_1.it)("should handle numeric operations", () => {
|
|
226
238
|
const TestComponent = (props) => ({
|
|
227
239
|
type: "Test",
|
|
228
240
|
props,
|
|
@@ -232,19 +244,19 @@ describe("evaluate", () => {
|
|
|
232
244
|
data: { x: 5, y: 3 },
|
|
233
245
|
components: { Test: TestComponent },
|
|
234
246
|
});
|
|
235
|
-
expect(result.props.value).toBe(11); // 5 + (3 * 2)
|
|
247
|
+
(0, vitest_1.expect)(result.props.value).toBe(11); // 5 + (3 * 2)
|
|
236
248
|
});
|
|
237
|
-
it("should handle data access in children", () => {
|
|
238
|
-
const TestComponent = (props
|
|
249
|
+
(0, vitest_1.it)("should handle data access in children", () => {
|
|
250
|
+
const TestComponent = (props) => ({
|
|
239
251
|
type: "Test",
|
|
240
|
-
props,
|
|
241
|
-
children,
|
|
252
|
+
props: {},
|
|
253
|
+
children: props.children,
|
|
242
254
|
});
|
|
243
255
|
const result = compileAndEvaluate("<Test>Hello {data.name}!</Test>", {
|
|
244
256
|
data: { name: "World" },
|
|
245
257
|
components: { Test: TestComponent },
|
|
246
258
|
});
|
|
247
|
-
expect(result.children).toEqual(["Hello", "World", "!"]);
|
|
259
|
+
(0, vitest_1.expect)(result.children).toEqual(["Hello", "World", "!"]);
|
|
248
260
|
});
|
|
249
261
|
});
|
|
250
262
|
//# sourceMappingURL=evaluate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.test.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"evaluate.test.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaluationError = void 0;
|
|
4
|
+
class EvaluationError extends Error {
|
|
2
5
|
constructor(message) {
|
|
3
6
|
super(message);
|
|
4
7
|
this.name = "EvaluationError";
|
|
5
8
|
}
|
|
6
9
|
}
|
|
10
|
+
exports.EvaluationError = EvaluationError;
|
|
7
11
|
//# sourceMappingURL=evaluation-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-error.js","sourceRoot":"","sources":["../../src/evaluate/evaluation-error.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"evaluation-error.js","sourceRoot":"","sources":["../../src/evaluate/evaluation-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC"}
|
package/lib/evaluate/index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaluationError = exports.evaluate = void 0;
|
|
4
|
+
var evaluate_js_1 = require("./evaluate.js");
|
|
5
|
+
Object.defineProperty(exports, "evaluate", { enumerable: true, get: function () { return evaluate_js_1.evaluate; } });
|
|
6
|
+
var evaluation_error_js_1 = require("./evaluation-error.js");
|
|
7
|
+
Object.defineProperty(exports, "EvaluationError", { enumerable: true, get: function () { return evaluation_error_js_1.EvaluationError; } });
|
|
3
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evaluate/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evaluate/index.ts"],"names":[],"mappings":";;;AAAA,6CAA+D;AAAtD,uGAAA,QAAQ,OAAA;AACjB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateTypeScriptDefinitions = exports.validate = exports.render = exports.AnalysisError = exports.CompilationError = exports.ParseError = void 0;
|
|
4
|
+
var index_js_1 = require("./parse/index.js");
|
|
5
|
+
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return index_js_1.ParseError; } });
|
|
6
|
+
var index_js_2 = require("./compile/index.js");
|
|
7
|
+
Object.defineProperty(exports, "CompilationError", { enumerable: true, get: function () { return index_js_2.CompilationError; } });
|
|
8
|
+
var index_js_3 = require("./analyze/index.js");
|
|
9
|
+
Object.defineProperty(exports, "AnalysisError", { enumerable: true, get: function () { return index_js_3.AnalysisError; } });
|
|
10
|
+
var render_js_1 = require("./render.js");
|
|
11
|
+
Object.defineProperty(exports, "render", { enumerable: true, get: function () { return render_js_1.render; } });
|
|
12
|
+
var validate_js_1 = require("./validate.js");
|
|
13
|
+
Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_js_1.validate; } });
|
|
14
|
+
var index_js_4 = require("./codegen/index.js");
|
|
15
|
+
Object.defineProperty(exports, "generateTypeScriptDefinitions", { enumerable: true, get: function () { return index_js_4.generateTypeScriptDefinitions; } });
|
|
7
16
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,6CAA8C;AAArC,sGAAA,UAAU,OAAA;AACnB,+CAAsD;AAA7C,4GAAA,gBAAgB,OAAA;AACzB,+CAAmD;AAA1C,yGAAA,aAAa,OAAA;AAEtB,yCAAyD;AAAhD,mGAAA,MAAM,OAAA;AACf,6CAAoF;AAA3E,uGAAA,QAAQ,OAAA;AAEjB,+CAAmE;AAA1D,yHAAA,6BAA6B,OAAA"}
|
package/lib/jsx.js
CHANGED
|
@@ -1,31 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isJsxElement = isJsxElement;
|
|
4
|
+
exports.isJsxFragment = isJsxFragment;
|
|
5
|
+
exports.isJsxRoot = isJsxRoot;
|
|
6
|
+
exports.isJsxAttribute = isJsxAttribute;
|
|
7
|
+
exports.isJsxLiteral = isJsxLiteral;
|
|
8
|
+
exports.isJsxExpressionContainer = isJsxExpressionContainer;
|
|
9
|
+
exports.isJsxEmptyExpression = isJsxEmptyExpression;
|
|
10
|
+
exports.isJsxText = isJsxText;
|
|
11
|
+
exports.isJsxNodeWithChildren = isJsxNodeWithChildren;
|
|
12
|
+
exports.isJsxLeafNode = isJsxLeafNode;
|
|
13
|
+
function isJsxElement(value) {
|
|
2
14
|
return value?.type === "JSXElement";
|
|
3
15
|
}
|
|
4
|
-
|
|
16
|
+
function isJsxFragment(value) {
|
|
5
17
|
return value?.type === "JSXFragment";
|
|
6
18
|
}
|
|
7
|
-
|
|
19
|
+
function isJsxRoot(value) {
|
|
8
20
|
return isJsxElement(value) || isJsxFragment(value) || isJsxExpressionContainer(value);
|
|
9
21
|
}
|
|
10
|
-
|
|
22
|
+
function isJsxAttribute(value) {
|
|
11
23
|
return value?.type === "JSXAttribute";
|
|
12
24
|
}
|
|
13
|
-
|
|
25
|
+
function isJsxLiteral(value) {
|
|
14
26
|
return value?.type === "Literal";
|
|
15
27
|
}
|
|
16
|
-
|
|
28
|
+
function isJsxExpressionContainer(value) {
|
|
17
29
|
return value?.type === "JSXExpressionContainer";
|
|
18
30
|
}
|
|
19
|
-
|
|
31
|
+
function isJsxEmptyExpression(value) {
|
|
20
32
|
return value?.type === "JSXEmptyExpression";
|
|
21
33
|
}
|
|
22
|
-
|
|
34
|
+
function isJsxText(value) {
|
|
23
35
|
return value?.type === "JSXText";
|
|
24
36
|
}
|
|
25
|
-
|
|
37
|
+
function isJsxNodeWithChildren(value) {
|
|
26
38
|
return isJsxElement(value) || isJsxFragment(value);
|
|
27
39
|
}
|
|
28
|
-
|
|
40
|
+
function isJsxLeafNode(value) {
|
|
29
41
|
return value?.type === "JSXText" || isJsxEmptyExpression(value);
|
|
30
42
|
}
|
|
31
43
|
//# sourceMappingURL=jsx.js.map
|
package/lib/jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AA0HA,
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":";;AA0HA,oCAEC;AAED,sCAEC;AAED,8BAEC;AAED,wCAEC;AAED,oCAEC;AAED,4DAEC;AAED,oDAEC;AAED,8BAEC;AAED,sDAEC;AAED,sCAEC;AAtCD,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAQ,KAAoB,EAAE,IAAI,KAAK,YAAY,CAAC;AACtD,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAQ,KAAqB,EAAE,IAAI,KAAK,aAAa,CAAC;AACxD,CAAC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC3C,OAAQ,KAAsB,EAAE,IAAI,KAAK,cAAc,CAAC;AAC1D,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAQ,KAAoB,EAAE,IAAI,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAc;IACrD,OAAQ,KAAgC,EAAE,IAAI,KAAK,wBAAwB,CAAC;AAC9E,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAQ,KAA4B,EAAE,IAAI,KAAK,oBAAoB,CAAC;AACtE,CAAC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAQ,KAAiB,EAAE,IAAI,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAc;IAClD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAQ,KAAiB,EAAE,IAAI,KAAK,SAAS,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC"}
|
package/lib/parse/index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParseError = exports.parse = void 0;
|
|
4
|
+
var parse_js_1 = require("./parse.js");
|
|
5
|
+
Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_js_1.parse; } });
|
|
6
|
+
var parse_error_js_1 = require("./parse-error.js");
|
|
7
|
+
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return parse_error_js_1.ParseError; } });
|
|
3
8
|
//# sourceMappingURL=index.js.map
|
package/lib/parse/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
|
package/lib/parse/parse-error.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParseError = void 0;
|
|
4
|
+
class ParseError extends Error {
|
|
2
5
|
loc;
|
|
3
6
|
constructor(message, loc) {
|
|
4
7
|
super(message);
|
|
@@ -6,4 +9,5 @@ export class ParseError extends Error {
|
|
|
6
9
|
this.loc = loc;
|
|
7
10
|
}
|
|
8
11
|
}
|
|
12
|
+
exports.ParseError = ParseError;
|
|
9
13
|
//# sourceMappingURL=parse-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-error.js","sourceRoot":"","sources":["../../src/parse/parse-error.ts"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"parse-error.js","sourceRoot":"","sources":["../../src/parse/parse-error.ts"],"names":[],"mappings":";;;AAKA,MAAa,UAAW,SAAQ,KAAK;IAC1B,GAAG,CAAO;IAEnB,YAAY,OAAe,EAAE,GAAS;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AARD,gCAQC"}
|
package/lib/parse/parse.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parse = parse;
|
|
7
|
+
const acorn_1 = require("acorn");
|
|
8
|
+
const acorn_jsx_1 = __importDefault(require("acorn-jsx"));
|
|
9
|
+
const parse_error_js_1 = require("./parse-error.js");
|
|
10
|
+
const JSXParser = acorn_1.Parser.extend((0, acorn_jsx_1.default)());
|
|
11
|
+
function parse(source) {
|
|
6
12
|
try {
|
|
7
13
|
return JSXParser.parse(source, {
|
|
8
14
|
ecmaVersion: "latest",
|
|
@@ -17,9 +23,9 @@ export function parse(source) {
|
|
|
17
23
|
if (isAcornError(error)) {
|
|
18
24
|
// Remove location (the line:column part) from message if present
|
|
19
25
|
const message = error.message.replace(ACORN_LOCATION_SUFFIX_RX, "");
|
|
20
|
-
throw new ParseError(message, error.loc);
|
|
26
|
+
throw new parse_error_js_1.ParseError(message, error.loc);
|
|
21
27
|
}
|
|
22
|
-
throw new ParseError(error instanceof Error ? error.message : "Parsing failed");
|
|
28
|
+
throw new parse_error_js_1.ParseError(error instanceof Error ? error.message : "Parsing failed");
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
const ACORN_LOCATION_SUFFIX_RX = /\s+\(\d+:\d+\)$/;
|
package/lib/parse/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parse/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parse/parse.ts"],"names":[],"mappings":";;;;;AAMA,sBAoBC;AA1BD,iCAA6C;AAC7C,0DAA4B;AAC5B,qDAA8C;AAE9C,MAAM,SAAS,GAAG,cAAM,CAAC,MAAM,CAAC,IAAA,mBAAG,GAAE,CAAC,CAAC;AAEvC,SAAgB,KAAK,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7B,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI;YACf,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;YAEpE,MAAM,IAAI,2BAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,2BAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAEnD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,IAAK,KAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;AAC3E,CAAC"}
|