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.
- package/lib/analyze/analysis-error.js +1 -5
- package/lib/analyze/analysis-error.js.map +1 -1
- package/lib/analyze/analysis-report.js +1 -5
- package/lib/analyze/analysis-report.js.map +1 -1
- package/lib/analyze/analyze.d.ts +1 -1
- package/lib/analyze/analyze.d.ts.map +1 -1
- package/lib/analyze/analyze.js +6 -9
- package/lib/analyze/analyze.js.map +1 -1
- package/lib/analyze/analyze.test.js +312 -314
- package/lib/analyze/analyze.test.js.map +1 -1
- package/lib/analyze/data/analyze.d.ts +1 -1
- package/lib/analyze/data/analyze.d.ts.map +1 -1
- package/lib/analyze/data/analyze.js +7 -10
- package/lib/analyze/data/analyze.js.map +1 -1
- package/lib/analyze/data/data-access.d.ts +1 -1
- package/lib/analyze/data/data-access.d.ts.map +1 -1
- package/lib/analyze/data/data-access.js +20 -24
- package/lib/analyze/data/data-access.js.map +1 -1
- package/lib/analyze/data/index.d.ts +1 -1
- package/lib/analyze/data/index.d.ts.map +1 -1
- package/lib/analyze/data/index.js +1 -5
- package/lib/analyze/data/index.js.map +1 -1
- package/lib/analyze/data/method-calls.d.ts +1 -1
- package/lib/analyze/data/method-calls.d.ts.map +1 -1
- package/lib/analyze/data/method-calls.js +17 -20
- package/lib/analyze/data/method-calls.js.map +1 -1
- package/lib/analyze/data/utils.d.ts +1 -1
- package/lib/analyze/data/utils.d.ts.map +1 -1
- package/lib/analyze/data/utils.js +22 -29
- package/lib/analyze/data/utils.js.map +1 -1
- package/lib/analyze/index.d.ts +1 -1
- package/lib/analyze/index.d.ts.map +1 -1
- package/lib/analyze/index.js +3 -9
- package/lib/analyze/index.js.map +1 -1
- package/lib/analyze/jsx/analyze.d.ts +1 -1
- package/lib/analyze/jsx/analyze.d.ts.map +1 -1
- package/lib/analyze/jsx/analyze.js +8 -11
- package/lib/analyze/jsx/analyze.js.map +1 -1
- package/lib/analyze/jsx/element-attributes.d.ts +1 -1
- package/lib/analyze/jsx/element-attributes.d.ts.map +1 -1
- package/lib/analyze/jsx/element-attributes.js +21 -24
- package/lib/analyze/jsx/element-attributes.js.map +1 -1
- package/lib/analyze/jsx/element-children.d.ts +1 -1
- package/lib/analyze/jsx/element-children.d.ts.map +1 -1
- package/lib/analyze/jsx/element-children.js +20 -23
- package/lib/analyze/jsx/element-children.js.map +1 -1
- package/lib/analyze/jsx/element-tags.d.ts +1 -1
- package/lib/analyze/jsx/element-tags.d.ts.map +1 -1
- package/lib/analyze/jsx/element-tags.js +12 -15
- package/lib/analyze/jsx/element-tags.js.map +1 -1
- package/lib/analyze/jsx/index.d.ts +1 -1
- package/lib/analyze/jsx/index.d.ts.map +1 -1
- package/lib/analyze/jsx/index.js +1 -5
- package/lib/analyze/jsx/index.js.map +1 -1
- package/lib/analyze/security/analyze.d.ts +1 -1
- package/lib/analyze/security/analyze.d.ts.map +1 -1
- package/lib/analyze/security/analyze.js +10 -13
- package/lib/analyze/security/analyze.js.map +1 -1
- package/lib/analyze/security/call-expressions.d.ts +1 -1
- package/lib/analyze/security/call-expressions.d.ts.map +1 -1
- package/lib/analyze/security/call-expressions.js +8 -11
- package/lib/analyze/security/call-expressions.js.map +1 -1
- package/lib/analyze/security/declarations.d.ts +1 -1
- package/lib/analyze/security/declarations.d.ts.map +1 -1
- package/lib/analyze/security/declarations.js +12 -15
- package/lib/analyze/security/declarations.js.map +1 -1
- package/lib/analyze/security/expressions.d.ts +1 -1
- package/lib/analyze/security/expressions.d.ts.map +1 -1
- package/lib/analyze/security/expressions.js +14 -17
- package/lib/analyze/security/expressions.js.map +1 -1
- package/lib/analyze/security/identifiers.d.ts +1 -1
- package/lib/analyze/security/identifiers.d.ts.map +1 -1
- package/lib/analyze/security/identifiers.js +10 -13
- package/lib/analyze/security/identifiers.js.map +1 -1
- package/lib/analyze/security/index.d.ts +1 -1
- package/lib/analyze/security/index.d.ts.map +1 -1
- package/lib/analyze/security/index.js +1 -5
- package/lib/analyze/security/index.js.map +1 -1
- package/lib/analyze/security/member-access.d.ts +1 -1
- package/lib/analyze/security/member-access.d.ts.map +1 -1
- package/lib/analyze/security/member-access.js +7 -10
- package/lib/analyze/security/member-access.js.map +1 -1
- package/lib/analyze/utils.js +4 -10
- package/lib/analyze/utils.js.map +1 -1
- package/lib/analyze/validation-context.js +1 -5
- package/lib/analyze/validation-context.js.map +1 -1
- package/lib/builtins.js +9 -20
- package/lib/builtins.js.map +1 -1
- package/lib/codegen/builtins/builtin-types.js +3 -6
- package/lib/codegen/builtins/builtin-types.js.map +1 -1
- package/lib/codegen/builtins/index.js +1 -5
- package/lib/codegen/builtins/index.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.js +4 -7
- package/lib/codegen/generate-typescript-definitions.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.test.js +190 -192
- package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
- package/lib/codegen/index.js +1 -5
- package/lib/codegen/index.js.map +1 -1
- package/lib/codegen/schema/component-types.js +3 -6
- package/lib/codegen/schema/component-types.js.map +1 -1
- package/lib/codegen/schema/data-types.js +3 -6
- package/lib/codegen/schema/data-types.js.map +1 -1
- package/lib/codegen/schema/index.js +2 -7
- package/lib/codegen/schema/index.js.map +1 -1
- package/lib/codegen/schema/utils.js +3 -8
- package/lib/codegen/schema/utils.js.map +1 -1
- package/lib/compile/compilation-error.js +1 -5
- package/lib/compile/compilation-error.js.map +1 -1
- package/lib/compile/compile.d.ts +1 -1
- package/lib/compile/compile.d.ts.map +1 -1
- package/lib/compile/compile.js +20 -25
- package/lib/compile/compile.js.map +1 -1
- package/lib/compile/compile.test.js +110 -112
- package/lib/compile/compile.test.js.map +1 -1
- package/lib/compile/index.d.ts +1 -1
- package/lib/compile/index.d.ts.map +1 -1
- package/lib/compile/index.js +2 -7
- package/lib/compile/index.js.map +1 -1
- package/lib/evaluate/evaluate.js +5 -8
- package/lib/evaluate/evaluate.js.map +1 -1
- package/lib/evaluate/evaluate.test.js +56 -58
- package/lib/evaluate/evaluate.test.js.map +1 -1
- package/lib/evaluate/evaluation-error.js +1 -5
- package/lib/evaluate/evaluation-error.js.map +1 -1
- package/lib/evaluate/index.d.ts +1 -1
- package/lib/evaluate/index.d.ts.map +1 -1
- package/lib/evaluate/index.js +2 -7
- package/lib/evaluate/index.js.map +1 -1
- package/lib/index.js +6 -15
- package/lib/index.js.map +1 -1
- package/lib/jsx.d.ts +1 -1
- package/lib/jsx.d.ts.map +1 -1
- package/lib/jsx.js +10 -22
- package/lib/jsx.js.map +1 -1
- package/lib/parse/index.d.ts +1 -1
- package/lib/parse/index.d.ts.map +1 -1
- package/lib/parse/index.js +2 -7
- package/lib/parse/index.js.map +1 -1
- package/lib/parse/parse-error.js +1 -5
- package/lib/parse/parse-error.js.map +1 -1
- package/lib/parse/parse.d.ts +1 -1
- package/lib/parse/parse.d.ts.map +1 -1
- package/lib/parse/parse.js +7 -13
- package/lib/parse/parse.js.map +1 -1
- package/lib/parse/parse.test.js +56 -58
- package/lib/parse/parse.test.js.map +1 -1
- package/lib/render.d.ts +1 -1
- package/lib/render.d.ts.map +1 -1
- package/lib/render.js +9 -12
- package/lib/render.js.map +1 -1
- package/lib/render.test.js +62 -64
- package/lib/render.test.js.map +1 -1
- package/lib/schema.js +18 -38
- package/lib/schema.js.map +1 -1
- package/lib/traverse.d.ts +3 -3
- package/lib/traverse.d.ts.map +1 -1
- package/lib/traverse.js +8 -11
- package/lib/traverse.js.map +1 -1
- package/lib/traverse.test.js +34 -36
- package/lib/traverse.test.js.map +1 -1
- package/lib/types.js +1 -2
- package/lib/validate.js +7 -10
- package/lib/validate.js.map +1 -1
- package/package.json +2 -1
- package/src/compile/compile.ts +3 -4
package/lib/schema.js
CHANGED
|
@@ -1,65 +1,45 @@
|
|
|
1
|
-
|
|
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":"
|
|
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
|
|
2
|
-
import { SimpleVisitors } from "acorn-walk
|
|
3
|
-
import { JSXAttribute, JSXElement, JSXExpressionContainer, JSXFragment, JSXOpeningElement, JSXSpreadAttribute } from "./jsx
|
|
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>;
|
package/lib/traverse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 (!
|
|
19
|
+
if (!isJsxText(child)) {
|
|
23
20
|
visit(child, state);
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
},
|
|
27
24
|
JSXExpressionContainer(node, state, visit) {
|
|
28
|
-
if (!
|
|
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 (!
|
|
31
|
+
if (!isJsxText(child)) {
|
|
35
32
|
visit(child, state);
|
|
36
33
|
}
|
|
37
34
|
}
|
package/lib/traverse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"
|
|
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"}
|
package/lib/traverse.test.js
CHANGED
|
@@ -1,73 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
8
|
+
traverse(ast, {
|
|
11
9
|
JSXElement() {
|
|
12
10
|
visits.push("JSXElement");
|
|
13
11
|
},
|
|
14
12
|
});
|
|
15
|
-
|
|
13
|
+
expect(visits).toContain("JSXElement");
|
|
16
14
|
});
|
|
17
|
-
|
|
18
|
-
const ast =
|
|
15
|
+
it("should call JSXFragment visitor", () => {
|
|
16
|
+
const ast = parse("<>Fragment</>");
|
|
19
17
|
const visits = [];
|
|
20
|
-
|
|
18
|
+
traverse(ast, {
|
|
21
19
|
JSXFragment() {
|
|
22
20
|
visits.push("JSXFragment");
|
|
23
21
|
},
|
|
24
22
|
});
|
|
25
|
-
|
|
23
|
+
expect(visits).toContain("JSXFragment");
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
const ast =
|
|
25
|
+
it("should call Identifier visitor for expressions", () => {
|
|
26
|
+
const ast = parse("<Text>{props.value}</Text>");
|
|
29
27
|
const identifiers = [];
|
|
30
|
-
|
|
28
|
+
traverse(ast, {
|
|
31
29
|
Identifier(node) {
|
|
32
30
|
identifiers.push(node.name);
|
|
33
31
|
},
|
|
34
32
|
});
|
|
35
|
-
|
|
33
|
+
expect(identifiers).toContain("props");
|
|
36
34
|
});
|
|
37
|
-
|
|
38
|
-
const ast =
|
|
35
|
+
it("should call JSXAttribute visitor", () => {
|
|
36
|
+
const ast = parse("<Text x={10} y={20}>Hello</Text>");
|
|
39
37
|
let attributeCount = 0;
|
|
40
|
-
|
|
38
|
+
traverse(ast, {
|
|
41
39
|
JSXAttribute() {
|
|
42
40
|
attributeCount++;
|
|
43
41
|
},
|
|
44
42
|
});
|
|
45
|
-
|
|
43
|
+
expect(attributeCount).toBe(2);
|
|
46
44
|
});
|
|
47
|
-
|
|
48
|
-
const ast =
|
|
45
|
+
it("should call JSXExpressionContainer visitor", () => {
|
|
46
|
+
const ast = parse("<Text>{props.value}</Text>");
|
|
49
47
|
const visits = [];
|
|
50
|
-
|
|
48
|
+
traverse(ast, {
|
|
51
49
|
JSXExpressionContainer() {
|
|
52
50
|
visits.push("JSXExpressionContainer");
|
|
53
51
|
},
|
|
54
52
|
});
|
|
55
|
-
|
|
53
|
+
expect(visits).toContain("JSXExpressionContainer");
|
|
56
54
|
});
|
|
57
|
-
|
|
58
|
-
const ast =
|
|
55
|
+
it("should traverse nested JSX elements", () => {
|
|
56
|
+
const ast = parse("<Outer><Inner>Text</Inner></Outer>");
|
|
59
57
|
let jsxCount = 0;
|
|
60
|
-
|
|
58
|
+
traverse(ast, {
|
|
61
59
|
JSXElement() {
|
|
62
60
|
jsxCount++;
|
|
63
61
|
},
|
|
64
62
|
});
|
|
65
|
-
|
|
63
|
+
expect(jsxCount).toBe(2);
|
|
66
64
|
});
|
|
67
|
-
|
|
68
|
-
const ast =
|
|
65
|
+
it("should handle multiple visitor types simultaneously", () => {
|
|
66
|
+
const ast = parse("<Text x={props.value}>Hello</Text>");
|
|
69
67
|
const visits = [];
|
|
70
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
package/lib/traverse.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverse.test.js","sourceRoot":"","sources":["../src/traverse.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"traverse.test.js","sourceRoot":"","sources":["../src/traverse.test.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
CHANGED
package/lib/validate.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 =
|
|
33
|
-
const report =
|
|
29
|
+
const ast = parse(source);
|
|
30
|
+
const report = analyze(ast, schema);
|
|
34
31
|
if (report.hasIssues(minSeverity)) {
|
|
35
|
-
return { ok: false, error:
|
|
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
|
|
37
|
+
if (error instanceof ParseError) {
|
|
41
38
|
return { ok: false, error };
|
|
42
39
|
}
|
|
43
40
|
throw error;
|
package/lib/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"
|
|
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.
|
|
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
|
},
|
package/src/compile/compile.ts
CHANGED
|
@@ -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
|
-
|
|
220
|
-
const
|
|
221
|
-
|
|
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} }`;
|