@component-compass/parser-react 0.0.1 → 0.0.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/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/walk-jsx.d.ts +5 -3
- package/dist/walk-jsx.js +532 -171
- package/dist/walk-jsx.js.map +1 -1
- package/package.json +3 -5
package/dist/index.js
CHANGED
|
@@ -6,10 +6,12 @@ export const reactPlugin = {
|
|
|
6
6
|
return walkJsx({
|
|
7
7
|
file,
|
|
8
8
|
source,
|
|
9
|
-
|
|
9
|
+
resolveLazyManifest: ctx.resolveLazyManifest,
|
|
10
|
+
lookupByTag: ctx.lookupByTag,
|
|
11
|
+
localIndex: ctx.localIndex,
|
|
10
12
|
captureValues: ctx.config.captureValues,
|
|
11
|
-
packageScopes: ctx.config.packageScopes,
|
|
12
13
|
repoRoot: ctx.repoRoot,
|
|
14
|
+
...(ctx.collector !== undefined ? { collector: ctx.collector } : {}),
|
|
13
15
|
});
|
|
14
16
|
},
|
|
15
17
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QACrB,OAAO,OAAO,CAAC;YACb,IAAI;YACJ,MAAM;YACN,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QACrB,OAAO,OAAO,CAAC;YACb,IAAI;YACJ,MAAM;YACN,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/dist/walk-jsx.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DiagnosticCollector, Occurrence, FileImport, WrapperDef, Warning, LocalDefinitionIndex, LookupByTag, ResolveLazyManifest } from "@component-compass/plugin-core";
|
|
2
2
|
type WalkOptions = {
|
|
3
3
|
file: string;
|
|
4
4
|
source: string;
|
|
5
|
-
|
|
5
|
+
resolveLazyManifest: ResolveLazyManifest;
|
|
6
|
+
lookupByTag: LookupByTag;
|
|
7
|
+
localIndex: LocalDefinitionIndex;
|
|
6
8
|
captureValues: boolean;
|
|
7
|
-
packageScopes: string[];
|
|
8
9
|
repoRoot: string;
|
|
10
|
+
collector?: DiagnosticCollector;
|
|
9
11
|
};
|
|
10
12
|
export type WalkOutput = {
|
|
11
13
|
occurrences: Occurrence[];
|
package/dist/walk-jsx.js
CHANGED
|
@@ -1,15 +1,59 @@
|
|
|
1
1
|
import { parse } from "@babel/parser";
|
|
2
|
-
import
|
|
2
|
+
import { extname, relative, isAbsolute } from "node:path";
|
|
3
3
|
import { serialiseComponentId, externalPackageOf } from "@component-compass/plugin-core";
|
|
4
4
|
import { asTagName, asWrapperId } from "@component-compass/plugin-core";
|
|
5
|
-
import { traverse, posixPath, classifyImportOrigin } from "@component-compass/ast-utils";
|
|
5
|
+
import { traverse, posixPath, classifyImportOrigin, findEnclosingComponentBinding } from "@component-compass/ast-utils";
|
|
6
|
+
function resolveOwnerComponentId(path, filePath, localIndex, repoRoot) {
|
|
7
|
+
// localIndex.byPath uses repo-root-relative POSIX keys; filePath is absolute.
|
|
8
|
+
const relPath = isAbsolute(filePath) ? posixPath(relative(repoRoot, filePath)) : filePath;
|
|
9
|
+
const defs = localIndex.byPath.get(relPath) ?? [];
|
|
10
|
+
const knownExportNames = new Set(defs.map((d) => d.exportName));
|
|
11
|
+
const binding = findEnclosingComponentBinding(path, (name) => knownExportNames.has(name));
|
|
12
|
+
if (!binding)
|
|
13
|
+
return undefined;
|
|
14
|
+
return {
|
|
15
|
+
kind: "react-component",
|
|
16
|
+
export: binding.name,
|
|
17
|
+
source: { type: "local", filePath: posixPath(filePath) },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function withOwner(owner) {
|
|
21
|
+
return owner === undefined ? {} : { ownerComponentId: owner };
|
|
22
|
+
}
|
|
23
|
+
// React-API factories whose return value is conventionally a component.
|
|
24
|
+
// Detected by callee identifier name OR `React.<name>` member-expression.
|
|
25
|
+
// Detection is callee-name only — we don't try to verify the factory's
|
|
26
|
+
// return shape.
|
|
27
|
+
const LOCAL_COMPONENT_FACTORIES = new Set(["forwardRef", "memo", "lazy"]);
|
|
28
|
+
/**
|
|
29
|
+
* Walk a JSXMemberExpression chain to its root identifier, returning the
|
|
30
|
+
* flat dotted name (e.g. "Tabs.Trigger.Inner") and the root identifier name.
|
|
31
|
+
* Returns null if the chain bottoms out at anything other than a JSXIdentifier.
|
|
32
|
+
*/
|
|
33
|
+
function readMemberChain(node) {
|
|
34
|
+
const parts = [];
|
|
35
|
+
let current = node;
|
|
36
|
+
while (current.type === "JSXMemberExpression") {
|
|
37
|
+
parts.unshift(current.property.name);
|
|
38
|
+
current = current.object;
|
|
39
|
+
}
|
|
40
|
+
if (current.type !== "JSXIdentifier")
|
|
41
|
+
return null;
|
|
42
|
+
parts.unshift(current.name);
|
|
43
|
+
return { compoundName: parts.join("."), rootName: current.name };
|
|
44
|
+
}
|
|
6
45
|
// `errorRecovery: true` only handles a narrow band of recoverable parse errors;
|
|
7
46
|
// unrecoverable syntax errors still throw synchronously. Callers must wrap
|
|
8
47
|
// invocations in try/catch and convert thrown errors into PARSE_FAILURE warnings.
|
|
9
48
|
export function walkJsx(opts) {
|
|
49
|
+
// `.ts` files cannot contain JSX; enabling the jsx plugin there causes
|
|
50
|
+
// valid TypeScript like `return <const>{...}` to fail to parse.
|
|
51
|
+
const plugins = ["typescript", "decorators-legacy", "classProperties"];
|
|
52
|
+
if (extname(opts.file) !== ".ts")
|
|
53
|
+
plugins.push("jsx");
|
|
10
54
|
const ast = parse(opts.source, {
|
|
11
55
|
sourceType: "module",
|
|
12
|
-
plugins
|
|
56
|
+
plugins,
|
|
13
57
|
errorRecovery: true,
|
|
14
58
|
});
|
|
15
59
|
const occurrences = [];
|
|
@@ -27,70 +71,117 @@ export function walkJsx(opts) {
|
|
|
27
71
|
});
|
|
28
72
|
}
|
|
29
73
|
const localBindings = new Map();
|
|
30
|
-
// Tracks imports that did NOT match a manifest entry: local → { importedName, specifier }.
|
|
31
|
-
//
|
|
74
|
+
// Tracks imports that did NOT match a manifest entry: local → { importedName, specifier, leafPackage }.
|
|
75
|
+
// `leafPackage` is non-null when the lazy resolver landed on a leaf package
|
|
76
|
+
// but had no manifest entry for `importedName` — in that case the third pass
|
|
77
|
+
// attributes the opaque external occurrence to the leaf rather than re-running
|
|
78
|
+
// origin classification on the user-written aggregator specifier.
|
|
32
79
|
const unmappedImports = new Map();
|
|
33
|
-
// First pass: collect imports
|
|
80
|
+
// First pass: collect imports + local Context bindings, resolving imports
|
|
81
|
+
// via the lazy manifest resolver. Both visitors share a single AST walk;
|
|
82
|
+
// wrapper detection (second pass) and JSX emission (third pass) depend on
|
|
83
|
+
// the fully-populated `localBindings` map.
|
|
34
84
|
traverse(ast, {
|
|
85
|
+
VariableDeclarator(path) {
|
|
86
|
+
// Detect var bindings whose initializer is a known React-API call:
|
|
87
|
+
// - `const X = createContext(...)` / `React.createContext(...)`
|
|
88
|
+
// - `const X = forwardRef(...)` / `memo(...)` / `lazy(...)` (and React.* variants)
|
|
89
|
+
// Scope-agnostic — any binding to a recognised callee gets tracked. The
|
|
90
|
+
// identity downstream uses `source: { type: "local", filePath }`, so two
|
|
91
|
+
// identically-named bindings in different files do not collide.
|
|
92
|
+
if (path.node.init?.type !== "CallExpression")
|
|
93
|
+
return;
|
|
94
|
+
if (path.node.id.type !== "Identifier")
|
|
95
|
+
return;
|
|
96
|
+
const callee = path.node.init.callee;
|
|
97
|
+
const localName = path.node.id.name;
|
|
98
|
+
const isCreateContext = (callee.type === "Identifier" && callee.name === "createContext") ||
|
|
99
|
+
(callee.type === "MemberExpression" &&
|
|
100
|
+
!callee.computed &&
|
|
101
|
+
callee.property.type === "Identifier" &&
|
|
102
|
+
callee.property.name === "createContext");
|
|
103
|
+
if (isCreateContext) {
|
|
104
|
+
localBindings.set(localName, { kind: "local-context", localName });
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const factoryName = callee.type === "Identifier"
|
|
108
|
+
? callee.name
|
|
109
|
+
: callee.type === "MemberExpression" &&
|
|
110
|
+
!callee.computed &&
|
|
111
|
+
callee.property.type === "Identifier"
|
|
112
|
+
? callee.property.name
|
|
113
|
+
: null;
|
|
114
|
+
if (factoryName && LOCAL_COMPONENT_FACTORIES.has(factoryName)) {
|
|
115
|
+
localBindings.set(localName, { kind: "local-component", localName });
|
|
116
|
+
}
|
|
117
|
+
},
|
|
35
118
|
ImportDeclaration(path) {
|
|
36
119
|
const source = path.node.source.value;
|
|
120
|
+
if (path.node.specifiers.length === 0) {
|
|
121
|
+
// Side-effect import: `import "pkg"`. Prime the resolver's leaf cache
|
|
122
|
+
// so later HTML / Lit-template tag references find the leaf's CEM
|
|
123
|
+
// even though no JS-side identifier was ever bound. The empty
|
|
124
|
+
// exportName won't match anything in matchInLeaf, but the call still
|
|
125
|
+
// walks into the leaf and populates byTag for tag-only consumers.
|
|
126
|
+
opts.resolveLazyManifest(opts.file, source, "");
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
37
129
|
for (const spec of path.node.specifiers) {
|
|
130
|
+
if (spec.type === "ImportNamespaceSpecifier") {
|
|
131
|
+
// Namespace imports skip the lazy resolver — there's no specific
|
|
132
|
+
// exportName to resolve until a compound JSX usage picks one out.
|
|
133
|
+
// Record the binding so the compound branch in `resolveOpening` can
|
|
134
|
+
// emit the tail as the export name. `package` is the user-written
|
|
135
|
+
// specifier; aggregator-following for namespace imports would
|
|
136
|
+
// require a separate resolver pass and is deferred.
|
|
137
|
+
const local = spec.local.name;
|
|
138
|
+
localBindings.set(local, {
|
|
139
|
+
kind: "react-namespace",
|
|
140
|
+
package: source,
|
|
141
|
+
specifier: source,
|
|
142
|
+
importName: local,
|
|
143
|
+
});
|
|
144
|
+
imports.push({ file: posixPath(opts.file), imported: local, source, loc: locOf(spec, opts.file) });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
38
147
|
if (spec.type !== "ImportSpecifier" && spec.type !== "ImportDefaultSpecifier")
|
|
39
148
|
continue;
|
|
40
149
|
const imported = spec.type === "ImportSpecifier" ? identName(spec.imported) : "default";
|
|
41
150
|
const local = spec.local.name;
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
if (indexed?.kind === "custom-element") {
|
|
151
|
+
const hit = opts.resolveLazyManifest(opts.file, source, imported);
|
|
152
|
+
if (hit?.matched?.kind === "custom-element") {
|
|
45
153
|
localBindings.set(local, {
|
|
46
154
|
kind: "wc-wrapper",
|
|
47
|
-
tagName: asTagName(
|
|
48
|
-
package:
|
|
155
|
+
tagName: asTagName(hit.matched.tagName),
|
|
156
|
+
package: hit.leafPackage,
|
|
49
157
|
specifier: source,
|
|
50
158
|
importName: imported,
|
|
51
|
-
viaHeuristic: false,
|
|
52
159
|
});
|
|
53
160
|
}
|
|
54
|
-
else if (
|
|
161
|
+
else if (hit?.matched?.kind === "react-component") {
|
|
55
162
|
localBindings.set(local, {
|
|
56
163
|
kind: "react-direct",
|
|
57
|
-
package:
|
|
58
|
-
export:
|
|
164
|
+
package: hit.leafPackage,
|
|
165
|
+
export: hit.matched.export,
|
|
59
166
|
specifier: source,
|
|
60
167
|
importName: imported,
|
|
61
168
|
});
|
|
62
169
|
}
|
|
170
|
+
else if (hit) {
|
|
171
|
+
// Resolver landed on a leaf but no manifest match → opaque external bound to leaf.
|
|
172
|
+
unmappedImports.set(local, {
|
|
173
|
+
importedName: imported,
|
|
174
|
+
specifier: source,
|
|
175
|
+
leafPackage: hit.leafPackage,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
63
178
|
else {
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
localBindings.set(local, {
|
|
71
|
-
kind: "wc-wrapper",
|
|
72
|
-
tagName: heuristicTag,
|
|
73
|
-
package: externalPackageOf(indexedHeur.source),
|
|
74
|
-
specifier: source,
|
|
75
|
-
importName: imported,
|
|
76
|
-
viaHeuristic: true,
|
|
77
|
-
});
|
|
78
|
-
warnings.push({
|
|
79
|
-
code: "MISSING_REACT_EXPORT_EXTENSION",
|
|
80
|
-
message: `Heuristic match for ${imported} from ${source}; resolved to <${heuristicTag}>. Recommend publishing componentCompass.imports.react in the manifest.`,
|
|
81
|
-
file: opts.file,
|
|
82
|
-
package: source,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// Heuristic found a tag but it's not in byTag — treat as unmapped.
|
|
87
|
-
unmappedImports.set(local, { importedName: imported, specifier: source });
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// No manifest match, no heuristic match — track for opportunistic classification.
|
|
92
|
-
unmappedImports.set(local, { importedName: imported, specifier: source });
|
|
93
|
-
}
|
|
179
|
+
// Specifier did not resolve (could be local relative or unresolvable).
|
|
180
|
+
unmappedImports.set(local, {
|
|
181
|
+
importedName: imported,
|
|
182
|
+
specifier: source,
|
|
183
|
+
leafPackage: null,
|
|
184
|
+
});
|
|
94
185
|
}
|
|
95
186
|
imports.push({ file: posixPath(opts.file), imported: local, source, loc: locOf(spec, opts.file) });
|
|
96
187
|
}
|
|
@@ -99,130 +190,359 @@ export function walkJsx(opts) {
|
|
|
99
190
|
// Second pass: detect wrapper definitions.
|
|
100
191
|
traverse(ast, {
|
|
101
192
|
Function(path) {
|
|
102
|
-
detectWrapper(path, opts.file, localBindings, opts.
|
|
193
|
+
detectWrapper(path, opts.file, localBindings, opts.lookupByTag, wrappers);
|
|
103
194
|
},
|
|
104
195
|
ClassDeclaration(path) {
|
|
105
|
-
detectWrapper(path, opts.file, localBindings, opts.
|
|
196
|
+
detectWrapper(path, opts.file, localBindings, opts.lookupByTag, wrappers);
|
|
106
197
|
},
|
|
107
198
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
199
|
+
/** Topmost element is the current tracked parent. node is kept for matched
|
|
200
|
+
* pop on exit (depth-first traversal guarantees the topmost stack entry is
|
|
201
|
+
* the current node when its exit handler fires). */
|
|
202
|
+
const parentStack = [];
|
|
203
|
+
function resolveOpening(opening) {
|
|
204
|
+
const nameNode = opening.name;
|
|
205
|
+
const loc = opening.loc?.start;
|
|
206
|
+
if (nameNode.type === "JSXMemberExpression") {
|
|
207
|
+
const chain = readMemberChain(nameNode);
|
|
208
|
+
if (!chain) {
|
|
209
|
+
opts.collector?.emit({
|
|
210
|
+
code: "jsx-shape-unsupported",
|
|
211
|
+
severity: "warning",
|
|
212
|
+
filePath: opts.file,
|
|
213
|
+
...(loc?.line !== undefined && { line: loc.line }),
|
|
214
|
+
...(loc?.column !== undefined && { column: loc.column }),
|
|
215
|
+
nameType: "JSXMemberExpression-malformed",
|
|
216
|
+
detail: "member chain did not bottom out at JSXIdentifier",
|
|
217
|
+
});
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
220
|
+
if (/^[a-z]/.test(chain.rootName)) {
|
|
221
|
+
opts.collector?.emit({
|
|
222
|
+
code: "jsx-shape-unsupported",
|
|
223
|
+
severity: "warning",
|
|
224
|
+
filePath: opts.file,
|
|
225
|
+
...(loc?.line !== undefined && { line: loc.line }),
|
|
226
|
+
...(loc?.column !== undefined && { column: loc.column }),
|
|
227
|
+
nameType: "JSXMemberExpression-lowercase-root",
|
|
228
|
+
detail: `lowercase root identifier "${chain.rootName}" cannot be a React component`,
|
|
229
|
+
});
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
const bound = localBindings.get(chain.rootName);
|
|
233
|
+
if (bound) {
|
|
234
|
+
// Compound subcomponents always emit as react-component, regardless of
|
|
235
|
+
// whether the root binding is react-direct or wc-wrapper. The WC-wrapper
|
|
236
|
+
// folding rule applies only to bare root usage (<Tabs />), never to
|
|
237
|
+
// compound subcomponents (<Tabs.Trigger />).
|
|
238
|
+
if (bound.kind === "local-context") {
|
|
239
|
+
// `<MyContext.Provider>` / `<MyContext.Consumer>` is access to a
|
|
240
|
+
// member of a React Context object, not a separate component
|
|
241
|
+
// definition. Skip emission so the artifact doesn't gain a spurious
|
|
242
|
+
// `MyContext.Provider` component identity without a real binding site.
|
|
243
|
+
return undefined;
|
|
119
244
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
245
|
+
if (bound.kind === "local-component") {
|
|
246
|
+
// Compound usage of a local var-bound component (e.g. forwardRef'd
|
|
247
|
+
// root with static subcomponents attached: `<Button.Header />`).
|
|
248
|
+
// Full compound name preserves the access pattern so subcomponents
|
|
249
|
+
// surface as distinct identities under the same local-source root.
|
|
250
|
+
return { kind: "local-component", export: chain.compoundName };
|
|
251
|
+
}
|
|
252
|
+
if (bound.kind === "react-namespace") {
|
|
253
|
+
// `import * as Foo from "pkg"` — strip the namespace alias and emit
|
|
254
|
+
// the tail as the package's actual export. `via.import` (set in the
|
|
255
|
+
// emission step) preserves the local namespace alias so consumers
|
|
256
|
+
// can still distinguish namespace-style access from named imports.
|
|
257
|
+
const tail = chain.compoundName.slice(chain.rootName.length + 1);
|
|
258
|
+
return {
|
|
259
|
+
kind: "react-direct",
|
|
260
|
+
package: bound.package,
|
|
261
|
+
export: tail,
|
|
262
|
+
specifier: bound.specifier,
|
|
263
|
+
importName: bound.importName,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
kind: "react-direct",
|
|
268
|
+
package: bound.package,
|
|
269
|
+
export: chain.compoundName,
|
|
270
|
+
specifier: bound.specifier,
|
|
271
|
+
importName: bound.importName,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
// Root unbound. If the root matches an unmapped import, skip the
|
|
275
|
+
// diagnostic — the JSX-element opportunistic block will attempt to emit
|
|
276
|
+
// an opaque external (or local-source) occurrence using the unmapped
|
|
277
|
+
// binding. Symmetric with the single-identifier branch which is silent
|
|
278
|
+
// on unmapped misses.
|
|
279
|
+
if (!unmappedImports.has(chain.rootName)) {
|
|
280
|
+
opts.collector?.emit({
|
|
281
|
+
code: "jsx-shape-unsupported",
|
|
282
|
+
severity: "warning",
|
|
283
|
+
filePath: opts.file,
|
|
284
|
+
...(loc?.line !== undefined && { line: loc.line }),
|
|
285
|
+
...(loc?.column !== undefined && { column: loc.column }),
|
|
286
|
+
nameType: "JSXMemberExpression-unbound-root",
|
|
287
|
+
detail: `compound JSX with unbound root "${chain.rootName}"`,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
if (nameNode.type !== "JSXIdentifier") {
|
|
293
|
+
opts.collector?.emit({
|
|
294
|
+
code: "jsx-shape-unsupported",
|
|
295
|
+
severity: "warning",
|
|
296
|
+
filePath: opts.file,
|
|
297
|
+
...(loc?.line !== undefined && { line: loc.line }),
|
|
298
|
+
...(loc?.column !== undefined && { column: loc.column }),
|
|
299
|
+
nameType: nameNode.type,
|
|
300
|
+
detail: `unhandled JSX element name type: ${nameNode.type}`,
|
|
301
|
+
});
|
|
302
|
+
return undefined;
|
|
303
|
+
}
|
|
304
|
+
const id = nameNode.name;
|
|
305
|
+
if (/^[a-z]/.test(id) && id.includes("-")) {
|
|
306
|
+
const indexed = opts.lookupByTag(asTagName(id));
|
|
307
|
+
if (indexed) {
|
|
308
|
+
return { kind: "wc-tag", tagName: asTagName(id), package: externalPackageOf(indexed.source) };
|
|
309
|
+
}
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
const bound = localBindings.get(id);
|
|
313
|
+
if (bound?.kind === "wc-wrapper") {
|
|
314
|
+
return {
|
|
315
|
+
kind: "wc-wrapper",
|
|
316
|
+
tagName: bound.tagName,
|
|
317
|
+
package: bound.package,
|
|
318
|
+
specifier: bound.specifier,
|
|
319
|
+
importName: bound.importName,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
if (bound?.kind === "react-direct") {
|
|
323
|
+
return {
|
|
324
|
+
kind: "react-direct",
|
|
325
|
+
package: bound.package,
|
|
326
|
+
export: bound.export,
|
|
327
|
+
specifier: bound.specifier,
|
|
328
|
+
importName: bound.importName,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
if (bound?.kind === "local-component") {
|
|
332
|
+
return { kind: "local-component", export: id };
|
|
333
|
+
}
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
traverse(ast, {
|
|
337
|
+
JSXElement: {
|
|
338
|
+
enter(path) {
|
|
339
|
+
const opening = path.node.openingElement;
|
|
340
|
+
const resolved = resolveOpening(opening);
|
|
341
|
+
let occurrence;
|
|
342
|
+
if (!resolved) {
|
|
343
|
+
// Opportunistic emission for unmapped imports (preserves Phase 1 behaviour).
|
|
344
|
+
const nameNode = opening.name;
|
|
345
|
+
if (nameNode.type === "JSXIdentifier") {
|
|
346
|
+
const id = nameNode.name;
|
|
347
|
+
if (!/^[a-z]/.test(id) || !id.includes("-")) {
|
|
348
|
+
const unmapped = unmappedImports.get(id);
|
|
349
|
+
if (unmapped) {
|
|
350
|
+
if (unmapped.leafPackage) {
|
|
351
|
+
const { props, events } = readJsxAttrs(opening, opts.captureValues);
|
|
352
|
+
occurrence = {
|
|
353
|
+
componentId: {
|
|
354
|
+
kind: "react-component",
|
|
355
|
+
export: unmapped.importedName,
|
|
356
|
+
source: { type: "external", package: unmapped.leafPackage },
|
|
357
|
+
},
|
|
358
|
+
loc: locOf(opening, opts.file),
|
|
359
|
+
via: { kind: "direct-import", specifier: unmapped.specifier, import: unmapped.importedName },
|
|
360
|
+
props,
|
|
361
|
+
events,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
const origin = classifyImportOrigin(unmapped.specifier, {
|
|
366
|
+
repoRoot: opts.repoRoot,
|
|
367
|
+
fromFile: opts.file,
|
|
368
|
+
});
|
|
369
|
+
if (origin.type === "local") {
|
|
370
|
+
const localDefs = opts.localIndex.byPath.get(origin.filePath);
|
|
371
|
+
const matched = localDefs?.find((d) => unmapped.importedName === "default"
|
|
372
|
+
? d.isDefault
|
|
373
|
+
: d.exportName === unmapped.importedName && !d.isDefault);
|
|
374
|
+
if (matched && matched.componentId.kind === "react-component") {
|
|
375
|
+
const { props, events } = readJsxAttrs(opening, opts.captureValues);
|
|
376
|
+
occurrence = {
|
|
377
|
+
componentId: matched.componentId,
|
|
378
|
+
loc: locOf(opening, opts.file),
|
|
379
|
+
via: { kind: "direct-import", specifier: unmapped.specifier, import: unmapped.importedName },
|
|
380
|
+
props,
|
|
381
|
+
events,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
163
386
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
else if (nameNode.type === "JSXMemberExpression") {
|
|
390
|
+
// Compound JSX rooted in an unmapped named import (e.g. Base UI primitives,
|
|
391
|
+
// local workspace packages without a CCM, or aliased imports). Walks the
|
|
392
|
+
// member chain, then mirrors the single-identifier path: leafPackage →
|
|
393
|
+
// opaque external; else classifyImportOrigin → local-source match.
|
|
394
|
+
const chain = readMemberChain(nameNode);
|
|
395
|
+
if (chain && !/^[a-z]/.test(chain.rootName)) {
|
|
396
|
+
const unmapped = unmappedImports.get(chain.rootName);
|
|
397
|
+
if (unmapped) {
|
|
398
|
+
// Tail = the chain after the root identifier ("Root" for
|
|
399
|
+
// <ComboboxPrimitive.Root />, "Foo.Bar" for <Outer.Foo.Bar />).
|
|
400
|
+
const tail = chain.compoundName.slice(chain.rootName.length + 1);
|
|
401
|
+
// Package-side compound name: importedName + tail. For renamed
|
|
402
|
+
// imports (`import { Combobox as ComboboxPrimitive }`), this
|
|
403
|
+
// normalises away the local alias so two consumers using
|
|
404
|
+
// different aliases roll up under the same identity.
|
|
405
|
+
//
|
|
406
|
+
// Default-import roots (`import React from "react"` then
|
|
407
|
+
// `<React.Fragment>`) skip the prefix entirely — `default` is
|
|
408
|
+
// the import-spec sentinel, not a meaningful name component.
|
|
409
|
+
// The compound tail (`Fragment`) IS the package's named
|
|
410
|
+
// export. Treats `<React.Fragment>` and `import { Fragment }`
|
|
411
|
+
// as the same identity.
|
|
412
|
+
const compoundExport = unmapped.importedName === "default"
|
|
413
|
+
? tail
|
|
414
|
+
: `${unmapped.importedName}.${tail}`;
|
|
415
|
+
if (unmapped.leafPackage) {
|
|
416
|
+
const { props, events } = readJsxAttrs(opening, opts.captureValues);
|
|
417
|
+
occurrence = {
|
|
418
|
+
componentId: {
|
|
419
|
+
kind: "react-component",
|
|
420
|
+
export: compoundExport,
|
|
421
|
+
source: { type: "external", package: unmapped.leafPackage },
|
|
422
|
+
},
|
|
423
|
+
loc: locOf(opening, opts.file),
|
|
180
424
|
via: { kind: "direct-import", specifier: unmapped.specifier, import: unmapped.importedName },
|
|
181
425
|
props,
|
|
182
426
|
events,
|
|
183
427
|
};
|
|
184
|
-
occurrences.push(occurrence);
|
|
185
428
|
}
|
|
186
|
-
|
|
429
|
+
else {
|
|
430
|
+
const origin = classifyImportOrigin(unmapped.specifier, {
|
|
431
|
+
repoRoot: opts.repoRoot,
|
|
432
|
+
fromFile: opts.file,
|
|
433
|
+
});
|
|
434
|
+
if (origin.type === "local") {
|
|
435
|
+
const localDefs = opts.localIndex.byPath.get(origin.filePath);
|
|
436
|
+
const matched = localDefs?.find((d) => unmapped.importedName === "default"
|
|
437
|
+
? d.isDefault
|
|
438
|
+
: d.exportName === unmapped.importedName && !d.isDefault);
|
|
439
|
+
if (matched &&
|
|
440
|
+
matched.componentId.kind === "react-component" &&
|
|
441
|
+
matched.componentId.source.type === "local") {
|
|
442
|
+
const { props, events } = readJsxAttrs(opening, opts.captureValues);
|
|
443
|
+
// Same default-prefix strip as the leafPackage path:
|
|
444
|
+
// a default-exported local accessed as `<Foo.Bar />`
|
|
445
|
+
// emits `Bar`, not `default.Bar`.
|
|
446
|
+
const localCompoundExport = matched.exportName === "default"
|
|
447
|
+
? tail
|
|
448
|
+
: `${matched.exportName}.${tail}`;
|
|
449
|
+
occurrence = {
|
|
450
|
+
componentId: {
|
|
451
|
+
kind: "react-component",
|
|
452
|
+
export: localCompoundExport,
|
|
453
|
+
source: matched.componentId.source,
|
|
454
|
+
},
|
|
455
|
+
loc: locOf(opening, opts.file),
|
|
456
|
+
via: { kind: "direct-import", specifier: unmapped.specifier, import: unmapped.importedName },
|
|
457
|
+
props,
|
|
458
|
+
events,
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
187
463
|
}
|
|
188
|
-
// unresolved → skip silently
|
|
189
464
|
}
|
|
190
465
|
}
|
|
191
466
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
467
|
+
else {
|
|
468
|
+
const { props, events } = readJsxAttrs(opening, opts.captureValues);
|
|
469
|
+
const loc = locOf(opening, opts.file);
|
|
470
|
+
if (resolved.kind === "wc-tag") {
|
|
471
|
+
occurrence = {
|
|
472
|
+
componentId: { kind: "custom-element", tagName: resolved.tagName, source: { type: "external", package: resolved.package } },
|
|
473
|
+
loc,
|
|
474
|
+
via: { kind: "html-tag" },
|
|
475
|
+
props,
|
|
476
|
+
events,
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
else if (resolved.kind === "wc-wrapper") {
|
|
480
|
+
occurrence = {
|
|
481
|
+
componentId: { kind: "custom-element", tagName: resolved.tagName, source: { type: "external", package: resolved.package } },
|
|
482
|
+
loc,
|
|
483
|
+
via: { kind: "react-wrapper", specifier: resolved.specifier, import: resolved.importName },
|
|
484
|
+
props,
|
|
485
|
+
events,
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
else if (resolved.kind === "local-context") {
|
|
489
|
+
occurrence = {
|
|
490
|
+
componentId: {
|
|
491
|
+
kind: "react-component",
|
|
492
|
+
export: resolved.export,
|
|
493
|
+
source: { type: "local", filePath: posixPath(opts.file) },
|
|
494
|
+
},
|
|
495
|
+
loc,
|
|
496
|
+
via: { kind: "context-provider" },
|
|
497
|
+
props,
|
|
498
|
+
events,
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
else if (resolved.kind === "local-component") {
|
|
502
|
+
occurrence = {
|
|
503
|
+
componentId: {
|
|
504
|
+
kind: "react-component",
|
|
505
|
+
export: resolved.export,
|
|
506
|
+
source: { type: "local", filePath: posixPath(opts.file) },
|
|
507
|
+
},
|
|
508
|
+
loc,
|
|
509
|
+
via: { kind: "local-component" },
|
|
510
|
+
props,
|
|
511
|
+
events,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
occurrence = {
|
|
516
|
+
componentId: { kind: "react-component", export: resolved.export, source: { type: "external", package: resolved.package } },
|
|
517
|
+
loc,
|
|
518
|
+
via: { kind: "direct-import", specifier: resolved.specifier, import: resolved.importName },
|
|
519
|
+
props,
|
|
520
|
+
events,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
if (!occurrence)
|
|
525
|
+
return;
|
|
526
|
+
const parentEntry = parentStack[parentStack.length - 1];
|
|
527
|
+
if (parentEntry && !isInRenderPropScope(path, parentEntry.node)) {
|
|
528
|
+
occurrence.parentRef = parentEntry.idx;
|
|
529
|
+
occurrence.depth = parentStack.length;
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
// Render-prop scope OR no parent: treated as fresh root in this lexical scope.
|
|
533
|
+
occurrence.depth = 0;
|
|
534
|
+
}
|
|
535
|
+
const owner = resolveOwnerComponentId(path, opts.file, opts.localIndex, opts.repoRoot);
|
|
536
|
+
occurrence = { ...occurrence, ...withOwner(owner) };
|
|
537
|
+
const idx = occurrences.length;
|
|
538
|
+
occurrences.push(occurrence);
|
|
539
|
+
parentStack.push({ idx, node: path.node });
|
|
540
|
+
},
|
|
541
|
+
exit(path) {
|
|
542
|
+
const top = parentStack[parentStack.length - 1];
|
|
543
|
+
if (top && top.node === path.node)
|
|
544
|
+
parentStack.pop();
|
|
545
|
+
},
|
|
226
546
|
},
|
|
227
547
|
});
|
|
228
548
|
return { occurrences, wrappers, imports, warnings };
|
|
@@ -237,21 +557,6 @@ function locOf(node, file) {
|
|
|
237
557
|
function identName(node) {
|
|
238
558
|
return node.type === "Identifier" ? node.name : node.value;
|
|
239
559
|
}
|
|
240
|
-
function heuristicMatch(source, imported, index, packageScopes) {
|
|
241
|
-
const matchesScope = packageScopes.some((pattern) => {
|
|
242
|
-
if (!/^[@a-zA-Z*]/.test(pattern))
|
|
243
|
-
return false;
|
|
244
|
-
return picomatch.isMatch(source, pattern) ||
|
|
245
|
-
picomatch.isMatch(source, `${pattern}/**`);
|
|
246
|
-
});
|
|
247
|
-
if (!matchesScope)
|
|
248
|
-
return undefined;
|
|
249
|
-
for (const def of index.byTag.values()) {
|
|
250
|
-
if (def.className === imported)
|
|
251
|
-
return asTagName(def.tagName);
|
|
252
|
-
}
|
|
253
|
-
return undefined;
|
|
254
|
-
}
|
|
255
560
|
function readJsxAttrs(node, captureValues) {
|
|
256
561
|
const props = [];
|
|
257
562
|
const events = [];
|
|
@@ -320,7 +625,7 @@ function readJsxAttrs(node, captureValues) {
|
|
|
320
625
|
}
|
|
321
626
|
return { props, events };
|
|
322
627
|
}
|
|
323
|
-
function detectWrapper(path, file, localBindings,
|
|
628
|
+
function detectWrapper(path, file, localBindings, lookupByTag, wrappers) {
|
|
324
629
|
const name = wrapperName(path);
|
|
325
630
|
if (!name)
|
|
326
631
|
return;
|
|
@@ -338,11 +643,37 @@ function detectWrapper(path, file, localBindings, index, wrappers) {
|
|
|
338
643
|
path.traverse({
|
|
339
644
|
JSXOpeningElement(inner) {
|
|
340
645
|
const n = inner.node.name;
|
|
646
|
+
if (n.type === "JSXMemberExpression") {
|
|
647
|
+
const chain = readMemberChain(n);
|
|
648
|
+
if (!chain)
|
|
649
|
+
return;
|
|
650
|
+
if (/^[a-z]/.test(chain.rootName))
|
|
651
|
+
return;
|
|
652
|
+
const bound = localBindings.get(chain.rootName);
|
|
653
|
+
if (!bound)
|
|
654
|
+
return;
|
|
655
|
+
// Locally-declared bindings (Context, var-bound components) are not
|
|
656
|
+
// external component deps the wrapper "wraps". Skip.
|
|
657
|
+
if (bound.kind === "local-context" || bound.kind === "local-component")
|
|
658
|
+
return;
|
|
659
|
+
// Namespace imports: tail is the package's actual export — strip the
|
|
660
|
+
// local namespace alias so the wrapper dep records the same export
|
|
661
|
+
// identity downstream consumers see for non-namespace access patterns.
|
|
662
|
+
const exportName = bound.kind === "react-namespace"
|
|
663
|
+
? chain.compoundName.slice(chain.rootName.length + 1)
|
|
664
|
+
: chain.compoundName;
|
|
665
|
+
addDep({
|
|
666
|
+
kind: "react-component",
|
|
667
|
+
export: exportName,
|
|
668
|
+
source: { type: "external", package: bound.package },
|
|
669
|
+
});
|
|
670
|
+
return;
|
|
671
|
+
}
|
|
341
672
|
if (n.type !== "JSXIdentifier")
|
|
342
673
|
return;
|
|
343
674
|
const id = n.name;
|
|
344
675
|
if (/^[a-z]/.test(id) && id.includes("-")) {
|
|
345
|
-
const indexed =
|
|
676
|
+
const indexed = lookupByTag(asTagName(id));
|
|
346
677
|
if (indexed) {
|
|
347
678
|
addDep({
|
|
348
679
|
kind: "custom-element",
|
|
@@ -426,4 +757,34 @@ function wrapperId(name) {
|
|
|
426
757
|
const kebab = name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
427
758
|
return asWrapperId(`wrap-${kebab}`);
|
|
428
759
|
}
|
|
760
|
+
/**
|
|
761
|
+
* Render-prop guard: returns true when `path` (a JSXElement) is lexically
|
|
762
|
+
* nested inside a function body or JSXAttribute that lives between it and
|
|
763
|
+
* the topmost tracked parent (`parentNode`). React render-props pass children
|
|
764
|
+
* opaquely through a function (`<DataLoader>{(d) => <Card />}</DataLoader>`,
|
|
765
|
+
* `{items.map(i => <Card />)}`) or through a prop value (`<Modal title={<H/>}>`),
|
|
766
|
+
* so descendants in that scope must NOT inherit the host as their parent.
|
|
767
|
+
*
|
|
768
|
+
* JSXExpressionContainer alone is transparent — `{cond && <Card />}` and
|
|
769
|
+
* `{a ? <X /> : <Y />}` should keep lexical-parent attribution per
|
|
770
|
+
* §Failure modes' "conditional rendering visible" rule. The function/attribute
|
|
771
|
+
* boundary is what differentiates render-prop from a bare expression escape.
|
|
772
|
+
*
|
|
773
|
+
* (Vue scoped slots are lexical and handled differently in parser-vue.)
|
|
774
|
+
*/
|
|
775
|
+
function isInRenderPropScope(path, parentNode) {
|
|
776
|
+
if (!parentNode)
|
|
777
|
+
return false;
|
|
778
|
+
let p = path.parentPath;
|
|
779
|
+
while (p && p.node !== parentNode) {
|
|
780
|
+
if (p.isArrowFunctionExpression() ||
|
|
781
|
+
p.isFunctionExpression() ||
|
|
782
|
+
p.isFunctionDeclaration() ||
|
|
783
|
+
p.isJSXAttribute()) {
|
|
784
|
+
return true;
|
|
785
|
+
}
|
|
786
|
+
p = p.parentPath;
|
|
787
|
+
}
|
|
788
|
+
return false;
|
|
789
|
+
}
|
|
429
790
|
//# sourceMappingURL=walk-jsx.js.map
|
package/dist/walk-jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walk-jsx.js","sourceRoot":"","sources":["../src/walk-jsx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walk-jsx.js","sourceRoot":"","sources":["../src/walk-jsx.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@component-compass/parser-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Consumer-scan parser for React JSX. Detects component usages in .tsx and .jsx files.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,14 +29,12 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@babel/parser": "^7.29.0",
|
|
31
31
|
"@babel/types": "^7.29.0",
|
|
32
|
-
"@component-compass/ast-utils": "^0.0.
|
|
33
|
-
"@component-compass/plugin-core": "^0.0.
|
|
34
|
-
"picomatch": "^4.0.4"
|
|
32
|
+
"@component-compass/ast-utils": "^0.0.3",
|
|
33
|
+
"@component-compass/plugin-core": "^0.0.3"
|
|
35
34
|
},
|
|
36
35
|
"devDependencies": {
|
|
37
36
|
"@types/babel__traverse": "^7.28.0",
|
|
38
37
|
"@types/node": "^24.0.0",
|
|
39
|
-
"@types/picomatch": "^4.0.3",
|
|
40
38
|
"typescript": "^5.9.0",
|
|
41
39
|
"vitest": "^4.0.0"
|
|
42
40
|
},
|