carrick 0.3.97 → 0.3.99
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/bin/carrick.mjs +19 -14
- package/dist/auth/run.d.ts +1 -1
- package/dist/auth/run.js +1 -1
- package/dist/contract.d.ts +15 -0
- package/dist/contract.js.map +1 -1
- package/dist/global-install.js +6 -5
- package/dist/global-install.js.map +1 -1
- package/dist/hook/reuse.d.ts +8 -3
- package/dist/hook/reuse.js +15 -3
- package/dist/hook/reuse.js.map +1 -1
- package/dist/init/connect.js +1 -1
- package/dist/init/connect.js.map +1 -1
- package/dist/init/doctor.js +5 -2
- package/dist/init/doctor.js.map +1 -1
- package/dist/init/hosted.d.ts +18 -1
- package/dist/init/hosted.js +84 -16
- package/dist/init/hosted.js.map +1 -1
- package/dist/init/install-id.d.ts +2 -2
- package/dist/init/install-id.js +3 -3
- package/dist/init/install-id.js.map +1 -1
- package/dist/init/mcp.d.ts +2 -2
- package/dist/init/mcp.js +2 -2
- package/dist/init/mcp.js.map +1 -1
- package/dist/init/outdated.d.ts +1 -1
- package/dist/init/outdated.js +1 -1
- package/dist/init/outdated.js.map +1 -1
- package/dist/init/output.d.ts +18 -1
- package/dist/init/output.js +40 -1
- package/dist/init/output.js.map +1 -1
- package/dist/init/remove.d.ts +71 -2
- package/dist/init/remove.js +474 -145
- package/dist/init/remove.js.map +1 -1
- package/dist/init/repo-copies.d.ts +16 -4
- package/dist/init/repo-copies.js +20 -6
- package/dist/init/repo-copies.js.map +1 -1
- package/dist/init/run.d.ts +12 -16
- package/dist/init/run.js +25 -42
- package/dist/init/run.js.map +1 -1
- package/dist/update.js +1 -0
- package/dist/update.js.map +1 -1
- package/package.json +6 -6
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/sidecar/dist/src/bundler.d.ts +2 -0
- package/sidecar/dist/src/bundler.js +115 -39
- package/sidecar/dist/src/capture/index.d.ts +1 -0
- package/sidecar/dist/src/capture/index.js +91 -10
- package/sidecar/dist/src/capture/project-references.d.ts +67 -0
- package/sidecar/dist/src/capture/project-references.js +157 -0
- package/sidecar/dist/src/client-semantics.d.ts +36 -0
- package/sidecar/dist/src/client-semantics.js +1008 -0
- package/sidecar/dist/src/index.js +110 -10
- package/sidecar/dist/src/module-format.d.ts +32 -0
- package/sidecar/dist/src/module-format.js +102 -0
- package/sidecar/dist/src/project-loader.d.ts +24 -0
- package/sidecar/dist/src/project-loader.js +53 -5
- package/sidecar/dist/src/types.d.ts +86 -4
- package/sidecar/dist/src/validators.d.ts +463 -0
- package/sidecar/dist/src/validators.js +50 -0
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.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.99",
|
|
4
4
|
"description": "Maps your entire TypeScript codebase across services and repositories, giving AI agents full context on existing types, routes, and function behaviours over MCP before they write duplicate or breaking code.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"zod": "^3.23.0"
|
|
59
59
|
},
|
|
60
60
|
"optionalDependencies": {
|
|
61
|
-
"@carrick-tools/cli-darwin-arm64": "0.3.
|
|
62
|
-
"@carrick-tools/cli-darwin-x64": "0.3.
|
|
63
|
-
"@carrick-tools/cli-linux-arm64": "0.3.
|
|
64
|
-
"@carrick-tools/cli-linux-x64": "0.3.
|
|
65
|
-
"@carrick-tools/cli-win32-x64": "0.3.
|
|
61
|
+
"@carrick-tools/cli-darwin-arm64": "0.3.99",
|
|
62
|
+
"@carrick-tools/cli-darwin-x64": "0.3.99",
|
|
63
|
+
"@carrick-tools/cli-linux-arm64": "0.3.99",
|
|
64
|
+
"@carrick-tools/cli-linux-x64": "0.3.99",
|
|
65
|
+
"@carrick-tools/cli-win32-x64": "0.3.99"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/node": "^24.13.3",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
3
|
"description": "Claude Code plugin for Carrick, which indexes TypeScript codebases across service and repository boundaries. After each edit it adds the file's routes, calls, and cross-service type mismatches to the session, and it registers Carrick's language server. It pairs with the Carrick MCP server, which lets agents search functions by intent rather than name.",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.99",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Carrick",
|
|
7
7
|
"email": "hello@carrick.tools"
|
|
@@ -122,6 +122,8 @@ export declare class TypeBundler {
|
|
|
122
122
|
private dedupeSymbols;
|
|
123
123
|
private validateSymbols;
|
|
124
124
|
private validateSymbol;
|
|
125
|
+
/** Where a requested symbol is declared, or undefined when it cannot be found. */
|
|
126
|
+
private siteOf;
|
|
125
127
|
/**
|
|
126
128
|
* Structural body (`{ ... }`) for an interface/object type, with every nested
|
|
127
129
|
* named member inlined recursively. Returns null when the expansion is not a
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - Supports scoped packages and subpaths
|
|
12
12
|
* - Includes a safety pass for any compiler-introduced raw specifiers
|
|
13
13
|
*/
|
|
14
|
-
import { Node, } from 'ts-morph';
|
|
14
|
+
import { Node, ts, } from 'ts-morph';
|
|
15
15
|
import * as path from 'node:path';
|
|
16
16
|
import * as fs from 'node:fs';
|
|
17
17
|
import { expandTypeStructural, } from './type-structural-expander.js';
|
|
@@ -25,6 +25,97 @@ import { expandTypeStructural, } from './type-structural-expander.js';
|
|
|
25
25
|
* as any other symbol the bundler can't extract a type for.
|
|
26
26
|
*/
|
|
27
27
|
const MAX_ARRAY_DEPTH = 10;
|
|
28
|
+
/** Whether `sourceFile` itself declares `name` in a form the bundle reads. */
|
|
29
|
+
function declaresName(sourceFile, name) {
|
|
30
|
+
return Boolean(sourceFile.getInterface(name) ??
|
|
31
|
+
sourceFile.getTypeAlias(name) ??
|
|
32
|
+
sourceFile.getClass(name) ??
|
|
33
|
+
sourceFile.getEnum(name) ??
|
|
34
|
+
sourceFile.getVariableDeclaration(name) ??
|
|
35
|
+
sourceFile.getFunction(name));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The declarations `name` resolves to when imported from `sourceFile`
|
|
39
|
+
* (carrick#1605), or `ambiguous`.
|
|
40
|
+
*
|
|
41
|
+
* A name the module exports itself (declared there, `export { X }`, `export {
|
|
42
|
+
* X } from`, `export { X as Y } from`) wins over `export *`, and the checker
|
|
43
|
+
* follows it. Otherwise each `export *` is followed, at any depth. Two of them
|
|
44
|
+
* providing different declarations make the name ambiguous: TypeScript
|
|
45
|
+
* reports TS2308 and an ES module exports neither, while the checker's export
|
|
46
|
+
* table silently keeps the first, so the stars are walked here rather than
|
|
47
|
+
* read from it.
|
|
48
|
+
*/
|
|
49
|
+
function exportedDeclarations(sourceFile, name, seen) {
|
|
50
|
+
const key = sourceFile.getFilePath();
|
|
51
|
+
if (seen.has(key))
|
|
52
|
+
return [];
|
|
53
|
+
seen.add(key);
|
|
54
|
+
const ownExports = sourceFile.getSymbol()?.compilerSymbol.exports;
|
|
55
|
+
if (ownExports?.has(ts.escapeLeadingUnderscores(name))) {
|
|
56
|
+
return sourceFile.getExportedDeclarations().get(name) ?? [];
|
|
57
|
+
}
|
|
58
|
+
const found = [];
|
|
59
|
+
for (const declaration of sourceFile.getExportDeclarations()) {
|
|
60
|
+
// Only `export * from`: named and namespace re-exports are own exports.
|
|
61
|
+
if (declaration.hasNamedExports() || declaration.getNamespaceExport())
|
|
62
|
+
continue;
|
|
63
|
+
const target = declaration.getModuleSpecifierSourceFile();
|
|
64
|
+
if (!target)
|
|
65
|
+
continue;
|
|
66
|
+
const declarations = exportedDeclarations(target, name, seen);
|
|
67
|
+
if (declarations === 'ambiguous')
|
|
68
|
+
return declarations;
|
|
69
|
+
if (declarations.length > 0)
|
|
70
|
+
found.push(declarations);
|
|
71
|
+
}
|
|
72
|
+
const distinct = new Set(found.map(([first]) => `${first.getSourceFile().getFilePath()}:${first.getStart()}`));
|
|
73
|
+
if (distinct.size > 1)
|
|
74
|
+
return 'ambiguous';
|
|
75
|
+
return found[0] ?? [];
|
|
76
|
+
}
|
|
77
|
+
/** The name a re-exported declaration carries where it is declared. */
|
|
78
|
+
function declaredName(declaration) {
|
|
79
|
+
if (Node.isInterfaceDeclaration(declaration) ||
|
|
80
|
+
Node.isTypeAliasDeclaration(declaration) ||
|
|
81
|
+
Node.isClassDeclaration(declaration) ||
|
|
82
|
+
Node.isEnumDeclaration(declaration) ||
|
|
83
|
+
Node.isVariableDeclaration(declaration) ||
|
|
84
|
+
Node.isFunctionDeclaration(declaration)) {
|
|
85
|
+
return declaration.getName();
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Where `name`, as `sourceFile` exports it, is declared (carrick#1605). A name
|
|
91
|
+
* the file declares is its own. Otherwise it is followed the way an import of
|
|
92
|
+
* it is: a model names a type where the consumer imports it from, usually a
|
|
93
|
+
* barrel that only has `export *`.
|
|
94
|
+
*/
|
|
95
|
+
function declarationSite(sourceFile, name, label) {
|
|
96
|
+
if (declaresName(sourceFile, name))
|
|
97
|
+
return { sourceFile, name };
|
|
98
|
+
const declarations = exportedDeclarations(sourceFile, name, new Set());
|
|
99
|
+
if (declarations === 'ambiguous') {
|
|
100
|
+
return {
|
|
101
|
+
reason: `Symbol '${name}' is exported by more than one \`export *\` in ${label}`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
for (const declaration of declarations) {
|
|
105
|
+
const file = declaration.getSourceFile();
|
|
106
|
+
// An installed package's declaration names types from the package's own
|
|
107
|
+
// files, which the bundle does not carry, so its text would dangle. The
|
|
108
|
+
// failure is what it was before the walk, and inference keeps the row.
|
|
109
|
+
if (file.isInNodeModules() || file.isFromExternalLibrary()) {
|
|
110
|
+
return { reason: `Symbol '${name}' is re-exported from an installed package in ${label}` };
|
|
111
|
+
}
|
|
112
|
+
const declared = declaredName(declaration);
|
|
113
|
+
if (declared && declaresName(declaration.getSourceFile(), declared)) {
|
|
114
|
+
return { sourceFile: declaration.getSourceFile(), name: declared };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { reason: `Symbol '${name}' not found in ${label}` };
|
|
118
|
+
}
|
|
28
119
|
/**
|
|
29
120
|
* SurfaceEmitter - Generates .d.ts surface files with rewritten imports
|
|
30
121
|
*
|
|
@@ -428,31 +519,19 @@ export class TypeBundler {
|
|
|
428
519
|
reason: `Failed to load source file: ${err instanceof Error ? err.message : String(err)}`,
|
|
429
520
|
};
|
|
430
521
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (sourceFile
|
|
441
|
-
return
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
return { valid: true };
|
|
445
|
-
// Check exported variables
|
|
446
|
-
if (sourceFile.getVariableDeclaration(symbolName))
|
|
447
|
-
return { valid: true };
|
|
448
|
-
// Check functions
|
|
449
|
-
if (sourceFile.getFunction(symbolName))
|
|
450
|
-
return { valid: true };
|
|
451
|
-
// Symbol not found
|
|
452
|
-
return {
|
|
453
|
-
valid: false,
|
|
454
|
-
reason: `Symbol '${symbolName}' not found in ${symbol.source_file}`,
|
|
455
|
-
};
|
|
522
|
+
const site = declarationSite(sourceFile, symbol.symbol_name, symbol.source_file);
|
|
523
|
+
return 'reason' in site ? { valid: false, reason: site.reason } : { valid: true };
|
|
524
|
+
}
|
|
525
|
+
/** Where a requested symbol is declared, or undefined when it cannot be found. */
|
|
526
|
+
siteOf(symbol) {
|
|
527
|
+
const absolutePath = path.isAbsolute(symbol.source_file)
|
|
528
|
+
? symbol.source_file
|
|
529
|
+
: path.resolve(this.repoRoot, symbol.source_file);
|
|
530
|
+
const sourceFile = this.project.getSourceFile(absolutePath);
|
|
531
|
+
if (!sourceFile)
|
|
532
|
+
return undefined;
|
|
533
|
+
const site = declarationSite(sourceFile, symbol.symbol_name, symbol.source_file);
|
|
534
|
+
return 'reason' in site ? undefined : site;
|
|
456
535
|
}
|
|
457
536
|
/**
|
|
458
537
|
* Structural body (`{ ... }`) for an interface/object type, with every nested
|
|
@@ -525,13 +604,10 @@ export class TypeBundler {
|
|
|
525
604
|
/// union/intersection/function that would misparse; those are re-resolved
|
|
526
605
|
/// from the source Type here (this runs only on the rare array_depth path).
|
|
527
606
|
elementNeedsArrayParens(symbol) {
|
|
528
|
-
const
|
|
529
|
-
|
|
530
|
-
: path.resolve(this.repoRoot, symbol.source_file);
|
|
531
|
-
const sourceFile = this.project.getSourceFile(absolutePath);
|
|
532
|
-
if (!sourceFile)
|
|
607
|
+
const site = this.siteOf(symbol);
|
|
608
|
+
if (!site)
|
|
533
609
|
return false;
|
|
534
|
-
const name =
|
|
610
|
+
const { sourceFile, name } = site;
|
|
535
611
|
const decl = sourceFile.getTypeAlias(name) ?? sourceFile.getVariableDeclaration(name);
|
|
536
612
|
if (!decl)
|
|
537
613
|
return false;
|
|
@@ -546,15 +622,15 @@ export class TypeBundler {
|
|
|
546
622
|
// verbatim declaration text from a fallback branch. Only expressions can be
|
|
547
623
|
// array-wrapped by `extractTypeDefinition`.
|
|
548
624
|
extractTypeDefinitionBase(symbol) {
|
|
549
|
-
const
|
|
550
|
-
|
|
551
|
-
: path.resolve(this.repoRoot, symbol.source_file);
|
|
552
|
-
const sourceFile = this.project.getSourceFile(absolutePath);
|
|
553
|
-
if (!sourceFile) {
|
|
625
|
+
const site = this.siteOf(symbol);
|
|
626
|
+
if (!site) {
|
|
554
627
|
return null;
|
|
555
628
|
}
|
|
556
|
-
|
|
557
|
-
|
|
629
|
+
// `symbolName` is the declaration's own name, which a renamed re-export
|
|
630
|
+
// (`export { Account as AccountView }`) does not share with the request;
|
|
631
|
+
// the bundle declares the name the symbol was requested under.
|
|
632
|
+
const { sourceFile, name: symbolName } = site;
|
|
633
|
+
const alias = symbol.alias || symbol.symbol_name;
|
|
558
634
|
// Try interface
|
|
559
635
|
const iface = sourceFile.getInterface(symbolName);
|
|
560
636
|
if (iface) {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
import type { CaptureStubOptions, CaptureStubResult } from './api.js';
|
|
31
31
|
export type { CaptureStubOptions, CaptureStubResult } from './api.js';
|
|
32
32
|
export { DenoProject, findDenoConfig } from './deno-project.js';
|
|
33
|
+
export { serviceConfigPath } from './project-references.js';
|
|
33
34
|
export { runCheck } from './check.js';
|
|
34
35
|
export type { CheckProgress } from './check.js';
|
|
35
36
|
export { jsonWireDeclarations } from './check-probe.js';
|
|
@@ -39,7 +39,9 @@ import { typesPackageOf, withInstalledPackages } from './installed-package.js';
|
|
|
39
39
|
import { selfCheckStub } from './self-check.js';
|
|
40
40
|
import { collectSpecifiers, isRelative, packageNameOf } from './specifiers.js';
|
|
41
41
|
import { DenoProject, findDenoConfig } from './deno-project.js';
|
|
42
|
+
import { emitsAlike, ProjectGraph } from './project-references.js';
|
|
42
43
|
export { DenoProject, findDenoConfig } from './deno-project.js';
|
|
44
|
+
export { serviceConfigPath } from './project-references.js';
|
|
43
45
|
// v2 check core ("tsc as the judge"). Same bundle, same seam: the sidecar
|
|
44
46
|
// reaches it only through this door (index.js).
|
|
45
47
|
export { runCheck } from './check.js';
|
|
@@ -128,6 +130,13 @@ export function captureStub(opts) {
|
|
|
128
130
|
? path.resolve(repoRoot, opts.tsconfigPath)
|
|
129
131
|
: path.join(repoRoot, 'tsconfig.json');
|
|
130
132
|
let parsed;
|
|
133
|
+
// The config the emit's options came from: the named one, or the project
|
|
134
|
+
// that owns the most anchors' files (carrick#1604).
|
|
135
|
+
let projectConfigPath = configPath;
|
|
136
|
+
// Anchor indexes by the project that owns their file, when the named config
|
|
137
|
+
// references others and the anchors' files do not all belong to one project.
|
|
138
|
+
let ownerGroups;
|
|
139
|
+
let emitProject;
|
|
131
140
|
let deno;
|
|
132
141
|
try {
|
|
133
142
|
const config = findDenoConfig(repoRoot, opts.tsconfigPath);
|
|
@@ -164,18 +173,44 @@ export function captureStub(opts) {
|
|
|
164
173
|
}, ts.sys, repoRoot);
|
|
165
174
|
}
|
|
166
175
|
else {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
};
|
|
176
|
+
// Each anchor is typed under the project that owns its file: the named
|
|
177
|
+
// config when it lists the file, else the first project it references
|
|
178
|
+
// (depth-first, in declared order) that does, else the named config.
|
|
179
|
+
let graph;
|
|
173
180
|
try {
|
|
174
|
-
|
|
181
|
+
graph = new ProjectGraph(configPath);
|
|
175
182
|
}
|
|
176
183
|
catch (err) {
|
|
177
184
|
return fail(stubDir, packageName, [err instanceof Error ? err.message : String(err)]);
|
|
178
185
|
}
|
|
186
|
+
const groups = new Map();
|
|
187
|
+
const unfiled = [];
|
|
188
|
+
opts.anchors.forEach((anchor, index) => {
|
|
189
|
+
const file = anchor.source_file ? path.resolve(repoRoot, anchor.source_file) : undefined;
|
|
190
|
+
if (!file || !fs.existsSync(file)) {
|
|
191
|
+
unfiled.push(index);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const owner = graph.ownerOf(file);
|
|
195
|
+
groups.set(owner, [...(groups.get(owner) ?? []), index]);
|
|
196
|
+
});
|
|
197
|
+
// One emit: under the owner of the most anchors, ties to search order.
|
|
198
|
+
let emit = graph.named;
|
|
199
|
+
let most = 0;
|
|
200
|
+
for (const [owner, indexes] of groups) {
|
|
201
|
+
if (indexes.length > most || (indexes.length === most && graph.rank(owner) < graph.rank(emit))) {
|
|
202
|
+
emit = owner;
|
|
203
|
+
most = indexes.length;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (unfiled.length > 0)
|
|
207
|
+
groups.set(emit, [...(groups.get(emit) ?? []), ...unfiled]);
|
|
208
|
+
errors.push(...graph.diagnostics);
|
|
209
|
+
parsed = emit.parsed;
|
|
210
|
+
projectConfigPath = emit.configPath;
|
|
211
|
+
emitProject = emit;
|
|
212
|
+
if (groups.size > 1)
|
|
213
|
+
ownerGroups = groups;
|
|
179
214
|
}
|
|
180
215
|
if (!parsed) {
|
|
181
216
|
return fail(stubDir, packageName, [`failed to parse ${configPath}`]);
|
|
@@ -183,7 +218,7 @@ export function captureStub(opts) {
|
|
|
183
218
|
// The surface entry must live inside the effective rootDir (design doc
|
|
184
219
|
// Capture step 1: an entry at repo root with rootDir "src" fails TS6059).
|
|
185
220
|
const entryDir = parsed.options.rootDir
|
|
186
|
-
? path.resolve(path.dirname(
|
|
221
|
+
? path.resolve(path.dirname(projectConfigPath), parsed.options.rootDir)
|
|
187
222
|
: repoRoot;
|
|
188
223
|
const surfaceEntry = surfaceEntryFileName();
|
|
189
224
|
const surfaceDeclaration = `${surfaceEntry}.d.ts`;
|
|
@@ -193,8 +228,11 @@ export function captureStub(opts) {
|
|
|
193
228
|
fs.mkdirSync(path.dirname(entryPath), { recursive: true });
|
|
194
229
|
// ---- Phase A: analysis program over placeholder entry + anchor sources ----
|
|
195
230
|
let resolved;
|
|
231
|
+
const analysisCtx = { repoRoot, entryDir: path.dirname(entryPath), entryPath };
|
|
196
232
|
try {
|
|
197
|
-
resolved =
|
|
233
|
+
resolved = ownerGroups && emitProject
|
|
234
|
+
? resolveAnchorsByOwner(opts, ownerGroups, emitProject, analysisCtx, errors)
|
|
235
|
+
: resolveAnchors(opts, parsed, analysisCtx, deno);
|
|
198
236
|
}
|
|
199
237
|
catch (err) {
|
|
200
238
|
return fail(stubDir, packageName, [err instanceof Error ? err.message : String(err)]);
|
|
@@ -343,7 +381,7 @@ export function captureStub(opts) {
|
|
|
343
381
|
typesDir,
|
|
344
382
|
files: emittedFiles,
|
|
345
383
|
options: parsed.options,
|
|
346
|
-
configPath,
|
|
384
|
+
configPath: projectConfigPath,
|
|
347
385
|
entryDir,
|
|
348
386
|
});
|
|
349
387
|
const specifierRewrites = denoRewrites + rewritten.rewrites;
|
|
@@ -513,6 +551,49 @@ function rewriteSurfaceAliasesToUnknown(text, demoted) {
|
|
|
513
551
|
}
|
|
514
552
|
return out;
|
|
515
553
|
}
|
|
554
|
+
/**
|
|
555
|
+
* Phase A when the anchors' files belong to different projects (carrick#1604):
|
|
556
|
+
* each owner's anchors are resolved in a program built from that owner's
|
|
557
|
+
* options, so a file is never typed under a project that does not own it.
|
|
558
|
+
*
|
|
559
|
+
* The surface is emitted once, under `emit`'s options. An anchor from another
|
|
560
|
+
* project keeps its text when the text stands alone, or when the two projects
|
|
561
|
+
* would emit a declaration the same way. Otherwise its text names a module the
|
|
562
|
+
* emit would declare under the wrong options (a symbol or handler anchor, or
|
|
563
|
+
* a print that imports a module), so it is demoted with the reason, and cannot
|
|
564
|
+
* self-check clean.
|
|
565
|
+
*/
|
|
566
|
+
function resolveAnchorsByOwner(opts, groups, emit, ctx, errors) {
|
|
567
|
+
const resolved = new Array(opts.anchors.length);
|
|
568
|
+
for (const [owner, indexes] of groups) {
|
|
569
|
+
const anchors = indexes.map((index) => opts.anchors[index]);
|
|
570
|
+
const group = resolveAnchors({ ...opts, anchors }, owner.parsed, ctx);
|
|
571
|
+
let demoted = 0;
|
|
572
|
+
group.forEach((anchor, position) => {
|
|
573
|
+
const index = indexes[position];
|
|
574
|
+
const namesModule = anchor.request.kind === 'symbol' ||
|
|
575
|
+
anchor.request.kind === 'handler_return' ||
|
|
576
|
+
collectSpecifiers(anchor.aliasText).size > 0;
|
|
577
|
+
if (owner === emit || anchor.failureReason !== undefined || !namesModule || emitsAlike(owner, emit)) {
|
|
578
|
+
resolved[index] = anchor;
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
demoted += 1;
|
|
582
|
+
resolved[index] = {
|
|
583
|
+
request: anchor.request,
|
|
584
|
+
aliasText: 'unknown',
|
|
585
|
+
serialization: 'structural_fallback',
|
|
586
|
+
failureReason: `typed under ${owner.configPath}, the project that owns its file, whose options differ ` +
|
|
587
|
+
`from ${emit.configPath}, which emits the surface; the module it names would be declared under the wrong options`,
|
|
588
|
+
};
|
|
589
|
+
});
|
|
590
|
+
if (owner !== emit) {
|
|
591
|
+
errors.push(`${indexes.length} anchor(s) typed under ${owner.configPath}, the project that owns their files` +
|
|
592
|
+
(demoted > 0 ? `; ${demoted} demoted because the surface is emitted under ${emit.configPath}` : ''));
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return resolved;
|
|
596
|
+
}
|
|
516
597
|
/** Phase A: build the placeholder entry, then resolve every anchor. */
|
|
517
598
|
function resolveAnchors(opts, parsed, ctx, deno) {
|
|
518
599
|
const placeholderLines = ['// Carrick capture v2 analysis placeholder.'];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which project types a file of a service whose tsconfig references others
|
|
3
|
+
* (carrick#1604).
|
|
4
|
+
*
|
|
5
|
+
* A "solution" tsconfig (`"files": []` plus `references`) carries no compiler
|
|
6
|
+
* options: they live in the projects it references. Parsing the named file
|
|
7
|
+
* alone typed every file with none, so `customConditions`, `paths` and the
|
|
8
|
+
* module resolution mode never applied and workspace imports fell through to
|
|
9
|
+
* unbuilt output.
|
|
10
|
+
*
|
|
11
|
+
* TypeScript's editor answers "which project types this file" by searching
|
|
12
|
+
* the named config, then its references depth-first in declared order, for
|
|
13
|
+
* the first project whose file list includes the file. That project is the
|
|
14
|
+
* file's owner here too, and a file is only ever typed under its owner's
|
|
15
|
+
* options: the loader builds one program per owner it is asked about, and
|
|
16
|
+
* the capture types each anchor in its owner's program. A file no reachable
|
|
17
|
+
* project includes is owned by the named config, which is how it was typed
|
|
18
|
+
* before references were read.
|
|
19
|
+
*/
|
|
20
|
+
import ts from 'typescript';
|
|
21
|
+
/** One parsed tsconfig. */
|
|
22
|
+
export interface ServiceProject {
|
|
23
|
+
/** Absolute path of the config file the options came from. */
|
|
24
|
+
configPath: string;
|
|
25
|
+
parsed: ts.ParsedCommandLine;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The projects a named config reaches and the owner of each file among them.
|
|
29
|
+
* References are read only when a file the named config does not include is
|
|
30
|
+
* asked about, so a service whose files the named config includes costs one
|
|
31
|
+
* parse, as before.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ProjectGraph {
|
|
34
|
+
readonly named: ServiceProject;
|
|
35
|
+
/** References that could not be read, one line each. */
|
|
36
|
+
readonly diagnostics: string[];
|
|
37
|
+
private readonly extendedConfigCache;
|
|
38
|
+
private walked;
|
|
39
|
+
private readonly namedFiles;
|
|
40
|
+
/** Throws when the named config cannot be read, as a bare parse would. */
|
|
41
|
+
constructor(configPath: string);
|
|
42
|
+
/** Whether the named config references other projects at all. */
|
|
43
|
+
get hasReferences(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The project that owns `file`: the first in search order whose file list
|
|
46
|
+
* includes it (the named config, then its references depth-first in
|
|
47
|
+
* declared order; a config reached twice is visited once). The named config
|
|
48
|
+
* when none does.
|
|
49
|
+
*/
|
|
50
|
+
ownerOf(file: string): ServiceProject;
|
|
51
|
+
/** Position in search order, 0 for the named config. */
|
|
52
|
+
rank(project: ServiceProject): number;
|
|
53
|
+
private projects;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* For the loader: the config each file of the service is typed under. The
|
|
57
|
+
* returned function gives the owner's config path for a file, and the named
|
|
58
|
+
* config for no file; a reference that cannot be read goes to `report`. A named config that references nothing is not parsed
|
|
59
|
+
* here (`references` is never inherited through `extends`), so the function
|
|
60
|
+
* answers the named path for every file and the common case costs nothing.
|
|
61
|
+
*/
|
|
62
|
+
export declare function serviceConfigPath(configPath: string, report?: (diagnostic: string) => void): (file?: string) => string;
|
|
63
|
+
/**
|
|
64
|
+
* Whether two projects' options would emit a declaration the same way, so a
|
|
65
|
+
* type one of them names can be emitted by the other.
|
|
66
|
+
*/
|
|
67
|
+
export declare function emitsAlike(a: ServiceProject, b: ServiceProject): boolean;
|