@descryy/adapter-kotlin 0.4.0 → 0.5.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.map +1 -1
- package/dist/adapter.js +68 -10
- package/dist/adapter.js.map +1 -1
- package/dist/client-base.d.ts +114 -0
- package/dist/client-base.d.ts.map +1 -0
- package/dist/client-base.js +102 -0
- package/dist/client-base.js.map +1 -0
- package/dist/client.d.ts +23 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +207 -13
- package/dist/client.js.map +1 -1
- package/dist/external.d.ts +149 -0
- package/dist/external.d.ts.map +1 -0
- package/dist/external.js +226 -0
- package/dist/external.js.map +1 -0
- package/dist/extract.d.ts +7 -0
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +321 -28
- package/dist/extract.js.map +1 -1
- package/dist/jpa-reads.d.ts +26 -0
- package/dist/jpa-reads.d.ts.map +1 -0
- package/dist/jpa-reads.js +35 -0
- package/dist/jpa-reads.js.map +1 -0
- package/dist/jpa.d.ts +147 -0
- package/dist/jpa.d.ts.map +1 -0
- package/dist/jpa.js +415 -0
- package/dist/jpa.js.map +1 -0
- package/dist/parse.d.ts +44 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +106 -9
- package/dist/parse.js.map +1 -1
- package/dist/shape-reach.d.ts +92 -0
- package/dist/shape-reach.d.ts.map +1 -0
- package/dist/shape-reach.js +129 -0
- package/dist/shape-reach.js.map +1 -0
- package/package.json +5 -5
package/dist/parse.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ import { type Node } from "@descryy/adapter-treesitter";
|
|
|
27
27
|
import { type KotlinRoute, type KotlinRouteRefusal } from "./routes.ts";
|
|
28
28
|
import { type KotlinClientCall, type KotlinClientRefusal } from "./client.ts";
|
|
29
29
|
import { type KotlinRetrofitEndpoint, type KotlinRetrofitRefusal } from "./retrofit.ts";
|
|
30
|
+
import { type KotlinJpaDeclaration } from "./jpa.ts";
|
|
30
31
|
/** `import a.b.C`, or the package half of `import a.b.*`. */
|
|
31
32
|
export interface KotlinImport {
|
|
32
33
|
readonly path: string;
|
|
@@ -52,6 +53,12 @@ export interface KotlinSupertype {
|
|
|
52
53
|
export interface KotlinDecl {
|
|
53
54
|
readonly kind: DeclKind;
|
|
54
55
|
readonly name: string;
|
|
56
|
+
/** Annotation NAMES on the declaration — `Entity`, `Table`. */
|
|
57
|
+
readonly annotations: readonly string[];
|
|
58
|
+
/** The same annotations as raw source text, so a reader can see their arguments.
|
|
59
|
+
* Raw rather than parsed: annotation syntax is open-ended and the language
|
|
60
|
+
* reader has no business knowing what any particular one MEANS. */
|
|
61
|
+
readonly annotationTexts: readonly string[];
|
|
55
62
|
/** Enclosing type path for a nested declaration, outermost first. */
|
|
56
63
|
readonly owners: readonly string[];
|
|
57
64
|
readonly supertypes: readonly KotlinSupertype[];
|
|
@@ -82,15 +89,45 @@ export interface KotlinFunc {
|
|
|
82
89
|
readonly owners: readonly string[];
|
|
83
90
|
readonly isTest: boolean;
|
|
84
91
|
readonly testStyle: TestStyle | undefined;
|
|
92
|
+
/** A Jetpack Compose UI element — `@Composable` returning `Unit`. See `composableOf`. */
|
|
93
|
+
readonly isComposable: boolean;
|
|
85
94
|
readonly startLine: number;
|
|
86
95
|
readonly endLine: number;
|
|
87
96
|
readonly refs: readonly KotlinRef[];
|
|
97
|
+
/**
|
|
98
|
+
* `order.totalAmount` — a property READ through a receiver whose type a
|
|
99
|
+
* binding states.
|
|
100
|
+
*
|
|
101
|
+
* Kept apart from {@link refs}, which carries calls and type references and
|
|
102
|
+
* feeds CALLS/USES_TYPE resolution. Only a receiver with a WRITTEN type is
|
|
103
|
+
* recorded: Kotlin infers aggressively, and a type this reader would have to
|
|
104
|
+
* infer from a callee's signature is a disclosed gap rather than a guess.
|
|
105
|
+
*/
|
|
106
|
+
readonly fieldReads: readonly {
|
|
107
|
+
readonly receiverType: string;
|
|
108
|
+
readonly field: string;
|
|
109
|
+
readonly line: number;
|
|
110
|
+
}[];
|
|
88
111
|
}
|
|
89
112
|
export interface KotlinProperty {
|
|
90
113
|
readonly name: string;
|
|
91
114
|
readonly owners: readonly string[];
|
|
92
115
|
/** The written type, when annotated. Kotlin infers aggressively, so often absent. */
|
|
93
116
|
readonly type: string | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* Did the written type end in `?`.
|
|
119
|
+
*
|
|
120
|
+
* Kotlin states nullability IN THE TYPE and the compiler enforces it, so this
|
|
121
|
+
* is a declaration rather than an inference — the one place Kotlin is
|
|
122
|
+
* strictly better evidence than Java, where the same fact needs `@Column`,
|
|
123
|
+
* `@Id` and primitive-vs-boxed to be read together.
|
|
124
|
+
*
|
|
125
|
+
* `undefined` when no type was written at all, which is not the same as
|
|
126
|
+
* "written and not nullable".
|
|
127
|
+
*/
|
|
128
|
+
readonly nullable: boolean | undefined;
|
|
129
|
+
/** Annotations on the property, as raw source text — `@Id`, `@Column(nullable = true)`. */
|
|
130
|
+
readonly annotationTexts: readonly string[];
|
|
94
131
|
readonly line: number;
|
|
95
132
|
}
|
|
96
133
|
export interface KotlinFile {
|
|
@@ -132,6 +169,13 @@ export interface KotlinFile {
|
|
|
132
169
|
/** Retrofit's declarative client endpoints — see `retrofit.ts`. */
|
|
133
170
|
readonly retrofitEndpoints: readonly KotlinRetrofitEndpoint[];
|
|
134
171
|
readonly retrofitRefusals: readonly KotlinRetrofitRefusal[];
|
|
172
|
+
/**
|
|
173
|
+
* Persistence-annotated declarations — see `jpa.ts`. Read here rather than
|
|
174
|
+
* in `extract.ts` because `adapter.ts` deletes the tree the moment this
|
|
175
|
+
* function returns, and the shape a `MODEL` carries is written in
|
|
176
|
+
* annotations and types that `KotlinDecl`/`KotlinProperty` do not keep.
|
|
177
|
+
*/
|
|
178
|
+
readonly jpaDeclarations: readonly KotlinJpaDeclaration[];
|
|
135
179
|
}
|
|
136
180
|
/** Parse one Kotlin file into the structures `extract.ts` consumes. */
|
|
137
181
|
export declare function readKotlinFile(file: string, tree: {
|
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAuB,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEnG,OAAO,EAAyB,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.js
CHANGED
|
@@ -28,6 +28,45 @@ import { readKtorRoutes } from "./routes.js";
|
|
|
28
28
|
import { readKtorClientCalls } from "./client.js";
|
|
29
29
|
import { readSpringRoutes } from "./spring.js";
|
|
30
30
|
import { readRetrofitEndpoints } from "./retrofit.js";
|
|
31
|
+
import { readJpaDeclarations } from "./jpa.js";
|
|
32
|
+
/**
|
|
33
|
+
* Jetpack Compose's own definition of a UI element, read as a declaration.
|
|
34
|
+
*
|
|
35
|
+
* Two halves, both written down rather than inferred:
|
|
36
|
+
*
|
|
37
|
+
* 1. `@Composable`, and an `androidx.compose` import that says which
|
|
38
|
+
* `Composable` that is. Same provenance rule `testStyleOf` applies to
|
|
39
|
+
* `@Test` — the annotation's simple name is not, by itself, evidence.
|
|
40
|
+
* 2. Compose's API guidelines split `@Composable` functions in two: those
|
|
41
|
+
* returning `Unit` emit UI, those returning a value are state factories
|
|
42
|
+
* (`rememberFoo()`). Only the first is a `COMPONENT`.
|
|
43
|
+
*
|
|
44
|
+
* Kotlin infers return types, so only what is written is read. A `@Composable`
|
|
45
|
+
* with an **expression body and no written return type** has an inferred type
|
|
46
|
+
* this adapter cannot see below R3, and is refused — left a `FUNCTION` rather
|
|
47
|
+
* than guessed into a `COMPONENT`. Rule 2: the missing node is a disclosed
|
|
48
|
+
* gap, a wrong one is a false claim every finding above it inherits.
|
|
49
|
+
*/
|
|
50
|
+
function composableOf(node, annotations, imports) {
|
|
51
|
+
if (!annotations.includes("Composable"))
|
|
52
|
+
return false;
|
|
53
|
+
if (!imports.some((i) => i.path.startsWith("androidx.compose")))
|
|
54
|
+
return false;
|
|
55
|
+
// The written return type: the node after the `:` that follows the parameter
|
|
56
|
+
// list. Absent means the declaration states nothing.
|
|
57
|
+
const children = childrenOf(node);
|
|
58
|
+
const colon = children.findIndex((c) => !c.isNamed && c.type === ":");
|
|
59
|
+
if (colon !== -1) {
|
|
60
|
+
const written = children[colon + 1];
|
|
61
|
+
return written !== undefined && typeNameOf(written) === "Unit";
|
|
62
|
+
}
|
|
63
|
+
// No written type. A block body returns `Unit`; an expression body's type is
|
|
64
|
+
// inferred and unknowable here.
|
|
65
|
+
const body = firstOfType(node, "function_body");
|
|
66
|
+
if (body === undefined)
|
|
67
|
+
return false;
|
|
68
|
+
return childrenOf(body).some((c) => !c.isNamed && c.type === "{");
|
|
69
|
+
}
|
|
31
70
|
const lineOf = (node) => node.startPosition.row + 1;
|
|
32
71
|
const namedChildren = (node) => {
|
|
33
72
|
const out = [];
|
|
@@ -82,6 +121,15 @@ function modifiersOf(node) {
|
|
|
82
121
|
.concat(childrenOf(block).flatMap((c) => childrenOf(c).map((k) => k.text)))
|
|
83
122
|
.filter((t) => t !== "");
|
|
84
123
|
}
|
|
124
|
+
/** Annotations as raw source text, so a reader can see their arguments. */
|
|
125
|
+
function annotationTextsOf(node) {
|
|
126
|
+
const block = firstOfType(node, "modifiers");
|
|
127
|
+
if (block === undefined)
|
|
128
|
+
return [];
|
|
129
|
+
return namedChildren(block)
|
|
130
|
+
.filter((m) => m.type.includes("annotation"))
|
|
131
|
+
.map((m) => m.text);
|
|
132
|
+
}
|
|
85
133
|
/** Annotation names on a declaration — `@Test`, `@Deprecated`. */
|
|
86
134
|
function annotationsOf(node) {
|
|
87
135
|
const block = firstOfType(node, "modifiers");
|
|
@@ -215,12 +263,21 @@ function testStyleOf(annotations, imports) {
|
|
|
215
263
|
// larger population, and the style is a label rather than an identity input.
|
|
216
264
|
return "junit";
|
|
217
265
|
}
|
|
218
|
-
/**
|
|
266
|
+
/**
|
|
267
|
+
* The written type of a `val`/`var`, when one is stated. Kotlin infers a lot.
|
|
268
|
+
*
|
|
269
|
+
* `T?` is a `nullable_type` wrapping the `user_type`, so a lookup for a direct
|
|
270
|
+
* `user_type` child finds nothing and the property reports its type as *not
|
|
271
|
+
* written* — which is a different and false claim. Measured on the conformance
|
|
272
|
+
* fixture: `discountCode: String?` was the one property of three whose type
|
|
273
|
+
* was lost. The nullability itself is `jpa.ts`'s to read; this is only the
|
|
274
|
+
* element type, and it is the same `String` either way.
|
|
275
|
+
*/
|
|
219
276
|
function propertyTypeOf(node) {
|
|
220
|
-
const declaration = firstOfType(node, "variable_declaration");
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return typeNameOf(firstOfType(
|
|
277
|
+
const declaration = firstOfType(node, "variable_declaration") ?? node;
|
|
278
|
+
const nullable = firstOfType(declaration, "nullable_type");
|
|
279
|
+
const holder = nullable ?? declaration;
|
|
280
|
+
return typeNameOf(firstOfType(holder, "user_type"));
|
|
224
281
|
}
|
|
225
282
|
function propertyNameOf(node) {
|
|
226
283
|
const declaration = firstOfType(node, "variable_declaration");
|
|
@@ -295,13 +352,24 @@ function readTypeRefs(node, refs) {
|
|
|
295
352
|
* (`repository.findById(id)` is read by `readCall`, not this) — avoids
|
|
296
353
|
* double-reporting one reference through two mechanisms.
|
|
297
354
|
*/
|
|
298
|
-
function readValueRefs(node, callHeads, refs) {
|
|
355
|
+
function readValueRefs(node, callHeads, refs, scope, fieldReads) {
|
|
299
356
|
for (const nav of descendants(node, "navigation_expression")) {
|
|
300
357
|
if (callHeads.has(nav))
|
|
301
358
|
continue;
|
|
302
359
|
const target = namedChildren(nav)[0];
|
|
303
360
|
if (target?.type !== "simple_identifier")
|
|
304
361
|
continue;
|
|
362
|
+
// `order.totalAmount` where a binding WROTE `order`'s type. A navigation
|
|
363
|
+
// that is not a call's callee is a property read; the receiver's type is
|
|
364
|
+
// the half Kotlin usually leaves to inference, so only a written one counts.
|
|
365
|
+
if (scope !== undefined && fieldReads !== undefined) {
|
|
366
|
+
const receiverType = scope.locals.get(target.text);
|
|
367
|
+
const suffix = namedChildren(nav).find((c) => c.type === "navigation_suffix");
|
|
368
|
+
const member = suffix === undefined ? undefined : firstOfType(suffix, "simple_identifier")?.text;
|
|
369
|
+
if (receiverType !== undefined && member !== undefined) {
|
|
370
|
+
fieldReads.push({ receiverType, field: member, line: lineOf(nav) });
|
|
371
|
+
}
|
|
372
|
+
}
|
|
305
373
|
refs.push({
|
|
306
374
|
kind: "type",
|
|
307
375
|
name: target.text,
|
|
@@ -319,6 +387,12 @@ function readValueRefs(node, callHeads, refs) {
|
|
|
319
387
|
* companion's `const val MAX` was recorded twice (class and companion). A
|
|
320
388
|
* member is a **direct** child of its body.
|
|
321
389
|
*/
|
|
390
|
+
/** Did the written type end in `?` — Kotlin's declaration of nullability. */
|
|
391
|
+
function nullableTypeOf(node) {
|
|
392
|
+
if (node === undefined)
|
|
393
|
+
return undefined;
|
|
394
|
+
return firstOfType(node, "nullable_type") !== undefined;
|
|
395
|
+
}
|
|
322
396
|
function ownProperties(body) {
|
|
323
397
|
return namedChildren(body).filter((c) => c.type === "property_declaration");
|
|
324
398
|
}
|
|
@@ -353,6 +427,7 @@ function readFunction(node, scope, walk, imports) {
|
|
|
353
427
|
const annotations = annotationsOf(node);
|
|
354
428
|
const testStyle = testStyleOf(annotations, imports);
|
|
355
429
|
const refs = [];
|
|
430
|
+
const fieldReads = [];
|
|
356
431
|
const inner = { owners: scope.owners, locals: new Map(scope.locals) };
|
|
357
432
|
// Seeded before the body is walked: Kotlin allows using a property declared
|
|
358
433
|
// below it, and a forward-only pass would make resolution depend on source
|
|
@@ -365,7 +440,7 @@ function readFunction(node, scope, walk, imports) {
|
|
|
365
440
|
for (const call of calls)
|
|
366
441
|
readCall(call, inner, refs);
|
|
367
442
|
readTypeRefs(body, refs);
|
|
368
|
-
readValueRefs(body, callHeads, refs);
|
|
443
|
+
readValueRefs(body, callHeads, refs, inner, fieldReads);
|
|
369
444
|
}
|
|
370
445
|
const parameters = firstOfType(node, "function_value_parameters");
|
|
371
446
|
if (parameters !== undefined)
|
|
@@ -373,8 +448,10 @@ function readFunction(node, scope, walk, imports) {
|
|
|
373
448
|
walk.funcs.push({
|
|
374
449
|
name,
|
|
375
450
|
owners: scope.owners,
|
|
451
|
+
fieldReads,
|
|
376
452
|
isTest: testStyle !== undefined,
|
|
377
453
|
testStyle,
|
|
454
|
+
isComposable: testStyle === undefined && composableOf(node, annotations, imports),
|
|
378
455
|
startLine: lineOf(node),
|
|
379
456
|
endLine: node.endPosition.row + 1,
|
|
380
457
|
refs,
|
|
@@ -400,6 +477,8 @@ function walkNode(node, scope, walk, imports) {
|
|
|
400
477
|
walk.decls.push({
|
|
401
478
|
kind,
|
|
402
479
|
name,
|
|
480
|
+
annotations: annotationsOf(child),
|
|
481
|
+
annotationTexts: annotationTextsOf(child),
|
|
403
482
|
owners: scope.owners,
|
|
404
483
|
supertypes,
|
|
405
484
|
startLine: lineOf(child),
|
|
@@ -425,7 +504,9 @@ function walkNode(node, scope, walk, imports) {
|
|
|
425
504
|
walk.properties.push({
|
|
426
505
|
name: propertyName,
|
|
427
506
|
owners: inner.owners,
|
|
428
|
-
type:
|
|
507
|
+
type: propertyTypeOf(parameter),
|
|
508
|
+
nullable: nullableTypeOf(parameter),
|
|
509
|
+
annotationTexts: annotationTextsOf(parameter),
|
|
429
510
|
line: lineOf(parameter),
|
|
430
511
|
});
|
|
431
512
|
}
|
|
@@ -441,6 +522,8 @@ function walkNode(node, scope, walk, imports) {
|
|
|
441
522
|
name: propertyName,
|
|
442
523
|
owners: inner.owners,
|
|
443
524
|
type: propertyTypeOf(property),
|
|
525
|
+
nullable: nullableTypeOf(property),
|
|
526
|
+
annotationTexts: annotationTextsOf(property),
|
|
444
527
|
line: lineOf(property),
|
|
445
528
|
});
|
|
446
529
|
}
|
|
@@ -498,9 +581,22 @@ export function readKotlinFile(file, tree) {
|
|
|
498
581
|
// After the walk: provenance is decided by the import table, and the import
|
|
499
582
|
// may sit anywhere above the routing block that needs it.
|
|
500
583
|
const routes = readKtorRoutes(root, walk.imports);
|
|
501
|
-
|
|
584
|
+
// ONE WALK, READ TWICE — DEC-164's origin rule needs every base in the file
|
|
585
|
+
// before any single call site can be judged. `client-base.ts` admits an
|
|
586
|
+
// absolute call path only at an origin some base in this same file resolves
|
|
587
|
+
// to. The first read collects those origins; the second judges with them in
|
|
588
|
+
// hand. With no absolute base anywhere the set stays empty and the second
|
|
589
|
+
// read never runs.
|
|
590
|
+
const firstClientPass = readKtorClientCalls(root, walk.imports);
|
|
591
|
+
const knownOrigins = new Set();
|
|
592
|
+
for (const call of firstClientPass.calls) {
|
|
593
|
+
if (call.baseOrigin !== undefined)
|
|
594
|
+
knownOrigins.add(call.baseOrigin);
|
|
595
|
+
}
|
|
596
|
+
const client = knownOrigins.size === 0 ? firstClientPass : readKtorClientCalls(root, walk.imports, knownOrigins);
|
|
502
597
|
const springRoutes = readSpringRoutes(root, walk.imports);
|
|
503
598
|
const retrofit = readRetrofitEndpoints(root, walk.imports);
|
|
599
|
+
const jpaDeclarations = readJpaDeclarations(root, walk.imports);
|
|
504
600
|
return {
|
|
505
601
|
file,
|
|
506
602
|
hasError: hasErrorSubtree(root),
|
|
@@ -518,6 +614,7 @@ export function readKotlinFile(file, tree) {
|
|
|
518
614
|
clientRefusals: client.refusals,
|
|
519
615
|
retrofitEndpoints: retrofit.declarations,
|
|
520
616
|
retrofitRefusals: retrofit.refusals,
|
|
617
|
+
jpaDeclarations,
|
|
521
618
|
};
|
|
522
619
|
}
|
|
523
620
|
//# sourceMappingURL=parse.js.map
|
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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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which resolution level this repository actually gets Kotlin to.
|
|
3
|
+
*
|
|
4
|
+
* **R3 on ORM-mapped shape facts, R2 on everything else** — a per-fact split,
|
|
5
|
+
* not a ceiling raised across the batch. `adapter-java` and `adapter-csharp`
|
|
6
|
+
* publish the same split on the same ground, and this file is Java's
|
|
7
|
+
* `shape-reach.ts` held to the same bar for the same reason.
|
|
8
|
+
*
|
|
9
|
+
* ## What is R3 here, and what is not
|
|
10
|
+
*
|
|
11
|
+
* R3 is "+ type checker (shapes)", and **no type checker runs here.** DEC-202
|
|
12
|
+
* is the precedent: *a declared schema is R3-grade because the declaration
|
|
13
|
+
* states the shape rather than inferring it.* A JPA mapping is exactly that,
|
|
14
|
+
* and it is the same mapping `adapter-java` already claims R3 on.
|
|
15
|
+
*
|
|
16
|
+
* Everything else Kotlin produces stays at R2 and is emitted at R2. Kotlin
|
|
17
|
+
* writes its package, its imports and its declared types down, so a reference
|
|
18
|
+
* resolves to a definition with no LSP and no compiler — that is name-and-path
|
|
19
|
+
* resolution, and no shape is checked by it.
|
|
20
|
+
*
|
|
21
|
+
* **Exactly one fact kind in this package reaches 3**: the mapped field shape
|
|
22
|
+
* on a `MODEL` (`extract.ts`, the only `SHAPE_LEVEL` there). Routes, client
|
|
23
|
+
* calls, Retrofit endpoints, type references, inheritance and test coverage
|
|
24
|
+
* all push at 2 or below and are unaffected. If a second fact kind ever earns
|
|
25
|
+
* R3, it is added here in the same commit that earns it — never inferred from
|
|
26
|
+
* the fact that some extractor exists.
|
|
27
|
+
*
|
|
28
|
+
* ## Why a count of shapes and not a density
|
|
29
|
+
*
|
|
30
|
+
* `adapter-python` gates its R3 on measured annotation density, because
|
|
31
|
+
* Python's R3 comes from annotations spread across ordinary code and "enough
|
|
32
|
+
* of them" is a real question with a distribution behind it. Kotlin's comes
|
|
33
|
+
* from a mapping that is either declared or is not, so there is no density to
|
|
34
|
+
* measure and a threshold would be a number with nothing under it.
|
|
35
|
+
*
|
|
36
|
+
* ## What a refusal does to the level
|
|
37
|
+
*
|
|
38
|
+
* A refused shape (`jpa.ts`'s four completeness gates) counts for **nothing**
|
|
39
|
+
* here. An entity whose shape was withheld is an entity this run read no shape
|
|
40
|
+
* from, so a repository whose every entity is refused publishes R2 — the same
|
|
41
|
+
* level it would publish with no entity at all, which is the honest answer.
|
|
42
|
+
*
|
|
43
|
+
* ## What this does NOT do
|
|
44
|
+
*
|
|
45
|
+
* It does not mint `DATABASE_TABLE`/`DATABASE_COLUMN`. The physical column
|
|
46
|
+
* name is decided by a *configurable* naming strategy (Spring Boot's
|
|
47
|
+
* camel-to-snake, plain Hibernate's implicit strategy as-written) that no
|
|
48
|
+
* source file states — `discountCode` in the entity against `discount_code`
|
|
49
|
+
* in the migration, measured on this corpus. Minting from the class would
|
|
50
|
+
* mint ids that do not join with `adapter-sql`'s for the same table (DEC-240).
|
|
51
|
+
* Precision over recall: the shape is claimed, the physical schema is not.
|
|
52
|
+
*/
|
|
53
|
+
import type { ResolutionLevel } from "@descryy/ir";
|
|
54
|
+
import { type JpaModel, type JpaRefusal } from "./jpa.ts";
|
|
55
|
+
import type { KotlinFile } from "./parse.ts";
|
|
56
|
+
/**
|
|
57
|
+
* The one level `adapter-kotlin` can reach that R2 machinery cannot supply,
|
|
58
|
+
* and the one place in this package that mints at it.
|
|
59
|
+
*/
|
|
60
|
+
export declare const SHAPE_LEVEL: ResolutionLevel;
|
|
61
|
+
export interface ShapeReach {
|
|
62
|
+
/** `identityPackage::path` -> the model, handed on so the caller never pays twice. */
|
|
63
|
+
readonly entities: ReadonlyMap<string, JpaModel>;
|
|
64
|
+
/** Shapes withheld by a completeness gate, for disclosure. */
|
|
65
|
+
readonly refusals: readonly (JpaRefusal & {
|
|
66
|
+
readonly file: string;
|
|
67
|
+
})[];
|
|
68
|
+
/**
|
|
69
|
+
* Entities carrying at least one mapped column whose shape this run actually
|
|
70
|
+
* decided — the exact condition `extract.ts` uses before writing
|
|
71
|
+
* `attrs.fields`, so this cannot drift into counting a shape never emitted.
|
|
72
|
+
*/
|
|
73
|
+
readonly mappedShapes: number;
|
|
74
|
+
/** True when at least one fact in this repository genuinely rests on R3. */
|
|
75
|
+
readonly reachesShapes: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Read every entity in the batch, resolving supertypes across files.
|
|
79
|
+
*
|
|
80
|
+
* Resolution is by the *written* package: a single-type import names the
|
|
81
|
+
* parent's package outright, and an unqualified name otherwise means this
|
|
82
|
+
* file's own package. **Two declarations answering to one key make the name
|
|
83
|
+
* ambiguous, and an ambiguous parent resolves to nothing** — which routes
|
|
84
|
+
* straight into `jpa.ts`'s E1 refusal rather than picking a winner.
|
|
85
|
+
*/
|
|
86
|
+
export declare function readEntities(units: readonly KotlinFile[]): ShapeReach;
|
|
87
|
+
/**
|
|
88
|
+
* The level to publish for a run: never above the caller's ceiling, never
|
|
89
|
+
* above what the repository supplied, and 0 when nothing anchored at all.
|
|
90
|
+
*/
|
|
91
|
+
export declare function reachedFor(ceiling: ResolutionLevel, anchoredAnything: boolean, reach: ShapeReach | undefined): ResolutionLevel;
|
|
92
|
+
//# sourceMappingURL=shape-reach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape-reach.d.ts","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAa,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAgB,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,eAAmB,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACvE;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAID;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CA4CrE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,eAAe,CAIjB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which resolution level this repository actually gets Kotlin to.
|
|
3
|
+
*
|
|
4
|
+
* **R3 on ORM-mapped shape facts, R2 on everything else** — a per-fact split,
|
|
5
|
+
* not a ceiling raised across the batch. `adapter-java` and `adapter-csharp`
|
|
6
|
+
* publish the same split on the same ground, and this file is Java's
|
|
7
|
+
* `shape-reach.ts` held to the same bar for the same reason.
|
|
8
|
+
*
|
|
9
|
+
* ## What is R3 here, and what is not
|
|
10
|
+
*
|
|
11
|
+
* R3 is "+ type checker (shapes)", and **no type checker runs here.** DEC-202
|
|
12
|
+
* is the precedent: *a declared schema is R3-grade because the declaration
|
|
13
|
+
* states the shape rather than inferring it.* A JPA mapping is exactly that,
|
|
14
|
+
* and it is the same mapping `adapter-java` already claims R3 on.
|
|
15
|
+
*
|
|
16
|
+
* Everything else Kotlin produces stays at R2 and is emitted at R2. Kotlin
|
|
17
|
+
* writes its package, its imports and its declared types down, so a reference
|
|
18
|
+
* resolves to a definition with no LSP and no compiler — that is name-and-path
|
|
19
|
+
* resolution, and no shape is checked by it.
|
|
20
|
+
*
|
|
21
|
+
* **Exactly one fact kind in this package reaches 3**: the mapped field shape
|
|
22
|
+
* on a `MODEL` (`extract.ts`, the only `SHAPE_LEVEL` there). Routes, client
|
|
23
|
+
* calls, Retrofit endpoints, type references, inheritance and test coverage
|
|
24
|
+
* all push at 2 or below and are unaffected. If a second fact kind ever earns
|
|
25
|
+
* R3, it is added here in the same commit that earns it — never inferred from
|
|
26
|
+
* the fact that some extractor exists.
|
|
27
|
+
*
|
|
28
|
+
* ## Why a count of shapes and not a density
|
|
29
|
+
*
|
|
30
|
+
* `adapter-python` gates its R3 on measured annotation density, because
|
|
31
|
+
* Python's R3 comes from annotations spread across ordinary code and "enough
|
|
32
|
+
* of them" is a real question with a distribution behind it. Kotlin's comes
|
|
33
|
+
* from a mapping that is either declared or is not, so there is no density to
|
|
34
|
+
* measure and a threshold would be a number with nothing under it.
|
|
35
|
+
*
|
|
36
|
+
* ## What a refusal does to the level
|
|
37
|
+
*
|
|
38
|
+
* A refused shape (`jpa.ts`'s four completeness gates) counts for **nothing**
|
|
39
|
+
* here. An entity whose shape was withheld is an entity this run read no shape
|
|
40
|
+
* from, so a repository whose every entity is refused publishes R2 — the same
|
|
41
|
+
* level it would publish with no entity at all, which is the honest answer.
|
|
42
|
+
*
|
|
43
|
+
* ## What this does NOT do
|
|
44
|
+
*
|
|
45
|
+
* It does not mint `DATABASE_TABLE`/`DATABASE_COLUMN`. The physical column
|
|
46
|
+
* name is decided by a *configurable* naming strategy (Spring Boot's
|
|
47
|
+
* camel-to-snake, plain Hibernate's implicit strategy as-written) that no
|
|
48
|
+
* source file states — `discountCode` in the entity against `discount_code`
|
|
49
|
+
* in the migration, measured on this corpus. Minting from the class would
|
|
50
|
+
* mint ids that do not join with `adapter-sql`'s for the same table (DEC-240).
|
|
51
|
+
* Precision over recall: the shape is claimed, the physical schema is not.
|
|
52
|
+
*/
|
|
53
|
+
import { jpaModels } from "./jpa.js";
|
|
54
|
+
/**
|
|
55
|
+
* The one level `adapter-kotlin` can reach that R2 machinery cannot supply,
|
|
56
|
+
* and the one place in this package that mints at it.
|
|
57
|
+
*/
|
|
58
|
+
export const SHAPE_LEVEL = 3;
|
|
59
|
+
const pathKey = (identityPackage, path) => `${identityPackage}::${path.join(".")}`;
|
|
60
|
+
/**
|
|
61
|
+
* Read every entity in the batch, resolving supertypes across files.
|
|
62
|
+
*
|
|
63
|
+
* Resolution is by the *written* package: a single-type import names the
|
|
64
|
+
* parent's package outright, and an unqualified name otherwise means this
|
|
65
|
+
* file's own package. **Two declarations answering to one key make the name
|
|
66
|
+
* ambiguous, and an ambiguous parent resolves to nothing** — which routes
|
|
67
|
+
* straight into `jpa.ts`'s E1 refusal rather than picking a winner.
|
|
68
|
+
*/
|
|
69
|
+
export function readEntities(units) {
|
|
70
|
+
const byFqn = new Map();
|
|
71
|
+
for (const unit of units) {
|
|
72
|
+
for (const declaration of unit.jpaDeclarations) {
|
|
73
|
+
const fqn = `${unit.packageName}.${[...declaration.owners, declaration.name].join(".")}`;
|
|
74
|
+
const bucket = byFqn.get(fqn);
|
|
75
|
+
if (bucket === undefined)
|
|
76
|
+
byFqn.set(fqn, [{ unit, declaration }]);
|
|
77
|
+
else
|
|
78
|
+
bucket.push({ unit, declaration });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const entities = new Map();
|
|
82
|
+
const refusals = [];
|
|
83
|
+
for (const unit of units) {
|
|
84
|
+
if (unit.identityPackage === undefined || unit.jpaDeclarations.length === 0)
|
|
85
|
+
continue;
|
|
86
|
+
const importedFqn = new Map();
|
|
87
|
+
for (const each of unit.imports) {
|
|
88
|
+
if (each.isWildcard)
|
|
89
|
+
continue;
|
|
90
|
+
importedFqn.set(each.alias ?? each.path.slice(each.path.lastIndexOf(".") + 1), each.path);
|
|
91
|
+
}
|
|
92
|
+
const jpaUnit = { packageName: unit.packageName, jpaDeclarations: unit.jpaDeclarations };
|
|
93
|
+
const { models, refusals: refused } = jpaModels(jpaUnit, (written, from) => {
|
|
94
|
+
const fqn = importedFqn.get(written) ?? `${from.packageName}.${written}`;
|
|
95
|
+
const found = byFqn.get(fqn);
|
|
96
|
+
// One candidate or none. Two is an ambiguity this adapter cannot settle.
|
|
97
|
+
if (found === undefined || found.length !== 1)
|
|
98
|
+
return undefined;
|
|
99
|
+
const [only] = found;
|
|
100
|
+
if (only === undefined)
|
|
101
|
+
return undefined;
|
|
102
|
+
return {
|
|
103
|
+
declaration: only.declaration,
|
|
104
|
+
unit: { packageName: only.unit.packageName, jpaDeclarations: only.unit.jpaDeclarations },
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
for (const model of models)
|
|
108
|
+
entities.set(pathKey(unit.identityPackage, [...model.owners, model.className]), model);
|
|
109
|
+
for (const refusal of refused)
|
|
110
|
+
refusals.push({ ...refusal, file: unit.file });
|
|
111
|
+
}
|
|
112
|
+
let mappedShapes = 0;
|
|
113
|
+
for (const model of entities.values())
|
|
114
|
+
if (model.fields.length > 0)
|
|
115
|
+
mappedShapes += 1;
|
|
116
|
+
return { entities, refusals, mappedShapes, reachesShapes: mappedShapes > 0 };
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The level to publish for a run: never above the caller's ceiling, never
|
|
120
|
+
* above what the repository supplied, and 0 when nothing anchored at all.
|
|
121
|
+
*/
|
|
122
|
+
export function reachedFor(ceiling, anchoredAnything, reach) {
|
|
123
|
+
if (!anchoredAnything)
|
|
124
|
+
return 0;
|
|
125
|
+
if (ceiling < SHAPE_LEVEL)
|
|
126
|
+
return ceiling;
|
|
127
|
+
return reach?.reachesShapes === true ? ceiling : Math.min(2, ceiling);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=shape-reach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape-reach.js","sourceRoot":"","sources":["../src/shape-reach.ts"],"names":[],"mappings":"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"}
|