jsxpression 0.1.2 → 0.1.5

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 (168) hide show
  1. package/lib/analyze/analysis-error.js +1 -5
  2. package/lib/analyze/analysis-error.js.map +1 -1
  3. package/lib/analyze/analysis-report.js +1 -5
  4. package/lib/analyze/analysis-report.js.map +1 -1
  5. package/lib/analyze/analyze.d.ts +1 -1
  6. package/lib/analyze/analyze.d.ts.map +1 -1
  7. package/lib/analyze/analyze.js +6 -9
  8. package/lib/analyze/analyze.js.map +1 -1
  9. package/lib/analyze/analyze.test.js +312 -314
  10. package/lib/analyze/analyze.test.js.map +1 -1
  11. package/lib/analyze/data/analyze.d.ts +1 -1
  12. package/lib/analyze/data/analyze.d.ts.map +1 -1
  13. package/lib/analyze/data/analyze.js +7 -10
  14. package/lib/analyze/data/analyze.js.map +1 -1
  15. package/lib/analyze/data/data-access.d.ts +1 -1
  16. package/lib/analyze/data/data-access.d.ts.map +1 -1
  17. package/lib/analyze/data/data-access.js +20 -24
  18. package/lib/analyze/data/data-access.js.map +1 -1
  19. package/lib/analyze/data/index.d.ts +1 -1
  20. package/lib/analyze/data/index.d.ts.map +1 -1
  21. package/lib/analyze/data/index.js +1 -5
  22. package/lib/analyze/data/index.js.map +1 -1
  23. package/lib/analyze/data/method-calls.d.ts +1 -1
  24. package/lib/analyze/data/method-calls.d.ts.map +1 -1
  25. package/lib/analyze/data/method-calls.js +17 -20
  26. package/lib/analyze/data/method-calls.js.map +1 -1
  27. package/lib/analyze/data/utils.d.ts +1 -1
  28. package/lib/analyze/data/utils.d.ts.map +1 -1
  29. package/lib/analyze/data/utils.js +22 -29
  30. package/lib/analyze/data/utils.js.map +1 -1
  31. package/lib/analyze/index.d.ts +1 -1
  32. package/lib/analyze/index.d.ts.map +1 -1
  33. package/lib/analyze/index.js +3 -9
  34. package/lib/analyze/index.js.map +1 -1
  35. package/lib/analyze/jsx/analyze.d.ts +1 -1
  36. package/lib/analyze/jsx/analyze.d.ts.map +1 -1
  37. package/lib/analyze/jsx/analyze.js +8 -11
  38. package/lib/analyze/jsx/analyze.js.map +1 -1
  39. package/lib/analyze/jsx/element-attributes.d.ts +1 -1
  40. package/lib/analyze/jsx/element-attributes.d.ts.map +1 -1
  41. package/lib/analyze/jsx/element-attributes.js +21 -24
  42. package/lib/analyze/jsx/element-attributes.js.map +1 -1
  43. package/lib/analyze/jsx/element-children.d.ts +1 -1
  44. package/lib/analyze/jsx/element-children.d.ts.map +1 -1
  45. package/lib/analyze/jsx/element-children.js +20 -23
  46. package/lib/analyze/jsx/element-children.js.map +1 -1
  47. package/lib/analyze/jsx/element-tags.d.ts +1 -1
  48. package/lib/analyze/jsx/element-tags.d.ts.map +1 -1
  49. package/lib/analyze/jsx/element-tags.js +12 -15
  50. package/lib/analyze/jsx/element-tags.js.map +1 -1
  51. package/lib/analyze/jsx/index.d.ts +1 -1
  52. package/lib/analyze/jsx/index.d.ts.map +1 -1
  53. package/lib/analyze/jsx/index.js +1 -5
  54. package/lib/analyze/jsx/index.js.map +1 -1
  55. package/lib/analyze/security/analyze.d.ts +1 -1
  56. package/lib/analyze/security/analyze.d.ts.map +1 -1
  57. package/lib/analyze/security/analyze.js +10 -13
  58. package/lib/analyze/security/analyze.js.map +1 -1
  59. package/lib/analyze/security/call-expressions.d.ts +1 -1
  60. package/lib/analyze/security/call-expressions.d.ts.map +1 -1
  61. package/lib/analyze/security/call-expressions.js +8 -11
  62. package/lib/analyze/security/call-expressions.js.map +1 -1
  63. package/lib/analyze/security/declarations.d.ts +1 -1
  64. package/lib/analyze/security/declarations.d.ts.map +1 -1
  65. package/lib/analyze/security/declarations.js +12 -15
  66. package/lib/analyze/security/declarations.js.map +1 -1
  67. package/lib/analyze/security/expressions.d.ts +1 -1
  68. package/lib/analyze/security/expressions.d.ts.map +1 -1
  69. package/lib/analyze/security/expressions.js +14 -17
  70. package/lib/analyze/security/expressions.js.map +1 -1
  71. package/lib/analyze/security/identifiers.d.ts +1 -1
  72. package/lib/analyze/security/identifiers.d.ts.map +1 -1
  73. package/lib/analyze/security/identifiers.js +10 -13
  74. package/lib/analyze/security/identifiers.js.map +1 -1
  75. package/lib/analyze/security/index.d.ts +1 -1
  76. package/lib/analyze/security/index.d.ts.map +1 -1
  77. package/lib/analyze/security/index.js +1 -5
  78. package/lib/analyze/security/index.js.map +1 -1
  79. package/lib/analyze/security/member-access.d.ts +1 -1
  80. package/lib/analyze/security/member-access.d.ts.map +1 -1
  81. package/lib/analyze/security/member-access.js +7 -10
  82. package/lib/analyze/security/member-access.js.map +1 -1
  83. package/lib/analyze/utils.js +4 -10
  84. package/lib/analyze/utils.js.map +1 -1
  85. package/lib/analyze/validation-context.js +1 -5
  86. package/lib/analyze/validation-context.js.map +1 -1
  87. package/lib/builtins.js +9 -20
  88. package/lib/builtins.js.map +1 -1
  89. package/lib/codegen/builtins/builtin-types.js +3 -6
  90. package/lib/codegen/builtins/builtin-types.js.map +1 -1
  91. package/lib/codegen/builtins/index.js +1 -5
  92. package/lib/codegen/builtins/index.js.map +1 -1
  93. package/lib/codegen/generate-typescript-definitions.js +4 -7
  94. package/lib/codegen/generate-typescript-definitions.js.map +1 -1
  95. package/lib/codegen/generate-typescript-definitions.test.js +190 -192
  96. package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
  97. package/lib/codegen/index.js +1 -5
  98. package/lib/codegen/index.js.map +1 -1
  99. package/lib/codegen/schema/component-types.js +3 -6
  100. package/lib/codegen/schema/component-types.js.map +1 -1
  101. package/lib/codegen/schema/data-types.js +3 -6
  102. package/lib/codegen/schema/data-types.js.map +1 -1
  103. package/lib/codegen/schema/index.js +2 -7
  104. package/lib/codegen/schema/index.js.map +1 -1
  105. package/lib/codegen/schema/utils.js +3 -8
  106. package/lib/codegen/schema/utils.js.map +1 -1
  107. package/lib/compile/compilation-error.js +1 -5
  108. package/lib/compile/compilation-error.js.map +1 -1
  109. package/lib/compile/compile.d.ts +1 -1
  110. package/lib/compile/compile.d.ts.map +1 -1
  111. package/lib/compile/compile.js +20 -25
  112. package/lib/compile/compile.js.map +1 -1
  113. package/lib/compile/compile.test.js +110 -112
  114. package/lib/compile/compile.test.js.map +1 -1
  115. package/lib/compile/index.d.ts +1 -1
  116. package/lib/compile/index.d.ts.map +1 -1
  117. package/lib/compile/index.js +2 -7
  118. package/lib/compile/index.js.map +1 -1
  119. package/lib/evaluate/evaluate.js +5 -8
  120. package/lib/evaluate/evaluate.js.map +1 -1
  121. package/lib/evaluate/evaluate.test.js +56 -58
  122. package/lib/evaluate/evaluate.test.js.map +1 -1
  123. package/lib/evaluate/evaluation-error.js +1 -5
  124. package/lib/evaluate/evaluation-error.js.map +1 -1
  125. package/lib/evaluate/index.d.ts +1 -1
  126. package/lib/evaluate/index.d.ts.map +1 -1
  127. package/lib/evaluate/index.js +2 -7
  128. package/lib/evaluate/index.js.map +1 -1
  129. package/lib/index.js +6 -15
  130. package/lib/index.js.map +1 -1
  131. package/lib/jsx.d.ts +1 -1
  132. package/lib/jsx.d.ts.map +1 -1
  133. package/lib/jsx.js +10 -22
  134. package/lib/jsx.js.map +1 -1
  135. package/lib/parse/index.d.ts +1 -1
  136. package/lib/parse/index.d.ts.map +1 -1
  137. package/lib/parse/index.js +2 -7
  138. package/lib/parse/index.js.map +1 -1
  139. package/lib/parse/parse-error.js +1 -5
  140. package/lib/parse/parse-error.js.map +1 -1
  141. package/lib/parse/parse.d.ts +1 -1
  142. package/lib/parse/parse.d.ts.map +1 -1
  143. package/lib/parse/parse.js +7 -13
  144. package/lib/parse/parse.js.map +1 -1
  145. package/lib/parse/parse.test.js +56 -58
  146. package/lib/parse/parse.test.js.map +1 -1
  147. package/lib/render.d.ts +1 -1
  148. package/lib/render.d.ts.map +1 -1
  149. package/lib/render.js +9 -12
  150. package/lib/render.js.map +1 -1
  151. package/lib/render.test.js +62 -64
  152. package/lib/render.test.js.map +1 -1
  153. package/lib/schema.d.ts +1 -0
  154. package/lib/schema.d.ts.map +1 -1
  155. package/lib/schema.js +18 -38
  156. package/lib/schema.js.map +1 -1
  157. package/lib/traverse.d.ts +3 -3
  158. package/lib/traverse.d.ts.map +1 -1
  159. package/lib/traverse.js +8 -11
  160. package/lib/traverse.js.map +1 -1
  161. package/lib/traverse.test.js +34 -36
  162. package/lib/traverse.test.js.map +1 -1
  163. package/lib/types.js +1 -2
  164. package/lib/validate.js +7 -10
  165. package/lib/validate.js.map +1 -1
  166. package/package.json +2 -1
  167. package/src/compile/compile.ts +3 -4
  168. package/src/schema.ts +1 -0
@@ -1,45 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_js_1 = require("vitest.js");
4
- const generate_typescript_definitions_js_1 = require("./generate-typescript-definitions.js");
5
- (0, vitest_js_1.describe)("generateTypeScriptDefinitions", () => {
6
- (0, vitest_js_1.describe)("basic structure", () => {
7
- (0, vitest_js_1.it)("should generate valid TypeScript definitions for empty schema", () => {
1
+ import { describe, it, expect } from "vitest";
2
+ import { generateTypeScriptDefinitions } from "./generate-typescript-definitions.js";
3
+ describe("generateTypeScriptDefinitions", () => {
4
+ describe("basic structure", () => {
5
+ it("should generate valid TypeScript definitions for empty schema", () => {
8
6
  const schema = {
9
7
  data: {},
10
8
  elements: {},
11
9
  };
12
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
13
- (0, vitest_js_1.expect)(result).toContain("declare global");
14
- (0, vitest_js_1.expect)(result).toContain("namespace JSX");
15
- (0, vitest_js_1.expect)(result).toContain("export {};");
10
+ const result = generateTypeScriptDefinitions(schema);
11
+ expect(result).toContain("declare global");
12
+ expect(result).toContain("namespace JSX");
13
+ expect(result).toContain("export {};");
16
14
  });
17
- (0, vitest_js_1.it)("should include builtin types declarations", () => {
15
+ it("should include builtin types declarations", () => {
18
16
  const schema = {
19
17
  data: {},
20
18
  elements: {},
21
19
  };
22
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
23
- (0, vitest_js_1.expect)(result).toContain("namespace JSX");
24
- (0, vitest_js_1.expect)(result).toContain("type Element");
25
- (0, vitest_js_1.expect)(result).toContain("type Node");
26
- (0, vitest_js_1.expect)(result).toContain("interface IntrinsicElements");
27
- (0, vitest_js_1.expect)(result).toContain("Math");
28
- (0, vitest_js_1.expect)(result).toContain("String");
29
- (0, vitest_js_1.expect)(result).toContain("Array");
20
+ const result = generateTypeScriptDefinitions(schema);
21
+ expect(result).toContain("namespace JSX");
22
+ expect(result).toContain("type Element");
23
+ expect(result).toContain("type Node");
24
+ expect(result).toContain("interface IntrinsicElements");
25
+ expect(result).toContain("Math");
26
+ expect(result).toContain("String");
27
+ expect(result).toContain("Array");
30
28
  });
31
- (0, vitest_js_1.it)("should generate variadic parameters with array types", () => {
29
+ it("should generate variadic parameters with array types", () => {
32
30
  const schema = {
33
31
  data: {},
34
32
  elements: {},
35
33
  };
36
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
37
- (0, vitest_js_1.expect)(result).toContain("max(...values: number[]): number");
38
- (0, vitest_js_1.expect)(result).toContain("min(...values: number[]): number");
34
+ const result = generateTypeScriptDefinitions(schema);
35
+ expect(result).toContain("max(...values: number[]): number");
36
+ expect(result).toContain("min(...values: number[]): number");
39
37
  });
40
38
  });
41
- (0, vitest_js_1.describe)("element types generation", () => {
42
- (0, vitest_js_1.it)("should generate element with string prop", () => {
39
+ describe("element types generation", () => {
40
+ it("should generate element with string prop", () => {
43
41
  const schema = {
44
42
  data: {},
45
43
  elements: {
@@ -50,12 +48,12 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
50
48
  },
51
49
  },
52
50
  };
53
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
54
- (0, vitest_js_1.expect)(result).toContain("interface ButtonProps");
55
- (0, vitest_js_1.expect)(result).toContain("label: string");
56
- (0, vitest_js_1.expect)(result).toContain("const Button: (props: ButtonProps) => JSX.Element");
51
+ const result = generateTypeScriptDefinitions(schema);
52
+ expect(result).toContain("interface ButtonProps");
53
+ expect(result).toContain("label: string");
54
+ expect(result).toContain("const Button: (props: ButtonProps) => JSX.Element");
57
55
  });
58
- (0, vitest_js_1.it)("should generate element with multiple prop types", () => {
56
+ it("should generate element with multiple prop types", () => {
59
57
  const schema = {
60
58
  data: {},
61
59
  elements: {
@@ -69,14 +67,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
69
67
  },
70
68
  },
71
69
  };
72
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
73
- (0, vitest_js_1.expect)(result).toContain("interface InputProps");
74
- (0, vitest_js_1.expect)(result).toContain("name: string");
75
- (0, vitest_js_1.expect)(result).toContain("value?: string");
76
- (0, vitest_js_1.expect)(result).toContain("maxLength?: number");
77
- (0, vitest_js_1.expect)(result).toContain("disabled?: boolean");
70
+ const result = generateTypeScriptDefinitions(schema);
71
+ expect(result).toContain("interface InputProps");
72
+ expect(result).toContain("name: string");
73
+ expect(result).toContain("value?: string");
74
+ expect(result).toContain("maxLength?: number");
75
+ expect(result).toContain("disabled?: boolean");
78
76
  });
79
- (0, vitest_js_1.it)("should generate element with enum prop", () => {
77
+ it("should generate element with enum prop", () => {
80
78
  const schema = {
81
79
  data: {},
82
80
  elements: {
@@ -87,11 +85,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
87
85
  },
88
86
  },
89
87
  };
90
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
91
- (0, vitest_js_1.expect)(result).toContain("interface ButtonProps");
92
- (0, vitest_js_1.expect)(result).toContain('size?: "sm" | "md" | "lg"');
88
+ const result = generateTypeScriptDefinitions(schema);
89
+ expect(result).toContain("interface ButtonProps");
90
+ expect(result).toContain('size?: "sm" | "md" | "lg"');
93
91
  });
94
- (0, vitest_js_1.it)("should generate element with object prop", () => {
92
+ it("should generate element with object prop", () => {
95
93
  const schema = {
96
94
  data: {},
97
95
  elements: {
@@ -108,13 +106,13 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
108
106
  },
109
107
  },
110
108
  };
111
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
112
- (0, vitest_js_1.expect)(result).toContain("interface CardProps");
113
- (0, vitest_js_1.expect)(result).toContain("style?:");
114
- (0, vitest_js_1.expect)(result).toContain("color: string");
115
- (0, vitest_js_1.expect)(result).toContain("backgroundColor: string");
109
+ const result = generateTypeScriptDefinitions(schema);
110
+ expect(result).toContain("interface CardProps");
111
+ expect(result).toContain("style?:");
112
+ expect(result).toContain("color: string");
113
+ expect(result).toContain("backgroundColor: string");
116
114
  });
117
- (0, vitest_js_1.it)("should generate element with array prop", () => {
115
+ it("should generate element with array prop", () => {
118
116
  const schema = {
119
117
  data: {},
120
118
  elements: {
@@ -128,11 +126,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
128
126
  },
129
127
  },
130
128
  };
131
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
132
- (0, vitest_js_1.expect)(result).toContain("interface ListProps");
133
- (0, vitest_js_1.expect)(result).toContain("items?: string[]");
129
+ const result = generateTypeScriptDefinitions(schema);
130
+ expect(result).toContain("interface ListProps");
131
+ expect(result).toContain("items?: string[]");
134
132
  });
135
- (0, vitest_js_1.it)("should generate element with function prop", () => {
133
+ it("should generate element with function prop", () => {
136
134
  const schema = {
137
135
  data: {},
138
136
  elements: {
@@ -143,11 +141,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
143
141
  },
144
142
  },
145
143
  };
146
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
147
- (0, vitest_js_1.expect)(result).toContain("interface ButtonProps");
148
- (0, vitest_js_1.expect)(result).toContain("onClick?: (...args: any[]) => any");
144
+ const result = generateTypeScriptDefinitions(schema);
145
+ expect(result).toContain("interface ButtonProps");
146
+ expect(result).toContain("onClick?: (...args: any[]) => any");
149
147
  });
150
- (0, vitest_js_1.it)("should include children prop by default", () => {
148
+ it("should include children prop by default", () => {
151
149
  const schema = {
152
150
  data: {},
153
151
  elements: {
@@ -156,11 +154,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
156
154
  },
157
155
  },
158
156
  };
159
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
160
- (0, vitest_js_1.expect)(result).toContain("interface ContainerProps");
161
- (0, vitest_js_1.expect)(result).toContain("children?: JSX.Node");
157
+ const result = generateTypeScriptDefinitions(schema);
158
+ expect(result).toContain("interface ContainerProps");
159
+ expect(result).toContain("children?: JSX.Node");
162
160
  });
163
- (0, vitest_js_1.it)("should exclude children prop when content is false", () => {
161
+ it("should exclude children prop when content is false", () => {
164
162
  const schema = {
165
163
  data: {},
166
164
  elements: {
@@ -170,11 +168,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
170
168
  },
171
169
  },
172
170
  };
173
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
174
- (0, vitest_js_1.expect)(result).toContain("interface InputProps");
175
- (0, vitest_js_1.expect)(result).not.toContain("children");
171
+ const result = generateTypeScriptDefinitions(schema);
172
+ expect(result).toContain("interface InputProps");
173
+ expect(result).not.toContain("children");
176
174
  });
177
- (0, vitest_js_1.it)("should include element description as JSDoc", () => {
175
+ it("should include element description as JSDoc", () => {
178
176
  const schema = {
179
177
  data: {},
180
178
  elements: {
@@ -186,11 +184,11 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
186
184
  },
187
185
  },
188
186
  };
189
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
190
- (0, vitest_js_1.expect)(result).toContain("A clickable button element");
191
- (0, vitest_js_1.expect)(result).toContain("The button text");
187
+ const result = generateTypeScriptDefinitions(schema);
188
+ expect(result).toContain("A clickable button element");
189
+ expect(result).toContain("The button text");
192
190
  });
193
- (0, vitest_js_1.it)("should generate multiple components", () => {
191
+ it("should generate multiple components", () => {
194
192
  const schema = {
195
193
  data: {},
196
194
  elements: {
@@ -205,28 +203,28 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
205
203
  },
206
204
  },
207
205
  };
208
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
209
- (0, vitest_js_1.expect)(result).toContain("interface ButtonProps");
210
- (0, vitest_js_1.expect)(result).toContain("interface InputProps");
211
- (0, vitest_js_1.expect)(result).toContain("interface ContainerProps");
212
- (0, vitest_js_1.expect)(result).toContain("const Button: (props: ButtonProps) => JSX.Element");
213
- (0, vitest_js_1.expect)(result).toContain("const Input: (props: InputProps) => JSX.Element");
214
- (0, vitest_js_1.expect)(result).toContain("const Container: (props: ContainerProps) => JSX.Element");
206
+ const result = generateTypeScriptDefinitions(schema);
207
+ expect(result).toContain("interface ButtonProps");
208
+ expect(result).toContain("interface InputProps");
209
+ expect(result).toContain("interface ContainerProps");
210
+ expect(result).toContain("const Button: (props: ButtonProps) => JSX.Element");
211
+ expect(result).toContain("const Input: (props: InputProps) => JSX.Element");
212
+ expect(result).toContain("const Container: (props: ContainerProps) => JSX.Element");
215
213
  });
216
214
  });
217
- (0, vitest_js_1.describe)("data types generation", () => {
218
- (0, vitest_js_1.it)("should generate data with string property", () => {
215
+ describe("data types generation", () => {
216
+ it("should generate data with string property", () => {
219
217
  const schema = {
220
218
  data: {
221
219
  userName: { type: "string" },
222
220
  },
223
221
  elements: {},
224
222
  };
225
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
226
- (0, vitest_js_1.expect)(result).toContain("const data:");
227
- (0, vitest_js_1.expect)(result).toContain("userName: string");
223
+ const result = generateTypeScriptDefinitions(schema);
224
+ expect(result).toContain("const data:");
225
+ expect(result).toContain("userName: string");
228
226
  });
229
- (0, vitest_js_1.it)("should generate data with multiple property types", () => {
227
+ it("should generate data with multiple property types", () => {
230
228
  const schema = {
231
229
  data: {
232
230
  name: { type: "string" },
@@ -235,13 +233,13 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
235
233
  },
236
234
  elements: {},
237
235
  };
238
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
239
- (0, vitest_js_1.expect)(result).toContain("const data:");
240
- (0, vitest_js_1.expect)(result).toContain("name: string");
241
- (0, vitest_js_1.expect)(result).toContain("age: number");
242
- (0, vitest_js_1.expect)(result).toContain("active: boolean");
236
+ const result = generateTypeScriptDefinitions(schema);
237
+ expect(result).toContain("const data:");
238
+ expect(result).toContain("name: string");
239
+ expect(result).toContain("age: number");
240
+ expect(result).toContain("active: boolean");
243
241
  });
244
- (0, vitest_js_1.it)("should generate data with object property", () => {
242
+ it("should generate data with object property", () => {
245
243
  const schema = {
246
244
  data: {
247
245
  user: {
@@ -254,13 +252,13 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
254
252
  },
255
253
  elements: {},
256
254
  };
257
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
258
- (0, vitest_js_1.expect)(result).toContain("const data:");
259
- (0, vitest_js_1.expect)(result).toContain("user:");
260
- (0, vitest_js_1.expect)(result).toContain("name: string");
261
- (0, vitest_js_1.expect)(result).toContain("email: string");
255
+ const result = generateTypeScriptDefinitions(schema);
256
+ expect(result).toContain("const data:");
257
+ expect(result).toContain("user:");
258
+ expect(result).toContain("name: string");
259
+ expect(result).toContain("email: string");
262
260
  });
263
- (0, vitest_js_1.it)("should generate data with nested object properties", () => {
261
+ it("should generate data with nested object properties", () => {
264
262
  const schema = {
265
263
  data: {
266
264
  user: {
@@ -279,14 +277,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
279
277
  },
280
278
  elements: {},
281
279
  };
282
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
283
- (0, vitest_js_1.expect)(result).toContain("const data:");
284
- (0, vitest_js_1.expect)(result).toContain("user:");
285
- (0, vitest_js_1.expect)(result).toContain("profile:");
286
- (0, vitest_js_1.expect)(result).toContain("avatar: string");
287
- (0, vitest_js_1.expect)(result).toContain("bio: string");
280
+ const result = generateTypeScriptDefinitions(schema);
281
+ expect(result).toContain("const data:");
282
+ expect(result).toContain("user:");
283
+ expect(result).toContain("profile:");
284
+ expect(result).toContain("avatar: string");
285
+ expect(result).toContain("bio: string");
288
286
  });
289
- (0, vitest_js_1.it)("should generate data with array of primitives", () => {
287
+ it("should generate data with array of primitives", () => {
290
288
  const schema = {
291
289
  data: {
292
290
  tags: {
@@ -300,12 +298,12 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
300
298
  },
301
299
  elements: {},
302
300
  };
303
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
304
- (0, vitest_js_1.expect)(result).toContain("const data:");
305
- (0, vitest_js_1.expect)(result).toContain("tags: string[]");
306
- (0, vitest_js_1.expect)(result).toContain("scores: number[]");
301
+ const result = generateTypeScriptDefinitions(schema);
302
+ expect(result).toContain("const data:");
303
+ expect(result).toContain("tags: string[]");
304
+ expect(result).toContain("scores: number[]");
307
305
  });
308
- (0, vitest_js_1.it)("should generate data with array of objects", () => {
306
+ it("should generate data with array of objects", () => {
309
307
  const schema = {
310
308
  data: {
311
309
  users: {
@@ -321,14 +319,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
321
319
  },
322
320
  elements: {},
323
321
  };
324
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
325
- (0, vitest_js_1.expect)(result).toContain("const data:");
326
- (0, vitest_js_1.expect)(result).toContain("users:");
327
- (0, vitest_js_1.expect)(result).toContain("name: string");
328
- (0, vitest_js_1.expect)(result).toContain("age: number");
329
- (0, vitest_js_1.expect)(result).toContain("[]");
322
+ const result = generateTypeScriptDefinitions(schema);
323
+ expect(result).toContain("const data:");
324
+ expect(result).toContain("users:");
325
+ expect(result).toContain("name: string");
326
+ expect(result).toContain("age: number");
327
+ expect(result).toContain("[]");
330
328
  });
331
- (0, vitest_js_1.it)("should include data property descriptions as JSDoc", () => {
329
+ it("should include data property descriptions as JSDoc", () => {
332
330
  const schema = {
333
331
  data: {
334
332
  userName: { type: "string", description: "The current user's name" },
@@ -342,12 +340,12 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
342
340
  },
343
341
  elements: {},
344
342
  };
345
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
346
- (0, vitest_js_1.expect)(result).toContain("The current user's name");
347
- (0, vitest_js_1.expect)(result).toContain("User preferences");
348
- (0, vitest_js_1.expect)(result).toContain("UI theme preference");
343
+ const result = generateTypeScriptDefinitions(schema);
344
+ expect(result).toContain("The current user's name");
345
+ expect(result).toContain("User preferences");
346
+ expect(result).toContain("UI theme preference");
349
347
  });
350
- (0, vitest_js_1.it)("should generate data with enum values", () => {
348
+ it("should generate data with enum values", () => {
351
349
  const schema = {
352
350
  data: {
353
351
  status: { type: "string", enum: ["pending", "active", "completed"] },
@@ -355,14 +353,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
355
353
  },
356
354
  elements: {},
357
355
  };
358
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
359
- (0, vitest_js_1.expect)(result).toContain("const data:");
360
- (0, vitest_js_1.expect)(result).toContain('status: "pending" | "active" | "completed"');
361
- (0, vitest_js_1.expect)(result).toContain("priority: 1 | 2 | 3");
356
+ const result = generateTypeScriptDefinitions(schema);
357
+ expect(result).toContain("const data:");
358
+ expect(result).toContain('status: "pending" | "active" | "completed"');
359
+ expect(result).toContain("priority: 1 | 2 | 3");
362
360
  });
363
361
  });
364
- (0, vitest_js_1.describe)("combined schema", () => {
365
- (0, vitest_js_1.it)("should generate definitions for both components and data", () => {
362
+ describe("combined schema", () => {
363
+ it("should generate definitions for both components and data", () => {
366
364
  const schema = {
367
365
  data: {
368
366
  userName: { type: "string" },
@@ -381,17 +379,17 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
381
379
  },
382
380
  },
383
381
  };
384
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
385
- (0, vitest_js_1.expect)(result).toContain("const data:");
386
- (0, vitest_js_1.expect)(result).toContain("userName: string");
387
- (0, vitest_js_1.expect)(result).toContain("count: number");
388
- (0, vitest_js_1.expect)(result).toContain("interface DisplayProps");
389
- (0, vitest_js_1.expect)(result).toContain("interface CounterProps");
390
- (0, vitest_js_1.expect)(result).toContain("const Display: (props: DisplayProps) => JSX.Element");
391
- (0, vitest_js_1.expect)(result).toContain("const Counter: (props: CounterProps) => JSX.Element");
392
- (0, vitest_js_1.expect)(result).toContain("namespace JSX");
382
+ const result = generateTypeScriptDefinitions(schema);
383
+ expect(result).toContain("const data:");
384
+ expect(result).toContain("userName: string");
385
+ expect(result).toContain("count: number");
386
+ expect(result).toContain("interface DisplayProps");
387
+ expect(result).toContain("interface CounterProps");
388
+ expect(result).toContain("const Display: (props: DisplayProps) => JSX.Element");
389
+ expect(result).toContain("const Counter: (props: CounterProps) => JSX.Element");
390
+ expect(result).toContain("namespace JSX");
393
391
  });
394
- (0, vitest_js_1.it)("should generate valid TypeScript that can be parsed", () => {
392
+ it("should generate valid TypeScript that can be parsed", () => {
395
393
  const schema = {
396
394
  data: {
397
395
  user: {
@@ -444,37 +442,37 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
444
442
  },
445
443
  },
446
444
  };
447
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
448
- (0, vitest_js_1.expect)(result).toContain("declare global");
449
- (0, vitest_js_1.expect)(result).toContain("export {};");
450
- (0, vitest_js_1.expect)(result).toContain("const data:");
451
- (0, vitest_js_1.expect)(result).toContain("user:");
452
- (0, vitest_js_1.expect)(result).toContain("name: string");
453
- (0, vitest_js_1.expect)(result).toContain("email: string");
454
- (0, vitest_js_1.expect)(result).toContain("settings:");
455
- (0, vitest_js_1.expect)(result).toContain('theme: "light" | "dark"');
456
- (0, vitest_js_1.expect)(result).toContain("notifications: boolean");
457
- (0, vitest_js_1.expect)(result).toContain("items:");
458
- (0, vitest_js_1.expect)(result).toContain("id: number");
459
- (0, vitest_js_1.expect)(result).toContain("tags: string[]");
460
- (0, vitest_js_1.expect)(result).toContain("interface CardProps");
461
- (0, vitest_js_1.expect)(result).toContain("title: string");
462
- (0, vitest_js_1.expect)(result).toContain("subtitle?: string");
463
- (0, vitest_js_1.expect)(result).toContain('variant?: "default" | "outlined" | "filled"');
464
- (0, vitest_js_1.expect)(result).toContain("onClick?: (...args: any[]) => any");
465
- (0, vitest_js_1.expect)(result).toContain("children?: JSX.Node");
466
- (0, vitest_js_1.expect)(result).toContain("A card element for displaying content");
467
- (0, vitest_js_1.expect)(result).toContain("interface ListProps");
468
- (0, vitest_js_1.expect)(result).toContain("items?: string[]");
469
- (0, vitest_js_1.expect)(result).not.toMatch(/interface ListProps\s*{[^}]*children/);
470
- (0, vitest_js_1.expect)(result).toContain("namespace JSX");
471
- (0, vitest_js_1.expect)(result).toContain("Math");
472
- (0, vitest_js_1.expect)(result).toContain("const Card: (props: CardProps) => JSX.Element");
473
- (0, vitest_js_1.expect)(result).toContain("const List: (props: ListProps) => JSX.Element");
445
+ const result = generateTypeScriptDefinitions(schema);
446
+ expect(result).toContain("declare global");
447
+ expect(result).toContain("export {};");
448
+ expect(result).toContain("const data:");
449
+ expect(result).toContain("user:");
450
+ expect(result).toContain("name: string");
451
+ expect(result).toContain("email: string");
452
+ expect(result).toContain("settings:");
453
+ expect(result).toContain('theme: "light" | "dark"');
454
+ expect(result).toContain("notifications: boolean");
455
+ expect(result).toContain("items:");
456
+ expect(result).toContain("id: number");
457
+ expect(result).toContain("tags: string[]");
458
+ expect(result).toContain("interface CardProps");
459
+ expect(result).toContain("title: string");
460
+ expect(result).toContain("subtitle?: string");
461
+ expect(result).toContain('variant?: "default" | "outlined" | "filled"');
462
+ expect(result).toContain("onClick?: (...args: any[]) => any");
463
+ expect(result).toContain("children?: JSX.Node");
464
+ expect(result).toContain("A card element for displaying content");
465
+ expect(result).toContain("interface ListProps");
466
+ expect(result).toContain("items?: string[]");
467
+ expect(result).not.toMatch(/interface ListProps\s*{[^}]*children/);
468
+ expect(result).toContain("namespace JSX");
469
+ expect(result).toContain("Math");
470
+ expect(result).toContain("const Card: (props: CardProps) => JSX.Element");
471
+ expect(result).toContain("const List: (props: ListProps) => JSX.Element");
474
472
  });
475
473
  });
476
- (0, vitest_js_1.describe)("edge cases", () => {
477
- (0, vitest_js_1.it)("should handle empty props object", () => {
474
+ describe("edge cases", () => {
475
+ it("should handle empty props object", () => {
478
476
  const schema = {
479
477
  data: {},
480
478
  elements: {
@@ -483,12 +481,12 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
483
481
  },
484
482
  },
485
483
  };
486
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
487
- (0, vitest_js_1.expect)(result).toContain("interface DividerProps");
488
- (0, vitest_js_1.expect)(result).toContain("children?: JSX.Node");
489
- (0, vitest_js_1.expect)(result).toContain("const Divider: (props: DividerProps) => JSX.Element");
484
+ const result = generateTypeScriptDefinitions(schema);
485
+ expect(result).toContain("interface DividerProps");
486
+ expect(result).toContain("children?: JSX.Node");
487
+ expect(result).toContain("const Divider: (props: DividerProps) => JSX.Element");
490
488
  });
491
- (0, vitest_js_1.it)("should handle element with only required props", () => {
489
+ it("should handle element with only required props", () => {
492
490
  const schema = {
493
491
  data: {},
494
492
  elements: {
@@ -500,14 +498,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
500
498
  },
501
499
  },
502
500
  };
503
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
504
- (0, vitest_js_1.expect)(result).toContain("interface LabelProps");
505
- (0, vitest_js_1.expect)(result).toContain("text: string");
506
- (0, vitest_js_1.expect)(result).toContain("id: string");
507
- (0, vitest_js_1.expect)(result).not.toMatch(/text\?:/);
508
- (0, vitest_js_1.expect)(result).not.toMatch(/id\?:/);
501
+ const result = generateTypeScriptDefinitions(schema);
502
+ expect(result).toContain("interface LabelProps");
503
+ expect(result).toContain("text: string");
504
+ expect(result).toContain("id: string");
505
+ expect(result).not.toMatch(/text\?:/);
506
+ expect(result).not.toMatch(/id\?:/);
509
507
  });
510
- (0, vitest_js_1.it)("should handle deeply nested object structures", () => {
508
+ it("should handle deeply nested object structures", () => {
511
509
  const schema = {
512
510
  data: {
513
511
  config: {
@@ -534,14 +532,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
534
532
  },
535
533
  elements: {},
536
534
  };
537
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
538
- (0, vitest_js_1.expect)(result).toContain("config:");
539
- (0, vitest_js_1.expect)(result).toContain("level1:");
540
- (0, vitest_js_1.expect)(result).toContain("level2:");
541
- (0, vitest_js_1.expect)(result).toContain("level3:");
542
- (0, vitest_js_1.expect)(result).toContain("value: string");
535
+ const result = generateTypeScriptDefinitions(schema);
536
+ expect(result).toContain("config:");
537
+ expect(result).toContain("level1:");
538
+ expect(result).toContain("level2:");
539
+ expect(result).toContain("level3:");
540
+ expect(result).toContain("value: string");
543
541
  });
544
- (0, vitest_js_1.it)("should handle array of arrays", () => {
542
+ it("should handle array of arrays", () => {
545
543
  const schema = {
546
544
  data: {
547
545
  matrix: {
@@ -554,10 +552,10 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
554
552
  },
555
553
  elements: {},
556
554
  };
557
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
558
- (0, vitest_js_1.expect)(result).toContain("matrix: number[][]");
555
+ const result = generateTypeScriptDefinitions(schema);
556
+ expect(result).toContain("matrix: number[][]");
559
557
  });
560
- (0, vitest_js_1.it)("should handle mixed required and optional props", () => {
558
+ it("should handle mixed required and optional props", () => {
561
559
  const schema = {
562
560
  data: {},
563
561
  elements: {
@@ -573,14 +571,14 @@ const generate_typescript_definitions_js_1 = require("./generate-typescript-defi
573
571
  },
574
572
  },
575
573
  };
576
- const result = (0, generate_typescript_definitions_js_1.generateTypeScriptDefinitions)(schema);
577
- (0, vitest_js_1.expect)(result).toContain("interface FormProps");
578
- (0, vitest_js_1.expect)(result).toContain("id: string");
579
- (0, vitest_js_1.expect)(result).toContain("name: string");
580
- (0, vitest_js_1.expect)(result).toContain("title?: string");
581
- (0, vitest_js_1.expect)(result).toContain("description?: string");
582
- (0, vitest_js_1.expect)(result).toContain("onSubmit: (...args: any[]) => any");
583
- (0, vitest_js_1.expect)(result).toContain("onCancel?: (...args: any[]) => any");
574
+ const result = generateTypeScriptDefinitions(schema);
575
+ expect(result).toContain("interface FormProps");
576
+ expect(result).toContain("id: string");
577
+ expect(result).toContain("name: string");
578
+ expect(result).toContain("title?: string");
579
+ expect(result).toContain("description?: string");
580
+ expect(result).toContain("onSubmit: (...args: any[]) => any");
581
+ expect(result).toContain("onCancel?: (...args: any[]) => any");
584
582
  });
585
583
  });
586
584
  });