@ploaness/governance 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/container-freshness.d.ts +2 -0
- package/dist/container-freshness.d.ts.map +1 -1
- package/dist/container-freshness.js +10 -5
- package/dist/container-freshness.js.map +1 -1
- package/dist/container-images.d.ts.map +1 -1
- package/dist/container-images.js +3 -4
- package/dist/container-images.js.map +1 -1
- package/dist/file-roles.d.ts +3 -3
- package/dist/file-roles.d.ts.map +1 -1
- package/dist/file-roles.js +10 -6
- package/dist/file-roles.js.map +1 -1
- package/dist/generated-denial.d.ts +2 -0
- package/dist/generated-denial.d.ts.map +1 -1
- package/dist/generated-denial.js +8 -6
- package/dist/generated-denial.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/oxlint-policy.d.ts +1 -1
- package/dist/oxlint-policy.d.ts.map +1 -1
- package/dist/oxlint-policy.js +10 -3
- package/dist/oxlint-policy.js.map +1 -1
- package/dist/oxlint-scope.d.ts +2 -2
- package/dist/oxlint-scope.d.ts.map +1 -1
- package/dist/oxlint-scope.js +13 -4
- package/dist/oxlint-scope.js.map +1 -1
- package/dist/payload-access.d.ts.map +1 -1
- package/dist/payload-access.js +11 -3
- package/dist/payload-access.js.map +1 -1
- package/dist/payload-defaults.d.ts +2 -0
- package/dist/payload-defaults.d.ts.map +1 -1
- package/dist/payload-defaults.js +6 -2
- package/dist/payload-defaults.js.map +1 -1
- package/dist/payload-field-access.js +1 -1
- package/dist/payload-field-access.js.map +1 -1
- package/dist/payload-security.d.ts +20 -0
- package/dist/payload-security.d.ts.map +1 -0
- package/dist/payload-security.js +88 -0
- package/dist/payload-security.js.map +1 -0
- package/dist/production-server.d.ts +11 -0
- package/dist/production-server.d.ts.map +1 -0
- package/dist/production-server.js +17 -0
- package/dist/production-server.js.map +1 -0
- package/dist/run-plan.d.ts +4 -0
- package/dist/run-plan.d.ts.map +1 -1
- package/dist/run-plan.js +4 -0
- package/dist/run-plan.js.map +1 -1
- package/dist/sbom-policy.d.ts +21 -0
- package/dist/sbom-policy.d.ts.map +1 -0
- package/dist/sbom-policy.js +180 -0
- package/dist/sbom-policy.js.map +1 -0
- package/dist/sbom-release.d.ts +16 -0
- package/dist/sbom-release.d.ts.map +1 -0
- package/dist/sbom-release.js +36 -0
- package/dist/sbom-release.js.map +1 -0
- package/dist/security-headers.d.ts +3 -0
- package/dist/security-headers.d.ts.map +1 -0
- package/dist/security-headers.js +26 -0
- package/dist/security-headers.js.map +1 -0
- package/dist/settings.d.ts +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +24 -2
- package/dist/settings.js.map +1 -1
- package/dist/toolchain-pins.d.ts +3 -3
- package/dist/toolchain-pins.d.ts.map +1 -1
- package/dist/toolchain-pins.js +6 -5
- package/dist/toolchain-pins.js.map +1 -1
- package/dist/version-policy.js +3 -3
- package/dist/version-policy.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-defaults.d.ts","sourceRoot":"","sources":["../src/payload-defaults.ts"],"names":[],"mappings":"AAgBA,wGAAwG;AACxG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA2C,CAAA;AAE9F,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAuB,CAAA;AAEtE,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAA;AAEhD,6FAA6F;AAC7F,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAA;AAE7D,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,oBAAoB,KAAG,SAAS,MAAM,EAIjF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAqC,CAAA;AAElF,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;CACtC;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAClD;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,QAAQ,CAAA;AAExD,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wGAAwG;AACxG,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EA2BlE,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAgC,CAAA;AAmCjE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,qBAAqB,KAAG,SAAS,MAAM,EAGlF,CAAA;AA2BD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAiBxD,CAAA;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,QAAQ,qBAAqB,KAAG,SAAS,MAAM,EAIvF,CAAA;AAoEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"payload-defaults.d.ts","sourceRoot":"","sources":["../src/payload-defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/payload-defaults.js
CHANGED
|
@@ -253,7 +253,7 @@ const parseJson = (text) => {
|
|
|
253
253
|
* @param text the probe's standard output.
|
|
254
254
|
* @returns the report, or undefined when no well-formed report was printed.
|
|
255
255
|
*/
|
|
256
|
-
export const
|
|
256
|
+
export const parsePayloadReport = (text) => {
|
|
257
257
|
const line = text
|
|
258
258
|
.split('\n')
|
|
259
259
|
.map((candidate) => candidate.trim())
|
|
@@ -261,7 +261,11 @@ export const parseInheritedAccessReport = (text) => {
|
|
|
261
261
|
if (line === undefined) {
|
|
262
262
|
return undefined;
|
|
263
263
|
}
|
|
264
|
-
|
|
264
|
+
return parseJson(line.slice(INHERITED_ACCESS_REPORT_MARKER.length));
|
|
265
|
+
};
|
|
266
|
+
/** Parse the access decisions in the shared resolved-configuration report. */
|
|
267
|
+
export const parseInheritedAccessReport = (text) => {
|
|
268
|
+
const parsed = parsePayloadReport(text);
|
|
265
269
|
const collections = asEntries(readKey(parsed, 'collections'));
|
|
266
270
|
const globals = asEntries(readKey(parsed, 'globals'));
|
|
267
271
|
const draftReads = asDraftReads(readKey(parsed, 'draftReads'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-defaults.js","sourceRoot":"","sources":["../src/payload-defaults.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"payload-defaults.js","sourceRoot":"","sources":["../src/payload-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const PRIVILEGED_FIELD_NAMES = new Set([
|
|
|
17
17
|
'capabilities',
|
|
18
18
|
]);
|
|
19
19
|
const REQUIRED_OPERATIONS = ['create', 'update'];
|
|
20
|
-
const quotedValue = (value) => /^\s*['"`]([^'"`]+)['"`]/.exec(value
|
|
20
|
+
const quotedValue = (value = '') => /^\s*['"`]([^'"`]+)['"`]/.exec(value)?.[1];
|
|
21
21
|
const isAuthCollection = (config) => {
|
|
22
22
|
if (config.kind.kind !== 'collection') {
|
|
23
23
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-field-access.js","sourceRoot":"","sources":["../src/payload-field-access.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,oGAAoG;AACpG,sGAAsG;AACtG,kGAAkG;AAClG,yEAAyE;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAA;AAE7F,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,cAAc;CACf,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAEnE,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"payload-field-access.js","sourceRoot":"","sources":["../src/payload-field-access.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,oGAAoG;AACpG,sGAAsG;AACtG,kGAAkG;AAClG,yEAAyE;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAA;AAE7F,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,cAAc;CACf,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAEnE,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAsB,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE1G,MAAM,gBAAgB,GAAG,CAAC,MAA0B,EAAW,EAAE;IAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,IAAI,GAAuB,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnE,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAgC,EAAE;IAC9E,MAAM,IAAI,GAAuB,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,QAAQ,GAAsB,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAsB,mBAAmB,CAAC,MAAM,CAC3D,CAAC,SAAiB,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC9D,CAAA;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,iCAAiC;YACvC,MAAM,EACJ,gCAAgC,IAAI,qDAAqD;gBACzF,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D;gBACtF,qBAAqB;SACxB,CAAA;AACP,CAAC,CAAA;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAAc,EAA+B,EAAE,CAC7F,gBAAgB,CAAC,MAAM,CAAC;KACrB,MAAM,CAAC,CAAC,MAA0B,EAAW,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACzE,OAAO,CAAC,CAAC,MAA0B,EAAgC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrG,GAAG,CAAC,CAAC,KAAwB,EAAgC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACpF,MAAM,CAAC,CAAC,SAAuC,EAAiC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Authentication values observed after Payload has applied its defaults and plugins. */
|
|
2
|
+
export interface ResolvedAuth {
|
|
3
|
+
readonly slug: string;
|
|
4
|
+
readonly local: boolean;
|
|
5
|
+
readonly maxLoginAttempts: unknown;
|
|
6
|
+
readonly lockTime: unknown;
|
|
7
|
+
readonly tokenExpiration: unknown;
|
|
8
|
+
}
|
|
9
|
+
/** Only the state is reported: an auto-login object can contain credentials. */
|
|
10
|
+
export interface PayloadSecurityReport {
|
|
11
|
+
readonly authentication: readonly ResolvedAuth[];
|
|
12
|
+
readonly autoLogin: 'disabled' | 'enabled' | 'invalid';
|
|
13
|
+
}
|
|
14
|
+
/** Read security-relevant values without invoking access functions or retaining credentials. */
|
|
15
|
+
export declare const payloadSecurityOf: (config: unknown) => PayloadSecurityReport;
|
|
16
|
+
/** Missing security evidence is a probe failure, even if the access portion was readable. */
|
|
17
|
+
export declare const parsePayloadSecurityReport: (text: string) => PayloadSecurityReport | undefined;
|
|
18
|
+
/** Enforce native authentication limits and disable the development login feature in production. */
|
|
19
|
+
export declare const findPayloadSecurityViolations: (report: PayloadSecurityReport) => readonly string[];
|
|
20
|
+
//# sourceMappingURL=payload-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-security.d.ts","sourceRoot":"","sources":["../src/payload-security.ts"],"names":[],"mappings":"AAIA,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAA;IAChD,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;CACvD;AAsBD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,KAAG,qBA2BnD,CAAA;AAQD,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,qBAAqB,GAAG,SAQjF,CAAA;AAwBD,oGAAoG;AACpG,eAAO,MAAM,6BAA6B,GAAI,QAAQ,qBAAqB,KAAG,SAAS,MAAM,EAK5F,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Security decisions over the configuration Payload actually resolves, including plugin contributions.
|
|
2
|
+
import { isArray, isRecord, readKey } from './json-shapes.js';
|
|
3
|
+
import { parsePayloadReport } from './payload-defaults.js';
|
|
4
|
+
const autoLoginState = (value) => {
|
|
5
|
+
if (value === undefined || value === false) {
|
|
6
|
+
return 'disabled';
|
|
7
|
+
}
|
|
8
|
+
return isRecord(value) ? 'enabled' : 'invalid';
|
|
9
|
+
};
|
|
10
|
+
const observedLimit = (auth, key) => readKey(auth, key) ?? null;
|
|
11
|
+
const hasLocalStrategy = (auth) => {
|
|
12
|
+
const disabled = readKey(auth, 'disableLocalStrategy');
|
|
13
|
+
if (disabled === undefined || disabled === false) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (disabled === true || isRecord(disabled)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
throw new TypeError('resolved auth.disableLocalStrategy is not a supported strategy setting');
|
|
20
|
+
};
|
|
21
|
+
/** Read security-relevant values without invoking access functions or retaining credentials. */
|
|
22
|
+
export const payloadSecurityOf = (config) => {
|
|
23
|
+
const collections = readKey(config, 'collections');
|
|
24
|
+
if (!isArray(collections)) {
|
|
25
|
+
throw new TypeError('the resolved Payload configuration has no collections array');
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
autoLogin: autoLoginState(readKey(readKey(config, 'admin'), 'autoLogin')),
|
|
29
|
+
authentication: collections.flatMap((collection) => {
|
|
30
|
+
const auth = readKey(collection, 'auth');
|
|
31
|
+
if (auth === undefined || auth === false) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
const slug = readKey(collection, 'slug');
|
|
35
|
+
if (typeof slug !== 'string' || !isRecord(auth)) {
|
|
36
|
+
throw new TypeError('an authentication collection has no resolved slug or auth object');
|
|
37
|
+
}
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
slug,
|
|
41
|
+
local: hasLocalStrategy(auth),
|
|
42
|
+
maxLoginAttempts: observedLimit(auth, 'maxLoginAttempts'),
|
|
43
|
+
lockTime: observedLimit(auth, 'lockTime'),
|
|
44
|
+
tokenExpiration: observedLimit(auth, 'tokenExpiration'),
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const isResolvedAuth = (value) => isRecord(value) &&
|
|
51
|
+
typeof value['slug'] === 'string' &&
|
|
52
|
+
typeof value['local'] === 'boolean' &&
|
|
53
|
+
['maxLoginAttempts', 'lockTime', 'tokenExpiration'].every((key) => Object.hasOwn(value, key));
|
|
54
|
+
/** Missing security evidence is a probe failure, even if the access portion was readable. */
|
|
55
|
+
export const parsePayloadSecurityReport = (text) => {
|
|
56
|
+
const report = parsePayloadReport(text);
|
|
57
|
+
const authentication = readKey(report, 'authentication');
|
|
58
|
+
if (!(isArray(authentication) && authentication.every(isResolvedAuth))) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const autoLogin = readKey(report, 'autoLogin');
|
|
62
|
+
return isAutoLoginState(autoLogin) ? { authentication, autoLogin } : undefined;
|
|
63
|
+
};
|
|
64
|
+
const isPositive = (value) => typeof value === 'number' && Number.isFinite(value) && value > 0;
|
|
65
|
+
const isAutoLoginState = (value) => typeof value === 'string' && ['disabled', 'enabled', 'invalid'].includes(value);
|
|
66
|
+
const UNITS = { lockTime: ' (milliseconds)', tokenExpiration: ' (seconds)' };
|
|
67
|
+
const authFindings = (auth) => {
|
|
68
|
+
if (!auth.local) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return ['maxLoginAttempts', 'lockTime', 'tokenExpiration'].flatMap((key) => {
|
|
72
|
+
const value = readKey(auth, key);
|
|
73
|
+
const isValid = isPositive(value) && (key !== 'maxLoginAttempts' || Number.isSafeInteger(value));
|
|
74
|
+
const requirement = key === 'maxLoginAttempts' ? 'a positive integer' : 'a finite positive number';
|
|
75
|
+
const unit = UNITS[key] ?? '';
|
|
76
|
+
return isValid
|
|
77
|
+
? []
|
|
78
|
+
: [`collection "${auth.slug}" resolves auth.${key}${unit} to ${JSON.stringify(value)}; set ${requirement}`];
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
/** Enforce native authentication limits and disable the development login feature in production. */
|
|
82
|
+
export const findPayloadSecurityViolations = (report) => [
|
|
83
|
+
...report.authentication.flatMap((auth) => authFindings(auth)),
|
|
84
|
+
...(report.autoLogin === 'disabled'
|
|
85
|
+
? []
|
|
86
|
+
: ['production admin.autoLogin must be absent or false; disable auto-login and credential prefill in production']),
|
|
87
|
+
];
|
|
88
|
+
//# sourceMappingURL=payload-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-security.js","sourceRoot":"","sources":["../src/payload-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Next build metadata sufficient to choose the supported production launcher. */
|
|
2
|
+
export interface ProductionOutput {
|
|
3
|
+
readonly standalone: boolean;
|
|
4
|
+
readonly relativeAppDir: string;
|
|
5
|
+
readonly distDir: string;
|
|
6
|
+
}
|
|
7
|
+
/** A shell argument quoted without expanding shell variables or command substitutions. */
|
|
8
|
+
export declare const shellArgument: (value: string) => string;
|
|
9
|
+
/** Select the server from the artifact's recorded configuration, never a development fallback. */
|
|
10
|
+
export declare const productionOutputOf: (manifest: unknown) => ProductionOutput;
|
|
11
|
+
//# sourceMappingURL=production-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-server.d.ts","sourceRoot":"","sources":["../src/production-server.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,0FAA0F;AAC1F,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAAiD,CAAA;AAE/F,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,GAAI,UAAU,OAAO,KAAG,gBAatD,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { asRecord, readKey } from './json-shapes.js';
|
|
2
|
+
/** A shell argument quoted without expanding shell variables or command substitutions. */
|
|
3
|
+
export const shellArgument = (value) => `'${value.replaceAll("'", "'\"'\"'")}'`;
|
|
4
|
+
/** Select the server from the artifact's recorded configuration, never a development fallback. */
|
|
5
|
+
export const productionOutputOf = (manifest) => {
|
|
6
|
+
const config = asRecord(readKey(manifest, 'config'));
|
|
7
|
+
const output = config['output'];
|
|
8
|
+
const appDirectory = readKey(manifest, 'relativeAppDir');
|
|
9
|
+
const buildDirectory = config['distDir'];
|
|
10
|
+
if (typeof buildDirectory !== 'string' ||
|
|
11
|
+
typeof appDirectory !== 'string' ||
|
|
12
|
+
(output !== undefined && output !== 'standalone')) {
|
|
13
|
+
throw new TypeError('production browser verification requires ordinary or standalone Next server output');
|
|
14
|
+
}
|
|
15
|
+
return { standalone: output === 'standalone', relativeAppDir: appDirectory, distDir: buildDirectory };
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=production-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-server.js","sourceRoot":"","sources":["../src/production-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AASpD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAA;AAE/F,kGAAkG;AAClG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAiB,EAAoB,EAAE;IACxE,MAAM,MAAM,GAA4B,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAY,MAAM,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,YAAY,GAAY,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,cAAc,GAAY,MAAM,CAAC,SAAS,CAAC,CAAA;IACjD,IACE,OAAO,cAAc,KAAK,QAAQ;QAClC,OAAO,YAAY,KAAK,QAAQ;QAChC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC,EACjD,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC,CAAA;IAC3G,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;AACvG,CAAC,CAAA"}
|
package/dist/run-plan.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ export interface PlanStep {
|
|
|
17
17
|
/** The member's path, or undefined for a repository-scope gate. */
|
|
18
18
|
readonly member: string | undefined;
|
|
19
19
|
}
|
|
20
|
+
/** Record only a successful build of the particular member in this invocation. */
|
|
21
|
+
export declare const recordBuildSuccess: (built: ReadonlySet<string>, step: PlanStep, isSuccess: boolean) => ReadonlySet<string>;
|
|
22
|
+
/** Report-only execution must not test an old artifact after the current build failed. */
|
|
23
|
+
export declare const canRunBuiltBrowser: (step: PlanStep, isRuntime: boolean, built: ReadonlySet<string>) => boolean;
|
|
20
24
|
/**
|
|
21
25
|
* Expand the gate registry into the ordered invocations one run performs.
|
|
22
26
|
*
|
package/dist/run-plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-plan.d.ts","sourceRoot":"","sources":["../src/run-plan.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;AAE5D,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,qFAAqF;AACrF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;
|
|
1
|
+
{"version":3,"file":"run-plan.d.ts","sourceRoot":"","sources":["../src/run-plan.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;AAE5D,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,qFAAqF;AACrF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,EAC1B,MAAM,QAAQ,EACd,WAAW,OAAO,KACjB,WAAW,CAAC,MAAM,CACyF,CAAA;AAE9G,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,GAAI,MAAM,QAAQ,EAAE,WAAW,OAAO,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAG,OACN,CAAA;AAa9F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,cAAc,EAAE,EAChC,SAAS,SAAS,gBAAgB,EAAE,EACpC,YAAY,OAAO,KAClB,SAAS,QAAQ,EAGgE,CAAA"}
|
package/dist/run-plan.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
// Expand gates in registry order across their applicable members; tree verification remains last.
|
|
2
|
+
/** Record only a successful build of the particular member in this invocation. */
|
|
3
|
+
export const recordBuildSuccess = (built, step, isSuccess) => isSuccess && step.gateId === 'build' && step.member !== undefined ? new Set([...built, step.member]) : built;
|
|
4
|
+
/** Report-only execution must not test an old artifact after the current build failed. */
|
|
5
|
+
export const canRunBuiltBrowser = (step, isRuntime, built) => !isRuntime || step.gateId !== 'e2e' || (step.member !== undefined && built.has(step.member));
|
|
2
6
|
// A package-scope gate asks about every member; a payload-scope gate asks only about the members that
|
|
3
7
|
// are Payload applications. Derived from what the member declares rather than from anything it opts
|
|
4
8
|
// into, so a project cannot silence the Payload rules by describing itself differently.
|
package/dist/run-plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-plan.js","sourceRoot":"","sources":["../src/run-plan.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAyBlG,sGAAsG;AACtG,oGAAoG;AACpG,wFAAwF;AACxF,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,OAAoC,EAA+B,EAAE,CAC7G,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAwB,EAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAE9G,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,OAAoC,EAAuB,EAAE,CACnG,IAAI,CAAC,KAAK,KAAK,YAAY;IACzB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAwB,EAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEvH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAgC,EAChC,OAAoC,EACpC,UAAmB,EACE,EAAE,CACvB,KAAK;KACF,MAAM,CAAC,CAAC,IAAoB,EAAW,EAAE,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KACzE,OAAO,CAAC,CAAC,IAAoB,EAAuB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"run-plan.js","sourceRoot":"","sources":["../src/run-plan.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAyBlG,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAA0B,EAC1B,IAAc,EACd,SAAkB,EACG,EAAE,CACvB,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAE9G,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,SAAkB,EAAE,KAA0B,EAAW,EAAE,CAC5G,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAE9F,sGAAsG;AACtG,oGAAoG;AACpG,wFAAwF;AACxF,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,OAAoC,EAA+B,EAAE,CAC7G,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAwB,EAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAE9G,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,OAAoC,EAAuB,EAAE,CACnG,IAAI,CAAC,KAAK,KAAK,YAAY;IACzB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAwB,EAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEvH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAgC,EAChC,OAAoC,EACpC,UAAmB,EACE,EAAE,CACvB,KAAK;KACF,MAAM,CAAC,CAAC,IAAoB,EAAW,EAAE,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KACzE,OAAO,CAAC,CAAC,IAAoB,EAAuB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Files whose bytes a release inventory accompanies, and where its two reports are written. */
|
|
2
|
+
export interface SbomArguments {
|
|
3
|
+
readonly artifacts: readonly string[];
|
|
4
|
+
readonly output: string;
|
|
5
|
+
}
|
|
6
|
+
/** Parse the deliberately small release-inventory command grammar. */
|
|
7
|
+
export declare const parseSbomArguments: (arguments_: readonly string[]) => SbomArguments | undefined;
|
|
8
|
+
/** Stable structural comparison of lockfile documents, independent of YAML key ordering. */
|
|
9
|
+
export declare const canonicalInventory: (value: unknown) => string;
|
|
10
|
+
/** A workspace manifest, addressed the same way as a pnpm lockfile importer. */
|
|
11
|
+
export interface SbomManifest {
|
|
12
|
+
readonly path: string;
|
|
13
|
+
readonly packageJson: unknown;
|
|
14
|
+
}
|
|
15
|
+
/** Reject a stale install or a manifest-only approximation before invoking the generator. */
|
|
16
|
+
export declare const sbomInputProblems: (manifests: readonly SbomManifest[], lock: unknown, installed: unknown, workspace?: unknown) => readonly string[];
|
|
17
|
+
/** Preserve declared per-workspace usage without guessing transitive usage from source imports. */
|
|
18
|
+
export declare const sbomWithWorkspaceRoles: (bom: unknown, manifests: readonly SbomManifest[]) => unknown;
|
|
19
|
+
/** Additional completeness checks after the generator's pinned CycloneDX schema validation. */
|
|
20
|
+
export declare const sbomProblems: (bom: unknown) => readonly string[];
|
|
21
|
+
//# sourceMappingURL=sbom-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sbom-policy.d.ts","sourceRoot":"","sources":["../src/sbom-policy.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAID,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,GAAI,YAAY,SAAS,MAAM,EAAE,KAAG,aAAa,GAAG,SAqBlF,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,MAWnD,CAAA;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAsDD,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,GAC5B,WAAW,SAAS,YAAY,EAAE,EAClC,MAAM,OAAO,EACb,WAAW,OAAO,EAClB,YAAW,OAAY,KACtB,SAAS,MAAM,EAkBjB,CAAA;AA4BD,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,GAAI,KAAK,OAAO,EAAE,WAAW,SAAS,YAAY,EAAE,KAAG,OAsBzF,CAAA;AAwBD,+FAA+F;AAC/F,eAAO,MAAM,YAAY,GAAI,KAAK,OAAO,KAAG,SAAS,MAAM,EA+B1D,CAAA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// A release inventory is evidence only when its inputs, components and graph are accounted for.
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { asRecord, isArray, isRecord, readKey } from './json-shapes.js';
|
|
4
|
+
const OPTION_PAIR = 2;
|
|
5
|
+
/** Parse the deliberately small release-inventory command grammar. */
|
|
6
|
+
export const parseSbomArguments = (arguments_) => {
|
|
7
|
+
if (arguments_.length % OPTION_PAIR !== 0) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const pairs = Array.from({ length: arguments_.length / OPTION_PAIR }, (_, index) => [arguments_[index * OPTION_PAIR], arguments_[index * OPTION_PAIR + 1]]);
|
|
11
|
+
if (pairs.some(([key = '', value]) => !['--artifact', '--output'].includes(key) || value === undefined || value.length === 0 || value.startsWith('-'))) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const artifacts = pairs.filter(([key]) => key === '--artifact').map(([, value = '']) => value);
|
|
15
|
+
const outputs = pairs.filter(([key]) => key === '--output').map(([, value = '']) => value);
|
|
16
|
+
return artifacts.length === 0 || new Set(artifacts).size !== artifacts.length || outputs.length > 1
|
|
17
|
+
? undefined
|
|
18
|
+
: { artifacts, output: outputs[0] ?? 'dist/sbom' };
|
|
19
|
+
};
|
|
20
|
+
/** Stable structural comparison of lockfile documents, independent of YAML key ordering. */
|
|
21
|
+
export const canonicalInventory = (value) => {
|
|
22
|
+
if (isArray(value)) {
|
|
23
|
+
return `[${value.map((entry) => canonicalInventory(entry)).join(',')}]`;
|
|
24
|
+
}
|
|
25
|
+
if (isRecord(value)) {
|
|
26
|
+
return `{${Object.keys(value)
|
|
27
|
+
.sort((left, right) => left.localeCompare(right, 'en'))
|
|
28
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalInventory(value[key])}`)
|
|
29
|
+
.join(',')}}`;
|
|
30
|
+
}
|
|
31
|
+
return value === undefined ? 'null' : JSON.stringify(value);
|
|
32
|
+
};
|
|
33
|
+
const DEPENDENCY_GROUPS = ['dependencies', 'devDependencies', 'optionalDependencies'];
|
|
34
|
+
const FILE_PROTOCOL = 'file:';
|
|
35
|
+
const isAbsolutePath = (value) => path.posix.isAbsolute(value) || path.win32.isAbsolute(value);
|
|
36
|
+
// pnpm addresses a relative archive override from the workspace root, but writes each importer's
|
|
37
|
+
// specifier relative to that member. Compare their lexical targets without reading the filesystem.
|
|
38
|
+
const matchesOverride = (override, locked, importer) => {
|
|
39
|
+
if (typeof override !== 'string' || !override.startsWith(FILE_PROTOCOL)) {
|
|
40
|
+
return locked === override;
|
|
41
|
+
}
|
|
42
|
+
const target = override.slice(FILE_PROTOCOL.length);
|
|
43
|
+
if (isAbsolutePath(target)) {
|
|
44
|
+
return locked === override;
|
|
45
|
+
}
|
|
46
|
+
if (typeof locked !== 'string' || !locked.startsWith(FILE_PROTOCOL)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const memberTarget = locked.slice(FILE_PROTOCOL.length);
|
|
50
|
+
return (!isAbsolutePath(memberTarget) &&
|
|
51
|
+
path.posix.normalize(path.posix.join(importer, memberTarget)) === path.posix.normalize(target));
|
|
52
|
+
};
|
|
53
|
+
const manifestProblems = (manifest, lock) => {
|
|
54
|
+
const importers = readKey(lock, 'importers');
|
|
55
|
+
const overrides = asRecord(readKey(lock, 'overrides'));
|
|
56
|
+
const importer = readKey(importers, manifest.path);
|
|
57
|
+
if (!isRecord(importer)) {
|
|
58
|
+
return [`pnpm-lock.yaml has no importer for ${manifest.path}; install with the pinned pnpm`];
|
|
59
|
+
}
|
|
60
|
+
return DEPENDENCY_GROUPS.flatMap((group) => {
|
|
61
|
+
const declared = asRecord(readKey(manifest.packageJson, group));
|
|
62
|
+
const lockedGroup = asRecord(readKey(importer, group));
|
|
63
|
+
const names = [...new Set([...Object.keys(declared), ...Object.keys(lockedGroup)])];
|
|
64
|
+
return names.flatMap((name) => {
|
|
65
|
+
const specifier = declared[name];
|
|
66
|
+
const locked = lockedGroup[name];
|
|
67
|
+
const override = overrides[name] ?? overrides[`${name}@${String(specifier)}`];
|
|
68
|
+
const lockedSpecifier = readKey(locked, 'specifier');
|
|
69
|
+
const isMatched = override === undefined
|
|
70
|
+
? lockedSpecifier === specifier
|
|
71
|
+
: matchesOverride(override, lockedSpecifier, manifest.path);
|
|
72
|
+
return isMatched && Object.hasOwn(declared, name)
|
|
73
|
+
? []
|
|
74
|
+
: [`${manifest.path}: ${name} does not match its frozen lockfile specifier; install with the pinned pnpm`];
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
/** Reject a stale install or a manifest-only approximation before invoking the generator. */
|
|
79
|
+
export const sbomInputProblems = (manifests, lock, installed, workspace = {}) => {
|
|
80
|
+
if (!isRecord(lock) || (String(lock['lockfileVersion']) !== '9.0' && String(lock['lockfileVersion']) !== '9')) {
|
|
81
|
+
return ['SBOM generation requires a supported pnpm lockfile version 9'];
|
|
82
|
+
}
|
|
83
|
+
if (!isRecord(installed)) {
|
|
84
|
+
return ['the installed pnpm lock snapshot is missing'];
|
|
85
|
+
}
|
|
86
|
+
const isMatched = ['importers', 'packages', 'snapshots'].every((key) => canonicalInventory(readKey(lock, key)) === canonicalInventory(readKey(installed, key)));
|
|
87
|
+
return [
|
|
88
|
+
...(canonicalInventory(asRecord(readKey(lock, 'overrides'))) ===
|
|
89
|
+
canonicalInventory(asRecord(readKey(workspace, 'overrides')))
|
|
90
|
+
? []
|
|
91
|
+
: ['workspace overrides differ from the frozen lockfile; install with the pinned pnpm']),
|
|
92
|
+
...(isMatched ? [] : ['the installed pnpm lock snapshot differs; run pnpm install --frozen-lockfile']),
|
|
93
|
+
...manifests.flatMap((manifest) => manifestProblems(manifest, lock)),
|
|
94
|
+
];
|
|
95
|
+
};
|
|
96
|
+
const allComponents = (components) => components.flatMap((component) => {
|
|
97
|
+
const nested = readKey(component, 'components');
|
|
98
|
+
return [component, ...(isArray(nested) ? allComponents(nested) : [])];
|
|
99
|
+
});
|
|
100
|
+
const graphProblems = (dependencies, references) => dependencies.flatMap((dependency) => {
|
|
101
|
+
const reference = readKey(dependency, 'ref');
|
|
102
|
+
const children = readKey(dependency, 'dependsOn');
|
|
103
|
+
const isValid = typeof reference === 'string' &&
|
|
104
|
+
references.has(reference) &&
|
|
105
|
+
isArray(children) &&
|
|
106
|
+
children.every((child) => typeof child === 'string' && references.has(child));
|
|
107
|
+
return isValid ? [] : ['the SBOM contains an invalid dependency reference'];
|
|
108
|
+
});
|
|
109
|
+
const missingGraphEntries = (dependencies, references) => {
|
|
110
|
+
const declared = new Set(dependencies.map((entry) => readKey(entry, 'ref')));
|
|
111
|
+
return declared.size === dependencies.length &&
|
|
112
|
+
[...references].every((reference) => declared.has(reference))
|
|
113
|
+
? []
|
|
114
|
+
: ['the SBOM does not explicitly account for every component in its dependency graph'];
|
|
115
|
+
};
|
|
116
|
+
/** Preserve declared per-workspace usage without guessing transitive usage from source imports. */
|
|
117
|
+
export const sbomWithWorkspaceRoles = (bom, manifests) => {
|
|
118
|
+
const metadata = asRecord(readKey(bom, 'metadata'));
|
|
119
|
+
const properties = metadata['properties'];
|
|
120
|
+
const roles = manifests.map((manifest) => ({
|
|
121
|
+
path: manifest.path,
|
|
122
|
+
dependencies: Object.fromEntries(DEPENDENCY_GROUPS.map((group) => [
|
|
123
|
+
group,
|
|
124
|
+
Object.keys(asRecord(readKey(manifest.packageJson, group))),
|
|
125
|
+
])),
|
|
126
|
+
}));
|
|
127
|
+
return {
|
|
128
|
+
...asRecord(bom),
|
|
129
|
+
metadata: {
|
|
130
|
+
...metadata,
|
|
131
|
+
properties: [
|
|
132
|
+
...(isArray(properties) ? properties : []),
|
|
133
|
+
{ name: 'ploaness:direct-workspace-dependency-roles', value: JSON.stringify(roles) },
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
const bomPartsOf = (bom) => {
|
|
139
|
+
const components = readKey(bom, 'components');
|
|
140
|
+
const dependencies = readKey(bom, 'dependencies');
|
|
141
|
+
const root = readKey(readKey(bom, 'metadata'), 'component');
|
|
142
|
+
if (readKey(bom, 'bomFormat') !== 'CycloneDX' ||
|
|
143
|
+
readKey(bom, 'specVersion') !== '1.6' ||
|
|
144
|
+
!isArray(components) ||
|
|
145
|
+
!isArray(dependencies) ||
|
|
146
|
+
!isRecord(root)) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
return { components, dependencies, root };
|
|
150
|
+
};
|
|
151
|
+
/** Additional completeness checks after the generator's pinned CycloneDX schema validation. */
|
|
152
|
+
export const sbomProblems = (bom) => {
|
|
153
|
+
const parts = bomPartsOf(bom);
|
|
154
|
+
if (parts === undefined) {
|
|
155
|
+
return ['the generator returned no complete CycloneDX 1.6 inventory'];
|
|
156
|
+
}
|
|
157
|
+
const { root, components, dependencies } = parts;
|
|
158
|
+
const entries = allComponents([root, ...components]);
|
|
159
|
+
const references = entries.map((entry) => readKey(entry, 'bom-ref'));
|
|
160
|
+
const isValid = entries.every((entry) => ['name', 'version', 'bom-ref', 'purl'].every((key) => {
|
|
161
|
+
const value = readKey(entry, key);
|
|
162
|
+
return typeof value === 'string' && value.length > 0;
|
|
163
|
+
}));
|
|
164
|
+
const references_ = new Set(references.filter((reference) => typeof reference === 'string'));
|
|
165
|
+
const compositions = readKey(bom, 'compositions');
|
|
166
|
+
return [
|
|
167
|
+
...(isValid && references_.size === entries.length
|
|
168
|
+
? []
|
|
169
|
+
: ['the SBOM has missing identities or duplicate component references']),
|
|
170
|
+
...(dependencies.length === 0
|
|
171
|
+
? ['the SBOM contains no dependency graph']
|
|
172
|
+
: graphProblems(dependencies, references_)),
|
|
173
|
+
...missingGraphEntries(dependencies, references_),
|
|
174
|
+
...(isArray(compositions) &&
|
|
175
|
+
compositions.some((entry) => readKey(entry, 'aggregate') !== 'complete')
|
|
176
|
+
? ['the generator reports an incomplete inventory']
|
|
177
|
+
: []),
|
|
178
|
+
];
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=sbom-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sbom-policy.js","sourceRoot":"","sources":["../src/sbom-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** The inventory covers resolved workspace inputs, including tools that never enter a deployed bundle. */
|
|
2
|
+
export declare const SBOM_SCOPE: string;
|
|
3
|
+
/** One release file associated with an inventory, measured from its actual bytes. */
|
|
4
|
+
export interface ReleaseArtifact {
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly sha256: string;
|
|
7
|
+
}
|
|
8
|
+
/** Evidence supplied independently from Git and the release files. */
|
|
9
|
+
export interface ReleaseEvidence {
|
|
10
|
+
readonly sourceCommit: string;
|
|
11
|
+
readonly sbomSha256: string;
|
|
12
|
+
readonly artifacts: readonly ReleaseArtifact[];
|
|
13
|
+
}
|
|
14
|
+
/** Recovery must preserve the original commit and the bytes originally associated with its SBOM. */
|
|
15
|
+
export declare const releaseInventoryProblems: (metadata: unknown, evidence: ReleaseEvidence) => readonly string[];
|
|
16
|
+
//# sourceMappingURL=sbom-release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sbom-release.d.ts","sourceRoot":"","sources":["../src/sbom-release.ts"],"names":[],"mappings":"AAGA,0GAA0G;AAC1G,eAAO,MAAM,UAAU,EAAE,MAAgE,CAAA;AAEzF,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;CAC/C;AA6BD,oGAAoG;AACpG,eAAO,MAAM,wBAAwB,GAAI,UAAU,OAAO,EAAE,UAAU,eAAe,KAAG,SAAS,MAAM,EActG,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { isArray, readKey } from './json-shapes.js';
|
|
2
|
+
import { canonicalInventory } from './sbom-policy.js';
|
|
3
|
+
/** The inventory covers resolved workspace inputs, including tools that never enter a deployed bundle. */
|
|
4
|
+
export const SBOM_SCOPE = 'resolved-workspace-dependencies-including-development';
|
|
5
|
+
const artifactList = (raw) => {
|
|
6
|
+
if (!isArray(raw)) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const items = raw.map((entry) => {
|
|
10
|
+
const path = readKey(entry, 'path');
|
|
11
|
+
const sha256 = readKey(entry, 'sha256');
|
|
12
|
+
return typeof path === 'string' && typeof sha256 === 'string' ? { path, sha256 } : undefined;
|
|
13
|
+
});
|
|
14
|
+
return items.every((entry) => entry !== undefined)
|
|
15
|
+
? items
|
|
16
|
+
: undefined;
|
|
17
|
+
};
|
|
18
|
+
const orderedArtifacts = (artifacts) => canonicalInventory(artifacts.toSorted((left, right) => left.path.localeCompare(right.path, 'en')));
|
|
19
|
+
const matchesArtifacts = (artifacts, expected) => artifacts !== undefined && artifacts.length > 0 && orderedArtifacts(artifacts) === orderedArtifacts(expected);
|
|
20
|
+
/** Recovery must preserve the original commit and the bytes originally associated with its SBOM. */
|
|
21
|
+
export const releaseInventoryProblems = (metadata, evidence) => {
|
|
22
|
+
const artifacts = artifactList(readKey(metadata, 'artifacts'));
|
|
23
|
+
return [
|
|
24
|
+
...(readKey(metadata, 'schemaVersion') === 1 && readKey(metadata, 'scope') === SBOM_SCOPE
|
|
25
|
+
? []
|
|
26
|
+
: ['release inventory metadata has an unsupported schema or scope']),
|
|
27
|
+
...(readKey(metadata, 'sourceCommit') === evidence.sourceCommit && readKey(metadata, 'sourceDirty') === false
|
|
28
|
+
? []
|
|
29
|
+
: ['release inventory does not describe the original clean release commit']),
|
|
30
|
+
...(readKey(metadata, 'sbomSha256') === evidence.sbomSha256 ? [] : ['release inventory SBOM hash does not match']),
|
|
31
|
+
...(matchesArtifacts(artifacts, evidence.artifacts)
|
|
32
|
+
? []
|
|
33
|
+
: ['release inventory artifact hashes do not match the release files']),
|
|
34
|
+
];
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=sbom-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sbom-release.js","sourceRoot":"","sources":["../src/sbom-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,UAAU,GAAW,uDAAuD,CAAA;AAezF,MAAM,YAAY,GAAG,CAAC,GAAY,EAA0C,EAAE;IAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAA6C,GAAG,CAAC,GAAG,CAAC,CAAC,KAAc,EAA+B,EAAE;QAC9G,MAAM,IAAI,GAAY,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAY,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAkC,EAA4B,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;QACvG,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,SAAqC,EAAU,EAAE,CACzE,kBAAkB,CAChB,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAqB,EAAE,KAAsB,EAAU,EAAE,CAC3E,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAC1C,CACF,CAAA;AAEH,MAAM,gBAAgB,GAAG,CACvB,SAAiD,EACjD,QAAoC,EAC3B,EAAE,CACX,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AAE/G,oGAAoG;AACpG,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAiB,EAAE,QAAyB,EAAqB,EAAE;IAC1G,MAAM,SAAS,GAA2C,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;IACtG,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,UAAU;YACvF,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,KAAK;YAC3G,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC;QAC9E,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAClH,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;YACjD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC;KAC1E,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-headers.d.ts","sourceRoot":"","sources":["../src/security-headers.ts"],"names":[],"mappings":"AAiBA,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,GAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,SAAS,MAAM,EAUjG,CAAA"}
|