@component-compass/reference-graph 0.1.18 → 0.1.20

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.
Files changed (41) hide show
  1. package/dist/builder.d.ts +10 -4
  2. package/dist/builder.js +13 -9
  3. package/dist/builder.js.map +1 -1
  4. package/dist/engine/assert-never.d.ts +1 -1
  5. package/dist/engine/assert-never.js +1 -1
  6. package/dist/engine/component-shape.d.ts +18 -7
  7. package/dist/engine/component-shape.js +48 -18
  8. package/dist/engine/component-shape.js.map +1 -1
  9. package/dist/engine/helper-callers.d.ts +24 -14
  10. package/dist/engine/helper-callers.js +43 -70
  11. package/dist/engine/helper-callers.js.map +1 -1
  12. package/dist/engine/host-element.d.ts +37 -0
  13. package/dist/engine/host-element.js +55 -0
  14. package/dist/engine/host-element.js.map +1 -0
  15. package/dist/engine/index.d.ts +4 -4
  16. package/dist/engine/index.js +181 -91
  17. package/dist/engine/index.js.map +1 -1
  18. package/dist/engine/library-stubs.js +1 -1
  19. package/dist/engine/member-identity.d.ts +9 -10
  20. package/dist/engine/member-identity.js +9 -10
  21. package/dist/engine/member-identity.js.map +1 -1
  22. package/dist/engine/re-export-chain.d.ts +1 -1
  23. package/dist/engine/re-export-chain.js +4 -3
  24. package/dist/engine/re-export-chain.js.map +1 -1
  25. package/dist/engine/registry.d.ts +43 -19
  26. package/dist/engine/registry.js +66 -50
  27. package/dist/engine/registry.js.map +1 -1
  28. package/dist/engine/resolve-reference.js +1 -1
  29. package/dist/engine/resolve-reference.js.map +1 -1
  30. package/dist/engine/resolve-type.d.ts +12 -0
  31. package/dist/engine/resolve-type.js +44 -52
  32. package/dist/engine/resolve-type.js.map +1 -1
  33. package/dist/engine/wrapper-folding.d.ts +22 -3
  34. package/dist/engine/wrapper-folding.js +146 -132
  35. package/dist/engine/wrapper-folding.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.js +1 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/types/file-graph.d.ts +29 -13
  40. package/dist/types/inferred-type.d.ts +2 -1
  41. package/package.json +2 -2
@@ -1,10 +1,9 @@
1
1
  import { MODULE_SCOPE } from "../index.js";
2
- import { evalKind } from "./component-shape.js";
3
2
  import { followReExportChain } from "./re-export-chain.js";
4
3
  /**
5
4
  * Walk the scope chain for `ref.symbol` in `fileGraph.declarations` and
6
5
  * return the first matching BindingDecl, or null if not found. THE
7
- * scope-chain walk (I4) — `registry.ts`'s `resolveUsageTarget` calls this
6
+ * scope-chain walk — `registry.ts`'s `resolveUsageTarget` calls this
8
7
  * seam instead of re-deriving it.
9
8
  */
10
9
  export function findLocalDeclaration(fileGraph, ref) {
@@ -22,46 +21,39 @@ export function findLocalDeclaration(fileGraph, ref) {
22
21
  }
23
22
  }
24
23
  /**
25
- * Component-vs-helper classification for owner attribution. Delegates to
26
- * THE component-shape predicate (`evalKind`, spec D11) this file no longer
27
- * carries its own JSX-bearing walk. A Function or call that is not
28
- * component-shaped is a "helper" (JSX inside it fans out to its callers);
29
- * plain values stay "unknown" so `resolveOwnerChain` treats them as it
30
- * always has.
24
+ * Component-vs-helper classification for owner attribution: owners
25
+ * are registry members, or they fan out. A Function- or call-valued
26
+ * declaration the registry admits is a "component" and owns its JSX; one it
27
+ * does not admit is a "helper", and the JSX inside it belongs to its callers
28
+ * (`resolveOwnerChain`). Plain values stay "unknown".
29
+ *
30
+ * No second shape test and no second naming rule live here: `registry` is
31
+ * the roster view (`excludeHostElementNames` applied), so a lowercase render
32
+ * helper, a capitalised function only ever called (`ActionButtons({…})`),
33
+ * and a dead JSX-returning declaration are all helpers for the same reason —
34
+ * the registry did not admit them.
35
+ *
36
+ * A Vue SFC — the default-exported declaration of a vue-dialect file — is
37
+ * outside the registry by design (it is not typed by this algebra) and the
38
+ * engine admits its identity unconditionally; ownership follows the same
39
+ * rule, so an SFC always owns its template. Any other declaration in a Vue
40
+ * file (a `<script>` helper) is judged like a React one.
31
41
  */
32
- export function classifyDeclaration(decl, graph, originFile) {
33
- const fileGraph = (originFile !== undefined ? graph.files.get(originFile) : undefined) ?? syntheticFileGraph(originFile);
34
- const kind = evalKind(decl.value, graph, fileGraph);
35
- if (kind === "component")
42
+ export function classifyDeclaration(decl, registry, fileGraph) {
43
+ if (decl.value.kind !== "Function" && decl.value.kind !== "ReturnTypeOf")
44
+ return "unknown";
45
+ if (fileGraph.dialect === "vue" && isSfcDeclaration(fileGraph, decl))
36
46
  return "component";
37
- if (decl.value.kind === "Function" || decl.value.kind === "ReturnTypeOf")
38
- return "helper";
39
- return "unknown";
40
- }
41
- /** Tests call `classifyDeclaration(decl, graph)` with no file; give the
42
- * evaluator an empty FileGraph to resolve against. */
43
- function syntheticFileGraph(filePath) {
44
- return {
45
- filePath: filePath ?? "",
46
- dialect: "react",
47
- scopes: new Map([[MODULE_SCOPE, { parent: null }]]),
48
- declarations: new Map(),
49
- imports: [],
50
- importsByLocal: new Map(),
51
- exports: [],
52
- jsxUsages: [],
53
- tagUsages: [],
54
- ownership: [],
55
- bodyCalls: [],
56
- };
47
+ return registry.hasLocal(fileGraph.filePath, decl.symbol) ? "component" : "helper";
57
48
  }
49
+ const isSfcDeclaration = (fileGraph, decl) => fileGraph.exports.some((e) => e.kind === "default" && "local" in e && e.local === decl.symbol);
58
50
  /**
59
51
  * Three-phase build of the helper → component-callers reverse index plus
60
52
  * per-decl classification cache.
61
53
  *
62
54
  * Phase 1 (collect) walks every module-scope `Function`- or
63
55
  * `ReturnTypeOf`-valued BindingDecl across the graph (the latter is a
64
- * factory's product, spec D13), collecting caller-side references from
56
+ * factory's product), collecting caller-side references from
65
57
  * three sources:
66
58
  *
67
59
  * 1. `TypeOf` refs inside the decl's return-type expressions
@@ -79,10 +71,8 @@ function syntheticFileGraph(filePath) {
79
71
  * Without this pass, helper-classified functions consumed via JSX
80
72
  * (the dominant React call shape) never appear as called by anyone.
81
73
  *
82
- * Phase 2 (classify) runs structural classification on every module-scope
83
- * Function- or ReturnTypeOf-valued decl, with a reclassification gate: a decl classified as
84
- * `"component"` but consumed only as a value (never JSX) is reclassified
85
- * as `"helper"`.
74
+ * Phase 2 (classify) runs classification on every module-scope Function- or
75
+ * ReturnTypeOf-valued decl.
86
76
  *
87
77
  * Phase 3 (index) walks the pending value-refs and JSX-calls collected in
88
78
  * phase 1, recording caller edges for targets classified as `"helper"`. Each
@@ -92,14 +82,12 @@ function syntheticFileGraph(filePath) {
92
82
  * Cost: O(declarations × refs-per-declaration + jsx-usages). Cross-file
93
83
  * resolution uses the existing module resolver — no new IO.
94
84
  */
95
- export function buildHelperCallers(graph) {
85
+ export function buildHelperCallers(graph, registry) {
96
86
  // ── Phase 1: collect ────────────────────────────────────────────────────
97
87
  // Per-target accumulators (file::symbol → ...). callerKeysByHelper dedupes
98
- // caller edges in O(1); valueConsumers mirrors the index but indexed by
99
- // target (used in phase 2 for the reclassification rule).
88
+ // caller edges in O(1).
100
89
  const index = new Map();
101
90
  const callerKeysByHelper = new Map();
102
- const valueConsumers = new Map();
103
91
  // Per-decl classification cache populated in phase 2.
104
92
  const classificationCache = new Map();
105
93
  const refResolutionCache = new Map();
@@ -124,18 +112,16 @@ export function buildHelperCallers(graph) {
124
112
  }
125
113
  else if (decl.value.kind === "ReturnTypeOf") {
126
114
  // A factory's product (`const Foo = withLoading(FooView)`) is a
127
- // caller of the factory (spec D13), so JSX inside the factory's body
115
+ // caller of the factory, so JSX inside the factory's body
128
116
  // fans out to each product. Only the CALLEE chain contributes — an
129
117
  // argument is the thing being wrapped, not a value the product
130
- // consumes, and must not feed the reclassification gate. Restricted
131
- // to `ReturnTypeOf` specifically: D13 is about the PRODUCT OF A
132
- // CALL. A bare alias (`const Item = RadioArea`, `TypeOf`) or a
133
- // member alias (`const Root = Primitive.Root`, `MemberOf`) is not a
134
- // call running `collectCalleeRefs` on those would index the alias
135
- // as a caller of what it aliases, flip the aliased declaration's
136
- // classification to "helper" via the reclassification rule, and
137
- // fan its JSX out to the alias instead of leaving it owned by the
138
- // original declaration (found via the cal.diy real-consumer diff).
118
+ // consumes. Restricted to `ReturnTypeOf` specifically: the rule is about
119
+ // the PRODUCT OF A CALL. A bare alias (`const Item = RadioArea`,
120
+ // `TypeOf`) or a member alias (`const Root = Primitive.Root`,
121
+ // `MemberOf`) is not a call running `collectCalleeRefs` on those
122
+ // would index the alias as a caller of what it aliases and fan its
123
+ // JSX out to the alias instead of leaving it owned by the original
124
+ // declaration (found via the cal.diy real-consumer diff).
139
125
  collectCalleeRefs(decl.value, refs);
140
126
  }
141
127
  for (const bc of fileGraph.bodyCalls) {
@@ -148,18 +134,10 @@ export function buildHelperCallers(graph) {
148
134
  if (!target)
149
135
  continue;
150
136
  pendingValueRefs.push({ target, caller: callerKey });
151
- const targetKey = `${target.file}::${target.decl.symbol}`;
152
- let consumerSet = valueConsumers.get(targetKey);
153
- if (!consumerSet) {
154
- consumerSet = new Set();
155
- valueConsumers.set(targetKey, consumerSet);
156
- }
157
- consumerSet.add(`${callerKey.file}::${callerKey.symbol}`);
158
137
  }
159
138
  }
160
139
  }
161
140
  const pendingJsxCalls = [];
162
- const jsxConsumerCount = new Map();
163
141
  for (const [file, fileGraph] of graph.files) {
164
142
  for (let i = 0; i < fileGraph.jsxUsages.length; i++) {
165
143
  const usage = fileGraph.jsxUsages[i];
@@ -168,8 +146,6 @@ export function buildHelperCallers(graph) {
168
146
  const target = resolveRefCached(usage.ref, file, fileGraph);
169
147
  if (!target)
170
148
  continue;
171
- const targetKey = `${target.file}::${target.decl.symbol}`;
172
- jsxConsumerCount.set(targetKey, (jsxConsumerCount.get(targetKey) ?? 0) + 1);
173
149
  const ownership = fileGraph.ownership[i];
174
150
  if (!ownership?.ownerSymbolRef)
175
151
  continue;
@@ -185,24 +161,21 @@ export function buildHelperCallers(graph) {
185
161
  }
186
162
  }
187
163
  // ── Phase 2: classify ───────────────────────────────────────────────────
188
- // Structural classification, then reclassification gate.
164
+ // One judge: the registry. A member owns its JSX; anything else
165
+ // JSX-returning is a helper whose JSX fans out to its callers.
189
166
  function classifyKey(file, decl) {
190
167
  const key = `${file}::${decl.symbol}`;
191
168
  const hit = classificationCache.get(key);
192
169
  if (hit !== undefined)
193
170
  return hit;
194
- let result = classifyDeclaration(decl, graph, file);
195
- if (result === "component"
196
- && (jsxConsumerCount.get(key) ?? 0) === 0
197
- && (valueConsumers.get(key)?.size ?? 0) > 0) {
198
- result = "helper";
199
- }
171
+ const fileGraph = graph.files.get(file);
172
+ const result = fileGraph ? classifyDeclaration(decl, registry, fileGraph) : "unknown";
200
173
  classificationCache.set(key, result);
201
174
  return result;
202
175
  }
203
176
  // Walk every module-scope Function- or ReturnTypeOf-valued decl so its
204
177
  // classification lands in the cache before resolveOwnerChain runs (a
205
- // factory's product is ReturnTypeOf-valued — spec D13). Other decls
178
+ // factory's product is ReturnTypeOf-valued). Other decls
206
179
  // classify lazily via the same path.
207
180
  for (const [file, fileGraph] of graph.files) {
208
181
  for (const decl of fileGraph.declarations.values()) {
@@ -352,7 +325,7 @@ export function resolveRefToDecl(ref, callerFile, callerGraph, graph) {
352
325
  // Fallback: locally-defined named/default exports at the resolved target.
353
326
  // Reached when followReExportChain returned null but the target file's
354
327
  // local exports may still match the imported symbol. Star entries are
355
- // handled inside followReExportChain (#158); they don't need handling here.
328
+ // handled inside followReExportChain; they don't need handling here.
356
329
  for (const exp of targetGraph.exports) {
357
330
  if (exp.kind === "named" && "local" in exp && exp.exportedAs === imp.imported) {
358
331
  const decl = targetGraph.declarations.get(`${MODULE_SCOPE}::${exp.local}`);
@@ -1 +1 @@
1
- {"version":3,"file":"helper-callers.js","sourceRoot":"","sources":["../../src/engine/helper-callers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper-callers.js","sourceRoot":"","sources":["../../src/engine/helper-callers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { FileGraph } from "../index.js";
2
+ /**
3
+ * THE JSX host-element naming rule. JSX compiles a bare,
4
+ * lowercase-initial element name to a string — `div`, `svg`, `web-button` —
5
+ * so such a name can never denote a component binding. `_Foo` and `$x` ARE
6
+ * component references: the rule is `/^[a-z]/`, not "is not PascalCase".
7
+ *
8
+ * Takes a BARE name. A member expression (`<foo.Bar/>`) is never an
9
+ * intrinsic, so a caller holding a reference checks `memberChain.length === 0`
10
+ * first (`isHostElementRoot`, `engine/index.ts`).
11
+ *
12
+ * `isPascalCase` in `ast-utils/src/find-owner.ts` and
13
+ * `cli/src/local-index/detect-react.ts` is a DIFFERENT predicate (`/^[A-Z]/`,
14
+ * which rejects `_Foo`). Do not fold them into this one.
15
+ */
16
+ export declare function isHostElementName(name: string): boolean;
17
+ /**
18
+ * THE "this declaration can never be rendered as a component" test:
19
+ * every name it could be rendered under is a host-element name. Roster
20
+ * membership calls it (`excludeHostElementNames`, `registry.ts`); owner
21
+ * classification (`classifyDeclaration`, `helper-callers.ts`) consults that
22
+ * narrowed roster rather than this rule, so it is stated once and
23
+ * judged once.
24
+ *
25
+ * Two exemptions, both about which name a renderer actually sees:
26
+ *
27
+ * - A **default export** — the importer picks the name, so the local one
28
+ * carries no information (`export default () => <div/>` declares the
29
+ * symbol `default`; `const view = …; export default view` declares `view`).
30
+ * - A **component-named export alias** — `export { helper as Button }` is
31
+ * rendered as `<Button/>` by every importer.
32
+ *
33
+ * The alias is read from the file's export records, not from
34
+ * `BindingDecl.exportedAs`: that field is declared on the type but no parser
35
+ * writes it.
36
+ */
37
+ export declare function hasOnlyHostElementNames(symbol: string, fileGraph: FileGraph | undefined): boolean;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * THE JSX host-element naming rule. JSX compiles a bare,
3
+ * lowercase-initial element name to a string — `div`, `svg`, `web-button` —
4
+ * so such a name can never denote a component binding. `_Foo` and `$x` ARE
5
+ * component references: the rule is `/^[a-z]/`, not "is not PascalCase".
6
+ *
7
+ * Takes a BARE name. A member expression (`<foo.Bar/>`) is never an
8
+ * intrinsic, so a caller holding a reference checks `memberChain.length === 0`
9
+ * first (`isHostElementRoot`, `engine/index.ts`).
10
+ *
11
+ * `isPascalCase` in `ast-utils/src/find-owner.ts` and
12
+ * `cli/src/local-index/detect-react.ts` is a DIFFERENT predicate (`/^[A-Z]/`,
13
+ * which rejects `_Foo`). Do not fold them into this one.
14
+ */
15
+ export function isHostElementName(name) {
16
+ return /^[a-z]/.test(name);
17
+ }
18
+ /**
19
+ * THE "this declaration can never be rendered as a component" test:
20
+ * every name it could be rendered under is a host-element name. Roster
21
+ * membership calls it (`excludeHostElementNames`, `registry.ts`); owner
22
+ * classification (`classifyDeclaration`, `helper-callers.ts`) consults that
23
+ * narrowed roster rather than this rule, so it is stated once and
24
+ * judged once.
25
+ *
26
+ * Two exemptions, both about which name a renderer actually sees:
27
+ *
28
+ * - A **default export** — the importer picks the name, so the local one
29
+ * carries no information (`export default () => <div/>` declares the
30
+ * symbol `default`; `const view = …; export default view` declares `view`).
31
+ * - A **component-named export alias** — `export { helper as Button }` is
32
+ * rendered as `<Button/>` by every importer.
33
+ *
34
+ * The alias is read from the file's export records, not from
35
+ * `BindingDecl.exportedAs`: that field is declared on the type but no parser
36
+ * writes it.
37
+ */
38
+ export function hasOnlyHostElementNames(symbol, fileGraph) {
39
+ if (!isHostElementName(symbol))
40
+ return false;
41
+ if (symbol === "default")
42
+ return false;
43
+ if (fileGraph === undefined)
44
+ return true;
45
+ for (const exp of fileGraph.exports) {
46
+ if (!("local" in exp) || exp.local !== symbol)
47
+ continue;
48
+ if (exp.kind === "default")
49
+ return false;
50
+ if (!isHostElementName(exp.exportedAs))
51
+ return false;
52
+ }
53
+ return true;
54
+ }
55
+ //# sourceMappingURL=host-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-element.js","sourceRoot":"","sources":["../../src/engine/host-element.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,SAAgC;IACtF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,SAAS;QACxD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -64,8 +64,8 @@ export type EngineOccurrence = {
64
64
  };
65
65
  export type ResolvedGraph = {
66
66
  occurrences: EngineOccurrence[];
67
- /** The component registry this resolution admitted identities against
68
- * (spec D1). The CLI's roster join (`buildComponentSeeds`) reads it. */
67
+ /** The component registry this resolution admitted identities against.
68
+ * The CLI's roster join (`buildComponentSeeds`) reads it. */
69
69
  registry: ComponentRegistry;
70
70
  };
71
71
  /**
@@ -102,14 +102,14 @@ export type ResolveOpts = {
102
102
  packageName: string;
103
103
  } | null;
104
104
  /**
105
- * Optional external leaf resolver (#242). Called when an external
105
+ * Optional external leaf resolver. Called when an external
106
106
  * react-component identity is constructed, with the importing graph file,
107
107
  * the import specifier that produced the identity, and the export name.
108
108
  * When the host's re-export chain walk lands in a DIFFERENT package, the
109
109
  * returned {leafPackage, modulePath, exportName} replaces the
110
110
  * specifier-derived identity — the wrapper export is defined in the leaf,
111
111
  * so package-of-definition identity is the leaf (external analogue of the
112
- * local barrel re-wrap follow, #147/#324). Same-package hits are ignored
112
+ * local barrel re-wrap follow). Same-package hits are ignored
113
113
  * (identity already correct); the call is still made so the host can
114
114
  * terminal-load the leaf manifest as a side effect for `wrapCallback`.
115
115
  * Engine never imports resolver types — only this return shape.