@ploaness/governance 1.6.0 → 1.8.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 (107) hide show
  1. package/dist/compliance-report-assets.d.ts +20 -0
  2. package/dist/compliance-report-assets.d.ts.map +1 -0
  3. package/dist/compliance-report-assets.js +230 -0
  4. package/dist/compliance-report-assets.js.map +1 -0
  5. package/dist/compliance-report-html.d.ts +18 -0
  6. package/dist/compliance-report-html.d.ts.map +1 -0
  7. package/dist/compliance-report-html.js +365 -0
  8. package/dist/compliance-report-html.js.map +1 -0
  9. package/dist/compliance-report-markup.d.ts +62 -0
  10. package/dist/compliance-report-markup.d.ts.map +1 -0
  11. package/dist/compliance-report-markup.js +118 -0
  12. package/dist/compliance-report-markup.js.map +1 -0
  13. package/dist/compliance-report-outline.d.ts +32 -0
  14. package/dist/compliance-report-outline.d.ts.map +1 -0
  15. package/dist/compliance-report-outline.js +124 -0
  16. package/dist/compliance-report-outline.js.map +1 -0
  17. package/dist/compliance-report.d.ts +136 -0
  18. package/dist/compliance-report.d.ts.map +1 -0
  19. package/dist/compliance-report.js +241 -0
  20. package/dist/compliance-report.js.map +1 -0
  21. package/dist/container-freshness.d.ts +2 -0
  22. package/dist/container-freshness.d.ts.map +1 -1
  23. package/dist/container-freshness.js +10 -5
  24. package/dist/container-freshness.js.map +1 -1
  25. package/dist/container-images.d.ts.map +1 -1
  26. package/dist/container-images.js +3 -4
  27. package/dist/container-images.js.map +1 -1
  28. package/dist/file-roles.d.ts +3 -3
  29. package/dist/file-roles.d.ts.map +1 -1
  30. package/dist/file-roles.js +10 -6
  31. package/dist/file-roles.js.map +1 -1
  32. package/dist/generated-denial.d.ts +2 -0
  33. package/dist/generated-denial.d.ts.map +1 -1
  34. package/dist/generated-denial.js +8 -6
  35. package/dist/generated-denial.js.map +1 -1
  36. package/dist/index.d.ts +11 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +11 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/license-allowlist.d.ts +14 -0
  41. package/dist/license-allowlist.d.ts.map +1 -1
  42. package/dist/license-allowlist.js +28 -9
  43. package/dist/license-allowlist.js.map +1 -1
  44. package/dist/license-inventory.d.ts +25 -0
  45. package/dist/license-inventory.d.ts.map +1 -0
  46. package/dist/license-inventory.js +41 -0
  47. package/dist/license-inventory.js.map +1 -0
  48. package/dist/oxlint-policy.d.ts +1 -1
  49. package/dist/oxlint-policy.d.ts.map +1 -1
  50. package/dist/oxlint-policy.js +10 -3
  51. package/dist/oxlint-policy.js.map +1 -1
  52. package/dist/oxlint-scope.d.ts +2 -2
  53. package/dist/oxlint-scope.d.ts.map +1 -1
  54. package/dist/oxlint-scope.js +13 -4
  55. package/dist/oxlint-scope.js.map +1 -1
  56. package/dist/payload-access.d.ts.map +1 -1
  57. package/dist/payload-access.js +11 -3
  58. package/dist/payload-access.js.map +1 -1
  59. package/dist/payload-defaults.d.ts +2 -0
  60. package/dist/payload-defaults.d.ts.map +1 -1
  61. package/dist/payload-defaults.js +6 -2
  62. package/dist/payload-defaults.js.map +1 -1
  63. package/dist/payload-field-access.js +1 -1
  64. package/dist/payload-field-access.js.map +1 -1
  65. package/dist/payload-security.d.ts +20 -0
  66. package/dist/payload-security.d.ts.map +1 -0
  67. package/dist/payload-security.js +88 -0
  68. package/dist/payload-security.js.map +1 -0
  69. package/dist/pdf-outline.d.ts +7 -0
  70. package/dist/pdf-outline.d.ts.map +1 -0
  71. package/dist/pdf-outline.js +69 -0
  72. package/dist/pdf-outline.js.map +1 -0
  73. package/dist/production-server.d.ts +11 -0
  74. package/dist/production-server.d.ts.map +1 -0
  75. package/dist/production-server.js +17 -0
  76. package/dist/production-server.js.map +1 -0
  77. package/dist/run-plan.d.ts +4 -0
  78. package/dist/run-plan.d.ts.map +1 -1
  79. package/dist/run-plan.js +4 -0
  80. package/dist/run-plan.js.map +1 -1
  81. package/dist/sbom-policy.d.ts +38 -0
  82. package/dist/sbom-policy.d.ts.map +1 -0
  83. package/dist/sbom-policy.js +255 -0
  84. package/dist/sbom-policy.js.map +1 -0
  85. package/dist/sbom-release.d.ts +16 -0
  86. package/dist/sbom-release.d.ts.map +1 -0
  87. package/dist/sbom-release.js +36 -0
  88. package/dist/sbom-release.js.map +1 -0
  89. package/dist/security-headers.d.ts +3 -0
  90. package/dist/security-headers.d.ts.map +1 -0
  91. package/dist/security-headers.js +26 -0
  92. package/dist/security-headers.js.map +1 -0
  93. package/dist/settings.d.ts +1 -1
  94. package/dist/settings.d.ts.map +1 -1
  95. package/dist/settings.js +24 -2
  96. package/dist/settings.js.map +1 -1
  97. package/dist/toolchain-pins.d.ts +3 -3
  98. package/dist/toolchain-pins.d.ts.map +1 -1
  99. package/dist/toolchain-pins.js +6 -5
  100. package/dist/toolchain-pins.js.map +1 -1
  101. package/dist/version-policy.js +3 -3
  102. package/dist/version-policy.js.map +1 -1
  103. package/dist/vulnerability-policy.d.ts +24 -0
  104. package/dist/vulnerability-policy.d.ts.map +1 -1
  105. package/dist/vulnerability-policy.js +33 -6
  106. package/dist/vulnerability-policy.js.map +1 -1
  107. package/package.json +1 -1
@@ -39,13 +39,12 @@ const WORKFLOW_DOCKER_ACTION = /uses:[ \t]*['"]?docker:\/\/(?<value>[^\s'"]+)/;
39
39
  */
40
40
  export const logicalLines = (text) => text.replaceAll(CONTINUATION, ' ').split('\n');
41
41
  const contentLines = (text) => logicalLines(text).filter((line) => !COMMENT_LINE.test(line));
42
- const readFrom = (rest) => {
43
- const tokens = (rest ?? '')
42
+ const readFrom = (rest = '') => {
43
+ const tokens = rest
44
44
  .trim()
45
45
  .split(/[ \t]+/)
46
46
  .filter((token) => !token.startsWith(PLATFORM_OPTION));
47
- const [first, keyword, stage] = tokens;
48
- const reference = first ?? '';
47
+ const [reference = '', keyword, stage] = tokens;
49
48
  if (reference.length === 0) {
50
49
  return undefined;
51
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-images.js","sourceRoot":"","sources":["../src/container-images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-images.js","sourceRoot":"","sources":["../src/container-images.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ export declare const CODE_EXTENSIONS: readonly string[];
3
3
  /** Extensions whose role is prose, where a code-shaped rule such as a line cap does not apply. */
4
4
  export declare const PROSE_EXTENSIONS: readonly string[];
5
5
  /**
6
- * Decide whether a file is binary, from the file itself rather than from its name.
7
- * @param bytes the file's leading content.
8
- * @returns true when a NUL byte appears in the probed span, which no text encoding produces.
6
+ * Identify binary assets before typography or whitespace checks decode their contents as UTF-8 text.
7
+ * @param bytes the complete file contents; binary payloads can follow arbitrarily long text headers.
8
+ * @returns true for NUL-containing or non-UTF-8 data, or a PDF identified by its format header.
9
9
  */
10
10
  export declare const isBinary: (bytes: Uint8Array) => boolean;
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file-roles.d.ts","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AAKA,sGAAsG;AACtG,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAW5C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA6B,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,UAAU,KAAG,OAA4D,CAAA;AAEzG;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,EAAE,YAAY,SAAS,MAAM,EAAE,KAAG,OACA,CAAA;AAE/E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAU5F;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACI,CAAA;AA2BrF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,OACkD,CAAA;AAElH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACP,CAAA"}
1
+ {"version":3,"file":"file-roles.d.ts","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AASA,sGAAsG;AACtG,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAW5C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA6B,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,UAAU,KAAG,OACoE,CAAA;AAEjH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,EAAE,YAAY,SAAS,MAAM,EAAE,KAAG,OACA,CAAA;AAE/E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAU5F;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACI,CAAA;AA2BrF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,OACkD,CAAA;AAElH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACP,CAAA"}
@@ -1,6 +1,10 @@
1
1
  // Identify source, generated, binary, and prose roles so exclusions follow file meaning rather than tool defaults.
2
- /** How much of a file is inspected before deciding it is text. Enough to reach any real header. */
3
- const BINARY_PROBE_BYTES = 8192;
2
+ import { isUtf8 } from 'node:buffer';
3
+ const NUL_BYTE = 0;
4
+ // A PDF can use ASCII for every object and stream and still carry byte offsets that formatting would break.
5
+ const PDF_HEADER_BYTES = 9;
6
+ const PDF_HEADER = /^%PDF-\d\.\d[\r\n]/;
7
+ const UTF8 = new TextDecoder();
4
8
  /** Extensions the Code Rules apply to, used where a rule is about code rather than about any text. */
5
9
  export const CODE_EXTENSIONS = [
6
10
  '.ts',
@@ -17,11 +21,11 @@ export const CODE_EXTENSIONS = [
17
21
  /** Extensions whose role is prose, where a code-shaped rule such as a line cap does not apply. */
18
22
  export const PROSE_EXTENSIONS = ['.md', '.adoc', '.txt'];
19
23
  /**
20
- * Decide whether a file is binary, from the file itself rather than from its name.
21
- * @param bytes the file's leading content.
22
- * @returns true when a NUL byte appears in the probed span, which no text encoding produces.
24
+ * Identify binary assets before typography or whitespace checks decode their contents as UTF-8 text.
25
+ * @param bytes the complete file contents; binary payloads can follow arbitrarily long text headers.
26
+ * @returns true for NUL-containing or non-UTF-8 data, or a PDF identified by its format header.
23
27
  */
24
- export const isBinary = (bytes) => bytes.subarray(0, BINARY_PROBE_BYTES).includes(0);
28
+ export const isBinary = (bytes) => bytes.includes(NUL_BYTE) || !isUtf8(bytes) || PDF_HEADER.test(UTF8.decode(bytes.subarray(0, PDF_HEADER_BYTES)));
25
29
  /**
26
30
  * Decide whether a path carries one of the given extensions.
27
31
  * @param filePath the repo-relative path.
@@ -1 +1 @@
1
- {"version":3,"file":"file-roles.js","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-roles.js","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ /** The default admin mount whose import map and page scaffolds Payload names. */
2
+ export declare const PAYLOAD_ADMIN_DIRECTORY: string;
1
3
  /** The artefacts Payload derives from the configuration. Declared once and consumed by every rule. */
2
4
  export declare const GENERATED_ARTEFACTS: readonly string[];
3
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generated-denial.d.ts","sourceRoot":"","sources":["../src/generated-denial.ts"],"names":[],"mappings":"AAGA,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EACyB,CAAA;AAOzG;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAStG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,OAAO,EACjB,eAAe,OAAO,EACtB,WAAW,SAAS,MAAM,EAAE,KAC3B,SAAS,MAAM,EAgBjB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,aAAa,SAAS,MAAM,EAAE,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAG1G,CAAA"}
1
+ {"version":3,"file":"generated-denial.d.ts","sourceRoot":"","sources":["../src/generated-denial.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,MAAkC,CAAA;AAExE,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EACyB,CAAA;AAOzG;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAStG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,OAAO,EACjB,eAAe,OAAO,EACtB,WAAW,SAAS,MAAM,EAAE,KAC3B,SAAS,MAAM,EAgBjB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,aAAa,SAAS,MAAM,EAAE,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAG1G,CAAA"}
@@ -1,9 +1,11 @@
1
1
  // Derive agent-runtime write denials from the generated-file roles the harness already governs.
2
2
  import { asRecord, isArray, readKey } from './json-shapes.js';
3
+ /** The default admin mount whose import map and page scaffolds Payload names. */
4
+ export const PAYLOAD_ADMIN_DIRECTORY = 'src/app/(payload)/admin';
3
5
  /** The artefacts Payload derives from the configuration. Declared once and consumed by every rule. */
4
6
  export const GENERATED_ARTEFACTS = [
5
7
  'src/payload-types.ts',
6
- 'src/app/(payload)/admin/importMap.js',
8
+ `${PAYLOAD_ADMIN_DIRECTORY}/importMap.js`,
7
9
  'src/payload-generated-schema.ts',
8
10
  ];
9
11
  /**
@@ -18,8 +20,8 @@ export const GENERATED_ARTEFACTS = [
18
20
  * @returns the Edit and Write denials the runtime settings must carry.
19
21
  */
20
22
  export const requiredDenyRules = (artefacts) => artefacts.flatMap((artefact) => [`Edit(${artefact})`, `Write(${artefact})`]);
21
- const stringsAt = (settings, section, key) => {
22
- const inner = readKey(readKey(settings, section), key);
23
+ const permissionStrings = (settings, key) => {
24
+ const inner = readKey(readKey(settings, 'permissions'), key);
23
25
  return isArray(inner) ? inner.filter((entry) => typeof entry === 'string') : [];
24
26
  };
25
27
  /**
@@ -31,7 +33,7 @@ const stringsAt = (settings, section, key) => {
31
33
  export const applyDenyRules = (existing, artefacts) => {
32
34
  const base = { ...asRecord(existing) };
33
35
  const permissions = { ...asRecord(base['permissions']) };
34
- const deny = stringsAt(base, 'permissions', 'deny');
36
+ const deny = permissionStrings(base, 'deny');
35
37
  const merged = [
36
38
  ...deny,
37
39
  ...requiredDenyRules(artefacts).filter((rule) => !deny.includes(rule)),
@@ -47,13 +49,13 @@ export const applyDenyRules = (existing, artefacts) => {
47
49
  */
48
50
  export const findDenialViolations = (settings, localSettings, artefacts) => {
49
51
  const required = requiredDenyRules(artefacts);
50
- const deny = stringsAt(settings, 'permissions', 'deny');
52
+ const deny = permissionStrings(settings, 'deny');
51
53
  const missing = required
52
54
  .filter((rule) => !deny.includes(rule))
53
55
  .map((rule) => `no write denial for ${rule}; run \`ploaness sync\` to add it`);
54
56
  // A local override that re-permits a denied artefact undoes the denial on the one machine where it
55
57
  // matters most, and it is untracked, so nothing else would ever report it.
56
- const allowed = stringsAt(localSettings, 'permissions', 'allow');
58
+ const allowed = permissionStrings(localSettings, 'allow');
57
59
  const rePermitted = allowed
58
60
  .filter((rule) => required.includes(rule))
59
61
  .map((rule) => `local settings re-permit ${rule}, which the project denies; remove the local allow entry`);
@@ -1 +1 @@
1
- {"version":3,"file":"generated-denial.js","sourceRoot":"","sources":["../src/generated-denial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generated-denial.js","sourceRoot":"","sources":["../src/generated-denial.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,10 @@ export * from './bundle-budget.js';
15
15
  export * from './checkov-check.js';
16
16
  export * from './checkov-policy.js';
17
17
  export * from './commit-message.js';
18
+ export * from './compliance-report.js';
19
+ export * from './compliance-report-assets.js';
20
+ export * from './compliance-report-html.js';
21
+ export { contentsPages } from './compliance-report-outline.js';
18
22
  export * from './config-references.js';
19
23
  export * from './container-failure.js';
20
24
  export * from './container-files.js';
@@ -42,6 +46,7 @@ export * from './layout-defects.js';
42
46
  export * from './layout-snapshot.js';
43
47
  export * from './layout-text.js';
44
48
  export * from './license-allowlist.js';
49
+ export * from './license-inventory.js';
45
50
  export * from './network-policy.js';
46
51
  export * from './oxlint-policy.js';
47
52
  export * from './oxlint-report.js';
@@ -53,7 +58,10 @@ export * from './payload-bootstrap.js';
53
58
  export * from './payload-database.js';
54
59
  export * from './payload-defaults.js';
55
60
  export * from './payload-policy.js';
61
+ export * from './payload-security.js';
56
62
  export * from './payload-source.js';
63
+ export * from './pdf-outline.js';
64
+ export * from './production-server.js';
57
65
  export * from './relationship-cleanup.js';
58
66
  export * from './release-age.js';
59
67
  export * from './request-limits.js';
@@ -61,7 +69,10 @@ export * from './route-coverage.js';
61
69
  export * from './route-map.js';
62
70
  export * from './run-plan.js';
63
71
  export * from './run-policy.js';
72
+ export * from './sbom-policy.js';
73
+ export * from './sbom-release.js';
64
74
  export * from './secret-policy.js';
75
+ export * from './security-headers.js';
65
76
  export * from './settings.js';
66
77
  export * from './settings-layering.js';
67
78
  export * from './shell-files.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -19,6 +19,10 @@ export * from './bundle-budget.js';
19
19
  export * from './checkov-check.js';
20
20
  export * from './checkov-policy.js';
21
21
  export * from './commit-message.js';
22
+ export * from './compliance-report.js';
23
+ export * from './compliance-report-assets.js';
24
+ export * from './compliance-report-html.js';
25
+ export { contentsPages } from './compliance-report-outline.js';
22
26
  export * from './config-references.js';
23
27
  export * from './container-failure.js';
24
28
  export * from './container-files.js';
@@ -46,6 +50,7 @@ export * from './layout-defects.js';
46
50
  export * from './layout-snapshot.js';
47
51
  export * from './layout-text.js';
48
52
  export * from './license-allowlist.js';
53
+ export * from './license-inventory.js';
49
54
  export * from './network-policy.js';
50
55
  export * from './oxlint-policy.js';
51
56
  export * from './oxlint-report.js';
@@ -57,7 +62,10 @@ export * from './payload-bootstrap.js';
57
62
  export * from './payload-database.js';
58
63
  export * from './payload-defaults.js';
59
64
  export * from './payload-policy.js';
65
+ export * from './payload-security.js';
60
66
  export * from './payload-source.js';
67
+ export * from './pdf-outline.js';
68
+ export * from './production-server.js';
61
69
  export * from './relationship-cleanup.js';
62
70
  export * from './release-age.js';
63
71
  export * from './request-limits.js';
@@ -65,7 +73,10 @@ export * from './route-coverage.js';
65
73
  export * from './route-map.js';
66
74
  export * from './run-plan.js';
67
75
  export * from './run-policy.js';
76
+ export * from './sbom-policy.js';
77
+ export * from './sbom-release.js';
68
78
  export * from './secret-policy.js';
79
+ export * from './security-headers.js';
69
80
  export * from './settings.js';
70
81
  export * from './settings-layering.js';
71
82
  export * from './shell-files.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,oGAAoG;AACpG,mGAAmG;AACnG,0DAA0D;AAE1D,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,20 @@
7
7
  * @returns whether the policy permits it.
8
8
  */
9
9
  export declare const isLicenseAllowed: (expression: string) => boolean;
10
+ /** How the policy admits a declared licence. */
11
+ export type LicenseClass = 'permissive' | 'weak-copyleft' | 'refused';
12
+ /**
13
+ * Classify a declared licence by the least restrictive way the policy admits it. An expression that a
14
+ * permissive choice satisfies is permissive, even when a copyleft alternative is also offered.
15
+ * @param expression the declared licence.
16
+ * @returns the class the policy places it in.
17
+ */
18
+ export declare const licenseClassOf: (expression: string) => LicenseClass;
19
+ /** The license identifiers the policy admits, by group, for a reader of the policy. */
20
+ export declare const LICENSE_POLICY: {
21
+ readonly permissive: readonly string[];
22
+ readonly weakCopyleft: readonly string[];
23
+ };
10
24
  export interface LicensedPackage {
11
25
  readonly name: string;
12
26
  readonly license: string;
@@ -1 +1 @@
1
- {"version":3,"file":"license-allowlist.d.ts","sourceRoot":"","sources":["../src/license-allowlist.ts"],"names":[],"mappings":"AAmKA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,OAQrD,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAGD,eAAO,MAAM,qBAAqB,GAAI,UAAU,SAAS,eAAe,EAAE,KAAG,SAAS,eAAe,EACP,CAAA"}
1
+ {"version":3,"file":"license-allowlist.d.ts","sourceRoot":"","sources":["../src/license-allowlist.ts"],"names":[],"mappings":"AAoLA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,OAAiE,CAAA;AAEvH,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,SAAS,CAAA;AAErE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,YAKnD,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,cAAc,EAAE;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACiB,CAAA;AAE3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAGD,eAAO,MAAM,qBAAqB,GAAI,UAAU,SAAS,eAAe,EAAE,KAAG,SAAS,eAAe,EACP,CAAA"}
@@ -73,12 +73,14 @@ const ALLOWED = new Set([...PERMISSIVE, ...WEAK_COPYLEFT]);
73
73
  // least three ways. The allowlist is matched on a folded id so a casing difference is not a licence
74
74
  // decision. A `WITH` exception (`GPL-2.0 WITH Classpath-exception-2.0`) names the same licence plus a
75
75
  // grant, so the licence half decides; a `+` suffix means "or later", which is the same licence too.
76
- const ALLOWED_FOLDED = new Set([...ALLOWED].map((id) => id.toLowerCase()));
76
+ const folded = (ids) => new Set(ids.map((id) => id.toLowerCase()));
77
+ const ALLOWED_FOLDED = folded([...ALLOWED]);
78
+ const PERMISSIVE_FOLDED = folded(PERMISSIVE);
77
79
  // Anchored on a single space run rather than a nested quantifier: `\s+WITH\s+(?:\S.*)?$` backtracks
78
80
  // super-linearly on a long id, and an expression comes from a registry rather than from this repository.
79
81
  const WITH_EXCEPTION = /\sWITH\s[\s\S]*$/i;
80
82
  const OR_LATER = /\+$/;
81
- const isAllowedId = (id) => ALLOWED_FOLDED.has(id.trim().replace(WITH_EXCEPTION, '').replace(OR_LATER, '').toLowerCase());
83
+ const acceptsIdIn = (accepted) => (id) => accepted.has(id.trim().replace(WITH_EXCEPTION, '').replace(OR_LATER, '').toLowerCase());
82
84
  // The operators, lowest precedence first. SPDX binds AND more tightly than OR, so a correct evaluator
83
85
  // splits on OR before AND - and the ONLY correct order is that one. Splitting on AND first, after
84
86
  // stripping the parentheses, turned `(MIT OR Apache-2.0) AND ISC` into the operands
@@ -132,6 +134,17 @@ const unwrap = (expression) => {
132
134
  ? unwrap(trimmed.slice(1, -1))
133
135
  : trimmed;
134
136
  };
137
+ const matchesPolicy = (expression, isAccepted) => {
138
+ const clean = unwrap(expression);
139
+ const alternatives = splitOutside(clean, OR);
140
+ if (alternatives.length > 1) {
141
+ return alternatives.some((part) => matchesPolicy(part, isAccepted));
142
+ }
143
+ const conjuncts = splitOutside(clean, AND);
144
+ return conjuncts.length > 1
145
+ ? conjuncts.every((part) => matchesPolicy(part, isAccepted))
146
+ : isAccepted(clean);
147
+ };
135
148
  /**
136
149
  * Evaluate an SPDX licence expression against the policy.
137
150
  *
@@ -140,15 +153,21 @@ const unwrap = (expression) => {
140
153
  * @param expression the declared licence, which may be a compound SPDX expression.
141
154
  * @returns whether the policy permits it.
142
155
  */
143
- export const isLicenseAllowed = (expression) => {
144
- const clean = unwrap(expression);
145
- const alternatives = splitOutside(clean, OR);
146
- if (alternatives.length > 1) {
147
- return alternatives.some((part) => isLicenseAllowed(part));
156
+ export const isLicenseAllowed = (expression) => matchesPolicy(expression, acceptsIdIn(ALLOWED_FOLDED));
157
+ /**
158
+ * Classify a declared licence by the least restrictive way the policy admits it. An expression that a
159
+ * permissive choice satisfies is permissive, even when a copyleft alternative is also offered.
160
+ * @param expression the declared licence.
161
+ * @returns the class the policy places it in.
162
+ */
163
+ export const licenseClassOf = (expression) => {
164
+ if (matchesPolicy(expression, acceptsIdIn(PERMISSIVE_FOLDED))) {
165
+ return 'permissive';
148
166
  }
149
- const conjuncts = splitOutside(clean, AND);
150
- return conjuncts.length > 1 ? conjuncts.every((part) => isLicenseAllowed(part)) : isAllowedId(clean);
167
+ return isLicenseAllowed(expression) ? 'weak-copyleft' : 'refused';
151
168
  };
169
+ /** The license identifiers the policy admits, by group, for a reader of the policy. */
170
+ export const LICENSE_POLICY = { permissive: PERMISSIVE, weakCopyleft: WEAK_COPYLEFT };
152
171
  // Return the packages whose license is not permitted by policy; an empty array means a clean tree.
153
172
  export const findLicenseViolations = (packages) => packages.filter((package_) => !isLicenseAllowed(package_.license));
154
173
  //# sourceMappingURL=license-allowlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"license-allowlist.js","sourceRoot":"","sources":["../src/license-allowlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license-allowlist.js","sourceRoot":"","sources":["../src/license-allowlist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** One package of the resolved set as the licence inventory reports it. */
2
+ export interface InventoryPackage {
3
+ readonly name: string;
4
+ /** Every installed version. A directory dependency has none, because pnpm reports its version as null. */
5
+ readonly versions: readonly string[];
6
+ readonly license: string;
7
+ /** The installed package directories, where the licence files the package ships are found. */
8
+ readonly paths: readonly string[];
9
+ readonly homepage: string | undefined;
10
+ }
11
+ /**
12
+ * Read the stdout of `pnpm licenses list --json`: packages grouped by their declared licence.
13
+ * @param json the command's stdout.
14
+ * @returns every reported package, or undefined when the text is not that inventory.
15
+ */
16
+ export declare const parseLicenseInventory: (json: string) => readonly InventoryPackage[] | undefined;
17
+ /** The coordinate a package version is identified by across the inventory, the SBOM and the report. */
18
+ export declare const coordinateOf: (name: string, version: string) => string;
19
+ /**
20
+ * Index the declared licence of every installed package version.
21
+ * @param packages the parsed inventory.
22
+ * @returns the licence by `name@version`; a directory dependency without a version is absent.
23
+ */
24
+ export declare const licensesByCoordinate: (packages: readonly InventoryPackage[]) => ReadonlyMap<string, string>;
25
+ //# sourceMappingURL=license-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-inventory.d.ts","sourceRoot":"","sources":["../src/license-inventory.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0GAA0G;IAC1G,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAoBD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,SAAS,gBAAgB,EAAE,GAAG,SASlF,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MAA8B,CAAA;AAE3F;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,SAAS,gBAAgB,EAAE,KAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAQpG,CAAA"}
@@ -0,0 +1,41 @@
1
+ // The licence inventory pnpm reports for the resolved set, read into one shape every consumer shares.
2
+ import { asRecord, asText, isArray, isRecord, parseJsonc } from './json-shapes.js';
3
+ const strings = (raw) => isArray(raw) ? raw.filter((entry) => typeof entry === 'string') : [];
4
+ const asInventoryPackage = (raw, group) => {
5
+ const entry = asRecord(raw);
6
+ const homepage = asText(entry['homepage']);
7
+ // The group key is the licence pnpm grouped the entry under; the entry repeats it, and the entry wins
8
+ // when both are present because it is the value read from the package itself.
9
+ const license = asText(entry['license']);
10
+ return {
11
+ name: asText(entry['name']),
12
+ versions: strings(entry['versions']),
13
+ license: license.length > 0 ? license : group,
14
+ paths: strings(entry['paths']),
15
+ homepage: homepage.length > 0 ? homepage : undefined,
16
+ };
17
+ };
18
+ /**
19
+ * Read the stdout of `pnpm licenses list --json`: packages grouped by their declared licence.
20
+ * @param json the command's stdout.
21
+ * @returns every reported package, or undefined when the text is not that inventory.
22
+ */
23
+ export const parseLicenseInventory = (json) => {
24
+ const inventory = parseJsonc(json).value;
25
+ if (!isRecord(inventory) || isArray(inventory)) {
26
+ return undefined;
27
+ }
28
+ return Object.entries(inventory).flatMap(([group, entries]) => (isArray(entries) ? entries : []).map((entry) => asInventoryPackage(entry, group)));
29
+ };
30
+ /** The coordinate a package version is identified by across the inventory, the SBOM and the report. */
31
+ export const coordinateOf = (name, version) => `${name}@${version}`;
32
+ /**
33
+ * Index the declared licence of every installed package version.
34
+ * @param packages the parsed inventory.
35
+ * @returns the licence by `name@version`; a directory dependency without a version is absent.
36
+ */
37
+ export const licensesByCoordinate = (packages) => new Map(packages.flatMap((entry) => entry.versions.map((version) => [
38
+ coordinateOf(entry.name, version),
39
+ entry.license,
40
+ ])));
41
+ //# sourceMappingURL=license-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-inventory.js","sourceRoot":"","sources":["../src/license-inventory.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAalF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAqB,EAAE,CAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAEhG,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,KAAa,EAAoB,EAAE;IAC3E,MAAM,KAAK,GAA4B,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IAClD,sGAAsG;IACtG,8EAA8E;IAC9E,MAAM,OAAO,GAAW,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IAChD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAA2C,EAAE;IAC7F,MAAM,SAAS,GAAY,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;IACjD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CACtC,CAAC,CAAC,KAAK,EAAE,OAAO,CAA6B,EAA+B,EAAE,CAC5E,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAc,EAAoB,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAChH,CAAA;AACH,CAAC,CAAA;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAA;AAE3F;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAqC,EAA+B,EAAE,CACzG,IAAI,GAAG,CACL,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAuB,EAA0C,EAAE,CACnF,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAA6B,EAAE,CAAC;IACjE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,OAAO;CACd,CAAC,CACH,CACF,CAAA"}
@@ -6,7 +6,7 @@ export interface OxlintRule {
6
6
  /** Validated gaps in the existing analyzer coverage; equivalent rules retain their current owner. */
7
7
  export declare const OXLINT_CORE_RULES: readonly OxlintRule[];
8
8
  /** The rules applicable to one disjoint file group. */
9
- export declare const oxlintRules: (hasAccessibility: boolean) => readonly OxlintRule[];
9
+ export declare const oxlintRules: (hasAccessibility: boolean, isPayloadScaffold?: boolean) => readonly OxlintRule[];
10
10
  /** Canonical native names, also used to validate a file's suppression comments. */
11
11
  export declare const oxlintRuleNames: (rules: readonly OxlintRule[]) => readonly string[];
12
12
  /** Build a closed rule set; category defaults cannot add undeclared checks. */
@@ -1 +1 @@
1
- {"version":3,"file":"oxlint-policy.d.ts","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAMlD,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,WAAW,GAAI,kBAAkB,OAAO,KAAG,SAAS,UAAU,EAG1E,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,SAAS,MAAM,EACxB,CAAA;AAEtD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1F,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAA"}
1
+ {"version":3,"file":"oxlint-policy.d.ts","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAID,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAUlD,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,WAAW,GAAI,kBAAkB,OAAO,EAAE,oBAAmB,OAAe,KAAG,SAAS,UAAU,EAQ9G,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,SAAS,MAAM,EACxB,CAAA;AAEtD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1F,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { JSX_ACCESSIBILITY_RULES } from './jsx-accessibility.js';
2
+ const JSX_FILENAME_RULE = 'react/jsx-filename-extension';
2
3
  /** Validated gaps in the existing analyzer coverage; equivalent rules retain their current owner. */
3
4
  export const OXLINT_CORE_RULES = [
4
5
  { oxlint: 'eslint/no-promise-executor-return', options: { allowVoid: false } },
@@ -6,17 +7,23 @@ export const OXLINT_CORE_RULES = [
6
7
  oxlint: 'import/no-absolute-path',
7
8
  options: { esmodule: true, commonjs: false, amd: false },
8
9
  },
10
+ {
11
+ oxlint: JSX_FILENAME_RULE,
12
+ options: { allow: 'as-needed', extensions: ['.tsx', '.jsx'], ignoreFilesWithoutCode: false },
13
+ },
9
14
  ];
10
15
  /** The rules applicable to one disjoint file group. */
11
- export const oxlintRules = (hasAccessibility) => [
12
- ...OXLINT_CORE_RULES,
16
+ export const oxlintRules = (hasAccessibility, isPayloadScaffold = false) => [
17
+ ...OXLINT_CORE_RULES.map((rule) => isPayloadScaffold && rule.oxlint === JSX_FILENAME_RULE
18
+ ? { ...rule, options: { ...rule.options, allow: 'always' } }
19
+ : rule),
13
20
  ...(hasAccessibility ? JSX_ACCESSIBILITY_RULES : []),
14
21
  ];
15
22
  /** Canonical native names, also used to validate a file's suppression comments. */
16
23
  export const oxlintRuleNames = (rules) => rules.map((rule) => rule.oxlint);
17
24
  /** Build a closed rule set; category defaults cannot add undeclared checks. */
18
25
  export const oxlintConfig = (rules) => ({
19
- plugins: ['import', 'jsx-a11y'],
26
+ plugins: ['import', 'jsx-a11y', 'react'],
20
27
  categories: { correctness: 'off' },
21
28
  rules: Object.fromEntries(rules.map((rule) => [
22
29
  rule.oxlint,
@@ -1 +1 @@
1
- {"version":3,"file":"oxlint-policy.js","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA6B,MAAM,wBAAwB,CAAA;AAQ3F,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,EAAE,MAAM,EAAE,mCAAmC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAC9E;QACE,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;KACzD;CACF,CAAA;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,gBAAyB,EAAyB,EAAE,CAAC;IAC/E,GAAG,iBAAiB;IACpB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;CACrD,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAqB,EAAE,CACjF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAqC,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAA8B,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KAC/D,CAAC,CACH;CACF,CAAC,CAAA;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAsB,uBAAuB,CAAC,GAAG,CACtF,CAAC,IAA0B,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CACpD,CAAA"}
1
+ {"version":3,"file":"oxlint-policy.js","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA6B,MAAM,wBAAwB,CAAA;AAQ3F,MAAM,iBAAiB,GAAW,8BAA8B,CAAA;AAEhE,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,EAAE,MAAM,EAAE,mCAAmC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAC9E;QACE,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;KACzD;IACD;QACE,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE;KAC7F;CACF,CAAA;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,gBAAyB,EAAE,oBAA6B,KAAK,EAAyB,EAAE,CAAC;IACnH,GAAG,iBAAiB,CAAC,GAAG,CACtB,CAAC,IAAgB,EAAc,EAAE,CAC/B,iBAAiB,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB;QACpD,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5D,CAAC,CAAC,IAAI,CACX;IACD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;CACrD,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAqB,EAAE,CACjF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAqC,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;IACxC,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAA8B,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KAC/D,CAAC,CACH;CACF,CAAC,CAAA;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAsB,uBAAuB,CAAC,GAAG,CACtF,CAAC,IAA0B,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CACpD,CAAA"}
@@ -8,6 +8,6 @@ export interface OxlintGroup {
8
8
  readonly files: readonly string[];
9
9
  readonly rules: readonly OxlintRule[];
10
10
  }
11
- /** Partition already-selected source; libraries retain Biome ownership of accessibility. */
12
- export declare const oxlintGroups: (files: readonly string[], hasAppRuntime: boolean) => readonly OxlintGroup[];
11
+ /** Partition source by analyzer ownership and the filenames the Payload scaffold requires. */
12
+ export declare const oxlintGroups: (files: readonly string[], hasAppRuntime: boolean, isPayload?: boolean) => readonly OxlintGroup[];
13
13
  //# sourceMappingURL=oxlint-scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oxlint-scope.d.ts","sourceRoot":"","sources":["../src/oxlint-scope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAGjE,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAmE,CAAA;AAYlH,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,GAC5B,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAQjB,CAAA;AAED,0FAA0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CACtC;AAED,4FAA4F;AAC5F,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,MAAM,EAAE,EAAE,eAAe,OAAO,KAAG,SAAS,WAAW,EAMnG,CAAA"}
1
+ {"version":3,"file":"oxlint-scope.d.ts","sourceRoot":"","sources":["../src/oxlint-scope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAGjE,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAmE,CAAA;AAYlH,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,GAC5B,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAQjB,CAAA;AAED,0FAA0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CACtC;AAYD,8FAA8F;AAC9F,eAAO,MAAM,YAAY,GACvB,OAAO,SAAS,MAAM,EAAE,EACxB,eAAe,OAAO,EACtB,YAAW,OAAe,KACzB,SAAS,WAAW,EAatB,CAAA"}