jsxpression 0.1.0 → 0.1.1

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 (199) hide show
  1. package/lib/analyze/analysis-error.d.ts +7 -0
  2. package/lib/analyze/analysis-error.d.ts.map +1 -1
  3. package/lib/analyze/analysis-error.js +26 -0
  4. package/lib/analyze/analysis-error.js.map +1 -0
  5. package/lib/analyze/analysis-report.d.ts +2 -2
  6. package/lib/analyze/analysis-report.d.ts.map +1 -1
  7. package/lib/analyze/analyze.d.ts +5 -0
  8. package/lib/analyze/analyze.d.ts.map +1 -1
  9. package/lib/analyze/analyze.js +11 -0
  10. package/lib/analyze/analyze.js.map +1 -0
  11. package/lib/analyze/analyze.test.js +312 -312
  12. package/lib/analyze/analyze.test.js.map +1 -1
  13. package/lib/analyze/data/analyze.d.ts +5 -0
  14. package/lib/analyze/data/analyze.d.ts.map +1 -1
  15. package/lib/analyze/data/analyze.js +12 -0
  16. package/lib/analyze/data/analyze.js.map +1 -0
  17. package/lib/analyze/data/data-access.d.ts +7 -0
  18. package/lib/analyze/data/data-access.d.ts.map +1 -1
  19. package/lib/analyze/data/data-access.js +275 -0
  20. package/lib/analyze/data/data-access.js.map +1 -0
  21. package/lib/analyze/data/index.d.ts +2 -0
  22. package/lib/analyze/data/index.d.ts.map +1 -1
  23. package/lib/analyze/data/index.js +6 -0
  24. package/lib/analyze/data/index.js.map +1 -0
  25. package/lib/analyze/data/method-calls.d.ts +6 -0
  26. package/lib/analyze/data/method-calls.d.ts.map +1 -1
  27. package/lib/analyze/data/method-calls.js +58 -0
  28. package/lib/analyze/data/method-calls.js.map +1 -0
  29. package/lib/analyze/data/utils.d.ts +10 -0
  30. package/lib/analyze/data/utils.d.ts.map +1 -1
  31. package/lib/analyze/data/utils.js +212 -0
  32. package/lib/analyze/data/utils.js.map +1 -0
  33. package/lib/analyze/index.d.ts +4 -0
  34. package/lib/analyze/index.d.ts.map +1 -1
  35. package/lib/analyze/index.js +10 -0
  36. package/lib/analyze/index.js.map +1 -0
  37. package/lib/analyze/jsx/analyze.d.ts +5 -0
  38. package/lib/analyze/jsx/analyze.d.ts.map +1 -1
  39. package/lib/analyze/jsx/analyze.js +13 -0
  40. package/lib/analyze/jsx/analyze.js.map +1 -0
  41. package/lib/analyze/jsx/element-attributes.d.ts +6 -0
  42. package/lib/analyze/jsx/element-attributes.d.ts.map +1 -1
  43. package/lib/analyze/jsx/element-attributes.js +20 -20
  44. package/lib/analyze/jsx/element-attributes.js.map +1 -1
  45. package/lib/analyze/jsx/element-children.d.ts +6 -0
  46. package/lib/analyze/jsx/element-children.d.ts.map +1 -1
  47. package/lib/analyze/jsx/element-children.js +69 -0
  48. package/lib/analyze/jsx/element-children.js.map +1 -0
  49. package/lib/analyze/jsx/element-tags.d.ts +6 -0
  50. package/lib/analyze/jsx/element-tags.d.ts.map +1 -1
  51. package/lib/analyze/jsx/element-tags.js +41 -0
  52. package/lib/analyze/jsx/element-tags.js.map +1 -0
  53. package/lib/analyze/jsx/index.d.ts +2 -0
  54. package/lib/analyze/jsx/index.d.ts.map +1 -1
  55. package/lib/analyze/jsx/index.js +6 -0
  56. package/lib/analyze/jsx/index.js.map +1 -0
  57. package/lib/analyze/security/analyze.d.ts +5 -0
  58. package/lib/analyze/security/analyze.d.ts.map +1 -1
  59. package/lib/analyze/security/analyze.js +15 -0
  60. package/lib/analyze/security/analyze.js.map +1 -0
  61. package/lib/analyze/security/call-expressions.d.ts +6 -0
  62. package/lib/analyze/security/call-expressions.d.ts.map +1 -1
  63. package/lib/analyze/security/call-expressions.js +23 -0
  64. package/lib/analyze/security/call-expressions.js.map +1 -0
  65. package/lib/analyze/security/declarations.d.ts +6 -0
  66. package/lib/analyze/security/declarations.d.ts.map +1 -1
  67. package/lib/analyze/security/declarations.js +31 -0
  68. package/lib/analyze/security/declarations.js.map +1 -0
  69. package/lib/analyze/security/expressions.d.ts +6 -0
  70. package/lib/analyze/security/expressions.d.ts.map +1 -1
  71. package/lib/analyze/security/expressions.js +52 -0
  72. package/lib/analyze/security/expressions.js.map +1 -0
  73. package/lib/analyze/security/identifiers.d.ts +6 -0
  74. package/lib/analyze/security/identifiers.d.ts.map +1 -1
  75. package/lib/analyze/security/identifiers.js +87 -0
  76. package/lib/analyze/security/identifiers.js.map +1 -0
  77. package/lib/analyze/security/index.d.ts +2 -0
  78. package/lib/analyze/security/index.d.ts.map +1 -1
  79. package/lib/analyze/security/index.js +6 -0
  80. package/lib/analyze/security/index.js.map +1 -0
  81. package/lib/analyze/security/member-access.d.ts +6 -0
  82. package/lib/analyze/security/member-access.d.ts.map +1 -1
  83. package/lib/analyze/security/member-access.js +24 -0
  84. package/lib/analyze/security/member-access.js.map +1 -0
  85. package/lib/analyze/utils.d.ts.map +1 -0
  86. package/lib/analyze/utils.js +92 -0
  87. package/lib/analyze/utils.js.map +1 -0
  88. package/lib/analyze/validation-context.d.ts.map +1 -0
  89. package/lib/analyze/validation-context.js +27 -0
  90. package/lib/analyze/validation-context.js.map +1 -0
  91. package/lib/codegen/generate-typescript-definitions.test.js +190 -190
  92. package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
  93. package/lib/compile/compilation-error.d.ts.map +1 -0
  94. package/lib/compile/compilation-error.js +28 -0
  95. package/lib/compile/compilation-error.js.map +1 -0
  96. package/lib/compile/compile.d.ts +3 -0
  97. package/lib/compile/compile.d.ts.map +1 -1
  98. package/lib/compile/compile.js +17 -17
  99. package/lib/compile/compile.js.map +1 -1
  100. package/lib/compile/compile.test.js +110 -110
  101. package/lib/compile/compile.test.js.map +1 -1
  102. package/lib/compile/index.d.ts +3 -0
  103. package/lib/compile/index.d.ts.map +1 -0
  104. package/lib/compile/index.js +8 -0
  105. package/lib/compile/index.js.map +1 -0
  106. package/lib/evaluate/evaluate.js +9 -5
  107. package/lib/evaluate/evaluate.js.map +1 -0
  108. package/lib/evaluate/evaluate.test.d.ts.map +1 -0
  109. package/lib/evaluate/evaluate.test.js +252 -0
  110. package/lib/evaluate/evaluate.test.js.map +1 -0
  111. package/lib/evaluate/evaluation-error.js +6 -1
  112. package/lib/evaluate/evaluation-error.js.map +1 -0
  113. package/lib/evaluate/index.d.ts +3 -0
  114. package/lib/evaluate/index.d.ts.map +1 -0
  115. package/lib/evaluate/index.js +8 -0
  116. package/lib/evaluate/index.js.map +1 -0
  117. package/lib/index.d.ts +7 -7
  118. package/lib/index.d.ts.map +1 -1
  119. package/lib/index.js +12 -12
  120. package/lib/index.js.map +1 -1
  121. package/lib/jsx.d.ts +92 -0
  122. package/lib/jsx.d.ts.map +1 -0
  123. package/lib/jsx.js +43 -0
  124. package/lib/jsx.js.map +1 -0
  125. package/lib/parse/index.d.ts +3 -0
  126. package/lib/parse/index.d.ts.map +1 -0
  127. package/lib/parse/index.js +8 -0
  128. package/lib/parse/index.js.map +1 -0
  129. package/lib/parse/parse-error.d.ts.map +1 -0
  130. package/lib/parse/parse-error.js +13 -0
  131. package/lib/parse/parse-error.js.map +1 -0
  132. package/lib/parse/parse.d.ts +3 -0
  133. package/lib/parse/parse.d.ts.map +1 -0
  134. package/lib/parse/parse.js +35 -0
  135. package/lib/parse/parse.js.map +1 -0
  136. package/lib/parse/parse.test.d.ts.map +1 -0
  137. package/lib/parse/parse.test.js +82 -0
  138. package/lib/parse/parse.test.js.map +1 -0
  139. package/lib/render.d.ts +2 -2
  140. package/lib/render.d.ts.map +1 -1
  141. package/lib/render.js +13 -9
  142. package/lib/render.js.map +1 -0
  143. package/lib/render.test.js +303 -0
  144. package/lib/render.test.js.map +1 -0
  145. package/lib/schema.js +39 -18
  146. package/lib/schema.js.map +1 -0
  147. package/lib/traverse.d.ts +15 -0
  148. package/lib/traverse.d.ts.map +1 -0
  149. package/lib/traverse.js +49 -0
  150. package/lib/traverse.js.map +1 -0
  151. package/lib/traverse.test.d.ts.map +1 -0
  152. package/lib/traverse.test.js +86 -0
  153. package/lib/traverse.test.js.map +1 -0
  154. package/lib/types.d.ts.map +1 -0
  155. package/lib/types.js +3 -0
  156. package/lib/types.js.map +1 -0
  157. package/lib/validate.d.ts +3 -3
  158. package/lib/validate.d.ts.map +1 -1
  159. package/lib/validate.js +11 -7
  160. package/lib/validate.js.map +1 -0
  161. package/package.json +1 -1
  162. package/src/analyze/analysis-error.ts +1 -1
  163. package/src/analyze/analysis-report.ts +2 -2
  164. package/src/analyze/analyze.test.ts +4 -4
  165. package/src/analyze/analyze.ts +5 -5
  166. package/src/analyze/data/analyze.ts +5 -5
  167. package/src/analyze/data/data-access.ts +6 -6
  168. package/src/analyze/data/index.ts +1 -1
  169. package/src/analyze/data/method-calls.ts +7 -7
  170. package/src/analyze/data/utils.ts +5 -5
  171. package/src/analyze/index.ts +3 -3
  172. package/src/analyze/jsx/analyze.ts +6 -6
  173. package/src/analyze/jsx/element-attributes.ts +6 -6
  174. package/src/analyze/jsx/element-children.ts +6 -6
  175. package/src/analyze/jsx/element-tags.ts +5 -5
  176. package/src/analyze/jsx/index.ts +1 -1
  177. package/src/analyze/security/analyze.ts +8 -8
  178. package/src/analyze/security/call-expressions.ts +5 -5
  179. package/src/analyze/security/declarations.ts +5 -5
  180. package/src/analyze/security/expressions.ts +5 -5
  181. package/src/analyze/security/identifiers.ts +6 -6
  182. package/src/analyze/security/index.ts +1 -1
  183. package/src/analyze/security/member-access.ts +5 -5
  184. package/src/codegen/generate-typescript-definitions.test.ts +2 -2
  185. package/src/compile/compile.test.ts +2 -2
  186. package/src/compile/compile.ts +2 -2
  187. package/src/compile/index.ts +2 -2
  188. package/src/evaluate/evaluate.test.ts +4 -4
  189. package/src/evaluate/evaluate.ts +1 -1
  190. package/src/evaluate/index.ts +2 -2
  191. package/src/index.ts +7 -7
  192. package/src/parse/index.ts +2 -2
  193. package/src/parse/parse.test.ts +2 -2
  194. package/src/parse/parse.ts +1 -1
  195. package/src/render.test.ts +4 -4
  196. package/src/render.ts +5 -5
  197. package/src/traverse.test.ts +2 -2
  198. package/src/traverse.ts +1 -1
  199. package/src/validate.ts +3 -3
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompilationError = exports.compile = void 0;
4
+ var index_js_1 = require("./compile/index.js");
5
+ Object.defineProperty(exports, "compile", { enumerable: true, get: function () { return index_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; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,mGAAA,OAAO,OAAA;AAChB,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA"}
@@ -1,5 +1,8 @@
1
- import { EvaluationError } from "./evaluation-error";
2
- export function evaluate(source, 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
+ function evaluate(source, options) {
3
6
  const { data = {}, components = {}, createElement } = options;
4
7
  const h = createH(components, createElement || defaultCreateElement);
5
8
  try {
@@ -8,17 +11,17 @@ export function evaluate(source, options) {
8
11
  }
9
12
  catch (error) {
10
13
  // We may have thrown an EvaluationError from createH()
11
- if (error instanceof EvaluationError) {
14
+ if (error instanceof evaluation_error_js_1.EvaluationError) {
12
15
  throw error;
13
16
  }
14
- throw new EvaluationError(error instanceof Error ? error.message : "Evaluation failed");
17
+ throw new evaluation_error_js_1.EvaluationError(error instanceof Error ? error.message : "Evaluation failed");
15
18
  }
16
19
  }
17
20
  function createH(components, createElement) {
18
21
  return function h(type, props, ...children) {
19
22
  const Component = components[type];
20
23
  if (!Component) {
21
- throw new EvaluationError(`component "${type}" is not allowed`);
24
+ throw new evaluation_error_js_1.EvaluationError(`component "${type}" is not allowed`);
22
25
  }
23
26
  return createElement(Component, props, ...children.flat().filter(Boolean));
24
27
  };
@@ -38,3 +41,4 @@ function defaultCreateElement(Component, props = {}, ...children) {
38
41
  children,
39
42
  };
40
43
  }
44
+ //# sourceMappingURL=evaluate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.ts"],"names":[],"mappings":";;AAkCA,4BAgBC;AAlDD,+DAAwD;AAkCxD,SAAgB,QAAQ,CAAU,MAAc,EAAE,OAA2B;IAC3E,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,CAAC,CAAC;IAErE,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;IACtE,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,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;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.test.d.ts","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_js_1 = require("vitest.js");
4
+ const index_js_1 = require("./evaluate/index.js");
5
+ const index_js_2 = require("../compile/index.js");
6
+ const index_js_3 = require("../parse/index.js");
7
+ const evaluation_error_js_1 = require("./evaluation-error.js");
8
+ (0, vitest_js_1.describe)("evaluate", () => {
9
+ const compileAndEvaluate = (source, options = {}) => {
10
+ return (0, index_js_1.evaluate)((0, index_js_2.compile)((0, index_js_3.parse)(source)), options);
11
+ };
12
+ (0, vitest_js_1.it)("should evaluate JSX with props", () => {
13
+ const TestComponent = (props, ...children) => ({
14
+ type: "TestComponent",
15
+ props,
16
+ children,
17
+ });
18
+ const result = compileAndEvaluate("<Test x={data.x} y={data.y}>Hello</Test>", {
19
+ data: { x: 10, y: 20 },
20
+ components: {
21
+ Test: TestComponent,
22
+ },
23
+ });
24
+ (0, vitest_js_1.expect)(result).toEqual({
25
+ type: "TestComponent",
26
+ props: { x: 10, y: 20 },
27
+ children: ["Hello"],
28
+ });
29
+ });
30
+ (0, vitest_js_1.it)("should evaluate JSX with Math operations", () => {
31
+ const TestComponent = (props) => ({
32
+ type: "TestComponent",
33
+ props,
34
+ children: [],
35
+ });
36
+ const result = compileAndEvaluate("<Test value={Math.floor(data.x * Math.PI)}>Text</Test>", {
37
+ data: { x: 5 },
38
+ components: {
39
+ Test: TestComponent,
40
+ },
41
+ });
42
+ (0, vitest_js_1.expect)(result.props.value).toBe(15); // floor(5 * 3.14159...) = 15
43
+ });
44
+ (0, vitest_js_1.it)("should throw EvaluationError for unknown component", () => {
45
+ const compiled = (0, index_js_2.compile)((0, index_js_3.parse)("<UnknownComponent>Hello</UnknownComponent>"));
46
+ (0, vitest_js_1.expect)(() => (0, index_js_1.evaluate)(compiled, { components: {} })).toThrow(evaluation_error_js_1.EvaluationError);
47
+ (0, vitest_js_1.expect)(() => (0, index_js_1.evaluate)(compiled, { components: {} })).toThrow('component "UnknownComponent" is not allowed');
48
+ });
49
+ (0, vitest_js_1.it)("should deep-freeze props to prevent mutations", () => {
50
+ const TestComponent = (props) => {
51
+ (0, vitest_js_1.expect)(() => {
52
+ props.nested.value = 999;
53
+ }).toThrow();
54
+ return { type: "Test", props, children: [] };
55
+ };
56
+ const compiled = (0, index_js_2.compile)((0, index_js_3.parse)("<Test>Hello</Test>"));
57
+ (0, index_js_1.evaluate)(compiled, {
58
+ data: { nested: { value: 42 } },
59
+ components: {
60
+ Test: TestComponent,
61
+ },
62
+ });
63
+ });
64
+ (0, vitest_js_1.it)("should evaluate nested elements", () => {
65
+ const OuterComponent = (props, ...children) => ({
66
+ type: "Outer",
67
+ props,
68
+ children,
69
+ });
70
+ const InnerComponent = (props, ...children) => ({
71
+ type: "Inner",
72
+ props,
73
+ children,
74
+ });
75
+ const result = compileAndEvaluate("<Outer x={data.x}><Inner y={data.y}>Text</Inner></Outer>", {
76
+ data: { x: 10, y: 20 },
77
+ components: {
78
+ Outer: OuterComponent,
79
+ Inner: InnerComponent,
80
+ },
81
+ });
82
+ (0, vitest_js_1.expect)(result.type).toBe("OuterComponent");
83
+ (0, vitest_js_1.expect)(result.props).toEqual({ x: 10 });
84
+ (0, vitest_js_1.expect)(result.children).toHaveLength(1);
85
+ const innerNode = result.children[0];
86
+ (0, vitest_js_1.expect)(innerNode.type).toBe("InnerComponent");
87
+ (0, vitest_js_1.expect)(innerNode.props).toEqual({ y: 20 });
88
+ (0, vitest_js_1.expect)(innerNode.children).toEqual(["Text"]);
89
+ });
90
+ (0, vitest_js_1.it)("should use custom createElement when provided", () => {
91
+ const customCreateElement = (type, props, ...children) => ({
92
+ type: type.name || "Unknown",
93
+ props: { ...props, custom: true },
94
+ children,
95
+ });
96
+ const TestComponent = () => ({ type: "Test", props: {}, children: [] });
97
+ const result = compileAndEvaluate("<Test x={10}>Hello</Test>", {
98
+ components: {
99
+ Test: TestComponent,
100
+ },
101
+ createElement: customCreateElement,
102
+ });
103
+ (0, vitest_js_1.expect)(result).toEqual({
104
+ type: "TestComponent",
105
+ props: { x: 10, custom: true },
106
+ children: ["Hello"],
107
+ });
108
+ });
109
+ (0, vitest_js_1.it)("should evaluate conditional expressions with props", () => {
110
+ const TestComponent = (props) => ({
111
+ type: "TestComponent",
112
+ props,
113
+ children: [],
114
+ });
115
+ const result = compileAndEvaluate("<Test msg={data.show ? 'visible' : 'hidden'}>Text</Test>", {
116
+ data: { show: true },
117
+ components: {
118
+ Test: TestComponent,
119
+ },
120
+ });
121
+ (0, vitest_js_1.expect)(result.props.msg).toBe("visible");
122
+ });
123
+ (0, vitest_js_1.it)("should evaluate array methods on props", () => {
124
+ const TestComponent = (props) => ({
125
+ type: "TestComponent",
126
+ props,
127
+ children: [],
128
+ });
129
+ const result = compileAndEvaluate("<Test values={data.items.filter(x => x > 2).map(x => x * 2)}>Text</Test>", {
130
+ data: { items: [1, 2, 3, 4, 5] },
131
+ components: {
132
+ Test: TestComponent,
133
+ },
134
+ });
135
+ (0, vitest_js_1.expect)(result.props.values).toEqual([6, 8, 10]);
136
+ });
137
+ (0, vitest_js_1.it)("should handle runtime errors gracefully", () => {
138
+ const compiled = (0, index_js_2.compile)((0, index_js_3.parse)("<Test value={data.missing.nested}>Text</Test>"));
139
+ const TestComponent = () => ({ type: "Test", props: {}, children: [] });
140
+ (0, vitest_js_1.expect)(() => (0, index_js_1.evaluate)(compiled, {
141
+ data: {},
142
+ components: {
143
+ Test: TestComponent,
144
+ },
145
+ })).toThrow(evaluation_error_js_1.EvaluationError);
146
+ });
147
+ (0, vitest_js_1.it)("should evaluate logical operators with props", () => {
148
+ const TestComponent = (props) => ({
149
+ type: "TestComponent",
150
+ props,
151
+ children: [],
152
+ });
153
+ const result = compileAndEvaluate("<Test msg={data.name || 'Anonymous'}>Text</Test>", {
154
+ data: { name: "" },
155
+ components: {
156
+ Test: TestComponent,
157
+ },
158
+ });
159
+ (0, vitest_js_1.expect)(result.props.msg).toBe("Anonymous");
160
+ });
161
+ (0, vitest_js_1.it)("should flatten and filter children correctly", () => {
162
+ const TestComponent = (props, ...children) => ({
163
+ type: "Test",
164
+ props,
165
+ children,
166
+ });
167
+ const result = compileAndEvaluate("<Test>{data.show && 'Visible'}{false}{'Always'}</Test>", {
168
+ data: { show: true },
169
+ components: {
170
+ Test: TestComponent,
171
+ },
172
+ });
173
+ (0, vitest_js_1.expect)(result.children).toEqual(["Visible", "Always"]);
174
+ });
175
+ (0, vitest_js_1.it)("should handle JSX fragments", () => {
176
+ const TestComponent = () => ({ type: "Test", props: {}, children: [] });
177
+ const result = compileAndEvaluate("<><Test /><Test /></>", {
178
+ components: { Test: TestComponent },
179
+ });
180
+ (0, vitest_js_1.expect)(Array.isArray(result)).toBe(true);
181
+ (0, vitest_js_1.expect)(result).toHaveLength(2);
182
+ });
183
+ (0, vitest_js_1.it)("should handle empty JSX expressions", () => {
184
+ const TestComponent = (props, ...children) => ({
185
+ type: "Test",
186
+ props,
187
+ children,
188
+ });
189
+ const result = compileAndEvaluate("<Test>{}{data.value}{}</Test>", {
190
+ data: { value: "hello" },
191
+ components: { Test: TestComponent },
192
+ });
193
+ (0, vitest_js_1.expect)(result.children).toEqual(["hello"]);
194
+ });
195
+ (0, vitest_js_1.it)("should evaluate complex nested expressions", () => {
196
+ const TestComponent = (props) => ({
197
+ type: "Test",
198
+ props,
199
+ children: [],
200
+ });
201
+ const result = compileAndEvaluate("<Test values={data.items.filter(x => x > 2).map(x => x * 2).join(', ')}>Text</Test>", {
202
+ data: { items: [1, 2, 3, 4, 5] },
203
+ components: { Test: TestComponent },
204
+ });
205
+ (0, vitest_js_1.expect)(result.props.values).toBe("6, 8, 10");
206
+ });
207
+ (0, vitest_js_1.it)("should pass correct parameters to custom createElement", () => {
208
+ const mockCreateElement = vitest_js_1.vi.fn();
209
+ compileAndEvaluate("<Test x={10}>Hello</Test>", {
210
+ components: { Test: () => ({ type: "Test", props: {}, children: [] }) },
211
+ createElement: mockCreateElement,
212
+ });
213
+ (0, vitest_js_1.expect)(mockCreateElement).toHaveBeenCalledWith(vitest_js_1.expect.any(Function), { x: 10 }, "Hello");
214
+ });
215
+ (0, vitest_js_1.it)("should handle string literals in expressions", () => {
216
+ const TestComponent = (props) => ({
217
+ type: "Test",
218
+ props,
219
+ children: [],
220
+ });
221
+ const result = compileAndEvaluate('<Test msg={"Hello " + data.name}>Text</Test>', {
222
+ data: { name: "World" },
223
+ components: { Test: TestComponent },
224
+ });
225
+ (0, vitest_js_1.expect)(result.props.msg).toBe("Hello World");
226
+ });
227
+ (0, vitest_js_1.it)("should handle numeric operations", () => {
228
+ const TestComponent = (props) => ({
229
+ type: "Test",
230
+ props,
231
+ children: [],
232
+ });
233
+ const result = compileAndEvaluate("<Test value={data.x + data.y * 2}>Text</Test>", {
234
+ data: { x: 5, y: 3 },
235
+ components: { Test: TestComponent },
236
+ });
237
+ (0, vitest_js_1.expect)(result.props.value).toBe(11); // 5 + (3 * 2)
238
+ });
239
+ (0, vitest_js_1.it)("should handle data access in children", () => {
240
+ const TestComponent = (props, ...children) => ({
241
+ type: "Test",
242
+ props,
243
+ children,
244
+ });
245
+ const result = compileAndEvaluate("<Test>Hello {data.name}!</Test>", {
246
+ data: { name: "World" },
247
+ components: { Test: TestComponent },
248
+ });
249
+ (0, vitest_js_1.expect)(result.children).toEqual(["Hello", "World", "!"]);
250
+ });
251
+ });
252
+ //# sourceMappingURL=evaluate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.test.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
- export class EvaluationError extends Error {
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;
11
+ //# sourceMappingURL=evaluation-error.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export { evaluate, type EvaluateOptions } from "./evaluate/index.js";
2
+ export { EvaluationError } from "./evaluation-error.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvaluationError = exports.evaluate = void 0;
4
+ var index_js_1 = require("./evaluate/index.js");
5
+ Object.defineProperty(exports, "evaluate", { enumerable: true, get: function () { return index_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; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evaluate/index.ts"],"names":[],"mappings":";;;AAAA,gDAAqE;AAA5D,oGAAA,QAAQ,OAAA;AACjB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA"}
package/lib/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export type { Schema, PropertySchema } from "./schema";
2
- export { ParseError } from "./parse";
3
- export { CompilationError } from "./compile";
4
- export { AnalysisError } from "./analyze";
5
- export { render, type RenderOptions } from "./render";
6
- export { validate, type ValidateOptions, type ValidateResult } from "./validate";
7
- export { generateTypeScriptDefinitions } from "./codegen";
1
+ export type { Schema, PropertySchema } from "./schema.js";
2
+ export { ParseError } from "./parse/index.js";
3
+ export { CompilationError } from "./compile/index.js";
4
+ export { AnalysisError } from "./analyze/index.js";
5
+ export { render, type RenderOptions } from "./render.js";
6
+ export { validate, type ValidateOptions, type ValidateResult } from "./validate.js";
7
+ export { generateTypeScriptDefinitions } from "./codegen/index.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC"}
package/lib/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTypeScriptDefinitions = exports.validate = exports.render = exports.AnalysisError = exports.CompilationError = exports.ParseError = void 0;
4
- var parse_1 = require("./parse");
5
- Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return parse_1.ParseError; } });
6
- var compile_1 = require("./compile");
7
- Object.defineProperty(exports, "CompilationError", { enumerable: true, get: function () { return compile_1.CompilationError; } });
8
- var analyze_1 = require("./analyze");
9
- Object.defineProperty(exports, "AnalysisError", { enumerable: true, get: function () { return analyze_1.AnalysisError; } });
10
- var render_1 = require("./render");
11
- Object.defineProperty(exports, "render", { enumerable: true, get: function () { return render_1.render; } });
12
- var validate_1 = require("./validate");
13
- Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
14
- var codegen_1 = require("./codegen");
15
- Object.defineProperty(exports, "generateTypeScriptDefinitions", { enumerable: true, get: function () { return codegen_1.generateTypeScriptDefinitions; } });
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; } });
16
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,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AACnB,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AACzB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,mCAAsD;AAA7C,gGAAA,MAAM,OAAA;AACf,uCAAiF;AAAxE,oGAAA,QAAQ,OAAA;AAEjB,qCAA0D;AAAjD,wHAAA,6BAA6B,OAAA"}
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.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ import type { ArrayExpression, ArrowFunctionExpression, BinaryExpression, CallExpression, ConditionalExpression, Identifier, Literal, LogicalExpression, MemberExpression, ObjectExpression, UnaryExpression } from "acorn.js";
2
+ export type JSXStringLiteral = {
3
+ type: "Literal";
4
+ value: string;
5
+ };
6
+ export type JSXNumberLiteral = {
7
+ type: "Literal";
8
+ value: number;
9
+ };
10
+ export type JSXBooleanLiteral = {
11
+ type: "Literal";
12
+ value: boolean;
13
+ };
14
+ export type JSXNullLiteral = {
15
+ type: "Literal";
16
+ value: null;
17
+ };
18
+ export type JSXLiteral = JSXStringLiteral | JSXNumberLiteral | JSXBooleanLiteral | JSXNullLiteral;
19
+ export type JSXAttributeValue = JSXLiteral | JSXExpressionContainer;
20
+ export type JSXNameNode = {
21
+ type: "JSXIdentifier";
22
+ name: string;
23
+ } | {
24
+ type: "JSXMemberExpression";
25
+ object: JSXNameNode;
26
+ property: JSXNameNode;
27
+ };
28
+ export type JSXAttribute = {
29
+ type: "JSXAttribute";
30
+ name: {
31
+ name: string;
32
+ };
33
+ value?: JSXAttributeValue;
34
+ };
35
+ export type JSXSpreadAttribute = {
36
+ type: "JSXSpreadAttribute";
37
+ argument: JSXNode;
38
+ };
39
+ export type JSXOpeningElement = {
40
+ type: "JSXOpeningElement";
41
+ name: {
42
+ name: string;
43
+ };
44
+ attributes: (JSXAttribute | JSXSpreadAttribute)[];
45
+ };
46
+ export type JSXClosingElement = {
47
+ type: "JSXClosingElement";
48
+ name: {
49
+ name: string;
50
+ };
51
+ };
52
+ export type JSXElement = {
53
+ type: "JSXElement";
54
+ openingElement: JSXOpeningElement;
55
+ closingElement?: JSXClosingElement;
56
+ children: JSXNode[];
57
+ };
58
+ export type JSXFragment = {
59
+ type: "JSXFragment";
60
+ children: JSXNode[];
61
+ };
62
+ export type JSXText = {
63
+ type: "JSXText";
64
+ value: string;
65
+ };
66
+ export type JSXEmptyExpression = {
67
+ type: "JSXEmptyExpression";
68
+ start: number;
69
+ end: number;
70
+ };
71
+ export type JSXExpression = ArrayExpression | ArrowFunctionExpression | BinaryExpression | CallExpression | ConditionalExpression | Identifier | JSXElement | JSXFragment | Literal | LogicalExpression | MemberExpression | ObjectExpression | UnaryExpression;
72
+ export type JSXExpressionContainer = {
73
+ type: "JSXExpressionContainer";
74
+ expression: JSXExpression | JSXEmptyExpression;
75
+ };
76
+ export type JSXNode = JSXElement | JSXFragment | JSXText | JSXEmptyExpression | JSXExpressionContainer;
77
+ export type JSXRoot = JSXElement | JSXFragment | JSXExpressionContainer;
78
+ export type JSXNodeWithChildren = JSXElement | JSXFragment;
79
+ export type JSXLeafNode = JSXText | JSXEmptyExpression;
80
+ export type JSXExpressionHost = JSXExpressionContainer;
81
+ export type GetAttributeValue<T extends JSXAttribute> = T["value"];
82
+ export declare function isJsxElement(value: unknown): value is JSXElement;
83
+ export declare function isJsxFragment(value: unknown): value is JSXFragment;
84
+ export declare function isJsxRoot(value: unknown): value is JSXRoot;
85
+ export declare function isJsxAttribute(value: unknown): value is JSXAttribute;
86
+ export declare function isJsxLiteral(value: unknown): value is JSXLiteral;
87
+ export declare function isJsxExpressionContainer(value: unknown): value is JSXExpressionContainer;
88
+ export declare function isJsxEmptyExpression(value: unknown): value is JSXEmptyExpression;
89
+ export declare function isJsxText(value: unknown): value is JSXText;
90
+ export declare function isJsxNodeWithChildren(value: JSXNode): value is JSXNodeWithChildren;
91
+ export declare function isJsxLeafNode(value: JSXNode): value is JSXLeafNode;
92
+ //# sourceMappingURL=jsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"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"}
package/lib/jsx.js ADDED
@@ -0,0 +1,43 @@
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) {
14
+ return value?.type === "JSXElement";
15
+ }
16
+ function isJsxFragment(value) {
17
+ return value?.type === "JSXFragment";
18
+ }
19
+ function isJsxRoot(value) {
20
+ return isJsxElement(value) || isJsxFragment(value) || isJsxExpressionContainer(value);
21
+ }
22
+ function isJsxAttribute(value) {
23
+ return value?.type === "JSXAttribute";
24
+ }
25
+ function isJsxLiteral(value) {
26
+ return value?.type === "Literal";
27
+ }
28
+ function isJsxExpressionContainer(value) {
29
+ return value?.type === "JSXExpressionContainer";
30
+ }
31
+ function isJsxEmptyExpression(value) {
32
+ return value?.type === "JSXEmptyExpression";
33
+ }
34
+ function isJsxText(value) {
35
+ return value?.type === "JSXText";
36
+ }
37
+ function isJsxNodeWithChildren(value) {
38
+ return isJsxElement(value) || isJsxFragment(value);
39
+ }
40
+ function isJsxLeafNode(value) {
41
+ return value?.type === "JSXText" || isJsxEmptyExpression(value);
42
+ }
43
+ //# sourceMappingURL=jsx.js.map
package/lib/jsx.js.map ADDED
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export { parse } from "./parse/index.js";
2
+ export { ParseError } from "./parse-error.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseError = exports.parse = void 0;
4
+ var index_js_1 = require("./parse/index.js");
5
+ Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return index_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; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAAhC,iGAAA,KAAK,OAAA;AACd,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-error.d.ts","sourceRoot":"","sources":["../../src/parse/parse-error.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG;IACT,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;gBAEP,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG;CAKvC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseError = void 0;
4
+ class ParseError extends Error {
5
+ loc;
6
+ constructor(message, loc) {
7
+ super(message);
8
+ this.name = "ParseError";
9
+ this.loc = loc;
10
+ }
11
+ }
12
+ exports.ParseError = ParseError;
13
+ //# sourceMappingURL=parse-error.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ import { type Program } from "acorn.js";
2
+ export declare function parse(source: string): Program;
3
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/parse/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAMhD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAoB7C"}