@descryy/adapter-java 0.1.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/dist/adapter.d.ts +31 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +298 -0
- package/dist/adapter.js.map +1 -0
- package/dist/client.d.ts +171 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +471 -0
- package/dist/client.js.map +1 -0
- package/dist/extract.d.ts +49 -0
- package/dist/extract.d.ts.map +1 -0
- package/dist/extract.js +892 -0
- package/dist/extract.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/jpa.d.ts +107 -0
- package/dist/jpa.d.ts.map +1 -0
- package/dist/jpa.js +312 -0
- package/dist/jpa.js.map +1 -0
- package/dist/parse.d.ts +297 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +765 -0
- package/dist/parse.js.map +1 -0
- package/dist/roots.d.ts +9 -0
- package/dist/roots.d.ts.map +1 -0
- package/dist/roots.js +9 -0
- package/dist/roots.js.map +1 -0
- package/dist/spring.d.ts +78 -0
- package/dist/spring.d.ts.map +1 -0
- package/dist/spring.js +397 -0
- package/dist/spring.js.map +1 -0
- package/dist/tree-sitter-java.wasm +0 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
package/dist/roots.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Moved to `@descryy/adapter-jvm`.
|
|
3
|
+
*
|
|
4
|
+
* The rule is not Java's — Kotlin, Scala and Groovy derive a source root from a
|
|
5
|
+
* package declaration and anchor it to a Maven or Gradle module the same way.
|
|
6
|
+
* Re-exported here so nothing that already imports it breaks.
|
|
7
|
+
*/
|
|
8
|
+
export { anchorOf, identityPackage, sourceRootOf, type Anchor } from "@descryy/adapter-jvm";
|
|
9
|
+
//# sourceMappingURL=roots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roots.d.ts","sourceRoot":"","sources":["../src/roots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/roots.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Moved to `@descryy/adapter-jvm`.
|
|
3
|
+
*
|
|
4
|
+
* The rule is not Java's — Kotlin, Scala and Groovy derive a source root from a
|
|
5
|
+
* package declaration and anchor it to a Maven or Gradle module the same way.
|
|
6
|
+
* Re-exported here so nothing that already imports it breaks.
|
|
7
|
+
*/
|
|
8
|
+
export { anchorOf, identityPackage, sourceRootOf } from "@descryy/adapter-jvm";
|
|
9
|
+
//# sourceMappingURL=roots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roots.js","sourceRoot":"","sources":["../src/roots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC"}
|
package/dist/spring.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HTTP-route framework extractor for Java — Spring MVC and Spring WebFlux.
|
|
3
|
+
*
|
|
4
|
+
* **An `API_ROUTE` is a framework claim, and this file is where it is earned.**
|
|
5
|
+
* DEC-127 fixed the admission rules before any of this was written, for the
|
|
6
|
+
* reason `adapter-python`'s ORM records: two of its rules were corrected by
|
|
7
|
+
* counting after the fact, and a written rule is falsifiable by a count while a
|
|
8
|
+
* rule living in code is falsifiable only by argument.
|
|
9
|
+
*
|
|
10
|
+
* ## Where the precision risk is NOT, measured first
|
|
11
|
+
*
|
|
12
|
+
* `adapter-python/src/routes.ts` spends most of its length defending against
|
|
13
|
+
* `@mock.patch` being spelled like an HTTP verb — 1,150 of them in `saleor`, all
|
|
14
|
+
* of which a name rule would have called routes. **Java has no equivalent
|
|
15
|
+
* collision in this corpus.** Measured across `spring-petclinic`, `shopizer`,
|
|
16
|
+
* `mall` and `airbyte` before writing this: `@Get(`, `@Path(` and Micronaut's
|
|
17
|
+
* `@Controller` occur **0** times. Spring's annotation names do not collide with
|
|
18
|
+
* anything.
|
|
19
|
+
*
|
|
20
|
+
* So the receiver-provenance machinery that dominates the Python extractor is
|
|
21
|
+
* not the work here. **The work is the path join**, and getting that wrong is
|
|
22
|
+
* silent.
|
|
23
|
+
*
|
|
24
|
+
* ## Where the precision risk IS
|
|
25
|
+
*
|
|
26
|
+
* A served path is the class-level prefix joined to the method-level suffix:
|
|
27
|
+
*
|
|
28
|
+
* @RestController
|
|
29
|
+
* @RequestMapping("/orders") <- the prefix
|
|
30
|
+
* class Routes {
|
|
31
|
+
* @GetMapping("/{id}") <- the suffix
|
|
32
|
+
*
|
|
33
|
+
* **An extractor reading only the method annotation produces `/{id}`, which
|
|
34
|
+
* normalises to `/{param}`, joins to no endpoint, and is a wrong edge** — worse
|
|
35
|
+
* than emitting nothing under rule 2, because a wrong edge corrupts every layer
|
|
36
|
+
* above it while a missing one is a disclosed gap. The Java conformance fixture
|
|
37
|
+
* is deliberately shaped to fail that implementation.
|
|
38
|
+
*
|
|
39
|
+
* ## `@RequestMapping` is not a fallback — it is the dominant form
|
|
40
|
+
*
|
|
41
|
+
* Measured before writing, and it changed the shape of this file:
|
|
42
|
+
*
|
|
43
|
+
* | repository | `@GetMapping` | `@RequestMapping` |
|
|
44
|
+
* | --- | --- | --- |
|
|
45
|
+
* | `spring-petclinic` | 12 | 2 |
|
|
46
|
+
* | `shopizer` | 85 | **194** |
|
|
47
|
+
* | `mall` | **0** | **291** |
|
|
48
|
+
*
|
|
49
|
+
* **`mall` uses `@RequestMapping` exclusively.** An extractor supporting only
|
|
50
|
+
* the verb-specific shortcuts scores zero on all 291 of its routes — not a
|
|
51
|
+
* degraded number, zero, with nothing in the output to say why. Both mechanisms
|
|
52
|
+
* are therefore first-class here, and the bench counts them separately so a
|
|
53
|
+
* total miss on one cannot average into a single healthy-looking figure.
|
|
54
|
+
*/
|
|
55
|
+
import type { JavaUnit } from "./parse.ts";
|
|
56
|
+
/** A route as written, before normalisation. Mirrors the Go adapter's shape. */
|
|
57
|
+
export interface SpringRoute {
|
|
58
|
+
readonly method: string;
|
|
59
|
+
/** The joined template exactly as the source spells it. */
|
|
60
|
+
readonly template: string;
|
|
61
|
+
readonly line: number;
|
|
62
|
+
/** The handler's fully-qualified name, for the `SERVES_API` join. */
|
|
63
|
+
readonly handlerFqn: string;
|
|
64
|
+
readonly written: string;
|
|
65
|
+
readonly framework: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Every JAX-RS route this compilation unit declares.
|
|
69
|
+
*
|
|
70
|
+
* A resource class is one carrying `@Path` — a class with verb-annotated
|
|
71
|
+
* methods but no `@Path` of its own is an abstract base, not itself served,
|
|
72
|
+
* mirroring Spring's own "no class mapping still needs a route-bearing
|
|
73
|
+
* annotation somewhere" shape.
|
|
74
|
+
*/
|
|
75
|
+
export declare function jaxrsRoutes(unit: JavaUnit): SpringRoute[];
|
|
76
|
+
/** Every route this compilation unit declares. */
|
|
77
|
+
export declare function springRoutes(unit: JavaUnit): SpringRoute[];
|
|
78
|
+
//# sourceMappingURL=spring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAwC,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjF,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAiPD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE,CAyCzD;AAED,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE,CA6D1D"}
|
package/dist/spring.js
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HTTP-route framework extractor for Java — Spring MVC and Spring WebFlux.
|
|
3
|
+
*
|
|
4
|
+
* **An `API_ROUTE` is a framework claim, and this file is where it is earned.**
|
|
5
|
+
* DEC-127 fixed the admission rules before any of this was written, for the
|
|
6
|
+
* reason `adapter-python`'s ORM records: two of its rules were corrected by
|
|
7
|
+
* counting after the fact, and a written rule is falsifiable by a count while a
|
|
8
|
+
* rule living in code is falsifiable only by argument.
|
|
9
|
+
*
|
|
10
|
+
* ## Where the precision risk is NOT, measured first
|
|
11
|
+
*
|
|
12
|
+
* `adapter-python/src/routes.ts` spends most of its length defending against
|
|
13
|
+
* `@mock.patch` being spelled like an HTTP verb — 1,150 of them in `saleor`, all
|
|
14
|
+
* of which a name rule would have called routes. **Java has no equivalent
|
|
15
|
+
* collision in this corpus.** Measured across `spring-petclinic`, `shopizer`,
|
|
16
|
+
* `mall` and `airbyte` before writing this: `@Get(`, `@Path(` and Micronaut's
|
|
17
|
+
* `@Controller` occur **0** times. Spring's annotation names do not collide with
|
|
18
|
+
* anything.
|
|
19
|
+
*
|
|
20
|
+
* So the receiver-provenance machinery that dominates the Python extractor is
|
|
21
|
+
* not the work here. **The work is the path join**, and getting that wrong is
|
|
22
|
+
* silent.
|
|
23
|
+
*
|
|
24
|
+
* ## Where the precision risk IS
|
|
25
|
+
*
|
|
26
|
+
* A served path is the class-level prefix joined to the method-level suffix:
|
|
27
|
+
*
|
|
28
|
+
* @RestController
|
|
29
|
+
* @RequestMapping("/orders") <- the prefix
|
|
30
|
+
* class Routes {
|
|
31
|
+
* @GetMapping("/{id}") <- the suffix
|
|
32
|
+
*
|
|
33
|
+
* **An extractor reading only the method annotation produces `/{id}`, which
|
|
34
|
+
* normalises to `/{param}`, joins to no endpoint, and is a wrong edge** — worse
|
|
35
|
+
* than emitting nothing under rule 2, because a wrong edge corrupts every layer
|
|
36
|
+
* above it while a missing one is a disclosed gap. The Java conformance fixture
|
|
37
|
+
* is deliberately shaped to fail that implementation.
|
|
38
|
+
*
|
|
39
|
+
* ## `@RequestMapping` is not a fallback — it is the dominant form
|
|
40
|
+
*
|
|
41
|
+
* Measured before writing, and it changed the shape of this file:
|
|
42
|
+
*
|
|
43
|
+
* | repository | `@GetMapping` | `@RequestMapping` |
|
|
44
|
+
* | --- | --- | --- |
|
|
45
|
+
* | `spring-petclinic` | 12 | 2 |
|
|
46
|
+
* | `shopizer` | 85 | **194** |
|
|
47
|
+
* | `mall` | **0** | **291** |
|
|
48
|
+
*
|
|
49
|
+
* **`mall` uses `@RequestMapping` exclusively.** An extractor supporting only
|
|
50
|
+
* the verb-specific shortcuts scores zero on all 291 of its routes — not a
|
|
51
|
+
* degraded number, zero, with nothing in the output to say why. Both mechanisms
|
|
52
|
+
* are therefore first-class here, and the bench counts them separately so a
|
|
53
|
+
* total miss on one cannot average into a single healthy-looking figure.
|
|
54
|
+
*/
|
|
55
|
+
/** Verb-specific shortcuts. The verb is fixed by the annotation's own name. */
|
|
56
|
+
const SHORTCUTS = new Map([
|
|
57
|
+
["GetMapping", "GET"],
|
|
58
|
+
["PostMapping", "POST"],
|
|
59
|
+
["PutMapping", "PUT"],
|
|
60
|
+
["PatchMapping", "PATCH"],
|
|
61
|
+
["DeleteMapping", "DELETE"],
|
|
62
|
+
]);
|
|
63
|
+
const MAPPING = "RequestMapping";
|
|
64
|
+
const ALL_VERBS = ["GET", "POST", "PUT", "PATCH", "DELETE"];
|
|
65
|
+
/**
|
|
66
|
+
* The packages whose presence makes an annotation Spring's.
|
|
67
|
+
*
|
|
68
|
+
* Provenance, not spelling — the rule Lane C arrived at independently in Go and
|
|
69
|
+
* the one this project applies everywhere: a node type comes from an import, a
|
|
70
|
+
* decorator or a base class, or from nothing. A `@GetMapping` in a file that
|
|
71
|
+
* imports no Spring package is not a Spring route, and this corpus contains
|
|
72
|
+
* exactly the counter-case that matters: `airbyte` is a large, active, real Java
|
|
73
|
+
* codebase on Micronaut where the correct output of this file is **nothing**.
|
|
74
|
+
*/
|
|
75
|
+
const SPRING_PACKAGES = [
|
|
76
|
+
"org.springframework.web.bind.annotation",
|
|
77
|
+
"org.springframework.stereotype",
|
|
78
|
+
];
|
|
79
|
+
/** Does this compilation unit import Spring's web annotations at all? */
|
|
80
|
+
function importsSpring(unit) {
|
|
81
|
+
for (const fqn of unit.singleTypeImports.values()) {
|
|
82
|
+
if (SPRING_PACKAGES.some((pkg) => fqn.startsWith(`${pkg}.`)))
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
return unit.wildcardImports.some((pkg) => SPRING_PACKAGES.includes(pkg));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The path an annotation declares, or `undefined` when it declares none.
|
|
89
|
+
*
|
|
90
|
+
* Spring accepts the path as the unnamed argument, as `value =`, or as
|
|
91
|
+
* `path =`. All three are the same thing and an extractor reading only the first
|
|
92
|
+
* misses `@RequestMapping(value = "/x", method = …)`, which is the form that
|
|
93
|
+
* dominates `mall` and `shopizer` — the named form is *required* as soon as a
|
|
94
|
+
* second argument appears, so the dominant mechanism and the named form arrive
|
|
95
|
+
* together.
|
|
96
|
+
*
|
|
97
|
+
* **A list, because every element is a served path.** `@GetMapping({"/a","/b"})`
|
|
98
|
+
* serves both, and `shopizer` writes 140 of its 356 mappings that way. Taking
|
|
99
|
+
* only the first would lose 39% of one corpus silently.
|
|
100
|
+
*/
|
|
101
|
+
function pathsOf(annotation) {
|
|
102
|
+
if (annotation.values.length > 0)
|
|
103
|
+
return annotation.values;
|
|
104
|
+
return annotation.named.get("value") ?? annotation.named.get("path") ?? [];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The verbs a mapping annotation covers.
|
|
108
|
+
*
|
|
109
|
+
* `method = RequestMethod.GET` is a field access rather than a literal, so it is
|
|
110
|
+
* read from the raw argument text — the parse deliberately does not special-case
|
|
111
|
+
* Spring's enum, because a framework's vocabulary in the language layer is the
|
|
112
|
+
* leak rule 1 forbids.
|
|
113
|
+
*
|
|
114
|
+
* **`@RequestMapping` with no `method` covers every verb**, and DEC-127 says to
|
|
115
|
+
* emit one route per verb rather than one route with an unknown verb. A route
|
|
116
|
+
* whose method is a guess joins to the wrong endpoint or to none.
|
|
117
|
+
*/
|
|
118
|
+
function verbsOf(annotation) {
|
|
119
|
+
const shortcut = SHORTCUTS.get(annotation.name);
|
|
120
|
+
if (shortcut !== undefined)
|
|
121
|
+
return [shortcut];
|
|
122
|
+
const declared = [];
|
|
123
|
+
for (const raw of annotation.rawArguments) {
|
|
124
|
+
if (!/^\s*method\s*=/.test(raw))
|
|
125
|
+
continue;
|
|
126
|
+
for (const verb of ALL_VERBS) {
|
|
127
|
+
if (new RegExp(`RequestMethod\\s*\\.\\s*${verb}\\b`).test(raw))
|
|
128
|
+
declared.push(verb);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return declared.length > 0 ? declared : ALL_VERBS;
|
|
132
|
+
}
|
|
133
|
+
/** The mapping annotation on a declaration, if it carries one. */
|
|
134
|
+
function mappingOf(annotations) {
|
|
135
|
+
return annotations.find((each) => SHORTCUTS.has(each.name) || each.name === MAPPING);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Join a class prefix to a method suffix.
|
|
139
|
+
*
|
|
140
|
+
* Spring is forgiving about the slash on either side and a repository mixes both
|
|
141
|
+
* spellings freely; the template has to come out the same either way or two
|
|
142
|
+
* files declaring the same URL mint two endpoint ids and join to nothing.
|
|
143
|
+
*/
|
|
144
|
+
function join(prefix, suffix) {
|
|
145
|
+
const left = prefix.replace(/\/+$/, "");
|
|
146
|
+
const right = suffix.replace(/^\/+/, "");
|
|
147
|
+
if (right === "")
|
|
148
|
+
return left === "" ? "/" : left;
|
|
149
|
+
return `${left}/${right}`;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Is this type a Spring web controller, and does it serve DATA or PAGES?
|
|
153
|
+
*
|
|
154
|
+
* `@RestController` is `@Controller` + `@ResponseBody`: every handler returns
|
|
155
|
+
* data. A bare `@Controller` returns **view names** unless a handler opts out
|
|
156
|
+
* with its own `@ResponseBody`.
|
|
157
|
+
*
|
|
158
|
+
* ## Why this is implemented rather than disclosed
|
|
159
|
+
*
|
|
160
|
+
* The first pass admitted both and recorded the over-admission as a known gap.
|
|
161
|
+
* Predicting the rate before drawing — `bench/spring-viewroutes.mjs`, registered
|
|
162
|
+
* in advance — showed the gap was not small:
|
|
163
|
+
*
|
|
164
|
+
* | corpus | routes | from `@Controller` with no `@ResponseBody` |
|
|
165
|
+
* | --- | --- | --- |
|
|
166
|
+
* | `spring-petclinic` | 16 | **15 — 93.8%** |
|
|
167
|
+
* | `shopizer` | 195 | 3 |
|
|
168
|
+
* | `mall` | 239 | 0 |
|
|
169
|
+
*
|
|
170
|
+
* **`spring-petclinic` is a server-rendered Thymeleaf application.** Nearly
|
|
171
|
+
* every one of its handlers returns a template name. Shipping the disclosure
|
|
172
|
+
* would have put the predicted precision ceiling at ~96%, under this lane's 98%
|
|
173
|
+
* bar, on a **wrong edge** rather than a gap — and rule 2 does not treat those
|
|
174
|
+
* the same. So the prediction did its job: it turned "a known limit, disclosed"
|
|
175
|
+
* into "too large to disclose", before a draw rather than after.
|
|
176
|
+
*
|
|
177
|
+
* ## The rule, and the recall it used to cost
|
|
178
|
+
*
|
|
179
|
+
* A handler is admitted when its class is `@RestController`, **or** its class or
|
|
180
|
+
* the handler itself carries `@ResponseBody`, **or** it returns
|
|
181
|
+
* `ResponseEntity<T>`.
|
|
182
|
+
*
|
|
183
|
+
* The third clause was a disclosed gap and is now closed, and the way it closed
|
|
184
|
+
* is the point. The disclosure pre-registered its own threshold — *"not worth
|
|
185
|
+
* it yet… if a corpus later shows the number in the dozens, it becomes worth
|
|
186
|
+
* it, and the count is here to be re-run"* — so re-running the count is what
|
|
187
|
+
* decided it, not a later reading of the same evidence.
|
|
188
|
+
*
|
|
189
|
+
* **Both halves of the old disclosure were wrong, and in opposite directions.**
|
|
190
|
+
*
|
|
191
|
+
* | corpus | files, as disclosed → recounted | sites refused, disclosed → recounted |
|
|
192
|
+
* | --- | --- | --- |
|
|
193
|
+
* | `spring-petclinic` | 5 → 6 | 17 → 17 |
|
|
194
|
+
* | `shopizer` | 3 → **20** | 6 → **74** |
|
|
195
|
+
* | `mall` | 0 → 2 | 0 → 5 |
|
|
196
|
+
*
|
|
197
|
+
* The refused population was **twelve times** what the disclosure claimed for
|
|
198
|
+
* `shopizer`. *"The gap carries its population, because a disclosure without one
|
|
199
|
+
* is a sentence that has shed its scope"* — and a population stated once and
|
|
200
|
+
* never re-measured sheds its scope quietly, which is worse than never stating
|
|
201
|
+
* one, because it reads as due diligence.
|
|
202
|
+
*
|
|
203
|
+
* The other half went the other way: `ResponseEntity` was counted in
|
|
204
|
+
* **mentions** (12), and a mention is not a refused route. Counted as routes
|
|
205
|
+
* the widening actually emits, it is **13 on `shopizer` and 0 on the other
|
|
206
|
+
* two** — the unit the rule's subject is in, which is the only unit a threshold
|
|
207
|
+
* can be compared against.
|
|
208
|
+
*
|
|
209
|
+
* `spring-petclinic`'s 17 remain refused and must: they return `String` view
|
|
210
|
+
* names, and it is five files of server-rendered pages. The widening is
|
|
211
|
+
* therefore narrow by construction — `ResponseEntity` is Spring's own response
|
|
212
|
+
* type, never resolved through a view resolver, and no other return type
|
|
213
|
+
* answers the question on its own.
|
|
214
|
+
*
|
|
215
|
+
* Re-run after the widening, as every widening in this lane is: route precision
|
|
216
|
+
* 200/200 on a 538 population, Wilson LB 98.1%, negative control 0/200.
|
|
217
|
+
*/
|
|
218
|
+
function controllerKind(type) {
|
|
219
|
+
const names = new Set(type.annotations.map((each) => each.name));
|
|
220
|
+
if (names.has("RestController"))
|
|
221
|
+
return "data";
|
|
222
|
+
if (!names.has("Controller"))
|
|
223
|
+
return null;
|
|
224
|
+
return names.has("ResponseBody") ? "data" : "view";
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Does this handler return an HTTP body rather than a view name?
|
|
228
|
+
*
|
|
229
|
+
* `ResponseEntity<T>` is Spring's own response type and never resolves through
|
|
230
|
+
* a view resolver, so a `@Controller` method returning one is an API route with
|
|
231
|
+
* or without `@ResponseBody`. It is the one return type that answers this
|
|
232
|
+
* question on its own; anything else — `String`, `ModelAndView`, a DTO — either
|
|
233
|
+
* *is* a view name or needs the annotation to say it is not.
|
|
234
|
+
*/
|
|
235
|
+
function returnsBody(method) {
|
|
236
|
+
const returned = method.returnType;
|
|
237
|
+
return returned.kind === "named" && returned.name === "ResponseEntity";
|
|
238
|
+
}
|
|
239
|
+
// ---------------------------------------------------------------------------
|
|
240
|
+
// JAX-RS — `javax.ws.rs`/`jakarta.ws.rs`. `language-problems.md` §3's third
|
|
241
|
+
// row: `SPRING_PACKAGES` only ever named Spring's own packages, so a JAX-RS
|
|
242
|
+
// resource — real in any Java shop that predates or skipped Spring Boot, or
|
|
243
|
+
// that uses Quarkus/RESTEasy/Jersey, all of which build on the same
|
|
244
|
+
// annotations — produced nothing here, correctly refused by
|
|
245
|
+
// {@link importsSpring} rather than misread, but with no route reader for the
|
|
246
|
+
// framework it was refusing in favour of.
|
|
247
|
+
//
|
|
248
|
+
// The shape is structurally different from Spring's, which is why this is a
|
|
249
|
+
// second reader rather than a second provenance list on the same one: Spring
|
|
250
|
+
// puts the verb and the path on *one* annotation (`@GetMapping("/x")`);
|
|
251
|
+
// JAX-RS puts them on *two* — a bare verb marker (`@GET`, no arguments at
|
|
252
|
+
// all) and a separate, optional `@Path` that may sit on the class, the
|
|
253
|
+
// method, or both. `@RequestMapping`'s "no method means every verb" rule
|
|
254
|
+
// (DEC-127) has no JAX-RS analogue: a JAX-RS handler with no verb annotation
|
|
255
|
+
// is not a route at all, so there is nothing to widen to every verb — it is
|
|
256
|
+
// simply skipped, the same way a plain non-`@Path` class is.
|
|
257
|
+
// ---------------------------------------------------------------------------
|
|
258
|
+
const JAXRS_PACKAGES = ["javax.ws.rs", "jakarta.ws.rs"];
|
|
259
|
+
/**
|
|
260
|
+
* Does this unit import JAX-RS at all?
|
|
261
|
+
*
|
|
262
|
+
* Both the old `javax.ws.rs` and the Jakarta-renamed `jakarta.ws.rs` are
|
|
263
|
+
* checked — a real migration takes years, and a corpus written against either
|
|
264
|
+
* spelling is real code, the same reasoning `adapter-java`'s JPA reader
|
|
265
|
+
* already applies to `javax.persistence`/`jakarta.persistence`.
|
|
266
|
+
*/
|
|
267
|
+
function importsJaxRs(unit) {
|
|
268
|
+
for (const fqn of unit.singleTypeImports.values()) {
|
|
269
|
+
if (JAXRS_PACKAGES.some((pkg) => fqn.startsWith(`${pkg}.`)))
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
return unit.wildcardImports.some((pkg) => JAXRS_PACKAGES.includes(pkg));
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* JAX-RS's verb annotations. Each is a bare marker with no arguments — the
|
|
276
|
+
* verb is the annotation's own name, never a `method = ` attribute the way
|
|
277
|
+
* Spring's `@RequestMapping` carries one.
|
|
278
|
+
*/
|
|
279
|
+
const JAXRS_VERBS = new Set(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]);
|
|
280
|
+
function jaxrsVerbOf(annotations) {
|
|
281
|
+
return annotations.map((each) => each.name).find((name) => JAXRS_VERBS.has(name));
|
|
282
|
+
}
|
|
283
|
+
function jaxrsPathOf(annotations) {
|
|
284
|
+
return annotations.find((each) => each.name === "Path");
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Every JAX-RS route this compilation unit declares.
|
|
288
|
+
*
|
|
289
|
+
* A resource class is one carrying `@Path` — a class with verb-annotated
|
|
290
|
+
* methods but no `@Path` of its own is an abstract base, not itself served,
|
|
291
|
+
* mirroring Spring's own "no class mapping still needs a route-bearing
|
|
292
|
+
* annotation somewhere" shape.
|
|
293
|
+
*/
|
|
294
|
+
export function jaxrsRoutes(unit) {
|
|
295
|
+
if (!importsJaxRs(unit))
|
|
296
|
+
return [];
|
|
297
|
+
const routes = [];
|
|
298
|
+
for (const type of unit.types) {
|
|
299
|
+
const classPath = jaxrsPathOf(type.annotations);
|
|
300
|
+
if (classPath === undefined)
|
|
301
|
+
continue;
|
|
302
|
+
const classPaths = pathsOf(classPath);
|
|
303
|
+
const prefixes = classPaths.length > 0 ? classPaths : [""];
|
|
304
|
+
for (const method of type.methods) {
|
|
305
|
+
const verb = jaxrsVerbOf(method.annotations);
|
|
306
|
+
if (verb === undefined)
|
|
307
|
+
continue;
|
|
308
|
+
const methodPath = jaxrsPathOf(method.annotations);
|
|
309
|
+
const suffixes = methodPath === undefined ? [] : pathsOf(methodPath);
|
|
310
|
+
// Mirrors Spring's own `unreadable` rule: a `@Path` with an argument
|
|
311
|
+
// this reader could not turn into a literal is refused rather than
|
|
312
|
+
// guessed; a handler with no `@Path` at all legally serves the class
|
|
313
|
+
// prefix bare.
|
|
314
|
+
const unreadable = methodPath !== undefined && suffixes.length === 0 && methodPath.rawArguments.length > 0;
|
|
315
|
+
if (unreadable)
|
|
316
|
+
continue;
|
|
317
|
+
const parts = suffixes.length > 0 ? suffixes : [""];
|
|
318
|
+
for (const prefix of prefixes) {
|
|
319
|
+
for (const suffix of parts) {
|
|
320
|
+
const template = join(prefix, suffix);
|
|
321
|
+
if (!template.startsWith("/"))
|
|
322
|
+
continue;
|
|
323
|
+
routes.push({
|
|
324
|
+
method: verb,
|
|
325
|
+
template,
|
|
326
|
+
line: (methodPath ?? classPath).line,
|
|
327
|
+
handlerFqn: method.fqn,
|
|
328
|
+
written: `@${verb}`,
|
|
329
|
+
framework: "jaxrs",
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return routes;
|
|
336
|
+
}
|
|
337
|
+
/** Every route this compilation unit declares. */
|
|
338
|
+
export function springRoutes(unit) {
|
|
339
|
+
if (!importsSpring(unit))
|
|
340
|
+
return [];
|
|
341
|
+
const routes = [];
|
|
342
|
+
for (const type of unit.types) {
|
|
343
|
+
const kind = controllerKind(type);
|
|
344
|
+
if (kind === null)
|
|
345
|
+
continue;
|
|
346
|
+
// The class-level prefix. A controller may carry `@RequestMapping` with no
|
|
347
|
+
// path at all, which contributes nothing rather than a slash.
|
|
348
|
+
// The class-level prefix. A controller mapped to several prefixes serves
|
|
349
|
+
// every combination, so the empty case is one empty prefix rather than none.
|
|
350
|
+
const classMapping = mappingOf(type.annotations);
|
|
351
|
+
const classPaths = classMapping === undefined ? [] : pathsOf(classMapping);
|
|
352
|
+
const prefixes = classPaths.length > 0 ? classPaths : [""];
|
|
353
|
+
for (const method of type.methods) {
|
|
354
|
+
const mapping = mappingOf(method.annotations);
|
|
355
|
+
if (mapping === undefined)
|
|
356
|
+
continue;
|
|
357
|
+
// A view controller's handler serves a page unless it opts out itself.
|
|
358
|
+
// `spring-petclinic`'s VetController holds both kinds in one file, which is
|
|
359
|
+
// why this is decided per handler and not per class.
|
|
360
|
+
if (kind === "view" &&
|
|
361
|
+
!method.annotations.some((each) => each.name === "ResponseBody") &&
|
|
362
|
+
!returnsBody(method)) {
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
365
|
+
const suffixes = pathsOf(mapping);
|
|
366
|
+
// A mapping whose path is a constant reference or a concatenation yields
|
|
367
|
+
// no literal. DEC-127 refuses it: a path this adapter cannot read is not a
|
|
368
|
+
// path it may invent, and the alternative is an endpoint id that joins to
|
|
369
|
+
// the wrong service. A mapping with no argument at all is legal and means
|
|
370
|
+
// "the class prefix", so it is only refused when there was something to
|
|
371
|
+
// read and it could not be read.
|
|
372
|
+
const unreadable = suffixes.length === 0 && mapping.rawArguments.length > 0;
|
|
373
|
+
if (unreadable)
|
|
374
|
+
continue;
|
|
375
|
+
const parts = suffixes.length > 0 ? suffixes : [""];
|
|
376
|
+
for (const prefix of prefixes) {
|
|
377
|
+
for (const suffix of parts) {
|
|
378
|
+
const template = join(prefix, suffix);
|
|
379
|
+
if (!template.startsWith("/"))
|
|
380
|
+
continue;
|
|
381
|
+
for (const verb of verbsOf(mapping)) {
|
|
382
|
+
routes.push({
|
|
383
|
+
method: verb,
|
|
384
|
+
template,
|
|
385
|
+
line: mapping.line,
|
|
386
|
+
handlerFqn: method.fqn,
|
|
387
|
+
written: `@${mapping.name}`,
|
|
388
|
+
framework: "spring",
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return routes;
|
|
396
|
+
}
|
|
397
|
+
//# sourceMappingURL=spring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@descryy/adapter-java",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Java adapter, breadth tier. One grammar and one query set over the shared tree-sitter harness \u2014 no JDT, no SCIP, no Spring. Reaches R1 on explicit imports, which is further than a breadth adapter reaches in most languages.",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=22.5"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"registry": "https://registry.npmjs.org",
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc -b && npm run build:assets",
|
|
25
|
+
"build:assets": "node -e \"require('fs').copyFileSync(require.resolve('tree-sitter-java/tree-sitter-java.wasm'),'dist/tree-sitter-java.wasm')\""
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@descryy/adapter-common": "0.1.0",
|
|
29
|
+
"@descryy/adapter-jvm": "0.1.0",
|
|
30
|
+
"@descryy/adapter-treesitter": "0.1.0",
|
|
31
|
+
"@descryy/ir": "0.3.0",
|
|
32
|
+
"tree-sitter-java": "0.23.5",
|
|
33
|
+
"@descryy/adapter-sql": "0.1.0",
|
|
34
|
+
"@descryy/adapter-openapi": "0.1.0"
|
|
35
|
+
}
|
|
36
|
+
}
|