@descryy/adapter-kotlin 0.2.0 → 0.3.0

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/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ Copyright (c) 2026 Descry
2
+
3
+ All rights reserved.
4
+
5
+ This software is proprietary and confidential. No license, express or
6
+ implied, to use, copy, modify, merge, publish, distribute, sublicense, or
7
+ sell copies of this software is granted without prior written permission
8
+ from the copyright holder.
package/dist/adapter.d.ts CHANGED
@@ -1,14 +1,10 @@
1
1
  /**
2
2
  * The Kotlin `LanguageAdapter` — breadth tier, tenth language.
3
3
  *
4
- * The first adapter to **share** an identity anchor rather than define one:
5
- * `@descryy/adapter-jvm` is Java's, moved there unchanged because Kotlin answers
6
- * the identity question the same way. Sharing rather than copying is the point —
7
- * a copied rule is a rule that will hold in one of the two, measured elsewhere
8
- * in this project at a two-week silent drift.
9
- *
10
- * The one place Kotlin diverges from Java is the fallback, and it diverges
11
- * toward refusal. See `extract.ts`.
4
+ * Shares its identity anchor with `@descryy/adapter-jvm` (Java's) rather than
5
+ * defining its own — a copied rule drifts (measured elsewhere in this project
6
+ * at two weeks). Diverges from Java only in the fallback, toward refusal; see
7
+ * `extract.ts`.
12
8
  */
13
9
  import { type LanguageAdapter, type ResolutionLevel } from "@descryy/ir";
14
10
  export declare const ADAPTER_ID = "adapter-kotlin";
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAML,KAAK,eAAe,EAGpB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,oBAAoB,sBAAuB,CAAC;AACzD,eAAO,MAAM,QAAQ,WAAW,CAAC;AA2CjC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;CAC1C;AAcD,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAkOrF"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAML,KAAK,eAAe,EAGpB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,oBAAoB,sBAAuB,CAAC;AACzD,eAAO,MAAM,QAAQ,WAAW,CAAC;AAuCjC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;CAC1C;AAcD,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CA2OrF"}
package/dist/adapter.js CHANGED
@@ -1,14 +1,10 @@
1
1
  /**
2
2
  * The Kotlin `LanguageAdapter` — breadth tier, tenth language.
3
3
  *
4
- * The first adapter to **share** an identity anchor rather than define one:
5
- * `@descryy/adapter-jvm` is Java's, moved there unchanged because Kotlin answers
6
- * the identity question the same way. Sharing rather than copying is the point —
7
- * a copied rule is a rule that will hold in one of the two, measured elsewhere
8
- * in this project at a two-week silent drift.
9
- *
10
- * The one place Kotlin diverges from Java is the fallback, and it diverges
11
- * toward refusal. See `extract.ts`.
4
+ * Shares its identity anchor with `@descryy/adapter-jvm` (Java's) rather than
5
+ * defining its own — a copied rule drifts (measured elsewhere in this project
6
+ * at two weeks). Diverges from Java only in the fallback, toward refusal; see
7
+ * `extract.ts`.
12
8
  */
13
9
  import { existsSync, readFileSync } from "node:fs";
14
10
  import { join } from "node:path";
@@ -24,14 +20,10 @@ export const DEFAULT_KOTLIN_GLOBS = ["**/*.kt"];
24
20
  export const LANGUAGE = "kotlin";
25
21
  const PRODUCED_BY = `${ADAPTER_ID}@${ADAPTER_VERSION}`;
26
22
  /**
27
- * Where the grammar is, and what to say when it is not there.
28
- *
29
- * Kotlin's grammar is not published on npm, so unlike the first eight adapters
30
- * there is no `require.resolve` fallback. The failure must name the command —
31
- * an adapter that cannot parse and does not say so reports an empty graph as a
32
- * clean one (DEC-171). Two locations because this module runs from `dist/` when
33
- * built and from `src/` under Node's type stripping, which is how the unit
34
- * tests import it.
23
+ * Grammar isn't on npm, so there's no `require.resolve` fallback — the error
24
+ * must name the fetch command, since a silent parse failure reports an empty
25
+ * graph as a clean one (DEC-171). Two candidate paths: `dist/` when built,
26
+ * `src/` under Node's type stripping (how tests import it).
35
27
  */
36
28
  function grammarPath() {
37
29
  const candidates = [
@@ -62,7 +54,17 @@ export function createKotlinAdapter(options = {}) {
62
54
  const ceiling = options.maxResolution ?? 2;
63
55
  let session;
64
56
  let parser;
65
- const filesUnder = (root) => discover(root.absolutePath, globs).filter((file) => !isGenerated(file));
57
+ let nestedCheckouts = [];
58
+ let ignoredByProject = [];
59
+ const filesUnder = (root) => {
60
+ const nested = [];
61
+ const found = discover(root.absolutePath, globs, {
62
+ onNestedCheckout: (dir) => nested.push(dir),
63
+ onIgnored: (names) => (ignoredByProject = names),
64
+ }).filter((file) => !isGenerated(file));
65
+ nestedCheckouts = nested;
66
+ return found;
67
+ };
66
68
  const current = () => {
67
69
  const live = session;
68
70
  if (live === undefined)
@@ -82,8 +84,8 @@ export function createKotlinAdapter(options = {}) {
82
84
  const evidence = [];
83
85
  if (files.length > 0)
84
86
  evidence.push(`${files.length} .kt source files outside build output`);
85
- // The anchor's reach is the number that decides what this adapter can
86
- // emit, so it is stated at detection rather than discovered in a gate.
87
+ // Stated at detection rather than discovered in a gate: the anchor's
88
+ // reach is what this adapter can emit.
87
89
  if (files.length > 0) {
88
90
  let anchored = 0;
89
91
  for (const file of files) {
@@ -113,6 +115,13 @@ export function createKotlinAdapter(options = {}) {
113
115
  "that claim (okhttp) contains no Kotlin-to-Java reference at all, so the rule would " +
114
116
  "ship unwitnessed.");
115
117
  }
118
+ for (const nested of nestedCheckouts) {
119
+ evidence.push(`skipped ${nested}: a separate checkout with its own .git`);
120
+ }
121
+ if (ignoredByProject.length > 0) {
122
+ evidence.push(`skipped ${ignoredByProject.length} director(ies) the project's own .gitignore excludes: ` +
123
+ `${ignoredByProject.slice(0, 12).join(", ")}`);
124
+ }
116
125
  return { detected: files.length > 0, roots: files.length > 0 ? [root.absolutePath] : [], evidence };
117
126
  },
118
127
  capabilities() {
@@ -120,31 +129,24 @@ export function createKotlinAdapter(options = {}) {
120
129
  maxResolution: ceiling,
121
130
  nodeTypes: ["MODULE", "CLASS", "FUNCTION", "TEST_CASE", "API_ROUTE", "API_ENDPOINT"],
122
131
  /**
123
- * Kotlin **states** which supertype is the superclass: the constructor
124
- * is invoked (`Base()`) and an interface cannot be. So `INHERITS` and
125
- * `IMPLEMENTS` are separable from source here in a way Swift's are not
126
- * — though the decision is still taken against the declaration table,
127
- * with the syntax as confirmation.
132
+ * Kotlin states which supertype is the superclass — invoked as `Base()`,
133
+ * which an interface can't be — so `INHERITS`/`IMPLEMENTS` split cleanly
134
+ * from source, unlike Swift's. Decided against the declaration table,
135
+ * syntax only as confirmation.
128
136
  */
129
137
  edgeTypes: ["IMPORTS", "CALLS", "TESTS", "IMPLEMENTS", "INHERITS", "USES_TYPE", "SERVES_API", "USES_API"],
130
138
  hasCallHierarchy: false,
131
139
  hasTypeHierarchy: false,
132
140
  /**
133
- * Directories this ecosystem installs dependencies or build output into —
134
- * DEC-110's end state. The engine used to hold `node_modules`/`vendor`/`target`
135
- * in a hardcoded list; it holds none of them now and consumes this instead.
136
- *
137
- * `isGenerated()` already excludes `/build/generated/` and `/build/tmp/`; the whole
138
- * of Gradle's `build/` is output territory. `target/` covers a Maven-built module.
139
- *
140
- * Names only — the walk matches one path component, so a path or glob matches
141
- * nothing. Nothing dotted — those are skipped structurally already.
141
+ * Per-ecosystem build/dependency dirs (DEC-110): the engine no longer
142
+ * hardcodes `node_modules`/`vendor`/`target`, adapters supply this instead.
143
+ * `build` covers Gradle output (`isGenerated()` already excludes the
144
+ * `generated`/`tmp` subpaths); `target` covers a Maven-built module.
145
+ * Names only, matched as one path component — no paths, no globs, no dotted dirs.
142
146
  */
143
147
  noiseDirectories: ["build", "target"],
144
- // Ktor's routing DSL and Spring MVC/WebFlux annotations both supply
145
- // routes; Ktor's client and Retrofit's declarative interfaces both
146
- // supply calls. No ORM extractor is bound, so patterns 06/07 still
147
- // skip naming the capability they wanted.
148
+ // Routes: Ktor DSL, Spring MVC/WebFlux annotations. Calls: Ktor client,
149
+ // Retrofit interfaces. No ORM extractor bound — patterns 06/07 unmet.
148
150
  frameworkExtractors: ["ktor", "ktor-client", "spring", "retrofit"],
149
151
  frameworkCapabilities: ["route-extractor", "client-call-extractor"],
150
152
  };
@@ -187,10 +189,9 @@ export function createKotlinAdapter(options = {}) {
187
189
  const parsed = read.value;
188
190
  if (parsed.hasError)
189
191
  parsedWithErrors.push(file);
190
- // The one divergence from Java, and it is the whole decision: an
191
- // underivable source root produces NO identity package, and `extract.ts`
192
- // mints nothing for such a file. Java falls back to the bare package;
193
- // Kotlin refuses (DEC-173).
192
+ // Divergence from Java: an underivable source root yields no identity
193
+ // package and `extract.ts` mints nothing for the file. Java falls back
194
+ // to the bare package; Kotlin refuses (DEC-173).
194
195
  const sourceRoot = sourceRootOf(file, parsed.packageName);
195
196
  if (sourceRoot === undefined) {
196
197
  withoutAnchor.push(file);
@@ -200,24 +201,21 @@ export function createKotlinAdapter(options = {}) {
200
201
  let anchor = anchors.get(sourceRoot);
201
202
  if (anchor === undefined) {
202
203
  anchor = anchorOf(ctx.root.absolutePath, sourceRoot);
203
- // `anchorOf` reads the source set as the segment AFTER the last `src`,
204
- // which is the Maven and Gradle-JVM layout. Kotlin Multiplatform
205
- // inverts it: ktor writes `ktor-io/darwin/src`, source set BEFORE
206
- // `src`, so the rule returns "" for every platform and two source sets
207
- // in one module collapse onto one identity.
208
- //
209
- // Measured before this line existed: 33 colliding MODULE ids on ktor,
210
- // `HttpClient.kt` in `common/src` and `posix/src` among them. The
211
- // refusal in `extract.ts` does not catch these — their source root IS
212
- // derivable, so the failure is in the anchor rather than in the
213
- // subtraction.
204
+ // `anchorOf` reads the source set as the segment after the last `src`
205
+ // (the Maven/Gradle-JVM layout). Kotlin Multiplatform inverts this —
206
+ // ktor writes `ktor-io/darwin/src`, source set BEFORE `src` — so the
207
+ // rule returns "" for every platform and two source sets collapse
208
+ // onto one identity. Measured on ktor: 33 colliding MODULE ids,
209
+ // `HttpClient.kt` in `common/src` and `posix/src` among them.
210
+ // `extract.ts`'s refusal doesn't catch this: the source root IS
211
+ // derivable, so the bug is in the anchor, not the subtraction.
214
212
  //
215
- // The repair is the source root itself, which is already **derived by
216
- // subtracting the package path** rather than matched against a list of
217
- // source-set names. That distinction is the whole reason option 2 was
218
- // struck: `src/<sourceSet>/<lang>` is a convention ktor does not
219
- // follow, and this is not a convention at all — it is what remains
220
- // after the package declaration is removed from the directory.
213
+ // Fix: fall back to the already-derived `sourceRoot` itself (built by
214
+ // subtracting the package path from the directory) as the source set,
215
+ // rather than matching against a list of known source-set names —
216
+ // KMP's `<sourceSet>/src` doesn't follow the `src/<sourceSet>`
217
+ // convention such a list would assume, so subtraction is what
218
+ // generalizes and a name list is not.
221
219
  if (anchor.sourceSet === "")
222
220
  anchor = { module: anchor.module, sourceSet: sourceRoot };
223
221
  anchors.set(sourceRoot, anchor);
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -5,56 +5,39 @@
5
5
  * API_ROUTE ──SERVES_API──▶ API_ENDPOINT ◀──USES_API── caller
6
6
  * ```
7
7
  *
8
- * `routes.ts` produces the provider half. This produces the consumer half, and
9
- * until it existed `adapter-kotlin` declared no `USES_API` at all, so golden
10
- * pattern 08 was skipped rather than passed — declared incapacity, per DEC-043.
8
+ * `routes.ts` produces the provider half; this produces the consumer half (previously absent —
9
+ * golden pattern 08 was skipped as declared incapacity, DEC-043).
11
10
  *
12
- * ## Provenance, never the name — and here that is not optional
11
+ * ## Provenance is required, not the verb name alone
13
12
  *
14
- * `client.get("/orders/1")` is the single most dangerous shape available to a
15
- * reader of Kotlin. `adapter-python` measured the equivalent: matching on the
16
- * verb name alone would have minted **2,280 edges** to endpoints nothing
17
- * serves, because every Django and Flask test suite calls `client.get(...)` on
18
- * a *test client* that makes no HTTP request. Ktor's own `testApplication { }`
19
- * hands the test a `client` with exactly that shape.
20
- *
21
- * Two independent conditions, both required:
13
+ * `client.get(...)` alone is unsafe: `adapter-python` measured that matching on verb name alone
14
+ * would mint **2,280** false edges, since every Django/Flask test suite calls `client.get(...)` on
15
+ * a test client that makes no request — Ktor's own `testApplication { }` client has the identical
16
+ * shape. Both conditions below are required:
22
17
  *
23
18
  * | condition | evidence |
24
19
  * | --- | --- |
25
20
  * | the file imports the verb | `io.ktor.client.request.*` (wildcard) or `io.ktor.client.request.get` (explicit) |
26
- * | the receiver is a real client | a local or property **constructed** `HttpClient(...)`, or a parameter/property whose **written type** is `HttpClient` |
27
- *
28
- * The wildcard case is not a convenience — it is the common case. Counted
29
- * across the reference set: **385** files write `import io.ktor.client.request.*`
30
- * against **3** that import a verb explicitly. A reader that required the
31
- * explicit form would have been built for a shape the corpus does not contain,
32
- * which is the failure `adapter-python`'s own header records paying for.
33
- *
34
- * ## Interpolation means the opposite of what it means on the route side
21
+ * | the receiver is a real client | a local/property **constructed** `HttpClient(...)`, or a parameter/property whose **written type** is `HttpClient` |
35
22
  *
36
- * `routes.ts` **refuses** an interpolated path: a route template is written
37
- * literally (`"/orders/{id}"`), so interpolation there means the route is
38
- * assembled elsewhere and half of it is an endpoint that does not exist.
23
+ * The wildcard form is the common case, not an edge case: **385** files in the reference set
24
+ * import it that way against **3** that import a verb explicitly.
39
25
  *
40
- * Here it is inverted. `client.get("/orders/$id")` is how a caller writes a
41
- * path *parameter*, and the interpolation is precisely the part that must
42
- * become `{param}` for the call to join the route that serves it. Refusing it
43
- * would refuse the only shape that ever joins.
26
+ * ## Interpolation is inverted from the route side
44
27
  *
45
- * Both of Kotlin's interpolation spellings are read — `$id`
46
- * (`interpolated_identifier`) and `${id}` (`interpolated_expression`). Naming
47
- * only one of them is the defect this adapter's route reader shipped with.
28
+ * `routes.ts` refuses an interpolated path (a route template must be written literally). Here,
29
+ * interpolation is how a caller writes a path *parameter* — it must collapse to `{param}` to join
30
+ * its route, so refusing it would refuse the only shape that ever joins. Both spellings are read:
31
+ * `$id` (`interpolated_identifier`) and `${id}` (`interpolated_expression`).
48
32
  *
49
33
  * ## What is refused
50
34
  *
51
- * A path that is not a string literal at all · a path that is not
52
- * repository-relative, which is an outbound call to somebody else's service and
53
- * has no route on this side of the join · an absolute URL, for the same reason
54
- * plus [DEC-014](../../../descry-core/DECISIONS.md): an endpoint is host-free,
55
- * so `/v1/charges` on Stripe and `/v1/charges` here would be one node ·
56
- * a receiver whose name is bound to `HttpClient` in one place and to something
57
- * else in another, which this reader cannot separate without a type checker.
35
+ * A path that is not a string literal at all · a path that is not repository-relative, which is
36
+ * an outbound call to somebody else's service and has no route on this side of the join · an
37
+ * absolute URL, for the same reason plus [DEC-014](../../../descry-core/DECISIONS.md): an endpoint
38
+ * is host-free, so `/v1/charges` on Stripe and `/v1/charges` here would be one node · a receiver
39
+ * whose name is bound to `HttpClient` in one place and to something else in another, which this
40
+ * reader cannot separate without a type checker.
58
41
  */
59
42
  import type { Node } from "@descryy/adapter-treesitter";
60
43
  import type { KotlinImport } from "./parse.ts";
@@ -77,9 +60,8 @@ export interface KotlinClientRefusal {
77
60
  /** DEC-242's `attrs.refusalClass` — `undefined` means unclassified, never askable. */
78
61
  readonly refusalClass: BaseRefusalClass | "out-of-scope" | undefined;
79
62
  /**
80
- * Diagnostic only, not part of DEC-242 — see `adapter-rust/src/client.ts`'s
81
- * own doc for what this is and why it is not shipped as part of the
82
- * contract. Present only on the generic fallthrough of `diagnoseArgument`.
63
+ * Diagnostic only, not part of DEC-242 — see `adapter-rust/src/client.ts`.
64
+ * Present only on the generic fallthrough of `diagnoseArgument`.
83
65
  */
84
66
  readonly argumentKind?: "field" | "call" | "concatenation" | "other";
85
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;IACrE;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;CACtE;AAiBD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AA0CtF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACnD;AA6KD,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,iBAAiB,CAgFnG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;IACrE;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;CACtE;AAYD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AA0CtF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACnD;AAuKD,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,iBAAiB,CA8EnG"}
package/dist/client.js CHANGED
@@ -5,56 +5,39 @@
5
5
  * API_ROUTE ──SERVES_API──▶ API_ENDPOINT ◀──USES_API── caller
6
6
  * ```
7
7
  *
8
- * `routes.ts` produces the provider half. This produces the consumer half, and
9
- * until it existed `adapter-kotlin` declared no `USES_API` at all, so golden
10
- * pattern 08 was skipped rather than passed — declared incapacity, per DEC-043.
8
+ * `routes.ts` produces the provider half; this produces the consumer half (previously absent —
9
+ * golden pattern 08 was skipped as declared incapacity, DEC-043).
11
10
  *
12
- * ## Provenance, never the name — and here that is not optional
11
+ * ## Provenance is required, not the verb name alone
13
12
  *
14
- * `client.get("/orders/1")` is the single most dangerous shape available to a
15
- * reader of Kotlin. `adapter-python` measured the equivalent: matching on the
16
- * verb name alone would have minted **2,280 edges** to endpoints nothing
17
- * serves, because every Django and Flask test suite calls `client.get(...)` on
18
- * a *test client* that makes no HTTP request. Ktor's own `testApplication { }`
19
- * hands the test a `client` with exactly that shape.
20
- *
21
- * Two independent conditions, both required:
13
+ * `client.get(...)` alone is unsafe: `adapter-python` measured that matching on verb name alone
14
+ * would mint **2,280** false edges, since every Django/Flask test suite calls `client.get(...)` on
15
+ * a test client that makes no request — Ktor's own `testApplication { }` client has the identical
16
+ * shape. Both conditions below are required:
22
17
  *
23
18
  * | condition | evidence |
24
19
  * | --- | --- |
25
20
  * | the file imports the verb | `io.ktor.client.request.*` (wildcard) or `io.ktor.client.request.get` (explicit) |
26
- * | the receiver is a real client | a local or property **constructed** `HttpClient(...)`, or a parameter/property whose **written type** is `HttpClient` |
27
- *
28
- * The wildcard case is not a convenience — it is the common case. Counted
29
- * across the reference set: **385** files write `import io.ktor.client.request.*`
30
- * against **3** that import a verb explicitly. A reader that required the
31
- * explicit form would have been built for a shape the corpus does not contain,
32
- * which is the failure `adapter-python`'s own header records paying for.
33
- *
34
- * ## Interpolation means the opposite of what it means on the route side
21
+ * | the receiver is a real client | a local/property **constructed** `HttpClient(...)`, or a parameter/property whose **written type** is `HttpClient` |
35
22
  *
36
- * `routes.ts` **refuses** an interpolated path: a route template is written
37
- * literally (`"/orders/{id}"`), so interpolation there means the route is
38
- * assembled elsewhere and half of it is an endpoint that does not exist.
23
+ * The wildcard form is the common case, not an edge case: **385** files in the reference set
24
+ * import it that way against **3** that import a verb explicitly.
39
25
  *
40
- * Here it is inverted. `client.get("/orders/$id")` is how a caller writes a
41
- * path *parameter*, and the interpolation is precisely the part that must
42
- * become `{param}` for the call to join the route that serves it. Refusing it
43
- * would refuse the only shape that ever joins.
26
+ * ## Interpolation is inverted from the route side
44
27
  *
45
- * Both of Kotlin's interpolation spellings are read — `$id`
46
- * (`interpolated_identifier`) and `${id}` (`interpolated_expression`). Naming
47
- * only one of them is the defect this adapter's route reader shipped with.
28
+ * `routes.ts` refuses an interpolated path (a route template must be written literally). Here,
29
+ * interpolation is how a caller writes a path *parameter* — it must collapse to `{param}` to join
30
+ * its route, so refusing it would refuse the only shape that ever joins. Both spellings are read:
31
+ * `$id` (`interpolated_identifier`) and `${id}` (`interpolated_expression`).
48
32
  *
49
33
  * ## What is refused
50
34
  *
51
- * A path that is not a string literal at all · a path that is not
52
- * repository-relative, which is an outbound call to somebody else's service and
53
- * has no route on this side of the join · an absolute URL, for the same reason
54
- * plus [DEC-014](../../../descry-core/DECISIONS.md): an endpoint is host-free,
55
- * so `/v1/charges` on Stripe and `/v1/charges` here would be one node ·
56
- * a receiver whose name is bound to `HttpClient` in one place and to something
57
- * else in another, which this reader cannot separate without a type checker.
35
+ * A path that is not a string literal at all · a path that is not repository-relative, which is
36
+ * an outbound call to somebody else's service and has no route on this side of the join · an
37
+ * absolute URL, for the same reason plus [DEC-014](../../../descry-core/DECISIONS.md): an endpoint
38
+ * is host-free, so `/v1/charges` on Stripe and `/v1/charges` here would be one node · a receiver
39
+ * whose name is bound to `HttpClient` in one place and to something else in another, which this
40
+ * reader cannot separate without a type checker.
58
41
  */
59
42
  /** The package whose verb extension functions are HTTP calls. */
60
43
  const REQUEST_PACKAGE = "io.ktor.client.request";
@@ -145,11 +128,10 @@ function templateOf(argument) {
145
128
  return out;
146
129
  }
147
130
  /**
148
- * Unwrap a call to `receiver.verb(args)`, including the trailing-lambda form.
149
- *
150
- * A call carrying both arguments and a trailing lambda parses as two nested
151
- * `call_expression`s — the same grammar fact `routes.ts` unwraps. Reading only
152
- * the outer one loses every `client.get("/x") { header(...) }` in the corpus.
131
+ * Unwrap `receiver.verb(args)`, including the trailing-lambda form — args plus
132
+ * a lambda parse as two nested `call_expression`s (same fact `routes.ts`
133
+ * unwraps); reading only the outer node loses every
134
+ * `client.get("/x") { header(...) }` call.
153
135
  */
154
136
  function verbCallOf(node) {
155
137
  if (node.type !== "call_expression")
@@ -187,15 +169,12 @@ const typeNameOf = (node) => firstOfType(node, "user_type") === undefined
187
169
  ? undefined
188
170
  : firstOfType(firstOfType(node, "user_type"), "type_identifier")?.text;
189
171
  /**
190
- * The name being *constructed* by a call expression, unwrapping the nested form.
172
+ * The name *constructed* by a call expression, unwrapping the nested form.
191
173
  *
192
- * `HttpClient()` is one `call_expression`; `HttpClient(MockEngine) { … }` — args
193
- * plus a trailing lambda — is **two nested** ones, the same grammar fact
194
- * `verbCallOf` unwraps. Reading only the outer node finds a `call_expression`
195
- * where it wants an identifier and concludes nothing was constructed. That is
196
- * not a small miss: `HttpClient(engine) { … }` is how essentially every real
197
- * Ktor client is built, so the reader saw zero clients on a repository holding
198
- * hundreds.
174
+ * `HttpClient(engine) { … }` (args + trailing lambda) parses as two nested
175
+ * `call_expression`s, the same fact `verbCallOf` unwraps. Reading only the
176
+ * outer node finds zero clients — and that form is how essentially every real
177
+ * Ktor client is built, so the miss was total, not marginal.
199
178
  */
200
179
  function constructedName(node) {
201
180
  if (node.type !== "call_expression")
@@ -208,13 +187,11 @@ function constructedName(node) {
208
187
  return head.type === "simple_identifier" ? head.text : undefined;
209
188
  }
210
189
  /**
211
- * Names bound to an `HttpClient`, and names bound to anything else.
212
- *
213
- * Collected file-wide and then **intersected**: a name that is an `HttpClient`
214
- * in one scope and something else in another cannot be separated at R2 without
215
- * a type checker, so it is disclosed rather than admitted. Kotlin infers
216
- * aggressively, which makes that collision likelier here than in a language
217
- * that writes its types down.
190
+ * Names bound to `HttpClient` vs. bound to anything else, collected file-wide
191
+ * then **intersected**: a name typed as `HttpClient` in one scope and
192
+ * something else in another can't be separated at R2 without a type checker,
193
+ * so it's disclosed rather than admitted. Kotlin's aggressive inference makes
194
+ * this collision likelier than in an explicitly-typed language.
218
195
  */
219
196
  function clientNames(root, imports) {
220
197
  const verified = new Set();
@@ -270,11 +247,10 @@ export function readKtorClientCalls(root, imports) {
270
247
  const calls = [];
271
248
  const refusals = [];
272
249
  const { verified, ambiguous } = clientNames(root, imports);
273
- // Replaced, not merged, on entering a nested `function_declaration` — the
274
- // innermost function's own parameters are what "varies-per-call" means for
275
- // a call inside it, the same scoping every other language's diagnoseArgument
276
- // uses. A name closed over from an outer function is an ordinary ambiguous
277
- // capture here, not a parameter.
250
+ // Replaced, not merged, on entering a nested `function_declaration`: the
251
+ // innermost function's parameters are what "varies-per-call" means inside it
252
+ // (same scoping as every other language's diagnoseArgument). A name closed
253
+ // over from an outer function is an ordinary capture, not a parameter.
278
254
  const visit = (node, parameterNames) => {
279
255
  const scoped = node.type === "function_declaration" ? parameterNamesOf(node) : parameterNames;
280
256
  const call = verbCallOf(node);
@@ -294,10 +270,9 @@ export function readKtorClientCalls(root, imports) {
294
270
  else if (verified.has(call.receiver)) {
295
271
  readVerified(call, method, scoped);
296
272
  }
297
- // A receiver that is neither verified nor ambiguous is not a client
298
- // this reader can see. No ledger row: `x.get(...)` is overwhelmingly
299
- // a map lookup or a test client, and filing every one would bury the
300
- // real refusals under the 2,280-row population.
273
+ // Neither verified nor ambiguous: no visible client, no ledger row.
274
+ // `x.get(...)` is overwhelmingly a map lookup or test client; filing
275
+ // every one would bury real refusals under a 2,280-row population.
301
276
  }
302
277
  }
303
278
  for (const child of namedChildren(node))
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}