@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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
+ }