jsxpression 0.1.1 → 0.1.3

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/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.js +18 -38
  154. package/lib/schema.js.map +1 -1
  155. package/lib/traverse.d.ts +3 -3
  156. package/lib/traverse.d.ts.map +1 -1
  157. package/lib/traverse.js +8 -11
  158. package/lib/traverse.js.map +1 -1
  159. package/lib/traverse.test.js +34 -36
  160. package/lib/traverse.test.js.map +1 -1
  161. package/lib/types.js +1 -2
  162. package/lib/validate.js +7 -10
  163. package/lib/validate.js.map +1 -1
  164. package/package.json +2 -1
  165. package/src/compile/compile.ts +3 -4
package/lib/schema.js CHANGED
@@ -1,65 +1,45 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isElementAllowed = isElementAllowed;
4
- exports.getElementSchema = getElementSchema;
5
- exports.getAllowedAttributes = getAllowedAttributes;
6
- exports.isAttributeAllowed = isAttributeAllowed;
7
- exports.getAllowedChildren = getAllowedChildren;
8
- exports.canHaveChildren = canHaveChildren;
9
- exports.isSelfClosing = isSelfClosing;
10
- exports.isChildAllowed = isChildAllowed;
11
- exports.getAllElements = getAllElements;
12
- exports.getElementConfig = getElementConfig;
13
- exports.getAttributeSchema = getAttributeSchema;
14
- exports.getRequiredAttributes = getRequiredAttributes;
15
- exports.getOptionalAttributes = getOptionalAttributes;
16
- exports.isAttributeRequired = isAttributeRequired;
17
- exports.getDataSchema = getDataSchema;
18
- exports.getPropertyAtPath = getPropertyAtPath;
19
- exports.getAvailablePropertiesAtPath = getAvailablePropertiesAtPath;
20
- exports.getEnumValues = getEnumValues;
21
- function isElementAllowed(schema, tagName) {
1
+ export function isElementAllowed(schema, tagName) {
22
2
  return !!schema.elements?.[tagName];
23
3
  }
24
- function getElementSchema(schema, tagName) {
4
+ export function getElementSchema(schema, tagName) {
25
5
  return schema.elements?.[tagName];
26
6
  }
27
- function getAllowedAttributes(schema, tagName) {
7
+ export function getAllowedAttributes(schema, tagName) {
28
8
  const elementConfig = getElementSchema(schema, tagName);
29
9
  return elementConfig?.props ? Object.keys(elementConfig.props) : [];
30
10
  }
31
- function isAttributeAllowed(schema, tagName, attributeName) {
11
+ export function isAttributeAllowed(schema, tagName, attributeName) {
32
12
  const allowedAttributes = getAllowedAttributes(schema, tagName);
33
13
  return allowedAttributes.includes(attributeName);
34
14
  }
35
- function getAllowedChildren(schema, tagName) {
15
+ export function getAllowedChildren(schema, tagName) {
36
16
  const elementConfig = getElementSchema(schema, tagName);
37
17
  return elementConfig?.allowedChildren;
38
18
  }
39
- function canHaveChildren(schema, tagName) {
19
+ export function canHaveChildren(schema, tagName) {
40
20
  const allowedChildren = getAllowedChildren(schema, tagName);
41
21
  return allowedChildren === undefined || allowedChildren.length > 0;
42
22
  }
43
- function isSelfClosing(schema, tagName) {
23
+ export function isSelfClosing(schema, tagName) {
44
24
  const allowedChildren = getAllowedChildren(schema, tagName);
45
25
  return allowedChildren !== undefined && allowedChildren.length === 0;
46
26
  }
47
- function isChildAllowed(schema, parentTag, childTag) {
27
+ export function isChildAllowed(schema, parentTag, childTag) {
48
28
  const allowedChildren = getAllowedChildren(schema, parentTag);
49
29
  return allowedChildren === undefined || allowedChildren.includes(childTag);
50
30
  }
51
31
  // New schema utilities for enhanced validation
52
- function getAllElements(schema) {
32
+ export function getAllElements(schema) {
53
33
  return schema.elements ? Object.keys(schema.elements) : [];
54
34
  }
55
- function getElementConfig(schema, tagName) {
35
+ export function getElementConfig(schema, tagName) {
56
36
  return getElementSchema(schema, tagName);
57
37
  }
58
- function getAttributeSchema(schema, tagName, attributeName) {
38
+ export function getAttributeSchema(schema, tagName, attributeName) {
59
39
  const elementSchema = getElementSchema(schema, tagName);
60
40
  return elementSchema?.props?.[attributeName];
61
41
  }
62
- function getRequiredAttributes(schema, tagName) {
42
+ export function getRequiredAttributes(schema, tagName) {
63
43
  const elementSchema = getElementSchema(schema, tagName);
64
44
  if (!elementSchema?.props) {
65
45
  return [];
@@ -72,19 +52,19 @@ function getRequiredAttributes(schema, tagName) {
72
52
  }
73
53
  return required;
74
54
  }
75
- function getOptionalAttributes(schema, tagName) {
55
+ export function getOptionalAttributes(schema, tagName) {
76
56
  const allAttributes = getAllowedAttributes(schema, tagName);
77
57
  const requiredAttributes = getRequiredAttributes(schema, tagName);
78
58
  return allAttributes.filter((attr) => !requiredAttributes.includes(attr));
79
59
  }
80
- function isAttributeRequired(schema, tagName, attributeName) {
60
+ export function isAttributeRequired(schema, tagName, attributeName) {
81
61
  const requiredAttributes = getRequiredAttributes(schema, tagName);
82
62
  return requiredAttributes.includes(attributeName);
83
63
  }
84
- function getDataSchema(schema) {
64
+ export function getDataSchema(schema) {
85
65
  return schema.data;
86
66
  }
87
- function getPropertyAtPath(schema, path) {
67
+ export function getPropertyAtPath(schema, path) {
88
68
  if (!schema.data || path.length === 0) {
89
69
  return undefined;
90
70
  }
@@ -99,7 +79,7 @@ function getPropertyAtPath(schema, path) {
99
79
  }
100
80
  return current;
101
81
  }
102
- function getAvailablePropertiesAtPath(schema, path) {
82
+ export function getAvailablePropertiesAtPath(schema, path) {
103
83
  if (!schema.data) {
104
84
  return [];
105
85
  }
@@ -112,7 +92,7 @@ function getAvailablePropertiesAtPath(schema, path) {
112
92
  }
113
93
  return [];
114
94
  }
115
- function getEnumValues(property) {
95
+ export function getEnumValues(property) {
116
96
  switch (property.type) {
117
97
  case "string":
118
98
  return property.enum;
package/lib/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/lib/traverse.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Program } from "acorn.js";
2
- import { SimpleVisitors } from "acorn-walk.js";
3
- import { JSXAttribute, JSXElement, JSXExpressionContainer, JSXFragment, JSXOpeningElement, JSXSpreadAttribute } from "./jsx/index.js";
1
+ import { Program } from "acorn";
2
+ import { SimpleVisitors } from "acorn-walk";
3
+ import { JSXAttribute, JSXElement, JSXExpressionContainer, JSXFragment, JSXOpeningElement, JSXSpreadAttribute } from "./jsx.js";
4
4
  type SimpleVisitor<T> = (node: T, state: unknown) => void;
5
5
  type ExtendedSimpleVisitors = SimpleVisitors<unknown> & {
6
6
  JSXAttribute?: SimpleVisitor<JSXAttribute>;
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAgB,cAAc,EAAqB,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AAIxB,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAW1D,KAAK,sBAAsB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG;IACtD,YAAY,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,sBAAsB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CA0CtF"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAgB,cAAc,EAAqB,MAAM,YAAY,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,UAAU,CAAC;AAIlB,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAW1D,KAAK,sBAAsB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG;IACtD,YAAY,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,sBAAsB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CA0CtF"}
package/lib/traverse.js CHANGED
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.traverse = traverse;
4
- const acorn_walk_js_1 = require("acorn-walk.js");
5
- const index_js_1 = require("./jsx/index.js");
6
- function traverse(ast, visitors) {
7
- (0, acorn_walk_js_1.simple)(ast, visitors, {
8
- ...acorn_walk_js_1.base,
1
+ import { simple, base } from "acorn-walk";
2
+ import { isJsxText, isJsxEmptyExpression, } from "./jsx.js";
3
+ export function traverse(ast, visitors) {
4
+ simple(ast, visitors, {
5
+ ...base,
9
6
  JSXAttribute(node, state, visit) {
10
7
  if (node.value) {
11
8
  visit(node.value, state);
@@ -19,19 +16,19 @@ function traverse(ast, visitors) {
19
16
  }
20
17
  }
21
18
  for (const child of node.children) {
22
- if (!(0, index_js_1.isJsxText)(child)) {
19
+ if (!isJsxText(child)) {
23
20
  visit(child, state);
24
21
  }
25
22
  }
26
23
  },
27
24
  JSXExpressionContainer(node, state, visit) {
28
- if (!(0, index_js_1.isJsxEmptyExpression)(node.expression)) {
25
+ if (!isJsxEmptyExpression(node.expression)) {
29
26
  visit(node.expression, state);
30
27
  }
31
28
  },
32
29
  JSXFragment(node, state, visit) {
33
30
  for (const child of node.children) {
34
- if (!(0, index_js_1.isJsxText)(child)) {
31
+ if (!isJsxText(child)) {
35
32
  visit(child, state);
36
33
  }
37
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":";;AAmCA,4BA0CC;AA5ED,iDAAgF;AAChF,6CASwB;AAwBxB,SAAgB,QAAQ,CAAC,GAAY,EAAE,QAAyC;IAC9E,IAAA,sBAAM,EAAC,GAAG,EAAE,QAAQ,EAAE;QACpB,GAAG,oBAAI;QACP,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC3B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YAChC,IAAI,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/D,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;oBAClD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAA,oBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YACvC,IAAI,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAA,oBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAClC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;KAC2B,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAqC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAOL,SAAS,EACT,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAwBlB,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,QAAyC;IAC9E,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE;QACpB,GAAG,IAAI;QACP,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC3B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YAChC,IAAI,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/D,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;oBAClD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YACvC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YAClC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;YACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;KAC2B,CAAC,CAAC;AAClC,CAAC"}
@@ -1,73 +1,71 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_js_1 = require("vitest.js");
4
- const traverse_js_1 = require("./traverse.js");
5
- const index_js_1 = require("./parse/index.js");
6
- (0, vitest_js_1.describe)("traverse", () => {
7
- (0, vitest_js_1.it)("should call JSXElement visitor", () => {
8
- const ast = (0, index_js_1.parse)("<Text>Hello</Text>");
1
+ import { describe, it, expect } from "vitest";
2
+ import { traverse } from "./traverse.js";
3
+ import { parse } from "./parse/index.js";
4
+ describe("traverse", () => {
5
+ it("should call JSXElement visitor", () => {
6
+ const ast = parse("<Text>Hello</Text>");
9
7
  const visits = [];
10
- (0, traverse_js_1.traverse)(ast, {
8
+ traverse(ast, {
11
9
  JSXElement() {
12
10
  visits.push("JSXElement");
13
11
  },
14
12
  });
15
- (0, vitest_js_1.expect)(visits).toContain("JSXElement");
13
+ expect(visits).toContain("JSXElement");
16
14
  });
17
- (0, vitest_js_1.it)("should call JSXFragment visitor", () => {
18
- const ast = (0, index_js_1.parse)("<>Fragment</>");
15
+ it("should call JSXFragment visitor", () => {
16
+ const ast = parse("<>Fragment</>");
19
17
  const visits = [];
20
- (0, traverse_js_1.traverse)(ast, {
18
+ traverse(ast, {
21
19
  JSXFragment() {
22
20
  visits.push("JSXFragment");
23
21
  },
24
22
  });
25
- (0, vitest_js_1.expect)(visits).toContain("JSXFragment");
23
+ expect(visits).toContain("JSXFragment");
26
24
  });
27
- (0, vitest_js_1.it)("should call Identifier visitor for expressions", () => {
28
- const ast = (0, index_js_1.parse)("<Text>{props.value}</Text>");
25
+ it("should call Identifier visitor for expressions", () => {
26
+ const ast = parse("<Text>{props.value}</Text>");
29
27
  const identifiers = [];
30
- (0, traverse_js_1.traverse)(ast, {
28
+ traverse(ast, {
31
29
  Identifier(node) {
32
30
  identifiers.push(node.name);
33
31
  },
34
32
  });
35
- (0, vitest_js_1.expect)(identifiers).toContain("props");
33
+ expect(identifiers).toContain("props");
36
34
  });
37
- (0, vitest_js_1.it)("should call JSXAttribute visitor", () => {
38
- const ast = (0, index_js_1.parse)("<Text x={10} y={20}>Hello</Text>");
35
+ it("should call JSXAttribute visitor", () => {
36
+ const ast = parse("<Text x={10} y={20}>Hello</Text>");
39
37
  let attributeCount = 0;
40
- (0, traverse_js_1.traverse)(ast, {
38
+ traverse(ast, {
41
39
  JSXAttribute() {
42
40
  attributeCount++;
43
41
  },
44
42
  });
45
- (0, vitest_js_1.expect)(attributeCount).toBe(2);
43
+ expect(attributeCount).toBe(2);
46
44
  });
47
- (0, vitest_js_1.it)("should call JSXExpressionContainer visitor", () => {
48
- const ast = (0, index_js_1.parse)("<Text>{props.value}</Text>");
45
+ it("should call JSXExpressionContainer visitor", () => {
46
+ const ast = parse("<Text>{props.value}</Text>");
49
47
  const visits = [];
50
- (0, traverse_js_1.traverse)(ast, {
48
+ traverse(ast, {
51
49
  JSXExpressionContainer() {
52
50
  visits.push("JSXExpressionContainer");
53
51
  },
54
52
  });
55
- (0, vitest_js_1.expect)(visits).toContain("JSXExpressionContainer");
53
+ expect(visits).toContain("JSXExpressionContainer");
56
54
  });
57
- (0, vitest_js_1.it)("should traverse nested JSX elements", () => {
58
- const ast = (0, index_js_1.parse)("<Outer><Inner>Text</Inner></Outer>");
55
+ it("should traverse nested JSX elements", () => {
56
+ const ast = parse("<Outer><Inner>Text</Inner></Outer>");
59
57
  let jsxCount = 0;
60
- (0, traverse_js_1.traverse)(ast, {
58
+ traverse(ast, {
61
59
  JSXElement() {
62
60
  jsxCount++;
63
61
  },
64
62
  });
65
- (0, vitest_js_1.expect)(jsxCount).toBe(2);
63
+ expect(jsxCount).toBe(2);
66
64
  });
67
- (0, vitest_js_1.it)("should handle multiple visitor types simultaneously", () => {
68
- const ast = (0, index_js_1.parse)("<Text x={props.value}>Hello</Text>");
65
+ it("should handle multiple visitor types simultaneously", () => {
66
+ const ast = parse("<Text x={props.value}>Hello</Text>");
69
67
  const visits = [];
70
- (0, traverse_js_1.traverse)(ast, {
68
+ traverse(ast, {
71
69
  JSXElement() {
72
70
  visits.push("JSXElement");
73
71
  },
@@ -78,9 +76,9 @@ const index_js_1 = require("./parse/index.js");
78
76
  visits.push("Identifier:" + node.name);
79
77
  },
80
78
  });
81
- (0, vitest_js_1.expect)(visits).toContain("JSXElement");
82
- (0, vitest_js_1.expect)(visits).toContain("JSXAttribute");
83
- (0, vitest_js_1.expect)(visits).toContain("Identifier:props");
79
+ expect(visits).toContain("JSXElement");
80
+ expect(visits).toContain("JSXAttribute");
81
+ expect(visits).toContain("Identifier:props");
84
82
  });
85
83
  });
86
84
  //# sourceMappingURL=traverse.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.test.js","sourceRoot":"","sources":["../src/traverse.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traverse.test.js","sourceRoot":"","sources":["../src/traverse.test.ts"],"names":[],"mappings":"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"}
package/lib/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
package/lib/validate.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = validate;
4
- const index_js_1 = require("./analyze/index.js");
5
- const index_js_2 = require("./parse/index.js");
1
+ import { analyze, AnalysisError } from "./analyze/index.js";
2
+ import { parse, ParseError } from "./parse/index.js";
6
3
  /**
7
4
  * Validates JSX expression syntax and schema compliance without execution.
8
5
  *
@@ -27,17 +24,17 @@ const index_js_2 = require("./parse/index.js");
27
24
  * }
28
25
  * ```
29
26
  */
30
- function validate(source, schema, { minSeverity = 3 } = {}) {
27
+ export function validate(source, schema, { minSeverity = 3 } = {}) {
31
28
  try {
32
- const ast = (0, index_js_2.parse)(source);
33
- const report = (0, index_js_1.analyze)(ast, schema);
29
+ const ast = parse(source);
30
+ const report = analyze(ast, schema);
34
31
  if (report.hasIssues(minSeverity)) {
35
- return { ok: false, error: index_js_1.AnalysisError.fromReport(report) };
32
+ return { ok: false, error: AnalysisError.fromReport(report) };
36
33
  }
37
34
  return { ok: true };
38
35
  }
39
36
  catch (error) {
40
- if (error instanceof index_js_2.ParseError) {
37
+ if (error instanceof ParseError) {
41
38
  return { ok: false, error };
42
39
  }
43
40
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":";;AAoCA,4BAsBC;AA1DD,iDAA4D;AAC5D,+CAAqD;AAWrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,QAAQ,CACtB,MAAc,EACd,MAAc,EAEd,EAAE,WAAW,GAAG,CAAC,KAAsB,EAAE;IAEzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,gBAAK,EAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEpC,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,qBAAU,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAc,EACd,MAAc,EAEd,EAAE,WAAW,GAAG,CAAC,KAAsB,EAAE;IAEzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEpC,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "jsxpression",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Validate and safely render JSX expressions",
5
5
  "author": "Divid AB <info@divid.se>",
6
6
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/jsxpression",
7
7
  "license": "MIT",
8
8
  "main": "lib/index.js",
9
9
  "types": "lib/index",
10
+ "type": "module",
10
11
  "exports": {
11
12
  ".": "./lib/index.js"
12
13
  },
@@ -216,10 +216,9 @@ function emitExpression(node: CompilableExpression): string {
216
216
  if (property.type === "SpreadElement") {
217
217
  return `...${emitExpression(property.argument as CompilableExpression)}`;
218
218
  }
219
- // analyze() ensures these are simple properties
220
- const prop = property as any; // analyze() guarantees Property type
221
- const key = getAstKeyString(prop.key as Identifier | Literal);
222
- return `${key}: ${emitExpression(prop.value)}`;
219
+
220
+ const key = getAstKeyString(property.key as Identifier | Literal);
221
+ return `${key}: ${emitExpression(property.value)}`;
223
222
  })
224
223
  .join(", ");
225
224
  return `{ ${keyValuePairs} }`;