@base44-preview/vite-plugin 0.2.27-pr.43.93e5e43 → 0.2.27-pr.44.b37fb09
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/dist/capabilities/inline-edit/controller.d.ts.map +1 -1
- package/dist/capabilities/inline-edit/controller.js +9 -3
- package/dist/capabilities/inline-edit/controller.js.map +1 -1
- package/dist/capabilities/inline-edit/dom-utils.d.ts +1 -0
- package/dist/capabilities/inline-edit/dom-utils.d.ts.map +1 -1
- package/dist/capabilities/inline-edit/dom-utils.js +17 -7
- package/dist/capabilities/inline-edit/dom-utils.js.map +1 -1
- package/dist/injections/visual-edit-agent.d.ts.map +1 -1
- package/dist/injections/visual-edit-agent.js +14 -4
- package/dist/injections/visual-edit-agent.js.map +1 -1
- package/dist/jsx-processor.d.ts +1 -4
- package/dist/jsx-processor.d.ts.map +1 -1
- package/dist/jsx-processor.js +6 -33
- package/dist/jsx-processor.js.map +1 -1
- package/dist/jsx-utils.d.ts +0 -9
- package/dist/jsx-utils.d.ts.map +1 -1
- package/dist/jsx-utils.js +0 -86
- package/dist/jsx-utils.js.map +1 -1
- package/dist/processors/shared-utils.d.ts +0 -77
- package/dist/processors/shared-utils.d.ts.map +1 -1
- package/dist/processors/shared-utils.js +0 -525
- package/dist/processors/shared-utils.js.map +1 -1
- package/dist/processors/static-array-processor.d.ts +3 -2
- package/dist/processors/static-array-processor.d.ts.map +1 -1
- package/dist/processors/static-array-processor.js +3 -2
- package/dist/processors/static-array-processor.js.map +1 -1
- package/dist/statics/index.mjs +2 -2
- package/dist/statics/index.mjs.map +1 -1
- package/dist/visual-edit-plugin.d.ts +1 -0
- package/dist/visual-edit-plugin.d.ts.map +1 -1
- package/dist/visual-edit-plugin.js +178 -29
- package/dist/visual-edit-plugin.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/inline-edit/controller.ts +35 -29
- package/src/capabilities/inline-edit/dom-utils.ts +14 -4
- package/src/injections/visual-edit-agent.ts +20 -4
- package/src/jsx-processor.ts +14 -41
- package/src/jsx-utils.ts +0 -116
- package/src/processors/shared-utils.ts +0 -671
- package/src/processors/static-array-processor.ts +3 -6
- package/src/visual-edit-plugin.ts +215 -34
- package/dist/consts.d.ts +0 -12
- package/dist/consts.d.ts.map +0 -1
- package/dist/consts.js +0 -12
- package/dist/consts.js.map +0 -1
- package/dist/processors/collection-id-processor.d.ts +0 -20
- package/dist/processors/collection-id-processor.d.ts.map +0 -1
- package/dist/processors/collection-id-processor.js +0 -182
- package/dist/processors/collection-id-processor.js.map +0 -1
- package/dist/processors/collection-item-field-processor.d.ts +0 -39
- package/dist/processors/collection-item-field-processor.d.ts.map +0 -1
- package/dist/processors/collection-item-field-processor.js +0 -281
- package/dist/processors/collection-item-field-processor.js.map +0 -1
- package/dist/processors/collection-item-id-processor.d.ts +0 -12
- package/dist/processors/collection-item-id-processor.d.ts.map +0 -1
- package/dist/processors/collection-item-id-processor.js +0 -50
- package/dist/processors/collection-item-id-processor.js.map +0 -1
- package/dist/processors/collection-reference-field-processor.d.ts +0 -31
- package/dist/processors/collection-reference-field-processor.d.ts.map +0 -1
- package/dist/processors/collection-reference-field-processor.js +0 -174
- package/dist/processors/collection-reference-field-processor.js.map +0 -1
- package/dist/processors/collection-tracing-utils.d.ts +0 -36
- package/dist/processors/collection-tracing-utils.d.ts.map +0 -1
- package/dist/processors/collection-tracing-utils.js +0 -390
- package/dist/processors/collection-tracing-utils.js.map +0 -1
- package/dist/types.d.ts +0 -5
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/src/consts.ts +0 -12
- package/src/processors/collection-id-processor.ts +0 -261
- package/src/processors/collection-item-field-processor.ts +0 -433
- package/src/processors/collection-item-id-processor.ts +0 -69
- package/src/processors/collection-reference-field-processor.ts +0 -225
- package/src/processors/collection-tracing-utils.ts +0 -507
- package/src/types.ts +0 -4
package/src/jsx-utils.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type * as t from "@babel/types";
|
|
2
|
-
import { ALLOWED_CUSTOM_COMPONENTS } from "./consts.js";
|
|
3
2
|
|
|
4
3
|
export class JSXUtils {
|
|
5
4
|
private static types: typeof t;
|
|
@@ -13,119 +12,4 @@ export class JSXUtils {
|
|
|
13
12
|
? `${attr.name.namespace.name}:${attr.name.name.name}`
|
|
14
13
|
: attr.name.name;
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
static getElementName(node: t.JSXOpeningElement): string | null {
|
|
18
|
-
const name = node.name;
|
|
19
|
-
|
|
20
|
-
if (this.types.isJSXIdentifier(name)) {
|
|
21
|
-
return name.name;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (this.types.isJSXNamespacedName(name)) {
|
|
25
|
-
return `${name.namespace.name}:${name.name.name}`;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (this.types.isJSXMemberExpression(name)) {
|
|
29
|
-
return this.collectJSXMemberName(name);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private static collectJSXMemberName(
|
|
36
|
-
node: t.JSXMemberExpression
|
|
37
|
-
): string {
|
|
38
|
-
const parts: string[] = [node.property.name];
|
|
39
|
-
let current: t.JSXMemberExpression["object"] = node.object;
|
|
40
|
-
|
|
41
|
-
while (this.types.isJSXMemberExpression(current)) {
|
|
42
|
-
parts.unshift(current.property.name);
|
|
43
|
-
current = current.object;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (this.types.isJSXIdentifier(current)) {
|
|
47
|
-
parts.unshift(current.name);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return parts.join(".");
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
static isCustomComponent(name: string): boolean {
|
|
54
|
-
return name.length > 0 && name.charAt(0) === name.charAt(0).toUpperCase();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static isAllowedCustomComponent(name: string): boolean {
|
|
58
|
-
return ALLOWED_CUSTOM_COMPONENTS.includes(name);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
static isDOMElement(name: string): boolean {
|
|
62
|
-
return name.length > 0 && name.charAt(0) === name.charAt(0).toLowerCase();
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
static isDOMOrAllowed(name: string): boolean {
|
|
66
|
-
return this.isDOMElement(name) || this.isAllowedCustomComponent(name);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static producesJSX(node: t.Expression | t.Node): boolean {
|
|
70
|
-
const types = this.types;
|
|
71
|
-
|
|
72
|
-
if (types.isJSXElement(node) || types.isJSXFragment(node)) return true;
|
|
73
|
-
|
|
74
|
-
if (types.isConditionalExpression(node)) {
|
|
75
|
-
return (
|
|
76
|
-
this.producesJSX(node.consequent) || this.producesJSX(node.alternate)
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (types.isLogicalExpression(node)) {
|
|
81
|
-
return this.producesJSX(node.left) || this.producesJSX(node.right);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (types.isCallExpression(node)) {
|
|
85
|
-
if (types.isMemberExpression(node.callee)) {
|
|
86
|
-
const prop = node.callee.property;
|
|
87
|
-
if (
|
|
88
|
-
types.isIdentifier(prop) &&
|
|
89
|
-
(prop.name === "map" || prop.name === "flatMap")
|
|
90
|
-
) {
|
|
91
|
-
const callback = node.arguments[0];
|
|
92
|
-
if (callback) return this.callbackProducesJSX(callback);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (types.isParenthesizedExpression(node)) {
|
|
98
|
-
return this.producesJSX(node.expression);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
private static callbackProducesJSX(
|
|
105
|
-
callback: t.Expression | t.SpreadElement | t.ArgumentPlaceholder
|
|
106
|
-
): boolean {
|
|
107
|
-
const types = this.types;
|
|
108
|
-
|
|
109
|
-
if (types.isArrowFunctionExpression(callback)) {
|
|
110
|
-
if (types.isBlockStatement(callback.body)) {
|
|
111
|
-
return this.doesBlockReturnJSX(callback.body);
|
|
112
|
-
}
|
|
113
|
-
return this.producesJSX(callback.body);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (types.isFunctionExpression(callback)) {
|
|
117
|
-
return this.doesBlockReturnJSX(callback.body);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
static doesBlockReturnJSX(block: t.BlockStatement): boolean {
|
|
124
|
-
for (const stmt of block.body) {
|
|
125
|
-
if (this.types.isReturnStatement(stmt) && stmt.argument) {
|
|
126
|
-
if (this.producesJSX(stmt.argument)) return true;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
15
|
}
|