no-mistakes 0.32.0 → 0.33.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.
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(),
@@ -108,6 +110,13 @@ const {
108
110
  })();
109
111
  ```
110
112
 
113
+ CLI and Node analyses share a per-user machine-wide lock. CLI flags
114
+ `--timeout`, `--lock-timeout`, and `--fail-on-lock` have Node equivalents
115
+ `timeout`, `lockTimeout`, and `failOnLock`. Both timeouts default to 30 seconds;
116
+ `0` disables either CLI timeout, while `0` or `null` disables it in Node.
117
+ Waiting does not alter successful output, and Node lock/timeout failures reject
118
+ the returned Promise.
119
+
111
120
  External `no-mistakes-*` executables on `PATH` can be invoked as subcommands.
112
121
  For example, after installing `no-mistakes-scripts`:
113
122
 
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "no-mistakes",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "description": "Static codebase analysis tools for TS/JS dependencies, dependents, and symbols",
5
5
  "license": "MIT",
6
6
  "repository": {
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";