carrick 0.3.70 → 0.3.73
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/README.md +10 -2
- package/bin/carrick.mjs +4 -1
- package/dist/contract.d.ts +3 -0
- package/dist/contract.js.map +1 -1
- package/dist/init/doctor.d.ts +3 -1
- package/dist/init/doctor.js +33 -6
- package/dist/init/doctor.js.map +1 -1
- package/dist/init/install-id.d.ts +32 -0
- package/dist/init/install-id.js +118 -0
- package/dist/init/install-id.js.map +1 -0
- package/dist/init/mcp.d.ts +59 -5
- package/dist/init/mcp.js +133 -27
- package/dist/init/mcp.js.map +1 -1
- package/dist/init/remove.d.ts +4 -0
- package/dist/init/remove.js +26 -5
- package/dist/init/remove.js.map +1 -1
- package/dist/init/run.d.ts +8 -0
- package/dist/init/run.js +20 -2
- package/dist/init/run.js.map +1 -1
- package/dist/native.d.ts +25 -5
- package/dist/native.js +41 -10
- package/dist/native.js.map +1 -1
- package/dist/render.js +7 -2
- package/dist/render.js.map +1 -1
- package/package.json +6 -6
- package/sidecar/dist/src/capture/anchors.d.ts +15 -0
- package/sidecar/dist/src/capture/anchors.js +70 -5
- package/sidecar/dist/src/capture/api.d.ts +43 -4
- package/sidecar/dist/src/capture/check-classify.d.ts +2 -0
- package/sidecar/dist/src/capture/check-classify.js +28 -0
- package/sidecar/dist/src/capture/check-deep.js +1 -1
- package/sidecar/dist/src/capture/check-probe.d.ts +1 -1
- package/sidecar/dist/src/capture/check-probe.js +16 -0
- package/sidecar/dist/src/capture/deep-walk.d.ts +33 -6
- package/sidecar/dist/src/capture/deep-walk.js +81 -28
- package/sidecar/dist/src/capture/index.js +16 -6
- package/sidecar/dist/src/capture/installed-package.d.ts +58 -0
- package/sidecar/dist/src/capture/installed-package.js +311 -0
- package/sidecar/dist/src/capture/lockfile.d.ts +8 -0
- package/sidecar/dist/src/capture/lockfile.js +1 -1
- package/sidecar/dist/src/capture/node-builder.d.ts +27 -0
- package/sidecar/dist/src/capture/node-builder.js +107 -1
- package/sidecar/dist/src/capture/paths-rewrite.d.ts +23 -6
- package/sidecar/dist/src/capture/paths-rewrite.js +43 -11
- package/sidecar/dist/src/capture/self-check.js +12 -3
- package/sidecar/dist/src/capture/unresolved.d.ts +28 -0
- package/sidecar/dist/src/capture/unresolved.js +107 -0
- package/sidecar/dist/src/type-inferrer.d.ts +227 -30
- package/sidecar/dist/src/type-inferrer.js +926 -144
- package/sidecar/dist/src/type-structural-expander.d.ts +53 -3
- package/sidecar/dist/src/type-structural-expander.js +108 -19
- package/sidecar/dist/src/type-text-canonicalizer.d.ts +14 -0
- package/sidecar/dist/src/type-text-canonicalizer.js +23 -2
- package/sidecar/dist/src/validators.d.ts +10 -0
- package/sidecar/dist/src/validators.js +1 -0
package/dist/native.d.ts
CHANGED
|
@@ -25,16 +25,36 @@ export type ResolveOptions = {
|
|
|
25
25
|
resolveManifest?: (specifier: string) => string;
|
|
26
26
|
exists?: (target: string) => boolean;
|
|
27
27
|
};
|
|
28
|
+
/** The one variable that points this package at a scanner binary of your own. */
|
|
29
|
+
export declare const BINARY_ENV = "CARRICK_BIN";
|
|
28
30
|
/**
|
|
29
31
|
* The scanner binary this machine should run.
|
|
30
32
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* CARRICK_BIN wins, so a developer can point the shipped CLI at a `cargo
|
|
34
|
+
* build` and the smokes can pin one. It is the same variable the hook, the
|
|
35
|
+
* language server and `--help` read, so every command a user types runs the
|
|
36
|
+
* same binary (carrick#1100: `index` and `status` used to read a second name
|
|
37
|
+
* and quietly ran the installed binary instead). Otherwise the platform
|
|
38
|
+
* package that npm installed carries it. A missing platform package is a
|
|
39
|
+
* message, not a crash: the caller decides whether that is fatal (running a
|
|
40
|
+
* scan) or merely silent (a hook that must never fail an edit).
|
|
41
|
+
*
|
|
42
|
+
* An override must name a file. A bare name would be looked up on PATH, and
|
|
43
|
+
* `carrick` on PATH is usually this shim, which would then run itself forever.
|
|
36
44
|
*/
|
|
37
45
|
export declare function resolveNativeBinary(options?: ResolveOptions): NativeLookup;
|
|
46
|
+
/** Ask a binary which version it is, or null when it does not say. */
|
|
47
|
+
export declare function binaryVersion(binary: string): string | null;
|
|
48
|
+
/**
|
|
49
|
+
* The line a command run through an overridden binary starts with, or null
|
|
50
|
+
* when nothing was overridden.
|
|
51
|
+
*
|
|
52
|
+
* An override that is set and forgotten, or set and not honoured, reads as a
|
|
53
|
+
* defect in whichever build the reader thought was running (carrick#1100).
|
|
54
|
+
* Naming the file and the version it answers with makes the run say which
|
|
55
|
+
* binary it was before anyone reasons about what it did.
|
|
56
|
+
*/
|
|
57
|
+
export declare function overrideLine(lookup: NativeLookup, version?: (binary: string) => string | null): string | null;
|
|
38
58
|
/**
|
|
39
59
|
* The sidecar directory to hand the binary, or null when this checkout has
|
|
40
60
|
* none built. Null is not an error here: the binary's own discovery covers a
|
package/dist/native.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
// every platform, and it needs `ts-morph` and `zod` resolvable from where it
|
|
12
12
|
// sits. So it ships in THIS package, beside `node_modules/`, and the binary is
|
|
13
13
|
// told where it is with CARRICK_SIDECAR_DIR (src/main.rs reads it first).
|
|
14
|
+
import { spawnSync } from "node:child_process";
|
|
14
15
|
import fs from "node:fs";
|
|
15
16
|
import path from "node:path";
|
|
16
17
|
import { createRequire } from "node:module";
|
|
@@ -48,19 +49,27 @@ function defaultExists(target) {
|
|
|
48
49
|
return false;
|
|
49
50
|
}
|
|
50
51
|
}
|
|
52
|
+
/** The one variable that points this package at a scanner binary of your own. */
|
|
53
|
+
export const BINARY_ENV = "CARRICK_BIN";
|
|
51
54
|
/**
|
|
52
55
|
* The scanner binary this machine should run.
|
|
53
56
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
57
|
+
* CARRICK_BIN wins, so a developer can point the shipped CLI at a `cargo
|
|
58
|
+
* build` and the smokes can pin one. It is the same variable the hook, the
|
|
59
|
+
* language server and `--help` read, so every command a user types runs the
|
|
60
|
+
* same binary (carrick#1100: `index` and `status` used to read a second name
|
|
61
|
+
* and quietly ran the installed binary instead). Otherwise the platform
|
|
62
|
+
* package that npm installed carries it. A missing platform package is a
|
|
63
|
+
* message, not a crash: the caller decides whether that is fatal (running a
|
|
64
|
+
* scan) or merely silent (a hook that must never fail an edit).
|
|
65
|
+
*
|
|
66
|
+
* An override must name a file. A bare name would be looked up on PATH, and
|
|
67
|
+
* `carrick` on PATH is usually this shim, which would then run itself forever.
|
|
59
68
|
*/
|
|
60
69
|
export function resolveNativeBinary(options = {}) {
|
|
61
70
|
const env = options.env ?? process.env;
|
|
62
71
|
const exists = options.exists ?? defaultExists;
|
|
63
|
-
const override = env[
|
|
72
|
+
const override = env[BINARY_ENV];
|
|
64
73
|
if (override) {
|
|
65
74
|
if (exists(override)) {
|
|
66
75
|
return { binary: override, problem: null, source: "env" };
|
|
@@ -68,7 +77,7 @@ export function resolveNativeBinary(options = {}) {
|
|
|
68
77
|
return {
|
|
69
78
|
binary: null,
|
|
70
79
|
source: "env",
|
|
71
|
-
problem:
|
|
80
|
+
problem: `${BINARY_ENV} is set to ${override}, which is not a file on this machine.`,
|
|
72
81
|
};
|
|
73
82
|
}
|
|
74
83
|
const platform = options.platform ?? process.platform;
|
|
@@ -85,8 +94,8 @@ export function resolveNativeBinary(options = {}) {
|
|
|
85
94
|
binary: null,
|
|
86
95
|
source: "none",
|
|
87
96
|
problem: supported
|
|
88
|
-
? `The carrick binary for ${platform}-${arch} is not installed. It ships as ${specifier}, an optional dependency of this package. Reinstall with 'npm install carrick', or set
|
|
89
|
-
: `Carrick publishes no binary for ${platform}-${arch}. Supported: ${PLATFORMS.map((entry) => `${entry.platform}-${entry.arch}`).join(", ")}. Set
|
|
97
|
+
? `The carrick binary for ${platform}-${arch} is not installed. It ships as ${specifier}, an optional dependency of this package. Reinstall with 'npm install carrick', or set ${BINARY_ENV} to a binary you built.`
|
|
98
|
+
: `Carrick publishes no binary for ${platform}-${arch}. Supported: ${PLATFORMS.map((entry) => `${entry.platform}-${entry.arch}`).join(", ")}. Set ${BINARY_ENV} to a binary you built to use it anyway.`,
|
|
90
99
|
};
|
|
91
100
|
}
|
|
92
101
|
const binary = path.join(path.dirname(manifest), "bin", binaryName(platform));
|
|
@@ -94,11 +103,33 @@ export function resolveNativeBinary(options = {}) {
|
|
|
94
103
|
return {
|
|
95
104
|
binary: null,
|
|
96
105
|
source: "none",
|
|
97
|
-
problem: `${specifier} is installed but holds no binary at ${binary}. Reinstall it, or set
|
|
106
|
+
problem: `${specifier} is installed but holds no binary at ${binary}. Reinstall it, or set ${BINARY_ENV}.`,
|
|
98
107
|
};
|
|
99
108
|
}
|
|
100
109
|
return { binary, problem: null, source: "platform_package" };
|
|
101
110
|
}
|
|
111
|
+
/** Ask a binary which version it is, or null when it does not say. */
|
|
112
|
+
export function binaryVersion(binary) {
|
|
113
|
+
const answer = spawnSync(binary, ["--version"], { encoding: "utf8", timeout: 5000 });
|
|
114
|
+
if (answer.status !== 0 || typeof answer.stdout !== "string")
|
|
115
|
+
return null;
|
|
116
|
+
return answer.stdout.trim() || null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The line a command run through an overridden binary starts with, or null
|
|
120
|
+
* when nothing was overridden.
|
|
121
|
+
*
|
|
122
|
+
* An override that is set and forgotten, or set and not honoured, reads as a
|
|
123
|
+
* defect in whichever build the reader thought was running (carrick#1100).
|
|
124
|
+
* Naming the file and the version it answers with makes the run say which
|
|
125
|
+
* binary it was before anyone reasons about what it did.
|
|
126
|
+
*/
|
|
127
|
+
export function overrideLine(lookup, version = binaryVersion) {
|
|
128
|
+
if (lookup.source !== "env" || !lookup.binary)
|
|
129
|
+
return null;
|
|
130
|
+
const answered = version(lookup.binary);
|
|
131
|
+
return `carrick: running ${lookup.binary} (${answered ?? "version unknown"}), set by ${BINARY_ENV}`;
|
|
132
|
+
}
|
|
102
133
|
/**
|
|
103
134
|
* The sidecar directory to hand the binary, or null when this checkout has
|
|
104
135
|
* none built. Null is not an error here: the binary's own discovery covers a
|
package/dist/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,sCAAsC;AACtC,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAE1E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,oDAAoD;AACpD,MAAM,UAAU,eAAe,CAC7B,WAAmB,OAAO,CAAC,QAAQ,EACnC,OAAe,OAAO,CAAC,IAAI;IAE3B,OAAO,sBAAsB,QAAQ,IAAI,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,SAAS,GAA8C;IAClE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IACrC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACnC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;IAClC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IACpC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;CACnC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,WAAmB,OAAO,CAAC,QAAQ;IAC5D,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAoBD,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,4EAA4E;IAC5E,oDAAoD;IACpD,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/render.js
CHANGED
|
@@ -392,12 +392,17 @@ export function runningScanLine(scan) {
|
|
|
392
392
|
: "";
|
|
393
393
|
const where = scan.phase ? `: ${scan.phase}` : "";
|
|
394
394
|
if (scan.status === "failed") {
|
|
395
|
-
|
|
395
|
+
// The error's first line is the reason; the lines after it are an excerpt
|
|
396
|
+
// of the scan's own log, which is for the log's reader, not a session
|
|
397
|
+
// start (carrick#1103).
|
|
398
|
+
const reason = scan.error?.split("\n").find((line) => line.trim())?.trim();
|
|
399
|
+
return `- scan ${scan.scan_id} failed${reason ? `: ${reason}` : ""}`;
|
|
396
400
|
}
|
|
397
401
|
if (scan.status === "finished") {
|
|
398
402
|
return `- scan ${scan.scan_id} finished${scan.infer ? ", paid" : ""}. The index is written.`;
|
|
399
403
|
}
|
|
400
|
-
|
|
404
|
+
const slow = scan.notice ? ` (${scan.notice})` : "";
|
|
405
|
+
return `- scan ${scan.scan_id} is running${where}${counts}${slow}. Its output is in .carrick/scan-${scan.scan_id}.log`;
|
|
401
406
|
}
|
|
402
407
|
/**
|
|
403
408
|
* One line per repo, for the files no service in it reads: a workflow, a
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.73",
|
|
4
4
|
"description": "The API contract index for a TypeScript workspace: what the other services do with the routes and calls in the file you are editing, in your editor and in your agent's context",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
"zod": "^3.23.0"
|
|
58
58
|
},
|
|
59
59
|
"optionalDependencies": {
|
|
60
|
-
"@carrick-tools/cli-darwin-arm64": "0.3.
|
|
61
|
-
"@carrick-tools/cli-darwin-x64": "0.3.
|
|
62
|
-
"@carrick-tools/cli-linux-arm64": "0.3.
|
|
63
|
-
"@carrick-tools/cli-linux-x64": "0.3.
|
|
64
|
-
"@carrick-tools/cli-win32-x64": "0.3.
|
|
60
|
+
"@carrick-tools/cli-darwin-arm64": "0.3.73",
|
|
61
|
+
"@carrick-tools/cli-darwin-x64": "0.3.73",
|
|
62
|
+
"@carrick-tools/cli-linux-arm64": "0.3.73",
|
|
63
|
+
"@carrick-tools/cli-linux-x64": "0.3.73",
|
|
64
|
+
"@carrick-tools/cli-win32-x64": "0.3.73"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/node": "^24.13.3",
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import ts from 'typescript';
|
|
8
8
|
import type { CaptureAnchorRequest, InferAnchorRequest } from './api.js';
|
|
9
|
+
import type { UnresolvedAtAnchor } from './deep-walk.js';
|
|
9
10
|
export interface ResolvedAnchor {
|
|
10
11
|
request: CaptureAnchorRequest;
|
|
11
12
|
/** RHS of `export type <alias> = ...;` in the surface entry. */
|
|
@@ -34,6 +35,20 @@ export interface ResolvedAnchor {
|
|
|
34
35
|
* backfillable; the reason rides `self_check_detail` instead.
|
|
35
36
|
*/
|
|
36
37
|
abstainReason?: string;
|
|
38
|
+
/**
|
|
39
|
+
* carrick#1165: identifiers the alias text names (a literal anchor's text
|
|
40
|
+
* or a node-builder print) that nothing in the producer's program declares.
|
|
41
|
+
* Recorded on the capture record as `undeclared_names`.
|
|
42
|
+
*/
|
|
43
|
+
undeclaredNames?: string[];
|
|
44
|
+
/**
|
|
45
|
+
* carrick#1164: member paths the SOURCE program could not resolve, and the
|
|
46
|
+
* unresolved imports the anchor's file reaches. Printed into the surface
|
|
47
|
+
* those members read `any`, like an author's `any`; the self-check uses this
|
|
48
|
+
* to label them `unresolved_import` instead of `declared`. Absent when the
|
|
49
|
+
* anchor's type holds no unresolved placeholder.
|
|
50
|
+
*/
|
|
51
|
+
unresolved?: UnresolvedAtAnchor;
|
|
37
52
|
}
|
|
38
53
|
/** Repo-root-relative source file -> extensionless specifier from entryDir. */
|
|
39
54
|
export declare function entryRelativeSpecifier(entryDir: string, repoRoot: string, sourceFile: string): string;
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import ts from 'typescript';
|
|
8
8
|
import * as path from 'node:path';
|
|
9
|
-
import { printTypeForDestination } from './node-builder.js';
|
|
9
|
+
import { printTypeForDestination, undeclaredNamesIn } from './node-builder.js';
|
|
10
10
|
import { typeIsOrContainsMachinery } from './machinery.js';
|
|
11
|
+
import { unresolvedAtAnchor } from './unresolved.js';
|
|
11
12
|
/** Repo-root-relative source file -> extensionless specifier from entryDir. */
|
|
12
13
|
export function entryRelativeSpecifier(entryDir, repoRoot, sourceFile) {
|
|
13
14
|
const target = path
|
|
@@ -48,6 +49,14 @@ export function resolveAnchor(program, request, args) {
|
|
|
48
49
|
const siblingSpec = bareIdentifier
|
|
49
50
|
? args.siblingSymbolSpecs?.get(text)
|
|
50
51
|
: undefined;
|
|
52
|
+
// carrick#1165: literal text is printed elsewhere (the v1 walk) and can
|
|
53
|
+
// name a type by a bare identifier that nothing in the program declares
|
|
54
|
+
// (a generated model that was never generated). The stub then self-checks
|
|
55
|
+
// such a name as an error placeholder, which no walk flags. A name a
|
|
56
|
+
// sibling symbol anchor imports is resolved by that import.
|
|
57
|
+
const undeclaredNames = siblingSpec || !args.placeholder
|
|
58
|
+
? []
|
|
59
|
+
: undeclaredNamesInText(text, program, args.placeholder);
|
|
51
60
|
return {
|
|
52
61
|
request,
|
|
53
62
|
aliasText: siblingSpec ? `import('${siblingSpec}').${text}` : text,
|
|
@@ -57,6 +66,7 @@ export function resolveAnchor(program, request, args) {
|
|
|
57
66
|
// them at this tier so the legacy dependence stays measurable and
|
|
58
67
|
// ratchetable. Demotions are distinguished by failureReason.
|
|
59
68
|
serialization: 'structural_fallback',
|
|
69
|
+
...(undeclaredNames.length > 0 ? { undeclaredNames } : {}),
|
|
60
70
|
};
|
|
61
71
|
}
|
|
62
72
|
const sourceAbs = path.join(args.repoRoot, request.source_file);
|
|
@@ -100,10 +110,14 @@ export function resolveAnchor(program, request, args) {
|
|
|
100
110
|
`and no sibling type alias derives from it (e.g. \`typeof ${request.symbol_name}\`); ` +
|
|
101
111
|
'demoted so the surface line stays valid');
|
|
102
112
|
}
|
|
113
|
+
const arrayDepth = Math.max(0, request.array_depth ?? 0);
|
|
114
|
+
const declared = checker.getDeclaredTypeOfSymbol(resolvedExport);
|
|
115
|
+
const unresolved = unresolvedAtAnchor(program, sourceFile, declared, resolvedExport.declarations?.[0] ?? sourceFile, '<0>'.repeat(arrayDepth));
|
|
103
116
|
return {
|
|
104
117
|
request,
|
|
105
118
|
aliasText: `import('${spec}').${request.symbol_name}${arraySuffix}`,
|
|
106
119
|
serialization: 'emitted',
|
|
120
|
+
...(unresolved ? { unresolved } : {}),
|
|
107
121
|
};
|
|
108
122
|
}
|
|
109
123
|
if (request.kind === 'handler_return') {
|
|
@@ -126,10 +140,13 @@ export function resolveAnchor(program, request, args) {
|
|
|
126
140
|
// Type parameters erase to their constraint/unknown under ReturnType<>.
|
|
127
141
|
return demote(`handler '${request.symbol_name}' is generic`);
|
|
128
142
|
}
|
|
143
|
+
const returned = callSignatures[0].getReturnType();
|
|
144
|
+
const unresolved = unresolvedAtAnchor(program, sourceFile, checker.getAwaitedType(returned) ?? returned, declaration ?? sourceFile);
|
|
129
145
|
return {
|
|
130
146
|
request,
|
|
131
147
|
aliasText: `Awaited<ReturnType<typeof import('${spec}').${request.symbol_name}>>`,
|
|
132
148
|
serialization: 'emitted',
|
|
149
|
+
...(unresolved ? { unresolved } : {}),
|
|
133
150
|
};
|
|
134
151
|
}
|
|
135
152
|
// kind === 'infer'
|
|
@@ -151,6 +168,10 @@ export function resolveAnchor(program, request, args) {
|
|
|
151
168
|
if (!located) {
|
|
152
169
|
return demote(locatorFailureReason(request));
|
|
153
170
|
}
|
|
171
|
+
// carrick#1162: a serialised body is the JSON of its argument. The call's own
|
|
172
|
+
// `string` result is never the payload's contract, and publishing it reads
|
|
173
|
+
// incompatible against every object-typed counterparty.
|
|
174
|
+
located = serialisedArgument(located);
|
|
154
175
|
// #439 part 1: a producer anchor whose locator landed inside a fluent
|
|
155
176
|
// builder chain's config-descriptor argument (an all-literal metadata
|
|
156
177
|
// object) must never capture that descriptor as the request type. Re-aim at
|
|
@@ -255,13 +276,24 @@ function finishInferAnchor(program, sourceFile, request, located, placeholder, r
|
|
|
255
276
|
if (!printed.text) {
|
|
256
277
|
return demote(printed.failure ?? 'node builder print failed');
|
|
257
278
|
}
|
|
279
|
+
const unresolved = unresolvedAtAnchor(program, sourceFile, type, located);
|
|
258
280
|
return {
|
|
259
281
|
request,
|
|
260
282
|
aliasText: printed.text,
|
|
261
283
|
serialization: 'node_builder',
|
|
262
284
|
...(reaimNote ? { reaimNote } : {}),
|
|
285
|
+
...(printed.undeclaredNames ? { undeclaredNames: printed.undeclaredNames } : {}),
|
|
286
|
+
...(unresolved ? { unresolved } : {}),
|
|
263
287
|
};
|
|
264
288
|
}
|
|
289
|
+
/** `undeclaredNamesIn` over type text rather than a built node. */
|
|
290
|
+
function undeclaredNamesInText(text, program, destination) {
|
|
291
|
+
const parsed = ts.createSourceFile('literal-anchor.ts', `type __LiteralAnchor = ${text};`, ts.ScriptTarget.Latest, true);
|
|
292
|
+
const statement = parsed.statements[0];
|
|
293
|
+
if (!statement || !ts.isTypeAliasDeclaration(statement))
|
|
294
|
+
return [];
|
|
295
|
+
return undeclaredNamesIn(statement.type, program, destination);
|
|
296
|
+
}
|
|
265
297
|
/**
|
|
266
298
|
* True when the anchor carries a LINE and nothing else — no payload span, no
|
|
267
299
|
* expression text, no parameter name. Such an anchor states where to look, not
|
|
@@ -689,6 +721,26 @@ function paramLocatorHints(request) {
|
|
|
689
721
|
? `line ${request.line_number}`
|
|
690
722
|
: 'no line hint';
|
|
691
723
|
}
|
|
724
|
+
/**
|
|
725
|
+
* The argument of a `JSON.stringify(value)` call (through parentheses), or the
|
|
726
|
+
* node unchanged. The mirror of the v1 inferrer's `unwrapJsonStringifyArg`:
|
|
727
|
+
* the global serialiser is identified by the standard `JSON` object, the one
|
|
728
|
+
* name every runtime shares.
|
|
729
|
+
*/
|
|
730
|
+
function serialisedArgument(node) {
|
|
731
|
+
let current = node;
|
|
732
|
+
while (ts.isParenthesizedExpression(current))
|
|
733
|
+
current = current.expression;
|
|
734
|
+
if (ts.isCallExpression(current) &&
|
|
735
|
+
current.arguments.length > 0 &&
|
|
736
|
+
ts.isPropertyAccessExpression(current.expression) &&
|
|
737
|
+
ts.isIdentifier(current.expression.expression) &&
|
|
738
|
+
current.expression.expression.text === 'JSON' &&
|
|
739
|
+
current.expression.name.text === 'stringify') {
|
|
740
|
+
return current.arguments[0];
|
|
741
|
+
}
|
|
742
|
+
return node;
|
|
743
|
+
}
|
|
692
744
|
function locatorFailureReason(request) {
|
|
693
745
|
const hints = [];
|
|
694
746
|
if (request.span_start !== undefined)
|
|
@@ -741,17 +793,30 @@ function tightestCoveringNode(sourceFile, start, end) {
|
|
|
741
793
|
visit(sourceFile);
|
|
742
794
|
return best;
|
|
743
795
|
}
|
|
796
|
+
/**
|
|
797
|
+
* Locator text with insignificant whitespace removed: runs collapse to one
|
|
798
|
+
* space, and a member chain broken before its dot (`client\n .list(…)`) reads
|
|
799
|
+
* as `client.list(…)` (carrick#1162), the same rule the v1 inferrer applies.
|
|
800
|
+
*/
|
|
801
|
+
function normalizeLocatorText(text) {
|
|
802
|
+
return text
|
|
803
|
+
.replace(/\s+/g, ' ')
|
|
804
|
+
.replace(/\s*(\?\.|\.)\s*/g, '$1')
|
|
805
|
+
.trim();
|
|
806
|
+
}
|
|
744
807
|
function nodeByExpressionText(sourceFile, text, fromLine) {
|
|
745
|
-
const wanted = text
|
|
808
|
+
const wanted = normalizeLocatorText(text);
|
|
746
809
|
let best;
|
|
747
810
|
const visit = (node) => {
|
|
748
811
|
if (best)
|
|
749
812
|
return;
|
|
750
813
|
if (isPreferredTarget(node)) {
|
|
751
|
-
const nodeText = node.getText(sourceFile)
|
|
814
|
+
const nodeText = normalizeLocatorText(node.getText(sourceFile));
|
|
752
815
|
if (nodeText === wanted) {
|
|
753
|
-
|
|
754
|
-
|
|
816
|
+
// On or after the line, or COVERING it: a chain broken before its dot
|
|
817
|
+
// starts a line above the line the analyzer reports for the call.
|
|
818
|
+
const endLine = sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line + 1;
|
|
819
|
+
if (fromLine === undefined || endLine >= fromLine) {
|
|
755
820
|
best = node;
|
|
756
821
|
return;
|
|
757
822
|
}
|
|
@@ -60,6 +60,13 @@ export interface LiteralAnchorRequest {
|
|
|
60
60
|
/** Verbatim TS type text (a bare symbol name or an inline object type). */
|
|
61
61
|
type_text: string;
|
|
62
62
|
anchor_origin: AnchorOrigin;
|
|
63
|
+
/**
|
|
64
|
+
* Repo-root-relative file the text was printed from, when there is one.
|
|
65
|
+
* It joins the analysis program, so a name the text prints bare (an enum
|
|
66
|
+
* member, a recursive reference) is found declared (carrick#1165). The
|
|
67
|
+
* record's `source_file` stays `<inline>`: the answer is still the text.
|
|
68
|
+
*/
|
|
69
|
+
source_file?: string;
|
|
63
70
|
}
|
|
64
71
|
/**
|
|
65
72
|
* Addressable handler: `export type A = Awaited<ReturnType<typeof
|
|
@@ -123,9 +130,14 @@ export type SelfCheckOutcome = 'ok' | 'allowlisted_external' | 'decayed_internal
|
|
|
123
130
|
* honest value is `not_recorded` — never a guess.
|
|
124
131
|
*
|
|
125
132
|
* - `declared`: the captured declaration states `any`/`unknown` at this
|
|
126
|
-
* position
|
|
127
|
-
*
|
|
128
|
-
*
|
|
133
|
+
* position, and the producer's own program had a type there too: an author
|
|
134
|
+
* annotation, not a failed resolution.
|
|
135
|
+
* - `unresolved_import`: the position is `any` in the emitted text because the
|
|
136
|
+
* producer's program could not resolve the type there — an import of a
|
|
137
|
+
* dependency that is not installed, or of a generated module that was never
|
|
138
|
+
* generated, on the scanned checkout (carrick#1164). The printer writes that
|
|
139
|
+
* placeholder as `any`, so the text alone reads like `declared`; the capture
|
|
140
|
+
* tells them apart on the source program at anchor time.
|
|
129
141
|
* - `budget_exhausted`: the subtree was too deep or wide to finish inside the
|
|
130
142
|
* capture walk's budget, so it is reported unverified rather than clean.
|
|
131
143
|
* - `no_payload_evidence`: a handler returned a call whose callee has no
|
|
@@ -137,10 +149,21 @@ export type SelfCheckOutcome = 'ok' | 'allowlisted_external' | 'decayed_internal
|
|
|
137
149
|
* - `machinery_envelope`: the return resolved to transport (a
|
|
138
150
|
* Response/Request-shaped envelope) and no payload was recoverable inside
|
|
139
151
|
* it or from the handler's returned arguments.
|
|
152
|
+
* - `coerced_input`: a request schema's INPUT is `any`/`unknown` at this
|
|
153
|
+
* position while its parsed output is concrete, which is what a coercion
|
|
154
|
+
* declares (carrick#1101). The published type carries the output there, so
|
|
155
|
+
* this finding describes what a caller may send, not the printed member.
|
|
156
|
+
* - `no_success_payload`: a route's handler sends only error or redirect
|
|
157
|
+
* responses (by the status each send states), or no success send carries a
|
|
158
|
+
* body a JSON contract can describe, so the route publishes no success body
|
|
159
|
+
* rather than an error body or a redirect location (carrick#1161).
|
|
160
|
+
* - `no_request_body`: the located request read is a validated part the
|
|
161
|
+
* route's validator binds that is not a body (a path parameter, a query), so
|
|
162
|
+
* the route states no request body contract there (carrick#1166).
|
|
140
163
|
* - `not_recorded`: the position carries a top type and this layer has no
|
|
141
164
|
* cause for it.
|
|
142
165
|
*/
|
|
143
|
-
export type TypeProvenanceReason = 'declared' | 'budget_exhausted' | 'no_payload_evidence' | 'machinery_envelope' | 'not_recorded';
|
|
166
|
+
export type TypeProvenanceReason = 'declared' | 'unresolved_import' | 'budget_exhausted' | 'no_payload_evidence' | 'machinery_envelope' | 'coerced_input' | 'no_success_payload' | 'no_request_body' | 'not_recorded';
|
|
144
167
|
/**
|
|
145
168
|
* One `any`/`unknown` finding inside a captured or inferred type, with its
|
|
146
169
|
* position and its cause. Sorted by `path` wherever a list is emitted, so the
|
|
@@ -202,6 +225,22 @@ export interface CaptureAliasRecord {
|
|
|
202
225
|
* Sorted by `path`; absent (not empty) when the walk found nothing.
|
|
203
226
|
*/
|
|
204
227
|
any_provenance?: TypeProvenance[];
|
|
228
|
+
/**
|
|
229
|
+
* Internal module specifiers that fail to resolve anywhere in this alias's
|
|
230
|
+
* closure, as the emitted files write them (carrick#1165). The emitted
|
|
231
|
+
* tree is missing part of what the alias refers to, so a shape printed from
|
|
232
|
+
* it can name types nothing declares. Sorted; absent when there are none.
|
|
233
|
+
*/
|
|
234
|
+
dangling_specifiers?: string[];
|
|
235
|
+
/**
|
|
236
|
+
* Identifiers this alias's printed text names that do not resolve where the
|
|
237
|
+
* surface declares it (carrick#1165): a literal anchor's text naming a type
|
|
238
|
+
* nothing declares, or a node-builder print reusing a source annotation
|
|
239
|
+
* whose own import did not resolve. Checked on the producer's program, so a global the
|
|
240
|
+
* program declares (a runtime or `@types` global) is never listed. Sorted;
|
|
241
|
+
* absent when there are none.
|
|
242
|
+
*/
|
|
243
|
+
undeclared_names?: string[];
|
|
205
244
|
}
|
|
206
245
|
/** Aggregate fidelity metric, emitted per capture (one service). */
|
|
207
246
|
export interface CaptureFidelity {
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* surface import error (probe lines 1-2)-> unverifiable
|
|
11
11
|
* IsAny gate fired (TS2344) -> gate_caught_baked_any
|
|
12
12
|
* IsUnknown/IsNever gate fired (TS2344) -> unverifiable
|
|
13
|
+
* IsVoid gate fired (TS2344) -> unverifiable (no body read)
|
|
14
|
+
* IsFormBody gate fired (TS2344) -> unverifiable (form-encoded body)
|
|
13
15
|
* assignment-class error -> incompatible
|
|
14
16
|
* no diagnostics -> compatible [lowest precedence]
|
|
15
17
|
*
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* surface import error (probe lines 1-2)-> unverifiable
|
|
11
11
|
* IsAny gate fired (TS2344) -> gate_caught_baked_any
|
|
12
12
|
* IsUnknown/IsNever gate fired (TS2344) -> unverifiable
|
|
13
|
+
* IsVoid gate fired (TS2344) -> unverifiable (no body read)
|
|
14
|
+
* IsFormBody gate fired (TS2344) -> unverifiable (form-encoded body)
|
|
13
15
|
* assignment-class error -> incompatible
|
|
14
16
|
* no diagnostics -> compatible [lowest precedence]
|
|
15
17
|
*
|
|
@@ -127,6 +129,32 @@ export function classifyPair(input) {
|
|
|
127
129
|
...notAFact(`the ${side} type is '${kind}'`),
|
|
128
130
|
};
|
|
129
131
|
}
|
|
132
|
+
// 4b. A side that states no contract (carrick#1162), below the decay gates so
|
|
133
|
+
// an `unknown` side is reported as `unknown`: a `void`/`undefined`
|
|
134
|
+
// response a call site reads no body from, and a form-encoded body whose
|
|
135
|
+
// fields are runtime appends.
|
|
136
|
+
const shapeGate = gateDiags
|
|
137
|
+
.map((d) => plan.gateLines.get(d.line))
|
|
138
|
+
.find((name) => name.endsWith(':void') || name.endsWith(':form'));
|
|
139
|
+
if (shapeGate) {
|
|
140
|
+
const { side, kind } = sideForGate(shapeGate, plan);
|
|
141
|
+
if (kind === 'void') {
|
|
142
|
+
return {
|
|
143
|
+
...base,
|
|
144
|
+
bucket: 'unverifiable',
|
|
145
|
+
gate: `${side}:void`,
|
|
146
|
+
diagnostic: `the ${side} type is 'void' (it reads no body), so there is no contract to verify.`,
|
|
147
|
+
...notAFact(`the ${side} type is 'void'`),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
...base,
|
|
152
|
+
bucket: 'unverifiable',
|
|
153
|
+
gate: `${side}:form`,
|
|
154
|
+
diagnostic: `the ${side} sends a form-encoded body, whose fields are appended at runtime and cannot be compared with a declared shape.`,
|
|
155
|
+
...notAFact(`the ${side} sends a form-encoded body`),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
130
158
|
// 5. Assignment-class error on the value assignment line -> incompatible.
|
|
131
159
|
const assignDiag = probeDiags.find((d) => d.line === plan.assignmentLine && ASSIGNMENT_CODES.has(d.code));
|
|
132
160
|
if (assignDiag) {
|
|
@@ -84,7 +84,7 @@ function walkImportedAlias(file, localName, program, checker) {
|
|
|
84
84
|
const type = checker.getDeclaredTypeOfSymbol(target);
|
|
85
85
|
if (!type)
|
|
86
86
|
return undefined;
|
|
87
|
-
return findDisqualifyingTopTypes(type, program, checker, element.name).map(provenanceOf);
|
|
87
|
+
return findDisqualifyingTopTypes(type, program, checker, element.name).map((finding) => provenanceOf(finding));
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
return undefined;
|
|
@@ -43,7 +43,7 @@ export declare function fnv1a(input: string): string;
|
|
|
43
43
|
* path, so it is byte-stable across runs. */
|
|
44
44
|
export declare function pairId(spec: CheckPairSpec): string;
|
|
45
45
|
/** Names each gate line so a TS2344 can be attributed to a specific side+kind. */
|
|
46
|
-
export type GateName = 'sent:any' | 'sent:unknown' | 'sent:never' | 'expected:any' | 'expected:unknown' | 'expected:never';
|
|
46
|
+
export type GateName = 'sent:any' | 'sent:unknown' | 'sent:never' | 'sent:void' | 'sent:form' | 'expected:any' | 'expected:unknown' | 'expected:never' | 'expected:void';
|
|
47
47
|
export interface ProbePlan {
|
|
48
48
|
pairId: string;
|
|
49
49
|
spec: CheckPairSpec;
|