@component-compass/reference-graph 0.1.0 → 0.1.2
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/builder.d.ts +32 -1
- package/dist/builder.js +62 -3
- package/dist/builder.js.map +1 -1
- package/dist/engine/helper-callers.d.ts +25 -9
- package/dist/engine/helper-callers.js +125 -40
- package/dist/engine/helper-callers.js.map +1 -1
- package/dist/engine/index.d.ts +69 -3
- package/dist/engine/index.js +248 -33
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/owner-resolution.d.ts +2 -2
- package/dist/engine/owner-resolution.js +1 -2
- package/dist/engine/owner-resolution.js.map +1 -1
- package/dist/engine/re-export-chain.d.ts +16 -11
- package/dist/engine/re-export-chain.js +59 -30
- package/dist/engine/re-export-chain.js.map +1 -1
- package/dist/engine/resolve-reference.js +46 -18
- package/dist/engine/resolve-reference.js.map +1 -1
- package/dist/engine/wrapper-folding.js +4 -2
- package/dist/engine/wrapper-folding.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/file-graph.d.ts +44 -1
- package/package.json +2 -2
package/dist/engine/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MODULE_SCOPE } from "../index.js";
|
|
2
|
-
import { computeOccurrenceId, serialiseComponentId } from "@component-compass/plugin-core";
|
|
2
|
+
import { asTagName, computeOccurrenceId, serialiseComponentId } from "@component-compass/plugin-core";
|
|
3
3
|
import { createArgumentMap } from "./argument-map.js";
|
|
4
4
|
import { resolveReference } from "./resolve-reference.js";
|
|
5
5
|
import { walkWithFolding } from "./wrapper-folding.js";
|
|
@@ -23,10 +23,34 @@ function propsToRecord(usages) {
|
|
|
23
23
|
}
|
|
24
24
|
return out;
|
|
25
25
|
}
|
|
26
|
-
export function resolve(graph) {
|
|
26
|
+
export function resolve(graph, opts) {
|
|
27
27
|
const occurrences = [];
|
|
28
28
|
const argMap = createArgumentMap();
|
|
29
29
|
const helperIndex = buildHelperCallers(graph);
|
|
30
|
+
// Parallel sidecar holding the per-file usage index, kind, and (pre-resolved)
|
|
31
|
+
// parent-usage index for each emitted occurrence. Used in pass 2 to resolve
|
|
32
|
+
// `parentRef`. Held off-band (not on `EngineOccurrence`) so the public type
|
|
33
|
+
// stays clean and scratch state can't leak into output. `null` slots
|
|
34
|
+
// correspond to occurrences that have no composition source (defensive —
|
|
35
|
+
// every push path stamps a value today). Pre-capturing `parentUsageIdx` at
|
|
36
|
+
// stamp time lets pass 2 do an O(1) lookup per occurrence instead of an
|
|
37
|
+
// O(ownership) `.find()` — matters on large files (hundreds of usages).
|
|
38
|
+
const composition = [];
|
|
39
|
+
// Stamp composition info onto every occurrence pushed since `lengthBefore`,
|
|
40
|
+
// plus a `depth` sourced from the ownership entry. Called after each
|
|
41
|
+
// per-usage emit so helper-call fanout (multiple occurrences per usage)
|
|
42
|
+
// carries identical composition metadata across the fan.
|
|
43
|
+
const stampComposition = (lengthBefore, kind, fileUsageIdx, depth, parentUsageIdx) => {
|
|
44
|
+
for (let i = lengthBefore; i < occurrences.length; i++) {
|
|
45
|
+
const occ = occurrences[i];
|
|
46
|
+
if (!occ)
|
|
47
|
+
continue;
|
|
48
|
+
occ.depth = depth;
|
|
49
|
+
composition[i] = parentUsageIdx !== undefined
|
|
50
|
+
? { fileUsageIdx, kind, parentUsageIdx }
|
|
51
|
+
: { fileUsageIdx, kind };
|
|
52
|
+
}
|
|
53
|
+
};
|
|
30
54
|
for (const [filePath, fileGraph] of graph.files) {
|
|
31
55
|
for (let usageIdx = 0; usageIdx < fileGraph.jsxUsages.length; usageIdx++) {
|
|
32
56
|
const usage = fileGraph.jsxUsages[usageIdx];
|
|
@@ -35,6 +59,9 @@ export function resolve(graph) {
|
|
|
35
59
|
// Resolve owner symbol ref for this usage (for composition attribution).
|
|
36
60
|
const ownerRef = fileGraph.ownership[usageIdx]?.ownerSymbolRef ?? null;
|
|
37
61
|
const viaOverride = fileGraph.ownership[usageIdx]?.viaOverride;
|
|
62
|
+
const jsxDepth = fileGraph.ownership[usageIdx]?.depth ?? 0;
|
|
63
|
+
const jsxParentUsageIdx = fileGraph.ownership[usageIdx]?.parentUsageIdx;
|
|
64
|
+
const jsxLengthBefore = occurrences.length;
|
|
38
65
|
// Find the import record that introduced the root symbol at module scope.
|
|
39
66
|
// We check usage.ref.symbol (the root binding name), not member-chain
|
|
40
67
|
// segments, because ImportRecord.local binds the top-level name.
|
|
@@ -45,6 +72,7 @@ export function resolve(graph) {
|
|
|
45
72
|
if (!decl)
|
|
46
73
|
continue;
|
|
47
74
|
pushLocalOccurrence(occurrences, filePath, usage, decl, graph, fileGraph, argMap, ownerRef, helperIndex, viaOverride);
|
|
75
|
+
stampComposition(jsxLengthBefore, "jsx", usageIdx, jsxDepth, jsxParentUsageIdx);
|
|
48
76
|
continue;
|
|
49
77
|
}
|
|
50
78
|
const packageName = packageNameFromSpecifier(matchedImport.specifier);
|
|
@@ -97,17 +125,17 @@ export function resolve(graph) {
|
|
|
97
125
|
import: matchedImport.imported,
|
|
98
126
|
};
|
|
99
127
|
const fallbackComponentId = {
|
|
100
|
-
kind:
|
|
128
|
+
kind: componentKindFor(fileGraph.dialect),
|
|
101
129
|
export: exportName,
|
|
102
130
|
source: { type: "local", filePath: canonicalFile },
|
|
103
131
|
};
|
|
104
132
|
if (viaOverride !== undefined) {
|
|
105
133
|
// #151 prop-forward: parser has pre-decided the owner — single-occurrence path.
|
|
106
134
|
const rawOwnerComponentId = ownerRef
|
|
107
|
-
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol)
|
|
135
|
+
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol, dialectForFile(graph, ownerRef.originFile ?? fileGraph.filePath))
|
|
108
136
|
: undefined;
|
|
109
137
|
for (const ft of jsxTerminals) {
|
|
110
|
-
const rawComponentId = componentIdFromIdentity(ft.identity, fallbackComponentId);
|
|
138
|
+
const rawComponentId = componentIdFromIdentity(ft.identity, fallbackComponentId, fileGraph.dialect);
|
|
111
139
|
const viaChain = [viaOverride];
|
|
112
140
|
const provisionalId = serialiseComponentId(rawComponentId);
|
|
113
141
|
const occurrenceId = computeOccurrenceId(provisionalId, filePath, usage.loc.line, usage.loc.column, rawOwnerComponentId !== undefined ? serialiseComponentId(rawOwnerComponentId) : undefined);
|
|
@@ -129,10 +157,10 @@ export function resolve(graph) {
|
|
|
129
157
|
// Helper-call fanout: resolve owner chain and emit per (terminal × resolution).
|
|
130
158
|
const ownerResolutions = resolveOwnerChain(ownerRef, graph, helperIndex, createCycleGuard());
|
|
131
159
|
for (const ft of jsxTerminals) {
|
|
132
|
-
const rawComponentId = componentIdFromIdentity(ft.identity, fallbackComponentId);
|
|
160
|
+
const rawComponentId = componentIdFromIdentity(ft.identity, fallbackComponentId, fileGraph.dialect);
|
|
133
161
|
for (const res of ownerResolutions) {
|
|
134
162
|
const rawOwnerComponentId = res.ownerDecl
|
|
135
|
-
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol)
|
|
163
|
+
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol, dialectForFile(graph, res.ownerDecl.file))
|
|
136
164
|
: undefined;
|
|
137
165
|
const viaChain = [...res.viaPrefix, outerVia, ...ft.viaTrail];
|
|
138
166
|
const provisionalId = serialiseComponentId(rawComponentId);
|
|
@@ -152,6 +180,7 @@ export function resolve(graph) {
|
|
|
152
180
|
}
|
|
153
181
|
}
|
|
154
182
|
}
|
|
183
|
+
stampComposition(jsxLengthBefore, "jsx", usageIdx, jsxDepth, jsxParentUsageIdx);
|
|
155
184
|
continue;
|
|
156
185
|
}
|
|
157
186
|
// Check whether the import resolves to a local file that IS in the graph.
|
|
@@ -176,9 +205,9 @@ export function resolve(graph) {
|
|
|
176
205
|
const jsxTerminals = foldedTerminals.filter((t) => t.type.kind === "JSX");
|
|
177
206
|
if (jsxTerminals.length === 0)
|
|
178
207
|
continue;
|
|
179
|
-
const localFallback = workspaceSiblingFallback(graph, resolvedNormTarget, matchedImport);
|
|
208
|
+
const localFallback = workspaceSiblingFallback(graph, resolvedNormTarget, matchedImport, fileGraph.dialect);
|
|
180
209
|
for (const ft of jsxTerminals) {
|
|
181
|
-
pushOccurrence(occurrences, filePath, usage, matchedImport, packageName, graph, ft, ownerRef, helperIndex, localFallback, viaOverride);
|
|
210
|
+
pushOccurrence(occurrences, filePath, usage, matchedImport, packageName, graph, fileGraph, ft, ownerRef, helperIndex, opts, localFallback, viaOverride);
|
|
182
211
|
}
|
|
183
212
|
}
|
|
184
213
|
else {
|
|
@@ -186,10 +215,87 @@ export function resolve(graph) {
|
|
|
186
215
|
// Trust the JSX call site — emit one occurrence using sentinel terminal
|
|
187
216
|
// (identity null → fallback to matchedImport-based componentId, viaTrail empty).
|
|
188
217
|
const sentinelFt = { type: { kind: "JSX" }, viaTrail: [], identity: null };
|
|
189
|
-
pushOccurrence(occurrences, filePath, usage, matchedImport, packageName, graph, sentinelFt, ownerRef, helperIndex, undefined, viaOverride);
|
|
218
|
+
pushOccurrence(occurrences, filePath, usage, matchedImport, packageName, graph, fileGraph, sentinelFt, ownerRef, helperIndex, opts, undefined, viaOverride);
|
|
190
219
|
}
|
|
220
|
+
stampComposition(jsxLengthBefore, "jsx", usageIdx, jsxDepth, jsxParentUsageIdx);
|
|
221
|
+
}
|
|
222
|
+
// Tag-usage resolution (Vue auto-imports, Lit tag-only references, HTML).
|
|
223
|
+
for (let i = 0; i < fileGraph.tagUsages.length; i++) {
|
|
224
|
+
const usage = fileGraph.tagUsages[i];
|
|
225
|
+
if (!usage)
|
|
226
|
+
continue;
|
|
227
|
+
const ownershipEntry = findTagOwnership(fileGraph.ownership, i);
|
|
228
|
+
const ownerRef = ownershipEntry?.ownerSymbolRef ?? null;
|
|
229
|
+
const viaOverride = ownershipEntry?.viaOverride;
|
|
230
|
+
const tagDepth = ownershipEntry?.depth ?? 0;
|
|
231
|
+
const tagParentUsageIdx = ownershipEntry?.parentUsageIdx;
|
|
232
|
+
const tagLengthBefore = occurrences.length;
|
|
233
|
+
const external = opts?.tagIndex?.externalByTag(usage.tagName);
|
|
234
|
+
if (external) {
|
|
235
|
+
const rawComponentId = {
|
|
236
|
+
kind: "custom-element",
|
|
237
|
+
tagName: asTagName(usage.tagName),
|
|
238
|
+
source: external.modulePath
|
|
239
|
+
? { type: "external", package: external.packageName, modulePath: external.modulePath }
|
|
240
|
+
: { type: "external", package: external.packageName },
|
|
241
|
+
};
|
|
242
|
+
pushTagOccurrence(occurrences, filePath, usage, rawComponentId, ownerRef, viaOverride, graph, helperIndex);
|
|
243
|
+
stampComposition(tagLengthBefore, "tag", i, tagDepth, tagParentUsageIdx);
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
const local = opts?.tagIndex?.localByTag(usage.tagName);
|
|
247
|
+
if (local) {
|
|
248
|
+
const rawComponentId = {
|
|
249
|
+
kind: "custom-element",
|
|
250
|
+
tagName: asTagName(usage.tagName),
|
|
251
|
+
source: { type: "local", filePath: local.filePath, exportName: local.exportName },
|
|
252
|
+
};
|
|
253
|
+
pushTagOccurrence(occurrences, filePath, usage, rawComponentId, ownerRef, viaOverride, graph, helperIndex);
|
|
254
|
+
stampComposition(tagLengthBefore, "tag", i, tagDepth, tagParentUsageIdx);
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
// Miss: emit unknown-source custom-element + low-confidence-tag diagnostic.
|
|
258
|
+
const missRawComponentId = {
|
|
259
|
+
kind: "custom-element",
|
|
260
|
+
tagName: asTagName(usage.tagName),
|
|
261
|
+
source: { type: "unknown" },
|
|
262
|
+
};
|
|
263
|
+
opts?.collector?.emit({
|
|
264
|
+
code: "low-confidence-tag",
|
|
265
|
+
severity: "info",
|
|
266
|
+
filePath,
|
|
267
|
+
line: usage.loc.line,
|
|
268
|
+
column: usage.loc.column,
|
|
269
|
+
tagName: usage.tagName,
|
|
270
|
+
});
|
|
271
|
+
pushTagOccurrence(occurrences, filePath, usage, missRawComponentId, ownerRef, viaOverride, graph, helperIndex);
|
|
272
|
+
stampComposition(tagLengthBefore, "tag", i, tagDepth, tagParentUsageIdx);
|
|
191
273
|
}
|
|
192
274
|
}
|
|
275
|
+
// Pass 2: resolve `parentRef` from per-file `parentUsageIdx` ownership data.
|
|
276
|
+
// Pass 1 populated the `composition` sidecar with `(fileUsageIdx, kind)` per
|
|
277
|
+
// emitted occurrence, which lets us build a `(filePath, kind, fileUsageIdx)
|
|
278
|
+
// → globalIdx` map. For each occurrence, look up its ownership entry's
|
|
279
|
+
// `parentUsageIdx`, resolve through the map, and write `parentRef`. The
|
|
280
|
+
// sidecar is discarded on return — composition state never reaches output.
|
|
281
|
+
const occurrenceIdxByFileUsage = new Map();
|
|
282
|
+
for (let i = 0; i < occurrences.length; i++) {
|
|
283
|
+
const slot = composition[i];
|
|
284
|
+
const occ = occurrences[i];
|
|
285
|
+
if (!slot || !occ)
|
|
286
|
+
continue;
|
|
287
|
+
occurrenceIdxByFileUsage.set(`${occ.filePath}:${slot.kind}:${slot.fileUsageIdx}`, i);
|
|
288
|
+
}
|
|
289
|
+
for (let i = 0; i < occurrences.length; i++) {
|
|
290
|
+
const slot = composition[i];
|
|
291
|
+
const occ = occurrences[i];
|
|
292
|
+
if (!slot || !occ || slot.parentUsageIdx === undefined)
|
|
293
|
+
continue;
|
|
294
|
+
const parentKey = `${occ.filePath}:${slot.kind}:${slot.parentUsageIdx}`;
|
|
295
|
+
const parentIdx = occurrenceIdxByFileUsage.get(parentKey);
|
|
296
|
+
if (parentIdx !== undefined)
|
|
297
|
+
occ.parentRef = parentIdx;
|
|
298
|
+
}
|
|
193
299
|
return { occurrences };
|
|
194
300
|
}
|
|
195
301
|
/**
|
|
@@ -213,14 +319,27 @@ function findLocalDeclaration(fileGraph, ref) {
|
|
|
213
319
|
/**
|
|
214
320
|
* Build a local-scope ComponentId for a symbol declared in `filePath`.
|
|
215
321
|
* Used for both the occurrence's own identity and for owner attribution.
|
|
322
|
+
*
|
|
323
|
+
* `fileDialect` is the dialect of the file that DECLARES the symbol (not the
|
|
324
|
+
* file referencing it). For owner-component IDs that means the dialect of the
|
|
325
|
+
* file containing the owner declaration; the caller is responsible for
|
|
326
|
+
* looking up that FileGraph and passing its dialect.
|
|
216
327
|
*/
|
|
217
|
-
function makeLocalComponentId(filePath, symbol) {
|
|
328
|
+
function makeLocalComponentId(filePath, symbol, fileDialect) {
|
|
218
329
|
return {
|
|
219
|
-
kind:
|
|
330
|
+
kind: componentKindFor(fileDialect),
|
|
220
331
|
export: symbol,
|
|
221
332
|
source: { type: "local", filePath },
|
|
222
333
|
};
|
|
223
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Look up the dialect for a file referenced as an owner-declaration source.
|
|
337
|
+
* Falls back to `"react"` when the file isn't in the graph (defensive — should
|
|
338
|
+
* not happen in practice since the file was parsed to produce the ownerDecl).
|
|
339
|
+
*/
|
|
340
|
+
function dialectForFile(graph, filePath) {
|
|
341
|
+
return graph.files.get(filePath)?.dialect ?? "react";
|
|
342
|
+
}
|
|
224
343
|
/**
|
|
225
344
|
* Build a ComponentId from a folded terminal's identity hint. When identity is
|
|
226
345
|
* null, fall back to the caller's default (the usage's own import or local symbol).
|
|
@@ -231,13 +350,20 @@ function makeLocalComponentId(filePath, symbol) {
|
|
|
231
350
|
* `identity.resolvedFile` (repo-relative POSIX from the moduleResolver) so
|
|
232
351
|
* `'./page'` and `'../page'` from different callers collapse to one identity
|
|
233
352
|
* (#109).
|
|
353
|
+
*
|
|
354
|
+
* The component kind is derived from `fileDialect` via `componentKindFor` —
|
|
355
|
+
* `"vue"` dialect files emit `vue-component`, all others emit `react-component`.
|
|
356
|
+
* A future `manifestKindHint` parameter will let callers override the
|
|
357
|
+
* dialect-derived default when a manifest entry resolves to a concrete kind.
|
|
358
|
+
* Tag-usage paths emit `custom-element` directly and don't call this helper.
|
|
234
359
|
*/
|
|
235
|
-
function componentIdFromIdentity(identity, fallback) {
|
|
360
|
+
function componentIdFromIdentity(identity, fallback, fileDialect) {
|
|
236
361
|
if (identity === null)
|
|
237
362
|
return fallback;
|
|
363
|
+
const kind = componentKindFor(fileDialect);
|
|
238
364
|
if (identity.kind === "local") {
|
|
239
365
|
return {
|
|
240
|
-
kind
|
|
366
|
+
kind,
|
|
241
367
|
export: identity.export,
|
|
242
368
|
source: { type: "local", filePath: identity.filePath },
|
|
243
369
|
};
|
|
@@ -246,7 +372,7 @@ function componentIdFromIdentity(identity, fallback) {
|
|
|
246
372
|
const pkg = packageNameFromSpecifier(identity.specifier);
|
|
247
373
|
if (pkg) {
|
|
248
374
|
return {
|
|
249
|
-
kind
|
|
375
|
+
kind,
|
|
250
376
|
export: identity.imported,
|
|
251
377
|
source: externalSource(pkg, identity.specifier),
|
|
252
378
|
};
|
|
@@ -254,7 +380,7 @@ function componentIdFromIdentity(identity, fallback) {
|
|
|
254
380
|
// Relative specifier → local. Prefer the canonical resolved file path so
|
|
255
381
|
// different relative spellings of the same target collapse to one identity.
|
|
256
382
|
return {
|
|
257
|
-
kind
|
|
383
|
+
kind,
|
|
258
384
|
export: identity.imported,
|
|
259
385
|
source: { type: "local", filePath: identity.resolvedFile ?? identity.specifier },
|
|
260
386
|
};
|
|
@@ -282,7 +408,7 @@ function externalSource(pkg, specifier) {
|
|
|
282
408
|
* when the canonical export name can't be derived; callers fall back to the
|
|
283
409
|
* default external fallback.
|
|
284
410
|
*/
|
|
285
|
-
function workspaceSiblingFallback(graph, resolvedTarget, matchedImport) {
|
|
411
|
+
function workspaceSiblingFallback(graph, resolvedTarget, matchedImport, consumerDialect) {
|
|
286
412
|
if (!resolvedTarget)
|
|
287
413
|
return undefined;
|
|
288
414
|
// Follow re-exports (#101) — workspace siblings can also use barrels.
|
|
@@ -305,18 +431,40 @@ function workspaceSiblingFallback(graph, resolvedTarget, matchedImport) {
|
|
|
305
431
|
}
|
|
306
432
|
}
|
|
307
433
|
return {
|
|
308
|
-
kind:
|
|
434
|
+
kind: componentKindFor(consumerDialect),
|
|
309
435
|
export: exportName,
|
|
310
436
|
source: { type: "local", filePath: canonicalFile },
|
|
311
437
|
};
|
|
312
438
|
}
|
|
313
|
-
|
|
439
|
+
/**
|
|
440
|
+
* Derive the `wraps` cross-link for a given component identity by calling the
|
|
441
|
+
* optional `wrapCallback`. Only fires for external react-component identities —
|
|
442
|
+
* local components are user-written code, not wrappers. Returns undefined when
|
|
443
|
+
* the callback is absent, returns null, or the identity is not an external
|
|
444
|
+
* react-component.
|
|
445
|
+
*/
|
|
446
|
+
function computeWraps(rawComponentId, wrapCallback) {
|
|
447
|
+
if (wrapCallback === undefined ||
|
|
448
|
+
rawComponentId.kind !== "react-component" ||
|
|
449
|
+
rawComponentId.source.type !== "external") {
|
|
450
|
+
return undefined;
|
|
451
|
+
}
|
|
452
|
+
const hit = wrapCallback(rawComponentId.source.package, rawComponentId.export);
|
|
453
|
+
if (!hit)
|
|
454
|
+
return undefined;
|
|
455
|
+
return { kind: "custom-element", tagName: hit.tagName, packageName: hit.packageName };
|
|
456
|
+
}
|
|
457
|
+
function pushOccurrence(occurrences, filePath, usage, matchedImport, packageName, graph, fileGraph, ft, ownerRef, helperIndex, opts, fallbackOverride, viaOverride) {
|
|
314
458
|
const fallback = fallbackOverride ?? {
|
|
315
|
-
kind:
|
|
459
|
+
kind: componentKindFor(fileGraph.dialect),
|
|
316
460
|
export: matchedImport.imported,
|
|
317
461
|
source: externalSource(packageName, matchedImport.specifier),
|
|
318
462
|
};
|
|
319
|
-
const rawComponentId = componentIdFromIdentity(ft.identity, fallback);
|
|
463
|
+
const rawComponentId = componentIdFromIdentity(ft.identity, fallback, fileGraph.dialect);
|
|
464
|
+
// Derive wraps cross-link for external react-component occurrences.
|
|
465
|
+
// wrapCallback only fires for external packages — local react-components are
|
|
466
|
+
// user-written, not wrappers. Does NOT affect rawComponentId or hashing.
|
|
467
|
+
const wraps = computeWraps(rawComponentId, opts?.wrapCallback);
|
|
320
468
|
const outerVia = viaOverride ?? {
|
|
321
469
|
kind: "direct-import",
|
|
322
470
|
specifier: matchedImport.specifier,
|
|
@@ -325,7 +473,7 @@ function pushOccurrence(occurrences, filePath, usage, matchedImport, packageName
|
|
|
325
473
|
if (viaOverride !== undefined) {
|
|
326
474
|
// #151 prop-forward: parser has pre-decided the owner — single-occurrence path.
|
|
327
475
|
const rawOwnerComponentId = ownerRef
|
|
328
|
-
? makeLocalComponentId(ownerRef.originFile ?? filePath, ownerRef.symbol)
|
|
476
|
+
? makeLocalComponentId(ownerRef.originFile ?? filePath, ownerRef.symbol, dialectForFile(graph, ownerRef.originFile ?? filePath))
|
|
329
477
|
: undefined;
|
|
330
478
|
const viaChain = [viaOverride];
|
|
331
479
|
const provisionalId = serialiseComponentId(rawComponentId);
|
|
@@ -341,6 +489,7 @@ function pushOccurrence(occurrences, filePath, usage, matchedImport, packageName
|
|
|
341
489
|
occurrenceId,
|
|
342
490
|
depth: 0,
|
|
343
491
|
...(rawOwnerComponentId !== undefined ? { rawOwnerComponentId } : {}),
|
|
492
|
+
...(wraps !== undefined ? { wraps } : {}),
|
|
344
493
|
});
|
|
345
494
|
return;
|
|
346
495
|
}
|
|
@@ -348,7 +497,7 @@ function pushOccurrence(occurrences, filePath, usage, matchedImport, packageName
|
|
|
348
497
|
const ownerResolutions = resolveOwnerChain(ownerRef, graph, helperIndex, createCycleGuard());
|
|
349
498
|
for (const res of ownerResolutions) {
|
|
350
499
|
const rawOwnerComponentId = res.ownerDecl
|
|
351
|
-
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol)
|
|
500
|
+
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol, dialectForFile(graph, res.ownerDecl.file))
|
|
352
501
|
: undefined;
|
|
353
502
|
const viaChain = [...res.viaPrefix, outerVia, ...ft.viaTrail];
|
|
354
503
|
// Provisional occurrenceId keyed on the serialised (human-readable) form.
|
|
@@ -366,6 +515,7 @@ function pushOccurrence(occurrences, filePath, usage, matchedImport, packageName
|
|
|
366
515
|
occurrenceId,
|
|
367
516
|
depth: 0,
|
|
368
517
|
...(rawOwnerComponentId !== undefined ? { rawOwnerComponentId } : {}),
|
|
518
|
+
...(wraps !== undefined ? { wraps } : {}),
|
|
369
519
|
});
|
|
370
520
|
}
|
|
371
521
|
}
|
|
@@ -381,9 +531,9 @@ function pushLocalOccurrence(occurrences, filePath, usage, decl, graph, fileGrap
|
|
|
381
531
|
// For dynamic-binding occurrences, derive a single owner (no fanout needed —
|
|
382
532
|
// dynamic bindings are not the target of helper-call reclassification).
|
|
383
533
|
const rawOwnerComponentId = ownerRef
|
|
384
|
-
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol)
|
|
534
|
+
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol, dialectForFile(graph, ownerRef.originFile ?? fileGraph.filePath))
|
|
385
535
|
: undefined;
|
|
386
|
-
pushDynamicBindingOccurrence(occurrences, filePath, usage, decl.dynamicSource, rawOwnerComponentId);
|
|
536
|
+
pushDynamicBindingOccurrence(occurrences, filePath, usage, decl.dynamicSource, fileGraph.dialect, rawOwnerComponentId);
|
|
387
537
|
}
|
|
388
538
|
return;
|
|
389
539
|
}
|
|
@@ -391,15 +541,15 @@ function pushLocalOccurrence(occurrences, filePath, usage, decl, graph, fileGrap
|
|
|
391
541
|
if (viaOverride !== undefined) {
|
|
392
542
|
// #151 prop-forward: parser has pre-decided the owner — single-occurrence path.
|
|
393
543
|
const rawOwnerComponentId = ownerRef
|
|
394
|
-
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol)
|
|
544
|
+
? makeLocalComponentId(ownerRef.originFile ?? fileGraph.filePath, ownerRef.symbol, dialectForFile(graph, ownerRef.originFile ?? fileGraph.filePath))
|
|
395
545
|
: undefined;
|
|
396
546
|
for (const ft of jsxTerminals) {
|
|
397
547
|
const fallback = {
|
|
398
|
-
kind:
|
|
548
|
+
kind: componentKindFor(fileGraph.dialect),
|
|
399
549
|
export: usage.ref.symbol,
|
|
400
550
|
source: { type: "local", filePath },
|
|
401
551
|
};
|
|
402
|
-
const rawComponentId = componentIdFromIdentity(ft.identity, fallback);
|
|
552
|
+
const rawComponentId = componentIdFromIdentity(ft.identity, fallback, fileGraph.dialect);
|
|
403
553
|
const viaChain = [viaOverride];
|
|
404
554
|
const provisionalId = serialiseComponentId(rawComponentId);
|
|
405
555
|
const occurrenceId = computeOccurrenceId(provisionalId, filePath, usage.loc.line, usage.loc.column, rawOwnerComponentId !== undefined ? serialiseComponentId(rawOwnerComponentId) : undefined);
|
|
@@ -423,14 +573,14 @@ function pushLocalOccurrence(occurrences, filePath, usage, decl, graph, fileGrap
|
|
|
423
573
|
const ownerResolutions = resolveOwnerChain(ownerRef, graph, helperIndex, createCycleGuard());
|
|
424
574
|
for (const ft of jsxTerminals) {
|
|
425
575
|
const fallback = {
|
|
426
|
-
kind:
|
|
576
|
+
kind: componentKindFor(fileGraph.dialect),
|
|
427
577
|
export: usage.ref.symbol,
|
|
428
578
|
source: { type: "local", filePath },
|
|
429
579
|
};
|
|
430
|
-
const rawComponentId = componentIdFromIdentity(ft.identity, fallback);
|
|
580
|
+
const rawComponentId = componentIdFromIdentity(ft.identity, fallback, fileGraph.dialect);
|
|
431
581
|
for (const res of ownerResolutions) {
|
|
432
582
|
const rawOwnerComponentId = res.ownerDecl
|
|
433
|
-
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol)
|
|
583
|
+
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol, dialectForFile(graph, res.ownerDecl.file))
|
|
434
584
|
: undefined;
|
|
435
585
|
const viaChain = [...res.viaPrefix, outerVia, ...ft.viaTrail];
|
|
436
586
|
const provisionalId = serialiseComponentId(rawComponentId);
|
|
@@ -466,7 +616,7 @@ function pushLocalOccurrence(occurrences, filePath, usage, decl, graph, fileGrap
|
|
|
466
616
|
* is the function signature, which doesn't represent a component definition
|
|
467
617
|
* in the local-component aggregation sense.
|
|
468
618
|
*/
|
|
469
|
-
function pushDynamicBindingOccurrence(occurrences, filePath, usage, bindingSource, rawOwnerComponentId) {
|
|
619
|
+
function pushDynamicBindingOccurrence(occurrences, filePath, usage, bindingSource, fileDialect, rawOwnerComponentId) {
|
|
470
620
|
// Skip intrinsic HTML/SVG elements. React's convention: JSX whose root
|
|
471
621
|
// identifier starts with a lowercase letter is always an intrinsic
|
|
472
622
|
// (`<div>`, `<title>`, `<label>`, …), never a component. Without this
|
|
@@ -478,7 +628,7 @@ function pushDynamicBindingOccurrence(occurrences, filePath, usage, bindingSourc
|
|
|
478
628
|
if (first >= 97 && first <= 122)
|
|
479
629
|
return; // ASCII 'a'–'z'
|
|
480
630
|
const rawComponentId = {
|
|
481
|
-
kind:
|
|
631
|
+
kind: componentKindFor(fileDialect),
|
|
482
632
|
export: usage.ref.symbol,
|
|
483
633
|
source: { type: "unknown" },
|
|
484
634
|
};
|
|
@@ -502,4 +652,69 @@ function pushDynamicBindingOccurrence(occurrences, filePath, usage, bindingSourc
|
|
|
502
652
|
...(rawOwnerComponentId !== undefined ? { rawOwnerComponentId } : {}),
|
|
503
653
|
});
|
|
504
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* Find the ownership entry for the `usageIdx`-th tag usage. The `ownership`
|
|
657
|
+
* array is shared between jsx + tag usages, discriminated by `kind`, so a
|
|
658
|
+
* naive index lookup won't work — we filter by `kind === "tag"` first.
|
|
659
|
+
*/
|
|
660
|
+
function findTagOwnership(ownership, usageIdx) {
|
|
661
|
+
return ownership.find((o) => o.kind === "tag" && o.usageIdx === usageIdx);
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Push occurrences for a TagUsage given a pre-built `rawComponentId`. Used by
|
|
665
|
+
* both the external-hit (`tagIndex.externalByTag`) and local-hit
|
|
666
|
+
* (`tagIndex.localByTag`) branches — the caller constructs the appropriate
|
|
667
|
+
* `custom-element` identity (external vs local source) and this helper handles
|
|
668
|
+
* the owner-chain fanout + occurrence push.
|
|
669
|
+
*
|
|
670
|
+
* Owner-kind is derived from the dialect of the FILE the owner declaration
|
|
671
|
+
* lives in (looked up via `graph.files.get(ownerDecl.file)?.dialect`) — a
|
|
672
|
+
* Vue SFC's tag-usage owner is `vue-component`, a React file's owner is
|
|
673
|
+
* `react-component`. The tag-usage's own `rawComponentId.kind` stays
|
|
674
|
+
* `"custom-element"` regardless of consumer dialect.
|
|
675
|
+
*/
|
|
676
|
+
function pushTagOccurrence(occurrences, filePath, usage, rawComponentId, ownerRef, viaOverride, graph, helperIndex) {
|
|
677
|
+
const via = viaOverride ?? { kind: "html-tag" };
|
|
678
|
+
// Owner-chain fanout uses the same machinery as JsxUsage.
|
|
679
|
+
const ownerResolutions = resolveOwnerChain(ownerRef, graph, helperIndex, createCycleGuard());
|
|
680
|
+
for (const res of ownerResolutions) {
|
|
681
|
+
const rawOwnerComponentId = res.ownerDecl
|
|
682
|
+
? makeLocalComponentId(res.ownerDecl.file, res.ownerDecl.symbol, dialectForFile(graph, res.ownerDecl.file))
|
|
683
|
+
: undefined;
|
|
684
|
+
const viaChain = [...res.viaPrefix, via];
|
|
685
|
+
const provisionalId = serialiseComponentId(rawComponentId);
|
|
686
|
+
const occurrenceId = computeOccurrenceId(provisionalId, filePath, usage.loc.line, usage.loc.column, rawOwnerComponentId !== undefined ? serialiseComponentId(rawOwnerComponentId) : undefined);
|
|
687
|
+
occurrences.push({
|
|
688
|
+
rawComponentId,
|
|
689
|
+
filePath,
|
|
690
|
+
line: usage.loc.line,
|
|
691
|
+
column: usage.loc.column,
|
|
692
|
+
via: viaChain[0] ?? via,
|
|
693
|
+
viaChain,
|
|
694
|
+
props: propsToRecord(usage.props),
|
|
695
|
+
occurrenceId,
|
|
696
|
+
depth: 0,
|
|
697
|
+
...(rawOwnerComponentId !== undefined ? { rawOwnerComponentId } : {}),
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* Decide the `kind` for a JSX-emitted ComponentId.
|
|
703
|
+
*
|
|
704
|
+
* Resolution order:
|
|
705
|
+
* 1. If a manifest entry returned a concrete kind hint, use it verbatim
|
|
706
|
+
* (parser-vue's future CEM-hit path will thread this through; today no
|
|
707
|
+
* caller supplies it).
|
|
708
|
+
* 2. Otherwise fall back to the file's dialect — `"vue"` files emit
|
|
709
|
+
* `"vue-component"`, all others emit `"react-component"`.
|
|
710
|
+
*
|
|
711
|
+
* `manifestKindHint` is wired through now so the future plumbing (parser-vue
|
|
712
|
+
* + CEM lookups in A2) is a single-site change rather than another caller
|
|
713
|
+
* sweep. Tag-usage paths (custom-element) don't call this helper.
|
|
714
|
+
*/
|
|
715
|
+
function componentKindFor(fileDialect, manifestKindHint) {
|
|
716
|
+
if (manifestKindHint !== undefined)
|
|
717
|
+
return manifestKindHint;
|
|
718
|
+
return fileDialect === "vue" ? "vue-component" : "react-component";
|
|
719
|
+
}
|
|
505
720
|
//# sourceMappingURL=index.js.map
|
package/dist/engine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Graph, Reference } from "../index.js";
|
|
2
2
|
import type { OccurrenceVia } from "@component-compass/plugin-core";
|
|
3
3
|
import type { CycleGuard } from "./cycle-detection.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { ClassifiedHelperIndex } from "./helper-callers.js";
|
|
5
5
|
/**
|
|
6
6
|
* One result of resolving an owner. `ownerDecl` is the declaring file +
|
|
7
7
|
* symbol of the component-shaped ancestor (the engine will turn that into a
|
|
@@ -30,4 +30,4 @@ export type OwnerResolution = {
|
|
|
30
30
|
* looks up the index and classifies declarations — no further graph walks
|
|
31
31
|
* happen inside the loop body.
|
|
32
32
|
*/
|
|
33
|
-
export declare function resolveOwnerChain(ownerRef: Reference | null, graph: Graph, helperIndex:
|
|
33
|
+
export declare function resolveOwnerChain(ownerRef: Reference | null, graph: Graph, helperIndex: ClassifiedHelperIndex, guard: CycleGuard): OwnerResolution[];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MODULE_SCOPE } from "../index.js";
|
|
2
|
-
import { classifyDeclaration } from "./helper-callers.js";
|
|
3
2
|
/**
|
|
4
3
|
* Walk from a JSX usage's lexical owner symbol up the call graph until each
|
|
5
4
|
* branch hits a component-shaped declaration. Branches: a helper called by N
|
|
@@ -26,7 +25,7 @@ export function resolveOwnerChain(ownerRef, graph, helperIndex, guard) {
|
|
|
26
25
|
const decl = fileGraph.declarations.get(`${MODULE_SCOPE}::${ownerRef.symbol}`);
|
|
27
26
|
if (!decl)
|
|
28
27
|
return [{ viaPrefix: [] }];
|
|
29
|
-
const cls =
|
|
28
|
+
const cls = helperIndex.classification(file, decl.symbol);
|
|
30
29
|
if (cls === "component" || cls === "unknown") {
|
|
31
30
|
return [{ ownerDecl: { file, symbol: decl.symbol }, viaPrefix: [] }];
|
|
32
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-resolution.js","sourceRoot":"","sources":["../../src/engine/owner-resolution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-resolution.js","sourceRoot":"","sources":["../../src/engine/owner-resolution.ts"],"names":[],"mappings":"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"}
|