@descryy/adapter-kotlin 0.1.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.
@@ -1,56 +1,30 @@
1
1
  /**
2
- * Retrofit — the client-side declarative HTTP interface, Kotlin/Android's
3
- * dominant client-call shape.
4
- *
5
- * `language-problems.md` §9's second row: neither Retrofit nor OkHttp had a
6
- * reader at all, disclosed only by omission from `frameworkExtractors`.
2
+ * Retrofit — the client-side declarative HTTP interface, Kotlin/Android's dominant client-call
3
+ * shape. `language-problems.md` §9's second row: neither Retrofit nor OkHttp had a reader at all,
4
+ * disclosed only by omission from `frameworkExtractors`.
7
5
  *
8
6
  * ## Structurally different from `client.ts`
9
7
  *
10
- * Every other client-call mechanism this project reads — `client.get(path)`
11
- * in `client.ts`, `.newCall(request).execute()` for raw OkHttp is a call
12
- * SITE: an expression that, when it runs, performs the request, with an
13
- * enclosing function this reader can blame.
14
- *
15
- * A Retrofit interface method has no such site:
16
- *
17
- * ```kotlin
18
- * interface PokedexService {
19
- * @GET("pokemon/{name}")
20
- * suspend fun fetchPokemonInfo(@Path("name") name: String): ApiResponse<PokemonInfo>
21
- * }
22
- * ```
23
- *
24
- * `fetchPokemonInfo` has no body Retrofit fills it in at runtime with a
25
- * generated proxy this reader will never see, the same "no method body, no
26
- * AST call site to read at all" shape `adapter-java`'s Feign/`@HttpExchange`
27
- * row names, and correctly declines to build for lack of a corpus. Kotlin's
28
- * corpus is not empty (`skydoves/Pokedex`, real, widely-used as an Android
29
- * reference app: 2 endpoints across 2 methods), which is the only reason this
30
- * one is built and that one is not.
31
- *
32
- * So the edge starts at the ANNOTATED FUNCTION'S OWN id, not at whatever
33
- * calls it — the declaration itself is the evidence that calling this
34
- * function reaches this endpoint, and ordinary `CALLS` resolution (already
35
- * built, unchanged here) is what connects a real caller to it, one hop away.
36
- *
37
- * ## Why raw OkHttp (`OkHttpClient().newCall(...)`) is measured, not built
38
- *
39
- * Two real corpora were checked. `tivi` (a large, real, actively maintained
40
- * Android app) imports `okhttp3.OkHttpClient` in 6 files — **all 6 are
41
- * dependency-injection configuration** (`OkHttpClient.Builder()...build()`
42
- * handed to Retrofit), **zero** are a `.newCall(request).execute()` call
43
- * site. `okhttp` itself has real call sites in `samples/guide` — but every
44
- * one builds its `Request` in a `val request = Request.Builder().url(...)`
45
- * two hops from the call, needing the same cross-statement value tracing
46
- * `language-problems.md` §0.1 already lists as the class of gap this project
47
- * defers everywhere else (Rust's default trait bodies, PHP's raw `curl_*`) —
48
- * and every one of those `.url(...)` arguments is an absolute external host
49
- * (`https://httpbin.org/...`), which this project refuses on sight (DEC-014)
50
- * regardless. Building the trace would move zero edges on either corpus on
51
- * disk; this is the same call `adapter-csharp` made for Refit (measured at
52
- * zero, disclosed rather than built) and `adapter-rust` made for warp/rocket
53
- * — a rule with no witness in evidence is an untaken branch, not a weak one.
8
+ * Every other client-call mechanism here (`client.get(path)`, raw OkHttp's
9
+ * `.newCall(request).execute()`) is a call SITE with an enclosing function to blame. A Retrofit
10
+ * interface method has no body at all — Retrofit fills it in at runtime via a generated proxy, the
11
+ * same "no AST call site" shape `adapter-java` declines for Feign/`@HttpExchange` for lack of a
12
+ * corpus. Kotlin's corpus isn't empty (`skydoves/Pokedex`: 2 endpoints, 2 methods), which is the
13
+ * only reason this one is built and that one isn't.
14
+ *
15
+ * So the edge starts at the ANNOTATED FUNCTION'S OWN id, not whatever calls it — the declaration is
16
+ * the evidence that calling it reaches the endpoint; ordinary `CALLS` resolution connects a real
17
+ * caller one hop further out.
18
+ *
19
+ * ## Why raw OkHttp is measured, not built
20
+ *
21
+ * Two corpora checked. `tivi` imports `OkHttpClient` in 6 files — all 6 are DI configuration handed
22
+ * to Retrofit, zero are call sites. `okhttp` itself has real call sites, but every `Request` is
23
+ * built two hops away via `Request.Builder()...` (the cross-statement tracing
24
+ * `language-problems.md` §0.1 already defers everywhere else), and every URL is an absolute
25
+ * external host anyway, refused on sight (DEC-014). Building the trace would move zero edges on
26
+ * either corpus same call `adapter-csharp` made for Refit and `adapter-rust` for warp/rocket: a
27
+ * rule with no witness is an untaken branch, not a weak one.
54
28
  */
55
29
  import type { Node } from "@descryy/adapter-treesitter";
56
30
  import type { KotlinImport } from "./parse.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"retrofit.d.ts","sourceRoot":"","sources":["../src/retrofit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAqED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,uBAAuB,CA4E3G"}
1
+ {"version":3,"file":"retrofit.d.ts","sourceRoot":"","sources":["../src/retrofit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAqED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,uBAAuB,CA4E3G"}
package/dist/retrofit.js CHANGED
@@ -1,56 +1,30 @@
1
1
  /**
2
- * Retrofit — the client-side declarative HTTP interface, Kotlin/Android's
3
- * dominant client-call shape.
4
- *
5
- * `language-problems.md` §9's second row: neither Retrofit nor OkHttp had a
6
- * reader at all, disclosed only by omission from `frameworkExtractors`.
2
+ * Retrofit — the client-side declarative HTTP interface, Kotlin/Android's dominant client-call
3
+ * shape. `language-problems.md` §9's second row: neither Retrofit nor OkHttp had a reader at all,
4
+ * disclosed only by omission from `frameworkExtractors`.
7
5
  *
8
6
  * ## Structurally different from `client.ts`
9
7
  *
10
- * Every other client-call mechanism this project reads — `client.get(path)`
11
- * in `client.ts`, `.newCall(request).execute()` for raw OkHttp is a call
12
- * SITE: an expression that, when it runs, performs the request, with an
13
- * enclosing function this reader can blame.
14
- *
15
- * A Retrofit interface method has no such site:
16
- *
17
- * ```kotlin
18
- * interface PokedexService {
19
- * @GET("pokemon/{name}")
20
- * suspend fun fetchPokemonInfo(@Path("name") name: String): ApiResponse<PokemonInfo>
21
- * }
22
- * ```
23
- *
24
- * `fetchPokemonInfo` has no body — Retrofit fills it in at runtime with a
25
- * generated proxy this reader will never see, the same "no method body, no
26
- * AST call site to read at all" shape `adapter-java`'s Feign/`@HttpExchange`
27
- * row names, and correctly declines to build for lack of a corpus. Kotlin's
28
- * corpus is not empty (`skydoves/Pokedex`, real, widely-used as an Android
29
- * reference app: 2 endpoints across 2 methods), which is the only reason this
30
- * one is built and that one is not.
8
+ * Every other client-call mechanism here (`client.get(path)`, raw OkHttp's
9
+ * `.newCall(request).execute()`) is a call SITE with an enclosing function to blame. A Retrofit
10
+ * interface method has no body at all — Retrofit fills it in at runtime via a generated proxy, the
11
+ * same "no AST call site" shape `adapter-java` declines for Feign/`@HttpExchange` for lack of a
12
+ * corpus. Kotlin's corpus isn't empty (`skydoves/Pokedex`: 2 endpoints, 2 methods), which is the
13
+ * only reason this one is built and that one isn't.
31
14
  *
32
- * So the edge starts at the ANNOTATED FUNCTION'S OWN id, not at whatever
33
- * calls it the declaration itself is the evidence that calling this
34
- * function reaches this endpoint, and ordinary `CALLS` resolution (already
35
- * built, unchanged here) is what connects a real caller to it, one hop away.
15
+ * So the edge starts at the ANNOTATED FUNCTION'S OWN id, not whatever calls it — the declaration is
16
+ * the evidence that calling it reaches the endpoint; ordinary `CALLS` resolution connects a real
17
+ * caller one hop further out.
36
18
  *
37
- * ## Why raw OkHttp (`OkHttpClient().newCall(...)`) is measured, not built
19
+ * ## Why raw OkHttp is measured, not built
38
20
  *
39
- * Two real corpora were checked. `tivi` (a large, real, actively maintained
40
- * Android app) imports `okhttp3.OkHttpClient` in 6 files **all 6 are
41
- * dependency-injection configuration** (`OkHttpClient.Builder()...build()`
42
- * handed to Retrofit), **zero** are a `.newCall(request).execute()` call
43
- * site. `okhttp` itself has real call sites in `samples/guide` but every
44
- * one builds its `Request` in a `val request = Request.Builder().url(...)`
45
- * two hops from the call, needing the same cross-statement value tracing
46
- * `language-problems.md` §0.1 already lists as the class of gap this project
47
- * defers everywhere else (Rust's default trait bodies, PHP's raw `curl_*`) —
48
- * and every one of those `.url(...)` arguments is an absolute external host
49
- * (`https://httpbin.org/...`), which this project refuses on sight (DEC-014)
50
- * regardless. Building the trace would move zero edges on either corpus on
51
- * disk; this is the same call `adapter-csharp` made for Refit (measured at
52
- * zero, disclosed rather than built) and `adapter-rust` made for warp/rocket
53
- * — a rule with no witness in evidence is an untaken branch, not a weak one.
21
+ * Two corpora checked. `tivi` imports `OkHttpClient` in 6 files — all 6 are DI configuration handed
22
+ * to Retrofit, zero are call sites. `okhttp` itself has real call sites, but every `Request` is
23
+ * built two hops away via `Request.Builder()...` (the cross-statement tracing
24
+ * `language-problems.md` §0.1 already defers everywhere else), and every URL is an absolute
25
+ * external host anyway, refused on sight (DEC-014). Building the trace would move zero edges on
26
+ * either corpus same call `adapter-csharp` made for Refit and `adapter-rust` for warp/rocket: a
27
+ * rule with no witness is an untaken branch, not a weak one.
54
28
  */
55
29
  const HTTP_PACKAGE = "retrofit2.http";
56
30
  /** Retrofit's own verb annotations — each carries the path as its own argument, unlike Spring's split prefix/suffix. */
@@ -1 +1 @@
1
- {"version":3,"file":"retrofit.js","sourceRoot":"","sources":["../src/retrofit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrofit.js","sourceRoot":"","sources":["../src/retrofit.ts"],"names":[],"mappings":"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"}
package/dist/routes.d.ts CHANGED
@@ -5,30 +5,23 @@
5
5
  *
6
6
  * ## Provenance is the block, never the bare name
7
7
  *
8
- * Ktor's routing functions `get`, `post`, `route`, and the restare bare
9
- * calls with no receiver: `routing { get("/x") { ... } }` reads as an
10
- * implicit-receiver lambda, the same shape Kotlin uses for scope functions,
11
- * builders and half of its standard library. `get` alone is not evidence of
12
- * anything; a config DSL, a map builder or a test fixture can all declare a
13
- * function named `get`. So the file must first **import** `io.ktor.server
14
- * .routing.routing` (or the wildcard `io.ktor.server.routing.*`), and only
15
- * the lambda passed to a bare `routing(...)` call in that file is walked at
16
- * all. Everything found outside one is not a route and not a gap.
8
+ * Ktor's routing functions (`get`, `post`, `route`, ...) are bare calls with no receiver the
9
+ * same implicit-receiver-lambda shape used all over Kotlin's standard library and DSLs, so `get`
10
+ * alone is not evidence of anything. The file must first import `io.ktor.server.routing.routing`
11
+ * (or its wildcard), and only the lambda passed to a bare `routing(...)` call in that file is
12
+ * walked. Anything found outside one is not a route, not a gap.
17
13
  *
18
14
  * ## The path is composed from nesting, and only from nesting
19
15
  *
20
- * `route("/orders") { get("/{id}") { ... } }` registers `GET /orders/{id}`;
21
- * `route("/orders") { get { ... } }` registers `GET /orders` no trailing
22
- * segment at all. Both are read by tracking the accumulated prefix through
23
- * each `route(...)` a verb call sits inside, never by string-matching the
24
- * two together after the fact.
16
+ * `route("/orders") { get("/{id}") { ... } }` registers `GET /orders/{id}`; `route("/orders") {
17
+ * get { ... } }` registers `GET /orders` with no trailing segment. Read by tracking the
18
+ * accumulated prefix through each `route(...)` a verb call sits inside, never by string-matching
19
+ * after the fact.
25
20
  *
26
- * A call whose name is neither a verb nor `route` `authenticate(...) {
27
- * ... }`, `intercept(...) { ... }`, a plain `if` is not descended into.
28
- * Ktor's middleware DSL is larger than this reader knows, and stopping at
29
- * the boundary of what is understood is the disclosed gap; guessing that an
30
- * unknown wrapper does not consume a path segment would be a claim this
31
- * reader cannot back up for constructs it has never read.
21
+ * A call that is neither a verb nor `route` (`authenticate(...) { ... }`, `intercept(...) { ... }`,
22
+ * a plain `if`) is not descended into Ktor's middleware DSL is larger than this reader knows, and
23
+ * stopping there is the disclosed gap; assuming an unknown wrapper doesn't consume a path segment
24
+ * would be an unbacked claim.
32
25
  */
33
26
  import type { Node } from "@descryy/adapter-treesitter";
34
27
  import type { KotlinImport } from "./parse.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAuHD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,CAkFzF"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgB/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAwGD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,CAkFzF"}
package/dist/routes.js CHANGED
@@ -5,30 +5,23 @@
5
5
  *
6
6
  * ## Provenance is the block, never the bare name
7
7
  *
8
- * Ktor's routing functions `get`, `post`, `route`, and the restare bare
9
- * calls with no receiver: `routing { get("/x") { ... } }` reads as an
10
- * implicit-receiver lambda, the same shape Kotlin uses for scope functions,
11
- * builders and half of its standard library. `get` alone is not evidence of
12
- * anything; a config DSL, a map builder or a test fixture can all declare a
13
- * function named `get`. So the file must first **import** `io.ktor.server
14
- * .routing.routing` (or the wildcard `io.ktor.server.routing.*`), and only
15
- * the lambda passed to a bare `routing(...)` call in that file is walked at
16
- * all. Everything found outside one is not a route and not a gap.
8
+ * Ktor's routing functions (`get`, `post`, `route`, ...) are bare calls with no receiver the
9
+ * same implicit-receiver-lambda shape used all over Kotlin's standard library and DSLs, so `get`
10
+ * alone is not evidence of anything. The file must first import `io.ktor.server.routing.routing`
11
+ * (or its wildcard), and only the lambda passed to a bare `routing(...)` call in that file is
12
+ * walked. Anything found outside one is not a route, not a gap.
17
13
  *
18
14
  * ## The path is composed from nesting, and only from nesting
19
15
  *
20
- * `route("/orders") { get("/{id}") { ... } }` registers `GET /orders/{id}`;
21
- * `route("/orders") { get { ... } }` registers `GET /orders` no trailing
22
- * segment at all. Both are read by tracking the accumulated prefix through
23
- * each `route(...)` a verb call sits inside, never by string-matching the
24
- * two together after the fact.
16
+ * `route("/orders") { get("/{id}") { ... } }` registers `GET /orders/{id}`; `route("/orders") {
17
+ * get { ... } }` registers `GET /orders` with no trailing segment. Read by tracking the
18
+ * accumulated prefix through each `route(...)` a verb call sits inside, never by string-matching
19
+ * after the fact.
25
20
  *
26
- * A call whose name is neither a verb nor `route` `authenticate(...) {
27
- * ... }`, `intercept(...) { ... }`, a plain `if` is not descended into.
28
- * Ktor's middleware DSL is larger than this reader knows, and stopping at
29
- * the boundary of what is understood is the disclosed gap; guessing that an
30
- * unknown wrapper does not consume a path segment would be a claim this
31
- * reader cannot back up for constructs it has never read.
21
+ * A call that is neither a verb nor `route` (`authenticate(...) { ... }`, `intercept(...) { ... }`,
22
+ * a plain `if`) is not descended into Ktor's middleware DSL is larger than this reader knows, and
23
+ * stopping there is the disclosed gap; assuming an unknown wrapper doesn't consume a path segment
24
+ * would be an unbacked claim.
32
25
  */
33
26
  const ROUTING_PACKAGE = "io.ktor.server.routing";
34
27
  const ROUTING_FUNCTION = `${ROUTING_PACKAGE}.routing`;
@@ -52,9 +45,6 @@ const namedChildren = (node) => {
52
45
  return out;
53
46
  };
54
47
  const firstOfType = (node, type) => namedChildren(node).find((child) => child.type === type);
55
- // `firstDescendantOfType` lived here to serve the interpolation blacklist and
56
- // was deleted with it — see `stringLiteralOf`. A descendant search for a
57
- // *forbidden* node is the shape of that defect, not a helper worth keeping.
58
48
  /** The text of a plain string literal — `"/orders"` — or `undefined` for anything with interpolation. */
59
49
  function stringLiteralOf(argument) {
60
50
  if (argument === undefined)
@@ -63,21 +53,13 @@ function stringLiteralOf(argument) {
63
53
  if (literal === undefined)
64
54
  return undefined;
65
55
  // **Every child must be plain content — a whitelist, never a blacklist.**
66
- //
67
- // This previously named the one interpolation node it knew about
68
- // (`interpolated_expression`, the `${...}` form) and accepted anything else.
69
- // Kotlin's grammar has a second: `$name` without braces parses as
70
- // `interpolated_identifier`. That form fell straight through the check, and
71
- // since the reader then took only the FIRST `string_content`, `get("/reports/$name")`
72
- // was admitted as the route `GET /reports/` — a silently truncated template,
73
- // an endpoint nothing serves, which is precisely what this function's own
74
- // refusal reason says must never happen. Neither the unit tests nor the
75
- // fixture caught it because both used the braced form.
76
- //
77
- // `adapter-rust` and `adapter-swift` were written with the whitelist shape
78
- // and were never exposed to it. Enumerating what is allowed cannot be
79
- // outflanked by a grammar node this reader has not heard of; enumerating
80
- // what is forbidden always can.
56
+ // An earlier version named only the interpolation node it knew about
57
+ // (`interpolated_expression`, `${...}`) and accepted anything else; Kotlin's
58
+ // grammar has a second form, `$name` without braces
59
+ // (`interpolated_identifier`), which fell through and let
60
+ // `get("/reports/$name")` register as the silently truncated route
61
+ // `GET /reports/`. A whitelist can't be outflanked by an unknown grammar
62
+ // node; a blacklist always can.
81
63
  let content = "";
82
64
  for (const child of namedChildren(literal)) {
83
65
  if (child.type !== "string_content")
@@ -128,13 +110,10 @@ function composePath(prefix, segment) {
128
110
  return `${prefix}/${segment}`;
129
111
  }
130
112
  /**
131
- * Is every placeholder a plain path parameter?
132
- *
133
- * `{...}` is Ktor's unnamed tailcard and `{param?}` is an optional segment —
134
- * neither pins down one physical request the way `{param}` does, and
135
- * collapsing either to `{param}` would merge routes that serve different
136
- * requests, DEC-055's finding arriving in Ktor's own syntax. A bare `*`
137
- * (single-segment wildcard) is refused for the same reason.
113
+ * Is every placeholder a plain path parameter? `{...}` (Ktor's unnamed
114
+ * tailcard), `{param?}` (optional segment) and a bare `*` (wildcard) don't
115
+ * pin down one physical request the way `{param}` does collapsing them
116
+ * would merge routes serving different requests (DEC-055, in Ktor's syntax).
138
117
  */
139
118
  function templateIsPlain(path) {
140
119
  if (path.includes("*"))
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,gBAAgB,GAAG,GAAG,eAAe,UAAU,CAAC;AAEtD,iEAAiE;AACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAiB;IAC3C,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,SAAS,EAAE,SAAS,CAAC;CACvB,CAAC,CAAC;AAsBH,MAAM,aAAa,GAAG,CAAC,IAAU,EAAU,EAAE;IAC3C,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,IAAY,EAAoB,EAAE,CACjE,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAE3D,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAE5E,yGAAyG;AACzG,SAAS,eAAe,CAAC,QAA0B;IACjD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACxG,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,0EAA0E;IAC1E,EAAE;IACF,iEAAiE;IACjE,6EAA6E;IAC7E,kEAAkE;IAClE,4EAA4E;IAC5E,sFAAsF;IACtF,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,uDAAuD;IACvD,EAAE;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,gCAAgC;IAChC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,SAAS,CAAC;QACtD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAQD;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAU;IAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,YAAY,GAAG,CAAC,MAAwB,EAAoB,EAAE;QAClE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAC5E,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC9F,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjG,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACtF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2HAA2H;AAC3H,SAAS,WAAW,CAAC,MAAc,EAAE,OAA2B;IAC9D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,GAAG,OAAO,CAAC;IACrD,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgC;IAC1D,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,UAAU,CAAC,CACnF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,OAAgC;IACzE,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAEpE,MAAM,IAAI,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,CAAC,UAAgB,EAAE,MAAc,EAAQ,EAAE;QAC3D,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,YAAY;wBACvB,MAAM,EACJ,4FAA4F;4BAC5F,2EAA2E;wBAC7E,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;qBACjB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;oBAAE,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChG,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS,CAAC,mEAAmE;YAEvG,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,MAAM,CAAC,IAAI;oBACtB,MAAM,EACJ,+FAA+F;wBAC/F,gGAAgG;oBAClG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;iBACjB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,MAAM,CAAC,IAAI;oBACtB,MAAM,EAAE,qDAAqD;oBAC7D,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;iBACjB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,QAAQ;oBACnB,MAAM,EACJ,+FAA+F;wBAC/F,6FAA6F;wBAC7F,uCAAuC;oBACzC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;iBACjB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAQ,EAAE;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClE,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO,CAAC,6DAA6D;YACvE,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
package/dist/spring.d.ts CHANGED
@@ -1,35 +1,27 @@
1
1
  /**
2
2
  * `API_ROUTE` from Kotlin source — Spring MVC and Spring WebFlux annotations.
3
3
  *
4
- * `language-problems.md` §9's first row: `frameworkExtractors` names only
5
- * `ktor`, and Kotlin-on-Spring Spring Initializr's own default for a Kotlin
6
- * backend, and the framework `spring-petclinic-kotlin` is written against —
7
- * produced nothing at all, disclosed only in `adapter.ts`'s prose rather than
8
- * in the refusal ledger.
4
+ * `language-problems.md` §9's first row: `frameworkExtractors` named only `ktor`, and
5
+ * Kotlin-on-Spring (Spring Initializr's own default, and what `spring-petclinic-kotlin` is written
6
+ * against) produced nothing at all.
9
7
  *
10
- * This is a direct port of `adapter-java/src/spring.ts`'s admission rules —
11
- * DEC-127's class-prefix/method-suffix join, and the `@Controller` vs.
12
- * `@RestController` view/data distinction onto Kotlin's own annotation
13
- * grammar, which is shaped differently from Java's: an annotation with no
14
- * arguments is a bare `user_type` (`@RestController`), and one with arguments
15
- * is a `constructor_invocation` (`@RequestMapping("/orders")`) — never one
16
- * grammar node for both, the way Java's is.
8
+ * Direct port of `adapter-java/src/spring.ts`'s admission rules — DEC-127's class-prefix/
9
+ * method-suffix join, and the `@Controller` vs `@RestController` view/data distinction — onto
10
+ * Kotlin's own annotation grammar: an annotation with no arguments is a bare `user_type`
11
+ * (`@RestController`), with arguments a `constructor_invocation` (`@RequestMapping("/orders")`)
12
+ * two grammar nodes, not Java's one.
17
13
  *
18
14
  * ## Measured, not assumed
19
15
  *
20
- * `spring-petclinic-kotlin` (the official Spring reference app in Kotlin) is
21
- * the only real corpus on disk: 6 controllers, 26 mapping annotations, **all
22
- * of them `@Controller`, none `@RestController`, and every handler returns
23
- * `String`** (a Thymeleaf view name). Correctly refused as view routes, this
24
- * reader emits **zero** `API_ROUTE`s from it the same shape Java's own
25
- * `spring-petclinic` measured (93.8% view-refused) and the reason
26
- * `controllerKind` exists at all: admitting all 26 would have been 26 wrong
27
- * edges, not a degraded number.
16
+ * `spring-petclinic-kotlin`, the only real corpus on disk: 6 controllers, 26 mapping annotations,
17
+ * all `@Controller` (none `@RestController`), every handler returning `String` (a Thymeleaf view).
18
+ * Correctly refused as view routes zero `API_ROUTE`s emitted, matching Java's own
19
+ * `spring-petclinic` measurement (93.8% view-refused) and the reason `controllerKind` exists:
20
+ * admitting all 26 would have been 26 wrong edges.
28
21
  *
29
- * There is no `@RestController` witness in any corpus on disk, so the "data"
30
- * path is verified structurally (it is the same rule Java's is, and Java's is
31
- * measured) and by unit test, not by a second real corpus. Disclosed here
32
- * rather than left implicit.
22
+ * No `@RestController` witness in any corpus on disk, so the "data" path is verified structurally
23
+ * (same rule as Java's, which is measured) and by unit test, not a second real corpus — disclosed
24
+ * here rather than left implicit.
33
25
  */
34
26
  import type { Node } from "@descryy/adapter-treesitter";
35
27
  import type { KotlinImport } from "./parse.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqJ/C,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,WAAW,EAAE,CA6DrG"}
1
+ {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkJ/C,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,WAAW,EAAE,CA4DrG"}
package/dist/spring.js CHANGED
@@ -1,35 +1,27 @@
1
1
  /**
2
2
  * `API_ROUTE` from Kotlin source — Spring MVC and Spring WebFlux annotations.
3
3
  *
4
- * `language-problems.md` §9's first row: `frameworkExtractors` names only
5
- * `ktor`, and Kotlin-on-Spring Spring Initializr's own default for a Kotlin
6
- * backend, and the framework `spring-petclinic-kotlin` is written against —
7
- * produced nothing at all, disclosed only in `adapter.ts`'s prose rather than
8
- * in the refusal ledger.
4
+ * `language-problems.md` §9's first row: `frameworkExtractors` named only `ktor`, and
5
+ * Kotlin-on-Spring (Spring Initializr's own default, and what `spring-petclinic-kotlin` is written
6
+ * against) produced nothing at all.
9
7
  *
10
- * This is a direct port of `adapter-java/src/spring.ts`'s admission rules —
11
- * DEC-127's class-prefix/method-suffix join, and the `@Controller` vs.
12
- * `@RestController` view/data distinction onto Kotlin's own annotation
13
- * grammar, which is shaped differently from Java's: an annotation with no
14
- * arguments is a bare `user_type` (`@RestController`), and one with arguments
15
- * is a `constructor_invocation` (`@RequestMapping("/orders")`) — never one
16
- * grammar node for both, the way Java's is.
8
+ * Direct port of `adapter-java/src/spring.ts`'s admission rules — DEC-127's class-prefix/
9
+ * method-suffix join, and the `@Controller` vs `@RestController` view/data distinction — onto
10
+ * Kotlin's own annotation grammar: an annotation with no arguments is a bare `user_type`
11
+ * (`@RestController`), with arguments a `constructor_invocation` (`@RequestMapping("/orders")`)
12
+ * two grammar nodes, not Java's one.
17
13
  *
18
14
  * ## Measured, not assumed
19
15
  *
20
- * `spring-petclinic-kotlin` (the official Spring reference app in Kotlin) is
21
- * the only real corpus on disk: 6 controllers, 26 mapping annotations, **all
22
- * of them `@Controller`, none `@RestController`, and every handler returns
23
- * `String`** (a Thymeleaf view name). Correctly refused as view routes, this
24
- * reader emits **zero** `API_ROUTE`s from it the same shape Java's own
25
- * `spring-petclinic` measured (93.8% view-refused) and the reason
26
- * `controllerKind` exists at all: admitting all 26 would have been 26 wrong
27
- * edges, not a degraded number.
16
+ * `spring-petclinic-kotlin`, the only real corpus on disk: 6 controllers, 26 mapping annotations,
17
+ * all `@Controller` (none `@RestController`), every handler returning `String` (a Thymeleaf view).
18
+ * Correctly refused as view routes zero `API_ROUTE`s emitted, matching Java's own
19
+ * `spring-petclinic` measurement (93.8% view-refused) and the reason `controllerKind` exists:
20
+ * admitting all 26 would have been 26 wrong edges.
28
21
  *
29
- * There is no `@RestController` witness in any corpus on disk, so the "data"
30
- * path is verified structurally (it is the same rule Java's is, and Java's is
31
- * measured) and by unit test, not by a second real corpus. Disclosed here
32
- * rather than left implicit.
22
+ * No `@RestController` witness in any corpus on disk, so the "data" path is verified structurally
23
+ * (same rule as Java's, which is measured) and by unit test, not a second real corpus — disclosed
24
+ * here rather than left implicit.
33
25
  */
34
26
  const namedChildren = (node) => {
35
27
  const out = [];
@@ -44,11 +36,8 @@ const firstOfType = (node, type) => namedChildren(node).find((child) => child.ty
44
36
  const lineOf = (node) => node.startPosition.row + 1;
45
37
  /**
46
38
  * A plain string literal, or every element of a `["a", "b"]` array literal —
47
- * `undefined` for anything else, including one containing interpolation.
48
- *
49
- * The whitelist rule `routes.ts`'s `stringLiteralOf` documents applies here
50
- * too: enumerating what is a plain string cannot be outflanked by a grammar
51
- * node this reader has not heard of.
39
+ * empty for anything else, interpolation included. Same whitelist rule as
40
+ * `routes.ts`'s `stringLiteralOf`.
52
41
  */
53
42
  function stringValuesOf(node) {
54
43
  if (node === undefined)
@@ -217,10 +206,9 @@ export function readSpringRoutes(root, imports) {
217
206
  }
218
207
  }
219
208
  }
220
- // Nested types (a companion object, an inner class) are walked too —
221
- // Spring never nests a controller inside another, but a file mixing a
222
- // controller with an unrelated nested type must not have the nested
223
- // type's own body silently skipped by this reader.
209
+ // Nested types (companion object, inner class) are walked too — Spring
210
+ // never nests a controller, but an unrelated nested type in the same
211
+ // file must not be silently skipped.
224
212
  if (body !== undefined)
225
213
  walkClasses(body);
226
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}