@ploaness/cli 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/checks/assets.d.ts +12 -0
  2. package/dist/checks/assets.d.ts.map +1 -1
  3. package/dist/checks/assets.js +27 -4
  4. package/dist/checks/assets.js.map +1 -1
  5. package/dist/checks/blocklist.d.ts +8 -0
  6. package/dist/checks/blocklist.d.ts.map +1 -0
  7. package/dist/checks/blocklist.js +106 -0
  8. package/dist/checks/blocklist.js.map +1 -0
  9. package/dist/checks/containers.d.ts +1 -1
  10. package/dist/checks/containers.d.ts.map +1 -1
  11. package/dist/checks/containers.js +31 -27
  12. package/dist/checks/containers.js.map +1 -1
  13. package/dist/checks/conventions.d.ts +2 -1
  14. package/dist/checks/conventions.d.ts.map +1 -1
  15. package/dist/checks/conventions.js +9 -7
  16. package/dist/checks/conventions.js.map +1 -1
  17. package/dist/checks/dependencies.d.ts.map +1 -1
  18. package/dist/checks/dependencies.js +83 -42
  19. package/dist/checks/dependencies.js.map +1 -1
  20. package/dist/checks/editorconfig.d.ts +1 -1
  21. package/dist/checks/editorconfig.d.ts.map +1 -1
  22. package/dist/checks/editorconfig.js +12 -10
  23. package/dist/checks/editorconfig.js.map +1 -1
  24. package/dist/checks/environment.d.ts +13 -0
  25. package/dist/checks/environment.d.ts.map +1 -0
  26. package/dist/checks/environment.js +50 -0
  27. package/dist/checks/environment.js.map +1 -0
  28. package/dist/checks/install.d.ts +2 -0
  29. package/dist/checks/install.d.ts.map +1 -1
  30. package/dist/checks/install.js +10 -1
  31. package/dist/checks/install.js.map +1 -1
  32. package/dist/checks/integrity.d.ts +1 -1
  33. package/dist/checks/integrity.d.ts.map +1 -1
  34. package/dist/checks/integrity.js +4 -4
  35. package/dist/checks/integrity.js.map +1 -1
  36. package/dist/checks/oxlint.d.ts +5 -0
  37. package/dist/checks/oxlint.d.ts.map +1 -0
  38. package/dist/checks/oxlint.js +85 -0
  39. package/dist/checks/oxlint.js.map +1 -0
  40. package/dist/checks/payload.d.ts +22 -1
  41. package/dist/checks/payload.d.ts.map +1 -1
  42. package/dist/checks/payload.js +194 -28
  43. package/dist/checks/payload.js.map +1 -1
  44. package/dist/checks/references.d.ts.map +1 -1
  45. package/dist/checks/references.js +3 -3
  46. package/dist/checks/references.js.map +1 -1
  47. package/dist/checks/suppressions.d.ts +2 -2
  48. package/dist/checks/suppressions.d.ts.map +1 -1
  49. package/dist/checks/suppressions.js +32 -12
  50. package/dist/checks/suppressions.js.map +1 -1
  51. package/dist/checks/tailwind.d.ts.map +1 -1
  52. package/dist/checks/tailwind.js +3 -3
  53. package/dist/checks/tailwind.js.map +1 -1
  54. package/dist/checks/tests.d.ts.map +1 -1
  55. package/dist/checks/tests.js +13 -5
  56. package/dist/checks/tests.js.map +1 -1
  57. package/dist/checks/tree.d.ts +9 -2
  58. package/dist/checks/tree.d.ts.map +1 -1
  59. package/dist/checks/tree.js +17 -29
  60. package/dist/checks/tree.js.map +1 -1
  61. package/dist/checks/wiring.d.ts +10 -0
  62. package/dist/checks/wiring.d.ts.map +1 -1
  63. package/dist/checks/wiring.js +50 -5
  64. package/dist/checks/wiring.js.map +1 -1
  65. package/dist/commands/format.d.ts +4 -1
  66. package/dist/commands/format.d.ts.map +1 -1
  67. package/dist/commands/format.js +17 -3
  68. package/dist/commands/format.js.map +1 -1
  69. package/dist/commands/init.d.ts.map +1 -1
  70. package/dist/commands/init.js +1 -3
  71. package/dist/commands/init.js.map +1 -1
  72. package/dist/context.d.ts +1 -2
  73. package/dist/context.d.ts.map +1 -1
  74. package/dist/context.js +25 -24
  75. package/dist/context.js.map +1 -1
  76. package/dist/gates.d.ts.map +1 -1
  77. package/dist/gates.js +56 -12
  78. package/dist/gates.js.map +1 -1
  79. package/dist/probes/payload-defaults.probe.d.ts +2 -0
  80. package/dist/probes/payload-defaults.probe.d.ts.map +1 -0
  81. package/dist/probes/payload-defaults.probe.js +116 -0
  82. package/dist/probes/payload-defaults.probe.js.map +1 -0
  83. package/dist/secret-mirror.d.ts +3 -0
  84. package/dist/secret-mirror.d.ts.map +1 -0
  85. package/dist/secret-mirror.js +51 -0
  86. package/dist/secret-mirror.js.map +1 -0
  87. package/dist/source-comments.d.ts +9 -0
  88. package/dist/source-comments.d.ts.map +1 -0
  89. package/dist/source-comments.js +54 -0
  90. package/dist/source-comments.js.map +1 -0
  91. package/dist/working-tree.d.ts +5 -0
  92. package/dist/working-tree.d.ts.map +1 -0
  93. package/dist/working-tree.js +36 -0
  94. package/dist/working-tree.js.map +1 -0
  95. package/package.json +8 -7
  96. package/dist/commands/hooks.d.ts +0 -9
  97. package/dist/commands/hooks.d.ts.map +0 -1
  98. package/dist/commands/hooks.js +0 -57
  99. package/dist/commands/hooks.js.map +0 -1
@@ -18,6 +18,18 @@ export interface SyncChange {
18
18
  readonly path: string;
19
19
  readonly action: 'wrote' | 'deleted' | 'spliced' | 'refused';
20
20
  }
21
+ /**
22
+ * Copy a managed body over its target only when the bytes differ.
23
+ *
24
+ * A pinned file is always the catalogue's, so the copy is unconditional in effect - but reporting it as
25
+ * a write on every run told an agent to review and commit edits that did not exist, and left the
26
+ * "already matches" line unreachable for every pinned path. The comparison is what makes the report
27
+ * name the runs that changed something.
28
+ * @param source the catalogue body.
29
+ * @param target where it is materialised.
30
+ * @returns whether the target was written.
31
+ */
32
+ export declare const hasCopiedChange: (source: string, target: string) => boolean;
21
33
  /**
22
34
  * Materialise the managed files into the working tree. This is the only command that writes them: a
23
35
  * PINNED file is rewritten so drift is repaired, a SEED file is written only when absent so the
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,KAAK,OAAO,EAAe,KAAK,UAAU,EAAoB,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAiG5D,mGAAmG;AACnG,eAAO,MAAM,MAAM,GAAI,YAAY,UAAU,KAAG,UAyB/C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,WAAW,CAAC,MAAM,CAUjE,CAAA;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;CAC7D;AA6CD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,UAAU,KAAG,SAAS,UAAU,EAetE,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,EAAE,MAAM,MAAM,KAAG,OAQ7E,CAAA"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,UAAU,EAGhB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAiG5D,mGAAmG;AACnG,eAAO,MAAM,MAAM,GAAI,YAAY,UAAU,KAAG,UA+B/C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,WAAW,CAAC,MAAM,CAUjE,CAAA;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;CAC7D;AA2CD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAQhE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,UAAU,KAAG,SAAS,UAAU,EAetE,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,EAAE,MAAM,MAAM,KAAG,OAQ7E,CAAA"}
@@ -2,8 +2,8 @@
2
2
  // gate can never disagree with the command that repairs it.
3
3
  import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync, } from 'node:fs';
4
4
  import path from 'node:path';
5
- import { applyManagedSection, findAssetViolations, hasRuntime, memberAssets, memberKindOf, parseManifest, ROOT_MEMBER_PATH, repositoryAssets, syncAction, } from '@ploaness/governance';
6
- import { shippedDirectory } from '../context.js';
5
+ import { applyManagedSection, findAssetViolations, hasRuntime, isOxlintConfig, memberAssets, memberKindOf, parseManifest, ROOT_MEMBER_PATH, repositoryAssets, syncAction, } from '@ploaness/governance';
6
+ import { shippedDirectory, workingTreeFiles, } from '../context.js';
7
7
  import { failed, passed } from '../exec.js';
8
8
  const assetsRoot = () => shippedDirectory('@ploaness/assets');
9
9
  const readManifestText = () => readFileSync(path.join(assetsRoot(), 'manifest.tsv'), 'utf8');
@@ -80,7 +80,12 @@ export const assets = (repository) => {
80
80
  ]);
81
81
  }
82
82
  const sites = sitesOf(repository, parsed.assets);
83
- const findings = sites.flatMap((site) => findAssetViolations(site.assets, site.unmanaged, stateOf(site.root)).map((violation) => `${site.label}${violation.path}: ${violation.reason}`));
83
+ const findings = [
84
+ ...sites.flatMap((site) => findAssetViolations(site.assets, site.unmanaged, stateOf(site.root)).map((violation) => `${site.label}${violation.path}: ${violation.reason}`)),
85
+ ...workingTreeFiles(repository.root)
86
+ .filter(isOxlintConfig)
87
+ .map((file) => `${file}: Oxlint configuration is owned by ploaness`),
88
+ ];
84
89
  const checked = sites.reduce((total, site) => total + site.assets.length, 0);
85
90
  return findings.length > 0
86
91
  ? failed(`${String(findings.length)} managed-file defect(s)`, findings)
@@ -132,9 +137,27 @@ const syncOne = (root, asset) => {
132
137
  if (action === 'splice') {
133
138
  return spliceSection(asset.path, target, source);
134
139
  }
140
+ return hasCopiedChange(source, target) ? { path: asset.path, action: 'wrote' } : undefined;
141
+ };
142
+ /**
143
+ * Copy a managed body over its target only when the bytes differ.
144
+ *
145
+ * A pinned file is always the catalogue's, so the copy is unconditional in effect - but reporting it as
146
+ * a write on every run told an agent to review and commit edits that did not exist, and left the
147
+ * "already matches" line unreachable for every pinned path. The comparison is what makes the report
148
+ * name the runs that changed something.
149
+ * @param source the catalogue body.
150
+ * @param target where it is materialised.
151
+ * @returns whether the target was written.
152
+ */
153
+ export const hasCopiedChange = (source, target) => {
154
+ const body = readFileSync(source);
155
+ if (existsSync(target) && body.equals(readFileSync(target))) {
156
+ return false;
157
+ }
135
158
  mkdirSync(path.dirname(target), { recursive: true });
136
159
  cpSync(source, target);
137
- return { path: asset.path, action: 'wrote' };
160
+ return true;
138
161
  };
139
162
  /**
140
163
  * Materialise the managed files into the working tree. This is the only command that writes them: a
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/checks/assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Context } from '../context.js';
2
+ import { type GateResult } from '../exec.js';
3
+ /**
4
+ * Fail when a container image, a Dockerfile system package, or an installed npm package is one
5
+ * ploaness refuses, or when an image reference is not pinned to a tag.
6
+ */
7
+ export declare const blocklist: (context: Context) => GateResult;
8
+ //# sourceMappingURL=blocklist.d.ts.map
@@ -0,0 +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;AA2GjF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,UA8B5C,CAAA"}
@@ -0,0 +1,106 @@
1
+ // The gate that refuses named software: the shell around `blocklist.ts` in governance, holding the
2
+ // file reads, the compose render, and the pnpm inventory, and nothing that decides.
3
+ import { readFileSync } from 'node:fs';
4
+ import path from 'node:path';
5
+ import { composeProjectsIn, describeRefusal, dockerfilesIn, hasUnresolvedVariable, imageReferencesInComposeModel, imageReferencesInDockerfile, imageReferencesInWorkflow, isMutableImageReference, packagesInLicenseInventory, refuseImage, refuseInstalledPackages, refuseSystemPackages, workflowsIn, } from '@ploaness/governance';
6
+ import { workingTreeFiles } from '../context.js';
7
+ import { failed, passed, run } from '../exec.js';
8
+ const INVENTORY_LOCATION = 'the resolved dependency set';
9
+ // Every reference is judged three ways, in the order a reader repairs them: a refused image is replaced
10
+ // before its tag is pinned, and a reference nobody can resolve is named as such rather than passed.
11
+ const judgeReference = (location, reference) => {
12
+ if (hasUnresolvedVariable(reference)) {
13
+ return [
14
+ `${location}: ${reference} carries a variable nothing substituted, so it cannot be judged; write it literally`,
15
+ ];
16
+ }
17
+ const refusal = refuseImage(reference);
18
+ if (refusal !== undefined) {
19
+ return [describeRefusal(refusal, location)];
20
+ }
21
+ return isMutableImageReference(reference)
22
+ ? [
23
+ `${location}: ${reference} is not pinned to a tag, so what it pulls can change without the repository changing`,
24
+ ]
25
+ : [];
26
+ };
27
+ const readTracked = (context, file) => readFileSync(path.join(context.root, file), 'utf8');
28
+ const judgeDockerfile = (context, file) => {
29
+ const text = readTracked(context, file);
30
+ return [
31
+ ...imageReferencesInDockerfile(text).flatMap((reference) => judgeReference(file, reference)),
32
+ ...refuseSystemPackages(text).map((refusal) => describeRefusal(refusal, file)),
33
+ ];
34
+ };
35
+ const judgeWorkflow = (context, file) => imageReferencesInWorkflow(readTracked(context, file)).flatMap((reference) => judgeReference(file, reference));
36
+ // Rendered rather than read: compose interpolates from the `.env` beside the file and merges its
37
+ // override files, and only the rendered model says what the daemon pulls. Run from the project's own
38
+ // directory for the reason `containers.ts` records. Both spellings of compose are tried, and a model
39
+ // that cannot be rendered fails the gate: an image nothing could read is not an image nobody pulls.
40
+ const renderCompose = (directory) => {
41
+ const modern = run('docker', ['compose', 'config', '--format', 'json'], {
42
+ cwd: directory,
43
+ });
44
+ return modern.code === 0
45
+ ? modern
46
+ : run('docker-compose', ['config', '--format', 'json'], { cwd: directory });
47
+ };
48
+ const judgeComposeProject = (context, project) => {
49
+ const rendered = renderCompose(path.join(context.root, project.directory));
50
+ const images = rendered.code === 0 ? imageReferencesInComposeModel(rendered.stdout) : undefined;
51
+ if (images === undefined) {
52
+ return { findings: [], unrendered: [`${project.file}:`, rendered.output] };
53
+ }
54
+ return {
55
+ findings: images.flatMap((entry) => judgeReference(`${project.file} (service ${entry.service})`, entry.image)),
56
+ unrendered: [],
57
+ };
58
+ };
59
+ const judgeInventory = (context) => {
60
+ const result = run('pnpm', ['licenses', 'list', '--json'], { cwd: context.root });
61
+ // Parsed from stdout alone, for the reason `dependencies.ts` records: pnpm writes its warnings to
62
+ // stderr, and the joined output is not JSON.
63
+ const packages = result.code === 0 ? packagesInLicenseInventory(result.stdout) : undefined;
64
+ if (packages === undefined) {
65
+ return { findings: [], unread: [result.output], counted: 0 };
66
+ }
67
+ return {
68
+ findings: refuseInstalledPackages(packages).map((refusal) => describeRefusal(refusal, INVENTORY_LOCATION)),
69
+ unread: [],
70
+ counted: packages.length,
71
+ };
72
+ };
73
+ const describeTargets = (dockerfiles, workflows, projects, packages) => `${String(dockerfiles)} Dockerfile(s), ${String(workflows)} workflow(s), ${String(projects)} compose ` +
74
+ `project(s) and ${String(packages)} installed package(s) name nothing ploaness refuses`;
75
+ /**
76
+ * Fail when a container image, a Dockerfile system package, or an installed npm package is one
77
+ * ploaness refuses, or when an image reference is not pinned to a tag.
78
+ */
79
+ export const blocklist = (context) => {
80
+ const tracked = workingTreeFiles(context.root);
81
+ const dockerfiles = dockerfilesIn(tracked);
82
+ const workflows = workflowsIn(tracked);
83
+ const projects = composeProjectsIn(tracked);
84
+ const compose = projects.map((project) => judgeComposeProject(context, project));
85
+ const inventory = judgeInventory(context);
86
+ const unreadable = [
87
+ ...compose.flatMap((judgement) => judgement.unrendered),
88
+ ...inventory.unread,
89
+ ];
90
+ if (unreadable.length > 0) {
91
+ return failed('a compose model or the dependency inventory could not be read', [
92
+ ...unreadable,
93
+ 'this gate is fail-closed by design; an image or package nothing could read is not one nobody uses',
94
+ ]);
95
+ }
96
+ const findings = [
97
+ ...dockerfiles.flatMap((file) => judgeDockerfile(context, file)),
98
+ ...workflows.flatMap((file) => judgeWorkflow(context, file)),
99
+ ...compose.flatMap((judgement) => judgement.findings),
100
+ ...inventory.findings,
101
+ ];
102
+ return findings.length > 0
103
+ ? failed('software ploaness refuses is in use', findings)
104
+ : passed(describeTargets(dockerfiles.length, workflows.length, projects.length, inventory.counted));
105
+ };
106
+ //# sourceMappingURL=blocklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../../src/checks/blocklist.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Context } from '../context.js';
2
2
  import { type GateResult } from '../exec.js';
3
- /** Scan the commit history for committed secrets. */
3
+ /** Scan committed history and the bounded governed working tree for secrets. */
4
4
  export declare const secrets: (context: Context) => GateResult;
5
5
  /** Lint every Dockerfile and validate every compose project. */
6
6
  export declare const containers: (context: Context) => GateResult;
@@ -1 +1 @@
1
- {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../src/checks/containers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,eAAe,CAAA;AAC1D,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,YAAY,CAAA;AA4FnB,qDAAqD;AACrD,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,UAiBvC,CAAA;AAqGJ,gEAAgE;AAChE,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,KAAG,UAkC7C,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,UAqB1C,CAAA"}
1
+ {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../src/checks/containers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,YAAY,CAAA;AA0InB,gFAAgF;AAChF,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,UAiBvC,CAAA;AAqGJ,gEAAgE;AAChE,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,KAAG,UAkC7C,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,UAqB1C,CAAA"}
@@ -1,12 +1,13 @@
1
1
  // The gates that run their tool inside Docker. A Payload project already needs Docker for its database,
2
2
  // so this costs nothing extra and makes the gates behave identically on every machine: no local install
3
3
  // of gitleaks, hadolint, or actionlint, and no version skew between developers and CI.
4
- import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
5
5
  import { homedir } from 'node:os';
6
6
  import path from 'node:path';
7
7
  import { CONTAINER_IMAGES, classifyContainerExit, classifyImageFailure, composeProjectsIn, dockerfilesIn, renderGitleaksConfig, } from '@ploaness/governance';
8
- import { trackedFiles } from '../context.js';
8
+ import { workingTreeFiles } from '../context.js';
9
9
  import { asFindings, failed, fromRun, passed, run, } from '../exec.js';
10
+ import { mirrorSecretCandidates } from '../secret-mirror.js';
10
11
  // Pinned by digest in the governance layer, where a spec rejects a mutable reference. These were three
11
12
  // `:latest` literals, which let an upstream release change a verdict without the repository changing.
12
13
  const GITLEAKS_IMAGE = CONTAINER_IMAGES.gitleaks;
@@ -43,28 +44,25 @@ const dockerFault = (context, image, gate, result) => {
43
44
  const reserved = classifyContainerExit(gate, result);
44
45
  return reserved === undefined ? acquireImage(context, image, gate) : describeFailure(reserved);
45
46
  };
46
- // The scanner's configuration is rendered outside the working tree and mounted read-only. A copy in the
47
- // tree is a forbidden path, because it could shadow or weaken the tool's own rules; rendering it here
48
- // means the project supplies data - which fixture credential, and why - while ploaness keeps the rules.
49
- //
50
- // Rendered under the home directory rather than the system temporary directory: a macOS Docker daemon
51
- // shares the home directory and need not share /tmp, and an unshared source mounts as an empty
52
- // directory rather than as an error. `it/verify.sh` records the same constraint for the same reason.
53
- const withRenderedConfig = (context, use) => {
47
+ const withSecretWorkspace = (context, use) => {
54
48
  const directory = mkdtempSync(path.join(homedir(), '.ploaness-secrets-'));
49
+ const configDirectory = path.join(directory, 'config');
50
+ const mirrorDirectory = path.join(directory, 'working-tree');
55
51
  try {
56
- writeFileSync(path.join(directory, 'gitleaks.toml'), renderGitleaksConfig(context.settings.secretAllowlist));
57
- return use(directory);
52
+ mkdirSync(configDirectory);
53
+ mkdirSync(mirrorDirectory);
54
+ writeFileSync(path.join(configDirectory, 'gitleaks.toml'), renderGitleaksConfig(context.settings.secretAllowlist));
55
+ return use({ configDirectory, mirrorDirectory });
58
56
  }
59
57
  finally {
60
58
  rmSync(directory, { recursive: true, force: true });
61
59
  }
62
60
  };
63
- const scanSecrets = (context, configDirectory, target) => run('docker', [
61
+ const scanSecrets = (context, configDirectory, repository, target) => run('docker', [
64
62
  'run',
65
63
  '--rm',
66
64
  '-v',
67
- `${context.root}:/repo`,
65
+ `${repository}:/repo:ro`,
68
66
  '-v',
69
67
  `${configDirectory}:/ploaness:ro`,
70
68
  GITLEAKS_IMAGE,
@@ -75,23 +73,29 @@ const scanSecrets = (context, configDirectory, target) => run('docker', [
75
73
  '--no-banner',
76
74
  '--redact',
77
75
  ], { cwd: context.root });
78
- /** Scan the commit history for committed secrets. */
76
+ const scanFailure = (context, result, clean, finding) => dockerFault(context, GITLEAKS_IMAGE, 'the secret scan', result) ??
77
+ (result.code === 0 ? undefined : fromRun(result, clean, finding));
78
+ const scanWorkingTree = (context, workspace) => {
79
+ const mirrored = mirrorSecretCandidates(context.root, workspace.mirrorDirectory, workingTreeFiles(context.root));
80
+ const result = scanSecrets(context, workspace.configDirectory, workspace.mirrorDirectory, 'dir');
81
+ return (scanFailure(context, result, `no secret found in ${String(mirrored.length)} governed working-tree file(s)`, 'the scanner found a secret in the governed working tree') ?? passed(`no secret found in ${String(mirrored.length)} governed working-tree file(s)`));
82
+ };
83
+ /** Scan committed history and the bounded governed working tree for secrets. */
79
84
  export const secrets = (context) => acquireImage(context, GITLEAKS_IMAGE, 'the secret scan') ??
80
- withRenderedConfig(context, (configDirectory) => {
81
- // `git` mode, not `dir`. The standard asks for the tracked content and the commit history, and
82
- // history mode covers both: every tracked file's content is in some commit. `dir` mode has no git
83
- // awareness at all - it reads `node_modules`, the build output, and a local `.env`, none of which
84
- // the repository tracks or owns. On a real Payload project that was 1.09 GB against 2 MB, sixty
85
- // times slower, and every finding it added came from a dependency rather than from this project.
86
- const history = scanSecrets(context, configDirectory, 'git');
87
- return (dockerFault(context, GITLEAKS_IMAGE, 'the secret scan', history) ??
88
- fromRun(history, 'no secret found in the git history', 'the scanner found a secret in the git history'));
85
+ withSecretWorkspace(context, (workspace) => {
86
+ // The HISTORY half stays in `git` mode. Directory mode has no Git awareness and, pointed straight
87
+ // at the repository, reads `node_modules`, build output, and a local `.env`, none of which the
88
+ // repository tracks or owns. On a real Payload project that was 1.09 GB against 2 MB, sixty times
89
+ // slower, and every extra finding came from a dependency. The working-tree half below uses `dir`
90
+ // only against the bounded mirror Git's own enumeration populated.
91
+ const history = scanSecrets(context, workspace.configDirectory, context.root, 'git');
92
+ return (scanFailure(context, history, 'no secret found in the git history', 'the scanner found a secret in the git history') ?? scanWorkingTree(context, workspace));
89
93
  });
90
- // Both kinds are discovered from the tracked tree, by the rules in `governance`. The compose half used to
94
+ // Both kinds are discovered from the working tree, by the rules in `governance`. The compose half used to
91
95
  // look at the repository root alone, so a project keeping its application - and its compose file - in a
92
96
  // member directory had that file validated by nothing, while the Dockerfile beside it was linted.
93
- const dockerfiles = (context) => dockerfilesIn(trackedFiles(context.root));
94
- const composeProjects = (context) => composeProjectsIn(trackedFiles(context.root));
97
+ const dockerfiles = (context) => dockerfilesIn(workingTreeFiles(context.root));
98
+ const composeProjects = (context) => composeProjectsIn(workingTreeFiles(context.root));
95
99
  // Compose ships both as a `docker` subcommand and as a standalone binary, and which one a machine has is
96
100
  // not a property of the project. Try the modern form first and accept the legacy one, failing only when
97
101
  // neither can validate the file.
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/checks/containers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/checks/containers.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,wGAAwG;AACxG,uFAAuF;AAEvF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAEjB,aAAa,EACb,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EACL,UAAU,EACV,MAAM,EACN,OAAO,EAEP,MAAM,EAEN,GAAG,GACJ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,uGAAuG;AACvG,sGAAsG;AACtG,MAAM,cAAc,GAAW,gBAAgB,CAAC,QAAQ,CAAA;AACxD,MAAM,cAAc,GAAW,gBAAgB,CAAC,QAAQ,CAAA;AACxD,MAAM,gBAAgB,GAAW,gBAAgB,CAAC,UAAU,CAAA;AAE5D,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAc,EAAE,CAC7D,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE3C,wGAAwG;AACxG,sGAAsG;AACtG,uGAAuG;AACvG,yGAAyG;AACzG,gFAAgF;AAChF,EAAE;AACF,yGAAyG;AACzG,+BAA+B;AAC/B,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,KAAa,EAAE,IAAY,EAA0B,EAAE;IAC7F,MAAM,OAAO,GAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QAC3F,GAAG,EAAE,OAAO,CAAC,IAAI;KAClB,CAAC,CAAA;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/E,MAAM,OAAO,GAA8B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7E,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,0GAA0G;AAC1G,0GAA0G;AAC1G,wGAAwG;AACxG,mDAAmD;AACnD,MAAM,WAAW,GAAG,CAClB,OAAgB,EAChB,KAAa,EACb,IAAY,EACZ,MAAiB,EACO,EAAE;IAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,QAAQ,GAA8B,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/E,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AAChG,CAAC,CAAA;AAcD,MAAM,mBAAmB,GAAG,CAC1B,OAAgB,EAChB,GAA0C,EACnC,EAAE;IACT,MAAM,SAAS,GAAW,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACjF,MAAM,eAAe,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC9D,MAAM,eAAe,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACpE,IAAI,CAAC;QACH,SAAS,CAAC,eAAe,CAAC,CAAA;QAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;QAC1B,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EAC3C,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CACvD,CAAA;QACD,OAAO,GAAG,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAA;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,OAAgB,EAChB,eAAuB,EACvB,UAAkB,EAClB,MAAc,EACH,EAAE,CACb,GAAG,CACD,QAAQ,EACR;IACE,KAAK;IACL,MAAM;IACN,IAAI;IACJ,GAAG,UAAU,WAAW;IACxB,IAAI;IACJ,GAAG,eAAe,eAAe;IACjC,cAAc;IACd,MAAM;IACN,OAAO;IACP,UAAU;IACV,yBAAyB;IACzB,aAAa;IACb,UAAU;CACX,EACD,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CACtB,CAAA;AAEH,MAAM,WAAW,GAAG,CAClB,OAAgB,EAChB,MAAiB,EACjB,KAAa,EACb,OAAe,EACS,EAAE,CAC1B,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,CAAC;IAC/D,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AAEnE,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,SAA0B,EAAc,EAAE;IACnF,MAAM,QAAQ,GAAsB,sBAAsB,CACxD,OAAO,CAAC,IAAI,EACZ,SAAS,CAAC,eAAe,EACzB,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAC/B,CAAA;IACD,MAAM,MAAM,GAAc,WAAW,CACnC,OAAO,EACP,SAAS,CAAC,eAAe,EACzB,SAAS,CAAC,eAAe,EACzB,KAAK,CACN,CAAA;IACD,OAAO,CACL,WAAW,CACT,OAAO,EACP,MAAM,EACN,sBAAsB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gCAAgC,EAC7E,yDAAyD,CAC1D,IAAI,MAAM,CAAC,sBAAsB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAC3F,CAAA;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAc,EAAE,CACtD,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC;IACxD,mBAAmB,CAAC,OAAO,EAAE,CAAC,SAA0B,EAAc,EAAE;QACtE,kGAAkG;QAClG,+FAA+F;QAC/F,kGAAkG;QAClG,iGAAiG;QACjG,mEAAmE;QACnE,MAAM,OAAO,GAAc,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC/F,OAAO,CACL,WAAW,CACT,OAAO,EACP,OAAO,EACP,oCAAoC,EACpC,+CAA+C,CAChD,IAAI,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CACzC,CAAA;IACH,CAAC,CAAC,CAAA;AAEJ,0GAA0G;AAC1G,wGAAwG;AACxG,kGAAkG;AAClG,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAqB,EAAE,CAC1D,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAE/C,MAAM,eAAe,GAAG,CAAC,OAAgB,EAA6B,EAAE,CACtE,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnD,yGAAyG;AACzG,wGAAwG;AACxG,iCAAiC;AACjC,EAAE;AACF,0GAA0G;AAC1G,mGAAmG;AACnG,oCAAoC;AACpC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAa,EAAE;IACvD,MAAM,MAAM,GAAc,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,mCAAmC,CAAC,EAAE;QAC/E,GAAG,EAAE,SAAS;KACf,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC;QACtB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,mCAAmC,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAOD,MAAM,uBAAuB,GAAG,CAC9B,OAAgB,EAChB,QAAmC,EACN,EAAE,CAC/B,QAAQ,CAAC,GAAG,CACV,CAAC,OAAuB,EAAoB,EAAE,CAAC,CAAC;IAC9C,OAAO;IACP,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CACpE,CAAC,CACH,CAAA;AAEH,MAAM,cAAc,GAAW,oBAAoB,CAAA;AAEnD,MAAM,aAAa,GAAG,CAAC,OAA6B,EAA0B,EAAE;IAC9E,MAAM,QAAQ,GAA8B,OAAO;SAChD,GAAG,CAAC,CAAC,MAAiB,EAA6B,EAAE,CACpD,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAC9C;SACA,IAAI,CAAC,CAAC,KAAgC,EAAW,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;IAC3E,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AACvE,CAAC,CAAA;AAOD,MAAM,WAAW,GAAG,CAAC,MAAmC,EAAwB,EAAE,CAChF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAuB,EAAa,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAElE,wGAAwG;AACxG,qGAAqG;AACrG,wGAAwG;AACxG,6EAA6E;AAC7E,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,MAAc,EAAa,EAAE,CACrE,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;IACnD,GAAG,EAAE,OAAO,CAAC,IAAI;IACjB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;CAC7D,CAAC,CAAA;AAEJ,wGAAwG;AACxG,wGAAwG;AACxG,sGAAsG;AACtG,8EAA8E;AAC9E,MAAM,cAAc,GAAG,CACrB,OAAgB,EAChB,MAAmC,EACnC,SAAsC,EACd,EAAE,CAC1B,aAAa,CAAC;IACZ,GAAG,WAAW,CAAC,MAAM,CAAC;IACtB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAuB,EAAa,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACvE,CAAC;IACF,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAiB,EAAW,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC,CAAA;AAEhB,kGAAkG;AAClG,0FAA0F;AAC1F,MAAM,eAAe,GAAG,CAAC,eAAuB,EAAE,YAAoB,EAAU,EAAE;IAChF,MAAM,KAAK,GAAsB;QAC/B,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,2CAA2C;QAC7C,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;AACxC,CAAC,CAAA;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAc,EAAE;IACzD,MAAM,OAAO,GAAsB,WAAW,CAAC,OAAO,CAAC,CAAA;IACvD,MAAM,QAAQ,GAA8B,eAAe,CAAC,OAAO,CAAC,CAAA;IACpE,oGAAoG;IACpG,iGAAiG;IACjG,qEAAqE;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,2CAA2C,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,oCAAoC;IACpC,MAAM,MAAM,GAAgC,OAAO,CAAC,GAAG,CACrD,CAAC,MAAc,EAAoB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAC5F,CAAA;IACD,MAAM,SAAS,GAAgC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACzF,MAAM,OAAO,GAA2B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAClF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,QAAQ,GAAsB;QAClC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAuB,EAAqB,EAAE,CAC/D,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACxF;QACD,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,KAAuB,EAAqB,EAAE,CAClE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC9F;KACF,CAAA;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,oCAAoC,EAAE,QAAQ,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAc,EAAE;IACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,gCAAgC,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,WAAW,GAA2B,YAAY,CACtD,OAAO,EACP,gBAAgB,EAChB,mBAAmB,CACpB,CAAA;IACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,MAAM,MAAM,GAAc,GAAG,CAC3B,QAAQ,EACR,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACtF,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CACtB,CAAA;IACD,OAAO,CACL,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,CAAC;QACnE,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,qCAAqC,CAAC,CACpF,CAAA;AACH,CAAC,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { type Context } from '../context.js';
2
2
  import { type GateResult } from '../exec.js';
3
3
  /**
4
- * Scan every tracked file for banned typography, stray hand-written JavaScript, and documenting
4
+ * Scan every file in the working tree for banned typography, stray hand-written JavaScript, and
5
+ * documenting
5
6
  * comments left above another comment rather than above what they document.
6
7
  */
7
8
  export declare const conventions: (context: Context) => GateResult;
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/checks/conventions.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAqF5D;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,UAY9C,CAAA"}
1
+ {"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/checks/conventions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAU,KAAK,UAAU,EAAU,MAAM,YAAY,CAAA;AAqF5D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,UAY9C,CAAA"}
@@ -1,13 +1,14 @@
1
1
  // Source conventions: the AI-typography ban and the preference for TypeScript over hand-written
2
- // JavaScript. Both are scanned across every tracked file rather than a chosen subtree, because the
2
+ // JavaScript. Both are scanned across every file in the working tree rather than a chosen subtree,
3
+ // because the
3
4
  // characters a model emits appear in documentation and configuration as readily as in code.
4
5
  import { existsSync, readFileSync, statSync } from 'node:fs';
5
6
  import path from 'node:path';
6
7
  import { DOCUMENTED_EXTENSIONS, findOrphanedDocBlocks, findTypographyViolations, hasExtension, isBinary, matchesRole, } from '@ploaness/governance';
7
- import { trackedFiles } from '../context.js';
8
+ import { workingTreeFiles } from '../context.js';
8
9
  import { failed, passed } from '../exec.js';
9
10
  // The typography ban used to carry an allowlist of ten extensions here, which is the wrong shape for a
10
- // rule that reaches "every tracked file the repository does not exclude by file role": `.css`, `.adoc`,
11
+ // rule that reaches "every file the repository does not exclude by file role": `.css`, `.adoc`,
11
12
  // a shell script, and a Dockerfile all went unscanned, and every new text format arrived unscanned
12
13
  // until someone remembered this list. The role predicate is default-safe in the other direction - a
13
14
  // binary asset is recognised from its own bytes, and everything else is text that gets scanned.
@@ -53,18 +54,19 @@ const orphanedDocFindings = (context, tracked) => tracked
53
54
  return findOrphanedDocBlocks(content).map((block) => `${file}:${String(block.line)} the doc block ending on line ${String(block.endLine)} ` +
54
55
  `is followed by another doc block rather than by what it documents`);
55
56
  });
56
- // A tracked path is not always a regular file. `git ls-files` reports a symlink and a submodule
57
+ // An enumerated path is not always a regular file. `git ls-files` reports a symlink and a submodule
57
58
  // gitlink too, and reading either throws rather than yielding text.
58
59
  const isRegularFile = (root, file) => {
59
60
  const full = path.join(root, file);
60
61
  return existsSync(full) && statSync(full).isFile();
61
62
  };
62
63
  /**
63
- * Scan every tracked file for banned typography, stray hand-written JavaScript, and documenting
64
+ * Scan every file in the working tree for banned typography, stray hand-written JavaScript, and
65
+ * documenting
64
66
  * comments left above another comment rather than above what they document.
65
67
  */
66
68
  export const conventions = (context) => {
67
- const tracked = trackedFiles(context.root).filter((file) => isRegularFile(context.root, file));
69
+ const tracked = workingTreeFiles(context.root).filter((file) => isRegularFile(context.root, file));
68
70
  const findings = [
69
71
  ...typographyFindings(context, tracked),
70
72
  ...javascriptFindings(context, tracked),
@@ -72,6 +74,6 @@ export const conventions = (context) => {
72
74
  ];
73
75
  return findings.length > 0
74
76
  ? failed(`${String(findings.length)} convention violation(s)`, findings)
75
- : passed(`${String(tracked.length)} tracked file(s) follow the source conventions`);
77
+ : passed(`${String(tracked.length)} working-tree file(s) follow the source conventions`);
76
78
  };
77
79
  //# sourceMappingURL=conventions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/checks/conventions.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,mGAAmG;AACnG,4FAA4F;AAC5F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EACL,qBAAqB,EAErB,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,WAAW,GAEZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,uGAAuG;AACvG,wGAAwG;AACxG,mGAAmG;AACnG,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,qBAAqB,GAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAExE,uGAAuG;AACvG,kGAAkG;AAClG,qGAAqG;AACrG,2EAA2E;AAC3E,MAAM,sBAAsB,GAAsB;IAChD,uEAAuE;CACxE,CAAA;AAED,sGAAsG;AACtG,6DAA6D;AAC7D,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CAClD,sBAAsB,CAAC,MAAM,CAC3B,CAAC,OAAe,EAAE,MAAc,EAAU,EAAE,CAC1C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EACxF,IAAI,CACL,CAAA;AAEH,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,OAA0B,EAAqB,EAAE,CAC7F,OAAO;KACJ,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;KAC5F,OAAO,CAAC,CAAC,IAAY,EAAqB,EAAE;IAC3C,MAAM,KAAK,GAAW,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACjE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAW,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,GAAG,CAC1C,CAAC,SAA8B,EAAU,EAAE,CACzC,GAAG,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;QAChE,UAAU,SAAS,CAAC,KAAK,SAAS,SAAS,CAAC,WAAW,EAAE,CAC5D,CAAA;AACH,CAAC,CAAC,CAAA;AAEN,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,OAA0B,EAAqB,EAAE,CAC7F,OAAO;KACJ,MAAM,CACL,CAAC,IAAY,EAAW,EAAE,CACxB,YAAY,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACzC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAC3D;KACA,GAAG,CACF,CAAC,IAAY,EAAU,EAAE,CACvB,GAAG,IAAI,8DAA8D,CACxE,CAAA;AAEL,oGAAoG;AACpG,0FAA0F;AAC1F,gGAAgG;AAChG,+FAA+F;AAC/F,EAAE;AACF,sGAAsG;AACtG,iGAAiG;AACjG,kCAAkC;AAClC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,OAA0B,EAAqB,EAAE,CAC9F,OAAO;KACJ,MAAM,CACL,CAAC,IAAY,EAAW,EAAE,CACxB,YAAY,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACzC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC5D;KACA,OAAO,CAAC,CAAC,IAAY,EAAqB,EAAE;IAC3C,MAAM,OAAO,GAAW,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3E,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CACvC,CAAC,KAAe,EAAU,EAAE,CAC1B,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;QACtF,mEAAmE,CACtE,CAAA;AACH,CAAC,CAAC,CAAA;AAEN,gGAAgG;AAChG,oEAAoE;AACpE,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAAY,EAAW,EAAE;IAC5D,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAA;AACpD,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAc,EAAE;IAC1D,MAAM,OAAO,GAAsB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAC7F,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAClC,CAAA;IACD,MAAM,QAAQ,GAAsB;QAClC,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;QACvC,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;QACvC,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;KACzC,CAAA;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAAE,QAAQ,CAAC;QACxE,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAA;AACvF,CAAC,CAAA"}
1
+ {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/checks/conventions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/checks/dependencies.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,KAAK,OAAO,EAA4C,MAAM,eAAe,CAAA;AACtF,OAAO,EAEL,KAAK,UAAU,EAMhB,MAAM,YAAY,CAAA;AAgBnB,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UAkC3C,CAAA;AAgVD,eAAO,MAAM,mBAAmB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,CA+C9E,CAAA;AA6CD;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,UAiDlD,CAAA"}
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,EAEL,KAAK,UAAU,EAMhB,MAAM,YAAY,CAAA;AAiBnB,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UAkC3C,CAAA;AAuZD,eAAO,MAAM,mBAAmB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,UAAU,CAuD9E,CAAA;AA6CD;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,UAiDlD,CAAA"}