no-mistakes 0.48.3 → 0.49.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.
@@ -7,6 +7,8 @@ import type {
7
7
  CiImpactOptions,
8
8
  CiImpactReport,
9
9
  CiTopologyOptions,
10
+ CiTopologyImpactOptions,
11
+ CiTopologyImpactReport,
10
12
  DataPwOptions,
11
13
  DataPwReport,
12
14
  EffectsOptions,
@@ -39,6 +41,9 @@ export function ciEnv(options: WithInvocationOptions<CiEnvOptions>): Promise<CiE
39
41
  export function ciTopology(
40
42
  options?: WithInvocationOptions<CiTopologyOptions>,
41
43
  ): Promise<WorkflowTopology>;
44
+ export function ciTopologyImpact(
45
+ options: WithInvocationOptions<CiTopologyImpactOptions>,
46
+ ): Promise<CiTopologyImpactReport>;
42
47
  /** Builds a query index over a `ciTopology()` result. Pure JS — never crosses the N-API boundary. */
43
48
  export function createWorkflowTopologyIndex(topology: WorkflowTopology): WorkflowTopologyIndex;
44
49
  export function impactedChecks(
package/index.js CHANGED
@@ -30,6 +30,7 @@ const jsonApis = createJsonApis({
30
30
  ciEnv: "ciEnvJson",
31
31
  ciImpact: "ciImpactJson",
32
32
  ciTopology: "ciTopologyJson",
33
+ ciTopologyImpact: "ciTopologyImpactJson",
33
34
  dataPw: "dataPwJson",
34
35
  deadExports: "deadExportsJson",
35
36
  dependencies: "dependenciesJson",
@@ -145,6 +146,7 @@ module.exports.resolveConfig = jsonApis.resolveConfig;
145
146
  module.exports.ciEnv = jsonApis.ciEnv;
146
147
  module.exports.ciImpact = jsonApis.ciImpact;
147
148
  module.exports.ciTopology = ciTopology;
149
+ module.exports.ciTopologyImpact = jsonApis.ciTopologyImpact;
148
150
  module.exports.dataPw = jsonApis.dataPw;
149
151
  module.exports.deadExports = jsonApis.deadExports;
150
152
  module.exports.dependencies = jsonApis.dependencies;
package/index.mjs CHANGED
@@ -10,6 +10,7 @@ export const {
10
10
  ciEnv,
11
11
  ciImpact,
12
12
  ciTopology,
13
+ ciTopologyImpact,
13
14
  createWorkflowTopologyIndex,
14
15
  dataPw,
15
16
  deadExports,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "no-mistakes",
3
- "version": "0.48.3",
3
+ "version": "0.49.0",
4
4
  "description": "Static codebase analysis tools for TS/JS dependencies, dependents, and symbols",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -0,0 +1,32 @@
1
+ /** Revision-aware impact routing over an entry GitHub Actions workflow. */
2
+ export interface CiTopologyImpactOptions {
3
+ /** Project root. Defaults to the current working directory. */
4
+ root?: string;
5
+ /** Exact Git revision, e.g. a pull request base SHA. */
6
+ base: string;
7
+ /** Exact Git revision, e.g. GitHub's tested merge SHA. */
8
+ head: string;
9
+ /** Workflow path or basename, restricted to `.github/workflows`. */
10
+ entryWorkflow: string;
11
+ }
12
+
13
+ export interface CiTopologyImpactDiagnostic {
14
+ code: string;
15
+ message: string;
16
+ workflowPath?: string;
17
+ /** Whether the diagnostic maps completely to entry-workflow jobs. */
18
+ scope: "localized" | "global";
19
+ /** Sorted entry job IDs when and only when `scope` is `localized`. */
20
+ rootJobIds?: string[];
21
+ }
22
+
23
+ export interface CiTopologyImpactReport {
24
+ schemaVersion: 1;
25
+ baseRevision: string;
26
+ headRevision: string;
27
+ changedPaths: string[];
28
+ affectedWorkflows: string[];
29
+ affectedRootJobIds: string[];
30
+ diagnostics: CiTopologyImpactDiagnostic[];
31
+ globalFallback: boolean;
32
+ }
@@ -7,6 +7,7 @@
7
7
 
8
8
  import type { ArtifactDeclaration, ArtifactEdge } from "./workflow-topology-artifact-types";
9
9
  import type { ResolvedPermissions } from "./ci-types";
10
+ export * from "./workflow-topology-impact-types";
10
11
 
11
12
  export * from "./workflow-topology-artifact-types";
12
13
  export * from "./workflow-topology-index-types";