no-mistakes 0.62.1 → 0.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,12 +42,16 @@ import type {
42
42
  ProjectOptions,
43
43
  SymbolsListOptions,
44
44
  SymbolsSignatureImpactOptions,
45
+ TraverseGraphOptions,
45
46
  TraverseOptions,
47
+ TraversePathsOptions,
46
48
  } from "./traversal-types";
47
49
 
48
50
  type BatchedProjectOptions = Omit<ProjectOptions, "root" | "tsconfig" | "config">;
49
51
  type BatchedFlowOptions = Omit<FlowOptions, "root" | "tsconfig" | "config">;
50
52
  type BatchedTraverseOptions = TraverseOptions & Pick<ProjectOptions, "config">;
53
+ type BatchedDependencyTraverseOptions = (TraverseGraphOptions | TraversePathsOptions) &
54
+ Pick<ProjectOptions, "config">;
51
55
  type BatchedQueueRelatedOptions = BatchedProjectOptions & { files: string[] };
52
56
  type BatchedServerRouteRelatedOptions = BatchedProjectOptions &
53
57
  ({ files: string[] } | { roots: string[] });
@@ -62,7 +66,8 @@ type BatchedRootConfigOptions<T> = Omit<T, "root" | "config">;
62
66
  type BatchedRootTsConfigOptions<T> = Omit<T, "root" | "tsconfig" | "config">;
63
67
 
64
68
  export type AnalyzeProjectReportRequest =
65
- | ({ type: "dependencies" | "dependents" | "related"; id?: string } & BatchedTraverseOptions)
69
+ | ({ type: "dependencies"; id?: string } & BatchedDependencyTraverseOptions)
70
+ | ({ type: "dependents" | "related"; id?: string } & BatchedTraverseOptions)
66
71
  | ({ type: "symbols"; id?: string } & (SymbolsListOptions | SymbolsSignatureImpactOptions))
67
72
  | ({ type: "importUsages"; id?: string } & Omit<ImportUsagesOptions, "root">)
68
73
  | ({ type: "flow"; id?: string } & BatchedFlowOptions)
@@ -95,6 +100,12 @@ export type AnalyzeProjectReportRequest =
95
100
  type: "resolveCheck";
96
101
  id?: string;
97
102
  } & BatchedQueryFileOptions<ResolveCheckOptions | ResolveCheckFilesOptions>)
103
+ | {
104
+ /** Checks the union of seed and reachable files from dependency reports in this request. */
105
+ type: "resolveCheckDependencies";
106
+ id?: string;
107
+ dependencyReportIds: string[];
108
+ }
98
109
  | ({ type: "fetches"; id?: string } & BatchedRootConfigOptions<FetchesOptions>)
99
110
  | ({ type: "dataPw"; id?: string } & BatchedRootConfigOptions<DataPwOptions>)
100
111
  | ({ type: "registryExtension"; id?: string } & Omit<RegistryExtensionOptions, "root">)
@@ -0,0 +1,25 @@
1
+ import type { TraverseOptions, TsConfigDiagnostic } from "./traversal-types";
2
+
3
+ export type TraverseProjection = "graph" | "paths";
4
+
5
+ export type DependencyBoundOptions = {
6
+ /** Pre-traversal include globs for the initial candidate inventory. */
7
+ candidateInclude?: string[];
8
+ /** Pre-traversal exclude globs. Reachable imports still escape this set. */
9
+ candidateExclude?: string[];
10
+ };
11
+
12
+ export type TraverseGraphOptions = TraverseOptions &
13
+ DependencyBoundOptions & {
14
+ projection?: "graph";
15
+ };
16
+
17
+ export type TraversePathsOptions = TraverseOptions &
18
+ DependencyBoundOptions & {
19
+ projection: "paths";
20
+ };
21
+
22
+ export interface ImportClosureResult {
23
+ files: string[];
24
+ diagnostics: TsConfigDiagnostic[];
25
+ }
package/index.d.ts CHANGED
@@ -50,7 +50,10 @@ import type {
50
50
  TestsTargetsOptions,
51
51
  TestsTargetsReport,
52
52
  TestsWhyOptions,
53
+ TraverseGraphOptions,
53
54
  TraverseOptions,
55
+ TraversePathsOptions,
56
+ ImportClosureResult,
54
57
  WhyStep,
55
58
  WithInvocationOptions,
56
59
  WritePlanningImpactArtifactsOptions,
@@ -61,7 +64,10 @@ export * from "./types";
61
64
  export * from "./index-ci-infra";
62
65
 
63
66
  export function dependencies(
64
- options: WithInvocationOptions<TraverseOptions>,
67
+ options: WithInvocationOptions<TraversePathsOptions>,
68
+ ): Promise<ImportClosureResult>;
69
+ export function dependencies(
70
+ options: WithInvocationOptions<TraverseGraphOptions>,
65
71
  ): Promise<DependencyResult>;
66
72
  export function dependents(
67
73
  options: WithInvocationOptions<TraverseOptions>,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "no-mistakes",
3
- "version": "0.62.1",
3
+ "version": "0.64.0",
4
4
  "description": "Deterministic impact maps, test plans, Playwright coverage, and repository checks for coding agents",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -45,9 +45,9 @@
45
45
  "access": "public"
46
46
  },
47
47
  "optionalDependencies": {
48
- "no-mistakes-darwin-arm64": "0.62.1",
49
- "no-mistakes-linux-arm64-gnu": "0.62.1",
50
- "no-mistakes-linux-x64-gnu": "0.62.1",
51
- "no-mistakes-win32-x64-msvc": "0.62.1"
48
+ "no-mistakes-darwin-arm64": "0.64.0",
49
+ "no-mistakes-linux-arm64-gnu": "0.64.0",
50
+ "no-mistakes-linux-x64-gnu": "0.64.0",
51
+ "no-mistakes-win32-x64-msvc": "0.64.0"
52
52
  }
53
53
  }
package/query-types.d.ts CHANGED
@@ -121,6 +121,12 @@ export interface ResolveCheckImport {
121
121
  status: ImportResolutionStatus;
122
122
  /** Root-relative resolved target, when the import resolves locally. */
123
123
  resolved?: string;
124
+ /**
125
+ * `true` when the specifier is not a string literal or empty template
126
+ * (`import(\`./${name}\`)`, `import(moduleName)`, `require(name)`).
127
+ * Computed imports are always `unresolved`.
128
+ */
129
+ computed: boolean;
124
130
  }
125
131
 
126
132
  export interface ResolveCheckResult {
@@ -0,0 +1,35 @@
1
+ export interface SignatureImpactLocation {
2
+ file: string;
3
+ symbol: string;
4
+ line: number;
5
+ kind: string;
6
+ }
7
+
8
+ export interface SignatureImpactCaller {
9
+ file: string;
10
+ symbol?: string;
11
+ depth: number;
12
+ via: string[];
13
+ }
14
+
15
+ export interface SignatureImpactTest {
16
+ file: string;
17
+ depth: number;
18
+ via: string[];
19
+ }
20
+
21
+ export interface SignatureImpactWarning {
22
+ type: string;
23
+ message: string;
24
+ }
25
+
26
+ export interface SignatureImpactResult {
27
+ roots: string[];
28
+ symbol: string;
29
+ definition: SignatureImpactLocation;
30
+ exports: SignatureImpactLocation[];
31
+ productionCallers: SignatureImpactCaller[];
32
+ testCallers: SignatureImpactCaller[];
33
+ suggestedTests: SignatureImpactTest[];
34
+ warnings: SignatureImpactWarning[];
35
+ }
@@ -54,6 +54,13 @@ export interface TraverseOptions {
54
54
  includeSymbols?: boolean;
55
55
  }
56
56
 
57
+ export type {
58
+ ImportClosureResult,
59
+ TraverseGraphOptions,
60
+ TraversePathsOptions,
61
+ TraverseProjection,
62
+ } from "./import-closure-types";
63
+
57
64
  export interface DependencyFile {
58
65
  path?: string;
59
66
  file?: string;
@@ -167,41 +174,13 @@ export interface SymbolsResult {
167
174
  files: SymbolFile[];
168
175
  }
169
176
 
170
- export interface SignatureImpactLocation {
171
- file: string;
172
- symbol: string;
173
- line: number;
174
- kind: string;
175
- }
176
-
177
- export interface SignatureImpactCaller {
178
- file: string;
179
- symbol?: string;
180
- depth: number;
181
- via: string[];
182
- }
183
-
184
- export interface SignatureImpactTest {
185
- file: string;
186
- depth: number;
187
- via: string[];
188
- }
189
-
190
- export interface SignatureImpactWarning {
191
- type: string;
192
- message: string;
193
- }
194
-
195
- export interface SignatureImpactResult {
196
- roots: string[];
197
- symbol: string;
198
- definition: SignatureImpactLocation;
199
- exports: SignatureImpactLocation[];
200
- productionCallers: SignatureImpactCaller[];
201
- testCallers: SignatureImpactCaller[];
202
- suggestedTests: SignatureImpactTest[];
203
- warnings: SignatureImpactWarning[];
204
- }
177
+ export type {
178
+ SignatureImpactCaller,
179
+ SignatureImpactLocation,
180
+ SignatureImpactResult,
181
+ SignatureImpactTest,
182
+ SignatureImpactWarning,
183
+ } from "./signature-impact-types";
205
184
 
206
185
  export interface ProjectOptions {
207
186
  /** Project root. Defaults to the current working directory. */