@component-compass/cli 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/cli.js CHANGED
@@ -17,8 +17,6 @@ Scan options:
17
17
  --capture-values Force capture literal prop values
18
18
  --quiet Suppress STDOUT summary
19
19
  --json Print JSON to stdout (implies --quiet)
20
- --fail-on <metric> CI gate (e.g. deprecated-usage)
21
- --strict Exit non-zero if any warning-severity diagnostics fire
22
20
  --repo-id <value> Override repo identifier in the artifact (else env COMPONENT_COMPASS_REPO_ID, git remote, package.json name, or cwd hash)
23
21
  --upload Also POST the scan to the configured host
24
22
  --host <url> Override host URL (else CC_HOST env, else config.host)
@@ -47,22 +45,19 @@ async function main(argv) {
47
45
  const scanOpts = {
48
46
  configPath: flags.config ?? "./component-compass.config.json",
49
47
  quiet: Boolean(flags.quiet || flags.json),
50
- strict: Boolean(flags.strict),
51
48
  };
52
49
  if (flags.output)
53
50
  scanOpts.outputOverride = flags.output;
54
51
  if (flags.captureValues)
55
52
  scanOpts.captureValuesOverride = true;
56
- if (flags.failOn)
57
- scanOpts.failOn = flags.failOn;
58
53
  if (flags.repoId)
59
54
  scanOpts.repoId = flags.repoId;
60
55
  if (flags.upload)
61
56
  scanOpts.upload = true;
62
57
  if (flags.host)
63
58
  scanOpts.hostOverride = flags.host;
64
- const r = await runScan(scanOpts);
65
- return r.exitCode;
59
+ const result = await runScan(scanOpts);
60
+ return result.output === null ? 2 : 0;
66
61
  }
67
62
  if (cmd === "init") {
68
63
  try {
@@ -114,13 +109,6 @@ function parseFlags(args) {
114
109
  out.quiet = true;
115
110
  else if (a === "--json")
116
111
  out.json = true;
117
- else if (a === "--strict")
118
- out.strict = true;
119
- else if (a === "--fail-on") {
120
- const next = args[++i];
121
- if (next)
122
- out.failOn = next;
123
- }
124
112
  else if (a === "--repo-id") {
125
113
  const next = args[++i];
126
114
  if (next)
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -13,14 +13,11 @@ export type ScanOptions = {
13
13
  outputOverride?: string;
14
14
  captureValuesOverride?: boolean;
15
15
  quiet?: boolean;
16
- failOn?: string;
17
- strict?: boolean;
18
16
  repoId?: string;
19
17
  upload?: boolean;
20
18
  hostOverride?: string;
21
19
  };
22
20
  export type ScanResult = {
23
- exitCode: number;
24
21
  output: ScanOutput | null;
25
22
  };
26
23
  export declare function runScan(opts: ScanOptions): Promise<ScanResult>;
@@ -16,18 +16,19 @@ import { Dispatcher } from "../dispatcher.js";
16
16
  import { reactPlugin, emitReact } from "@component-compass/parser-react";
17
17
  import { htmlPlugin } from "@component-compass/parser-html";
18
18
  import { litTemplatePlugin } from "@component-compass/parser-lit";
19
- import { vuePlugin } from "@component-compass/parser-vue";
19
+ import { emitVueTemplate } from "@component-compass/parser-vue";
20
20
  import { writeJson } from "../reporter/json.js";
21
21
  import { printSummary } from "../reporter/stdout.js";
22
22
  import { stampMeta } from "../scan/meta.js";
23
23
  import { stampGitMTime } from "../scan/git-mtime.js";
24
24
  import { stampVersion } from "../scan/stamp-version.js";
25
25
  import { stampDeprecated } from "../scan/stamp-deprecated.js";
26
+ import { applyWrapAggregation } from "../scan/wrap-aggregation.js";
26
27
  import { buildCemIndex } from "../scan/cem-index.js";
27
28
  import { isPnpProject } from "../util/pnp-check.js";
28
29
  import { Logger } from "../util/log.js";
29
30
  import { errorMessage, posixPath } from "@component-compass/ast-utils";
30
- import { createGraphBuilder, resolve as resolveGraph } from "@component-compass/reference-graph";
31
+ import { createGraphBuilder, resolve as resolveGraph, } from "@component-compass/reference-graph";
31
32
  import { buildComponentSeeds } from "../seeds.js";
32
33
  import { parseResultsToOccurrences } from "../occurrences.js";
33
34
  import { computeStableIdFromComponentId, computeOutputIdentity } from "../identity.js";
@@ -46,13 +47,13 @@ export async function runScan(opts) {
46
47
  catch (err) {
47
48
  if (err instanceof ConfigError) {
48
49
  log.error(err.message);
49
- return { exitCode: 2, output: null };
50
+ return { output: null };
50
51
  }
51
52
  throw err;
52
53
  }
53
54
  if (isPnpProject(cfg.configDir)) {
54
55
  log.error("yarn PnP detected; component-compass requires nodeLinker: node-modules. See docs/usage.md.");
55
- return { exitCode: 2, output: null };
56
+ return { output: null };
56
57
  }
57
58
  // Stamp meta early — throws if not a git work tree, which is a hard
58
59
  // prerequisite for a stable repo identity.
@@ -65,8 +66,14 @@ export async function runScan(opts) {
65
66
  if (opts.captureValuesOverride !== undefined)
66
67
  cfg.captureValues = opts.captureValuesOverride;
67
68
  const writer = opts.quiet ? () => { } : (s) => process.stderr.write(s);
69
+ // Reset per-scan caches so in-process invocations (tests, watch mode) start
70
+ // clean. Memoized realpath results from a prior scan would still be valid,
71
+ // but explicit reset avoids state leakage if the filesystem changed.
72
+ resetFindOwningPackageCache();
73
+ const workspaceGraph = buildWorkspaceGraph(cfg.configDir);
68
74
  const resolveImportOpts = {
69
75
  repoRoot: cfg.configDir,
76
+ workspaceGraph,
70
77
  onWarning: (msg) => writer(`[scan] tsconfig: ${msg}\n`),
71
78
  };
72
79
  if (cfg.aliases)
@@ -80,11 +87,6 @@ export async function runScan(opts) {
80
87
  resolveImportOpts.tsconfigPath = tsconfigPath;
81
88
  const resolveImport = createImportResolver(resolveImportOpts);
82
89
  const collector = createDiagnosticCollector();
83
- // Reset per-scan caches so in-process invocations (tests, watch mode) start
84
- // clean. Memoized realpath results from a prior scan would still be valid,
85
- // but explicit reset avoids state leakage if the filesystem changed.
86
- resetFindOwningPackageCache();
87
- const workspaceGraph = buildWorkspaceGraph(cfg.configDir);
88
90
  // Build global CEM index once per scan. Enumerates every package under
89
91
  // <root>/node_modules, finds CEM/CCM files, and builds byTag + byPackageName
90
92
  // maps so parsers can resolve hyphenated tags without consumer-side config.
@@ -139,7 +141,7 @@ export async function runScan(opts) {
139
141
  const bHtml = /\.html?$/.test(b) ? 1 : 0;
140
142
  return aHtml - bHtml;
141
143
  });
142
- const dispatcher = new Dispatcher([reactPlugin, htmlPlugin, litTemplatePlugin, vuePlugin]);
144
+ const dispatcher = new Dispatcher([reactPlugin, htmlPlugin, litTemplatePlugin]);
143
145
  const results = [];
144
146
  // Single-pass scan: one IO + one parse per file, shared across the local-
145
147
  // index build and plugin dispatch. ASTs are cached for the gap between the
@@ -220,7 +222,26 @@ export async function runScan(opts) {
220
222
  const wrapper = parsed.scriptAst !== undefined
221
223
  ? { descriptor: parsed.descriptor, scriptProgram: parsed.scriptAst }
222
224
  : { descriptor: parsed.descriptor };
223
- localDefs.push(...detectVueComponents({ kind: "sfc", wrapper }, relPath));
225
+ const sfcDefs = detectVueComponents({ kind: "sfc", wrapper }, relPath);
226
+ localDefs.push(...sfcDefs);
227
+ try {
228
+ const fileBuilder = graphBuilder.beginFile(relPath, "vue");
229
+ emitVueTemplate({
230
+ file: relPath,
231
+ source,
232
+ wrapper,
233
+ fileBuilder,
234
+ captureValues: cfg.captureValues,
235
+ resolveLazyManifest: warmedResolver.resolveLazyManifest,
236
+ // Reuse detectVueComponents' resolved symbol so the SFC's local-index
237
+ // seed and the engine's owner ComponentId hash to the same id —
238
+ // otherwise the SFC seed is pruned as an unreachable local.
239
+ ...(sfcDefs[0]?.exportName !== undefined ? { sfcSymbol: sfcDefs[0].exportName } : {}),
240
+ });
241
+ }
242
+ catch (err) {
243
+ log.warn(`[component-compass] emit failure in ${file}: ${errorMessage(err)}`);
244
+ }
224
245
  }
225
246
  parseProgress.tick();
226
247
  }
@@ -281,7 +302,32 @@ export async function runScan(opts) {
281
302
  // Produces EngineOccurrence[] for all imported React components found in the
282
303
  // graph. Local-only symbols and relative-specifier imports are skipped in
283
304
  // this phase (deferred to a follow-up task).
284
- const { occurrences: engineOccurrences } = resolveGraph(graphBuilder.build());
305
+ //
306
+ // tagIndex serves tag-based emitters (parser-vue from A2 onward, parser-lit /
307
+ // parser-html from #105 / #106). External lookups go through CemIndex.byTag;
308
+ // local lookups through the workspace-WC entries in LocalDefinitionIndex.byTag.
309
+ // The collector is the same shared one parsers emit through; the engine adds
310
+ // its own diagnostics (low-confidence-tag, etc.).
311
+ const tagIndex = {
312
+ externalByTag: (tag) => {
313
+ const hit = cemIndex.byTag.get(tag);
314
+ if (!hit)
315
+ return undefined;
316
+ return { packageName: hit.packageName };
317
+ },
318
+ localByTag: (tag) => {
319
+ const hit = localIndex.byTag.get(tag);
320
+ if (!hit || hit.componentId.source.type !== "local")
321
+ return undefined;
322
+ return { filePath: hit.componentId.source.filePath, exportName: hit.exportName };
323
+ },
324
+ };
325
+ const resolveOpts = {
326
+ wrapCallback: (pkg, exportName) => warmedResolver.lookupReactWrapper(pkg, exportName),
327
+ tagIndex,
328
+ collector,
329
+ };
330
+ const { occurrences: engineOccurrences } = resolveGraph(graphBuilder.build(), resolveOpts);
285
331
  const t1 = performance.now();
286
332
  // Drain the shared collector.
287
333
  const rawDiagnostics = collector.drain();
@@ -298,14 +344,9 @@ export async function runScan(opts) {
298
344
  ...d,
299
345
  filePath: isAbsolute(d.filePath) ? posixPath(relative(cfg.configDir, d.filePath)) : d.filePath,
300
346
  }));
301
- const derivedPackages = warmedResolver.snapshotDerivedPackages();
302
347
  const snapshot = warmedResolver
303
348
  .snapshotComponents()
304
- .map((c) => {
305
- const pkg = c.source.type === "external" ? c.source.package : null;
306
- const enrichmentSource = pkg !== null && derivedPackages.has(pkg) ? "derived" : "authored";
307
- return { component: c, enrichmentSource };
308
- });
349
+ .map((c) => ({ component: c }));
309
350
  const manifests = warmedResolver.snapshotManifestRefs();
310
351
  const seeds = buildComponentSeeds(snapshot, results, localIndex, cfg.configDir, workspaceGraph);
311
352
  // Legacy occurrences from Vue/Lit/HTML parsers (reactPlugin.parse is a no-op).
@@ -322,6 +363,10 @@ export async function runScan(opts) {
322
363
  // won't be in validIds — causing composition edges to them to be silently
323
364
  // dropped during applyCompositionRollup.
324
365
  const engineSeeds = new Map();
366
+ // Track wraps cross-links emitted by the engine so we can patch them onto
367
+ // seeds that were built before the engine ran (manifest snapshot path).
368
+ // Keys are componentId hashes; values are the wraps field from EngineOccurrence.
369
+ const wrapsById = new Map();
325
370
  const resolvedEngineOccurrences = engineOccurrences.map((eo) => {
326
371
  // Normalise local filePaths in rawComponentId / rawOwnerComponentId to
327
372
  // repo-relative POSIX so the stable hash matches the one produced for seeds
@@ -336,6 +381,12 @@ export async function runScan(opts) {
336
381
  ? computeStableIdFromComponentId(normaliseEngineLocalId(eo.rawOwnerComponentId, cfg.configDir))
337
382
  : eo.ownerComponentId;
338
383
  const occurrenceId = computeOccurrenceId(componentId, eo.filePath, eo.line, eo.column, ownerComponentId);
384
+ // Propagate wraps cross-link so it reaches OutputComponent.identity.wraps.
385
+ // We record it in wrapsById so it can be patched onto pre-existing seeds
386
+ // (manifest snapshot path) that were built before the engine ran.
387
+ if (eo.wraps !== undefined && !wrapsById.has(componentId)) {
388
+ wrapsById.set(componentId, eo.wraps);
389
+ }
339
390
  // Ensure a seed exists for this component so it appears in components[].
340
391
  // Local seeds are already seeded from localIndex (step 3 of buildComponentSeeds);
341
392
  // this covers external occurrences whose package has no manifest snapshot entry.
@@ -348,6 +399,9 @@ export async function runScan(opts) {
348
399
  workspaceGraph,
349
400
  ...(eo.definition !== undefined ? { definitionLoc: eo.definition } : {}),
350
401
  });
402
+ // Attach wraps cross-link to the identity when present.
403
+ if (eo.wraps !== undefined)
404
+ identity.wraps = eo.wraps;
351
405
  engineSeeds.set(componentId, { id: componentId, identity, manifest: null, deprecated: false });
352
406
  }
353
407
  }
@@ -365,14 +419,30 @@ export async function runScan(opts) {
365
419
  };
366
420
  });
367
421
  // Merge engine seeds into the primary seeds array (deduplication via existingSeed check above).
368
- const allSeeds = [...seeds, ...engineSeeds.values()];
422
+ // Patch wraps onto pre-existing seeds (manifest snapshot path) where the engine
423
+ // resolved a wrapCallback hit — those seeds were built before resolveGraph ran.
424
+ const allSeeds = [
425
+ ...seeds.map((s) => {
426
+ const wraps = wrapsById.get(s.id);
427
+ if (wraps === undefined)
428
+ return s;
429
+ return { ...s, identity: { ...s.identity, wraps } };
430
+ }),
431
+ ...engineSeeds.values(),
432
+ ];
369
433
  const occurrences = [...legacyOccurrences, ...resolvedEngineOccurrences];
370
434
  const partialStats = {
371
435
  filesScanned: files.length,
372
436
  filesWithUsage: countFilesWithUsage(occurrences),
373
437
  scanDurationMs: Math.round(t1 - t0),
374
438
  };
375
- const scanOutput = buildScanOutput(meta, manifests, partialStats, allSeeds, occurrences, diagnostics);
439
+ const rawScanOutput = buildScanOutput(meta, manifests, partialStats, allSeeds, occurrences, diagnostics);
440
+ // Post-resolve aggregation: materialise zero-occurrence custom-element entries
441
+ // and populate symmetric wrappedBy arrays from react-component wraps cross-links.
442
+ const scanOutput = {
443
+ ...rawScanOutput,
444
+ components: applyWrapAggregation(rawScanOutput.components),
445
+ };
376
446
  await stampGitMTime(cfg.configDir, scanOutput.components);
377
447
  await stampVersion(cfg.configDir, scanOutput.components, scanOutput.occurrences);
378
448
  stampDeprecated(scanOutput.components, cemIndex);
@@ -399,23 +469,10 @@ export async function runScan(opts) {
399
469
  }
400
470
  catch (err) {
401
471
  const msg = err instanceof Error ? err.message : String(err);
402
- if (opts.strict) {
403
- log.error(`Upload failed: ${msg}`);
404
- return { exitCode: 1, output: scanOutput };
405
- }
406
- log.warn(`Upload failed (continuing because --strict not set): ${msg}`);
472
+ log.warn(`Upload failed: ${msg}`);
407
473
  }
408
474
  }
409
- let exitCode = 0;
410
- if (opts.failOn === "deprecated-usage") {
411
- const hasDeprecated = scanOutput.components.some((c) => c.deprecated && c.stats.occurrenceCount > 0);
412
- if (hasDeprecated)
413
- exitCode = 1;
414
- }
415
- if (opts.strict && diagnostics.some((d) => d.severity === "warning")) {
416
- exitCode = 1;
417
- }
418
- return { exitCode, output: scanOutput };
475
+ return { output: scanOutput };
419
476
  }
420
477
  function countFilesWithUsage(occurrences) {
421
478
  const files = new Set();
@@ -449,8 +506,8 @@ function formatDiagnostic(d) {
449
506
  switch (d.code) {
450
507
  case "jsx-shape-unsupported":
451
508
  return `${tag} [component-compass] ${d.code} at ${d.filePath}:${d.line ?? "?"} — ${d.detail}`;
452
- case "vue-tag-low-confidence":
453
- return `${tag} [component-compass] ${d.code} at ${d.filePath}:${d.line ?? "?"} — emitted <${d.tagName}> as ${d.emittedAs}`;
509
+ case "low-confidence-tag":
510
+ return `${tag} [component-compass] ${d.code} at ${d.filePath}:${d.line ?? "?"} — <${d.tagName}>`;
454
511
  case "local-index-duplicate-tag":
455
512
  return `${tag} [component-compass] ${d.code} at ${d.filePath} — <${d.tagName}> conflicts with ${d.conflictsWith}`;
456
513
  case "cycle-detected":
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,6 @@ export type CreateLazyResolverOptions = {
8
8
  * absent, `.warm()` falls back to `process.cwd()`.
9
9
  */
10
10
  repoRoot?: string;
11
- /** Derived-manifest extractor; defaults to the workspace-scoped impl from derived-manifest-stub.ts. */
12
- extractDerivedManifest?: (leafPackageDir: string) => import("@component-compass/plugin-core").DerivedLeafPayload | null;
13
11
  /**
14
12
  * Optional shared diagnostic collector. If absent, the resolver creates
15
13
  * its own internal collector accessible via `diagnostics()`.
@@ -52,12 +50,6 @@ export interface LazyResolver {
52
50
  } | null;
53
51
  snapshotComponents(): IndexedComponent[];
54
52
  snapshotManifestRefs(): ManifestRef[];
55
- /**
56
- * Returns the set of package names whose enrichment came from the derived
57
- * extractor (no authored CEM/CCM was found). Used by scan.ts to label
58
- * `enrichmentSource: "derived"` on the snapshot entries for these packages.
59
- */
60
- snapshotDerivedPackages(): Set<string>;
61
53
  diagnostics(): Diagnostic[];
62
54
  /**
63
55
  * Eagerly load each named package's root CEM/CCM (if present) so the
@@ -87,5 +79,40 @@ export interface WarmedResolver extends LazyResolver {
87
79
  lookupByTag(tagName: string): Extract<IndexedComponent, {
88
80
  kind: "custom-element";
89
81
  }> | null;
82
+ /**
83
+ * Look up the custom-element a React wrapper export maps to.
84
+ *
85
+ * Two-tier lookup:
86
+ *
87
+ * **Tier 1 — Direct CEM className match.**
88
+ * When `packageName` has a loaded CEM, scan its `components[]` for a
89
+ * custom-element whose `className === exportName`. Returns
90
+ * `{ tagName, packageName }` on match. This mirrors the second-pass
91
+ * (className-equality) logic of `matchInLeaf`.
92
+ *
93
+ * **Tier 2 — Aggregator-chain fallback.**
94
+ * When `packageName` has no loaded CEM (e.g. it is a barrel/aggregator
95
+ * package that re-exports from leaf packages), scan ALL currently-loaded
96
+ * leaf manifests for any custom-element whose
97
+ * `componentCompass.imports.react[]` declares `export === exportName`.
98
+ * Returns the matching leaf's `{ tagName, packageName }` on match.
99
+ *
100
+ * **Limitation (tier 2):** the scan is export-name-only — it does not have
101
+ * access to the chain specifiers used by `matchInLeaf`'s first pass. If two
102
+ * distinct leaf packages both declare an `imports.react[]` entry with the
103
+ * same `export` name, the first-inserted leaf in `visitedLeafs` wins. In
104
+ * practice this collision cannot occur today (no real CEMs ship
105
+ * `imports.react[]`), but it is a known limitation; specifier-aware
106
+ * disambiguation is a future follow-up if it ever becomes necessary.
107
+ *
108
+ * Returns null when:
109
+ * - `packageName` is not manifest-eligible (excluded by `manifestPatterns`)
110
+ * - tier 1: package has a loaded CEM but no className match
111
+ * - tier 2: no loaded leaf declares `imports.react[]` with a matching export
112
+ */
113
+ lookupReactWrapper(packageName: string, exportName: string): {
114
+ tagName: string;
115
+ packageName: string;
116
+ } | null;
90
117
  }
91
118
  export declare function createLazyResolver(opts: CreateLazyResolverOptions): LazyResolver;
@@ -5,7 +5,6 @@ import picomatch from "picomatch";
5
5
  import { parse as babelParse } from "@babel/parser";
6
6
  import { validateManifest, createDiagnosticCollector, } from "@component-compass/plugin-core";
7
7
  import { parseBarrelTopLevelDetailed, parseBarrelTopLevelDetailedFromAst, } from "./barrel-parser.js";
8
- import { extractDerivedManifest as extractDerivedManifestStub } from "./derived-manifest-stub.js";
9
8
  /**
10
9
  * Hard ceiling on re-export hops a single resolution may walk. Real chains
11
10
  * top out around 10 hops (deep barrel piles); 32 is a pathological-input
@@ -16,7 +15,6 @@ import { extractDerivedManifest as extractDerivedManifestStub } from "./derived-
16
15
  const MAX_REEXPORT_HOPS = 32;
17
16
  export function createLazyResolver(opts) {
18
17
  const { resolveImport } = opts;
19
- const extractDerived = opts.extractDerivedManifest ?? extractDerivedManifestStub;
20
18
  const repoRoot = opts.repoRoot;
21
19
  // Repo-root-relative POSIX path for output stability (so manifestRef.path
22
20
  // and diagnostic.resolvedFile hash/diff identically across machines).
@@ -38,8 +36,6 @@ export function createLazyResolver(opts) {
38
36
  const byTag = new Map();
39
37
  // Leaf packages whose authored manifest has been loaded.
40
38
  const visitedLeafs = new Map();
41
- // Packages whose enrichment came from the derived extractor (not an authored CEM/CCM).
42
- const derivedPackages = new Set();
43
39
  const collector = opts.collector ?? createDiagnosticCollector();
44
40
  // Parsed barrel AST per absolute path. Deep re-export chains (PIE-shaped
45
41
  // monorepos: `pie-webc` → `pie-button` → leaf) revisit the same barrel
@@ -106,28 +102,6 @@ export function createLazyResolver(opts) {
106
102
  }
107
103
  }
108
104
  if (!manifestPath || !manifestSource) {
109
- // No authored manifest — try derived (Phase 4 hook).
110
- const derived = extractDerived(leafDir);
111
- if (derived) {
112
- components = derived.components;
113
- for (const c of components) {
114
- if (c.kind === "custom-element")
115
- byTag.set(c.tagName, c);
116
- }
117
- // Mark this package as derived so `snapshotDerivedPackages()` can
118
- // inform the caller (scan.ts) to label its enrichmentSource correctly.
119
- derivedPackages.add(leafPackage);
120
- // `path: ""` filters this entry out of `snapshotManifestRefs()`. The
121
- // resolver-internal `source` is `ManifestSource` ("cem" | "react" |
122
- // "vue"); "react" is a placeholder here — the artifact-facing
123
- // distinction between authored and derived is carried by
124
- // `OutputManifest.source` (added in Task 8), not this internal field.
125
- visitedLeafs.set(leafPackage, {
126
- components,
127
- manifestRef: { source: "react", packageName: leafPackage, path: "", version: pkgVersion ?? null },
128
- });
129
- return components;
130
- }
131
105
  visitedLeafs.set(leafPackage, {
132
106
  components: [],
133
107
  manifestRef: { source: "cem", packageName: leafPackage, path: "", version: pkgVersion ?? null },
@@ -403,6 +377,37 @@ export function createLazyResolver(opts) {
403
377
  function lookupByTag(tagName) {
404
378
  return byTag.get(tagName) ?? null;
405
379
  }
380
+ function lookupReactWrapper(packageName, exportName) {
381
+ if (!isManifestEligible(packageName))
382
+ return null;
383
+ const cached = visitedLeafs.get(packageName);
384
+ if (cached) {
385
+ for (const c of cached.components) {
386
+ if (c.kind === "custom-element" && c.className === exportName) {
387
+ return { tagName: c.tagName, packageName };
388
+ }
389
+ }
390
+ return null;
391
+ }
392
+ // Aggregator-chain fallback: `packageName` is an aggregator barrel with no
393
+ // CEM of its own (not in visitedLeafs). Search all loaded leaf manifests
394
+ // for a custom-element that explicitly declares this exportName via
395
+ // componentCompass.imports.react[]. This is safe because it relies on an
396
+ // authoritative CEM declaration, not a heuristic tag-name match.
397
+ for (const [leafPkg, leaf] of visitedLeafs) {
398
+ for (const c of leaf.components) {
399
+ if (c.kind !== "custom-element")
400
+ continue;
401
+ const reactImports = c.imports?.react ?? [];
402
+ for (const i of reactImports) {
403
+ if (i.export === exportName) {
404
+ return { tagName: c.tagName, packageName: leafPkg };
405
+ }
406
+ }
407
+ }
408
+ }
409
+ return null;
410
+ }
406
411
  function snapshotComponents() {
407
412
  const out = [];
408
413
  for (const v of visitedLeafs.values())
@@ -417,9 +422,6 @@ export function createLazyResolver(opts) {
417
422
  }
418
423
  return out;
419
424
  }
420
- function snapshotDerivedPackages() {
421
- return new Set(derivedPackages);
422
- }
423
425
  function eagerLoadRoots(packageNames) {
424
426
  // Anchor at <repoRoot>/_ so Node's resolution walks up through
425
427
  // <repoRoot>/node_modules and parents, mirroring resolve-import.ts.
@@ -454,13 +456,13 @@ export function createLazyResolver(opts) {
454
456
  resolveLocalExport,
455
457
  snapshotComponents,
456
458
  snapshotManifestRefs,
457
- snapshotDerivedPackages,
458
459
  diagnostics: () => collector.drain(),
459
460
  warm(packageNames) {
460
461
  eagerLoadRoots(packageNames);
461
462
  return {
462
463
  ...base,
463
464
  lookupByTag,
465
+ lookupReactWrapper,
464
466
  };
465
467
  },
466
468
  _barrelParseCount(absPath) {
@@ -653,7 +655,7 @@ function absorbCcmComponents(manifest, packageName) {
653
655
  // Thread `default` and `type` from each CCM-declared prop through to the
654
656
  // absorbed IndexedComponent. Mirrors `absorbCemDeclarations`' members[]
655
657
  // handling so the `defaultApplied` rollup matcher fires for CCM-sourced
656
- // consumers (manifest-react / manifest-vue outputs) on parity with
658
+ // consumers (hand-authored component-compass-manifest.json) on parity with
657
659
  // CEM-sourced ones.
658
660
  const props = (c.props ?? []).map((p) => {
659
661
  const absorbed = { name: p.name };