@descryy/adapter-java 0.4.1 → 0.5.1

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/parse.js CHANGED
@@ -149,6 +149,40 @@ function firstArgumentTextOf(invocation) {
149
149
  const first = args.namedChild(0);
150
150
  return first === null ? undefined : first.text;
151
151
  }
152
+ /**
153
+ * The written type name of this call's sole `Type.class` literal argument —
154
+ * see {@link JavaRef.classLiteralArgument}. Every argument is scanned (not
155
+ * just the first, unlike {@link firstStringArgumentOf}): the response-type
156
+ * argument's position varies by method (`getForObject(url, T.class)` vs.
157
+ * `postForObject(url, request, T.class)`), but a `class_literal` is a
158
+ * syntactically distinct node no other argument in these calls produces, so
159
+ * scanning for the single one present is unambiguous without knowing which
160
+ * position it falls in. Two or more `class_literal` arguments — not a shape
161
+ * this reader has seen in practice — refuse rather than pick one.
162
+ */
163
+ function classLiteralArgumentOf(invocation) {
164
+ const args = invocation.childForFieldName("arguments");
165
+ if (args === null)
166
+ return undefined;
167
+ let found;
168
+ for (let i = 0; i < args.namedChildCount; i += 1) {
169
+ const arg = args.namedChild(i);
170
+ if (arg === null || arg.type !== "class_literal")
171
+ continue;
172
+ if (found !== undefined)
173
+ return undefined; // more than one: ambiguous, refuse both
174
+ const typeNode = arg.namedChild(0);
175
+ if (typeNode === null)
176
+ continue;
177
+ // Simple name only, generics/qualification stripped — a qualified
178
+ // literal (`pkg.Order.class`) still names `Order` for resolution
179
+ // purposes, and `resolveType` in extract.ts takes it from there.
180
+ const text = typeNode.text;
181
+ const simple = text.slice(text.lastIndexOf(".") + 1);
182
+ found = simple;
183
+ }
184
+ return found;
185
+ }
152
186
  function childOfType(node, type) {
153
187
  for (let i = 0; i < node.namedChildCount; i += 1) {
154
188
  const child = node.namedChild(i);
@@ -329,6 +363,7 @@ export function readUnit(root, file, hasError) {
329
363
  wildcardImports: [],
330
364
  importLines: [],
331
365
  types: [],
366
+ stringConstants: new Map(),
332
367
  hasError,
333
368
  };
334
369
  let packageName = "";
@@ -374,11 +409,93 @@ export function readUnit(root, file, hasError) {
374
409
  }
375
410
  const kind = TYPE_DECLARATIONS[statement.type];
376
411
  if (kind !== undefined)
377
- readType(statement, kind, packageName, unit.types);
412
+ readType(statement, kind, packageName, unit.types, unit.stringConstants);
378
413
  }
379
414
  return { ...unit, packageName };
380
415
  }
381
- function readType(node, kind, prefix, into) {
416
+ // --- DEC-164's base-declaration reader --------------------------------------
417
+ //
418
+ // Two facts are read off a declarator's own initializer and nothing else: the
419
+ // value of a `String` constant, and whether an HTTP client's construction set
420
+ // a base. Both are narrow by design — see `client-base.ts` for why a wider
421
+ // read would be a guess rather than a reading.
422
+ /** The calls that set a base on a Spring HTTP client, by method name. */
423
+ const BASE_SETTERS = new Set(["baseUrl", "rootUri"]);
424
+ /** The text of a plain Java string literal, or `undefined` when it carries an escape this reader would have to evaluate. */
425
+ function javaStringLiteral(node) {
426
+ if (node === null || node.type !== "string_literal")
427
+ return undefined;
428
+ const text = node.text;
429
+ if (text.includes("\\"))
430
+ return undefined;
431
+ return text.slice(1, -1);
432
+ }
433
+ /** `WebClient.create(X)` — the static factory, distinguished from any other `create`. */
434
+ function webClientCreate(node) {
435
+ const name = node.childForFieldName("name");
436
+ const object = node.childForFieldName("object");
437
+ if (name === null || name.text !== "create")
438
+ return undefined;
439
+ if (object === null || object.text !== "WebClient")
440
+ return undefined;
441
+ const args = node.childForFieldName("arguments");
442
+ return args === null ? null : args.namedChild(0);
443
+ }
444
+ /**
445
+ * What one declarator's initializer says about an HTTP base.
446
+ *
447
+ * `undefined` means this reader saw nothing it recognises, which becomes
448
+ * DEC-164's fourth state — the field's absence — rather than a claim.
449
+ */
450
+ function baseSiteOf(value) {
451
+ if (value === null)
452
+ return undefined;
453
+ // `new RestTemplate()` / `new WebClient()` with no arguments — an
454
+ // initializer that is visible AND sets no base. A positive `none`.
455
+ if (value.type === "object_creation_expression") {
456
+ const args = value.childForFieldName("arguments");
457
+ if (args !== null && args.namedChildCount === 0)
458
+ return { kind: "none" };
459
+ return undefined;
460
+ }
461
+ let found;
462
+ const visit = (node) => {
463
+ if (found !== undefined)
464
+ return;
465
+ if (node.type === "method_invocation") {
466
+ const created = webClientCreate(node);
467
+ if (created !== undefined) {
468
+ found = created;
469
+ return;
470
+ }
471
+ const name = node.childForFieldName("name");
472
+ if (name !== null && BASE_SETTERS.has(name.text)) {
473
+ const args = node.childForFieldName("arguments");
474
+ found = args === null ? null : args.namedChild(0);
475
+ return;
476
+ }
477
+ }
478
+ for (let i = 0; i < node.namedChildCount; i += 1) {
479
+ const child = node.namedChild(i);
480
+ if (child !== null)
481
+ visit(child);
482
+ }
483
+ };
484
+ visit(value);
485
+ if (found === undefined)
486
+ return undefined;
487
+ // `WebClient.create()` with no argument is Spring's own no-base form.
488
+ if (found === null)
489
+ return { kind: "none" };
490
+ const literal = javaStringLiteral(found);
491
+ if (literal !== undefined)
492
+ return { kind: "base", text: found.text.slice(0, 120), literal };
493
+ const name = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(found.text) ? found.text : undefined;
494
+ return { kind: "base", text: found.text.slice(0, 120), ...(name === undefined ? {} : { name }) };
495
+ }
496
+ function readType(node, kind, prefix, into,
497
+ /** DEC-164's per-compilation-unit `String` constant table, written through from `readFile`. */
498
+ constants) {
382
499
  const nameNode = node.childForFieldName("name");
383
500
  if (nameNode === null)
384
501
  return;
@@ -396,6 +513,7 @@ function readType(node, kind, prefix, into) {
396
513
  methods: [],
397
514
  fields: new Map(),
398
515
  fieldDeclarations: [],
516
+ fieldBases: new Map(),
399
517
  typeRefs: [],
400
518
  };
401
519
  const superclass = childOfType(node, "superclass");
@@ -451,7 +569,9 @@ function readType(node, kind, prefix, into) {
451
569
  returnType: readTypeName(component.childForFieldName("type")),
452
570
  refs: [],
453
571
  locals: new Map(),
572
+ localBases: new Map(),
454
573
  parameterNames: new Set(),
574
+ parameterAnnotations: new Map(),
455
575
  });
456
576
  const names = [];
457
577
  allTypeNames(component.childForFieldName("type"), names);
@@ -468,10 +588,12 @@ function readType(node, kind, prefix, into) {
468
588
  }
469
589
  const body = node.childForFieldName("body");
470
590
  if (body !== null)
471
- readBody(body, type, fqn, into);
591
+ readBody(body, type, fqn, into, constants);
472
592
  into.push(type);
473
593
  }
474
- function readBody(body, type, fqn, into) {
594
+ function readBody(body, type, fqn, into,
595
+ /** DEC-164's per-compilation-unit `String` constant table — see `readType`. */
596
+ constants) {
475
597
  for (let i = 0; i < body.namedChildCount; i += 1) {
476
598
  const member = body.namedChild(i);
477
599
  if (member === null)
@@ -480,12 +602,12 @@ function readBody(body, type, fqn, into) {
480
602
  // wrapped in `enum_body_declarations` — without this, a static factory
481
603
  // like `IdType.findByBsonType(…)` had nothing to resolve to.
482
604
  if (member.type === "enum_body_declarations") {
483
- readBody(member, type, fqn, into);
605
+ readBody(member, type, fqn, into, constants);
484
606
  continue;
485
607
  }
486
608
  const nested = TYPE_DECLARATIONS[member.type];
487
609
  if (nested !== undefined) {
488
- readType(member, nested, fqn, into);
610
+ readType(member, nested, fqn, into, constants);
489
611
  continue;
490
612
  }
491
613
  if (member.type === "field_declaration") {
@@ -506,11 +628,23 @@ function readBody(body, type, fqn, into) {
506
628
  if (name === null)
507
629
  continue;
508
630
  declare(type.fields, name.text, declared);
631
+ // DEC-164, read off the declarator's own initializer.
632
+ const value = declarator.childForFieldName("value");
633
+ if (declared === "String") {
634
+ const literal = javaStringLiteral(value);
635
+ if (literal !== undefined && !constants.has(name.text)) {
636
+ constants.set(name.text, literal);
637
+ }
638
+ }
639
+ const site = baseSiteOf(value);
640
+ if (site !== undefined && !type.fieldBases.has(name.text))
641
+ type.fieldBases.set(name.text, site);
509
642
  type.fieldDeclarations.push({
510
643
  name: name.text,
511
644
  // A primitive has no declaration, so `declaredType` is `undefined`
512
645
  // and `primitive` is `true` — the two facts the old sentinel conflated.
513
646
  declaredType: declared,
647
+ writtenType: read.kind === "named" || read.kind === "primitive" ? read.name : undefined,
514
648
  primitive: read.kind === "primitive",
515
649
  line: member.startPosition.row + 1,
516
650
  annotations: fieldAnnotations,
@@ -554,7 +688,9 @@ function readMethod(node, type, ownerFqn) {
554
688
  returnType: readTypeName(node.childForFieldName("type")),
555
689
  refs: [],
556
690
  locals: new Map(),
691
+ localBases: new Map(),
557
692
  parameterNames: new Set(),
693
+ parameterAnnotations: new Map(),
558
694
  };
559
695
  const parameters = node.childForFieldName("parameters");
560
696
  if (parameters !== null) {
@@ -569,6 +705,9 @@ function readMethod(node, type, ownerFqn) {
569
705
  if (name !== null) {
570
706
  declare(method.locals, name.text, declared);
571
707
  method.parameterNames.add(name.text);
708
+ const written = readAnnotations(parameter);
709
+ if (written.length > 0)
710
+ method.parameterAnnotations.set(name.text, written);
572
711
  }
573
712
  const names = [];
574
713
  allTypeNames(parameter.childForFieldName("type"), names);
@@ -612,6 +751,13 @@ function walkBody(node, method) {
612
751
  const name = declarator.childForFieldName("name");
613
752
  if (name !== null)
614
753
  declare(method.locals, name.text, declared);
754
+ // DEC-164, read off the declarator's own initializer.
755
+ const value = declarator.childForFieldName("value");
756
+ if (name !== null) {
757
+ const site = baseSiteOf(value);
758
+ if (site !== undefined && !method.localBases.has(name.text))
759
+ method.localBases.set(name.text, site);
760
+ }
615
761
  }
616
762
  const names = [];
617
763
  allTypeNames(typeNode, names);
@@ -632,6 +778,7 @@ function walkBody(node, method) {
632
778
  const receiver = object === null ? undefined : receiverName(object);
633
779
  const literal = firstStringArgumentOf(node);
634
780
  const argumentText = firstArgumentTextOf(node);
781
+ const classLiteral = classLiteralArgumentOf(node);
635
782
  method.refs.push({
636
783
  kind: "call",
637
784
  name: nameNode.text,
@@ -643,6 +790,7 @@ function walkBody(node, method) {
643
790
  // call whose argument is nothing) — the distinction is the point.
644
791
  ...(literal === undefined ? {} : { firstStringArgument: literal }),
645
792
  ...(argumentText === undefined ? {} : { firstArgumentText: argumentText }),
793
+ ...(classLiteral === undefined ? {} : { classLiteralArgument: classLiteral }),
646
794
  });
647
795
  }
648
796
  }
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -24,11 +24,16 @@
24
24
  * each column, and Hibernate enforces the result. Nothing is guessed and
25
25
  * nothing is resolved by a checker, in either language.
26
26
  *
27
- * **Exactly one fact kind in this package reaches 3**: the mapped field shape
28
- * on a `MODEL` (`extract.ts`, the only `SHAPE_LEVEL` there). Routes, calls,
29
- * type references, inheritance and test coverage all push at 2 or below and
30
- * are unaffected. If a second fact kind ever earns R3, it is added here in
31
- * the same commit that earns it — never inferred from the fact that some
27
+ * **Two fact kinds in this package reach 3**, both declared schema in
28
+ * DEC-202's sense rather than inferred shape: the mapped field shape on a
29
+ * `MODEL` (`extract.ts`, JPA's `@Column`/`@Id`/`@NotNull` chain), and — since
30
+ * `DEC-NEXT-dto-shape-evidence-for-api-contracts` — a `DTO`'s wire shape when
31
+ * it carries real Jackson evidence (`jackson.ts`'s `@JsonProperty`/
32
+ * `@JsonIgnore`/`@JsonCreator`, provenance-gated on a Jackson import, exactly
33
+ * as strict a declaration as JPA's own annotations). Routes, calls, type
34
+ * references, inheritance and test coverage all push at 2 or below and are
35
+ * unaffected. If a third fact kind ever earns R3, it is added here in the
36
+ * same commit that earns it — never inferred from the fact that some
32
37
  * extractor exists.
33
38
  *
34
39
  * ## Why a count of shapes and not a density
@@ -53,11 +58,14 @@
53
58
  * recall: the shape is claimed, the physical schema is not.
54
59
  */
55
60
  import type { ResolutionLevel } from "@descryy/ir";
61
+ import type { TransportShape } from "./dto.ts";
56
62
  import type { JpaModel } from "./jpa.ts";
63
+ import type { JavaUnit } from "./parse.ts";
57
64
  /**
58
65
  * The one level `adapter-java` can reach that R2 machinery cannot supply, and
59
- * the one place in this package that mints at it (`extract.ts`'s `MODEL`
60
- * shape attrs).
66
+ * the two places in this package that mint at it (`extract.ts`'s `MODEL`
67
+ * shape attrs, and its `USES_API`-edge `shapeResolution` for a
68
+ * Jackson-annotated `DTO`).
61
69
  */
62
70
  export declare const SHAPE_LEVEL: ResolutionLevel;
63
71
  export interface ShapeReach {
@@ -75,7 +83,18 @@ export interface ShapeReach {
75
83
  /** True when at least one fact in this repository genuinely rests on R3. */
76
84
  readonly reachesShapes: boolean;
77
85
  }
78
- export declare function shapeReach(entities: ReadonlyMap<string, JpaModel>): ShapeReach;
86
+ /**
87
+ * Does at least one `DTO` in this batch carry real Jackson shape evidence —
88
+ * the second R3 fact kind this file now recognises? Mirrors `mappedShapes`'s
89
+ * own condition, one level up: a `DTO` this run would actually stamp
90
+ * `shapeResolution: 3` onto some `USES_API` edge for (`extract.ts`'s
91
+ * `responseShapeEvidence`), not merely a class that happens to be annotated.
92
+ * `entities` excludes anything already claimed as a `MODEL` — the same
93
+ * narrower-evidence-wins tie-break `extract.ts`'s node-kind decision uses,
94
+ * kept here so this count can never disagree with what gets emitted.
95
+ */
96
+ export declare function jacksonDtoReach(units: readonly JavaUnit[], shapes: ReadonlyMap<string, TransportShape>, entities: ReadonlyMap<string, JpaModel>): boolean;
97
+ export declare function shapeReach(entities: ReadonlyMap<string, JpaModel>, jacksonReach?: boolean): ShapeReach;
79
98
  /**
80
99
  * The level to publish for a run: never above the caller's ceiling, never
81
100
  * above what the repository supplied, and 0 when nothing parsed at all.
@@ -1 +1 @@
1
- {"version":3,"file":"shape-reach.d.ts","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,eAAmB,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,UAAU,CAI9E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,eAAe,CAIjB"}
1
+ {"version":3,"file":"shape-reach.d.ts","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,eAAmB,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC3C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC,OAAO,CAUT;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EACvC,YAAY,GAAE,OAAe,GAC5B,UAAU,CAIZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,eAAe,CAIjB"}
@@ -24,11 +24,16 @@
24
24
  * each column, and Hibernate enforces the result. Nothing is guessed and
25
25
  * nothing is resolved by a checker, in either language.
26
26
  *
27
- * **Exactly one fact kind in this package reaches 3**: the mapped field shape
28
- * on a `MODEL` (`extract.ts`, the only `SHAPE_LEVEL` there). Routes, calls,
29
- * type references, inheritance and test coverage all push at 2 or below and
30
- * are unaffected. If a second fact kind ever earns R3, it is added here in
31
- * the same commit that earns it — never inferred from the fact that some
27
+ * **Two fact kinds in this package reach 3**, both declared schema in
28
+ * DEC-202's sense rather than inferred shape: the mapped field shape on a
29
+ * `MODEL` (`extract.ts`, JPA's `@Column`/`@Id`/`@NotNull` chain), and — since
30
+ * `DEC-NEXT-dto-shape-evidence-for-api-contracts` — a `DTO`'s wire shape when
31
+ * it carries real Jackson evidence (`jackson.ts`'s `@JsonProperty`/
32
+ * `@JsonIgnore`/`@JsonCreator`, provenance-gated on a Jackson import, exactly
33
+ * as strict a declaration as JPA's own annotations). Routes, calls, type
34
+ * references, inheritance and test coverage all push at 2 or below and are
35
+ * unaffected. If a third fact kind ever earns R3, it is added here in the
36
+ * same commit that earns it — never inferred from the fact that some
32
37
  * extractor exists.
33
38
  *
34
39
  * ## Why a count of shapes and not a density
@@ -52,18 +57,44 @@
52
57
  * `databaseTableNodesFromModel` exists to prevent (DEC-240). Precision over
53
58
  * recall: the shape is claimed, the physical schema is not.
54
59
  */
60
+ import { hasJacksonShapeEvidence } from "./jackson.js";
55
61
  /**
56
62
  * The one level `adapter-java` can reach that R2 machinery cannot supply, and
57
- * the one place in this package that mints at it (`extract.ts`'s `MODEL`
58
- * shape attrs).
63
+ * the two places in this package that mint at it (`extract.ts`'s `MODEL`
64
+ * shape attrs, and its `USES_API`-edge `shapeResolution` for a
65
+ * Jackson-annotated `DTO`).
59
66
  */
60
67
  export const SHAPE_LEVEL = 3;
61
- export function shapeReach(entities) {
68
+ /**
69
+ * Does at least one `DTO` in this batch carry real Jackson shape evidence —
70
+ * the second R3 fact kind this file now recognises? Mirrors `mappedShapes`'s
71
+ * own condition, one level up: a `DTO` this run would actually stamp
72
+ * `shapeResolution: 3` onto some `USES_API` edge for (`extract.ts`'s
73
+ * `responseShapeEvidence`), not merely a class that happens to be annotated.
74
+ * `entities` excludes anything already claimed as a `MODEL` — the same
75
+ * narrower-evidence-wins tie-break `extract.ts`'s node-kind decision uses,
76
+ * kept here so this count can never disagree with what gets emitted.
77
+ */
78
+ export function jacksonDtoReach(units, shapes, entities) {
79
+ for (const unit of units) {
80
+ for (const type of unit.types) {
81
+ const key = `${unit.identityPackage}::${type.fqn}`;
82
+ if (entities.has(key))
83
+ continue;
84
+ if (!shapes.has(key))
85
+ continue;
86
+ if (hasJacksonShapeEvidence(type, unit))
87
+ return true;
88
+ }
89
+ }
90
+ return false;
91
+ }
92
+ export function shapeReach(entities, jacksonReach = false) {
62
93
  let mappedShapes = 0;
63
94
  for (const model of entities.values())
64
95
  if (model.fields.length > 0)
65
96
  mappedShapes += 1;
66
- return { entities, mappedShapes, reachesShapes: mappedShapes > 0 };
97
+ return { entities, mappedShapes, reachesShapes: mappedShapes > 0 || jacksonReach };
67
98
  }
68
99
  /**
69
100
  * The level to publish for a run: never above the caller's ceiling, never
@@ -1 +1 @@
1
- {"version":3,"file":"shape-reach.js","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB,CAAC,CAAC;AAkB9C,MAAM,UAAU,UAAU,CAAC,QAAuC;IAChE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,YAAY,IAAI,CAAC,CAAC;IACtF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,OAAwB,EACxB,cAAuB,EACvB,KAA6B;IAE7B,IAAI,CAAC,cAAc;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,WAAW;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAqB,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"shape-reach.js","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAKH,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB,CAAC,CAAC;AAkB9C;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA0B,EAC1B,MAA2C,EAC3C,QAAuC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,QAAuC,EACvC,eAAwB,KAAK;IAE7B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,YAAY,IAAI,CAAC,CAAC;IACtF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,OAAwB,EACxB,cAAuB,EACvB,KAA6B;IAE7B,IAAI,CAAC,cAAc;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,WAAW;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAqB,CAAC;AAC7F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/adapter-java",
3
- "version": "0.4.1",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "description": "Java adapter, breadth tier. One grammar and one query set over the shared tree-sitter harness — no JDT, no SCIP, no Spring. Reaches R1 on explicit imports, which is further than a breadth adapter reaches in most languages.",
6
6
  "license": "UNLICENSED",
@@ -34,12 +34,12 @@
34
34
  "build:assets": "node -e \"require('fs').copyFileSync(require.resolve('tree-sitter-java/tree-sitter-java.wasm'),'dist/tree-sitter-java.wasm')\""
35
35
  },
36
36
  "dependencies": {
37
- "@descryy/adapter-common": "0.3.0",
38
- "@descryy/adapter-jvm": "0.1.0",
39
- "@descryy/adapter-treesitter": "0.2.0",
40
- "@descryy/ir": "0.7.0",
37
+ "@descryy/adapter-common": "0.3.1",
38
+ "@descryy/adapter-jvm": "0.1.1",
39
+ "@descryy/adapter-treesitter": "0.2.1",
40
+ "@descryy/ir": "0.10.0",
41
41
  "tree-sitter-java": "0.23.5",
42
- "@descryy/adapter-sql": "0.4.1",
43
- "@descryy/adapter-openapi": "0.4.1"
42
+ "@descryy/adapter-sql": "0.5.1",
43
+ "@descryy/adapter-openapi": "0.5.1"
44
44
  }
45
45
  }