no-mistakes 0.36.1 → 0.37.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/index.js +46 -169
- package/package.json +1 -1
- package/planning.js +25 -72
- package/workflow-topology-types.d.ts +28 -0
package/index.js
CHANGED
|
@@ -8,182 +8,59 @@ async function callJson(fn, options) {
|
|
|
8
8
|
return JSON.parse(await fn(JSON.stringify(options || {})));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
async
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return callJson(native.fetchesJson, options);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async function check(options) {
|
|
60
|
-
return callJson(native.checkJson, options);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async function playwrightCheck(options) {
|
|
64
|
-
return callJson(native.playwrightCheckJson, options);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async function playwrightEdges(options) {
|
|
68
|
-
return callJson(native.playwrightEdgesJson, options);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async function playwrightRelated(options) {
|
|
72
|
-
return callJson(native.playwrightRelatedJson, options);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
async function playwrightTests(options) {
|
|
76
|
-
return callJson(native.playwrightTestsJson, options);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
async function reactAnalyze(options) {
|
|
80
|
-
return callJson(native.reactAnalyzeJson, options);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
async function reactCheck(options) {
|
|
84
|
-
return callJson(native.reactCheckJson, options);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
async function reactUsages(options) {
|
|
88
|
-
return callJson(native.reactUsagesJson, options);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async function dataPw(options) {
|
|
92
|
-
return callJson(native.dataPwJson, options);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async function effects(options) {
|
|
96
|
-
return callJson(native.effectsJson, options);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async function rscCallers(options) {
|
|
100
|
-
return callJson(native.rscCallersJson, options);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
async function registryExtension(options) {
|
|
104
|
-
return callJson(native.registryExtensionJson, options);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
async function lockfileDiff(options) {
|
|
108
|
-
return callJson(native.lockfileDiffJson, options);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
async function ciImpact(options) {
|
|
112
|
-
return callJson(native.ciImpactJson, options);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
async function ciEnv(options) {
|
|
116
|
-
return callJson(native.ciEnvJson, options);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async function ciTopology(options) {
|
|
120
|
-
return callJson(native.ciTopologyJson, options);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async function impactedChecks(options) {
|
|
124
|
-
return callJson(native.impactedChecksJson, options);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
async function infraResourceRefs(options) {
|
|
128
|
-
return callJson(native.infraResourceRefsJson, options);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
async function infraOutputs(options) {
|
|
132
|
-
return callJson(native.infraOutputsJson, options);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
async function infraTestFor(options) {
|
|
136
|
-
return callJson(native.infraTestForJson, options);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
async function swiftImporters(options) {
|
|
140
|
-
return callJson(native.swiftImportersJson, options);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
async function swiftTestTargets(options) {
|
|
144
|
-
return callJson(native.swiftTestTargetsJson, options);
|
|
145
|
-
}
|
|
11
|
+
function createJsonApis(descriptors) {
|
|
12
|
+
return Object.fromEntries(
|
|
13
|
+
Object.entries(descriptors).map(([apiName, nativeName]) => [
|
|
14
|
+
apiName,
|
|
15
|
+
async (options) => callJson(native[nativeName], options),
|
|
16
|
+
]),
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const jsonApis = createJsonApis({
|
|
21
|
+
analyzeProject: "analyzeProjectJson",
|
|
22
|
+
callSites: "callSitesJson",
|
|
23
|
+
check: "checkJson",
|
|
24
|
+
ciEnv: "ciEnvJson",
|
|
25
|
+
ciImpact: "ciImpactJson",
|
|
26
|
+
ciTopology: "ciTopologyJson",
|
|
27
|
+
dataPw: "dataPwJson",
|
|
28
|
+
deadExports: "deadExportsJson",
|
|
29
|
+
dependencies: "dependenciesJson",
|
|
30
|
+
dependents: "dependentsJson",
|
|
31
|
+
effects: "effectsJson",
|
|
32
|
+
exportsOf: "exportsOfJson",
|
|
33
|
+
fetches: "fetchesJson",
|
|
34
|
+
impactedChecks: "impactedChecksJson",
|
|
35
|
+
importUsages: "importUsagesJson",
|
|
36
|
+
importers: "importersJson",
|
|
37
|
+
infraOutputs: "infraOutputsJson",
|
|
38
|
+
infraResourceRefs: "infraResourceRefsJson",
|
|
39
|
+
infraTestFor: "infraTestForJson",
|
|
40
|
+
lockfileDiff: "lockfileDiffJson",
|
|
41
|
+
playwrightCheck: "playwrightCheckJson",
|
|
42
|
+
playwrightEdges: "playwrightEdgesJson",
|
|
43
|
+
playwrightRelated: "playwrightRelatedJson",
|
|
44
|
+
playwrightTests: "playwrightTestsJson",
|
|
45
|
+
reactAnalyze: "reactAnalyzeJson",
|
|
46
|
+
reactCheck: "reactCheckJson",
|
|
47
|
+
reactUsages: "reactUsagesJson",
|
|
48
|
+
registryExtension: "registryExtensionJson",
|
|
49
|
+
related: "relatedJson",
|
|
50
|
+
resolveCheck: "resolveCheckJson",
|
|
51
|
+
rscCallers: "rscCallersJson",
|
|
52
|
+
swiftImporters: "swiftImportersJson",
|
|
53
|
+
swiftTestTargets: "swiftTestTargetsJson",
|
|
54
|
+
symbols: "symbolsJson",
|
|
55
|
+
});
|
|
146
56
|
|
|
147
57
|
async function version() {
|
|
148
58
|
return native.version();
|
|
149
59
|
}
|
|
150
60
|
|
|
151
61
|
module.exports = {
|
|
152
|
-
analyzeProject,
|
|
153
|
-
callSites,
|
|
154
|
-
check,
|
|
155
|
-
ciEnv,
|
|
156
|
-
ciImpact,
|
|
157
|
-
ciTopology,
|
|
158
62
|
createWorkflowTopologyIndex,
|
|
159
|
-
dataPw,
|
|
160
|
-
deadExports,
|
|
161
|
-
dependencies,
|
|
162
|
-
dependents,
|
|
163
|
-
effects,
|
|
164
|
-
exportsOf,
|
|
165
|
-
fetches,
|
|
166
|
-
impactedChecks,
|
|
167
|
-
importUsages,
|
|
168
|
-
importers,
|
|
169
|
-
infraOutputs,
|
|
170
|
-
infraResourceRefs,
|
|
171
|
-
infraTestFor,
|
|
172
|
-
lockfileDiff,
|
|
173
|
-
playwrightCheck,
|
|
174
|
-
playwrightEdges,
|
|
175
|
-
playwrightRelated,
|
|
176
|
-
playwrightTests,
|
|
177
|
-
reactAnalyze,
|
|
178
|
-
reactCheck,
|
|
179
|
-
reactUsages,
|
|
180
|
-
registryExtension,
|
|
181
|
-
related,
|
|
182
|
-
resolveCheck,
|
|
183
|
-
rscCallers,
|
|
184
|
-
swiftImporters,
|
|
185
|
-
swiftTestTargets,
|
|
186
|
-
symbols,
|
|
187
63
|
version,
|
|
64
|
+
...jsonApis,
|
|
188
65
|
...planning,
|
|
189
66
|
};
|
package/package.json
CHANGED
package/planning.js
CHANGED
|
@@ -6,90 +6,43 @@ async function callJson(fn, options) {
|
|
|
6
6
|
return JSON.parse(await fn(JSON.stringify(options || {})));
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
return
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
async
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
async function testsImpact(options) {
|
|
18
|
-
return callJson(native.testsImpactJson, options);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async function testsWhy(options) {
|
|
22
|
-
return callJson(native.testsWhyJson, options);
|
|
9
|
+
function createJsonApis(descriptors) {
|
|
10
|
+
return Object.fromEntries(
|
|
11
|
+
Object.entries(descriptors).map(([apiName, nativeName]) => [
|
|
12
|
+
apiName,
|
|
13
|
+
async (options) => callJson(native[nativeName], options),
|
|
14
|
+
]),
|
|
15
|
+
);
|
|
23
16
|
}
|
|
24
17
|
|
|
25
18
|
async function testsComment(options) {
|
|
26
19
|
return native.testsCommentMarkdown(JSON.stringify(options || {}));
|
|
27
20
|
}
|
|
28
21
|
|
|
29
|
-
async function testsGraph(options) {
|
|
30
|
-
return callJson(native.testsGraphJson, options);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
22
|
async function testsGraphMermaid(options) {
|
|
34
23
|
return native.testsGraphMermaid(JSON.stringify(options || {}));
|
|
35
24
|
}
|
|
36
25
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return callJson(native.serverRoutesJson, options);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async function serverRouteList(options) {
|
|
58
|
-
return callJson(native.serverRouteListJson, options);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async function serverRouteEdges(options) {
|
|
62
|
-
return callJson(native.serverRouteEdgesJson, options);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
async function serverRouteRelated(options) {
|
|
66
|
-
return callJson(native.serverRouteRelatedJson, options);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async function serverContracts(options) {
|
|
70
|
-
return callJson(native.serverContractsJson, options);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async function flow(options) {
|
|
74
|
-
return callJson(native.flowJson, options);
|
|
75
|
-
}
|
|
26
|
+
const jsonApis = createJsonApis({
|
|
27
|
+
flow: "flowJson",
|
|
28
|
+
queueCheck: "queueCheckJson",
|
|
29
|
+
queueEdges: "queueEdgesJson",
|
|
30
|
+
queueRelated: "queueRelatedJson",
|
|
31
|
+
queues: "queuesJson",
|
|
32
|
+
serverContracts: "serverContractsJson",
|
|
33
|
+
serverRouteEdges: "serverRouteEdgesJson",
|
|
34
|
+
serverRouteList: "serverRouteListJson",
|
|
35
|
+
serverRouteRelated: "serverRouteRelatedJson",
|
|
36
|
+
serverRoutes: "serverRoutesJson",
|
|
37
|
+
testsGraph: "testsGraphJson",
|
|
38
|
+
testsImpact: "testsImpactJson",
|
|
39
|
+
testsPlan: "testsPlanJson",
|
|
40
|
+
testsTargets: "testsTargetsJson",
|
|
41
|
+
testsWhy: "testsWhyJson",
|
|
42
|
+
});
|
|
76
43
|
|
|
77
44
|
module.exports = {
|
|
78
|
-
flow,
|
|
79
|
-
queueCheck,
|
|
80
|
-
queueEdges,
|
|
81
|
-
queueRelated,
|
|
82
|
-
queues,
|
|
83
|
-
serverContracts,
|
|
84
|
-
serverRouteEdges,
|
|
85
|
-
serverRouteList,
|
|
86
|
-
serverRouteRelated,
|
|
87
|
-
serverRoutes,
|
|
88
45
|
testsComment,
|
|
89
|
-
testsGraph,
|
|
90
46
|
testsGraphMermaid,
|
|
91
|
-
|
|
92
|
-
testsPlan,
|
|
93
|
-
testsTargets,
|
|
94
|
-
testsWhy,
|
|
47
|
+
...jsonApis,
|
|
95
48
|
};
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// array/diagnostic sort order are part of the contract).
|
|
7
7
|
|
|
8
8
|
import type { ArtifactDeclaration, ArtifactEdge } from "./workflow-topology-artifact-types";
|
|
9
|
+
import type { ResolvedPermissions } from "./ci-types";
|
|
9
10
|
|
|
10
11
|
export * from "./workflow-topology-artifact-types";
|
|
11
12
|
export * from "./workflow-topology-index-types";
|
|
@@ -33,6 +34,7 @@ export type JsonValue =
|
|
|
33
34
|
| { [key: string]: JsonValue };
|
|
34
35
|
|
|
35
36
|
export type ConcurrencyValue = boolean | string;
|
|
37
|
+
export type WorkflowRunsOn = string | string[] | { group: string; labels?: string | string[] };
|
|
36
38
|
|
|
37
39
|
export interface WorkflowConcurrency {
|
|
38
40
|
raw: { group: string; cancelInProgress?: ConcurrencyValue; queue?: string };
|
|
@@ -74,6 +76,10 @@ export type WorkflowNode = {
|
|
|
74
76
|
triggers: WorkflowTrigger[];
|
|
75
77
|
jobIds: string[];
|
|
76
78
|
concurrency?: WorkflowConcurrency;
|
|
79
|
+
/** Workflow-scoped environment declarations, without expression evaluation. */
|
|
80
|
+
env?: Record<string, string>;
|
|
81
|
+
/** Static `secrets.*` names referenced directly at workflow scope. */
|
|
82
|
+
secretReferences?: string[];
|
|
77
83
|
} & (
|
|
78
84
|
| { callable: true; workflowCall: WorkflowCallContract }
|
|
79
85
|
| { callable: false; workflowCall?: undefined }
|
|
@@ -88,6 +94,14 @@ export interface WorkflowStep {
|
|
|
88
94
|
uses?: string;
|
|
89
95
|
/** Present when this step is an `actions/{upload,download}-artifact` action. */
|
|
90
96
|
artifact?: ArtifactDeclaration;
|
|
97
|
+
/** Raw authored shell command; expressions are not evaluated. */
|
|
98
|
+
run?: string;
|
|
99
|
+
/** Raw scalar action inputs; expressions are not evaluated. */
|
|
100
|
+
with?: Record<string, JsonScalar>;
|
|
101
|
+
/** Step-scoped environment declarations, without expression evaluation. */
|
|
102
|
+
env?: Record<string, string>;
|
|
103
|
+
/** Static `secrets.*` names referenced directly by this step. */
|
|
104
|
+
secretReferences?: string[];
|
|
91
105
|
}
|
|
92
106
|
|
|
93
107
|
export interface WorkflowJobNode {
|
|
@@ -100,6 +114,20 @@ export interface WorkflowJobNode {
|
|
|
100
114
|
matrix?: JsonValue;
|
|
101
115
|
concurrency?: WorkflowConcurrency;
|
|
102
116
|
steps: WorkflowStep[];
|
|
117
|
+
/** Environment name from scalar or `{ name }` job syntax. */
|
|
118
|
+
environment?: string;
|
|
119
|
+
/** Declared timeout; absent jobs use GitHub's effective 360-minute default. */
|
|
120
|
+
timeoutMinutes?: number;
|
|
121
|
+
/** Declared runner label, ordered label list, or runner-group selection. */
|
|
122
|
+
runsOn?: WorkflowRunsOn;
|
|
123
|
+
/** Effective permissions, identical to the `ciImpact()` job shape. */
|
|
124
|
+
permissions: ResolvedPermissions;
|
|
125
|
+
/** Job output declarations, without expression evaluation. */
|
|
126
|
+
outputs?: Record<string, string>;
|
|
127
|
+
/** Job-scoped environment declarations, without expression evaluation. */
|
|
128
|
+
env?: Record<string, string>;
|
|
129
|
+
/** Static `secrets.*` names referenced directly by this job. */
|
|
130
|
+
secretReferences?: string[];
|
|
103
131
|
}
|
|
104
132
|
|
|
105
133
|
export interface NeedsEdge {
|