jsxpression 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +368 -0
  3. package/lib/analyze/analysis-error.d.ts.map +1 -0
  4. package/lib/analyze/analysis-report.d.ts +33 -0
  5. package/lib/analyze/analysis-report.d.ts.map +1 -0
  6. package/lib/analyze/analysis-report.js +194 -0
  7. package/lib/analyze/analysis-report.js.map +1 -0
  8. package/lib/analyze/analyze.d.ts.map +1 -0
  9. package/lib/analyze/analyze.test.d.ts.map +1 -0
  10. package/lib/analyze/analyze.test.js +765 -0
  11. package/lib/analyze/analyze.test.js.map +1 -0
  12. package/lib/analyze/data/analyze.d.ts.map +1 -0
  13. package/lib/analyze/data/data-access.d.ts.map +1 -0
  14. package/lib/analyze/data/index.d.ts.map +1 -0
  15. package/lib/analyze/data/method-calls.d.ts.map +1 -0
  16. package/lib/analyze/data/utils.d.ts.map +1 -0
  17. package/lib/analyze/index.d.ts.map +1 -0
  18. package/lib/analyze/jsx/analyze.d.ts.map +1 -0
  19. package/lib/analyze/jsx/element-attributes.d.ts.map +1 -0
  20. package/lib/analyze/jsx/element-attributes.js +89 -0
  21. package/lib/analyze/jsx/element-attributes.js.map +1 -0
  22. package/lib/analyze/jsx/element-children.d.ts.map +1 -0
  23. package/lib/analyze/jsx/element-tags.d.ts.map +1 -0
  24. package/lib/analyze/jsx/index.d.ts.map +1 -0
  25. package/lib/analyze/security/analyze.d.ts.map +1 -0
  26. package/lib/analyze/security/call-expressions.d.ts.map +1 -0
  27. package/lib/analyze/security/declarations.d.ts.map +1 -0
  28. package/lib/analyze/security/expressions.d.ts.map +1 -0
  29. package/lib/analyze/security/identifiers.d.ts.map +1 -0
  30. package/lib/analyze/security/index.d.ts.map +1 -0
  31. package/lib/analyze/security/member-access.d.ts.map +1 -0
  32. package/lib/builtins.d.ts +50 -0
  33. package/lib/builtins.d.ts.map +1 -0
  34. package/lib/builtins.js +1065 -0
  35. package/lib/builtins.js.map +1 -0
  36. package/lib/codegen/builtin-types.d.ts +11 -0
  37. package/lib/codegen/builtin-types.d.ts.map +1 -0
  38. package/lib/codegen/builtin-types.js +151 -0
  39. package/lib/codegen/builtin-types.js.map +1 -0
  40. package/lib/codegen/builtins/builtin-types.d.ts +2 -0
  41. package/lib/codegen/builtins/builtin-types.d.ts.map +1 -0
  42. package/lib/codegen/builtins/builtin-types.js +143 -0
  43. package/lib/codegen/builtins/builtin-types.js.map +1 -0
  44. package/lib/codegen/builtins/index.d.ts +2 -0
  45. package/lib/codegen/builtins/index.d.ts.map +1 -0
  46. package/lib/codegen/builtins/index.js +6 -0
  47. package/lib/codegen/builtins/index.js.map +1 -0
  48. package/lib/codegen/declare-types.d.ts +20 -0
  49. package/lib/codegen/declare-types.d.ts.map +1 -0
  50. package/lib/codegen/declare-types.js +299 -0
  51. package/lib/codegen/declare-types.js.map +1 -0
  52. package/lib/codegen/generate-typescript-definitions.d.ts +31 -0
  53. package/lib/codegen/generate-typescript-definitions.d.ts.map +1 -0
  54. package/lib/codegen/generate-typescript-definitions.js +37 -0
  55. package/lib/codegen/generate-typescript-definitions.js.map +1 -0
  56. package/lib/codegen/generate-typescript-definitions.test.d.ts +2 -0
  57. package/lib/codegen/generate-typescript-definitions.test.d.ts.map +1 -0
  58. package/lib/codegen/generate-typescript-definitions.test.js +587 -0
  59. package/lib/codegen/generate-typescript-definitions.test.js.map +1 -0
  60. package/lib/codegen/index.d.ts +2 -0
  61. package/lib/codegen/index.d.ts.map +1 -0
  62. package/lib/codegen/index.js +6 -0
  63. package/lib/codegen/index.js.map +1 -0
  64. package/lib/codegen/schema/component-types.d.ts +3 -0
  65. package/lib/codegen/schema/component-types.d.ts.map +1 -0
  66. package/lib/codegen/schema/component-types.js +118 -0
  67. package/lib/codegen/schema/component-types.js.map +1 -0
  68. package/lib/codegen/schema/data-types.d.ts +3 -0
  69. package/lib/codegen/schema/data-types.d.ts.map +1 -0
  70. package/lib/codegen/schema/data-types.js +98 -0
  71. package/lib/codegen/schema/data-types.js.map +1 -0
  72. package/lib/codegen/schema/index.d.ts +3 -0
  73. package/lib/codegen/schema/index.d.ts.map +1 -0
  74. package/lib/codegen/schema/index.js +8 -0
  75. package/lib/codegen/schema/index.js.map +1 -0
  76. package/lib/codegen/schema/utils.d.ts +4 -0
  77. package/lib/codegen/schema/utils.d.ts.map +1 -0
  78. package/lib/codegen/schema/utils.js +103 -0
  79. package/lib/codegen/schema/utils.js.map +1 -0
  80. package/lib/codegen/schema-to-types.d.ts +14 -0
  81. package/lib/codegen/schema-to-types.d.ts.map +1 -0
  82. package/lib/codegen/schema-to-types.js +203 -0
  83. package/lib/codegen/schema-to-types.js.map +1 -0
  84. package/lib/compile/compile.d.ts.map +1 -0
  85. package/lib/compile/compile.js +245 -0
  86. package/lib/compile/compile.js.map +1 -0
  87. package/lib/compile/compile.test.d.ts.map +1 -0
  88. package/lib/compile/compile.test.js +148 -0
  89. package/lib/compile/compile.test.js.map +1 -0
  90. package/lib/evaluate/evaluate.d.ts +26 -0
  91. package/lib/evaluate/evaluate.d.ts.map +1 -0
  92. package/lib/evaluate/evaluate.js +40 -0
  93. package/lib/evaluate/evaluation-error.d.ts +4 -0
  94. package/lib/evaluate/evaluation-error.d.ts.map +1 -0
  95. package/lib/evaluate/evaluation-error.js +6 -0
  96. package/lib/index.d.ts +8 -0
  97. package/lib/index.d.ts.map +1 -0
  98. package/lib/index.js +16 -0
  99. package/lib/index.js.map +1 -0
  100. package/lib/render.d.ts +58 -0
  101. package/lib/render.d.ts.map +1 -0
  102. package/lib/render.js +52 -0
  103. package/lib/render.test.d.ts.map +1 -0
  104. package/lib/schema.d.ts +68 -0
  105. package/lib/schema.d.ts.map +1 -0
  106. package/lib/schema.js +106 -0
  107. package/lib/validate.d.ts +41 -0
  108. package/lib/validate.d.ts.map +1 -0
  109. package/lib/validate.js +42 -0
  110. package/package.json +27 -0
  111. package/src/analyze/analysis-error.ts +26 -0
  112. package/src/analyze/analysis-report.ts +228 -0
  113. package/src/analyze/analyze.test.ts +829 -0
  114. package/src/analyze/analyze.ts +10 -0
  115. package/src/analyze/data/analyze.ts +15 -0
  116. package/src/analyze/data/data-access.ts +349 -0
  117. package/src/analyze/data/index.ts +1 -0
  118. package/src/analyze/data/method-calls.ts +96 -0
  119. package/src/analyze/data/utils.ts +329 -0
  120. package/src/analyze/index.ts +3 -0
  121. package/src/analyze/jsx/analyze.ts +17 -0
  122. package/src/analyze/jsx/element-attributes.ts +143 -0
  123. package/src/analyze/jsx/element-children.ts +97 -0
  124. package/src/analyze/jsx/element-tags.ts +55 -0
  125. package/src/analyze/jsx/index.ts +1 -0
  126. package/src/analyze/security/analyze.ts +21 -0
  127. package/src/analyze/security/call-expressions.ts +41 -0
  128. package/src/analyze/security/declarations.ts +67 -0
  129. package/src/analyze/security/expressions.ts +100 -0
  130. package/src/analyze/security/identifiers.ts +113 -0
  131. package/src/analyze/security/index.ts +1 -0
  132. package/src/analyze/security/member-access.ts +35 -0
  133. package/src/analyze/utils.ts +118 -0
  134. package/src/analyze/validation-context.ts +32 -0
  135. package/src/builtins.ts +1149 -0
  136. package/src/codegen/builtins/builtin-types.ts +174 -0
  137. package/src/codegen/builtins/index.ts +1 -0
  138. package/src/codegen/generate-typescript-definitions.test.ts +676 -0
  139. package/src/codegen/generate-typescript-definitions.ts +35 -0
  140. package/src/codegen/index.ts +1 -0
  141. package/src/codegen/schema/component-types.ts +140 -0
  142. package/src/codegen/schema/data-types.ts +109 -0
  143. package/src/codegen/schema/index.ts +2 -0
  144. package/src/codegen/schema/utils.ts +111 -0
  145. package/src/compile/compilation-error.ts +37 -0
  146. package/src/compile/compile.test.ts +180 -0
  147. package/src/compile/compile.ts +282 -0
  148. package/src/compile/index.ts +2 -0
  149. package/src/evaluate/evaluate.test.ts +316 -0
  150. package/src/evaluate/evaluate.ts +81 -0
  151. package/src/evaluate/evaluation-error.ts +6 -0
  152. package/src/evaluate/index.ts +2 -0
  153. package/src/index.ts +10 -0
  154. package/src/jsx.ts +161 -0
  155. package/src/parse/index.ts +2 -0
  156. package/src/parse/parse-error.ts +14 -0
  157. package/src/parse/parse.test.ts +99 -0
  158. package/src/parse/parse.ts +40 -0
  159. package/src/render.test.ts +425 -0
  160. package/src/render.ts +75 -0
  161. package/src/schema.ts +195 -0
  162. package/src/traverse.test.ts +104 -0
  163. package/src/traverse.ts +78 -0
  164. package/src/types.ts +17 -0
  165. package/src/validate.ts +59 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.declareComponentTypes = declareComponentTypes;
4
+ const utils_js_1 = require("./utils.js");
5
+ function declareComponentTypes(schema) {
6
+ let output = `declare global {\n`;
7
+ if (schema.elements) {
8
+ Object.entries(schema.elements).forEach(([elementName, element]) => {
9
+ const interfaceName = `${elementName}Props`;
10
+ output += generatePropsInterface(interfaceName, element, " ");
11
+ output += "\n";
12
+ });
13
+ }
14
+ if (schema.elements) {
15
+ Object.entries(schema.elements).forEach(([elementName, element]) => {
16
+ const interfaceName = `${elementName}Props`;
17
+ const componentComment = generateComponentComment(elementName, element, " ");
18
+ if (componentComment) {
19
+ output += componentComment;
20
+ }
21
+ output += ` const ${elementName}: (props: ${interfaceName}) => JSX.Element;\n\n`;
22
+ });
23
+ }
24
+ output += `}\n\n`;
25
+ output += `export {};\n`;
26
+ return output;
27
+ }
28
+ function generatePropsInterface(interfaceName, element, indent = "") {
29
+ let output = `${indent}interface ${interfaceName} {\n`;
30
+ Object.entries(element.props || {}).forEach(([propName, prop]) => {
31
+ const optional = prop.required ? "" : "?";
32
+ const type = (0, utils_js_1.mapSchemaTypeToTypeScript)(prop);
33
+ const comment = generatePropComment(prop, `${indent} `);
34
+ if (comment) {
35
+ output += comment;
36
+ }
37
+ output += `${indent} ${propName}${optional}: ${type};\n`;
38
+ });
39
+ if (element.content !== false) {
40
+ output += `${indent} children?: JSX.Node;\n`;
41
+ }
42
+ output += `${indent}}\n`;
43
+ return output;
44
+ }
45
+ function generateComponentComment(elementName, element, indent = "") {
46
+ const comments = [];
47
+ if (element.description) {
48
+ comments.push(element.description);
49
+ }
50
+ else if (element.doc) {
51
+ comments.push(element.doc);
52
+ }
53
+ else {
54
+ comments.push(`${elementName} component`);
55
+ }
56
+ if (element.props && Object.keys(element.props).length > 0) {
57
+ comments.push("");
58
+ comments.push(`@param props Component props`);
59
+ Object.entries(element.props).forEach(([propName, prop]) => {
60
+ if (prop.description) {
61
+ comments.push(`@param props.${propName} ${prop.description}`);
62
+ }
63
+ });
64
+ }
65
+ comments.push("");
66
+ comments.push(`@returns JSX.Element`);
67
+ if (element.examples && element.examples.length > 0) {
68
+ comments.push("");
69
+ comments.push("@example");
70
+ element.examples.forEach((example) => {
71
+ comments.push(example);
72
+ });
73
+ }
74
+ if (comments.length === 0) {
75
+ return "";
76
+ }
77
+ if (comments.length === 1 && comments[0] && !comments[0].includes("\n")) {
78
+ return `${indent}/** ${comments[0]} */\n`;
79
+ }
80
+ let output = `${indent}/**\n`;
81
+ comments.forEach((comment) => {
82
+ if (comment === "") {
83
+ output += `${indent} *\n`;
84
+ }
85
+ else {
86
+ comment.split("\n").forEach((line) => {
87
+ output += `${indent} * ${line}\n`;
88
+ });
89
+ }
90
+ });
91
+ output += `${indent} */\n`;
92
+ return output;
93
+ }
94
+ function generatePropComment(prop, indent) {
95
+ const comments = [];
96
+ if (prop.description) {
97
+ comments.push(prop.description);
98
+ }
99
+ if (prop.default !== undefined) {
100
+ comments.push(`@default ${JSON.stringify(prop.default)}`);
101
+ }
102
+ if (prop.type === "enum" && prop.values) {
103
+ comments.push(`@values ${prop.values.map((v) => `"${v}"`).join(", ")}`);
104
+ }
105
+ if (comments.length === 0) {
106
+ return "";
107
+ }
108
+ if (comments.length === 1) {
109
+ return `${indent}/** ${comments[0]} */\n`;
110
+ }
111
+ let output = `${indent}/**\n`;
112
+ comments.forEach((comment) => {
113
+ output += `${indent} * ${comment}\n`;
114
+ });
115
+ output += `${indent} */\n`;
116
+ return output;
117
+ }
118
+ //# sourceMappingURL=component-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-types.js","sourceRoot":"","sources":["../../../src/codegen/schema/component-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Schema } from "../../schema.js";
2
+ export declare function declareDataTypes(schema: Schema): string;
3
+ //# sourceMappingURL=data-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-types.d.ts","sourceRoot":"","sources":["../../../src/codegen/schema/data-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBvD"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.declareDataTypes = declareDataTypes;
4
+ const utils_js_1 = require("./utils.js");
5
+ function declareDataTypes(schema) {
6
+ let output = `declare global {\n`;
7
+ if (schema.data) {
8
+ output += generateDataObjectComment(schema.data, " ");
9
+ output += ` const data: {\n`;
10
+ Object.entries(schema.data).forEach(([dataKey, dataSchema]) => {
11
+ output += generateNestedPropertyJSDoc(dataKey, dataSchema, " ");
12
+ const type = (0, utils_js_1.mapSchemaTypeToTypeScript)(dataSchema);
13
+ const indentedType = type.includes("\n") ? type.replace(/\n/g, "\n ").replace(/\n {4}$/, "\n ") : type;
14
+ output += ` ${dataKey}: ${indentedType};\n`;
15
+ });
16
+ output += ` };\n`;
17
+ }
18
+ output += `}\n\n`;
19
+ output += `export {};\n`;
20
+ return output;
21
+ }
22
+ function generateNestedPropertyJSDoc(propertyName, propertySchema, indent = "") {
23
+ const comments = [];
24
+ if (propertySchema.description) {
25
+ comments.push(propertySchema.description);
26
+ }
27
+ else {
28
+ const desc = propertyName.charAt(0).toUpperCase() +
29
+ propertyName
30
+ .slice(1)
31
+ .replace(/([A-Z])/g, " $1")
32
+ .toLowerCase();
33
+ comments.push(desc);
34
+ }
35
+ let hasNestedProperties = false;
36
+ if (propertySchema.type === "object" && propertySchema.shape) {
37
+ comments.push("");
38
+ Object.entries(propertySchema.shape).forEach(([key, value]) => {
39
+ if (value.description) {
40
+ comments.push(`@property ${key} ${value.description}`);
41
+ hasNestedProperties = true;
42
+ }
43
+ });
44
+ }
45
+ else if (propertySchema.type === "array" && propertySchema.shape?.type === "object" && propertySchema.shape.shape) {
46
+ comments.push("");
47
+ Object.entries(propertySchema.shape.shape).forEach(([key, value]) => {
48
+ if (value.description) {
49
+ comments.push(`@property ${key} ${value.description}`);
50
+ hasNestedProperties = true;
51
+ }
52
+ });
53
+ }
54
+ if (comments.length === 1 && !hasNestedProperties) {
55
+ return `${indent}/** ${comments[0]} */\n`;
56
+ }
57
+ let output = `${indent}/**\n`;
58
+ comments.forEach((comment) => {
59
+ if (comment === "") {
60
+ output += `${indent} *\n`;
61
+ }
62
+ else {
63
+ output += `${indent} * ${comment}\n`;
64
+ }
65
+ });
66
+ output += `${indent} */\n`;
67
+ return output;
68
+ }
69
+ function generateDataObjectComment(dataSchema, indent = "") {
70
+ const comments = [];
71
+ comments.push("Data object for JSX expressions");
72
+ comments.push("");
73
+ Object.entries(dataSchema).forEach(([dataKey, schema]) => {
74
+ if (schema.description) {
75
+ comments.push(`@property ${dataKey} ${schema.description}`);
76
+ }
77
+ else {
78
+ const desc = dataKey.charAt(0).toUpperCase() +
79
+ dataKey
80
+ .slice(1)
81
+ .replace(/([A-Z])/g, " $1")
82
+ .toLowerCase();
83
+ comments.push(`@property ${dataKey} ${desc}`);
84
+ }
85
+ });
86
+ let output = `${indent}/**\n`;
87
+ comments.forEach((comment) => {
88
+ if (comment === "") {
89
+ output += `${indent} *\n`;
90
+ }
91
+ else {
92
+ output += `${indent} * ${comment}\n`;
93
+ }
94
+ });
95
+ output += `${indent} */\n`;
96
+ return output;
97
+ }
98
+ //# sourceMappingURL=data-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-types.js","sourceRoot":"","sources":["../../../src/codegen/schema/data-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { declareComponentTypes } from "./component-types.js";
2
+ export { declareDataTypes } from "./data-types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.declareDataTypes = exports.declareComponentTypes = void 0;
4
+ var component_types_js_1 = require("./component-types.js");
5
+ Object.defineProperty(exports, "declareComponentTypes", { enumerable: true, get: function () { return component_types_js_1.declareComponentTypes; } });
6
+ var data_types_js_1 = require("./data-types.js");
7
+ Object.defineProperty(exports, "declareDataTypes", { enumerable: true, get: function () { return data_types_js_1.declareDataTypes; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/schema/index.ts"],"names":[],"mappings":";;;AAAA,2DAA6D;AAApD,2HAAA,qBAAqB,OAAA;AAC9B,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,4 @@
1
+ export declare function mapSchemaTypeToTypeScript(prop: any, depth?: number): string;
2
+ export declare function generateObjectTypeWithJSDoc(properties: any, depth?: number): string;
3
+ export declare function generatePropertyJSDoc(propertyName: string, propertySchema: any, indent?: string, depth?: number): string;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/codegen/schema/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAkC9E;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAgBtF;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,GAAG,EACnB,MAAM,GAAE,MAAW,EACnB,KAAK,GAAE,MAAU,GAChB,MAAM,CAmDR"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapSchemaTypeToTypeScript = mapSchemaTypeToTypeScript;
4
+ exports.generateObjectTypeWithJSDoc = generateObjectTypeWithJSDoc;
5
+ exports.generatePropertyJSDoc = generatePropertyJSDoc;
6
+ function mapSchemaTypeToTypeScript(prop, depth = 0) {
7
+ switch (prop.type) {
8
+ case "string":
9
+ if (prop.enum && Array.isArray(prop.enum)) {
10
+ return prop.enum.map((value) => `"${value}"`).join(" | ");
11
+ }
12
+ return "string";
13
+ case "number":
14
+ if (prop.enum && Array.isArray(prop.enum)) {
15
+ return prop.enum.map((value) => String(value)).join(" | ");
16
+ }
17
+ return "number";
18
+ case "boolean":
19
+ if (prop.enum && Array.isArray(prop.enum)) {
20
+ return prop.enum.map((value) => String(value)).join(" | ");
21
+ }
22
+ return "boolean";
23
+ case "array":
24
+ const itemType = prop.shape ? mapSchemaTypeToTypeScript(prop.shape, depth) : "any";
25
+ return `${itemType}[]`;
26
+ case "object":
27
+ if (prop.shape && typeof prop.shape === "object") {
28
+ return generateObjectTypeWithJSDoc(prop.shape, depth);
29
+ }
30
+ if (prop.properties && typeof prop.properties === "object") {
31
+ return generateObjectTypeWithJSDoc(prop.properties, depth);
32
+ }
33
+ return "object";
34
+ case "function":
35
+ return "(...args: any[]) => any";
36
+ default:
37
+ console.warn(`Unknown schema type: ${prop.type}`);
38
+ return "any";
39
+ }
40
+ }
41
+ function generateObjectTypeWithJSDoc(properties, depth = 0) {
42
+ let result = "{\n";
43
+ // Generate each property with inline JSDoc
44
+ Object.entries(properties).forEach(([key, value]) => {
45
+ // Generate comprehensive JSDoc for this property
46
+ const propertyJSDoc = generatePropertyJSDoc(key, value, " ", depth);
47
+ result += propertyJSDoc;
48
+ const nestedType = mapSchemaTypeToTypeScript(value, depth + 1);
49
+ const required = value.required !== false ? "" : "?";
50
+ result += ` ${key}${required}: ${nestedType};\n`;
51
+ });
52
+ result += " }";
53
+ return result;
54
+ }
55
+ function generatePropertyJSDoc(propertyName, propertySchema, indent = "", depth = 0) {
56
+ const comments = [];
57
+ // Main description
58
+ if (propertySchema.description) {
59
+ comments.push(propertySchema.description);
60
+ }
61
+ // Add @property tags for nested object properties (recursive!)
62
+ let hasNestedProperties = false;
63
+ if (propertySchema.type === "object" && propertySchema.shape) {
64
+ comments.push("");
65
+ Object.entries(propertySchema.shape).forEach(([key, value]) => {
66
+ if (value.description) {
67
+ comments.push(`@property ${key} ${value.description}`);
68
+ hasNestedProperties = true;
69
+ }
70
+ });
71
+ }
72
+ else if (propertySchema.type === "array" && propertySchema.shape?.type === "object" && propertySchema.shape.shape) {
73
+ // For arrays of objects, document the object structure
74
+ comments.push("");
75
+ Object.entries(propertySchema.shape.shape).forEach(([key, value]) => {
76
+ if (value.description) {
77
+ comments.push(`@property ${key} ${value.description}`);
78
+ hasNestedProperties = true;
79
+ }
80
+ });
81
+ }
82
+ // No comments needed
83
+ if (comments.length === 0) {
84
+ return "";
85
+ }
86
+ // Single-line JSDoc
87
+ if (comments.length === 1 && !hasNestedProperties) {
88
+ return `${indent}/** ${comments[0]} */\n`;
89
+ }
90
+ // Multi-line JSDoc with @property tags
91
+ let output = `${indent}/**\n`;
92
+ comments.forEach((comment) => {
93
+ if (comment === "") {
94
+ output += `${indent} *\n`;
95
+ }
96
+ else {
97
+ output += `${indent} * ${comment}\n`;
98
+ }
99
+ });
100
+ output += `${indent} */\n`;
101
+ return output;
102
+ }
103
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/codegen/schema/utils.ts"],"names":[],"mappings":";;AAAA,8DAkCC;AAED,kEAgBC;AAED,sDAwDC;AA9GD,SAAgB,yBAAyB,CAAC,IAAS,EAAE,QAAgB,CAAC;IACpE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnF,OAAO,GAAG,QAAQ,IAAI,CAAC;QACzB,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjD,OAAO,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC3D,OAAO,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,yBAAyB,CAAC;QACnC;YACE,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,2BAA2B,CAAC,UAAe,EAAE,QAAgB,CAAC;IAC5E,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,2CAA2C;IAC3C,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;QACjE,iDAAiD;QACjD,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,aAAa,CAAC;QAExB,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,MAAM,IAAI,OAAO,GAAG,GAAG,QAAQ,KAAK,UAAU,KAAK,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,KAAK,CAAC;IAChB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,qBAAqB,CACnC,YAAoB,EACpB,cAAmB,EACnB,SAAiB,EAAE,EACnB,QAAgB,CAAC;IAEjB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mBAAmB;IACnB,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,+DAA+D;IAC/D,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;YAC3E,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvD,mBAAmB,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpH,uDAAuD;QACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;YACjF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvD,mBAAmB,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,MAAM,OAAO,IAAI,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;IAE3B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generate TypeScript .d.ts declarations from JSXExpression schema
3
+ * Pure type generation without Monaco dependencies
4
+ */
5
+ import type { Schema } from "../schema.js";
6
+ export interface TypeGenerationOptions {
7
+ componentPrefix?: string;
8
+ }
9
+ /**
10
+ * Generate complete TypeScript declarations for JSXExpression schema
11
+ * Includes JSX namespace, component interfaces, component declarations, and data object
12
+ */
13
+ export declare function declareTypes(schema: Schema, options?: TypeGenerationOptions): string;
14
+ //# sourceMappingURL=schema-to-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-to-types.d.ts","sourceRoot":"","sources":["../../src/codegen/schema-to-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,MAAM,CA8DxF"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * Generate TypeScript .d.ts declarations from JSXExpression schema
4
+ * Pure type generation without Monaco dependencies
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.declareTypes = declareTypes;
8
+ /**
9
+ * Generate complete TypeScript declarations for JSXExpression schema
10
+ * Includes JSX namespace, component interfaces, component declarations, and data object
11
+ */
12
+ function declareTypes(schema, options = {}) {
13
+ const { componentPrefix = "" } = options;
14
+ let output = `// Auto-generated TypeScript definitions for JSXExpression\n`;
15
+ output += `// Generated at: ${new Date().toISOString()}\n\n`;
16
+ // Add JSX namespace and types (minimal JSX without React dependency)
17
+ output += `declare global {\n`;
18
+ output += ` namespace JSX {\n`;
19
+ output += ` type Element = {\n`;
20
+ output += ` type: any;\n`;
21
+ output += ` props: any;\n`;
22
+ output += ` key?: string | number | null;\n`;
23
+ output += ` };\n`;
24
+ output += ` type Node = Element | string | number | boolean | null | undefined | Node[];\n`;
25
+ output += ` interface IntrinsicElements {\n`;
26
+ output += ` [elemName: string]: any;\n`;
27
+ output += ` }\n`;
28
+ output += ` }\n\n`;
29
+ // Add component interfaces
30
+ if (schema.elements) {
31
+ Object.entries(schema.elements).forEach(([elementName, element]) => {
32
+ const interfaceName = `${componentPrefix}${elementName}Props`;
33
+ output += generatePropsInterface(interfaceName, element, " ");
34
+ output += "\n";
35
+ });
36
+ }
37
+ // Add component declarations
38
+ if (schema.elements) {
39
+ Object.entries(schema.elements).forEach(([elementName, element]) => {
40
+ const interfaceName = `${componentPrefix}${elementName}Props`;
41
+ const componentComment = generateComponentComment(elementName, element, " ");
42
+ if (componentComment) {
43
+ output += componentComment;
44
+ }
45
+ output += ` const ${elementName}: (props: ${interfaceName}) => JSX.Element;\n\n`;
46
+ });
47
+ }
48
+ // Add data object declaration if schema has data
49
+ if (schema.data) {
50
+ output += ` // Data object for JSX expressions\n`;
51
+ output += ` const data: {\n`;
52
+ Object.entries(schema.data).forEach(([dataKey, dataSchema]) => {
53
+ const type = mapSchemaTypeToTypeScript(dataSchema);
54
+ const comment = generatePropComment(dataSchema, " ");
55
+ if (comment) {
56
+ output += comment;
57
+ }
58
+ // Handle multi-line types (nested objects) with proper indentation
59
+ const indentedType = type.includes("\n") ? type.replace(/\n/g, "\n ").replace(/\n {4}$/, "\n ") : type;
60
+ output += ` ${dataKey}: ${indentedType};\n`;
61
+ });
62
+ output += ` };\n`;
63
+ }
64
+ output += `}\n\n`;
65
+ output += `export {};\n`;
66
+ return output;
67
+ }
68
+ // Helper functions
69
+ function generatePropsInterface(interfaceName, element, indent = "") {
70
+ let output = `${indent}interface ${interfaceName} {\n`;
71
+ Object.entries(element.props || {}).forEach(([propName, prop]) => {
72
+ const optional = prop.required ? "" : "?";
73
+ const type = mapSchemaTypeToTypeScript(prop);
74
+ const comment = generatePropComment(prop, `${indent} `);
75
+ if (comment) {
76
+ output += comment;
77
+ }
78
+ output += `${indent} ${propName}${optional}: ${type};\n`;
79
+ });
80
+ if (element.content !== false) {
81
+ output += `${indent} children?: JSX.Node;\n`;
82
+ }
83
+ output += `${indent}}\n`;
84
+ return output;
85
+ }
86
+ function generateComponentComment(elementName, element, indent = "") {
87
+ const comments = [];
88
+ if (element.description) {
89
+ comments.push(element.description);
90
+ }
91
+ else if (element.doc) {
92
+ comments.push(element.doc);
93
+ }
94
+ else {
95
+ comments.push(`${elementName} component`);
96
+ }
97
+ if (element.props && Object.keys(element.props).length > 0) {
98
+ comments.push("");
99
+ const propCount = Object.keys(element.props).length;
100
+ const requiredProps = Object.entries(element.props).filter(([, prop]) => prop.required !== false).length;
101
+ comments.push(`@props ${propCount} props (${requiredProps} required)`);
102
+ }
103
+ if (element.examples && element.examples.length > 0) {
104
+ comments.push("");
105
+ comments.push("@example");
106
+ element.examples.forEach((example) => {
107
+ comments.push(example);
108
+ });
109
+ }
110
+ if (comments.length === 0) {
111
+ return "";
112
+ }
113
+ if (comments.length === 1 && comments[0] && !comments[0].includes("\n")) {
114
+ return `${indent}/** ${comments[0]} */\n`;
115
+ }
116
+ let output = `${indent}/**\n`;
117
+ comments.forEach((comment) => {
118
+ if (comment === "") {
119
+ output += `${indent} *\n`;
120
+ }
121
+ else {
122
+ comment.split("\n").forEach((line) => {
123
+ output += `${indent} * ${line}\n`;
124
+ });
125
+ }
126
+ });
127
+ output += `${indent} */\n`;
128
+ return output;
129
+ }
130
+ function mapSchemaTypeToTypeScript(prop) {
131
+ switch (prop.type) {
132
+ case "string":
133
+ if (prop.enum && Array.isArray(prop.enum)) {
134
+ return prop.enum.map((value) => `"${value}"`).join(" | ");
135
+ }
136
+ return "string";
137
+ case "number":
138
+ if (prop.enum && Array.isArray(prop.enum)) {
139
+ return prop.enum.map((value) => String(value)).join(" | ");
140
+ }
141
+ return "number";
142
+ case "boolean":
143
+ if (prop.enum && Array.isArray(prop.enum)) {
144
+ return prop.enum.map((value) => String(value)).join(" | ");
145
+ }
146
+ return "boolean";
147
+ case "array":
148
+ const itemType = prop.shape ? mapSchemaTypeToTypeScript(prop.shape) : "any";
149
+ return `${itemType}[]`;
150
+ case "object":
151
+ if (prop.shape && typeof prop.shape === "object") {
152
+ let objectType = "{\n";
153
+ Object.entries(prop.shape).forEach(([key, value]) => {
154
+ const nestedType = mapSchemaTypeToTypeScript(value);
155
+ const required = value.required !== false ? "" : "?";
156
+ objectType += ` ${key}${required}: ${nestedType};\n`;
157
+ });
158
+ objectType += " }";
159
+ return objectType;
160
+ }
161
+ if (prop.properties && typeof prop.properties === "object") {
162
+ let objectType = "{\n";
163
+ Object.entries(prop.properties).forEach(([key, value]) => {
164
+ const nestedType = mapSchemaTypeToTypeScript(value);
165
+ const required = value.required !== false ? "" : "?";
166
+ objectType += ` ${key}${required}: ${nestedType};\n`;
167
+ });
168
+ objectType += " }";
169
+ return objectType;
170
+ }
171
+ return "object";
172
+ case "function":
173
+ return "(...args: any[]) => any";
174
+ default:
175
+ console.warn(`Unknown schema type: ${prop.type}`);
176
+ return "any";
177
+ }
178
+ }
179
+ function generatePropComment(prop, indent) {
180
+ const comments = [];
181
+ if (prop.description) {
182
+ comments.push(prop.description);
183
+ }
184
+ if (prop.default !== undefined) {
185
+ comments.push(`@default ${JSON.stringify(prop.default)}`);
186
+ }
187
+ if (prop.type === "enum" && prop.values) {
188
+ comments.push(`@values ${prop.values.map((v) => `"${v}"`).join(", ")}`);
189
+ }
190
+ if (comments.length === 0) {
191
+ return "";
192
+ }
193
+ if (comments.length === 1) {
194
+ return `${indent}/** ${comments[0]} */\n`;
195
+ }
196
+ let output = `${indent}/**\n`;
197
+ comments.forEach((comment) => {
198
+ output += `${indent} * ${comment}\n`;
199
+ });
200
+ output += `${indent} */\n`;
201
+ return output;
202
+ }
203
+ //# sourceMappingURL=schema-to-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-to-types.js","sourceRoot":"","sources":["../../src/codegen/schema-to-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiC,OAAO,EAA8B,MAAM,OAAO,CAAC;AAsBhG,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAK5C"}