@descryy/adapter-csharp 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,167 @@
1
+ /**
2
+ * The dependency boundary, C# side — and the narrowest of the ten by a wide
3
+ * margin, which is the finding rather than a shortfall against it.
4
+ *
5
+ * ## The measurement this module does not contest
6
+ *
7
+ * `lane-extmint6` filed
8
+ * `DEC-NEXT-csharp-cannot-attribute-a-dependency-boundary-from-source` after
9
+ * measuring two facts that are structural and remain true:
10
+ *
11
+ * **1. A `using` binds a namespace, not a name.** `using System.IO;` does not
12
+ * say `Path` is `System.IO.Path`; it says `System.IO` is one of eleven places a
13
+ * bare name may be found. That is `adapter-java`'s wildcard import and
14
+ * `adapter-python`'s `from x import *`, and in C# it is not a minority idiom —
15
+ * it is the only idiom. Counted: `jellyfin` 13,435 plain usings, `eShopOnWeb`
16
+ * 884. Every one of them is refused here, and that refusal is the module's
17
+ * largest single behaviour.
18
+ *
19
+ * **2. A dotted C# name cannot be split into namespace and symbol by
20
+ * convention.** Go splits on the import path, Java and Kotlin at the first
21
+ * capitalised segment, PHP at the last `\`. C# namespaces and type names are
22
+ * both PascalCase, so `System.Text.Json.JsonSerializer` offers nothing that says
23
+ * where the namespace stops.
24
+ *
25
+ * ## What is attributable anyway, and the one thing the prior measurement did
26
+ * not use
27
+ *
28
+ * Two written forms name a symbol rather than a namespace, and both are read:
29
+ *
30
+ * - **`using Alias = N.T;`** binds one name outright. The developer wrote the
31
+ * name, the target, and (by using the alias in type or static-call position)
32
+ * that the target is a type.
33
+ * - **a name written out in full at the reference** — `System.Text.Json.
34
+ * JsonSerializer.Serialize(x)`. Every segment is written by the developer at
35
+ * the site.
36
+ *
37
+ * Fact 2 blocks both, and the way past it is not a convention but **another
38
+ * written binding**: a plain `using N;` is the language's own guarantee that `N`
39
+ * is a namespace. So the repository's plain usings — the very population this
40
+ * module refuses to resolve *names* with — are read instead as a **dictionary of
41
+ * strings the source states are namespaces**, and a dotted target is split at
42
+ * the longest prefix that appears in it. `System.Text.Json` is a namespace
43
+ * because some file in this repository wrote `using System.Text.Json;`, not
44
+ * because three segments looked like enough. A target whose prefix no file
45
+ * writes down is refused, not guessed.
46
+ *
47
+ * This reads no `.csproj` `<PackageReference>`, no `packages.lock.json`, no
48
+ * `~/.nuget`, no assembly. Two reasons, Go's two: most checkouts have nothing
49
+ * restored, and an identity taken from a restored graph would move the first
50
+ * time somebody ran `dotnet restore`.
51
+ *
52
+ * ## `using static` is read as a namespace fact and never as a name binding
53
+ *
54
+ * `using static N.T;` is the other form the task named, and it is **refused for
55
+ * edges on purpose.** Unlike Java's `import static a.b.C.m`, C#'s form names no
56
+ * member: it imports *every* static member of `T`, so an unqualified `m()` under
57
+ * it is a member of the enclosing type, or of an unread base type, or one of
58
+ * `T`'s — and the file writes down nothing that chooses. That is fact 1 again in
59
+ * a smaller population. What the directive does write down is that `N` is a
60
+ * namespace-or-type and `T` a type, so its prefix joins the namespace dictionary
61
+ * and nothing else.
62
+ *
63
+ * ## What this is worth, measured
64
+ *
65
+ * Counted over the C# reference subjects, and the honest headline is that the
66
+ * attributable population is tiny **and mostly in-repo**:
67
+ *
68
+ * | subject | plain `using` | `using static` | alias `using` | of those, target OUTSIDE the repo |
69
+ * | --- | --- | --- | --- | --- |
70
+ * | `jellyfin` | 13,435 | 9 | 125 | **11** |
71
+ * | `eShopOnWeb` | 884 | 0 | 0 | **0** |
72
+ *
73
+ * `jellyfin`'s 125 aliases are overwhelmingly `Episode = MediaBrowser.
74
+ * Controller.Entities.TV.Episode` — a shortening of its own name, not a
75
+ * dependency. Eleven name something outside, over six distinct targets. So this
76
+ * module's yield on `jellyfin` is a two-digit number of edges against a graded
77
+ * population of 74,383 calls, and on `eShopOnWeb` it is zero. **That is the
78
+ * result, reported rather than improved by lowering the bar**, and it is what
79
+ * the prior lane predicted.
80
+ */
81
+ /** What written form bound the name. */
82
+ export type CsBinding = "alias-using" | "written-fully-qualified";
83
+ export interface ExternalContext {
84
+ /**
85
+ * Alias -> target, for one file: its own `using X = N.T;` plus the assembly's
86
+ * `global using X = N.T;`. The one C# directive that binds a name.
87
+ */
88
+ readonly aliases: ReadonlyMap<string, string>;
89
+ /**
90
+ * Every string this repository's own source states is a namespace: the target
91
+ * of every plain `using N;`, and every prefix of one, plus the prefixes of
92
+ * `using static` targets. Repository-wide on purpose — a namespace is a
93
+ * property of the string, not of the file that wrote it down.
94
+ */
95
+ readonly writtenNamespaces: ReadonlySet<string>;
96
+ /** Namespaces this repository declares. A type under one is OURS whether or
97
+ * not this run read it — calling unanalysed code of ours a dependency is the
98
+ * error that never surfaces. */
99
+ readonly ownNamespaces: ReadonlySet<string>;
100
+ /** Fully-qualified names this run actually read. One of ours is not a
101
+ * boundary. */
102
+ readonly analysed: (fqn: string) => boolean;
103
+ }
104
+ export interface ExternalAttribution {
105
+ /** The namespace **as the repository's own source writes it down** — this is
106
+ * the identity. Never a NuGet package id, never an assembly, never a version:
107
+ * a package-to-namespace mapping lives inside the assembly, and
108
+ * `<PackageReference>` binds an id to no namespace at all. */
109
+ readonly moduleOrNamespace: string;
110
+ /** The type chain, then any member named on it. */
111
+ readonly symbolPath: readonly string[];
112
+ readonly binding: CsBinding;
113
+ /** Outside the .NET base class library, decided from the namespace alone
114
+ * against `PLATFORM_BASIS`. Disclosure only, and outside the hash: a
115
+ * namespace that moved between the two would otherwise change identity with
116
+ * no line of source changing. */
117
+ readonly thirdParty: boolean;
118
+ }
119
+ /**
120
+ * Provenance of the platform-namespace list, carried on every attributed node.
121
+ * A property of the framework, frozen into this source — never read from
122
+ * whatever SDK a developer happens to have installed, which would make the
123
+ * answer depend on the machine.
124
+ *
125
+ * `Microsoft` is **not** taken whole, and that is the whole reason this constant
126
+ * is a list rather than two prefixes: `Microsoft.Extensions.*` and
127
+ * `Microsoft.AspNetCore.*` ship as NuGet packages, `Microsoft.Win32` and
128
+ * `Microsoft.CSharp` ship with the runtime. Taking the prefix either way would
129
+ * be a wrong disclosure on every node under it.
130
+ */
131
+ export declare const PLATFORM_BASIS = "dotnet base class library: System.* roots, plus the runtime's own Microsoft.* namespaces";
132
+ /** Is `name` the namespace `prefix`, or inside it? Whole segments only — a raw
133
+ * `startsWith` would put `Acme.ServiceBus` inside `Acme.Service`, which is the
134
+ * vendor-namespace hazard rule 2 prices above a missing edge. */
135
+ export declare function isUnder(name: string, prefix: string): boolean;
136
+ /** Generic arguments, nullable marks, array brackets and `global::` are not part
137
+ * of a name's identity, and the type arguments inside them are separate
138
+ * references the extractor already files on their own. */
139
+ export declare function bareTypeName(written: string): string;
140
+ /**
141
+ * A dotted name split into the namespace the repository states it is in and the
142
+ * symbol chain inside it, or `null` when no plain `using` in this repository
143
+ * writes a namespace that prefixes it.
144
+ *
145
+ * The **longest** written prefix wins, and it must be a proper prefix: a name
146
+ * that is itself a written namespace names no symbol and is refused.
147
+ */
148
+ export declare function splitAtWrittenNamespace(fqn: string, writtenNamespaces: ReadonlySet<string>): {
149
+ namespace: string;
150
+ symbols: string[];
151
+ } | null;
152
+ /**
153
+ * The namespace and type behind a **type reference** that left the repository,
154
+ * or `null` when no binding the developer wrote settles it.
155
+ */
156
+ export declare function attributeExternalType(written: string, context: ExternalContext): ExternalAttribution | null;
157
+ /**
158
+ * The namespace, type and member behind a **call** that left the repository, or
159
+ * `null` when no binding the developer wrote settles it.
160
+ *
161
+ * `receiverWritten` is the receiver exactly as the source wrote it — an alias, or
162
+ * a dotted path written out in full. A local, a field, a property or a `var` is
163
+ * not a written type and `extract.ts` never reaches here with one, because it
164
+ * consults this module only where its own resolution already declined.
165
+ */
166
+ export declare function attributeExternalCall(receiverWritten: string | undefined, method: string, context: ExternalContext): ExternalAttribution | null;
167
+ //# sourceMappingURL=external.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AAEH,wCAAwC;AACxC,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,yBAAyB,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD;;qCAEiC;IACjC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C;oBACgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC;;;mEAG+D;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;;;sCAGkC;IAClC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,6FAA6F,CAAC;AA0BzH;;kEAEkE;AAClE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAYD;;2DAE2D;AAC3D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAUjD;AA+ED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,IAAI,CAI5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,IAAI,CAK5B"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * The dependency boundary, C# side — and the narrowest of the ten by a wide
3
+ * margin, which is the finding rather than a shortfall against it.
4
+ *
5
+ * ## The measurement this module does not contest
6
+ *
7
+ * `lane-extmint6` filed
8
+ * `DEC-NEXT-csharp-cannot-attribute-a-dependency-boundary-from-source` after
9
+ * measuring two facts that are structural and remain true:
10
+ *
11
+ * **1. A `using` binds a namespace, not a name.** `using System.IO;` does not
12
+ * say `Path` is `System.IO.Path`; it says `System.IO` is one of eleven places a
13
+ * bare name may be found. That is `adapter-java`'s wildcard import and
14
+ * `adapter-python`'s `from x import *`, and in C# it is not a minority idiom —
15
+ * it is the only idiom. Counted: `jellyfin` 13,435 plain usings, `eShopOnWeb`
16
+ * 884. Every one of them is refused here, and that refusal is the module's
17
+ * largest single behaviour.
18
+ *
19
+ * **2. A dotted C# name cannot be split into namespace and symbol by
20
+ * convention.** Go splits on the import path, Java and Kotlin at the first
21
+ * capitalised segment, PHP at the last `\`. C# namespaces and type names are
22
+ * both PascalCase, so `System.Text.Json.JsonSerializer` offers nothing that says
23
+ * where the namespace stops.
24
+ *
25
+ * ## What is attributable anyway, and the one thing the prior measurement did
26
+ * not use
27
+ *
28
+ * Two written forms name a symbol rather than a namespace, and both are read:
29
+ *
30
+ * - **`using Alias = N.T;`** binds one name outright. The developer wrote the
31
+ * name, the target, and (by using the alias in type or static-call position)
32
+ * that the target is a type.
33
+ * - **a name written out in full at the reference** — `System.Text.Json.
34
+ * JsonSerializer.Serialize(x)`. Every segment is written by the developer at
35
+ * the site.
36
+ *
37
+ * Fact 2 blocks both, and the way past it is not a convention but **another
38
+ * written binding**: a plain `using N;` is the language's own guarantee that `N`
39
+ * is a namespace. So the repository's plain usings — the very population this
40
+ * module refuses to resolve *names* with — are read instead as a **dictionary of
41
+ * strings the source states are namespaces**, and a dotted target is split at
42
+ * the longest prefix that appears in it. `System.Text.Json` is a namespace
43
+ * because some file in this repository wrote `using System.Text.Json;`, not
44
+ * because three segments looked like enough. A target whose prefix no file
45
+ * writes down is refused, not guessed.
46
+ *
47
+ * This reads no `.csproj` `<PackageReference>`, no `packages.lock.json`, no
48
+ * `~/.nuget`, no assembly. Two reasons, Go's two: most checkouts have nothing
49
+ * restored, and an identity taken from a restored graph would move the first
50
+ * time somebody ran `dotnet restore`.
51
+ *
52
+ * ## `using static` is read as a namespace fact and never as a name binding
53
+ *
54
+ * `using static N.T;` is the other form the task named, and it is **refused for
55
+ * edges on purpose.** Unlike Java's `import static a.b.C.m`, C#'s form names no
56
+ * member: it imports *every* static member of `T`, so an unqualified `m()` under
57
+ * it is a member of the enclosing type, or of an unread base type, or one of
58
+ * `T`'s — and the file writes down nothing that chooses. That is fact 1 again in
59
+ * a smaller population. What the directive does write down is that `N` is a
60
+ * namespace-or-type and `T` a type, so its prefix joins the namespace dictionary
61
+ * and nothing else.
62
+ *
63
+ * ## What this is worth, measured
64
+ *
65
+ * Counted over the C# reference subjects, and the honest headline is that the
66
+ * attributable population is tiny **and mostly in-repo**:
67
+ *
68
+ * | subject | plain `using` | `using static` | alias `using` | of those, target OUTSIDE the repo |
69
+ * | --- | --- | --- | --- | --- |
70
+ * | `jellyfin` | 13,435 | 9 | 125 | **11** |
71
+ * | `eShopOnWeb` | 884 | 0 | 0 | **0** |
72
+ *
73
+ * `jellyfin`'s 125 aliases are overwhelmingly `Episode = MediaBrowser.
74
+ * Controller.Entities.TV.Episode` — a shortening of its own name, not a
75
+ * dependency. Eleven name something outside, over six distinct targets. So this
76
+ * module's yield on `jellyfin` is a two-digit number of edges against a graded
77
+ * population of 74,383 calls, and on `eShopOnWeb` it is zero. **That is the
78
+ * result, reported rather than improved by lowering the bar**, and it is what
79
+ * the prior lane predicted.
80
+ */
81
+ /**
82
+ * Provenance of the platform-namespace list, carried on every attributed node.
83
+ * A property of the framework, frozen into this source — never read from
84
+ * whatever SDK a developer happens to have installed, which would make the
85
+ * answer depend on the machine.
86
+ *
87
+ * `Microsoft` is **not** taken whole, and that is the whole reason this constant
88
+ * is a list rather than two prefixes: `Microsoft.Extensions.*` and
89
+ * `Microsoft.AspNetCore.*` ship as NuGet packages, `Microsoft.Win32` and
90
+ * `Microsoft.CSharp` ship with the runtime. Taking the prefix either way would
91
+ * be a wrong disclosure on every node under it.
92
+ */
93
+ export const PLATFORM_BASIS = "dotnet base class library: System.* roots, plus the runtime's own Microsoft.* namespaces";
94
+ /** Namespace roots the runtime owns outright. */
95
+ const PLATFORM_ROOTS = ["System"];
96
+ /** The `Microsoft` subnamespaces the runtime ships. Everything else under
97
+ * `Microsoft` is a package. */
98
+ const PLATFORM_MICROSOFT = new Set([
99
+ "Microsoft.Win32", "Microsoft.CSharp", "Microsoft.VisualBasic", "Microsoft.SafeHandles",
100
+ ]);
101
+ /**
102
+ * Namespaces whose whole purpose is to make a call target dynamic.
103
+ *
104
+ * `System.Reflection`'s `MethodInfo.Invoke` and `System.Linq.Expressions`'
105
+ * compiled delegates are where a C# call graph deliberately stops being
106
+ * readable, and golden pattern 12 — the corpus's most important fixture —
107
+ * forbids a `CALLS` edge out of a method that dispatches through them *to any
108
+ * target at any resolution*. The edge would be true and it is still the one
109
+ * edge that pattern exists to forbid: it makes a traversal look as though it
110
+ * continued through a site where the graph cannot see the next hop. Java's
111
+ * `external.ts` declines `java.lang.reflect` and `java.lang.invoke` for exactly
112
+ * this reason (`DEC-NEXT-external-nodes-through-the-reflection-packages`).
113
+ */
114
+ const DYNAMIC_DISPATCH_NAMESPACES = ["System.Reflection", "System.Linq.Expressions"];
115
+ /** Is `name` the namespace `prefix`, or inside it? Whole segments only — a raw
116
+ * `startsWith` would put `Acme.ServiceBus` inside `Acme.Service`, which is the
117
+ * vendor-namespace hazard rule 2 prices above a missing edge. */
118
+ export function isUnder(name, prefix) {
119
+ return name === prefix || name.startsWith(`${prefix}.`);
120
+ }
121
+ function isPlatform(namespace) {
122
+ for (const root of PLATFORM_ROOTS) {
123
+ if (isUnder(namespace, root))
124
+ return true;
125
+ }
126
+ for (const known of PLATFORM_MICROSOFT) {
127
+ if (isUnder(namespace, known))
128
+ return true;
129
+ }
130
+ return false;
131
+ }
132
+ /** Generic arguments, nullable marks, array brackets and `global::` are not part
133
+ * of a name's identity, and the type arguments inside them are separate
134
+ * references the extractor already files on their own. */
135
+ export function bareTypeName(written) {
136
+ const stripped = written.trim().replace(/^global::/, "");
137
+ const cut = stripped.indexOf("<");
138
+ const head = (cut === -1 ? stripped : stripped.slice(0, cut)).trim();
139
+ return head.replace(/(\[[\s,]*\])+$/, "").replace(/\?+$/, "").trim();
140
+ }
141
+ /**
142
+ * A dotted name split into the namespace the repository states it is in and the
143
+ * symbol chain inside it, or `null` when no plain `using` in this repository
144
+ * writes a namespace that prefixes it.
145
+ *
146
+ * The **longest** written prefix wins, and it must be a proper prefix: a name
147
+ * that is itself a written namespace names no symbol and is refused.
148
+ */
149
+ export function splitAtWrittenNamespace(fqn, writtenNamespaces) {
150
+ const parts = fqn.split(".");
151
+ if (parts.length < 2 || parts.some((part) => part === ""))
152
+ return null;
153
+ for (let cut = parts.length - 1; cut >= 1; cut -= 1) {
154
+ const prefix = parts.slice(0, cut).join(".");
155
+ if (writtenNamespaces.has(prefix)) {
156
+ return { namespace: prefix, symbols: parts.slice(cut) };
157
+ }
158
+ }
159
+ return null;
160
+ }
161
+ /** Ours, whether or not this run read it. */
162
+ function isOurs(fqn, context) {
163
+ if (context.analysed(fqn))
164
+ return true;
165
+ for (const own of context.ownNamespaces) {
166
+ if (own !== "" && isUnder(fqn, own))
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ function attribute(fqn, binding, extra, context) {
172
+ if (isOurs(fqn, context))
173
+ return null;
174
+ // The whole written name is itself a namespace some file states is one. A
175
+ // namespace declares no members, so there is nothing here to point at.
176
+ if (context.writtenNamespaces.has(fqn))
177
+ return null;
178
+ const split = splitAtWrittenNamespace(fqn, context.writtenNamespaces);
179
+ if (split === null)
180
+ return null;
181
+ if (isOurs(split.namespace, context))
182
+ return null;
183
+ // The written namespace must be the type's IMMEDIATE parent, and this is an
184
+ // identity rule rather than a taste one. `Microsoft.AspNetCore.WebUtilities.
185
+ // QueryHelpers.AddQueryString` splits at `Microsoft.AspNetCore` when no file
186
+ // happens to write `using Microsoft.AspNetCore.WebUtilities;` and at the
187
+ // deeper namespace when one does — so the same symbol would carry two
188
+ // different node ids depending on a `using` in an unrelated file, and adding
189
+ // that line would silently move the node. Capping the split at one segment
190
+ // turns that churn into presence or absence, which is what rule 2 asks for: a
191
+ // missing edge is a disclosed gap, a moving identity destroys every link that
192
+ // ever pointed at it. The cost is real and disclosed — a nested type
193
+ // (`System.Text.Encoding.UTF8`, `Map.Entry`'s C# analogue) is refused.
194
+ if (split.symbols.length !== 1)
195
+ return null;
196
+ for (const dynamic of DYNAMIC_DISPATCH_NAMESPACES) {
197
+ if (isUnder(split.namespace, dynamic))
198
+ return null;
199
+ }
200
+ const symbolPath = [...split.symbols, ...extra];
201
+ if (symbolPath.some((part) => part === ""))
202
+ return null;
203
+ return {
204
+ moduleOrNamespace: split.namespace,
205
+ symbolPath,
206
+ binding,
207
+ thirdParty: !isPlatform(split.namespace),
208
+ };
209
+ }
210
+ /** The fully-qualified name a written type resolves to through the bindings this
211
+ * file wrote, and which binding did it. `null` when none did. */
212
+ function qualify(written, context) {
213
+ const name = bareTypeName(written);
214
+ if (name === "")
215
+ return null;
216
+ const separator = name.indexOf(".");
217
+ const head = separator === -1 ? name : name.slice(0, separator);
218
+ const aliased = context.aliases.get(head);
219
+ if (aliased !== undefined && aliased !== "") {
220
+ const rest = separator === -1 ? "" : name.slice(separator + 1);
221
+ const target = bareTypeName(aliased);
222
+ return { fqn: rest === "" ? target : `${target}.${rest}`, binding: "alias-using" };
223
+ }
224
+ // Written out in full at the reference. Every segment is the developer's, so
225
+ // it is as much a written binding as an alias is — and the namespace boundary
226
+ // inside it is decided by `splitAtWrittenNamespace`, from plain usings, never
227
+ // by how the segments are capitalised.
228
+ if (separator !== -1)
229
+ return { fqn: name, binding: "written-fully-qualified" };
230
+ // A bare name under a plain `using`. The largest population and the refusal
231
+ // this module exists to make: eleven candidate namespaces and nothing written
232
+ // that chooses between them.
233
+ return null;
234
+ }
235
+ /**
236
+ * The namespace and type behind a **type reference** that left the repository,
237
+ * or `null` when no binding the developer wrote settles it.
238
+ */
239
+ export function attributeExternalType(written, context) {
240
+ const qualified = qualify(written, context);
241
+ if (qualified === null)
242
+ return null;
243
+ return attribute(qualified.fqn, qualified.binding, [], context);
244
+ }
245
+ /**
246
+ * The namespace, type and member behind a **call** that left the repository, or
247
+ * `null` when no binding the developer wrote settles it.
248
+ *
249
+ * `receiverWritten` is the receiver exactly as the source wrote it — an alias, or
250
+ * a dotted path written out in full. A local, a field, a property or a `var` is
251
+ * not a written type and `extract.ts` never reaches here with one, because it
252
+ * consults this module only where its own resolution already declined.
253
+ */
254
+ export function attributeExternalCall(receiverWritten, method, context) {
255
+ if (receiverWritten === undefined || method === "")
256
+ return null;
257
+ const qualified = qualify(receiverWritten, context);
258
+ if (qualified === null)
259
+ return null;
260
+ return attribute(qualified.fqn, qualified.binding, [method], context);
261
+ }
262
+ //# sourceMappingURL=external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,MAAM,EAAwD,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAyB,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAKjF,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAI7F,eAAO,MAAM,QAAQ,WAAW,CAAC;AAmDjC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;;;;;;;;OAQG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IAC/D;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CA0Bb;AAiCD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAwtCvD"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,MAAM,EAAwD,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAyB,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAKjF,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAW7F,eAAO,MAAM,QAAQ,WAAW,CAAC;AA+DjC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;;;;;;;;OAQG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IAC/D;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CA0Bb;AAiCD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CA22CvD"}
package/dist/extract.js CHANGED
@@ -21,7 +21,7 @@
21
21
  * environment, this adapter has names only, so two candidates ledger and mint
22
22
  * no edge. Extension methods are the same call for the same reason.
23
23
  */
24
- import { edgeId, endpointQsp, nodeId, normaliseEndpointPath, symbolQsp, testCaseQsp, } from "@descryy/ir";
24
+ import { edgeId, endpointQsp, externalQsp, nodeId, normaliseEndpointPath, symbolQsp, testCaseQsp, } from "@descryy/ir";
25
25
  import { fileNode } from "@descryy/adapter-common";
26
26
  import { efModels, isGenerated } from "./efcore.js";
27
27
  import { readTransportShapes, SCHEMA as DTO_SCHEMA } from "./dto.js";
@@ -31,8 +31,20 @@ import { aspNetRoutes } from "./aspnetcore.js";
31
31
  import { resolveNullable, nullableDirectives } from "./nullability.js";
32
32
  import { clientCalls, endpointFor } from "./client.js";
33
33
  import { typedClientBases } from "./client-base.js";
34
+ import { attributeExternalCall, attributeExternalType, PLATFORM_BASIS, } from "./external.js";
34
35
  export const LANGUAGE = "csharp";
35
36
  const CONFIDENCE = { 0: 0.5, 1: 0.7, 2: 0.9, 3: 0.95 };
37
+ /**
38
+ * An external node is attributed from a binding the file itself wrote — an alias
39
+ * `using`, or a name written out in full — never a restored NuGet graph, an
40
+ * assembly, or a `packages.lock.json`. That is module/import resolution and
41
+ * nothing more, so R1; the settled rule forbids R0 and R4 outright.
42
+ * `DEC-NEXT-external-symbol-nodes-at-the-dependency-boundary`.
43
+ */
44
+ const EXTERNAL_RESOLUTION = 1;
45
+ /** The packaging world a .NET namespace is read against. Disclosure; a NuGet
46
+ * package id is deliberately NOT the identity — see `external.ts`. */
47
+ const EXTERNAL_ECOSYSTEM = "nuget";
36
48
  const REASONS = {
37
49
  outside:
38
50
  // Same correction as Java's, weaker evidence: Java's "scope boundary, not
@@ -452,6 +464,135 @@ export function extract(input) {
452
464
  const global = globalUsings.get(unit.assembly);
453
465
  return global === undefined ? unit.usings : [...unit.usings, ...global];
454
466
  };
467
+ /**
468
+ * Node ids already minted for a dependency symbol — one node per symbol and
469
+ * per node type, not per reference site.
470
+ *
471
+ * The settled rules are asserted here rather than argued: the qsp carries an
472
+ * `ext:` marker (`externalQsp`), the node claims R1 and never R0 or R4, it
473
+ * carries no file and no range because the symbol lives in an assembly this
474
+ * run never read, and it owns no outgoing edge for the same reason.
475
+ * `thirdParty` and `binding` ride in `attrs`, outside the hash.
476
+ */
477
+ const externalIds = new Map();
478
+ const mintExternal = (attribution, type) => {
479
+ if (input.reached < EXTERNAL_RESOLUTION)
480
+ return null;
481
+ const qsp = externalQsp(attribution.moduleOrNamespace, attribution.symbolPath);
482
+ const key = `${type}\u0000${qsp}`;
483
+ const existing = externalIds.get(key);
484
+ if (existing !== undefined)
485
+ return existing;
486
+ const id = nodeId(scope, type, qsp, LANGUAGE);
487
+ externalIds.set(key, id);
488
+ nodes.push({
489
+ id,
490
+ type,
491
+ name: attribution.symbolPath[attribution.symbolPath.length - 1] ?? "",
492
+ file: null,
493
+ range: null,
494
+ language: LANGUAGE,
495
+ producedBy: input.producedBy,
496
+ resolution: EXTERNAL_RESOLUTION,
497
+ attrs: {
498
+ thirdParty: attribution.thirdParty,
499
+ platformBasis: PLATFORM_BASIS,
500
+ binding: attribution.binding,
501
+ },
502
+ external: { ecosystem: EXTERNAL_ECOSYSTEM, moduleOrNamespace: attribution.moduleOrNamespace },
503
+ });
504
+ return id;
505
+ };
506
+ /**
507
+ * One reference that left the repository, minted and joined.
508
+ *
509
+ * The node type follows the **edge**, not the shape of the binding:
510
+ * `USES_TYPE` names a type and so takes `CLASS`, `CALLS` names something
511
+ * invoked and so takes `FUNCTION`.
512
+ *
513
+ * The edge is `CALLS` even out of a test method, never `TESTS`. `TESTS`
514
+ * asserts that the test covers the callee's body, and this run read nothing of
515
+ * a dependency's body — `adapter-kotlin` mirrored 3,409 external `CALLS` into
516
+ * `TESTS` before anything was watching for it
517
+ * (`DEC-NEXT-external-edge-is-calls-not-tests`). `emitCall` below picks
518
+ * `TESTS` for an in-repo target inside a test method, so this helper takes its
519
+ * edge type as a parameter and the call sites pass `CALLS` unconditionally.
520
+ */
521
+ const externalEdge = (from, unit, written, method, edgeType) => {
522
+ const context = externalContextFor(unit);
523
+ const attribution = method === undefined
524
+ ? written === undefined
525
+ ? null
526
+ : attributeExternalType(written, context)
527
+ : attributeExternalCall(written, method, context);
528
+ if (attribution === null)
529
+ return false;
530
+ const to = mintExternal(attribution, edgeType === "USES_TYPE" ? "CLASS" : "FUNCTION");
531
+ if (to === null)
532
+ return false;
533
+ push({ from, to, type: edgeType }, EXTERNAL_RESOLUTION);
534
+ return true;
535
+ };
536
+ /**
537
+ * Strings this repository's own source states are namespaces: the target of
538
+ * every plain `using N;` and of every `using static N.T;`, plus every prefix.
539
+ *
540
+ * Repository-wide, not per file, and that is deliberate. A namespace is a
541
+ * property of the string; which file happened to write it down first is not.
542
+ * This is the dictionary `external.ts` splits a dotted name at, and it is the
543
+ * one use this adapter makes of the 13,435-strong plain-`using` population it
544
+ * otherwise refuses outright.
545
+ */
546
+ const writtenNamespaces = new Set();
547
+ for (const unit of units) {
548
+ for (const using of unit.usings) {
549
+ if (using.alias !== undefined)
550
+ continue;
551
+ // `using static N.T;` states that `T` is a type, so the namespace it
552
+ // contributes is the target's parent and not the target itself.
553
+ const target = using.isStatic ? using.target.slice(0, using.target.lastIndexOf(".")) : using.target;
554
+ const parts = target.split(".");
555
+ for (let cut = parts.length; cut >= 1; cut -= 1)
556
+ writtenNamespaces.add(parts.slice(0, cut).join("."));
557
+ }
558
+ }
559
+ writtenNamespaces.delete("");
560
+ /** Namespaces this repository declares for itself. */
561
+ const ownNamespaces = new Set(units.map((each) => each.namespace).filter((name) => name !== ""));
562
+ /** The context `external.ts` attributes against, for one file. The alias table
563
+ * is the file's own plus its assembly's `global using` aliases; the two
564
+ * namespace sets are the repository's. */
565
+ const externalContexts = new Map();
566
+ const externalContextFor = (unit) => {
567
+ const cached = externalContexts.get(unit.file);
568
+ if (cached !== undefined)
569
+ return cached;
570
+ const aliases = new Map();
571
+ for (const using of usingsFor(unit)) {
572
+ if (using.alias === undefined || using.alias === "")
573
+ continue;
574
+ const seen = aliases.get(using.alias);
575
+ // One name aliased to two targets in one file's visible set is written
576
+ // down twice and settled neither way. Neither is attributed.
577
+ if (seen !== undefined && seen !== using.target) {
578
+ aliases.set(using.alias, "");
579
+ continue;
580
+ }
581
+ if (seen === undefined)
582
+ aliases.set(using.alias, using.target);
583
+ }
584
+ for (const [name, target] of [...aliases])
585
+ if (target === "")
586
+ aliases.delete(name);
587
+ const context = {
588
+ aliases,
589
+ writtenNamespaces,
590
+ ownNamespaces,
591
+ analysed: (fqn) => byFqn.has(fqn),
592
+ };
593
+ externalContexts.set(unit.file, context);
594
+ return context;
595
+ };
455
596
  function candidatesFor(raw, unit, host) {
456
597
  const name = raw.trim().replace(/^global::/, "");
457
598
  if (name === "")
@@ -1045,6 +1186,12 @@ export function extract(input) {
1045
1186
  return;
1046
1187
  const target = resolveType(ref.name, unit, host);
1047
1188
  if (!("declared" in target)) {
1189
+ // Nothing in the analysed set answers the name. An alias `using`, or a
1190
+ // name written out in full here, may still say where it came from — and
1191
+ // only those two; a bare name under a plain `using` is refused.
1192
+ if (target.reason === REASONS.outside && externalEdge(from, unit, ref.name, undefined, "USES_TYPE")) {
1193
+ return;
1194
+ }
1048
1195
  ledger(from, "USES_TYPE", ref.name, unit, ref.line, target.reason);
1049
1196
  return;
1050
1197
  }
@@ -1085,6 +1232,11 @@ export function extract(input) {
1085
1232
  }
1086
1233
  const owner = ownerOf(ref, fn.scope, unit, host);
1087
1234
  if (!("declared" in owner)) {
1235
+ // `CALLS` and never `edgeType`: out of a test method `edgeType` is
1236
+ // `TESTS`, which would assert this test covers a body nothing read.
1237
+ if (owner.reason === REASONS.outside && externalEdge(from, unit, ref.receiver, ref.name, "CALLS")) {
1238
+ return;
1239
+ }
1088
1240
  ledger(from, edgeType, ref.raw, unit, ref.line, owner.reason);
1089
1241
  return;
1090
1242
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/adapter-csharp",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -28,17 +28,17 @@
28
28
  "registry": "https://registry.npmjs.org",
29
29
  "access": "public"
30
30
  },
31
- "scripts": {
32
- "build": "tsc -b && npm run build:assets",
33
- "build:assets": "node -e \"require('fs').copyFileSync(require.resolve('tree-sitter-c-sharp/tree-sitter-c_sharp.wasm'),'dist/tree-sitter-c_sharp.wasm')\""
34
- },
35
31
  "dependencies": {
36
- "@descryy/adapter-common": "0.3.1",
37
- "@descryy/adapter-sql": "0.5.1",
32
+ "@descryy/adapter-common": "0.3.2",
33
+ "@descryy/adapter-sql": "0.6.0",
38
34
  "@descryy/adapter-treesitter": "0.2.1",
39
- "@descryy/ir": "0.10.0",
35
+ "@descryy/ir": "0.11.0",
40
36
  "tree-sitter-c-sharp": "0.23.5",
41
- "@descryy/adapter-openapi": "0.5.1"
37
+ "@descryy/adapter-openapi": "0.5.2"
42
38
  },
43
- "description": "C# adapter, breadth tier. The fifth language over the shared tree-sitter harness, and the first whose type declarations legitimately span files."
44
- }
39
+ "description": "C# adapter, breadth tier. The fifth language over the shared tree-sitter harness, and the first whose type declarations legitimately span files.",
40
+ "scripts": {
41
+ "build": "tsc -b && npm run build:assets",
42
+ "build:assets": "node -e \"require('fs').copyFileSync(require.resolve('tree-sitter-c-sharp/tree-sitter-c_sharp.wasm'),'dist/tree-sitter-c_sharp.wasm')\""
43
+ }
44
+ }