no-mistakes 0.32.1 → 0.33.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/README.md CHANGED
@@ -42,6 +42,8 @@ const {
42
42
  root: process.cwd(),
43
43
  files: ["src/main.mts"],
44
44
  relationships: ["import"],
45
+ timeout: 30,
46
+ lockTimeout: 30,
45
47
  });
46
48
  const tests = await dependents({
47
49
  root: process.cwd(),
@@ -75,6 +77,8 @@ const {
75
77
  });
76
78
  const projectCheck = await check({
77
79
  root: process.cwd(),
80
+ // Path to tsconfig.json for alias resolution; searched upward if omitted.
81
+ // In monorepos, pass the workspace-scoped tsconfig (e.g. "web/tsconfig.json").
78
82
  tsconfig: "tsconfig.json",
79
83
  });
80
84
  const localFlow = await flow({
@@ -108,6 +112,13 @@ const {
108
112
  })();
109
113
  ```
110
114
 
115
+ CLI and Node analyses share a per-user machine-wide lock. CLI flags
116
+ `--timeout`, `--lock-timeout`, and `--fail-on-lock` have Node equivalents
117
+ `timeout`, `lockTimeout`, and `failOnLock`. Both timeouts default to 30 seconds;
118
+ `0` disables either CLI timeout, while `0` or `null` disables it in Node.
119
+ Waiting does not alter successful output, and Node lock/timeout failures reject
120
+ the returned Promise.
121
+
111
122
  External `no-mistakes-*` executables on `PATH` can be invoked as subcommands.
112
123
  For example, after installing `no-mistakes-scripts`:
113
124
 
@@ -55,8 +55,11 @@ export type AnalyzeProjectReportRequest =
55
55
  | ({ type: "check"; id?: string } & BatchedCheckOptions);
56
56
 
57
57
  export interface AnalyzeProjectOptions {
58
+ /** Project root. Defaults to the current working directory. */
58
59
  root?: string;
60
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
59
61
  tsconfig?: string;
62
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
60
63
  config?: string;
61
64
  filters?: string[];
62
65
  reports: AnalyzeProjectReportRequest[];
package/ci-types.d.ts CHANGED
@@ -3,22 +3,29 @@
3
3
  // snake_case to match the serde-serialized output.
4
4
 
5
5
  export interface CiImpactOptions {
6
+ /** Project root. Defaults to the current working directory. */
6
7
  root?: string;
8
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
7
9
  config?: string;
8
10
  /** Changed file paths (relative to root or absolute). */
9
11
  files: string[];
10
12
  }
11
13
 
12
14
  export interface CiEnvOptions {
15
+ /** Project root. Defaults to the current working directory. */
13
16
  root?: string;
17
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
14
18
  config?: string;
15
19
  /** Environment variable name (case-sensitive). */
16
20
  var: string;
17
21
  }
18
22
 
19
23
  export interface ImpactedChecksOptions {
24
+ /** Project root. Defaults to the current working directory. */
20
25
  root?: string;
26
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
21
27
  config?: string;
28
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
22
29
  tsconfig?: string;
23
30
  base?: string;
24
31
  head?: string;
package/flow-types.d.ts CHANGED
@@ -2,8 +2,11 @@ import type { Relationship } from "./traversal-types";
2
2
 
3
3
  export interface FlowOptions {
4
4
  target: string;
5
+ /** Project root. Defaults to the current working directory. */
5
6
  root?: string;
7
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
6
8
  tsconfig?: string;
9
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
7
10
  config?: string;
8
11
  direction?: "deps" | "dependents" | "both";
9
12
  depth?: number;
@@ -35,7 +38,9 @@ export interface FlowReport {
35
38
  }
36
39
 
37
40
  export interface FetchesOptions {
41
+ /** Project root. Defaults to the current working directory. */
38
42
  root?: string;
43
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
39
44
  config?: string;
40
45
  targets?: string[];
41
46
  }
@@ -16,6 +16,7 @@ export interface ImportUsageFile {
16
16
 
17
17
  export interface ImportUsagesOptions {
18
18
  files?: string[];
19
+ /** Project root. Defaults to the current working directory. */
19
20
  root?: string;
20
21
  scanRoots?: string[];
21
22
  filters?: string[];
package/index.d.ts CHANGED
@@ -66,72 +66,135 @@ import type {
66
66
  TestsWhyOptions,
67
67
  TraverseOptions,
68
68
  WhyStep,
69
+ WithInvocationOptions,
69
70
  } from "./types";
70
71
 
71
72
  export * from "./types";
72
73
 
73
- export function dependencies(options: TraverseOptions): Promise<DependencyResult>;
74
- export function dependents(options: TraverseOptions): Promise<DependencyResult>;
75
- export function related(options: TraverseOptions): Promise<DependencyResult>;
76
- export function analyzeProject(options: AnalyzeProjectOptions): Promise<AnalyzeProjectResult>;
77
- export function symbols(options: SymbolsSignatureImpactOptions): Promise<SignatureImpactResult>;
78
- export function symbols(options: SymbolsListOptions): Promise<SymbolsResult>;
79
- export function symbols(options: SymbolsOptions): Promise<SymbolsResult | SignatureImpactResult>;
80
- export function importUsages(options?: ImportUsagesOptions): Promise<ImportUsagesResult>;
81
- export function importers(options: ImportersOptions): Promise<ImportersResult>;
82
- export function exportsOf(options: ExportsOfOptions): Promise<ExportsOfResult>;
83
- export function deadExports(options: DeadExportsOptions): Promise<DeadExportsResult>;
84
- export function callSites(options: CallSitesOptions): Promise<CallSitesResult>;
85
- export function resolveCheck(options: ResolveCheckOptions): Promise<ResolveCheckResult>;
86
- export function fetches(options?: FetchesOptions): Promise<unknown>;
87
- export function flow(options: FlowOptions): Promise<FlowReport>;
88
- export function check(options?: ProjectOptions): Promise<CheckReport>;
89
- export function testsPlan(options: TestsPlanOptions): Promise<TestPlan>;
90
- export function testsImpact(options: TestsImpactOptions): Promise<TestPlan>;
91
- export function testsTargets(options: TestsTargetsOptions): Promise<TestsTargetsReport>;
92
- export function testsWhy(options: TestsWhyOptions): Promise<Record<string, WhyStep[]>>;
93
- export function testsComment(options: TestsPlanDocumentOptions): Promise<string>;
94
- export function testsGraph(options: TestsPlanDocumentOptions): Promise<TestGraph>;
95
- export function testsGraphMermaid(options: TestsPlanDocumentOptions): Promise<string>;
96
- export function playwrightCheck(options?: PlaywrightOptions): Promise<unknown>;
97
- export function playwrightEdges(options?: PlaywrightOptions): Promise<unknown>;
98
- export function playwrightRelated(options: PlaywrightRelatedOptions): Promise<unknown>;
99
- export function playwrightTests(options?: PlaywrightOptions): Promise<unknown>;
100
- export function queues(options?: ProjectOptions): Promise<QueueReport>;
101
- export function queueEdges(options?: ProjectOptions): Promise<GraphEdge[]>;
102
- export function queueRelated(options: ProjectOptions): Promise<GraphEdge[]>;
103
- export function queueCheck(options?: ProjectOptions): Promise<unknown[]>;
104
- export function serverRoutes(options?: ProjectOptions): Promise<ServerRoutesReport>;
105
- export function serverRouteList(options?: ProjectOptions): Promise<unknown[]>;
106
- export function serverRouteEdges(options?: ProjectOptions): Promise<GraphEdge[]>;
107
- export function serverRouteRelated(options: ProjectOptions): Promise<GraphEdge[]>;
108
- export function serverContracts(options?: ProjectOptions): Promise<ServerContractsReport>;
109
- export function reactAnalyze(options?: ProjectOptions): Promise<ReactComponentFacts[]>;
110
- export function reactCheck(options?: ProjectOptions): Promise<ReactViolation[]>;
74
+ export function dependencies(
75
+ options: WithInvocationOptions<TraverseOptions>,
76
+ ): Promise<DependencyResult>;
77
+ export function dependents(
78
+ options: WithInvocationOptions<TraverseOptions>,
79
+ ): Promise<DependencyResult>;
80
+ export function related(options: WithInvocationOptions<TraverseOptions>): Promise<DependencyResult>;
81
+ export function analyzeProject(
82
+ options: WithInvocationOptions<AnalyzeProjectOptions>,
83
+ ): Promise<AnalyzeProjectResult>;
84
+ export function symbols(
85
+ options: WithInvocationOptions<SymbolsSignatureImpactOptions>,
86
+ ): Promise<SignatureImpactResult>;
87
+ export function symbols(options: WithInvocationOptions<SymbolsListOptions>): Promise<SymbolsResult>;
88
+ export function symbols(
89
+ options: WithInvocationOptions<SymbolsOptions>,
90
+ ): Promise<SymbolsResult | SignatureImpactResult>;
91
+ export function importUsages(
92
+ options?: WithInvocationOptions<ImportUsagesOptions>,
93
+ ): Promise<ImportUsagesResult>;
94
+ export function importers(
95
+ options: WithInvocationOptions<ImportersOptions>,
96
+ ): Promise<ImportersResult>;
97
+ export function exportsOf(
98
+ options: WithInvocationOptions<ExportsOfOptions>,
99
+ ): Promise<ExportsOfResult>;
100
+ export function deadExports(
101
+ options: WithInvocationOptions<DeadExportsOptions>,
102
+ ): Promise<DeadExportsResult>;
103
+ export function callSites(
104
+ options: WithInvocationOptions<CallSitesOptions>,
105
+ ): Promise<CallSitesResult>;
106
+ export function resolveCheck(
107
+ options: WithInvocationOptions<ResolveCheckOptions>,
108
+ ): Promise<ResolveCheckResult>;
109
+ export function fetches(options?: WithInvocationOptions<FetchesOptions>): Promise<unknown>;
110
+ export function flow(options: WithInvocationOptions<FlowOptions>): Promise<FlowReport>;
111
+ export function check(options?: WithInvocationOptions<ProjectOptions>): Promise<CheckReport>;
112
+ export function testsPlan(options: WithInvocationOptions<TestsPlanOptions>): Promise<TestPlan>;
113
+ export function testsImpact(options: WithInvocationOptions<TestsImpactOptions>): Promise<TestPlan>;
114
+ export function testsTargets(
115
+ options: WithInvocationOptions<TestsTargetsOptions>,
116
+ ): Promise<TestsTargetsReport>;
117
+ export function testsWhy(
118
+ options: WithInvocationOptions<TestsWhyOptions>,
119
+ ): Promise<Record<string, WhyStep[]>>;
120
+ export function testsComment(
121
+ options: WithInvocationOptions<TestsPlanDocumentOptions>,
122
+ ): Promise<string>;
123
+ export function testsGraph(
124
+ options: WithInvocationOptions<TestsPlanDocumentOptions>,
125
+ ): Promise<TestGraph>;
126
+ export function testsGraphMermaid(
127
+ options: WithInvocationOptions<TestsPlanDocumentOptions>,
128
+ ): Promise<string>;
129
+ export function playwrightCheck(
130
+ options?: WithInvocationOptions<PlaywrightOptions>,
131
+ ): Promise<unknown>;
132
+ export function playwrightEdges(
133
+ options?: WithInvocationOptions<PlaywrightOptions>,
134
+ ): Promise<unknown>;
135
+ export function playwrightRelated(
136
+ options: WithInvocationOptions<PlaywrightRelatedOptions>,
137
+ ): Promise<unknown>;
138
+ export function playwrightTests(
139
+ options?: WithInvocationOptions<PlaywrightOptions>,
140
+ ): Promise<unknown>;
141
+ export function queues(options?: WithInvocationOptions<ProjectOptions>): Promise<QueueReport>;
142
+ export function queueEdges(options?: WithInvocationOptions<ProjectOptions>): Promise<GraphEdge[]>;
143
+ export function queueRelated(options: WithInvocationOptions<ProjectOptions>): Promise<GraphEdge[]>;
144
+ export function queueCheck(options?: WithInvocationOptions<ProjectOptions>): Promise<unknown[]>;
145
+ export function serverRoutes(
146
+ options?: WithInvocationOptions<ProjectOptions>,
147
+ ): Promise<ServerRoutesReport>;
148
+ export function serverRouteList(
149
+ options?: WithInvocationOptions<ProjectOptions>,
150
+ ): Promise<unknown[]>;
151
+ export function serverRouteEdges(
152
+ options?: WithInvocationOptions<ProjectOptions>,
153
+ ): Promise<GraphEdge[]>;
154
+ export function serverRouteRelated(
155
+ options: WithInvocationOptions<ProjectOptions>,
156
+ ): Promise<GraphEdge[]>;
157
+ export function serverContracts(
158
+ options?: WithInvocationOptions<ProjectOptions>,
159
+ ): Promise<ServerContractsReport>;
160
+ export function reactAnalyze(
161
+ options?: WithInvocationOptions<ProjectOptions>,
162
+ ): Promise<ReactComponentFacts[]>;
163
+ export function reactCheck(
164
+ options?: WithInvocationOptions<ProjectOptions>,
165
+ ): Promise<ReactViolation[]>;
111
166
  export function reactUsages(
112
- options: ProjectOptions & { target: string },
167
+ options: WithInvocationOptions<ProjectOptions & { target: string }>,
113
168
  ): Promise<ReactUsagesReport>;
114
- export function lockfileDiff(options: LockfileDiffOptions): Promise<LockfileDiffEntry[]>;
115
- export function ciImpact(options: CiImpactOptions): Promise<CiImpactReport>;
116
- export function ciEnv(options: CiEnvOptions): Promise<CiEnvReport>;
117
- export function impactedChecks(options: ImpactedChecksOptions): Promise<ImpactedChecksReport>;
118
- export function dataPw(options: DataPwOptions): Promise<DataPwReport>;
119
- export function effects(options: EffectsOptions): Promise<EffectsReport>;
120
- export function rscCallers(options: RscCallersOptions): Promise<RscCallersReport>;
169
+ export function lockfileDiff(
170
+ options: WithInvocationOptions<LockfileDiffOptions>,
171
+ ): Promise<LockfileDiffEntry[]>;
172
+ export function ciImpact(options: WithInvocationOptions<CiImpactOptions>): Promise<CiImpactReport>;
173
+ export function ciEnv(options: WithInvocationOptions<CiEnvOptions>): Promise<CiEnvReport>;
174
+ export function impactedChecks(
175
+ options: WithInvocationOptions<ImpactedChecksOptions>,
176
+ ): Promise<ImpactedChecksReport>;
177
+ export function dataPw(options: WithInvocationOptions<DataPwOptions>): Promise<DataPwReport>;
178
+ export function effects(options: WithInvocationOptions<EffectsOptions>): Promise<EffectsReport>;
179
+ export function rscCallers(
180
+ options: WithInvocationOptions<RscCallersOptions>,
181
+ ): Promise<RscCallersReport>;
121
182
  export function registryExtension(
122
- options: RegistryExtensionOptions,
183
+ options: WithInvocationOptions<RegistryExtensionOptions>,
123
184
  ): Promise<RegistryExtensionReport>;
124
185
  export function infraResourceRefs(
125
- options: InfraOptions & { address: string },
186
+ options: WithInvocationOptions<InfraOptions & { address: string }>,
126
187
  ): Promise<ResourceRefRow[]>;
127
188
  export function infraOutputs(
128
- options: InfraOptions & { moduleDir: string },
189
+ options: WithInvocationOptions<InfraOptions & { moduleDir: string }>,
129
190
  ): Promise<ModuleOutputsResult>;
130
- export function infraTestFor(options: InfraOptions & { tfFile: string }): Promise<TestForRow[]>;
191
+ export function infraTestFor(
192
+ options: WithInvocationOptions<InfraOptions & { tfFile: string }>,
193
+ ): Promise<TestForRow[]>;
131
194
  export function swiftImporters(
132
- options: SwiftOptions & { file: string },
195
+ options: WithInvocationOptions<SwiftOptions & { file: string }>,
133
196
  ): Promise<SwiftImporterRow[]>;
134
197
  export function swiftTestTargets(
135
- options: SwiftOptions & { file: string },
198
+ options: WithInvocationOptions<SwiftOptions & { file: string }>,
136
199
  ): Promise<SwiftTestTargetRow[]>;
137
200
  export function version(): Promise<string>;
@@ -0,0 +1,11 @@
1
+ /** Controls shared by every analysis invocation. Durations are in seconds. */
2
+ export interface InvocationOptions {
3
+ /** Command execution timeout. Defaults to 30; 0 or null disables it. */
4
+ timeout?: number | null;
5
+ /** Maximum time to wait for the machine-wide lock. Defaults to 30; 0 or null waits indefinitely. */
6
+ lockTimeout?: number | null;
7
+ /** Fail immediately instead of waiting when another invocation holds the lock. */
8
+ failOnLock?: boolean;
9
+ }
10
+
11
+ export type WithInvocationOptions<T> = T & InvocationOptions;
@@ -1,7 +1,9 @@
1
1
  // Named query modes (issue #419): data-pw, effects, rsc-callers, registry-extension.
2
2
 
3
3
  export interface DataPwOptions {
4
+ /** Project root. Defaults to the current working directory. */
4
5
  root?: string;
6
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
5
7
  config?: string;
6
8
  /** The selector-attribute value to find (e.g. `search-bar`). */
7
9
  value: string;
@@ -29,8 +31,11 @@ export interface DataPwReport {
29
31
  }
30
32
 
31
33
  export interface EffectsOptions {
34
+ /** Project root. Defaults to the current working directory. */
32
35
  root?: string;
36
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
33
37
  tsconfig?: string;
38
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
34
39
  config?: string;
35
40
  /** Effect kind to resolve (a key under `effects:` in config). */
36
41
  kind: string;
@@ -59,8 +64,11 @@ export interface EffectsReport {
59
64
  }
60
65
 
61
66
  export interface RscCallersOptions {
67
+ /** Project root. Defaults to the current working directory. */
62
68
  root?: string;
69
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
63
70
  tsconfig?: string;
71
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
64
72
  config?: string;
65
73
  /** Component file to find RSC callers of. */
66
74
  component: string;
@@ -81,6 +89,7 @@ export interface RscCallersReport {
81
89
  }
82
90
 
83
91
  export interface RegistryExtensionOptions {
92
+ /** Project root. Defaults to the current working directory. */
84
93
  root?: string;
85
94
  /** Registry file to summarize the entry pattern of. */
86
95
  registryFile: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "no-mistakes",
3
- "version": "0.32.1",
3
+ "version": "0.33.1",
4
4
  "description": "Static codebase analysis tools for TS/JS dependencies, dependents, and symbols",
5
5
  "license": "MIT",
6
6
  "repository": {
package/report-types.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export interface PlaywrightOptions {
2
+ /** Project root. Defaults to the current working directory. */
2
3
  root?: string;
4
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
3
5
  config?: string;
4
6
  playwrightConfig?: string[];
5
7
  project?: string;
@@ -40,7 +42,9 @@ export interface GraphEdge {
40
42
  }
41
43
 
42
44
  export interface InfraOptions {
45
+ /** Project root. Defaults to the current working directory. */
43
46
  root?: string;
47
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
44
48
  config?: string;
45
49
  /** `infraResourceRefs` address (`<type>.<name>`). */
46
50
  address?: string;
@@ -79,7 +83,9 @@ export interface TestForRow {
79
83
  }
80
84
 
81
85
  export interface SwiftOptions {
86
+ /** Project root. Defaults to the current working directory. */
82
87
  root?: string;
88
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
83
89
  config?: string;
84
90
  /** The Swift source file to query (relative to root). */
85
91
  file?: string;
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
 
3
- const DEFAULT_MAX_ATTEMPTS = 4;
4
- const DEFAULT_RETRY_BASE_MS = 500;
5
- const RETRY_MAX_DELAY_MS = 4_000;
3
+ // A GitHub Releases asset download or its separate .sha256 checksum fetch can
4
+ // hit a short-lived CDN 5xx, timeout, or connection reset. These defaults give
5
+ // each network operation a bounded multi-attempt window (~15s avg / ~31s worst
6
+ // case total sleep) to ride that out, rather than exhausting a tiny budget in a
7
+ // few seconds. Override via NO_MISTAKES_DOWNLOAD_MAX_ATTEMPTS /
8
+ // NO_MISTAKES_DOWNLOAD_RETRY_BASE_MS.
9
+ const DEFAULT_MAX_ATTEMPTS = 6;
10
+ const DEFAULT_RETRY_BASE_MS = 1_000;
11
+ const RETRY_MAX_DELAY_MS = 30_000;
6
12
  const RETRYABLE_NETWORK_CODES = new Set([
7
13
  "ECONNRESET",
8
14
  "ECONNREFUSED",
package/test-types.d.ts CHANGED
@@ -2,8 +2,11 @@ import type { SymbolEntrypoint } from "./traversal-types";
2
2
 
3
3
  export interface TestsPlanOptions {
4
4
  framework?: "vitest" | "playwright" | "dotnet" | "swift";
5
+ /** Project root. Defaults to the current working directory. */
5
6
  root?: string;
7
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
6
8
  config?: string;
9
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
7
10
  tsconfig?: string;
8
11
  base?: string;
9
12
  head?: string;
@@ -24,8 +27,11 @@ export interface TestsPlanOptions {
24
27
  }
25
28
 
26
29
  export interface TestsImpactOptions {
30
+ /** Project root. Defaults to the current working directory. */
27
31
  root?: string;
32
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
28
33
  config?: string;
34
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
29
35
  tsconfig?: string;
30
36
  /** Entrypoints to trace impact from: strings may use file#export, or pass { file, symbol }. */
31
37
  entrypoints: Array<string | SymbolEntrypoint>;
@@ -35,7 +41,9 @@ export interface TestsImpactOptions {
35
41
 
36
42
  export interface TestsTargetsOptions {
37
43
  framework: "vitest" | "playwright" | "dotnet" | "swift";
44
+ /** Project root. Defaults to the current working directory. */
38
45
  root?: string;
46
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
39
47
  config?: string;
40
48
  files: string[];
41
49
  }
@@ -100,8 +108,11 @@ export interface TestTargetWarning {
100
108
  }
101
109
 
102
110
  export interface TestsWhyOptions {
111
+ /** Project root. Defaults to the current working directory. */
103
112
  root?: string;
113
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
104
114
  config?: string;
115
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
105
116
  tsconfig?: string;
106
117
  test: string;
107
118
  changed?: string;
@@ -124,6 +135,7 @@ export interface TestGraph {
124
135
  }
125
136
 
126
137
  export interface LockfileDiffOptions {
138
+ /** Project root. Defaults to the current working directory. */
127
139
  root?: string;
128
140
  base: string;
129
141
  head?: string;
@@ -23,7 +23,9 @@ export type Relationship =
23
23
 
24
24
  export interface TraverseOptions {
25
25
  files: Array<string | SymbolEntrypoint>;
26
+ /** Project root. Defaults to the current working directory. */
26
27
  root?: string;
28
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
27
29
  tsconfig?: string;
28
30
  depth?: number;
29
31
  filters?: string[];
@@ -68,8 +70,11 @@ export type ExportKind =
68
70
 
69
71
  export interface SymbolsOptions {
70
72
  files: string[];
73
+ /** Project root. Defaults to the current working directory. */
71
74
  root?: string;
75
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
72
76
  tsconfig?: string;
77
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
73
78
  config?: string;
74
79
  mode?: "list" | "signature-impact";
75
80
  symbol?: string;
@@ -155,8 +160,11 @@ export interface SignatureImpactResult {
155
160
  }
156
161
 
157
162
  export interface ProjectOptions {
163
+ /** Project root. Defaults to the current working directory. */
158
164
  root?: string;
165
+ /** Path to tsconfig.json for alias resolution. Searched upward if omitted. */
159
166
  tsconfig?: string;
167
+ /** Path to the no-mistakes config file (e.g. .no-mistakes.yml). Auto-discovered in root if omitted. */
160
168
  config?: string;
161
169
  filters?: string[];
162
170
  targets?: string[];
package/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from "./invocation-types";
1
2
  export * from "./traversal-types";
2
3
  export * from "./analyze-project-types";
3
4
  export * from "./flow-types";