@component-compass/reference-graph 0.1.19 → 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.
- package/dist/builder.d.ts +3 -3
- package/dist/builder.js +4 -6
- package/dist/builder.js.map +1 -1
- package/dist/engine/assert-never.d.ts +1 -1
- package/dist/engine/assert-never.js +1 -1
- package/dist/engine/component-shape.d.ts +18 -7
- package/dist/engine/component-shape.js +48 -18
- package/dist/engine/component-shape.js.map +1 -1
- package/dist/engine/helper-callers.d.ts +7 -10
- package/dist/engine/helper-callers.js +18 -23
- package/dist/engine/helper-callers.js.map +1 -1
- package/dist/engine/host-element.d.ts +3 -3
- package/dist/engine/host-element.js +3 -3
- package/dist/engine/index.d.ts +4 -4
- package/dist/engine/index.js +94 -77
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/library-stubs.js +1 -1
- package/dist/engine/member-identity.d.ts +9 -10
- package/dist/engine/member-identity.js +9 -10
- package/dist/engine/member-identity.js.map +1 -1
- package/dist/engine/re-export-chain.d.ts +1 -1
- package/dist/engine/re-export-chain.js +4 -3
- package/dist/engine/re-export-chain.js.map +1 -1
- package/dist/engine/registry.d.ts +21 -23
- package/dist/engine/registry.js +20 -20
- package/dist/engine/registry.js.map +1 -1
- package/dist/engine/resolve-reference.js +1 -1
- package/dist/engine/resolve-reference.js.map +1 -1
- package/dist/engine/resolve-type.d.ts +12 -0
- package/dist/engine/resolve-type.js +44 -52
- package/dist/engine/resolve-type.js.map +1 -1
- package/dist/engine/wrapper-folding.d.ts +22 -3
- package/dist/engine/wrapper-folding.js +146 -132
- package/dist/engine/wrapper-folding.js.map +1 -1
- package/dist/types/file-graph.d.ts +9 -14
- package/dist/types/inferred-type.d.ts +2 -1
- package/package.json +2 -2
package/dist/builder.d.ts
CHANGED
|
@@ -59,18 +59,18 @@ export interface FileBuilder {
|
|
|
59
59
|
* (or vice versa). No-op when no tag-kind ownership entry exists. */
|
|
60
60
|
setTagOwner(ownerSymbolRef: Reference | null, viaOverride?: OccurrenceVia): void;
|
|
61
61
|
/** Same as setOwner but addresses a specific ownership entry by index.
|
|
62
|
-
* Used by parser-react's prop-forward finalize pass
|
|
62
|
+
* Used by parser-react's prop-forward finalize pass to re-attribute
|
|
63
63
|
* the original construction-site ownership entry without disturbing later
|
|
64
64
|
* fan-out duplicates. */
|
|
65
65
|
setOwnerAt(usageIdx: number, ownerSymbolRef: Reference | null, viaOverride?: OccurrenceVia): void;
|
|
66
66
|
/** Returns the current count of emitted JsxUsages in this file. Pragmatic
|
|
67
|
-
* read accessor — used by parser-react's prop-forward registration
|
|
67
|
+
* read accessor — used by parser-react's prop-forward registration
|
|
68
68
|
* to capture the index of the construction-site JsxUsage emitted during
|
|
69
69
|
* walkJsxIn. Kept minimal to preserve the otherwise-write-only contract. */
|
|
70
70
|
jsxUsageCount(): number;
|
|
71
71
|
/** Returns a structural snapshot of the JsxUsage at the given index, or
|
|
72
72
|
* undefined if out of range. Pragmatic read accessor — used by
|
|
73
|
-
* parser-react's prop-forward finalize
|
|
73
|
+
* parser-react's prop-forward finalize pass to clone every
|
|
74
74
|
* usage in a binding's init range for multi-read fan-out. Returns a
|
|
75
75
|
* shallow copy of the stored fields to keep the builder's internal array
|
|
76
76
|
* encapsulated. */
|
package/dist/builder.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
// API surface
|
|
2
|
-
//
|
|
3
|
-
// - parser-vue: paper sketch (Task 0.2, see plan doc)
|
|
4
|
-
// Members not justified by either should not be added speculatively.
|
|
1
|
+
// API surface is justified by its emitters (parser-react, parser-vue).
|
|
2
|
+
// Members not justified by one should not be added speculatively.
|
|
5
3
|
import { isAbsolute, relative, resolve } from "node:path";
|
|
6
4
|
import { posixPath } from "@component-compass/plugin-core";
|
|
7
5
|
import { MODULE_SCOPE } from "./index.js";
|
|
@@ -212,8 +210,8 @@ export function createGraphBuilder(opts) {
|
|
|
212
210
|
};
|
|
213
211
|
// Graph keys are repoRoot-relative, but the host's moduleResolver
|
|
214
212
|
// anchors relative `from` paths against its OWN root, which may
|
|
215
|
-
// differ (e.g. the workspace root when scanning a monorepo subdir
|
|
216
|
-
//
|
|
213
|
+
// differ (e.g. the workspace root when scanning a monorepo subdir).
|
|
214
|
+
// Absolutise `from` against the graph's repoRoot before
|
|
217
215
|
// delegating so relative-specifier resolution is anchor-invariant.
|
|
218
216
|
const moduleResolver = (from, spec) => opts.moduleResolver(isAbsolute(from) ? from : resolve(repoRoot, from), spec);
|
|
219
217
|
return {
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Exhaustiveness guard for every `switch (type.kind)` over `InferredType`
|
|
3
|
-
*
|
|
3
|
+
* Reaching it is a type error at compile time — adding a kind to
|
|
4
4
|
* the IR must fail to build in every interpreter — and a loud error at
|
|
5
5
|
* runtime for the one way TypeScript can be bypassed (a cast).
|
|
6
6
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Exhaustiveness guard for every `switch (type.kind)` over `InferredType`
|
|
3
|
-
*
|
|
3
|
+
* Reaching it is a type error at compile time — adding a kind to
|
|
4
4
|
* the IR must fail to build in every interpreter — and a loud error at
|
|
5
5
|
* runtime for the one way TypeScript can be bypassed (a cast).
|
|
6
6
|
*/
|
|
@@ -2,7 +2,7 @@ import type { FileGraph, Graph, InferredType } from "../index.js";
|
|
|
2
2
|
import { type ArgumentMap } from "./argument-map.js";
|
|
3
3
|
import { type CycleGuard } from "./cycle-detection.js";
|
|
4
4
|
/**
|
|
5
|
-
* THE component-shape predicate
|
|
5
|
+
* THE component-shape predicate. Reduces an InferredType
|
|
6
6
|
* to what its VALUE is:
|
|
7
7
|
*
|
|
8
8
|
* "jsx" — a JSX value (`const br = <br/>`, or what calling a
|
|
@@ -10,14 +10,14 @@ import { type CycleGuard } from "./cycle-detection.js";
|
|
|
10
10
|
* "component" — a function whose returns are DIRECTLY JSX, or a call that
|
|
11
11
|
* evaluates to one.
|
|
12
12
|
* "unresolved" — bottoms out at an import the graph cannot see with nothing
|
|
13
|
-
* component-shaped in hand
|
|
13
|
+
* component-shaped in hand.
|
|
14
14
|
* "other" — anything else: factories, data, hooks, strings.
|
|
15
15
|
*
|
|
16
16
|
* The non-recursion into nested Function returns is load-bearing: a Function
|
|
17
17
|
* whose return is itself a Function evaluates that return to "component",
|
|
18
18
|
* not "jsx", so the outer function is "other" — a factory. That single rule
|
|
19
|
-
* separates `createField` from its products
|
|
20
|
-
*
|
|
19
|
+
* separates `createField` from its products. Do not add a second
|
|
20
|
+
* implementation anywhere; every
|
|
21
21
|
* caller — registry membership, owner classification, occurrence admission —
|
|
22
22
|
* calls this one. Named in docs/CONTEXT.md ("Component-shape seam").
|
|
23
23
|
*/
|
|
@@ -26,13 +26,24 @@ export declare function evalKind(type: InferredType, graph: Graph, fileGraph: Fi
|
|
|
26
26
|
export declare function isComponentShaped(type: InferredType, graph: Graph, fileGraph: FileGraph): boolean;
|
|
27
27
|
/** A TypeOf (possibly under a ReturnTypeOf chain, or a MemberOf access on
|
|
28
28
|
* one — `Sentry.withProfiler`) that names an import the graph cannot
|
|
29
|
-
* resolve — the shape the opaque-HOC fold synthesises identity from
|
|
30
|
-
* Unwrapping MemberOf.obj is what lets
|
|
29
|
+
* resolve — the shape the opaque-HOC fold synthesises identity from.
|
|
30
|
+
* Unwrapping MemberOf.obj is what lets the render-callback
|
|
31
31
|
* narrowing correctly except FOR an import-backed namespace member call.
|
|
32
32
|
*
|
|
33
|
-
* Exported
|
|
33
|
+
* Exported: `wrapper-folding.ts`'s opaque-callee identity-fold
|
|
34
34
|
* step shares this EXACT predicate for its parallel "is this a data-method
|
|
35
35
|
* render call, not a wrapper" decision — never re-derive it there. Takes
|
|
36
36
|
* plain params (not this module's private `Ctx`) so a caller outside this
|
|
37
37
|
* file doesn't need to construct one. */
|
|
38
38
|
export declare function isImportBackedLeaf(t: InferredType, graph: Graph, fileGraph: FileGraph, guard: CycleGuard): boolean;
|
|
39
|
+
/** Answers "is there an `import()` anywhere in this value" — for reporting
|
|
40
|
+
* only. It descends every node kind that can hold one and never claims a
|
|
41
|
+
* projection, so the specifier it hands back names the import the diagnostic
|
|
42
|
+
* points at, nothing more.
|
|
43
|
+
*
|
|
44
|
+
* Not `findFirstDynamicImport` (`wrapper-folding.ts`): that one decides
|
|
45
|
+
* credit, is deliberately narrower, and is the only one that may claim a
|
|
46
|
+
* projection. */
|
|
47
|
+
export declare function firstDynamicImport(t: InferredType): Extract<InferredType, {
|
|
48
|
+
kind: "DynamicImport";
|
|
49
|
+
}> | null;
|
|
@@ -46,7 +46,7 @@ function evalInner(t, ctx) {
|
|
|
46
46
|
for (const { type: obj } of objs) {
|
|
47
47
|
if (obj.kind !== "Object")
|
|
48
48
|
continue;
|
|
49
|
-
//
|
|
49
|
+
// A dynamic-key access (`BannerComponent[type]`)
|
|
50
50
|
// could select any prop at runtime — merge the shape of every
|
|
51
51
|
// prop the object carries, the same "any branch could be it"
|
|
52
52
|
// treatment Union already gets.
|
|
@@ -70,10 +70,10 @@ function evalInner(t, ctx) {
|
|
|
70
70
|
case "DynamicImport":
|
|
71
71
|
// A literal array of JSX elements is deliberately "other", the same
|
|
72
72
|
// treatment a Function returning Object-containing-JSX gets ("data
|
|
73
|
-
// factory"): helper-callers.ts's helper/component split
|
|
73
|
+
// factory"): helper-callers.ts's helper/component split depends
|
|
74
74
|
// on a Function returning Array<JSX> classifying as a helper, not a
|
|
75
75
|
// component, so its callers attribute correctly via helper-call
|
|
76
|
-
// chains instead of it becoming a standalone identity.
|
|
76
|
+
// chains instead of it becoming a standalone identity. The
|
|
77
77
|
// ".map(render)" and dynamic-member patterns don't need this arm —
|
|
78
78
|
// both resolve to "jsx" through evalCall's opaque-MemberOf-callee
|
|
79
79
|
// rule and the MemberOf DYNAMIC_MEMBER_KEY merge instead.
|
|
@@ -98,18 +98,18 @@ function evalCall(t, ctx) {
|
|
|
98
98
|
resolvable.push(f);
|
|
99
99
|
}
|
|
100
100
|
if (resolvable.length === 0) {
|
|
101
|
-
// Opaque callee
|
|
101
|
+
// Opaque callee: component iff some argument is
|
|
102
102
|
// component-shaped or an import-backed leaf the engine will fold to.
|
|
103
103
|
const carries = t.args.some((a) => evalInner(a, ctx) === "component" || isImportBackedLeaf(a, ctx.graph, ctx.fileGraph, ctx.guard));
|
|
104
104
|
if (!carries)
|
|
105
105
|
return "unresolved";
|
|
106
|
-
//
|
|
106
|
+
// A method call on non-import-backed data — a parameter,
|
|
107
107
|
// a local array/object literal, a hook result, a global like
|
|
108
108
|
// `Object.keys(x)` — with a component-shaped argument is a *render
|
|
109
109
|
// callback* (`items.map(({...}) => <Button/>)`), not a wrapper that
|
|
110
110
|
// takes a component as a prop: the call's OUTPUT is rendered JSX, not a
|
|
111
|
-
// component. An import-backed callee (the
|
|
112
|
-
//
|
|
111
|
+
// component. An import-backed callee (the genuinely unresolvable HOC)
|
|
112
|
+
// keeps "component". wrapper-folding.ts's
|
|
113
113
|
// opaque step shares this exact condition (isImportBackedLeaf, exported
|
|
114
114
|
// below) for the parallel identity-folding decision — don't re-derive it.
|
|
115
115
|
if (t.callee.kind === "MemberOf" && !isImportBackedLeaf(t.callee, ctx.graph, ctx.fileGraph, ctx.guard))
|
|
@@ -138,11 +138,11 @@ function isImportBacked(t, graph, fileGraph) {
|
|
|
138
138
|
}
|
|
139
139
|
/** A TypeOf (possibly under a ReturnTypeOf chain, or a MemberOf access on
|
|
140
140
|
* one — `Sentry.withProfiler`) that names an import the graph cannot
|
|
141
|
-
* resolve — the shape the opaque-HOC fold synthesises identity from
|
|
142
|
-
* Unwrapping MemberOf.obj is what lets
|
|
141
|
+
* resolve — the shape the opaque-HOC fold synthesises identity from.
|
|
142
|
+
* Unwrapping MemberOf.obj is what lets the render-callback
|
|
143
143
|
* narrowing correctly except FOR an import-backed namespace member call.
|
|
144
144
|
*
|
|
145
|
-
* Exported
|
|
145
|
+
* Exported: `wrapper-folding.ts`'s opaque-callee identity-fold
|
|
146
146
|
* step shares this EXACT predicate for its parallel "is this a data-method
|
|
147
147
|
* render call, not a wrapper" decision — never re-derive it there. Takes
|
|
148
148
|
* plain params (not this module's private `Ctx`) so a caller outside this
|
|
@@ -158,20 +158,50 @@ export function isImportBackedLeaf(t, graph, fileGraph, guard) {
|
|
|
158
158
|
return false;
|
|
159
159
|
return resolveReference(graph, fileGraph, cur.ref, guard).kind === "Unknown";
|
|
160
160
|
}
|
|
161
|
-
|
|
161
|
+
/** Answers "is there an `import()` anywhere in this value" — for reporting
|
|
162
|
+
* only. It descends every node kind that can hold one and never claims a
|
|
163
|
+
* projection, so the specifier it hands back names the import the diagnostic
|
|
164
|
+
* points at, nothing more.
|
|
165
|
+
*
|
|
166
|
+
* Not `findFirstDynamicImport` (`wrapper-folding.ts`): that one decides
|
|
167
|
+
* credit, is deliberately narrower, and is the only one that may claim a
|
|
168
|
+
* projection. */
|
|
169
|
+
export function firstDynamicImport(t) {
|
|
162
170
|
switch (t.kind) {
|
|
163
171
|
case "DynamicImport":
|
|
164
|
-
return
|
|
172
|
+
return t;
|
|
165
173
|
case "Function":
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
174
|
+
for (const r of t.returns) {
|
|
175
|
+
const hit = firstDynamicImport(r);
|
|
176
|
+
if (hit)
|
|
177
|
+
return hit;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
case "ReturnTypeOf": {
|
|
181
|
+
const inCallee = firstDynamicImport(t.callee);
|
|
182
|
+
if (inCallee)
|
|
183
|
+
return inCallee;
|
|
184
|
+
for (const a of t.args) {
|
|
185
|
+
const hit = firstDynamicImport(a);
|
|
186
|
+
if (hit)
|
|
187
|
+
return hit;
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
169
191
|
case "MemberOf":
|
|
170
|
-
return
|
|
192
|
+
return firstDynamicImport(t.obj);
|
|
171
193
|
case "Union":
|
|
172
|
-
|
|
194
|
+
for (const u of t.types) {
|
|
195
|
+
const hit = firstDynamicImport(u);
|
|
196
|
+
if (hit)
|
|
197
|
+
return hit;
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
173
200
|
default:
|
|
174
|
-
return
|
|
201
|
+
return null;
|
|
175
202
|
}
|
|
176
203
|
}
|
|
204
|
+
function containsDynamicImport(t) {
|
|
205
|
+
return firstDynamicImport(t) !== null;
|
|
206
|
+
}
|
|
177
207
|
//# sourceMappingURL=component-shape.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-shape.js","sourceRoot":"","sources":["../../src/engine/component-shape.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"component-shape.js","sourceRoot":"","sources":["../../src/engine/component-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,21 @@ import type { ComponentRegistry } from "./registry.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Walk the scope chain for `ref.symbol` in `fileGraph.declarations` and
|
|
5
5
|
* return the first matching BindingDecl, or null if not found. THE
|
|
6
|
-
* scope-chain walk
|
|
6
|
+
* scope-chain walk — `registry.ts`'s `resolveUsageTarget` calls this
|
|
7
7
|
* seam instead of re-deriving it.
|
|
8
8
|
*/
|
|
9
9
|
export declare function findLocalDeclaration(fileGraph: FileGraph, ref: Reference): BindingDecl | null;
|
|
10
10
|
export type Classification = "component" | "helper" | "unknown";
|
|
11
11
|
/**
|
|
12
|
-
* Component-vs-helper classification for owner attribution
|
|
12
|
+
* Component-vs-helper classification for owner attribution: owners
|
|
13
13
|
* are registry members, or they fan out. A Function- or call-valued
|
|
14
14
|
* declaration the registry admits is a "component" and owns its JSX; one it
|
|
15
15
|
* does not admit is a "helper", and the JSX inside it belongs to its callers
|
|
16
|
-
* (`resolveOwnerChain`). Plain values stay "unknown"
|
|
17
|
-
* treats them as it always has.
|
|
16
|
+
* (`resolveOwnerChain`). Plain values stay "unknown".
|
|
18
17
|
*
|
|
19
18
|
* No second shape test and no second naming rule live here: `registry` is
|
|
20
19
|
* the roster view (`excludeHostElementNames` applied), so a lowercase render
|
|
21
|
-
* helper
|
|
20
|
+
* helper, a capitalised function only ever called (`ActionButtons({…})`),
|
|
22
21
|
* and a dead JSX-returning declaration are all helpers for the same reason —
|
|
23
22
|
* the registry did not admit them.
|
|
24
23
|
*
|
|
@@ -45,7 +44,7 @@ export type ClassifiedHelperIndex = HelperCallerIndex & {
|
|
|
45
44
|
*
|
|
46
45
|
* Phase 1 (collect) walks every module-scope `Function`- or
|
|
47
46
|
* `ReturnTypeOf`-valued BindingDecl across the graph (the latter is a
|
|
48
|
-
* factory's product
|
|
47
|
+
* factory's product), collecting caller-side references from
|
|
49
48
|
* three sources:
|
|
50
49
|
*
|
|
51
50
|
* 1. `TypeOf` refs inside the decl's return-type expressions
|
|
@@ -63,10 +62,8 @@ export type ClassifiedHelperIndex = HelperCallerIndex & {
|
|
|
63
62
|
* Without this pass, helper-classified functions consumed via JSX
|
|
64
63
|
* (the dominant React call shape) never appear as called by anyone.
|
|
65
64
|
*
|
|
66
|
-
* Phase 2 (classify) runs
|
|
67
|
-
*
|
|
68
|
-
* `"component"` but consumed only as a value (never JSX) is reclassified
|
|
69
|
-
* as `"helper"`.
|
|
65
|
+
* Phase 2 (classify) runs classification on every module-scope Function- or
|
|
66
|
+
* ReturnTypeOf-valued decl.
|
|
70
67
|
*
|
|
71
68
|
* Phase 3 (index) walks the pending value-refs and JSX-calls collected in
|
|
72
69
|
* phase 1, recording caller edges for targets classified as `"helper"`. Each
|
|
@@ -3,7 +3,7 @@ import { followReExportChain } from "./re-export-chain.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Walk the scope chain for `ref.symbol` in `fileGraph.declarations` and
|
|
5
5
|
* return the first matching BindingDecl, or null if not found. THE
|
|
6
|
-
* scope-chain walk
|
|
6
|
+
* scope-chain walk — `registry.ts`'s `resolveUsageTarget` calls this
|
|
7
7
|
* seam instead of re-deriving it.
|
|
8
8
|
*/
|
|
9
9
|
export function findLocalDeclaration(fileGraph, ref) {
|
|
@@ -21,16 +21,15 @@ export function findLocalDeclaration(fileGraph, ref) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Component-vs-helper classification for owner attribution
|
|
24
|
+
* Component-vs-helper classification for owner attribution: owners
|
|
25
25
|
* are registry members, or they fan out. A Function- or call-valued
|
|
26
26
|
* declaration the registry admits is a "component" and owns its JSX; one it
|
|
27
27
|
* does not admit is a "helper", and the JSX inside it belongs to its callers
|
|
28
|
-
* (`resolveOwnerChain`). Plain values stay "unknown"
|
|
29
|
-
* treats them as it always has.
|
|
28
|
+
* (`resolveOwnerChain`). Plain values stay "unknown".
|
|
30
29
|
*
|
|
31
30
|
* No second shape test and no second naming rule live here: `registry` is
|
|
32
31
|
* the roster view (`excludeHostElementNames` applied), so a lowercase render
|
|
33
|
-
* helper
|
|
32
|
+
* helper, a capitalised function only ever called (`ActionButtons({…})`),
|
|
34
33
|
* and a dead JSX-returning declaration are all helpers for the same reason —
|
|
35
34
|
* the registry did not admit them.
|
|
36
35
|
*
|
|
@@ -54,7 +53,7 @@ const isSfcDeclaration = (fileGraph, decl) => fileGraph.exports.some((e) => e.ki
|
|
|
54
53
|
*
|
|
55
54
|
* Phase 1 (collect) walks every module-scope `Function`- or
|
|
56
55
|
* `ReturnTypeOf`-valued BindingDecl across the graph (the latter is a
|
|
57
|
-
* factory's product
|
|
56
|
+
* factory's product), collecting caller-side references from
|
|
58
57
|
* three sources:
|
|
59
58
|
*
|
|
60
59
|
* 1. `TypeOf` refs inside the decl's return-type expressions
|
|
@@ -72,10 +71,8 @@ const isSfcDeclaration = (fileGraph, decl) => fileGraph.exports.some((e) => e.ki
|
|
|
72
71
|
* Without this pass, helper-classified functions consumed via JSX
|
|
73
72
|
* (the dominant React call shape) never appear as called by anyone.
|
|
74
73
|
*
|
|
75
|
-
* Phase 2 (classify) runs
|
|
76
|
-
*
|
|
77
|
-
* `"component"` but consumed only as a value (never JSX) is reclassified
|
|
78
|
-
* as `"helper"`.
|
|
74
|
+
* Phase 2 (classify) runs classification on every module-scope Function- or
|
|
75
|
+
* ReturnTypeOf-valued decl.
|
|
79
76
|
*
|
|
80
77
|
* Phase 3 (index) walks the pending value-refs and JSX-calls collected in
|
|
81
78
|
* phase 1, recording caller edges for targets classified as `"helper"`. Each
|
|
@@ -115,18 +112,16 @@ export function buildHelperCallers(graph, registry) {
|
|
|
115
112
|
}
|
|
116
113
|
else if (decl.value.kind === "ReturnTypeOf") {
|
|
117
114
|
// A factory's product (`const Foo = withLoading(FooView)`) is a
|
|
118
|
-
// caller of the factory
|
|
115
|
+
// caller of the factory, so JSX inside the factory's body
|
|
119
116
|
// fans out to each product. Only the CALLEE chain contributes — an
|
|
120
117
|
// argument is the thing being wrapped, not a value the product
|
|
121
|
-
// consumes
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
// fan its JSX out to the alias instead of leaving it owned by the
|
|
129
|
-
// 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).
|
|
130
125
|
collectCalleeRefs(decl.value, refs);
|
|
131
126
|
}
|
|
132
127
|
for (const bc of fileGraph.bodyCalls) {
|
|
@@ -166,7 +161,7 @@ export function buildHelperCallers(graph, registry) {
|
|
|
166
161
|
}
|
|
167
162
|
}
|
|
168
163
|
// ── Phase 2: classify ───────────────────────────────────────────────────
|
|
169
|
-
// One judge
|
|
164
|
+
// One judge: the registry. A member owns its JSX; anything else
|
|
170
165
|
// JSX-returning is a helper whose JSX fans out to its callers.
|
|
171
166
|
function classifyKey(file, decl) {
|
|
172
167
|
const key = `${file}::${decl.symbol}`;
|
|
@@ -180,7 +175,7 @@ export function buildHelperCallers(graph, registry) {
|
|
|
180
175
|
}
|
|
181
176
|
// Walk every module-scope Function- or ReturnTypeOf-valued decl so its
|
|
182
177
|
// classification lands in the cache before resolveOwnerChain runs (a
|
|
183
|
-
// factory's product is ReturnTypeOf-valued
|
|
178
|
+
// factory's product is ReturnTypeOf-valued). Other decls
|
|
184
179
|
// classify lazily via the same path.
|
|
185
180
|
for (const [file, fileGraph] of graph.files) {
|
|
186
181
|
for (const decl of fileGraph.declarations.values()) {
|
|
@@ -330,7 +325,7 @@ export function resolveRefToDecl(ref, callerFile, callerGraph, graph) {
|
|
|
330
325
|
// Fallback: locally-defined named/default exports at the resolved target.
|
|
331
326
|
// Reached when followReExportChain returned null but the target file's
|
|
332
327
|
// local exports may still match the imported symbol. Star entries are
|
|
333
|
-
// handled inside followReExportChain
|
|
328
|
+
// handled inside followReExportChain; they don't need handling here.
|
|
334
329
|
for (const exp of targetGraph.exports) {
|
|
335
330
|
if (exp.kind === "named" && "local" in exp && exp.exportedAs === imp.imported) {
|
|
336
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAoB,EAAE,GAAc;IACvE,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,KAAK,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACnD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzD,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;AACH,CAAC;AAID
|
|
1
|
+
{"version":3,"file":"helper-callers.js","sourceRoot":"","sources":["../../src/engine/helper-callers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FileGraph } from "../index.js";
|
|
2
2
|
/**
|
|
3
|
-
* THE JSX host-element naming rule
|
|
3
|
+
* THE JSX host-element naming rule. JSX compiles a bare,
|
|
4
4
|
* lowercase-initial element name to a string — `div`, `svg`, `web-button` —
|
|
5
5
|
* so such a name can never denote a component binding. `_Foo` and `$x` ARE
|
|
6
6
|
* component references: the rule is `/^[a-z]/`, not "is not PascalCase".
|
|
@@ -15,11 +15,11 @@ import type { FileGraph } from "../index.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function isHostElementName(name: string): boolean;
|
|
17
17
|
/**
|
|
18
|
-
* THE "this declaration can never be rendered as a component" test
|
|
18
|
+
* THE "this declaration can never be rendered as a component" test:
|
|
19
19
|
* every name it could be rendered under is a host-element name. Roster
|
|
20
20
|
* membership calls it (`excludeHostElementNames`, `registry.ts`); owner
|
|
21
21
|
* classification (`classifyDeclaration`, `helper-callers.ts`) consults that
|
|
22
|
-
* narrowed roster rather than this rule
|
|
22
|
+
* narrowed roster rather than this rule, so it is stated once and
|
|
23
23
|
* judged once.
|
|
24
24
|
*
|
|
25
25
|
* Two exemptions, both about which name a renderer actually sees:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* THE JSX host-element naming rule
|
|
2
|
+
* THE JSX host-element naming rule. JSX compiles a bare,
|
|
3
3
|
* lowercase-initial element name to a string — `div`, `svg`, `web-button` —
|
|
4
4
|
* so such a name can never denote a component binding. `_Foo` and `$x` ARE
|
|
5
5
|
* component references: the rule is `/^[a-z]/`, not "is not PascalCase".
|
|
@@ -16,11 +16,11 @@ export function isHostElementName(name) {
|
|
|
16
16
|
return /^[a-z]/.test(name);
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* THE "this declaration can never be rendered as a component" test
|
|
19
|
+
* THE "this declaration can never be rendered as a component" test:
|
|
20
20
|
* every name it could be rendered under is a host-element name. Roster
|
|
21
21
|
* membership calls it (`excludeHostElementNames`, `registry.ts`); owner
|
|
22
22
|
* classification (`classifyDeclaration`, `helper-callers.ts`) consults that
|
|
23
|
-
* narrowed roster rather than this rule
|
|
23
|
+
* narrowed roster rather than this rule, so it is stated once and
|
|
24
24
|
* judged once.
|
|
25
25
|
*
|
|
26
26
|
* Two exemptions, both about which name a renderer actually sees:
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
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
|
|
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.
|