@ploaness/cli 1.0.0 → 1.2.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/dist/checks/assets.d.ts +12 -0
- package/dist/checks/assets.d.ts.map +1 -1
- package/dist/checks/assets.js +27 -4
- package/dist/checks/assets.js.map +1 -1
- package/dist/checks/blocklist.d.ts +8 -0
- package/dist/checks/blocklist.d.ts.map +1 -0
- package/dist/checks/blocklist.js +106 -0
- package/dist/checks/blocklist.js.map +1 -0
- package/dist/checks/containers.d.ts +1 -1
- package/dist/checks/containers.d.ts.map +1 -1
- package/dist/checks/containers.js +31 -27
- package/dist/checks/containers.js.map +1 -1
- package/dist/checks/conventions.d.ts +2 -1
- package/dist/checks/conventions.d.ts.map +1 -1
- package/dist/checks/conventions.js +9 -7
- package/dist/checks/conventions.js.map +1 -1
- package/dist/checks/dependencies.d.ts.map +1 -1
- package/dist/checks/dependencies.js +83 -42
- package/dist/checks/dependencies.js.map +1 -1
- package/dist/checks/editorconfig.d.ts +1 -1
- package/dist/checks/editorconfig.d.ts.map +1 -1
- package/dist/checks/editorconfig.js +12 -10
- package/dist/checks/editorconfig.js.map +1 -1
- package/dist/checks/environment.d.ts +13 -0
- package/dist/checks/environment.d.ts.map +1 -0
- package/dist/checks/environment.js +50 -0
- package/dist/checks/environment.js.map +1 -0
- package/dist/checks/install.d.ts +2 -0
- package/dist/checks/install.d.ts.map +1 -1
- package/dist/checks/install.js +10 -1
- package/dist/checks/install.js.map +1 -1
- package/dist/checks/integrity.d.ts +1 -1
- package/dist/checks/integrity.d.ts.map +1 -1
- package/dist/checks/integrity.js +4 -4
- package/dist/checks/integrity.js.map +1 -1
- package/dist/checks/oxlint.d.ts +5 -0
- package/dist/checks/oxlint.d.ts.map +1 -0
- package/dist/checks/oxlint.js +85 -0
- package/dist/checks/oxlint.js.map +1 -0
- package/dist/checks/payload.d.ts +22 -1
- package/dist/checks/payload.d.ts.map +1 -1
- package/dist/checks/payload.js +194 -28
- package/dist/checks/payload.js.map +1 -1
- package/dist/checks/references.d.ts.map +1 -1
- package/dist/checks/references.js +3 -3
- package/dist/checks/references.js.map +1 -1
- package/dist/checks/suppressions.d.ts +2 -2
- package/dist/checks/suppressions.d.ts.map +1 -1
- package/dist/checks/suppressions.js +32 -12
- package/dist/checks/suppressions.js.map +1 -1
- package/dist/checks/tailwind.d.ts.map +1 -1
- package/dist/checks/tailwind.js +3 -3
- package/dist/checks/tailwind.js.map +1 -1
- package/dist/checks/tests.d.ts.map +1 -1
- package/dist/checks/tests.js +13 -5
- package/dist/checks/tests.js.map +1 -1
- package/dist/checks/tree.d.ts +9 -2
- package/dist/checks/tree.d.ts.map +1 -1
- package/dist/checks/tree.js +17 -29
- package/dist/checks/tree.js.map +1 -1
- package/dist/checks/wiring.d.ts +10 -0
- package/dist/checks/wiring.d.ts.map +1 -1
- package/dist/checks/wiring.js +50 -5
- package/dist/checks/wiring.js.map +1 -1
- package/dist/commands/format.d.ts +4 -1
- package/dist/commands/format.d.ts.map +1 -1
- package/dist/commands/format.js +17 -3
- package/dist/commands/format.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/context.d.ts +1 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +25 -24
- package/dist/context.js.map +1 -1
- package/dist/gates.d.ts.map +1 -1
- package/dist/gates.js +56 -12
- package/dist/gates.js.map +1 -1
- package/dist/probes/payload-defaults.probe.d.ts +2 -0
- package/dist/probes/payload-defaults.probe.d.ts.map +1 -0
- package/dist/probes/payload-defaults.probe.js +116 -0
- package/dist/probes/payload-defaults.probe.js.map +1 -0
- package/dist/secret-mirror.d.ts +3 -0
- package/dist/secret-mirror.d.ts.map +1 -0
- package/dist/secret-mirror.js +51 -0
- package/dist/secret-mirror.js.map +1 -0
- package/dist/source-comments.d.ts +9 -0
- package/dist/source-comments.d.ts.map +1 -0
- package/dist/source-comments.js +54 -0
- package/dist/source-comments.js.map +1 -0
- package/dist/working-tree.d.ts +5 -0
- package/dist/working-tree.d.ts.map +1 -0
- package/dist/working-tree.js +36 -0
- package/dist/working-tree.js.map +1 -0
- package/package.json +8 -7
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js +0 -57
- package/dist/commands/hooks.js.map +0 -1
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
// behind" is, and that is a real liability.
|
|
5
5
|
import { realpathSync } from 'node:fs';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import { asRecord, asText, collectCoordinates, findFreshnessViolations, findLicenseViolations, HARNESS_EXCEPTIONS, HARNESS_PACKAGE, hoursPublished, inheritedManifestPaths, isArray, isHeldByReleaseAge, isRecord, judgeVulnerabilities, mapWithConcurrency, NETWORKED_TOOL_TIMEOUT_MS, REGISTRY_CONCURRENCY, RELEASE_AGE_FLOOR_HOURS, REQUEST_TIMEOUT_MS, } from '@ploaness/governance';
|
|
8
|
-
import { manifestPathFrom, readJson,
|
|
7
|
+
import { asRecord, asText, collectCoordinates, findFreshnessViolations, findLicenseViolations, HARNESS_EXCEPTIONS, HARNESS_PACKAGE, hoursPublished, inheritedManifestPaths, isArray, isHarnessRelease, isHarnessRepository, isHeldByReleaseAge, isRecord, judgeVulnerabilities, mapWithConcurrency, NETWORKED_TOOL_TIMEOUT_MS, REGISTRY_CONCURRENCY, RELEASE_AGE_FLOOR_HOURS, REQUEST_TIMEOUT_MS, scopeFreshness, sectionFreshnessReport, } from '@ploaness/governance';
|
|
8
|
+
import { manifestPathFrom, readJson, workingTreeFiles } from '../context.js';
|
|
9
9
|
import { failed, passed, run, TIMED_OUT_CODE, withOutput, } from '../exec.js';
|
|
10
10
|
import { imageFreshness } from './images.js';
|
|
11
|
+
import { harnessDecidedVersions } from './wiring.js';
|
|
11
12
|
/** Every dependency license must sit inside the allowlist. */
|
|
12
13
|
// Report enough of a tool's raw output to diagnose it, without pasting a whole log into a finding.
|
|
13
14
|
const MAX_REPORTED_CHARS = 2000;
|
|
@@ -43,7 +44,7 @@ export const licenses = (context) => {
|
|
|
43
44
|
const MANIFEST_NAME = 'package.json';
|
|
44
45
|
// Every manifest the repository tracks, not only the root one. A workspace declares its toolchain across
|
|
45
46
|
// several of them, and reading the root alone left every analyzer ploaness itself runs on unmeasured.
|
|
46
|
-
const
|
|
47
|
+
const repositoryManifests = (context) => workingTreeFiles(context.root)
|
|
47
48
|
.filter((file) => file === MANIFEST_NAME || file.endsWith(`/${MANIFEST_NAME}`))
|
|
48
49
|
.map((file) => ({
|
|
49
50
|
path: file,
|
|
@@ -52,7 +53,7 @@ const trackedManifests = (context) => trackedFiles(context.root)
|
|
|
52
53
|
}));
|
|
53
54
|
// A path as the filesystem finally names it, so the same manifest reached two ways compares equal.
|
|
54
55
|
// Under pnpm every installed package is a symlink into the store, and in a workspace it is a symlink
|
|
55
|
-
// back into the tree - which is how an inherited manifest can turn out to be
|
|
56
|
+
// back into the tree - which is how an inherited manifest can turn out to be one of the repository's own.
|
|
56
57
|
const realPathOrSelf = (file) => {
|
|
57
58
|
try {
|
|
58
59
|
return realpathSync(file);
|
|
@@ -72,10 +73,10 @@ const declaredName = (packageJson, fallback) => asText(asRecord(packageJson)['na
|
|
|
72
73
|
// The manifests a project INHERITS: `ploaness` as the project itself resolves it, and every ploaness
|
|
73
74
|
// package that one pulls in. The standard counts these as declared coordinates, and they are the
|
|
74
75
|
// manifests that decide which analyzer versions the project's gates actually run - none of which the
|
|
75
|
-
// project
|
|
76
|
+
// project's own tree holds, so a reader of the working tree alone could never see them. That is why a consumer's
|
|
76
77
|
// update report was silent about a harness pin going stale while ploaness's own report was not.
|
|
77
|
-
const inheritedManifests = (context,
|
|
78
|
-
const alreadyRead = new Set(
|
|
78
|
+
const inheritedManifests = (context, own) => {
|
|
79
|
+
const alreadyRead = new Set(own.map((manifest) => realPathOrSelf(path.join(context.root, manifest.path))));
|
|
79
80
|
const entry = manifestPathFrom(HARNESS_PACKAGE, path.join(context.root, MANIFEST_NAME));
|
|
80
81
|
return inheritedManifestPaths(entry, HARNESS_RESOLVER)
|
|
81
82
|
.filter((file) => !alreadyRead.has(realPathOrSelf(file)))
|
|
@@ -89,8 +90,8 @@ const inheritedManifests = (context, tracked) => {
|
|
|
89
90
|
});
|
|
90
91
|
};
|
|
91
92
|
const manifestSources = (context) => {
|
|
92
|
-
const
|
|
93
|
-
return [...
|
|
93
|
+
const own = repositoryManifests(context);
|
|
94
|
+
return [...own, ...inheritedManifests(context, own)];
|
|
94
95
|
};
|
|
95
96
|
// The registry exposes two documents per package: the packument root and, per version, a version
|
|
96
97
|
// document. `/{name}/latest` is the version document for the `latest` dist-tag and costs a few kilobytes,
|
|
@@ -133,7 +134,13 @@ const attemptLookup = async (name) => {
|
|
|
133
134
|
if (response.ok) {
|
|
134
135
|
const body = await response.json();
|
|
135
136
|
const version = asRecord(body)['version'];
|
|
136
|
-
|
|
137
|
+
// The licence rides along so the blocklist can stop the bound short of a release the licence gate
|
|
138
|
+
// would refuse. Read only as a string: an old package records it as an object, which says nothing
|
|
139
|
+
// this rule can judge.
|
|
140
|
+
const license = asRecord(body)['license'];
|
|
141
|
+
return typeof version === 'string'
|
|
142
|
+
? { kind: 'version', version, license: typeof license === 'string' ? license : undefined }
|
|
143
|
+
: { kind: 'absent' };
|
|
137
144
|
}
|
|
138
145
|
// A 404 is a real answer, and retrying cannot change it.
|
|
139
146
|
return response.status === NOT_FOUND ? { kind: 'absent' } : undefined;
|
|
@@ -154,7 +161,13 @@ const sortLookups = (coordinates, lookups) => {
|
|
|
154
161
|
if (lookup?.kind !== 'version') {
|
|
155
162
|
return [];
|
|
156
163
|
}
|
|
157
|
-
return [
|
|
164
|
+
return [
|
|
165
|
+
{
|
|
166
|
+
...coordinate,
|
|
167
|
+
latest: lookup.version,
|
|
168
|
+
...(lookup.license !== undefined && { latestLicense: lookup.license }),
|
|
169
|
+
},
|
|
170
|
+
];
|
|
158
171
|
});
|
|
159
172
|
return {
|
|
160
173
|
statuses,
|
|
@@ -196,19 +209,17 @@ const publishedAt = async (name, version) => {
|
|
|
196
209
|
// report to name it for every coordinate, and a workspace pinning one analyzer in two places is exactly
|
|
197
210
|
// the case where the bare package name says nothing about where to make the change.
|
|
198
211
|
const describeFinding = (finding) => `${finding.owner} ${finding.name}: declared ${finding.current}, latest ${finding.latest}`;
|
|
199
|
-
//
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
// no release carries the newer pin yet. The same answer `HARNESS_EXCEPTIONS` gives for an advisory
|
|
203
|
-
// carried by ploaness's own chain.
|
|
204
|
-
const HARNESS_REPAIR = ' - declared by ploaness rather than by the project, so upgrade ploaness, or report it if no ' +
|
|
205
|
-
'release carries the newer pin';
|
|
212
|
+
// Said on the harness release's own line, because it is the one update in the project's group whose
|
|
213
|
+
// repair is also the repair of every line in the two groups beneath it.
|
|
214
|
+
const HARNESS_RELEASE_NOTE = ' - upgrading it is what moves every version ploaness decides';
|
|
206
215
|
// `stale`, not `update`, for a coordinate past the bound that does not stop this build. Printed as an
|
|
207
216
|
// ordinary update it would bury the one line saying the harness itself is overdue among a dozen saying
|
|
208
|
-
// a patch release exists.
|
|
217
|
+
// a patch release exists. What to DO about either is the heading's job, so neither line repeats it: a
|
|
218
|
+
// note on every inherited row was what a consuming project reported as noise.
|
|
219
|
+
const harnessNote = (finding) => isHarnessRelease(finding) ? HARNESS_RELEASE_NOTE : '';
|
|
209
220
|
const describeReported = (finding) => finding.verdict === 'fail'
|
|
210
|
-
? `stale ${describeFinding(finding)}; past the freshness bound
|
|
211
|
-
: `update ${describeFinding(finding)}`;
|
|
221
|
+
? `stale ${describeFinding(finding)}; past the freshness bound`
|
|
222
|
+
: `update ${describeFinding(finding)}${harnessNote(finding)}`;
|
|
212
223
|
// `held`, not `update`, for a release pnpm will refuse for being too young. Naming it as an ordinary
|
|
213
224
|
// update sends the reader to an install that fails, and the way past that failure is an exclusion from
|
|
214
225
|
// the very guard the wait exists to keep. It says the age so the reader can see how short the wait is.
|
|
@@ -218,19 +229,46 @@ const describeHeld = (finding, hours) => {
|
|
|
218
229
|
`${String(RELEASE_AGE_FLOOR_HOURS)}h release-age floor pnpm enforces, so it installs once it ages`);
|
|
219
230
|
};
|
|
220
231
|
// A date is asked for only where it can change the line: a coordinate already past the bound is stale
|
|
221
|
-
// whatever its age, and one
|
|
222
|
-
|
|
223
|
-
const
|
|
224
|
-
|
|
232
|
+
// whatever its age, and one the project cannot install on its own - a pin, or a line in an inherited
|
|
233
|
+
// manifest - is not waiting on the registry at all.
|
|
234
|
+
const isHeldCandidate = (finding, repair) => finding.verdict === 'update' && repair === 'project';
|
|
235
|
+
const describeLine = async (finding, repair, now) => {
|
|
236
|
+
if (!isHeldCandidate(finding, repair)) {
|
|
225
237
|
return describeReported(finding);
|
|
226
238
|
}
|
|
227
|
-
const age = {
|
|
228
|
-
publishedAt: await publishedAt(finding.name, finding.latest),
|
|
229
|
-
now,
|
|
230
|
-
};
|
|
239
|
+
const age = { publishedAt: await publishedAt(finding.name, finding.latest), now };
|
|
231
240
|
return isHeldByReleaseAge(age)
|
|
232
241
|
? describeHeld(finding, hoursPublished(age))
|
|
233
242
|
: describeReported(finding);
|
|
243
|
+
};
|
|
244
|
+
// The images ploaness pins are declared in the harness, so in a consumer they sit with the manifests
|
|
245
|
+
// it inherits; in ploaness's own repository they are its own to change like everything else there.
|
|
246
|
+
const imageRepair = (ownership) => ownership.isHarnessItself ? 'project' : 'inherited';
|
|
247
|
+
const INDENT = ' ';
|
|
248
|
+
// A group prints only when it has a line to put under its heading, because a heading over nothing is
|
|
249
|
+
// a claim about nothing. The lines are indented beneath it so the heading reads as one.
|
|
250
|
+
const describeSection = async (section, images, now) => {
|
|
251
|
+
const described = await mapWithConcurrency(section.findings, REGISTRY_CONCURRENCY, async (finding) => describeLine(finding, section.repair, now));
|
|
252
|
+
const body = [...described, ...images];
|
|
253
|
+
return body.length === 0
|
|
254
|
+
? []
|
|
255
|
+
: [section.heading, ...body.map((line) => `${INDENT}${line}`)];
|
|
256
|
+
};
|
|
257
|
+
// A blank line between groups and nothing else, so a two-group report is two paragraphs rather than
|
|
258
|
+
// a heading lost in the middle of a list.
|
|
259
|
+
const separated = (groups) => groups
|
|
260
|
+
.filter((group) => group.length > 0)
|
|
261
|
+
.flatMap((group, index) => index === 0 ? group : ['', ...group]);
|
|
262
|
+
// The groups are described one after another rather than all at once, so the registry sees one
|
|
263
|
+
// group's lookups at a time; only the project's own group asks it anything.
|
|
264
|
+
const ONE_GROUP_AT_A_TIME = 1;
|
|
265
|
+
const describeUpdates = async (reported, ownership, images, now) => separated(await mapWithConcurrency(sectionFreshnessReport(reported, ownership), ONE_GROUP_AT_A_TIME, async (section) => describeSection(section, section.repair === imageRepair(ownership) ? images.lines : [], now)));
|
|
266
|
+
// Whose version each name is, read from the same map the wiring gate holds a project to. A name in it
|
|
267
|
+
// is one the project declares and may not change, which is the whole difference between the first two
|
|
268
|
+
// groups of the report.
|
|
269
|
+
const ownershipOf = (manifests) => ({
|
|
270
|
+
pinnedByHarness: new Set(Object.keys(harnessDecidedVersions())),
|
|
271
|
+
isHarnessItself: isHarnessRepository(manifests),
|
|
234
272
|
});
|
|
235
273
|
// One lookup per distinct name, fanned back out across the coordinates that share it. A workspace
|
|
236
274
|
// declaring the same analyzer in three manifests must not ask the registry three times.
|
|
@@ -301,21 +339,24 @@ export const dependencyFreshness = async (context) => {
|
|
|
301
339
|
'this gate is fail-closed by design; retry with network access',
|
|
302
340
|
]);
|
|
303
341
|
}
|
|
304
|
-
|
|
305
|
-
|
|
342
|
+
// A coordinate whose newest release is refused is measured up to the last release it may install,
|
|
343
|
+
// never past it: failing a project for not upgrading into a release another gate refuses would leave
|
|
344
|
+
// it no green state at all.
|
|
345
|
+
const scope = scopeFreshness(statuses);
|
|
346
|
+
const notes = [
|
|
347
|
+
...unpublished.map((name) => `note ${name} is not on the public registry, so freshness is not measurable`),
|
|
348
|
+
...scope.refused.map((entry) => `note ${entry.note}`),
|
|
349
|
+
];
|
|
350
|
+
const report = findFreshnessViolations(scope.measurable);
|
|
351
|
+
const updates = await describeUpdates(report.reported, ownershipOf(manifests), images, Date.now());
|
|
306
352
|
if (report.failures.length > 0) {
|
|
307
|
-
return failed(`${String(report.failures.length)} dependency/dependencies are two or more majors behind`, [
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
]);
|
|
353
|
+
return failed(`${String(report.failures.length)} dependency/dependencies are two or more majors behind`, separated([
|
|
354
|
+
report.failures.map((finding) => describeFinding(finding)),
|
|
355
|
+
updates,
|
|
356
|
+
notes,
|
|
357
|
+
]));
|
|
313
358
|
}
|
|
314
|
-
return passed(freshnessSummary(statuses, manifests, report, images), [
|
|
315
|
-
...(await describeUpdates(report.reported, Date.now())),
|
|
316
|
-
...images.lines,
|
|
317
|
-
...notes,
|
|
318
|
-
]);
|
|
359
|
+
return passed(freshnessSummary(statuses, manifests, report, images), separated([updates, notes]));
|
|
319
360
|
};
|
|
320
361
|
const asStrings = (raw) => isArray(raw) ? raw.filter((entry) => typeof entry === 'string') : [];
|
|
321
362
|
const textAt = (raw, key, fallback) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/checks/dependencies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/checks/dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Context } from '../context.js';
|
|
2
2
|
import { type GateResult } from '../exec.js';
|
|
3
|
-
/** Check every
|
|
3
|
+
/** Check every text file in the working tree against the committed `.editorconfig`. */
|
|
4
4
|
export declare const editorconfig: (context: Context) => GateResult;
|
|
5
5
|
//# sourceMappingURL=editorconfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorconfig.d.ts","sourceRoot":"","sources":["../../src/checks/editorconfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editorconfig.d.ts","sourceRoot":"","sources":["../../src/checks/editorconfig.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAS5D,uFAAuF;AACvF,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,UAsC/C,CAAA"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
// Conformance to the committed `.editorconfig`. The decision lives in governance; this reads the tree.
|
|
2
2
|
//
|
|
3
|
-
// Every
|
|
4
|
-
// bytes, and a path the project
|
|
5
|
-
//
|
|
3
|
+
// Every file in the working tree is checked except those excluded by role: a binary asset, recognised
|
|
4
|
+
// from its own bytes rather than from its name, and a path the project excludes from the typography
|
|
5
|
+
// rules. The standard's line cap is narrower still, because a cap is a Code Rule written for a person:
|
|
6
|
+
// it binds on authored code, not on prose, which wraps by meaning rather than by column, and not on a
|
|
7
|
+
// path the project declares generated, whose lines nobody here chose.
|
|
6
8
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
7
9
|
import path from 'node:path';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
+
import { findEditorconfigViolations, isBinary, isLineCapEnforced, matchesRole, parseEditorconfig, } from '@ploaness/governance';
|
|
11
|
+
import { workingTreeFiles } from '../context.js';
|
|
10
12
|
import { failed, passed } from '../exec.js';
|
|
11
13
|
const CONFIG_FILE = '.editorconfig';
|
|
12
|
-
/** Check every
|
|
14
|
+
/** Check every text file in the working tree against the committed `.editorconfig`. */
|
|
13
15
|
export const editorconfig = (context) => {
|
|
14
16
|
const configPath = path.join(context.root, CONFIG_FILE);
|
|
15
17
|
if (!existsSync(configPath)) {
|
|
@@ -18,9 +20,9 @@ export const editorconfig = (context) => {
|
|
|
18
20
|
]);
|
|
19
21
|
}
|
|
20
22
|
const rules = parseEditorconfig(readFileSync(configPath, 'utf8'));
|
|
21
|
-
//
|
|
23
|
+
// An enumerated path is not always a regular file: a symlink and a submodule gitlink both appear here,
|
|
22
24
|
// and reading either throws rather than yielding text.
|
|
23
|
-
const tracked =
|
|
25
|
+
const tracked = workingTreeFiles(context.root).filter((file) => {
|
|
24
26
|
const full = path.join(context.root, file);
|
|
25
27
|
return existsSync(full) && statSync(full).isFile();
|
|
26
28
|
});
|
|
@@ -29,10 +31,10 @@ export const editorconfig = (context) => {
|
|
|
29
31
|
.filter((file) => !matchesRole(file, context.settings.typographyExclusions))
|
|
30
32
|
.map((file) => ({ file, bytes: readFileSync(path.join(context.root, file)) }))
|
|
31
33
|
.filter((entry) => !isBinary(entry.bytes));
|
|
32
|
-
const findings = readable.flatMap((entry) => findEditorconfigViolations(entry.bytes.toString('utf8'), rules,
|
|
34
|
+
const findings = readable.flatMap((entry) => findEditorconfigViolations(entry.bytes.toString('utf8'), rules, isLineCapEnforced(entry.file, context.settings.generatedArtefacts)).map((violation) => `${entry.file}:${String(violation.line)} ${violation.reason}`));
|
|
33
35
|
const checked = readable.length;
|
|
34
36
|
return findings.length > 0
|
|
35
37
|
? failed(`${String(findings.length)} formatting violation(s)`, findings)
|
|
36
|
-
: passed(`${String(checked)}
|
|
38
|
+
: passed(`${String(checked)} working-tree file(s) match ${CONFIG_FILE}`);
|
|
37
39
|
};
|
|
38
40
|
//# sourceMappingURL=editorconfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorconfig.js","sourceRoot":"","sources":["../../src/checks/editorconfig.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,EAAE;AACF,uGAAuG;AACvG,
|
|
1
|
+
{"version":3,"file":"editorconfig.js","sourceRoot":"","sources":["../../src/checks/editorconfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Repository as Repo } from '../context.js';
|
|
2
|
+
import { type GateResult } from '../exec.js';
|
|
3
|
+
/**
|
|
4
|
+
* Every environment variable the repository declares in one place reaches the others it has to.
|
|
5
|
+
*
|
|
6
|
+
* A repository that reads no variable, ships no compose file, and runs no verifying workflow passes over
|
|
7
|
+
* an empty set rather than being declared inapplicable - the same shape the container gate takes, and
|
|
8
|
+
* for the same reason: the day one of those appears it is already checked.
|
|
9
|
+
* @param repository the repository being judged, and the members whose modules it holds.
|
|
10
|
+
* @returns the gate result.
|
|
11
|
+
*/
|
|
12
|
+
export declare const environment: (repository: Repo) => GateResult;
|
|
13
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/checks/environment.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAe,KAAK,UAAU,IAAI,IAAI,EAAoB,MAAM,eAAe,CAAA;AACtF,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AA4C5D;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,IAAI,KAAG,UAa9C,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// The environment-coherence gate. It reads four kinds of file and calls one pure function; every
|
|
2
|
+
// decision is in packages/governance/src/environment-coherence.ts.
|
|
3
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { composeProjectsIn, ENVIRONMENT_EXAMPLE_FILES, findEnvironmentViolations, VALIDATED_ENVIRONMENT_MODULE, workflowsIn, } from '@ploaness/governance';
|
|
6
|
+
import { workingTreeFiles } from '../context.js';
|
|
7
|
+
import { failed, passed } from '../exec.js';
|
|
8
|
+
const readIfPresent = (root, relativePath) => {
|
|
9
|
+
const file = path.join(root, relativePath);
|
|
10
|
+
return existsSync(file) ? readFileSync(file, 'utf8') : undefined;
|
|
11
|
+
};
|
|
12
|
+
const isPresent = (value) => value !== undefined;
|
|
13
|
+
// One example file per repository, taken in the declared order. A project that ships two has documented
|
|
14
|
+
// its environment twice and the first is the one a reader is pointed at, so reading both would let the
|
|
15
|
+
// weaker copy vouch for the stronger.
|
|
16
|
+
const exampleFile = (repository) => ENVIRONMENT_EXAMPLE_FILES.map((candidate) => readIfPresent(repository.root, candidate)).find(isPresent);
|
|
17
|
+
// Per member, because a workspace holds one validated module per application, and a member that is a
|
|
18
|
+
// library has none.
|
|
19
|
+
const appSources = (repository) => repository.members
|
|
20
|
+
.map((member) => readIfPresent(repository.root, path.join(member.path, VALIDATED_ENVIRONMENT_MODULE)))
|
|
21
|
+
.filter(isPresent);
|
|
22
|
+
const composeSources = (repository) => composeProjectsIn(workingTreeFiles(repository.root)).map((project) => readFileSync(path.join(repository.root, project.file), 'utf8'));
|
|
23
|
+
// Discovered by the same rule the blocklist gate reads workflows by, so the two never disagree about
|
|
24
|
+
// what a workflow is.
|
|
25
|
+
const workflows = (repository) => workflowsIn(workingTreeFiles(repository.root)).map((file) => ({
|
|
26
|
+
file,
|
|
27
|
+
content: readFileSync(path.join(repository.root, file), 'utf8'),
|
|
28
|
+
}));
|
|
29
|
+
const describe = (violation) => `${violation.name}: ${violation.reason}`;
|
|
30
|
+
/**
|
|
31
|
+
* Every environment variable the repository declares in one place reaches the others it has to.
|
|
32
|
+
*
|
|
33
|
+
* A repository that reads no variable, ships no compose file, and runs no verifying workflow passes over
|
|
34
|
+
* an empty set rather than being declared inapplicable - the same shape the container gate takes, and
|
|
35
|
+
* for the same reason: the day one of those appears it is already checked.
|
|
36
|
+
* @param repository the repository being judged, and the members whose modules it holds.
|
|
37
|
+
* @returns the gate result.
|
|
38
|
+
*/
|
|
39
|
+
export const environment = (repository) => {
|
|
40
|
+
const violations = findEnvironmentViolations({
|
|
41
|
+
applicationSources: appSources(repository),
|
|
42
|
+
example: exampleFile(repository),
|
|
43
|
+
composeSources: composeSources(repository),
|
|
44
|
+
workflows: workflows(repository),
|
|
45
|
+
});
|
|
46
|
+
return violations.length > 0
|
|
47
|
+
? failed(`${String(violations.length)} environment variable(s) are declared in one place and missing from another`, violations.map((violation) => describe(violation)))
|
|
48
|
+
: passed('every declared environment variable reaches the places that need it');
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/checks/environment.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/install.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ import type { Repository as Repo } from '../context.js';
|
|
|
2
2
|
import { type GateResult } from '../exec.js';
|
|
3
3
|
/** The repository must name the dependencies permitted to run an install script. */
|
|
4
4
|
export declare const installScripts: (repo: Repo) => GateResult;
|
|
5
|
+
/** The repository must keep pnpm's release-age floor strict, and may exempt only the harness from it. */
|
|
6
|
+
export declare const releaseAge: (repo: Repo) => GateResult;
|
|
5
7
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/checks/install.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAQ5D,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,UAMpC,CAAA"}
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/checks/install.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAQ5D,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,UAMpC,CAAA;AAIR,yGAAyG;AACzG,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,UAQvC,CAAA"}
|
package/dist/checks/install.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// `pnpm install` - the broadest surface a project has for executing code it never called. The gate
|
|
5
5
|
// requires the allowlist to exist and says nothing about what is on it: which packages a project trusts
|
|
6
6
|
// with an install script is a decision for the project to record, not one the harness can make for it.
|
|
7
|
-
import { declaresInstallScriptAllowlist } from '@ploaness/governance';
|
|
7
|
+
import { declaresInstallScriptAllowlist, findReleaseAgeViolations } from '@ploaness/governance';
|
|
8
8
|
import { failed, passed } from '../exec.js';
|
|
9
9
|
const WORKSPACE_FILE = 'pnpm-workspace.yaml';
|
|
10
10
|
// The workspace file arrives already read, from the repository root. It used to be read relative to
|
|
@@ -18,4 +18,13 @@ export const installScripts = (repo) => declaresInstallScriptAllowlist(repo.work
|
|
|
18
18
|
`declare onlyBuiltDependencies in ${WORKSPACE_FILE}, or under the "pnpm" key of package.json`,
|
|
19
19
|
'an empty list is a valid answer: it permits no dependency to run an install script',
|
|
20
20
|
]);
|
|
21
|
+
// The same file, read the same way, for the other half of install policy: what pnpm may install at all.
|
|
22
|
+
// The decisions are in `install-policy.ts`; this hands over the file and names the gate.
|
|
23
|
+
/** The repository must keep pnpm's release-age floor strict, and may exempt only the harness from it. */
|
|
24
|
+
export const releaseAge = (repo) => {
|
|
25
|
+
const findings = findReleaseAgeViolations(repo.workspaceFile);
|
|
26
|
+
return findings.length > 0
|
|
27
|
+
? failed(`${String(findings.length)} release-age setting(s) weaken the floor pnpm enforces`, findings)
|
|
28
|
+
: passed('the release-age floor is strict, and only the harness is excluded from it');
|
|
29
|
+
};
|
|
21
30
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/checks/install.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,wGAAwG;AACxG,uGAAuG;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/checks/install.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,wGAAwG;AACxG,uGAAuG;AACvG,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE/F,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,cAAc,GAAW,qBAAqB,CAAA;AAEpD,oGAAoG;AACpG,uGAAuG;AACvG,kGAAkG;AAClG,uDAAuD;AACvD,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAU,EAAc,EAAE,CACvD,8BAA8B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;IAClE,CAAC,CAAC,MAAM,CAAC,kEAAkE,CAAC;IAC5E,CAAC,CAAC,MAAM,CAAC,yCAAyC,EAAE;QAChD,oCAAoC,cAAc,2CAA2C;QAC7F,oFAAoF;KACrF,CAAC,CAAA;AAER,wGAAwG;AACxG,yFAAyF;AACzF,yGAAyG;AACzG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAc,EAAE;IACnD,MAAM,QAAQ,GAAsB,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAChF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CACJ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,wDAAwD,EAClF,QAAQ,CACT;QACH,CAAC,CAAC,MAAM,CAAC,2EAA2E,CAAC,CAAA;AACzF,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Context } from '../context.js';
|
|
2
2
|
import { type GateResult } from '../exec.js';
|
|
3
|
-
/** Decode every
|
|
3
|
+
/** Decode every image in the working tree and fail on any that is corrupt or truncated. */
|
|
4
4
|
export declare const imageAssets: (context: Context) => GateResult;
|
|
5
5
|
/**
|
|
6
6
|
* Measure the total gzipped client JavaScript against the budget. Gzipped byte counts of built output are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/checks/integrity.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/checks/integrity.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,OAAO,EAAmC,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAE5D,2FAA2F;AAC3F,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,UAc9C,CAAA;AAeD;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,OAAO,KAAG,UA8BzC,CAAA"}
|
package/dist/checks/integrity.js
CHANGED
|
@@ -5,11 +5,11 @@ import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { gzipSync } from 'node:zlib';
|
|
7
7
|
import { evaluateBundle, isSupportedImagePath, validateImageBytes, } from '@ploaness/governance';
|
|
8
|
-
import { hasOwnRuntime,
|
|
8
|
+
import { hasOwnRuntime, workingTreeFiles } from '../context.js';
|
|
9
9
|
import { failed, passed } from '../exec.js';
|
|
10
|
-
/** Decode every
|
|
10
|
+
/** Decode every image in the working tree and fail on any that is corrupt or truncated. */
|
|
11
11
|
export const imageAssets = (context) => {
|
|
12
|
-
const images =
|
|
12
|
+
const images = workingTreeFiles(context.root)
|
|
13
13
|
.filter(isSupportedImagePath)
|
|
14
14
|
.filter((file) => existsSync(path.join(context.root, file)));
|
|
15
15
|
const findings = images.flatMap((file) => {
|
|
@@ -18,7 +18,7 @@ export const imageAssets = (context) => {
|
|
|
18
18
|
});
|
|
19
19
|
return findings.length > 0
|
|
20
20
|
? failed(`${String(findings.length)} corrupt or truncated image asset(s)`, findings)
|
|
21
|
-
: passed(`all ${String(images.length)}
|
|
21
|
+
: passed(`all ${String(images.length)} image asset(s) decode`);
|
|
22
22
|
};
|
|
23
23
|
const collectJavaScript = (directory) => readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
|
|
24
24
|
const full = path.join(directory, entry.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/checks/integrity.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,sGAAsG;AACtG,qBAAqB;AACrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAGL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/checks/integrity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Member } from '../context.js';
|
|
2
|
+
import { type GateResult } from '../exec.js';
|
|
3
|
+
/** Native core checks for every member, with accessibility only in the existing application scope. */
|
|
4
|
+
export declare const oxlint: (member: Member) => GateResult;
|
|
5
|
+
//# sourceMappingURL=oxlint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oxlint.d.ts","sourceRoot":"","sources":["../../src/checks/oxlint.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,MAAM,EAKZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAU,KAAK,UAAU,EAA+C,MAAM,YAAY,CAAA;AAsGjG,sGAAsG;AACtG,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAAG,UAmBvC,CAAA"}
|