@descryy/adapter-kotlin 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/adapter.d.ts.map +1 -1
- package/dist/adapter.js +86 -14
- 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 +34 -0
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +476 -47
- 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/retrofit.d.ts +12 -0
- package/dist/retrofit.d.ts.map +1 -1
- package/dist/retrofit.js +53 -0
- package/dist/retrofit.js.map +1 -1
- package/dist/routes.d.ts +15 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/serialization.d.ts +47 -0
- package/dist/serialization.d.ts.map +1 -0
- package/dist/serialization.js +55 -0
- package/dist/serialization.js.map +1 -0
- package/dist/shape-reach.d.ts +97 -0
- package/dist/shape-reach.d.ts.map +1 -0
- package/dist/shape-reach.js +156 -0
- package/dist/shape-reach.js.map +1 -0
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +28 -6
- package/dist/spring.js.map +1 -1
- package/package.json +7 -7
package/dist/client.js
CHANGED
|
@@ -39,6 +39,9 @@
|
|
|
39
39
|
* whose name is bound to `HttpClient` in one place and to something else in another, which this
|
|
40
40
|
* reader cannot separate without a type checker.
|
|
41
41
|
*/
|
|
42
|
+
import { originOf, pathPrefixOf, resolveBaseSite, } from "./client-base.js";
|
|
43
|
+
/** The origin set before any base has been read. Named so a caller cannot pass `new Set()` by accident and mean something else. */
|
|
44
|
+
export const NO_KNOWN_ORIGINS = new Set();
|
|
42
45
|
/** The package whose verb extension functions are HTTP calls. */
|
|
43
46
|
const REQUEST_PACKAGE = "io.ktor.client.request";
|
|
44
47
|
/** The client type whose construction, or written type, is provenance. */
|
|
@@ -127,6 +130,86 @@ function templateOf(argument) {
|
|
|
127
130
|
}
|
|
128
131
|
return out;
|
|
129
132
|
}
|
|
133
|
+
// --- DEC-164's base reader ---------------------------------------------------
|
|
134
|
+
/** The calls that set a base on a Ktor `HttpClient`, inside `defaultRequest { … }`. */
|
|
135
|
+
const BASE_SETTERS = new Set(["url", "takeFrom"]);
|
|
136
|
+
/** A string literal with no interpolation and no escape, or `undefined`. */
|
|
137
|
+
function plainLiteral(node) {
|
|
138
|
+
if (node === undefined)
|
|
139
|
+
return undefined;
|
|
140
|
+
const literal = node.type === "string_literal" ? node : firstOfType(node, "string_literal");
|
|
141
|
+
if (literal === undefined)
|
|
142
|
+
return undefined;
|
|
143
|
+
let out = "";
|
|
144
|
+
for (const child of namedChildren(literal)) {
|
|
145
|
+
if (child.type !== "string_content")
|
|
146
|
+
return undefined;
|
|
147
|
+
out += child.text;
|
|
148
|
+
}
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* This file's own top-level and member `val`/`const val` string values —
|
|
153
|
+
* DEC-164's base table. Per file on purpose; see `client-base.ts`.
|
|
154
|
+
*/
|
|
155
|
+
function stringConstantsIn(root) {
|
|
156
|
+
const constants = new Map();
|
|
157
|
+
const visit = (node) => {
|
|
158
|
+
if (node.type === "property_declaration") {
|
|
159
|
+
const declaration = firstOfType(node, "variable_declaration");
|
|
160
|
+
const name = declaration === undefined ? undefined : firstOfType(declaration, "simple_identifier")?.text;
|
|
161
|
+
const value = namedChildren(node).find((c) => c.type === "string_literal");
|
|
162
|
+
const literal = plainLiteral(value);
|
|
163
|
+
// First writer wins: a name declared twice is one this reader cannot
|
|
164
|
+
// separate without a type checker.
|
|
165
|
+
if (name !== undefined && literal !== undefined && !constants.has(name))
|
|
166
|
+
constants.set(name, literal);
|
|
167
|
+
}
|
|
168
|
+
for (const child of namedChildren(node))
|
|
169
|
+
visit(child);
|
|
170
|
+
};
|
|
171
|
+
visit(root);
|
|
172
|
+
return constants;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* What one `HttpClient` construction says about its base.
|
|
176
|
+
*
|
|
177
|
+
* `undefined` means this is not a construction this reader recognises, which
|
|
178
|
+
* becomes DEC-164's fourth state rather than a claim. A construction with no
|
|
179
|
+
* `url(…)`/`takeFrom(…)` anywhere in it is a real `none` — the configuration
|
|
180
|
+
* was visible and set no base.
|
|
181
|
+
*/
|
|
182
|
+
function baseSiteOf(initialiser) {
|
|
183
|
+
let found;
|
|
184
|
+
const visit = (node) => {
|
|
185
|
+
if (found !== undefined)
|
|
186
|
+
return;
|
|
187
|
+
const call = node.type === "call_expression" ? node : undefined;
|
|
188
|
+
if (call !== undefined) {
|
|
189
|
+
const head = call.namedChild(0);
|
|
190
|
+
if (head !== null && head.type === "simple_identifier" && BASE_SETTERS.has(head.text)) {
|
|
191
|
+
const suffix = namedChildren(call)[1];
|
|
192
|
+
const args = suffix?.type === "call_suffix" ? firstOfType(suffix, "value_arguments") : undefined;
|
|
193
|
+
const first = args === undefined ? undefined : firstOfType(args, "value_argument");
|
|
194
|
+
if (first !== undefined) {
|
|
195
|
+
found = first;
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
for (const child of namedChildren(node))
|
|
201
|
+
visit(child);
|
|
202
|
+
};
|
|
203
|
+
visit(initialiser);
|
|
204
|
+
if (found === undefined)
|
|
205
|
+
return { kind: "none" };
|
|
206
|
+
const literal = plainLiteral(found);
|
|
207
|
+
if (literal !== undefined)
|
|
208
|
+
return { kind: "base", text: found.text.slice(0, 120), literal };
|
|
209
|
+
const bare = found.type === "value_argument" ? found.namedChild(0) : found;
|
|
210
|
+
const name = bare !== null && bare !== undefined && bare.type === "simple_identifier" ? bare.text : undefined;
|
|
211
|
+
return { kind: "base", text: found.text.slice(0, 120), ...(name === undefined ? {} : { name }) };
|
|
212
|
+
}
|
|
130
213
|
/**
|
|
131
214
|
* Unwrap `receiver.verb(args)`, including the trailing-lambda form — args plus
|
|
132
215
|
* a lambda parse as two nested `call_expression`s (same fact `routes.ts`
|
|
@@ -196,8 +279,24 @@ function constructedName(node) {
|
|
|
196
279
|
function clientNames(root, imports) {
|
|
197
280
|
const verified = new Set();
|
|
198
281
|
const other = new Set();
|
|
282
|
+
/**
|
|
283
|
+
* DEC-164: `<owner>::<name>` -> what that construction said about a base.
|
|
284
|
+
*
|
|
285
|
+
* **Keyed by the enclosing class, not by the name alone.** Kotlin puts many
|
|
286
|
+
* classes in one file and every one of them calls its client `client`; a
|
|
287
|
+
* file-wide name key handed the first class's base to all of them, which the
|
|
288
|
+
* conformance corpus caught as a `resolved` base on the two callers whose
|
|
289
|
+
* own clients set none and an unreadable one. `verified`/`ambiguous` above
|
|
290
|
+
* stay name-keyed — they answer "is this name ever an HttpClient", where a
|
|
291
|
+
* collision is disclosed rather than resolved — but a BASE attributed to the
|
|
292
|
+
* wrong client is a wrong edge, which rule 2 does not trade for recall.
|
|
293
|
+
*/
|
|
294
|
+
const bases = new Map();
|
|
199
295
|
const constructible = importsClientType(imports);
|
|
200
|
-
const bindingsOf = (node) => {
|
|
296
|
+
const bindingsOf = (node, owner) => {
|
|
297
|
+
const scoped = node.type === "class_declaration" || node.type === "object_declaration"
|
|
298
|
+
? `${owner}${owner === "" ? "" : "."}${firstOfType(node, "type_identifier")?.text ?? ""}`
|
|
299
|
+
: owner;
|
|
201
300
|
// `val client: HttpClient` / `client: HttpClient` — a written type, on a
|
|
202
301
|
// property, a constructor parameter or a function parameter alike.
|
|
203
302
|
if (node.type === "property_declaration" || node.type === "class_parameter" || node.type === "parameter") {
|
|
@@ -214,16 +313,30 @@ function clientNames(root, imports) {
|
|
|
214
313
|
verified.add(name);
|
|
215
314
|
else if (written !== undefined || initialiser !== undefined)
|
|
216
315
|
other.add(name);
|
|
316
|
+
// DEC-164: a base is read only off a construction this reader can
|
|
317
|
+
// SEE. A `HttpClient` parameter with no initialiser here keeps the
|
|
318
|
+
// fourth state — the field's absence — rather than a false `none`.
|
|
319
|
+
if (constructed && initialiser !== undefined && !bases.has(`${owner}::${name}`)) {
|
|
320
|
+
const site = baseSiteOf(initialiser);
|
|
321
|
+
if (site !== undefined)
|
|
322
|
+
bases.set(`${owner}::${name}`, site);
|
|
323
|
+
}
|
|
217
324
|
}
|
|
218
325
|
}
|
|
219
326
|
for (const child of namedChildren(node))
|
|
220
|
-
bindingsOf(child);
|
|
327
|
+
bindingsOf(child, scoped);
|
|
221
328
|
};
|
|
222
|
-
bindingsOf(root);
|
|
329
|
+
bindingsOf(root, "");
|
|
223
330
|
const ambiguous = new Set([...verified].filter((name) => other.has(name)));
|
|
224
|
-
for (const name of ambiguous)
|
|
331
|
+
for (const name of ambiguous) {
|
|
225
332
|
verified.delete(name);
|
|
226
|
-
|
|
333
|
+
// An ambiguous name's base would be attributed to the wrong client.
|
|
334
|
+
for (const key of [...bases.keys()]) {
|
|
335
|
+
if (key.endsWith(`::${name}`))
|
|
336
|
+
bases.delete(key);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return { verified, ambiguous, bases };
|
|
227
340
|
}
|
|
228
341
|
/** The bindings a `function_declaration`'s own value-parameter list introduces. */
|
|
229
342
|
function parameterNamesOf(fn) {
|
|
@@ -241,18 +354,38 @@ function parameterNamesOf(fn) {
|
|
|
241
354
|
return names;
|
|
242
355
|
}
|
|
243
356
|
/** Every HTTP call written in one file, and every one refused. */
|
|
244
|
-
export function readKtorClientCalls(root, imports
|
|
357
|
+
export function readKtorClientCalls(root, imports,
|
|
358
|
+
/** Origins some base in this same file already resolves to — see `client-base.ts`'s header. */
|
|
359
|
+
knownOrigins = NO_KNOWN_ORIGINS) {
|
|
245
360
|
if (!importsRequestPackage(imports))
|
|
246
361
|
return { calls: [], refusals: [] };
|
|
247
362
|
const calls = [];
|
|
248
363
|
const refusals = [];
|
|
249
|
-
const { verified, ambiguous } = clientNames(root, imports);
|
|
364
|
+
const { verified, ambiguous, bases } = clientNames(root, imports);
|
|
365
|
+
const constants = stringConstantsIn(root);
|
|
366
|
+
/**
|
|
367
|
+
* DEC-164's 08c, and the one narrow exception to DEC-113: an origin some
|
|
368
|
+
* base in this same file resolves to is an origin this program treats as
|
|
369
|
+
* its own API. A bare origin with no path is not an endpoint anything
|
|
370
|
+
* serves.
|
|
371
|
+
*/
|
|
372
|
+
const pathAtKnownOrigin = (literal) => {
|
|
373
|
+
const origin = originOf(literal);
|
|
374
|
+
if (origin === undefined || !knownOrigins.has(origin))
|
|
375
|
+
return undefined;
|
|
376
|
+
const cut = literal.indexOf("?");
|
|
377
|
+
const path = pathPrefixOf(cut === -1 ? literal : literal.slice(0, cut));
|
|
378
|
+
return path === undefined || path === "" ? undefined : path;
|
|
379
|
+
};
|
|
250
380
|
// Replaced, not merged, on entering a nested `function_declaration`: the
|
|
251
381
|
// innermost function's parameters are what "varies-per-call" means inside it
|
|
252
382
|
// (same scoping as every other language's diagnoseArgument). A name closed
|
|
253
383
|
// over from an outer function is an ordinary capture, not a parameter.
|
|
254
|
-
const visit = (node, parameterNames) => {
|
|
384
|
+
const visit = (node, parameterNames, owner) => {
|
|
255
385
|
const scoped = node.type === "function_declaration" ? parameterNamesOf(node) : parameterNames;
|
|
386
|
+
const scopedOwner = node.type === "class_declaration" || node.type === "object_declaration"
|
|
387
|
+
? `${owner}${owner === "" ? "" : "."}${firstOfType(node, "type_identifier")?.text ?? ""}`
|
|
388
|
+
: owner;
|
|
256
389
|
const call = verbCallOf(node);
|
|
257
390
|
if (call !== undefined) {
|
|
258
391
|
const method = VERBS.get(call.verb);
|
|
@@ -268,7 +401,7 @@ export function readKtorClientCalls(root, imports) {
|
|
|
268
401
|
});
|
|
269
402
|
}
|
|
270
403
|
else if (verified.has(call.receiver)) {
|
|
271
|
-
readVerified(call, method, scoped);
|
|
404
|
+
readVerified(call, method, scoped, scopedOwner);
|
|
272
405
|
}
|
|
273
406
|
// Neither verified nor ambiguous: no visible client, no ledger row.
|
|
274
407
|
// `x.get(...)` is overwhelmingly a map lookup or test client; filing
|
|
@@ -276,11 +409,50 @@ export function readKtorClientCalls(root, imports) {
|
|
|
276
409
|
}
|
|
277
410
|
}
|
|
278
411
|
for (const child of namedChildren(node))
|
|
279
|
-
visit(child, scoped);
|
|
412
|
+
visit(child, scoped, scopedOwner);
|
|
280
413
|
};
|
|
281
|
-
|
|
414
|
+
/**
|
|
415
|
+
* The base site for `receiver` as seen from `owner` — the enclosing class
|
|
416
|
+
* first, then each enclosing scope out to the file. A top-level `val` is
|
|
417
|
+
* visible to every class in the file; another class's property is not.
|
|
418
|
+
*/
|
|
419
|
+
function baseSiteFor(owner, receiver) {
|
|
420
|
+
let scope = owner;
|
|
421
|
+
for (;;) {
|
|
422
|
+
const site = bases.get(`${scope}::${receiver}`);
|
|
423
|
+
if (site !== undefined)
|
|
424
|
+
return site;
|
|
425
|
+
if (scope === "")
|
|
426
|
+
return undefined;
|
|
427
|
+
const cut = scope.lastIndexOf(".");
|
|
428
|
+
scope = cut === -1 ? "" : scope.slice(0, cut);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
function readVerified(call, method, parameterNames, owner) {
|
|
282
432
|
const raw = call.firstArg?.text ?? "";
|
|
283
433
|
const path = templateOf(call.firstArg);
|
|
434
|
+
// DEC-164: the base configured on this receiver, resolved against the
|
|
435
|
+
// file's own constants. `undefined` is the fourth state — a construction
|
|
436
|
+
// this reader never saw.
|
|
437
|
+
const site = baseSiteFor(owner, call.receiver);
|
|
438
|
+
const resolved = site === undefined ? undefined : resolveBaseSite(site, constants);
|
|
439
|
+
const clientBase = resolved?.base;
|
|
440
|
+
const carry = clientBase === undefined ? {} : { clientBase };
|
|
441
|
+
if (clientBase?.state === "unresolved" && path !== undefined) {
|
|
442
|
+
// DEC-164 §2: a base injected from outside the readable source cannot be
|
|
443
|
+
// composed and must not be guessed. No edge, and the row names BOTH
|
|
444
|
+
// halves — the blocking expression and the call's own path.
|
|
445
|
+
refusals.push({
|
|
446
|
+
rawTarget: path.slice(0, 80),
|
|
447
|
+
reason: `an HTTP call whose base this reader traced to \`${clientBase.why}\` and could not read as a ` +
|
|
448
|
+
`string literal. DEC-164 refuses rather than guesses what an unreadable base composes to.`,
|
|
449
|
+
line: call.line,
|
|
450
|
+
...diagnoseArgument(clientBase.why, parameterNames),
|
|
451
|
+
clientBase,
|
|
452
|
+
callPath: path.startsWith("/") ? path : `/${path}`,
|
|
453
|
+
});
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
284
456
|
if (path === undefined) {
|
|
285
457
|
refusals.push({
|
|
286
458
|
rawTarget: raw.slice(0, 80) || `${call.receiver}.${call.verb}`,
|
|
@@ -292,6 +464,11 @@ export function readKtorClientCalls(root, imports) {
|
|
|
292
464
|
return;
|
|
293
465
|
}
|
|
294
466
|
if (/^[a-zA-Z][\w+.-]*:\/\//.test(path)) {
|
|
467
|
+
const under = pathAtKnownOrigin(path);
|
|
468
|
+
if (under !== undefined) {
|
|
469
|
+
calls.push({ method, path: under, rawPath: raw, client: `${call.receiver}.${call.verb}`, line: call.line, ...carry });
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
295
472
|
refusals.push({
|
|
296
473
|
rawTarget: path.slice(0, 80),
|
|
297
474
|
reason: "an HTTP call to an absolute URL, which names a host this repository does not serve. Refused " +
|
|
@@ -303,17 +480,34 @@ export function readKtorClientCalls(root, imports) {
|
|
|
303
480
|
return;
|
|
304
481
|
}
|
|
305
482
|
if (!path.startsWith("/")) {
|
|
483
|
+
// DEC-164: a base this reader DID read turns this path from an
|
|
484
|
+
// unservable one into a composed one. Ktor resolves `url(base)` by RFC
|
|
485
|
+
// 3986, so the two are joined under exactly one separator whichever way
|
|
486
|
+
// each was spelled.
|
|
487
|
+
if (clientBase?.state === "resolved") {
|
|
488
|
+
calls.push({
|
|
489
|
+
method,
|
|
490
|
+
path: `${clientBase.path}/${path.replace(/^\/+/, "")}`,
|
|
491
|
+
rawPath: raw,
|
|
492
|
+
client: `${call.receiver}.${call.verb}`,
|
|
493
|
+
line: call.line,
|
|
494
|
+
...carry,
|
|
495
|
+
...(resolved?.origin === undefined ? {} : { baseOrigin: resolved.origin }),
|
|
496
|
+
});
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
306
499
|
refusals.push({
|
|
307
500
|
rawTarget: path.slice(0, 80),
|
|
308
501
|
reason: "an HTTP call whose path is not repository-relative, so no route on this side of the join serves it.",
|
|
309
502
|
line: call.line,
|
|
310
503
|
...CAPABILITY_GAP,
|
|
504
|
+
...carry,
|
|
311
505
|
});
|
|
312
506
|
return;
|
|
313
507
|
}
|
|
314
|
-
calls.push({ method, path, rawPath: raw, client: `${call.receiver}.${call.verb}`, line: call.line });
|
|
508
|
+
calls.push({ method, path, rawPath: raw, client: `${call.receiver}.${call.verb}`, line: call.line, ...carry });
|
|
315
509
|
}
|
|
316
|
-
visit(root, new Set());
|
|
510
|
+
visit(root, new Set(), "");
|
|
317
511
|
return { calls, refusals };
|
|
318
512
|
}
|
|
319
513
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dependency boundary, Kotlin side.
|
|
3
|
+
*
|
|
4
|
+
* `client.get(url)` on an `io.ktor.client.HttpClient`, or `Json.encodeToString(x)`
|
|
5
|
+
* on `kotlinx.serialization.json.Json`, leaves the repository. Today that becomes
|
|
6
|
+
* a ledger row saying there is no declaration for the name in the analysed set,
|
|
7
|
+
* and the call graph stops. This module answers the one question that turns the
|
|
8
|
+
* boundary into a fact the graph can hold: **which package, and which symbol in
|
|
9
|
+
* it.**
|
|
10
|
+
*
|
|
11
|
+
* ## The rule everything here rests on: attribute only from a binding the
|
|
12
|
+
* developer wrote
|
|
13
|
+
*
|
|
14
|
+
* In Go (`adapter-go/src/external.ts`, the model for all of these) that binding
|
|
15
|
+
* is the file's own `import` block. Kotlin's is the same statement — and Kotlin
|
|
16
|
+
* makes it stricter than Java does, which is why this file is shorter than
|
|
17
|
+
* `adapter-java/src/external.ts`:
|
|
18
|
+
*
|
|
19
|
+
* - **A Kotlin import names a symbol, not only a type.** `import
|
|
20
|
+
* io.ktor.server.request.receive` imports an extension function; `import
|
|
21
|
+
* okhttp3.Request` imports a class; `import kotlin.test.assertEquals`
|
|
22
|
+
* imports a top-level function. All three are the same statement and all
|
|
23
|
+
* three bind one local name.
|
|
24
|
+
* - **There is no inline fully-qualified fallback here.** Java attributes
|
|
25
|
+
* `java.util.List` written out at the reference, because Java code writes
|
|
26
|
+
* FQNs inline often enough to be worth the naming-convention rule it takes
|
|
27
|
+
* to read one. Kotlin's `parse.ts` reports a receiver as a written *name*
|
|
28
|
+
* and a dotted path is a value traversal far more often than a package, so
|
|
29
|
+
* the same rule would buy little and cost precision. Only an import is read.
|
|
30
|
+
*
|
|
31
|
+
* Nothing here reads a Gradle configuration, a resolved classpath, `~/.m2` or a
|
|
32
|
+
* jar. Two reasons, the same two Go gives: most checkouts have no dependencies
|
|
33
|
+
* fetched, and an identity taken from a resolved classpath would *move* the
|
|
34
|
+
* first time somebody ran a build.
|
|
35
|
+
*
|
|
36
|
+
* ## Where the package ends and the symbol begins
|
|
37
|
+
*
|
|
38
|
+
* Java's `external.ts` cuts a fully-qualified name at its first capitalised
|
|
39
|
+
* segment, which works because a Java import always ends at a type. **A Kotlin
|
|
40
|
+
* import does not**: `io.ktor.server.request.receive` has no capitalised segment
|
|
41
|
+
* at all. So the cut here is the import statement's own structure first — the
|
|
42
|
+
* last segment is the imported symbol, the rest is where it lives — and the
|
|
43
|
+
* capitalisation rule only refines it, to keep a nested symbol
|
|
44
|
+
* (`okhttp3.Headers.Companion.of`) attached to the type that owns it rather than
|
|
45
|
+
* turned into three package segments.
|
|
46
|
+
*
|
|
47
|
+
* ## The refusals, and what each costs
|
|
48
|
+
*
|
|
49
|
+
* - **A wildcard import binds no name.** `import io.ktor.util.*` then
|
|
50
|
+
* `escapeHTML()` could come from that package or any other wildcard in the
|
|
51
|
+
* file. Python's `from x import *` refusal, for the same reason.
|
|
52
|
+
* - **Kotlin's default imports are never written.** `List`, `println`,
|
|
53
|
+
* `String`, `require` arrive with no import statement anywhere, because the
|
|
54
|
+
* compiler imports `kotlin.*`, `kotlin.collections.*`, `kotlin.io.*` and
|
|
55
|
+
* `java.lang.*` into every file. A language rule filling a silence is not a
|
|
56
|
+
* binding a developer wrote, and this is the single largest recall cost here.
|
|
57
|
+
* - **A symbol under one of the repository's own packages is ours**, analysed
|
|
58
|
+
* or not. Unanalysed code of ours is still ours.
|
|
59
|
+
* - **The reflection packages are declined** — see `DYNAMIC_DISPATCH_PACKAGES`.
|
|
60
|
+
*
|
|
61
|
+
* **Everything this module does not attribute is a deliberate refusal.** Rule 2
|
|
62
|
+
* prices a wrong edge far above a missing one.
|
|
63
|
+
*/
|
|
64
|
+
/** What one written name was bound by. Only an import is a binding a developer
|
|
65
|
+
* wrote; a default import and a wildcard are language rules filling a silence. */
|
|
66
|
+
export type Binding = "import" | "import-alias";
|
|
67
|
+
export interface ExternalContext {
|
|
68
|
+
/** This file's own non-wildcard imports: local name -> the full import path. */
|
|
69
|
+
readonly imports: ReadonlyMap<string, {
|
|
70
|
+
readonly path: string;
|
|
71
|
+
readonly aliased: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Packages declared by the repository's own files. A symbol under one of them
|
|
75
|
+
* is OURS whether or not this run read it — calling unanalysed code of ours a
|
|
76
|
+
* dependency is the error that never surfaces.
|
|
77
|
+
*/
|
|
78
|
+
readonly ownPackages: ReadonlySet<string>;
|
|
79
|
+
}
|
|
80
|
+
export interface ExternalAttribution {
|
|
81
|
+
/** The package **as written in the import statement** — this is the identity. */
|
|
82
|
+
readonly moduleOrNamespace: string;
|
|
83
|
+
/** The symbol, and any member named on it. Never the local alias. */
|
|
84
|
+
readonly symbolPath: readonly string[];
|
|
85
|
+
readonly binding: Binding;
|
|
86
|
+
/**
|
|
87
|
+
* From a jar rather than the Kotlin standard library or the JDK, decided from
|
|
88
|
+
* the package name alone against `PLATFORM_BASIS`. Disclosure only — it never
|
|
89
|
+
* enters the node id, because a package that moved between the two would
|
|
90
|
+
* otherwise change identity with no line of source changing.
|
|
91
|
+
*/
|
|
92
|
+
readonly thirdParty: boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Provenance of the platform-package list, carried on every attributed node. A
|
|
96
|
+
* property of the language and its JDK, frozen into this source — never read
|
|
97
|
+
* from whatever toolchain a developer happens to have installed.
|
|
98
|
+
*
|
|
99
|
+
* `kotlinx` is deliberately **not** here: `kotlinx.coroutines` and
|
|
100
|
+
* `kotlinx.serialization` are separately released libraries, not the standard
|
|
101
|
+
* library, and calling them platform would be a wrong disclosure on thousands
|
|
102
|
+
* of nodes. `javax` is split for the same reason `adapter-java` splits it.
|
|
103
|
+
*/
|
|
104
|
+
export declare const PLATFORM_BASIS = "kotlin-2 stdlib (kotlin.) plus jdk-21 java./jdk./sun./com.sun. roots and the JDK's own javax subpackages";
|
|
105
|
+
/**
|
|
106
|
+
* An import path split into the package that holds it and the symbol chain
|
|
107
|
+
* inside that package.
|
|
108
|
+
*
|
|
109
|
+
* The import statement settles the coarse split by itself — the last segment is
|
|
110
|
+
* the symbol — and the capitalisation rule refines it so a nested symbol stays
|
|
111
|
+
* attached to the type that owns it:
|
|
112
|
+
*
|
|
113
|
+
* `okhttp3.Request` -> `okhttp3` + `Request`
|
|
114
|
+
* `io.ktor.server.request.receive` -> `io.ktor.server.request` + `receive`
|
|
115
|
+
* `okhttp3.Headers.Companion.of` -> `okhttp3` + `Headers.Companion.of`
|
|
116
|
+
*
|
|
117
|
+
* `null` when the path names no package at all (a single segment), which an
|
|
118
|
+
* import of a dependency's symbol never is.
|
|
119
|
+
*/
|
|
120
|
+
export declare function splitImportPath(path: string): {
|
|
121
|
+
pkg: string;
|
|
122
|
+
symbols: string[];
|
|
123
|
+
} | null;
|
|
124
|
+
/**
|
|
125
|
+
* The package and symbol behind a name that left the repository, or `null` when
|
|
126
|
+
* no import the developer wrote binds it.
|
|
127
|
+
*
|
|
128
|
+
* `written` is the local name at the reference — a type name, a receiver, or a
|
|
129
|
+
* bare callee. `extra` is whatever was named on it: `["get"]` for a method call
|
|
130
|
+
* on an imported type, empty for a type reference.
|
|
131
|
+
*/
|
|
132
|
+
export declare function attributeExternal(written: string, extra: readonly string[], context: ExternalContext): ExternalAttribution | null;
|
|
133
|
+
/**
|
|
134
|
+
* This file's non-wildcard imports, as `attributeExternal` reads them.
|
|
135
|
+
*
|
|
136
|
+
* A wildcard is dropped: it names a package and binds no local name, so there
|
|
137
|
+
* is no written binding to read. A name bound twice by two different statements
|
|
138
|
+
* is dropped outright — which import wins is a question the source did not
|
|
139
|
+
* answer here, and Python's conditional-import refusal is the same call.
|
|
140
|
+
*/
|
|
141
|
+
export declare function externalImportTable(imports: readonly {
|
|
142
|
+
readonly path: string;
|
|
143
|
+
readonly isWildcard: boolean;
|
|
144
|
+
readonly alias: string | undefined;
|
|
145
|
+
}[]): ReadonlyMap<string, {
|
|
146
|
+
path: string;
|
|
147
|
+
aliased: boolean;
|
|
148
|
+
}>;
|
|
149
|
+
//# sourceMappingURL=external.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH;mFACmF;AACnF,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,6GACiF,CAAC;AAiD7G;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAWvF;AASD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,IAAI,CA4B5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,GAC9G,WAAW,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAkBzD"}
|