@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.
Files changed (36) hide show
  1. package/dist/bin.js +5 -1
  2. package/dist/bin.js.map +1 -1
  3. package/dist/checks/blocklist.d.ts.map +1 -1
  4. package/dist/checks/blocklist.js +2 -1
  5. package/dist/checks/blocklist.js.map +1 -1
  6. package/dist/checks/compliance-report.d.ts +5 -0
  7. package/dist/checks/compliance-report.d.ts.map +1 -0
  8. package/dist/checks/compliance-report.js +15 -0
  9. package/dist/checks/compliance-report.js.map +1 -0
  10. package/dist/checks/dependencies.d.ts +17 -1
  11. package/dist/checks/dependencies.d.ts.map +1 -1
  12. package/dist/checks/dependencies.js +38 -20
  13. package/dist/checks/dependencies.js.map +1 -1
  14. package/dist/checks/license-inventory.d.ts +14 -0
  15. package/dist/checks/license-inventory.d.ts.map +1 -0
  16. package/dist/checks/license-inventory.js +15 -0
  17. package/dist/checks/license-inventory.js.map +1 -0
  18. package/dist/commands/compliance-report.d.ts +4 -0
  19. package/dist/commands/compliance-report.d.ts.map +1 -0
  20. package/dist/commands/compliance-report.js +25 -0
  21. package/dist/commands/compliance-report.js.map +1 -0
  22. package/dist/compliance-report.d.ts +25 -0
  23. package/dist/compliance-report.d.ts.map +1 -0
  24. package/dist/compliance-report.js +278 -0
  25. package/dist/compliance-report.js.map +1 -0
  26. package/dist/gates.d.ts.map +1 -1
  27. package/dist/gates.js +8 -0
  28. package/dist/gates.js.map +1 -1
  29. package/dist/output-directory.d.ts +23 -0
  30. package/dist/output-directory.d.ts.map +1 -0
  31. package/dist/output-directory.js +46 -0
  32. package/dist/output-directory.js.map +1 -0
  33. package/dist/sbom.d.ts.map +1 -1
  34. package/dist/sbom.js +33 -45
  35. package/dist/sbom.js.map +1 -1
  36. 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":"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"}
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;AAiGjF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,UA4B5C,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"}
@@ -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 = run('pnpm', ['licenses', 'list', '--json'], { cwd: context.root });
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":"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"}
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 finding at or above the declared severity, or for a stale exception.
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":"AA6CA,OAAO,EAAE,KAAK,OAAO,EAAgD,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAU,KAAK,UAAU,EAA2D,MAAM,YAAY,CAAA;AAiB7G,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UA8B3C,CAAA;AAiXD,eAAO,MAAM,mBAAmB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,CA6C9E,CAAA;AA4CD;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,UA8ClD,CAAA"}
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 = run('pnpm', ['licenses', 'list', '--json'], { cwd: context.root });
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 read as the most severe, not the least.
363
- // Defaulting to `info` put it below the threshold, so a malformed record was silently a pass inside a
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
- * Read every package in the resolved set against the public advisory database.
385
+ * Ask the public advisory database about every package in the resolved set.
385
386
  * @param context the resolved project environment.
386
- * @returns a failure for any finding at or above the declared severity, or for a stale exception.
387
+ * @returns the reported advisories with the audit transcript, or why the database could not be read.
387
388
  */
388
- export const vulnerabilities = (context) => {
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
- if (advisories === undefined) {
401
- return failed('the advisory database was unreachable, so vulnerabilities cannot be proven', [
402
- ...(result.code === TIMED_OUT_CODE
403
- ? [`the audit did not answer within ${String(NETWORKED_TOOL_TIMEOUT_MS)}ms and was stopped`]
404
- : []),
405
- result.output.split('\n').slice(0, MAX_REPORTED_LINES).join('\n'),
406
- 'this gate is fail-closed by design; retry with network access',
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 report = judgeVulnerabilities(advisories, context.settings.vulnerabilityAllowlist, context.settings.vulnerabilitySeverity, HARNESS_EXCEPTIONS);
424
+ const { advisories } = reading;
425
+ const report = judgeVulnerabilities(advisories, context.settings.vulnerabilityAllowlist, HARNESS_EXCEPTIONS);
410
426
  const findings = [
411
- ...report.unsuppressed.map((advisory) => `${advisory.severity} ${advisory.id} in ${advisory.packageName}: ${advisory.title}`),
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(findings.length)} vulnerability finding(s) at or above ${report.threshold}`, findings)
420
- : passed(`no vulnerability at or above ${report.threshold} across ${String(advisories.length)} advisory record(s)`), result.stdout);
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":"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"}
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"AA2BA,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;AA4SN,+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"}
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":"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"}
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sbom.d.ts","sourceRoot":"","sources":["../src/sbom.ts"],"names":[],"mappings":"AAgBA,OAAO,EAML,KAAK,aAAa,EAInB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAkKnD,2FAA2F;AAC3F,eAAO,MAAM,SAAS,GAAI,YAAY,UAAU,EAAE,YAAY,aAAa,KAAG,MAyC7E,CAAA"}
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, renameSync, rmSync, statSync, writeFileSync, } from 'node:fs';
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
- // Resolve existing ancestors so an ignored symlink cannot direct output into authored content.
33
- const resolvedDestination = (directory) => existsSync(directory)
34
- ? realpathSync(directory)
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 publishReports = (directory, reports) => {
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 = outputDirectory(repository, arguments_.output);
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 = `${JSON.stringify(bom, null, JSON_INDENT)}\n`;
163
- publishReports(destination, {
164
- 'bom.cdx.json': bom,
165
- 'release.json': {
166
- schemaVersion: 1,
167
- sourceCommit: git(repository, ['rev-parse', 'HEAD']).trim(),
168
- sourceDirty: git(repository, ['status', '--porcelain']).length > 0,
169
- sourceFingerprint: before,
170
- lockfileSha256: hashFile(path.join(repository.root, 'pnpm-lock.yaml')),
171
- generator: { image: IMAGE, tool: readKey(readKey(bom, 'metadata'), 'tools') },
172
- scope: SBOM_SCOPE,
173
- sbomSha256: createHash('sha256').update(text).digest('hex'),
174
- artifacts,
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":"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"}
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.7.0",
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
- "@ploaness/assets": "1.7.0",
36
- "@ploaness/config": "1.7.0",
37
- "@ploaness/governance": "1.7.0",
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",