@ploaness/cli 1.7.0 → 1.9.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/bin.js +5 -1
- package/dist/bin.js.map +1 -1
- package/dist/checks/blocklist.d.ts.map +1 -1
- package/dist/checks/blocklist.js +2 -1
- package/dist/checks/blocklist.js.map +1 -1
- package/dist/checks/compliance-report.d.ts +5 -0
- package/dist/checks/compliance-report.d.ts.map +1 -0
- package/dist/checks/compliance-report.js +15 -0
- package/dist/checks/compliance-report.js.map +1 -0
- package/dist/checks/dependencies.d.ts +17 -1
- package/dist/checks/dependencies.d.ts.map +1 -1
- package/dist/checks/dependencies.js +38 -20
- package/dist/checks/dependencies.js.map +1 -1
- package/dist/checks/license-inventory.d.ts +14 -0
- package/dist/checks/license-inventory.d.ts.map +1 -0
- package/dist/checks/license-inventory.js +15 -0
- package/dist/checks/license-inventory.js.map +1 -0
- package/dist/commands/compliance-report.d.ts +4 -0
- package/dist/commands/compliance-report.d.ts.map +1 -0
- package/dist/commands/compliance-report.js +25 -0
- package/dist/commands/compliance-report.js.map +1 -0
- package/dist/compliance-report.d.ts +25 -0
- package/dist/compliance-report.d.ts.map +1 -0
- package/dist/compliance-report.js +278 -0
- package/dist/compliance-report.js.map +1 -0
- package/dist/gates.d.ts.map +1 -1
- package/dist/gates.js +8 -0
- package/dist/gates.js.map +1 -1
- package/dist/output-directory.d.ts +23 -0
- package/dist/output-directory.d.ts.map +1 -0
- package/dist/output-directory.js +46 -0
- package/dist/output-directory.js.map +1 -0
- package/dist/sbom.d.ts.map +1 -1
- package/dist/sbom.js +33 -45
- package/dist/sbom.js.map +1 -1
- package/package.json +7 -4
package/dist/bin.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { parseSbomArguments } from '@ploaness/governance';
|
|
2
|
+
import { parseComplianceReportArguments, parseSbomArguments } from '@ploaness/governance';
|
|
3
3
|
import { commitMessage } from './commands/commit-message.js';
|
|
4
|
+
import { complianceReport } from './commands/compliance-report.js';
|
|
4
5
|
import { format } from './commands/format.js';
|
|
5
6
|
import { init } from './commands/init.js';
|
|
6
7
|
import { sbom } from './commands/sbom.js';
|
|
@@ -23,6 +24,7 @@ const USAGE = `ploaness, the quality harness for Payload CMS projects
|
|
|
23
24
|
ploaness sync materialise the managed files
|
|
24
25
|
ploaness init scaffold the consumer wiring
|
|
25
26
|
ploaness sbom --artifact <file> [--output <dir>] export a release dependency inventory
|
|
27
|
+
ploaness compliance-report [--output <dir>] write the shareable compliance report
|
|
26
28
|
ploaness gate <id> [--verbose] run one gate, for debugging
|
|
27
29
|
ploaness gates list the gates in run order
|
|
28
30
|
ploaness commit-message <file|--range R|--all> check one message, a range, or the history
|
|
@@ -73,6 +75,7 @@ const COMMANDS = {
|
|
|
73
75
|
sync: (repository) => sync(repository),
|
|
74
76
|
init: (repository) => init(repository),
|
|
75
77
|
sbom,
|
|
78
|
+
'compliance-report': complianceReport,
|
|
76
79
|
gates: (_repository, rest) => listGates(rest),
|
|
77
80
|
gate: async (repository, rest) => await runOneGate(repository, rest[0], rest.includes(VERBOSE_OPTION)),
|
|
78
81
|
'commit-message': (repository, rest) => commitMessage(repository, rest[0], rest[1]),
|
|
@@ -100,6 +103,7 @@ const acceptsArguments = {
|
|
|
100
103
|
sync: (rest) => rest.length === 0,
|
|
101
104
|
init: (rest) => rest.length === 0,
|
|
102
105
|
sbom: (rest) => parseSbomArguments(rest) !== undefined,
|
|
106
|
+
'compliance-report': (rest) => parseComplianceReportArguments(rest) !== undefined,
|
|
103
107
|
// A scope must name one ploaness knows, so a typo lists nothing rather than silently listing
|
|
104
108
|
// everything - which for a script asking "have I missed a gate" would answer yes when it should not.
|
|
105
109
|
gates: (rest) => rest.every((argument) => argument === IDS_OPTION ||
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocklist.d.ts","sourceRoot":"","sources":["../../src/checks/blocklist.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAU,KAAK,UAAU,EAA+B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"blocklist.d.ts","sourceRoot":"","sources":["../../src/checks/blocklist.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAU,KAAK,UAAU,EAA+B,MAAM,YAAY,CAAA;AAkGjF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,UA4B5C,CAAA"}
|
package/dist/checks/blocklist.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from 'node:path';
|
|
|
5
5
|
import { composeProjectsIn, describeRefusal, dockerfilesIn, hasUnresolvedVariable, imageReferencesInComposeModel, imageReferencesInDockerfile, imageReferencesInWorkflow, isMutableImageReference, packagesInLicenseInventory, refuseImage, refuseInstalledPackages, refuseSystemPackages, workflowsIn, } from '@ploaness/governance';
|
|
6
6
|
import { workingTreeFiles } from '../context.js';
|
|
7
7
|
import { failed, passed, run } from '../exec.js';
|
|
8
|
+
import { runLicenseInventory } from './license-inventory.js';
|
|
8
9
|
const INVENTORY_LOCATION = 'the resolved dependency set';
|
|
9
10
|
// Every reference is judged three ways, in the order a reader repairs them: a refused image is replaced
|
|
10
11
|
// before its tag is pinned, and a reference nobody can resolve is named as such rather than passed.
|
|
@@ -53,7 +54,7 @@ const judgeComposeProject = (context, project) => {
|
|
|
53
54
|
};
|
|
54
55
|
};
|
|
55
56
|
const judgeInventory = (context) => {
|
|
56
|
-
const result =
|
|
57
|
+
const result = runLicenseInventory(context);
|
|
57
58
|
// Parsed from stdout alone, for the reason `dependencies.ts` records: pnpm writes its warnings to
|
|
58
59
|
// stderr, and the joined output is not JSON.
|
|
59
60
|
const packages = result.code === 0 ? packagesInLicenseInventory(result.stdout) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../../src/checks/blocklist.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,oFAAoF;AAEpF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAGL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EAErB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAE1B,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAkB,GAAG,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../../src/checks/blocklist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Repository } from '../context.js';
|
|
2
|
+
import { type GateResult } from '../exec.js';
|
|
3
|
+
/** Full verification writes the shareable compliance report from the inventory the `sbom` gate wrote. */
|
|
4
|
+
export declare const complianceReport: (repository: Repository) => Promise<GateResult>;
|
|
5
|
+
//# sourceMappingURL=compliance-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.d.ts","sourceRoot":"","sources":["../../src/checks/compliance-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAEpD,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,GAAU,YAAY,UAAU,KAAG,OAAO,CAAC,UAAU,CAUjF,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { DEFAULT_REPORT_OUTPUT } from '@ploaness/governance';
|
|
3
|
+
import { writeComplianceReport } from '../compliance-report.js';
|
|
4
|
+
import { passed } from '../exec.js';
|
|
5
|
+
/** Full verification writes the shareable compliance report from the inventory the `sbom` gate wrote. */
|
|
6
|
+
export const complianceReport = async (repository) => {
|
|
7
|
+
const written = await writeComplianceReport(repository, {
|
|
8
|
+
output: path.join(repository.root, DEFAULT_REPORT_OUTPUT),
|
|
9
|
+
sbomDirectory: path.join(repository.root, 'dist/sbom'),
|
|
10
|
+
});
|
|
11
|
+
const names = written.files.map((file) => path.basename(file)).join(' and ');
|
|
12
|
+
return passed(`Compliance report written to ${written.directory}: ${names}` +
|
|
13
|
+
(written.pdfSkipped === undefined ? '' : `; no PDF, because ${written.pdfSkipped}`));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=compliance-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.js","sourceRoot":"","sources":["../../src/checks/compliance-report.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAsB,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEnF,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAEpD,yGAAyG;AACzG,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAsB,EAAuB,EAAE;IACpF,MAAM,OAAO,GAAkB,MAAM,qBAAqB,CAAC,UAAU,EAAE;QACrE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC;QACzD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;KACvD,CAAC,CAAA;IACF,MAAM,KAAK,GAAW,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpG,OAAO,MAAM,CACX,gCAAgC,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE;QAC3D,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,OAAO,CAAC,UAAU,EAAE,CAAC,CACtF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
|
+
import { type Advisory } from '@ploaness/governance';
|
|
1
2
|
import { type Context } from '../context.js';
|
|
2
3
|
import { type GateResult } from '../exec.js';
|
|
3
4
|
export declare const licenses: (context: Context) => GateResult;
|
|
4
5
|
export declare const dependencyFreshness: (context: Context) => Promise<GateResult>;
|
|
6
|
+
/** What the advisory database answered, or why it could not be read. */
|
|
7
|
+
export type AuditReading = {
|
|
8
|
+
readonly kind: 'read';
|
|
9
|
+
readonly advisories: readonly Advisory[];
|
|
10
|
+
readonly transcript: string;
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: 'unreachable';
|
|
13
|
+
readonly findings: readonly string[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Ask the public advisory database about every package in the resolved set.
|
|
17
|
+
* @param context the resolved project environment.
|
|
18
|
+
* @returns the reported advisories with the audit transcript, or why the database could not be read.
|
|
19
|
+
*/
|
|
20
|
+
export declare const readAdvisories: (context: Context) => AuditReading;
|
|
5
21
|
/**
|
|
6
22
|
* Read every package in the resolved set against the public advisory database.
|
|
7
23
|
* @param context the resolved project environment.
|
|
8
|
-
* @returns a failure for any
|
|
24
|
+
* @returns a failure for any open advisory, or for a mitigation that covers nothing.
|
|
9
25
|
*/
|
|
10
26
|
export declare const vulnerabilities: (context: Context) => GateResult;
|
|
11
27
|
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/checks/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/checks/dependencies.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,QAAQ,EAsCd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,OAAO,EAAgD,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAU,KAAK,UAAU,EAA2D,MAAM,YAAY,CAAA;AAkB7G,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UA8B3C,CAAA;AAiXD,eAAO,MAAM,mBAAmB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,CA6C9E,CAAA;AA4CD,wEAAwE;AACxE,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,KAAG,YAwBjD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,UAiClD,CAAA"}
|
|
@@ -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, isHarnessRelease, isHarnessRepository, isHeldByReleaseAge, isRecord, judgeVulnerabilities, mapWithConcurrency, NETWORKED_TOOL_TIMEOUT_MS, REGISTRY_CONCURRENCY, RELEASE_AGE_FLOOR_HOURS, REQUEST_TIMEOUT_MS, scopeFreshness, sectionFreshnessReport, } from '@ploaness/governance';
|
|
7
|
+
import { asRecord, asText, collectCoordinates, findFreshnessViolations, findLicenseViolations, HARNESS_EXCEPTIONS, HARNESS_PACKAGE, hoursPublished, inheritedManifestPaths, isArray, isHarnessRelease, isHarnessRepository, isHeldByReleaseAge, isRecord, judgeVulnerabilities, mapWithConcurrency, NETWORKED_TOOL_TIMEOUT_MS, OPEN_ADVISORY_REPAIR, REGISTRY_CONCURRENCY, RELEASE_AGE_FLOOR_HOURS, REQUEST_TIMEOUT_MS, scopeFreshness, sectionFreshnessReport, } from '@ploaness/governance';
|
|
8
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 { runLicenseInventory } from './license-inventory.js';
|
|
11
12
|
import { harnessDecidedVersions } from './wiring.js';
|
|
12
13
|
/** Every dependency license must sit inside the allowlist. */
|
|
13
14
|
// Report enough of a tool's raw output to diagnose it, without pasting a whole log into a finding.
|
|
@@ -17,7 +18,7 @@ const MAX_LISTED_NAMES = 10;
|
|
|
17
18
|
// The registry answers with this status for a package it has never published.
|
|
18
19
|
const NOT_FOUND = 404;
|
|
19
20
|
export const licenses = (context) => {
|
|
20
|
-
const result =
|
|
21
|
+
const result = runLicenseInventory(context);
|
|
21
22
|
if (result.code !== 0) {
|
|
22
23
|
return failed('the license inventory could not be produced', [result.output]);
|
|
23
24
|
}
|
|
@@ -359,12 +360,12 @@ const textAt = (raw, key, fallback) => {
|
|
|
359
360
|
const asAdvisory = (key, raw) => ({
|
|
360
361
|
id: textAt(raw, 'github_advisory_id', key),
|
|
361
362
|
packageName: textAt(raw, 'module_name', 'unknown'),
|
|
362
|
-
// An advisory whose severity the record does not carry is
|
|
363
|
-
//
|
|
364
|
-
// gate that is fail-closed everywhere else.
|
|
363
|
+
// An advisory whose severity the record does not carry is reported as unknown, which the report
|
|
364
|
+
// orders above critical, rather than passed off as the least severe.
|
|
365
365
|
severity: textAt(raw, 'severity', 'unknown'),
|
|
366
366
|
title: textAt(raw, 'title', 'no title reported'),
|
|
367
367
|
aliases: asStrings(raw['cves']),
|
|
368
|
+
...(asText(raw['url']).length > 0 && { url: asText(raw['url']) }),
|
|
368
369
|
});
|
|
369
370
|
// `pnpm audit` exits non-zero whenever it finds anything, so the exit code carries no information the
|
|
370
371
|
// JSON does not. The verdict comes from the payload; only an unparseable payload means the database was
|
|
@@ -381,11 +382,11 @@ const parseAudit = (output) => {
|
|
|
381
382
|
}
|
|
382
383
|
};
|
|
383
384
|
/**
|
|
384
|
-
*
|
|
385
|
+
* Ask the public advisory database about every package in the resolved set.
|
|
385
386
|
* @param context the resolved project environment.
|
|
386
|
-
* @returns
|
|
387
|
+
* @returns the reported advisories with the audit transcript, or why the database could not be read.
|
|
387
388
|
*/
|
|
388
|
-
export const
|
|
389
|
+
export const readAdvisories = (context) => {
|
|
389
390
|
// No `--prod` filter: the standard is explicit that build and test packages count, because a build
|
|
390
391
|
// tool runs with build privileges and its vulnerability is reachable by anyone who can change the repo.
|
|
391
392
|
// Deadlined because it asks the advisory database over the network. Without one, a registry that
|
|
@@ -397,18 +398,34 @@ export const vulnerabilities = (context) => {
|
|
|
397
398
|
// `stdout` for the reason the licence gate reads it: a pnpm warning on stderr used to be concatenated
|
|
398
399
|
// into the payload and reported as the advisory database being unreachable.
|
|
399
400
|
const advisories = parseAudit(result.stdout);
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
401
|
+
return advisories === undefined
|
|
402
|
+
? {
|
|
403
|
+
kind: 'unreachable',
|
|
404
|
+
findings: [
|
|
405
|
+
...(result.code === TIMED_OUT_CODE
|
|
406
|
+
? [`the audit did not answer within ${String(NETWORKED_TOOL_TIMEOUT_MS)}ms and was stopped`]
|
|
407
|
+
: []),
|
|
408
|
+
result.output.split('\n').slice(0, MAX_REPORTED_LINES).join('\n'),
|
|
409
|
+
'this gate is fail-closed by design; retry with network access',
|
|
410
|
+
],
|
|
411
|
+
}
|
|
412
|
+
: { kind: 'read', advisories, transcript: result.stdout };
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Read every package in the resolved set against the public advisory database.
|
|
416
|
+
* @param context the resolved project environment.
|
|
417
|
+
* @returns a failure for any open advisory, or for a mitigation that covers nothing.
|
|
418
|
+
*/
|
|
419
|
+
export const vulnerabilities = (context) => {
|
|
420
|
+
const reading = readAdvisories(context);
|
|
421
|
+
if (reading.kind === 'unreachable') {
|
|
422
|
+
return failed('the advisory database was unreachable, so vulnerabilities cannot be proven', reading.findings);
|
|
408
423
|
}
|
|
409
|
-
const
|
|
424
|
+
const { advisories } = reading;
|
|
425
|
+
const report = judgeVulnerabilities(advisories, context.settings.vulnerabilityAllowlist, HARNESS_EXCEPTIONS);
|
|
410
426
|
const findings = [
|
|
411
|
-
...report.
|
|
427
|
+
...report.open.map((advisory) => `${advisory.severity} ${advisory.id} in ${advisory.packageName}: ${advisory.title}`),
|
|
428
|
+
...(report.open.length > 0 ? [OPEN_ADVISORY_REPAIR] : []),
|
|
412
429
|
...report.deadEntries,
|
|
413
430
|
];
|
|
414
431
|
// The evidence is the audit pnpm printed, kept whatever the verdict. A gate that reaches its verdict
|
|
@@ -416,7 +433,8 @@ export const vulnerabilities = (context) => {
|
|
|
416
433
|
// dropping the transcript here would leave `--verbose` answering "no output" on the gate that most
|
|
417
434
|
// needs an answer.
|
|
418
435
|
return withOutput(findings.length > 0
|
|
419
|
-
? failed(`${String(
|
|
420
|
-
|
|
436
|
+
? failed(`${String(report.open.length)} open advisory(ies), ${String(findings.length - report.open.length)} ` +
|
|
437
|
+
'other finding(s)', findings)
|
|
438
|
+
: passed(`no open advisory across ${String(advisories.length)} advisory record(s)`), reading.transcript);
|
|
421
439
|
};
|
|
422
440
|
//# sourceMappingURL=dependencies.js.map
|
|
@@ -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":"AAAA,0GAA0G;AAC1G,0GAA0G;AAC1G,uGAAuG;AACvG,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAEL,QAAQ,EACR,MAAM,EACN,kBAAkB,EASlB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EAIpB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAGlB,cAAc,EACd,sBAAsB,GAEvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAkB,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAOpD,8DAA8D;AAC9D,mGAAmG;AACnG,MAAM,kBAAkB,GAAW,IAAI,CAAA;AACvC,MAAM,kBAAkB,GAAW,CAAC,CAAA;AACpC,MAAM,gBAAgB,GAAW,EAAE,CAAA;AACnC,8EAA8E;AAC9E,MAAM,SAAS,GAAW,GAAG,CAAA;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAc,EAAE;IACvD,MAAM,MAAM,GAAc,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,6CAA6C,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,mGAAmG;IACnG,qGAAqG;IACrG,gFAAgF;IAChF,MAAM,OAAO,GAA4D,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7G,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,0CAA0C,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACzG,CAAC;IACD,MAAM,QAAQ,GAA+B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAChE,IAAI,EAAE;SACN,GAAG,CACF,CAAC,KAAuB,EAAmB,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CACH,CAAA;IACH,MAAM,UAAU,GAA+B,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC9E,OAAO,UAAU,CACf,UAAU,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,MAAM,CACJ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,uCAAuC,EACnE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAsB,EAAU,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CACtF;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,wCAAwC,CAAC,EAClF,MAAM,CAAC,MAAM,CACd,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAW,cAAc,CAAA;AAE5C,yGAAyG;AACzG,sGAAsG;AACtG,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAA6B,EAAE,CAC1E,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;KAC3B,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;KAC/F,GAAG,CACF,CAAC,IAAY,EAAkB,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,WAAW,EAAE,KAAK;CACnB,CAAC,CACH,CAAA;AAEL,mGAAmG;AACnG,qGAAqG;AACrG,0GAA0G;AAC1G,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,uGAAuG;AACvG,qGAAqG;AACrG,uBAAuB;AACvB,MAAM,gBAAgB,GAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAEvF,sGAAsG;AACtG,uGAAuG;AACvG,UAAU;AACV,MAAM,YAAY,GAAG,CAAC,WAAoB,EAAE,QAAgB,EAAU,EAAE,CACtE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAA;AAEnD,qGAAqG;AACrG,iGAAiG;AACjG,qGAAqG;AACrG,iHAAiH;AACjH,gGAAgG;AAChG,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,GAA8B,EAA6B,EAAE;IACzG,MAAM,WAAW,GAAwB,IAAI,GAAG,CAC9C,GAAG,CAAC,GAAG,CAAC,CAAC,QAAwB,EAAU,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CACtG,CAAA;IACD,MAAM,KAAK,GAAuB,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;IAC3G,OAAO,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC;SACnD,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;SACzE,GAAG,CAAC,CAAC,IAAY,EAAkB,EAAE;QACpC,MAAM,WAAW,GAAY,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC3C,OAAO;YACL,IAAI,EAAE,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE;YAC3D,WAAW;YACX,WAAW,EAAE,IAAI;SAClB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,OAAgB,EAA6B,EAAE;IACtE,MAAM,GAAG,GAA8B,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACnE,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,iGAAiG;AACjG,0GAA0G;AAC1G,0GAA0G;AAC1G,wGAAwG;AACxG,wGAAwG;AACxG,8FAA8F;AAC9F,MAAM,iBAAiB,GAAW,CAAC,CAAA;AAEnC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CAClD,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAA;AAYrF,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAA2D,EAAE;IACxG,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAgD,CAAA;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,wGAAwG;AACxG,kGAAkG;AAClG,uGAAuG;AACvG,uGAAuG;AACvG,eAAe;AACf,0GAA0G;AAC1G,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAiC,EAAE;IAC7E,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAChD,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAA+B,EAAE;IACxE,MAAM,QAAQ,GAAyB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC3C,MAAM,OAAO,GAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;QAClD,kGAAkG;QAClG,kGAAkG;QAClG,uBAAuB;QACvB,MAAM,OAAO,GAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;QAClD,OAAO,OAAO,OAAO,KAAK,QAAQ;YAChC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE;YAC1F,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IACxB,CAAC;IACD,yDAAyD;IACzD,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAE,eAAuB,iBAAiB,EAAmB,EAAE;IACtG,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;IAChC,CAAC;IACD,MAAM,MAAM,GAAuB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,MAAM,IAAI,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA;AASD,MAAM,WAAW,GAAG,CAAC,WAA0C,EAAE,OAAoC,EAAU,EAAE;IAC/G,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAqB,EAAE,CAC7D,CAAC,GAAG,OAAO,CAAC;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAA4B,EAAW,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;SAChF,GAAG,CAAC,CAAC,CAAC,IAAI,CAA4B,EAAU,EAAE,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAgC,WAAW,CAAC,OAAO,CAC/D,CAAC,UAA8B,EAA+B,EAAE;QAC9D,MAAM,MAAM,GAAuB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO;YACL;gBACE,GAAG,UAAU;gBACb,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aACvE;SACF,CAAA;IACH,CAAC,CACF,CAAA;IACD,OAAO;QACL,QAAQ;QACR,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC;QACtC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;KAClC,CAAA;AACH,CAAC,CAAA;AAED,mGAAmG;AACnG,mGAAmG;AACnG,oGAAoG;AACpG,qGAAqG;AACrG,sGAAsG;AACtG,uGAAuG;AACvG,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,+CAA+C,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAA;AAElF,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,OAAe,EAA+B,EAAE;IACvF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC9D,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAChD,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,OAAO,GAAY,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;QACnE,MAAM,KAAK,GAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,MAAM,KAAK,GAA4B,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3E,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAY,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,MAAM,GAAW,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;QAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,sGAAsG;AACtG,wGAAwG;AACxG,oFAAoF;AACpF,MAAM,eAAe,GAAG,CAAC,OAAyB,EAAU,EAAE,CAC5D,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,YAAY,OAAO,CAAC,MAAM,EAAE,CAAA;AAE3F,oGAAoG;AACpG,wEAAwE;AACxE,MAAM,oBAAoB,GAAW,8DAA8D,CAAA;AAEnG,sGAAsG;AACtG,uGAAuG;AACvG,sGAAsG;AACtG,8EAA8E;AAC9E,MAAM,WAAW,GAAG,CAAC,OAAyB,EAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAElH,MAAM,gBAAgB,GAAG,CAAC,OAAyB,EAAU,EAAE,CAC7D,OAAO,CAAC,OAAO,KAAK,MAAM;IACxB,CAAC,CAAC,SAAS,eAAe,CAAC,OAAO,CAAC,4BAA4B;IAC/D,CAAC,CAAC,UAAU,eAAe,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAA;AAEjE,qGAAqG;AACrG,uGAAuG;AACvG,uGAAuG;AACvG,MAAM,YAAY,GAAG,CAAC,OAAyB,EAAE,KAAyB,EAAU,EAAE;IACpF,MAAM,GAAG,GAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;IAC9E,OAAO,CACL,QAAQ,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,YAAY,OAAO,CAAC,MAAM,eAAe,GAAG,cAAc;QAC/F,GAAG,MAAM,CAAC,uBAAuB,CAAC,gEAAgE,CACnG,CAAA;AACH,CAAC,CAAA;AAED,sGAAsG;AACtG,qGAAqG;AACrG,oDAAoD;AACpD,MAAM,eAAe,GAAG,CAAC,OAAyB,EAAE,MAAuB,EAAW,EAAE,CACtF,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,CAAA;AAEtD,MAAM,YAAY,GAAG,KAAK,EAAE,OAAyB,EAAE,MAAuB,EAAE,GAAW,EAAmB,EAAE;IAC9G,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,GAAG,GAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IAC7F,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzG,CAAC,CAAA;AAED,qGAAqG;AACrG,mGAAmG;AACnG,MAAM,WAAW,GAAG,CAAC,SAA6B,EAAmB,EAAE,CACrE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAA;AAErD,MAAM,MAAM,GAAW,IAAI,CAAA;AAE3B,qGAAqG;AACrG,wFAAwF;AACxF,MAAM,eAAe,GAAG,KAAK,EAC3B,OAAyB,EACzB,MAAyB,EACzB,GAAW,EACiB,EAAE;IAC9B,MAAM,SAAS,GAAsB,MAAM,kBAAkB,CAC3D,OAAO,CAAC,QAAQ,EAChB,oBAAoB,EACpB,KAAK,EAAE,OAAyB,EAAmB,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACjG,CAAA;IACD,MAAM,IAAI,GAAsB,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IACzD,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;AAC9G,CAAC,CAAA;AAED,oGAAoG;AACpG,0CAA0C;AAC1C,MAAM,SAAS,GAAG,CAAC,MAAsC,EAAqB,EAAE,CAC9E,MAAM;KACH,MAAM,CAAC,CAAC,KAAwB,EAAW,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC/D,OAAO,CAAC,CAAC,KAAwB,EAAE,KAAa,EAAqB,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AAEpH,+FAA+F;AAC/F,4EAA4E;AAC5E,MAAM,mBAAmB,GAAW,CAAC,CAAA;AAErC,MAAM,eAAe,GAAG,KAAK,EAC3B,QAAqC,EACrC,SAA6B,EAC7B,MAAmB,EACnB,GAAW,EACiB,EAAE,CAC9B,SAAS,CACP,MAAM,kBAAkB,CACtB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC3C,mBAAmB,EACnB,KAAK,EAAE,OAAyB,EAA8B,EAAE,CAC9D,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAC/F,CACF,CAAA;AAEH,sGAAsG;AACtG,sGAAsG;AACtG,wBAAwB;AACxB,MAAM,WAAW,GAAG,CAAC,SAAoC,EAAsB,EAAE,CAAC,CAAC;IACjF,eAAe,EAAE,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvE,eAAe,EAAE,mBAAmB,CAAC,SAAS,CAAC;CAChD,CAAC,CAAA;AAEF,kGAAkG;AAClG,wFAAwF;AACxF,EAAE;AACF,yGAAyG;AACzG,iGAAiG;AACjG,sGAAsG;AACtG,oCAAoC;AACpC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAwB,EAAwC,EAAE,CAC1F,IAAI,GAAG,CACL,MAAM,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAY,EAAsC,EAAE;IAC/G,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAC,CACH,CAAA;AAEH;;;;;;GAMG;AACH,wGAAwG;AACxG,yGAAyG;AACzG,mGAAmG;AACnG,6BAA6B;AAC7B,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAA0B,EAAE,CACvE,MAAM,CAAC,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,MAAM,CAAC,kCAAkC,EAAE;QACzC,MAAM,CAAC,OAAO;QACd,+DAA+D;KAChE,CAAC,CAAA;AAER,qGAAqG;AACrG,yGAAyG;AACzG,qGAAqG;AACrG,wGAAwG;AACxG,sBAAsB;AACtB,MAAM,gBAAgB,GAAG,CACvB,QAAqC,EACrC,SAAoC,EACpC,MAAuB,EACvB,MAAmB,EACX,EAAE;IACV,MAAM,SAAS,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,QAAwB,EAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;IAC9G,MAAM,OAAO,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC5C,CAAC,OAAyB,EAAW,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CACnE,CAAC,MAAM,CAAA;IACR,MAAM,OAAO,GACX,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,kCAAkC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;QACvF,gBAAgB,MAAM,CAAC,SAAS,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAA;IAC9F,OAAO,OAAO,GAAG,CAAC;QAChB,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,8DAA8D;QAC9F,CAAC,CAAC,GAAG,OAAO,kCAAkC,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAgB,EAAuB,EAAE;IACjF,MAAM,MAAM,GAAgB,MAAM,cAAc,EAAE,CAAA;IAClD,MAAM,UAAU,GAA2B,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACnE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,MAAM,SAAS,GAA8B,eAAe,CAAC,OAAO,CAAC,CAAA;IACrE,MAAM,WAAW,GAAkC,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAChF,MAAM,KAAK,GAAsB;QAC/B,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAA8B,EAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACzF,CAAA;IACD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,GAAW,WAAW,CAAC,WAAW,EAAE,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IACxG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,iEAAiE,EAAE;YAC/E,6BAA6B,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChF,8FAA8F;YAC9F,4FAA4F;YAC5F,4EAA4E;YAC5E,WAAW,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,MAAM,CAAC,kBAAkB,CAAC,SAAS;gBAC9F,4EAA4E;YAC9E,+DAA+D;SAChE,CAAC,CAAA;IACJ,CAAC;IACD,kGAAkG;IAClG,qGAAqG;IACrG,4BAA4B;IAC5B,MAAM,KAAK,GAAmB,cAAc,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,KAAK,GAAsB;QAC/B,GAAG,WAAW,CAAC,GAAG,CAChB,CAAC,IAAY,EAAU,EAAE,CAAC,QAAQ,IAAI,gEAAgE,CACvG;QACD,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAoB,EAAU,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;KAC7E,CAAA;IACD,MAAM,MAAM,GAAoB,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACzE,MAAM,OAAO,GAAsB,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACrH,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC,MAAM,CACJ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,wDAAwD,EACzF,SAAS,CAAC;YACR,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAyB,EAAU,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACpF,OAAO;YACP,KAAK;SACN,CAAC,CACH;QACH,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAChG,CAAC,CAAA;AASD,MAAM,SAAS,GAAG,CAAC,GAAY,EAAqB,EAAE,CACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAEhG,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,GAAW,EAAE,QAAgB,EAAU,EAAE;IAC3E,MAAM,KAAK,GAAW,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAkB,EAAY,EAAE,CAAC,CAAC;IACjE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC;IAClD,gGAAgG;IAChG,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC;IAChD,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;CAClE,CAAC,CAAA;AAEF,sGAAsG;AACtG,wGAAwG;AACxG,yFAAyF;AACzF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAmC,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAChD,CAAC,CAAC,GAAG,EAAE,GAAG,CAA6B,EAAY,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CACrF;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAOD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAgB,EAAE;IAC/D,mGAAmG;IACnG,wGAAwG;IACxG,iGAAiG;IACjG,4FAA4F;IAC5F,MAAM,MAAM,GAAc,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACzD,GAAG,EAAE,OAAO,CAAC,IAAI;QACjB,SAAS,EAAE,yBAAyB;KACrC,CAAC,CAAA;IACF,sGAAsG;IACtG,4EAA4E;IAC5E,MAAM,UAAU,GAAoC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7E,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc;oBAChC,CAAC,CAAC,CAAC,mCAAmC,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC;oBAC5F,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjE,+DAA+D;aAChE;SACF;QACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;AAC7D,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAc,EAAE;IAC9D,MAAM,OAAO,GAAiB,cAAc,CAAC,OAAO,CAAC,CAAA;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,4EAA4E,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/G,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,MAAM,GAAwB,oBAAoB,CACtD,UAAU,EACV,OAAO,CAAC,QAAQ,CAAC,sBAAsB,EACvC,kBAAkB,CACnB,CAAA;IACD,MAAM,QAAQ,GAAsB;QAClC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC,QAAkB,EAAU,EAAE,CAC7B,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,EAAE,CACtF;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,MAAM,CAAC,WAAW;KACtB,CAAA;IACD,qGAAqG;IACrG,mGAAmG;IACnG,mGAAmG;IACnG,mBAAmB;IACnB,OAAO,UAAU,CACf,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,MAAM,CACJ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;YAClG,kBAAkB,EACpB,QAAQ,CACT;QACH,CAAC,CAAC,MAAM,CAAC,2BAA2B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAAC,EACrF,OAAO,CAAC,UAAU,CACnB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Context } from '../context.js';
|
|
2
|
+
import { type RunResult } from '../exec.js';
|
|
3
|
+
/**
|
|
4
|
+
* Ask pnpm for the licence inventory of the resolved set.
|
|
5
|
+
*
|
|
6
|
+
* `--recursive` is what makes it the resolved set of a workspace. Without it pnpm reports the root
|
|
7
|
+
* importer alone, so every dependency a member declares - the application's framework included - was
|
|
8
|
+
* never measured by the gates that read this inventory.
|
|
9
|
+
* @param context the repository whose installation is read.
|
|
10
|
+
* @param isProductionOnly whether to restrict the inventory to the production graph of every importer.
|
|
11
|
+
* @returns the pnpm run; its `stdout` is the JSON inventory grouped by licence.
|
|
12
|
+
*/
|
|
13
|
+
export declare const runLicenseInventory: (context: Context, isProductionOnly?: boolean) => RunResult;
|
|
14
|
+
//# sourceMappingURL=license-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license-inventory.d.ts","sourceRoot":"","sources":["../../src/checks/license-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAO,MAAM,YAAY,CAAA;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,EAAE,mBAAkB,OAAe,KAAG,SAGtF,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { run } from '../exec.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ask pnpm for the licence inventory of the resolved set.
|
|
4
|
+
*
|
|
5
|
+
* `--recursive` is what makes it the resolved set of a workspace. Without it pnpm reports the root
|
|
6
|
+
* importer alone, so every dependency a member declares - the application's framework included - was
|
|
7
|
+
* never measured by the gates that read this inventory.
|
|
8
|
+
* @param context the repository whose installation is read.
|
|
9
|
+
* @param isProductionOnly whether to restrict the inventory to the production graph of every importer.
|
|
10
|
+
* @returns the pnpm run; its `stdout` is the JSON inventory grouped by licence.
|
|
11
|
+
*/
|
|
12
|
+
export const runLicenseInventory = (context, isProductionOnly = false) => run('pnpm', ['licenses', 'list', '--recursive', ...(isProductionOnly ? ['--prod'] : []), '--json'], {
|
|
13
|
+
cwd: context.root,
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=license-inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license-inventory.js","sourceRoot":"","sources":["../../src/checks/license-inventory.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,mBAA4B,KAAK,EAAa,EAAE,CACpG,GAAG,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;IAClG,GAAG,EAAE,OAAO,CAAC,IAAI;CAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Repository } from '../context.js';
|
|
2
|
+
/** Regenerate the SBOM for the current tree, then the compliance report that embeds it. */
|
|
3
|
+
export declare const complianceReport: (repository: Repository, arguments_: readonly string[]) => Promise<number>;
|
|
4
|
+
//# sourceMappingURL=compliance-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.d.ts","sourceRoot":"","sources":["../../src/commands/compliance-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK/C,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,GAAU,YAAY,UAAU,EAAE,YAAY,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAiB5G,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { parseComplianceReportArguments } from '@ploaness/governance';
|
|
3
|
+
import { writeComplianceReport } from '../compliance-report.js';
|
|
4
|
+
import { writeSbom } from '../sbom.js';
|
|
5
|
+
const SBOM_DIRECTORY = 'dist/sbom';
|
|
6
|
+
/** Regenerate the SBOM for the current tree, then the compliance report that embeds it. */
|
|
7
|
+
export const complianceReport = async (repository, arguments_) => {
|
|
8
|
+
const options = parseComplianceReportArguments(arguments_);
|
|
9
|
+
if (options === undefined) {
|
|
10
|
+
throw new Error('usage: ploaness compliance-report [--output <directory>]');
|
|
11
|
+
}
|
|
12
|
+
writeSbom(repository, { artifacts: [], output: path.join(repository.root, SBOM_DIRECTORY) });
|
|
13
|
+
const written = await writeComplianceReport(repository, {
|
|
14
|
+
output: options.output,
|
|
15
|
+
sbomDirectory: path.join(repository.root, SBOM_DIRECTORY),
|
|
16
|
+
});
|
|
17
|
+
for (const file of written.files) {
|
|
18
|
+
console.info(`Compliance report written to ${file}`);
|
|
19
|
+
}
|
|
20
|
+
if (written.pdfSkipped !== undefined) {
|
|
21
|
+
console.info(`No PDF was rendered: ${written.pdfSkipped}`);
|
|
22
|
+
}
|
|
23
|
+
return 0;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=compliance-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.js","sourceRoot":"","sources":["../../src/commands/compliance-report.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAsB,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,cAAc,GAAW,WAAW,CAAA;AAE1C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAsB,EAAE,UAA6B,EAAmB,EAAE;IAC/G,MAAM,OAAO,GAA4C,8BAA8B,CAAC,UAAU,CAAC,CAAA;IACnG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAA;IAC5F,MAAM,OAAO,GAAkB,MAAM,qBAAqB,CAAC,UAAU,EAAE;QACrE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC;KAC1D,CAAC,CAAA;IACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type NoticeFile } from '@ploaness/governance';
|
|
2
|
+
import { type Repository } from './context.js';
|
|
3
|
+
/** Where the report is written and which SBOM it embeds. */
|
|
4
|
+
export interface ComplianceReportOptions {
|
|
5
|
+
readonly output: string;
|
|
6
|
+
readonly sbomDirectory: string;
|
|
7
|
+
}
|
|
8
|
+
/** What a run of the report writer produced. */
|
|
9
|
+
export interface WrittenReport {
|
|
10
|
+
readonly directory: string;
|
|
11
|
+
readonly files: readonly string[];
|
|
12
|
+
/** Why no PDF was rendered, when none was. */
|
|
13
|
+
readonly pdfSkipped: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/** The licence and notice files one installed package directory ships, never through a link. */
|
|
16
|
+
export declare const noticeFilesIn: (directory: string) => readonly NoticeFile[];
|
|
17
|
+
/**
|
|
18
|
+
* Write the compliance report for the current tree: one HTML document, and its PDF rendering when
|
|
19
|
+
* the project has a browser to print with.
|
|
20
|
+
* @param repository the repository the report describes.
|
|
21
|
+
* @param options where to write it and which SBOM to embed.
|
|
22
|
+
* @returns the files written.
|
|
23
|
+
*/
|
|
24
|
+
export declare const writeComplianceReport: (repository: Repository, options: ComplianceReportOptions) => Promise<WrittenReport>;
|
|
25
|
+
//# sourceMappingURL=compliance-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.d.ts","sourceRoot":"","sources":["../src/compliance-report.ts"],"names":[],"mappings":"AAKA,OAAO,EAaL,KAAK,UAAU,EAShB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAKjE,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CACxC;AA+CD,gGAAgG;AAChG,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,SAAS,UAAU,EAU/D,CAAA;AA2QN;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,SAAS,uBAAuB,KAC/B,OAAO,CAAC,aAAa,CA4BvB,CAAA"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { existsSync, lstatSync, readdirSync, readFileSync, unlinkSync } from 'node:fs';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { asOptionalText, asText, buildComplianceReport, classifyVulnerabilities, contentsPages, coordinateOf, directDependencyNames, HARNESS_EXCEPTIONS, isArray, outlinePages, parseLicenseInventory, REPORT_FILE_PREFIX, readKey, renderComplianceReport, reportFileStem, } from '@ploaness/governance';
|
|
7
|
+
import { readAdvisories } from './checks/dependencies.js';
|
|
8
|
+
import { runLicenseInventory } from './checks/license-inventory.js';
|
|
9
|
+
import { cliDirectory, git } from './context.js';
|
|
10
|
+
import { ignoredOutputDirectory, publishFiles } from './output-directory.js';
|
|
11
|
+
import { workingTreeFingerprint } from './working-tree.js';
|
|
12
|
+
// A licence file larger than this is not a licence file; reading it whole would put a bundle or a data
|
|
13
|
+
// file into the report.
|
|
14
|
+
const MAX_NOTICE_BYTES = 262_144;
|
|
15
|
+
const PLAYWRIGHT = '@playwright/test';
|
|
16
|
+
// A licence file is named LICENSE, LICENCE, COPYING or NOTICE, optionally with a variant such as `-MIT` or
|
|
17
|
+
// `-3RD-PARTY`, and optionally with a text or licence-name extension. The report leaves the project, so any
|
|
18
|
+
// other file that merely starts with one of those words, such as `license.key`, is never read.
|
|
19
|
+
const NOTICE_BASE = /^(?:licen[cs]e|copying|notice)(?:-[a-z\d]{1,20}){0,3}$/iu;
|
|
20
|
+
const NOTICE_EXTENSIONS = new Set([
|
|
21
|
+
'',
|
|
22
|
+
'md',
|
|
23
|
+
'markdown',
|
|
24
|
+
'txt',
|
|
25
|
+
'rst',
|
|
26
|
+
'mit',
|
|
27
|
+
'bsd',
|
|
28
|
+
'isc',
|
|
29
|
+
'apache',
|
|
30
|
+
'apache2',
|
|
31
|
+
]);
|
|
32
|
+
// A variant names a licence or a scope, never a credential: `license-key.txt` is a key, not a licence.
|
|
33
|
+
const CREDENTIAL_WORD = /key|secret|token|private|password|credential|cert/iu;
|
|
34
|
+
const isNoticeName = (name) => {
|
|
35
|
+
const dot = name.indexOf('.');
|
|
36
|
+
const base = dot === -1 ? name : name.slice(0, dot);
|
|
37
|
+
const extension = dot === -1 ? '' : name.slice(dot + 1).toLowerCase();
|
|
38
|
+
return NOTICE_BASE.test(base) && !CREDENTIAL_WORD.test(base) && NOTICE_EXTENSIONS.has(extension);
|
|
39
|
+
};
|
|
40
|
+
const readJsonFile = (file) => JSON.parse(readFileSync(file, 'utf8'));
|
|
41
|
+
const sha256 = (content) => createHash('sha256').update(content).digest('hex');
|
|
42
|
+
const readInventory = (repository, isProductionOnly) => {
|
|
43
|
+
const result = runLicenseInventory(repository, isProductionOnly);
|
|
44
|
+
const packages = result.code === 0 ? parseLicenseInventory(result.stdout) : undefined;
|
|
45
|
+
if (packages === undefined) {
|
|
46
|
+
throw new Error(`the license inventory could not be read for the compliance report: ${result.output}`);
|
|
47
|
+
}
|
|
48
|
+
return packages;
|
|
49
|
+
};
|
|
50
|
+
/** The licence and notice files one installed package directory ships, never through a link. */
|
|
51
|
+
export const noticeFilesIn = (directory) => (existsSync(directory) ? readdirSync(directory) : [])
|
|
52
|
+
.filter((name) => isNoticeName(name))
|
|
53
|
+
.toSorted((left, right) => left.localeCompare(right))
|
|
54
|
+
.flatMap((name) => {
|
|
55
|
+
const file = path.join(directory, name);
|
|
56
|
+
// `lstat`, so a symbolic link is never followed: the report leaves the project, and a package that
|
|
57
|
+
// ships its licence as a link could otherwise copy any file the build can read into it.
|
|
58
|
+
const stat = lstatSync(file);
|
|
59
|
+
return stat.isFile() && stat.size <= MAX_NOTICE_BYTES ? [{ name, text: readFileSync(file, 'utf8') }] : [];
|
|
60
|
+
});
|
|
61
|
+
// Each installed directory names its own version, which is how a notice is tied to one coordinate
|
|
62
|
+
// rather than to every version the inventory groups under the package name.
|
|
63
|
+
const noticesOf = (entry) => entry.paths.map((directory) => {
|
|
64
|
+
const manifest = path.join(directory, 'package.json');
|
|
65
|
+
const version = existsSync(manifest) ? asText(readKey(readJsonFile(manifest), 'version')) : '';
|
|
66
|
+
return {
|
|
67
|
+
coordinate: version.length > 0 && entry.versions.length > 0 ? coordinateOf(entry.name, version) : entry.name,
|
|
68
|
+
files: noticeFilesIn(directory),
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
// The SBOM must describe the tree the report describes. A report built on an inventory from an earlier
|
|
72
|
+
// tree would print a hash that matches its download and still certify the wrong dependencies.
|
|
73
|
+
const readCurrentSbom = (directory, fingerprint) => {
|
|
74
|
+
const bomFile = path.join(directory, 'bom.cdx.json');
|
|
75
|
+
const releaseFile = path.join(directory, 'release.json');
|
|
76
|
+
if (!(existsSync(bomFile) && existsSync(releaseFile))) {
|
|
77
|
+
throw new Error(`no SBOM in ${directory}; run the sbom gate or \`ploaness compliance-report\` first`);
|
|
78
|
+
}
|
|
79
|
+
const text = readFileSync(bomFile, 'utf8');
|
|
80
|
+
const release = JSON.parse(readFileSync(releaseFile, 'utf8'));
|
|
81
|
+
if (readKey(release, 'sourceFingerprint') !== fingerprint || readKey(release, 'sbomSha256') !== sha256(text)) {
|
|
82
|
+
throw new Error(`the SBOM in ${directory} does not describe the current tree; run the sbom gate or ` +
|
|
83
|
+
'`ploaness compliance-report` to regenerate it');
|
|
84
|
+
}
|
|
85
|
+
const components = readKey(JSON.parse(text), 'components');
|
|
86
|
+
return {
|
|
87
|
+
text,
|
|
88
|
+
sha256: sha256(text),
|
|
89
|
+
components: isArray(components) ? components.length : 0,
|
|
90
|
+
generator: asText(readKey(readKey(release, 'generator'), 'image')),
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
// The typefaces the report is set in, from the OFL-licensed Fontsource packages this package depends on.
|
|
94
|
+
// Only the Latin subset is embedded. A character outside it falls back to the next face in the stack.
|
|
95
|
+
const FONT_FILES = [
|
|
96
|
+
{
|
|
97
|
+
family: 'Source Serif 4',
|
|
98
|
+
style: 'normal',
|
|
99
|
+
weight: '200 900',
|
|
100
|
+
url: import.meta.resolve('@fontsource-variable/source-serif-4/files/source-serif-4-latin-wght-normal.woff2'),
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
family: 'Source Serif 4',
|
|
104
|
+
style: 'italic',
|
|
105
|
+
weight: '200 900',
|
|
106
|
+
url: import.meta.resolve('@fontsource-variable/source-serif-4/files/source-serif-4-latin-wght-italic.woff2'),
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
family: 'Playfair Display',
|
|
110
|
+
style: 'normal',
|
|
111
|
+
weight: '400 900',
|
|
112
|
+
url: import.meta.resolve('@fontsource-variable/playfair-display/files/playfair-display-latin-wght-normal.woff2'),
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
family: 'Source Code Pro',
|
|
116
|
+
style: 'normal',
|
|
117
|
+
weight: '200 900',
|
|
118
|
+
url: import.meta.resolve('@fontsource-variable/source-code-pro/files/source-code-pro-latin-wght-normal.woff2'),
|
|
119
|
+
},
|
|
120
|
+
];
|
|
121
|
+
const embeddedFonts = () => FONT_FILES.map((font) => ({
|
|
122
|
+
family: font.family,
|
|
123
|
+
style: font.style,
|
|
124
|
+
weight: font.weight,
|
|
125
|
+
data: readFileSync(new URL(font.url)).toString('base64'),
|
|
126
|
+
}));
|
|
127
|
+
const harnessVersion = () => {
|
|
128
|
+
const manifest = readJsonFile(path.join(cliDirectory(), 'package.json'));
|
|
129
|
+
return asText(readKey(manifest, 'version'));
|
|
130
|
+
};
|
|
131
|
+
const projectName = (repository) => {
|
|
132
|
+
const declared = asText(readKey(repository.packageJson, 'name'));
|
|
133
|
+
return declared.length > 0 ? declared : path.basename(repository.root);
|
|
134
|
+
};
|
|
135
|
+
// An ISO timestamp up to whole seconds, `YYYY-MM-DDTHH:MM:SS`.
|
|
136
|
+
const SECONDS_PRECISION = 19;
|
|
137
|
+
const timestamp = () => `${new Date().toISOString().slice(0, SECONDS_PRECISION).replace('T', ' ')} UTC`;
|
|
138
|
+
const assemble = (repository, fingerprint, sbom) => {
|
|
139
|
+
const lockfile = path.join(repository.root, 'pnpm-lock.yaml');
|
|
140
|
+
const packages = readInventory(repository, false);
|
|
141
|
+
const production = readInventory(repository, true);
|
|
142
|
+
const auditedAt = timestamp();
|
|
143
|
+
const reading = readAdvisories(repository);
|
|
144
|
+
if (reading.kind === 'unreachable') {
|
|
145
|
+
throw new Error(['the advisory database was unreachable, so the report cannot state vulnerabilities', ...reading.findings].join('\n'));
|
|
146
|
+
}
|
|
147
|
+
return buildComplianceReport({
|
|
148
|
+
projectName: projectName(repository),
|
|
149
|
+
projectDescription: asOptionalText(readKey(repository.packageJson, 'description')),
|
|
150
|
+
source: {
|
|
151
|
+
commit: git(repository, ['rev-parse', 'HEAD']),
|
|
152
|
+
isDirty: git(repository, ['status', '--porcelain']).length > 0,
|
|
153
|
+
fingerprint,
|
|
154
|
+
lockfileSha256: sha256(readFileSync(lockfile)),
|
|
155
|
+
},
|
|
156
|
+
generatedAt: timestamp(),
|
|
157
|
+
harnessVersion: harnessVersion(),
|
|
158
|
+
packages,
|
|
159
|
+
production,
|
|
160
|
+
directNames: directDependencyNames(repository.projects.map((project) => project.packageJson)),
|
|
161
|
+
vulnerabilities: classifyVulnerabilities(reading.advisories, repository.settings.vulnerabilityAllowlist, HARNESS_EXCEPTIONS),
|
|
162
|
+
advisoryRecords: reading.advisories.length,
|
|
163
|
+
auditedAt,
|
|
164
|
+
sbom: { sha256: sbom.sha256, components: sbom.components, generator: sbom.generator },
|
|
165
|
+
notices: packages.flatMap((entry) => noticesOf(entry)),
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
// The browser is the project's own Playwright, which full verification already requires for the
|
|
169
|
+
// end-to-end suite. A repository with no member that declares it - a library - has no browser to
|
|
170
|
+
// print with, and gets the HTML alone rather than a browser installed behind its back.
|
|
171
|
+
// Asked of the manifest before the resolver: pnpm's hidden hoist makes a package resolvable from a member
|
|
172
|
+
// that never declared it, and a report must not depend on which other member happened to install it.
|
|
173
|
+
const declaresPlaywright = (project) => directDependencyNames([project.packageJson]).includes(PLAYWRIGHT);
|
|
174
|
+
const playwrightEntry = (repository) => repository.projects
|
|
175
|
+
.filter((project) => declaresPlaywright(project))
|
|
176
|
+
.flatMap((project) => {
|
|
177
|
+
try {
|
|
178
|
+
return [createRequire(path.join(repository.root, project.path, 'package.json')).resolve(PLAYWRIGHT)];
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return [];
|
|
182
|
+
}
|
|
183
|
+
})[0];
|
|
184
|
+
// `@playwright/test` exports its `test` function as the module, with the browser launchers as properties
|
|
185
|
+
// of that function, so a lookup that accepts only plain objects never finds them.
|
|
186
|
+
const isObjectLike = (value) => value !== null && (typeof value === 'object' || typeof value === 'function');
|
|
187
|
+
const chromiumOf = (value) => isObjectLike(value) && 'chromium' in value ? value.chromium : undefined;
|
|
188
|
+
const launchOf = (value) => (isObjectLike(value) && 'launch' in value ? value.launch : undefined);
|
|
189
|
+
const defaultOf = (value) => (isObjectLike(value) && 'default' in value ? value.default : undefined);
|
|
190
|
+
const isPlaywright = (candidate) => typeof launchOf(chromiumOf(candidate)) === 'function';
|
|
191
|
+
const launchChromium = async (playwright) => {
|
|
192
|
+
try {
|
|
193
|
+
return await playwright.chromium.launch();
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
throw new Error(`Chromium could not be launched to print the PDF: ${String(error)}\n` +
|
|
197
|
+
'install it with `pnpm exec playwright install chromium`', { cause: error });
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
const PDF_OPTIONS = {
|
|
201
|
+
format: 'A4',
|
|
202
|
+
printBackground: true,
|
|
203
|
+
preferCSSPageSize: true,
|
|
204
|
+
outline: true,
|
|
205
|
+
tagged: true,
|
|
206
|
+
};
|
|
207
|
+
// Evaluated in the page. The numbers only occupy slots the contents already reserve, so writing them does
|
|
208
|
+
// not move a heading to another page and the second print matches the first.
|
|
209
|
+
const fillContentsPages = (pages) => `for (const [id, page] of ${JSON.stringify([...pages])}) {` +
|
|
210
|
+
"const slot = document.querySelector('#toc .page[data-for=\"' + id + '\"]'); " +
|
|
211
|
+
'if (slot) slot.textContent = String(page) }';
|
|
212
|
+
const printPdf = async (entry, html) => {
|
|
213
|
+
const loaded = await import(pathToFileURL(entry).href);
|
|
214
|
+
const playwright = isPlaywright(loaded) ? loaded : defaultOf(loaded);
|
|
215
|
+
if (!isPlaywright(playwright)) {
|
|
216
|
+
throw new Error(`${entry} does not export Playwright's chromium launcher`);
|
|
217
|
+
}
|
|
218
|
+
const browser = await launchChromium(playwright);
|
|
219
|
+
try {
|
|
220
|
+
const page = await browser.newPage();
|
|
221
|
+
await page.setContent(html, { waitUntil: 'load' });
|
|
222
|
+
await page.emulateMedia({ media: 'print' });
|
|
223
|
+
const draft = await page.pdf(PDF_OPTIONS);
|
|
224
|
+
const pages = contentsPages(outlinePages(Buffer.from(draft).toString('latin1')));
|
|
225
|
+
if (pages.size === 0) {
|
|
226
|
+
return draft;
|
|
227
|
+
}
|
|
228
|
+
await page.evaluate(fillContentsPages(pages));
|
|
229
|
+
return await page.pdf(PDF_OPTIONS);
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
await browser.close();
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
// Reports from earlier commits are removed, so the directory holds exactly one report to send.
|
|
236
|
+
const removeEarlierReports = (directory, keep) => {
|
|
237
|
+
const present = existsSync(directory) ? readdirSync(directory) : [];
|
|
238
|
+
for (const name of present) {
|
|
239
|
+
if (name.startsWith(REPORT_FILE_PREFIX) && /\.(?:html|pdf)$/u.test(name) && !keep.includes(name)) {
|
|
240
|
+
unlinkSync(path.join(directory, name));
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Write the compliance report for the current tree: one HTML document, and its PDF rendering when
|
|
246
|
+
* the project has a browser to print with.
|
|
247
|
+
* @param repository the repository the report describes.
|
|
248
|
+
* @param options where to write it and which SBOM to embed.
|
|
249
|
+
* @returns the files written.
|
|
250
|
+
*/
|
|
251
|
+
export const writeComplianceReport = async (repository, options) => {
|
|
252
|
+
const before = workingTreeFingerprint(repository.root);
|
|
253
|
+
const sbom = readCurrentSbom(path.resolve(repository.root, options.sbomDirectory), before);
|
|
254
|
+
const report = assemble(repository, before, sbom);
|
|
255
|
+
const stem = reportFileStem(report.projectName, report.source.commit);
|
|
256
|
+
const htmlName = `${stem}.html`;
|
|
257
|
+
const pdfName = `${stem}.pdf`;
|
|
258
|
+
const directory = ignoredOutputDirectory(repository, options.output, {
|
|
259
|
+
files: [htmlName, pdfName, `${htmlName}.tmp`, `${pdfName}.tmp`],
|
|
260
|
+
label: 'Compliance report',
|
|
261
|
+
});
|
|
262
|
+
const html = renderComplianceReport(report, { sbom: sbom.text, fonts: embeddedFonts() }, stem);
|
|
263
|
+
const entry = playwrightEntry(repository);
|
|
264
|
+
const pdf = entry === undefined ? undefined : await printPdf(entry, html);
|
|
265
|
+
if (before !== workingTreeFingerprint(repository.root)) {
|
|
266
|
+
throw new Error('the authored tree changed while the compliance report was generated; regenerate it');
|
|
267
|
+
}
|
|
268
|
+
const outputs = pdf === undefined ? { [htmlName]: html } : { [htmlName]: html, [pdfName]: pdf };
|
|
269
|
+
const written = Object.keys(outputs);
|
|
270
|
+
removeEarlierReports(directory, written);
|
|
271
|
+
publishFiles(directory, outputs);
|
|
272
|
+
return {
|
|
273
|
+
directory,
|
|
274
|
+
files: written.map((file) => path.join(directory, file)),
|
|
275
|
+
pdfSkipped: pdf === undefined ? 'no workspace package declares @playwright/test, so no browser can print it' : undefined,
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=compliance-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-report.js","sourceRoot":"","sources":["../src/compliance-report.ts"],"names":[],"mappings":"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"}
|
package/dist/gates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,oDAAoD;AACpD,UAAU,QAAQ;IAChB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,GACZ,CAAC,QAAQ,GAAG;IACV,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC3E,CAAC,GACF,CAAC,QAAQ,GAAG;IACV,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACnE,CAAC,CAAA;AAmTN,+CAA+C;AAC/C,eAAO,MAAM,SAAS,EAAE,SAAS,IAAI,EAAuD,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,YAAY,OAAO,KAAG,SAAS,IAAI,EACF,CAAA;AAE1D,sCAAsC;AACtC,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,IAAI,GAAG,SAAoE,CAAA;AAEjH,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAQD;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,GAAI,YAAY,UAAU,EAAE,YAAY,OAAO,KAAG,SAAS,WAAW,EAoBzF,CAAA"}
|
package/dist/gates.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { planSteps } from '@ploaness/governance';
|
|
3
3
|
import { assets } from './checks/assets.js';
|
|
4
4
|
import { blocklist } from './checks/blocklist.js';
|
|
5
|
+
import { complianceReport } from './checks/compliance-report.js';
|
|
5
6
|
import { actions, containers, secrets } from './checks/containers.js';
|
|
6
7
|
import { conventions } from './checks/conventions.js';
|
|
7
8
|
import { dependencyFreshness, licenses, vulnerabilities } from './checks/dependencies.js';
|
|
@@ -306,6 +307,13 @@ const EXTENDED_GATES = [
|
|
|
306
307
|
{ id: 'bundle', scope: 'package', title: 'client bundle budget', isExtended: true, run: bundle },
|
|
307
308
|
{ id: 'e2e', scope: 'package', title: 'end-to-end suite', isExtended: true, run: endToEnd },
|
|
308
309
|
{ id: 'sbom', scope: 'repository', title: 'dependency inventory', isExtended: true, run: sbomInventory },
|
|
310
|
+
{
|
|
311
|
+
id: 'compliance-report',
|
|
312
|
+
scope: 'repository',
|
|
313
|
+
title: 'compliance report',
|
|
314
|
+
isExtended: true,
|
|
315
|
+
run: complianceReport,
|
|
316
|
+
},
|
|
309
317
|
];
|
|
310
318
|
// Last in BOTH modes, which it was not. It closed `DEFAULT_GATES`, and the extended gates were appended
|
|
311
319
|
// after it - so `build`, `bundle`, and `e2e` all ran once the fingerprint had already been compared.
|
package/dist/gates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAE1G,OAAO,EAA6D,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAChH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAwC3C,oEAAoE;AACpE,MAAM,aAAa,GAAoB;IACrC;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,2BAA2B;QAClC,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,IAAI;QACpB,GAAG,EAAE,SAAS;KACf;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,IAAI;QACpB,GAAG,EAAE,MAAM;KACZ;IACD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;IAC7F;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,0BAA0B;QACjC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IAC5F;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,0BAA0B;QACjC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,KAAK;KACX;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,WAAW;KACjB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,wCAAwC;QAC/C,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,MAAM;KACZ;IACD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;IAC5F;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,WAAW;KACjB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,qBAAqB;QAC5B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;IACnF;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,cAAc;KACpB;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,qBAAqB;QAC5B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,mGAAmG;QACnG,uEAAuE;QACvE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,2CAA2C;QAClD,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,eAAe;KACrB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,wBAAwB;QAC/B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,eAAe;KACrB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,kGAAkG;QAClG,+CAA+C;QAC/C,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,YAAY;KAClB;IACD;QACE,6FAA6F;QAC7F,qEAAqE;QACrE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,4BAA4B;QACnC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,UAAU;KAChB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,mBAAmB;QAC1B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,gBAAgB;KACtB;IACD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;IAC7F;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,qBAAqB;QAC5B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,QAAQ;KACd;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,eAAe;KACrB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,0BAA0B;QACjC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,cAAc;KACpB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,mBAAmB;QAC1B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,UAAU;KAChB;IACD,gGAAgG;IAChG,oBAAoB;IACpB;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,SAAS;KACf;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,mBAAmB;KACzB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,WAAW;KACjB;IACD;QACE,mGAAmG;QACnG,qFAAqF;QACrF,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,WAAW;KACjB;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,KAAK;QACjB,gGAAgG;QAChG,mGAAmG;QACnG,4EAA4E;QAC5E,GAAG,EAAE,CAAC,UAAsB,EAAc,EAAE,CAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAU,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrF;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,MAAM;KACZ;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,UAAU;KAChB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,OAAO;KACb;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,mCAAmC;QAC1C,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,IAAI;KACV;IACD,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;CAC9F,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAoB;IACtC,kGAAkG;IAClG,gGAAgG;IAChG,uCAAuC;IACvC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAC1F;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,4BAA4B;QACnC,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,cAAc;KACpB;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,kBAAkB;KACxB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,0CAA0C;QACjD,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,aAAa;KACnB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,aAAa;KACnB;IACD,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAC1F,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;IAChG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;IAC3F,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;IACxG;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,mBAAmB;QAC1B,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAA;AAED,wGAAwG;AACxG,qGAAqG;AACrG,gGAAgG;AAChG,uDAAuD;AACvD,MAAM,WAAW,GAAS;IACxB,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,wBAAwB;IAC/B,UAAU,EAAE,KAAK;IACjB,GAAG,EAAE,UAAU;CAChB,CAAA;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAoB,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,WAAW,CAAC,CAAA;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAmB,EAAmB,EAAE,CAC/D,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAAA;AAE1D,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAQjH,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAkB,EAAE,CAAC,CAAC;IAChD,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,UAAU,EAAE,IAAI,CAAC,UAAU;CAC5B,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,UAAsB,EAAE,UAAmB,EAA0B,EAAE;IAC7F,MAAM,OAAO,GAAgC,UAAU,CAAC,OAAO,CAAC,GAAG,CACjE,CAAC,MAAc,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAC3F,CAAA;IACD,OAAO,SAAS,CACd,SAAS,CAAC,GAAG,CAAC,CAAC,IAAU,EAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC7D,OAAO,EACP,UAAU,CACX,CAAC,OAAO,CAAC,CAAC,IAAc,EAA0B,EAAE;QACnD,MAAM,IAAI,GAAqB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO;YACL;gBACE,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAiB,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;aAChG;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Repository } from './context.js';
|
|
2
|
+
/** What a writer produces, and how its refusal names it. */
|
|
3
|
+
export interface GeneratedOutput {
|
|
4
|
+
readonly files: readonly string[];
|
|
5
|
+
readonly label: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Resolve where generated reports may be written: outside the repository, or inside it only where Git
|
|
9
|
+
* ignores every file the writer produces and tracks nothing.
|
|
10
|
+
* @param repository the repository the reports describe.
|
|
11
|
+
* @param requested the directory the caller asked for.
|
|
12
|
+
* @param output the files the writer will publish there, including their temporary names.
|
|
13
|
+
* @returns the resolved directory.
|
|
14
|
+
*/
|
|
15
|
+
export declare const ignoredOutputDirectory: (repository: Repository, requested: string, output: GeneratedOutput) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Publish each file through an exclusive temporary name and a rename, so a reader never sees a partial
|
|
18
|
+
* report and a leftover temporary file is an error rather than something silently overwritten.
|
|
19
|
+
* @param directory the resolved output directory.
|
|
20
|
+
* @param files the file contents by name.
|
|
21
|
+
*/
|
|
22
|
+
export declare const publishFiles: (directory: string, files: Readonly<Record<string, string | Uint8Array>>) => void;
|
|
23
|
+
//# sourceMappingURL=output-directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-directory.d.ts","sourceRoot":"","sources":["../src/output-directory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AASnD,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,YAAY,UAAU,EAAE,WAAW,MAAM,EAAE,QAAQ,eAAe,KAAG,MAkB3G,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,KAAG,IAOtG,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, realpathSync, renameSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { git } from './context.js';
|
|
4
|
+
import { run } from './exec.js';
|
|
5
|
+
// Resolve existing ancestors so an ignored symlink cannot direct output into authored content.
|
|
6
|
+
const resolvedDestination = (directory) => existsSync(directory)
|
|
7
|
+
? realpathSync(directory)
|
|
8
|
+
: path.join(resolvedDestination(path.dirname(directory)), path.basename(directory));
|
|
9
|
+
/**
|
|
10
|
+
* Resolve where generated reports may be written: outside the repository, or inside it only where Git
|
|
11
|
+
* ignores every file the writer produces and tracks nothing.
|
|
12
|
+
* @param repository the repository the reports describe.
|
|
13
|
+
* @param requested the directory the caller asked for.
|
|
14
|
+
* @param output the files the writer will publish there, including their temporary names.
|
|
15
|
+
* @returns the resolved directory.
|
|
16
|
+
*/
|
|
17
|
+
export const ignoredOutputDirectory = (repository, requested, output) => {
|
|
18
|
+
const directory = resolvedDestination(path.resolve(requested));
|
|
19
|
+
const relative = path.relative(realpathSync(repository.root), directory);
|
|
20
|
+
const isInside = relative === '' || (!relative.startsWith(`..${path.sep}`) && relative !== '..' && !path.isAbsolute(relative));
|
|
21
|
+
if (isInside) {
|
|
22
|
+
const ignored = output.files.map((file) => run('git', ['check-ignore', '--quiet', '--', path.join(directory, file)], {
|
|
23
|
+
cwd: repository.root,
|
|
24
|
+
}));
|
|
25
|
+
const tracked = git(repository, ['ls-files', '--', relative]);
|
|
26
|
+
if (ignored.some((result) => result.code !== 0) || tracked.length > 0) {
|
|
27
|
+
throw new Error(`${output.label} output must be in an ignored artifact directory or outside the repository`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return directory;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Publish each file through an exclusive temporary name and a rename, so a reader never sees a partial
|
|
34
|
+
* report and a leftover temporary file is an error rather than something silently overwritten.
|
|
35
|
+
* @param directory the resolved output directory.
|
|
36
|
+
* @param files the file contents by name.
|
|
37
|
+
*/
|
|
38
|
+
export const publishFiles = (directory, files) => {
|
|
39
|
+
mkdirSync(directory, { recursive: true });
|
|
40
|
+
for (const [name, content] of Object.entries(files)) {
|
|
41
|
+
const temporary = path.join(directory, `${name}.tmp`);
|
|
42
|
+
writeFileSync(temporary, content, { flag: 'wx' });
|
|
43
|
+
renameSync(temporary, path.join(directory, name));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=output-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-directory.js","sourceRoot":"","sources":["../src/output-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACxF,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAmB,MAAM,cAAc,CAAA;AACnD,OAAO,EAAkB,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/C,+FAA+F;AAC/F,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAU,EAAE,CACxD,UAAU,CAAC,SAAS,CAAC;IACnB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;IACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAQvF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAsB,EAAE,SAAiB,EAAE,MAAuB,EAAU,EAAE;IACnH,MAAM,SAAS,GAAW,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAA;IAChF,MAAM,QAAQ,GACZ,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/G,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAyB,MAAM,CAAC,KAAK,CAAC,GAAG,CACpD,CAAC,IAAY,EAAa,EAAE,CAC1B,GAAG,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE;YACxE,GAAG,EAAE,UAAU,CAAC,IAAI;SACrB,CAAC,CACL,CAAA;QACD,MAAM,OAAO,GAAW,GAAG,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACrE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAiB,EAAW,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,4EAA4E,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,KAAoD,EAAQ,EAAE;IAC5G,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA;QAC7D,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC,CAAA"}
|
package/dist/sbom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbom.d.ts","sourceRoot":"","sources":["../src/sbom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sbom.d.ts","sourceRoot":"","sources":["../src/sbom.ts"],"names":[],"mappings":"AAKA,OAAO,EASL,KAAK,aAAa,EAKnB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAmJnD,2FAA2F;AAC3F,eAAO,MAAM,SAAS,GAAI,YAAY,UAAU,EAAE,YAAY,aAAa,KAAG,MAuC7E,CAAA"}
|
package/dist/sbom.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { copyFileSync, existsSync, mkdirSync, mkdtempSync, readFileSync, realpathSync,
|
|
2
|
+
import { copyFileSync, existsSync, mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, statSync } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import process from 'node:process';
|
|
6
|
-
import { CONTAINER_IMAGES, canonicalInventory, readKey, SBOM_SCOPE, sbomInputProblems, sbomProblems, sbomWithWorkspaceRoles, } from '@ploaness/governance';
|
|
6
|
+
import { CONTAINER_IMAGES, canonicalInventory, licensesByCoordinate, parseLicenseInventory, readKey, SBOM_SCOPE, sbomInputProblems, sbomProblems, sbomWithDeclaredLicenses, sbomWithWorkspaceRoles, } from '@ploaness/governance';
|
|
7
7
|
import { parseAllDocuments } from 'yaml';
|
|
8
8
|
import { acquireImage } from './checks/container-run.js';
|
|
9
|
+
import { runLicenseInventory } from './checks/license-inventory.js';
|
|
9
10
|
import { git } from './context.js';
|
|
10
11
|
import { run } from './exec.js';
|
|
12
|
+
import { ignoredOutputDirectory, publishFiles } from './output-directory.js';
|
|
11
13
|
import { workingTreeFingerprint } from './working-tree.js';
|
|
12
14
|
const JSON_INDENT = 2;
|
|
13
15
|
const SBOM_TIMEOUT_MS = 300_000;
|
|
@@ -29,24 +31,9 @@ const assertInputs = (repository) => {
|
|
|
29
31
|
throw new Error(problems.join('\n'));
|
|
30
32
|
}
|
|
31
33
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: path.join(resolvedDestination(path.dirname(directory)), path.basename(directory));
|
|
36
|
-
const outputDirectory = (repository, requested) => {
|
|
37
|
-
const directory = resolvedDestination(path.resolve(requested));
|
|
38
|
-
const relative = path.relative(realpathSync(repository.root), directory);
|
|
39
|
-
const isInside = relative === '' || (!relative.startsWith(`..${path.sep}`) && relative !== '..' && !path.isAbsolute(relative));
|
|
40
|
-
if (isInside) {
|
|
41
|
-
const ignored = ['bom.cdx.json', 'release.json', 'bom.cdx.json.tmp', 'release.json.tmp'].map((file) => run('git', ['check-ignore', '--quiet', '--', path.join(directory, file)], {
|
|
42
|
-
cwd: repository.root,
|
|
43
|
-
}));
|
|
44
|
-
const tracked = git(repository, ['ls-files', '--', relative]);
|
|
45
|
-
if (ignored.some((result) => result.code !== 0) || tracked.length > 0) {
|
|
46
|
-
throw new Error('SBOM output must be in an ignored artifact directory or outside the repository');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return directory;
|
|
34
|
+
const SBOM_OUTPUT = {
|
|
35
|
+
files: ['bom.cdx.json', 'release.json', 'bom.cdx.json.tmp', 'release.json.tmp'],
|
|
36
|
+
label: 'SBOM',
|
|
50
37
|
};
|
|
51
38
|
const mirrorInputs = (repository, directory) => {
|
|
52
39
|
const files = [
|
|
@@ -70,6 +57,16 @@ const containerUserArguments = () => {
|
|
|
70
57
|
const gid = process.getegid?.();
|
|
71
58
|
return uid === undefined || gid === undefined ? [] : ['--user', `${String(uid)}:${String(gid)}`];
|
|
72
59
|
};
|
|
60
|
+
// Read from the installation `assertInputs` has already proven to match the lockfile, so the licences
|
|
61
|
+
// belong to exactly the versions the generator inventories.
|
|
62
|
+
const declaredLicenses = (repository) => {
|
|
63
|
+
const result = runLicenseInventory(repository);
|
|
64
|
+
const packages = result.code === 0 ? parseLicenseInventory(result.stdout) : undefined;
|
|
65
|
+
if (packages === undefined) {
|
|
66
|
+
throw new Error(`the license inventory could not be read for the SBOM: ${result.output}`);
|
|
67
|
+
}
|
|
68
|
+
return licensesByCoordinate(packages);
|
|
69
|
+
};
|
|
73
70
|
const generate = (repository, directory) => {
|
|
74
71
|
const input = path.join(directory, 'input');
|
|
75
72
|
const output = path.join(directory, 'output');
|
|
@@ -113,7 +110,7 @@ const generate = (repository, directory) => {
|
|
|
113
110
|
if (problems.length > 0) {
|
|
114
111
|
throw new Error(problems.join('\n'));
|
|
115
112
|
}
|
|
116
|
-
return sbomWithWorkspaceRoles(bom, repository.projects);
|
|
113
|
+
return sbomWithDeclaredLicenses(sbomWithWorkspaceRoles(bom, repository.projects), declaredLicenses(repository));
|
|
117
114
|
};
|
|
118
115
|
const artifactsOf = (arguments_) => arguments_.artifacts.map((file) => {
|
|
119
116
|
const absolute = realpathSync(path.resolve(file));
|
|
@@ -128,18 +125,11 @@ const rejectArtifactOutputs = (arguments_, directory) => {
|
|
|
128
125
|
throw new Error('release artifacts must not be overwritten by the SBOM output files');
|
|
129
126
|
}
|
|
130
127
|
};
|
|
131
|
-
const
|
|
132
|
-
mkdirSync(directory, { recursive: true });
|
|
133
|
-
for (const [name, report] of Object.entries(reports)) {
|
|
134
|
-
const temporary = path.join(directory, `${name}.tmp`);
|
|
135
|
-
writeFileSync(temporary, `${JSON.stringify(report, null, JSON_INDENT)}\n`, { flag: 'wx' });
|
|
136
|
-
renameSync(temporary, path.join(directory, name));
|
|
137
|
-
}
|
|
138
|
-
};
|
|
128
|
+
const asJsonText = (report) => `${JSON.stringify(report, null, JSON_INDENT)}\n`;
|
|
139
129
|
/** Generate inventory and source metadata; supplied artifacts add release associations. */
|
|
140
130
|
export const writeSbom = (repository, arguments_) => {
|
|
141
131
|
const before = workingTreeFingerprint(repository.root);
|
|
142
|
-
const destination =
|
|
132
|
+
const destination = ignoredOutputDirectory(repository, arguments_.output, SBOM_OUTPUT);
|
|
143
133
|
rejectArtifactOutputs(arguments_, destination);
|
|
144
134
|
const artifacts = artifactsOf(arguments_);
|
|
145
135
|
if (new Set(artifacts.map((artifact) => artifact.path)).size !== artifacts.length) {
|
|
@@ -159,21 +149,19 @@ export const writeSbom = (repository, arguments_) => {
|
|
|
159
149
|
if (canonicalInventory(artifacts) !== canonicalInventory(artifactsOf(arguments_))) {
|
|
160
150
|
throw new Error('release artifact bytes changed during SBOM generation');
|
|
161
151
|
}
|
|
162
|
-
const text =
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
'
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
},
|
|
176
|
-
});
|
|
152
|
+
const text = asJsonText(bom);
|
|
153
|
+
const release = {
|
|
154
|
+
schemaVersion: 1,
|
|
155
|
+
sourceCommit: git(repository, ['rev-parse', 'HEAD']).trim(),
|
|
156
|
+
sourceDirty: git(repository, ['status', '--porcelain']).length > 0,
|
|
157
|
+
sourceFingerprint: before,
|
|
158
|
+
lockfileSha256: hashFile(path.join(repository.root, 'pnpm-lock.yaml')),
|
|
159
|
+
generator: { image: IMAGE, tool: readKey(readKey(bom, 'metadata'), 'tools') },
|
|
160
|
+
scope: SBOM_SCOPE,
|
|
161
|
+
sbomSha256: createHash('sha256').update(text).digest('hex'),
|
|
162
|
+
artifacts,
|
|
163
|
+
};
|
|
164
|
+
publishFiles(destination, { 'bom.cdx.json': text, 'release.json': asJsonText(release) });
|
|
177
165
|
return destination;
|
|
178
166
|
}
|
|
179
167
|
finally {
|
package/dist/sbom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbom.js","sourceRoot":"","sources":["../src/sbom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"sbom.js","sourceRoot":"","sources":["../src/sbom.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ploaness/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "The executable half of ploaness: the verification gates and the commands that run them.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Herman Ciechanowiec <herman@ciechanowiec.eu>",
|
|
@@ -32,9 +32,12 @@
|
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@biomejs/biome": "2.5.15",
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
35
|
+
"@fontsource-variable/playfair-display": "5.3.0",
|
|
36
|
+
"@fontsource-variable/source-code-pro": "5.3.0",
|
|
37
|
+
"@fontsource-variable/source-serif-4": "5.3.0",
|
|
38
|
+
"@ploaness/assets": "1.9.0",
|
|
39
|
+
"@ploaness/config": "1.9.0",
|
|
40
|
+
"@ploaness/governance": "1.9.0",
|
|
38
41
|
"@vitest/coverage-v8": "5.0.3",
|
|
39
42
|
"dependency-cruiser": "18.5.0",
|
|
40
43
|
"eslint": "10.12.0",
|