@pipeline-builder/api-core 4.1.15 → 4.1.17
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/lib/services/remote-audit-client.d.ts +1 -1
- package/lib/services/remote-audit-client.js +13 -2
- package/lib/types/ecosystem-notifications.d.ts +20 -8
- package/lib/types/ecosystem-notifications.js +22 -4
- package/lib/types/error-codes.d.ts +11 -0
- package/lib/types/error-codes.js +17 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +2 -1
- package/lib/types/plugin-scan.d.ts +69 -0
- package/lib/types/plugin-scan.js +90 -0
- package/lib/types/wire-vocabulary.d.ts +7 -0
- package/lib/types/wire-vocabulary.js +9 -1
- package/lib/utils/plugin-compliance.d.ts +7 -1
- package/lib/utils/plugin-compliance.js +5 -2
- package/lib/validation/plugin-catalog-metadata.d.ts +3 -3
- package/lib/validation/plugin-schemas.d.ts +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Plugin image scan gates (docs/plugin-publishing.md "Scan gates"): the shared
|
|
5
|
+
* vocabulary of the build-time gate, the nightly rescan's flag, and the
|
|
6
|
+
* resolution warning / block — used by the plugin service (which stores and
|
|
7
|
+
* enforces them), the resolver in pipeline-data (which skips or warns), and the
|
|
8
|
+
* dashboard (which shows them).
|
|
9
|
+
*
|
|
10
|
+
* A finding is FIXABLE when grype reports a fixed version for it
|
|
11
|
+
* (`vulnerability.fix.state == "fixed"` with at least one version): the gates
|
|
12
|
+
* count fixable Critical findings only, because an unfixable one can't be
|
|
13
|
+
* acted on by rebuilding or upgrading.
|
|
14
|
+
*/
|
|
15
|
+
import { envBool, envInt } from '../utils/env.js';
|
|
16
|
+
/** Findings a flag / gate message carries. */
|
|
17
|
+
export const SCAN_FLAG_TOP_FINDINGS = 10;
|
|
18
|
+
/** Lookup / resolution warning code for a flagged version. */
|
|
19
|
+
export const VULN_FLAGGED_WARNING = 'VULN_FLAGGED';
|
|
20
|
+
/**
|
|
21
|
+
* `PLUGIN_VULN_MAX_CRITICAL`: the platform floor — a version with MORE fixable
|
|
22
|
+
* Critical findings than this fails its build (`PLUGIN_VULN_GATE`) and is
|
|
23
|
+
* flagged by the rescan. Default `0`; `-1` disables the floor (and the flag).
|
|
24
|
+
*/
|
|
25
|
+
export function pluginVulnMaxCritical() {
|
|
26
|
+
return envInt('PLUGIN_VULN_MAX_CRITICAL', 0, { min: -1 });
|
|
27
|
+
}
|
|
28
|
+
/** Whether `fixableCritical` breaks the platform floor (never, when disabled). */
|
|
29
|
+
export function exceedsVulnFloor(fixableCritical, max = pluginVulnMaxCritical()) {
|
|
30
|
+
return max >= 0 && (fixableCritical ?? 0) > max;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `PLUGIN_BLOCK_ON_NEW_CRITICAL` (default false): resolution SKIPS flagged
|
|
34
|
+
* versions for ranges and the default (falling back to the newest unflagged
|
|
35
|
+
* one), and an exact pin to a flagged version is refused 409
|
|
36
|
+
* `PLUGIN_VERSION_VULN_BLOCKED`. Off: flagged versions resolve with a
|
|
37
|
+
* `VULN_FLAGGED` warning.
|
|
38
|
+
*/
|
|
39
|
+
export function blockOnNewCritical() {
|
|
40
|
+
return envBool('PLUGIN_BLOCK_ON_NEW_CRITICAL', false);
|
|
41
|
+
}
|
|
42
|
+
/** `pkg@1.2.3 → 1.2.4` / `pkg@1.2.3 (no fix)`. */
|
|
43
|
+
export function describeFix(f) {
|
|
44
|
+
const at = `${f.packageName}${f.packageVersion ? `@${f.packageVersion}` : ''}`;
|
|
45
|
+
return f.fixedIn.length > 0 ? `${at} → ${f.fixedIn.join(', ')}` : `${at} (no fix)`;
|
|
46
|
+
}
|
|
47
|
+
/** `CVE-1 (openssl@3.0.1 → 3.0.2); CVE-2 (…)` for the first `limit` findings. */
|
|
48
|
+
export function describeFindings(findings, limit = 5) {
|
|
49
|
+
const shown = findings.slice(0, limit).map((f) => `${f.id} (${describeFix(f)})`).join('; ');
|
|
50
|
+
const more = findings.length > limit ? `; +${findings.length - limit} more` : '';
|
|
51
|
+
return `${shown}${more}`;
|
|
52
|
+
}
|
|
53
|
+
/** The warning text for a flagged version: `x@v has N fixable Critical findings — rebuild or upgrade`. */
|
|
54
|
+
export function vulnFlaggedMessage(ref, flag) {
|
|
55
|
+
return `${ref} has ${flag.critical} fixable Critical finding${flag.critical === 1 ? '' : 's'} — rebuild or upgrade`;
|
|
56
|
+
}
|
|
57
|
+
/** Build the `VULN_FLAGGED` warning for `plugin@version`. */
|
|
58
|
+
export function vulnFlaggedWarning(plugin, version, flag) {
|
|
59
|
+
return {
|
|
60
|
+
code: VULN_FLAGGED_WARNING,
|
|
61
|
+
plugin,
|
|
62
|
+
version,
|
|
63
|
+
critical: flag.critical,
|
|
64
|
+
high: flag.high,
|
|
65
|
+
message: vulnFlaggedMessage(`${plugin}@${version}`, flag),
|
|
66
|
+
findings: flag.findings.slice(0, SCAN_FLAG_TOP_FINDINGS),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** The 409 message for an exact pin to a flagged version while blocking. */
|
|
70
|
+
export function vulnBlockedMessage(plugin, version, flag) {
|
|
71
|
+
const fixes = flag.findings.length > 0 ? ` Fix: ${describeFindings(flag.findings)}.` : '';
|
|
72
|
+
return `${plugin}@${version} is blocked: a rescan found ${flag.critical} fixable Critical finding${flag.critical === 1 ? '' : 's'} `
|
|
73
|
+
+ `(PLUGIN_BLOCK_ON_NEW_CRITICAL). Rebuild it on patched packages or move to a newer version.${fixes}`;
|
|
74
|
+
}
|
|
75
|
+
/** Narrow an unknown `scan_flag` jsonb value. */
|
|
76
|
+
export function asScanFlag(value) {
|
|
77
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
78
|
+
return null;
|
|
79
|
+
const v = value;
|
|
80
|
+
if (typeof v.critical !== 'number' || typeof v.high !== 'number')
|
|
81
|
+
return null;
|
|
82
|
+
const findings = Array.isArray(v.findings) ? v.findings.filter((f) => f && typeof f.id === 'string') : [];
|
|
83
|
+
return {
|
|
84
|
+
critical: v.critical,
|
|
85
|
+
high: v.high,
|
|
86
|
+
maxCritical: typeof v.maxCritical === 'number' ? v.maxCritical : 0,
|
|
87
|
+
findings: findings.map((f) => ({ ...f, fixedIn: Array.isArray(f.fixedIn) ? f.fixedIn : [] })),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGx1Z2luLXNjYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7R0FXRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUE4QmxELDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFekMsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGNBQWMsQ0FBQztBQUVuRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxPQUFPLE1BQU0sQ0FBQywwQkFBMEIsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLGVBQTBDLEVBQUUsR0FBRyxHQUFXLHFCQUFxQixFQUFFO0lBQ2hILE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxPQUFPLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELGtEQUFrRDtBQUNsRCxNQUFNLFVBQVUsV0FBVyxDQUFDLENBQXdFO0lBQ2xHLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDL0UsT0FBTyxD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Q0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLFFBQWdDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkksT0FBTztRQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDWixXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFBsdWdpbiBpbWFnZSBzY2FuIGdhdGVzIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kIFwiU2NhbiBnYXRlc1wiKTogdGhlIHNoYXJlZFxuICogdm9jYWJ1bGFyeSBvZiB0aGUgYnVpbGQtdGltZSBnYXRlLCB0aGUgbmlnaHRseSByZXNjYW4ncyBmbGFnLCBhbmQgdGhlXG4gKiByZXNvbHV0aW9uIHdhcm5pbmcgLyBibG9jayDigJQgdXNlZCBieSB0aGUgcGx1Z2luIHNlcnZpY2UgKHdoaWNoIHN0b3JlcyBhbmRcbiAqIGVuZm9yY2VzIHRoZW0pLCB0aGUgcmVzb2x2ZXIgaW4gcGlwZWxpbmUtZGF0YSAod2hpY2ggc2tpcHMgb3Igd2FybnMpLCBhbmQgdGhlXG4gKiBkYXNoYm9hcmQgKHdoaWNoIHNob3dzIHRoZW0pLlxuICpcbiAqIEEgZmluZGluZyBpcyBGSVhBQkxFIHdoZW4gZ3J5cGUgcmVwb3J0cyBhIGZpeGVkIHZlcnNpb24gZm9yIGl0XG4gKiAoYHZ1bG5lcmFiaWxpdHkuZml4LnN0YXRlID09IFwiZml4ZWRcImAgd2l0aCBhdCBsZWFzdCBvbmUgdmVyc2lvbik6IHRoZSBnYXRlc1xuICogY291bnQgZml4YWJsZSBDcml0aWNhbCBmaW5kaW5ncyBvbmx5LCBiZWNhdXNlIGFuIHVuZml4YWJsZSBvbmUgY2FuJ3QgYmVcbiAqIGFjdGVkIG9uIGJ5IHJlYnVpbGRpbmcgb3IgdXBncmFkaW5nLlxuICovXG5cbmltcG9ydCB7IGVudkJvb2wsIGVudkludCB9IGZyb20gJy4uL3V0aWxzL2Vudi5qcyc7XG5cbi8qKiBPbmUgQ3JpdGljYWwvSGlnaCBmaW5kaW5nIGFzIHRoZSBmbGFnIGFuZCB0aGUgZ2F0ZSBtZXNzYWdlcyBjYXJyeSBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU2NhbkZpbmRpbmcge1xuICAvKiogVGhlIHZ1bG5lcmFiaWxpdHkgaWQgKENWRS3igKYsIEdIU0Et4oCmKS4gKi9cbiAgaWQ6IHN0cmluZztcbiAgc2V2ZXJpdHk6ICdjcml0aWNhbCcgfCAnaGlnaCc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBWZXJzaW9ucyB0aGF0IGZpeCBpdDsgZW1wdHkgPSBubyBmaXggYXZhaWxhYmxlIChub3QgZml4YWJsZSkuICovXG4gIGZpeGVkSW46IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIGBzY2FuX2ZsYWdgIG9uIGEgdmVyc2lvbiB0aGUgbmlnaHRseSByZXNjYW4gZmxhZ2dlZDogaXRzIGZpeGFibGVcbiAqIENyaXRpY2FsL0hpZ2ggY291bnRzIGF0IHRoYXQgcmVzY2FuIGFuZCB0aGUgdG9wIGZpeGFibGUgZmluZGluZ3MuIFNldCB3aGlsZVxuICogZml4YWJsZSBDcml0aWNhbHMgZXhjZWVkIGBQTFVHSU5fVlVMTl9NQVhfQ1JJVElDQUxgLCBjbGVhcmVkIHdoZW4gYSByZXNjYW5cbiAqIGZpbmRzIHRoZW0gcmVzb2x2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU2NhbkZsYWcge1xuICAvKiogRml4YWJsZSBDcml0aWNhbCBmaW5kaW5ncy4gKi9cbiAgY3JpdGljYWw6IG51bWJlcjtcbiAgLyoqIEZpeGFibGUgSGlnaCBmaW5kaW5ncy4gKi9cbiAgaGlnaDogbnVtYmVyO1xuICAvKiogVGhlIGZsb29yIGl0IHdhcyBjb21wYXJlZCBhZ2FpbnN0IChgUExVR0lOX1ZVTE5fTUFYX0NSSVRJQ0FMYCkuICovXG4gIG1heENyaXRpY2FsOiBudW1iZXI7XG4gIC8qKiBBdCBtb3N0IHtAbGluayBTQ0FOX0ZMQUdfVE9QX0ZJTkRJTkdTfSBmaXhhYmxlIGZpbmRpbmdzLCBDcml0aWNhbHMgZmlyc3QuICovXG4gIGZpbmRpbmdzOiBQbHVnaW5TY2FuRmluZGluZ1tdO1xufVxuXG4vKiogRmluZGluZ3MgYSBmbGFnIC8gZ2F0ZSBtZXNzYWdlIGNhcnJpZXMuICovXG5leHBvcnQgY29uc3QgU0NBTl9GTEFHX1RPUF9GSU5ESU5HUyA9IDEwO1xuXG4vKiogTG9va3VwIC8gcmVzb2x1dGlvbiB3YXJuaW5nIGNvZGUgZm9yIGEgZmxhZ2dlZCB2ZXJzaW9uLiAqL1xuZXhwb3J0IGNvbnN0IFZVTE5fRkxBR0dFRF9XQVJOSU5HID0gJ1ZVTE5fRkxBR0dFRCc7XG5cbi8qKlxuICogYFBMVUdJTl9WVUxOX01BWF9DUklUSUNBTGA6IHRoZSBwbGF0Zm9ybSBmbG9vciDigJQgYSB2ZXJzaW9uIHdpdGggTU9SRSBmaXhhYmxlXG4gKiBDcml0aWNhbCBmaW5kaW5ncyB0aGFuIHRoaXMgZmFpbHMgaXRzIGJ1aWxkIChgUExVR0lOX1ZVTE5fR0FURWApIGFuZCBpc1xuICogZmxhZ2dlZCBieSB0aGUgcmVzY2FuLiBEZWZhdWx0IGAwYDsgYC0xYCBkaXNhYmxlcyB0aGUgZmxvb3IgKGFuZCB0aGUgZmxhZykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5WdWxuTWF4Q3JpdGljYWwoKTogbnVtYmVyIHtcbiAgcmV0dXJuIGVudkludCgnUExVR0lOX1ZVTE5fTUFYX0NSSVRJQ0FMJywgMCwgeyBtaW46IC0xIH0pO1xufVxuXG4vKiogV2hldGhlciBgZml4YWJsZUNyaXRpY2FsYCBicmVha3MgdGhlIHBsYXRmb3JtIGZsb29yIChuZXZlciwgd2hlbiBkaXNhYmxlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gZXhjZWVkc1Z1bG5GbG9vcihmaXhhYmxlQ3JpdGljYWw6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIG1heDogbnVtYmVyID0gcGx1Z2luVnVsbk1heENyaXRpY2FsKCkpOiBib29sZWFuIHtcbiAgcmV0dXJuIG1heCA+PSAwICYmIChmaXhhYmxlQ3JpdGljYWwgPz8gMCkgPiBtYXg7XG59XG5cbi8qKlxuICogYFBMVUdJTl9CTE9DS19PTl9ORVdfQ1JJVElDQUxgIChkZWZhdWx0IGZhbHNlKTogcmVzb2x1dGlvbiBTS0lQUyBmbGFnZ2VkXG4gKiB2ZXJzaW9ucyBmb3IgcmFuZ2VzIGFuZCB0aGUgZGVmYXVsdCAoZmFsbGluZyBiYWNrIHRvIHRoZSBuZXdlc3QgdW5mbGFnZ2VkXG4gKiBvbmUpLCBhbmQgYW4gZXhhY3QgcGluIHRvIGEgZmxhZ2dlZCB2ZXJzaW9uIGlzIHJlZnVzZWQgNDA5XG4gKiBgUExVR0lOX1ZFUlNJT05fVlVMTl9CTE9DS0VEYC4gT2ZmOiBmbGFnZ2VkIHZlcnNpb25zIHJlc29sdmUgd2l0aCBhXG4gKiBgVlVMTl9GTEFHR0VEYCB3YXJuaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tPbk5ld0NyaXRpY2FsKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZW52Qm9vbCgnUExVR0lOX0JMT0NLX09OX05FV19DUklUSUNBTCcsIGZhbHNlKTtcbn1cblxuLyoqIGBwa2dAMS4yLjMg4oaSIDEuMi40YCAvIGBwa2dAMS4yLjMgKG5vIGZpeClgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRml4KGY6IFBpY2s8UGx1Z2luU2NhbkZpbmRpbmcsICdwYWNrYWdlTmFtZScgfCAncGFja2FnZVZlcnNpb24nIHwgJ2ZpeGVkSW4nPik6IHN0cmluZyB7XG4gIGNvbnN0IGF0ID0gYCR7Zi5wYWNrYWdlTmFtZX0ke2YucGFja2FnZVZlcnNpb24gPyBgQCR7Zi5wYWNrYWdlVmVyc2lvbn1gIDogJyd9YDtcbiAgcmV0dXJuIGYuZml4ZWRJbi5sZW5ndGggPiAwID8gYCR7YXR9IOKGkiAke2YuZml4ZWRJbi5qb2luKCcsICcpfWAgOiBgJHthdH0gKG5vIGZpeClgO1xufVxuXG4vKiogYENWRS0xIChvcGVuc3NsQDMuMC4xIOKGkiAzLjAuMik7IENWRS0yICjigKYpYCBmb3IgdGhlIGZpcnN0IGBsaW1pdGAgZmluZGluZ3MuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVGaW5kaW5ncyhmaW5kaW5nczogcmVhZG9ubHkgUGx1Z2luU2NhbkZpbmRpbmdbXSwgbGltaXQgPSA1KTogc3RyaW5nIHtcbiAgY29uc3Qgc2hvd24gPSBmaW5kaW5ncy5zbGljZSgwLCBsaW1pdCkubWFwKChmKSA9PiBgJHtmLmlkfSAoJHtkZXNjcmliZUZpeChmKX0pYCkuam9pbignOyAnKTtcbiAgY29uc3QgbW9yZSA9IGZpbmRpbmdzLmxlbmd0aCA+IGxpbWl0ID8gYDsgKyR7ZmluZGluZ3MubGVuZ3RoIC0gbGltaXR9IG1vcmVgIDogJyc7XG4gIHJldHVybiBgJHtzaG93bn0ke21vcmV9YDtcbn1cblxuLyoqIFRoZSB3YXJuaW5nIHRleHQgZm9yIGEgZmxhZ2dlZCB2ZXJzaW9uOiBgeEB2IGhhcyBOIGZpeGFibGUgQ3JpdGljYWwgZmluZGluZ3Mg4oCUIHJlYnVpbGQgb3IgdXBncmFkZWAuICovXG5leHBvcnQgZnVuY3Rpb24gdnVsbkZsYWdnZWRNZXNzYWdlKHJlZjogc3RyaW5nLCBmbGFnOiBQaWNrPFBsdWdpblNjYW5GbGFnLCAnY3JpdGljYWwnPik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtyZWZ9IGhhcyAke2ZsYWcuY3JpdGljYWx9IGZpeGFibGUgQ3JpdGljYWwgZmluZGluZyR7ZmxhZy5jcml0aWNhbCA9PT0gMSA/ICcnIDogJ3MnfSDigJQgcmVidWlsZCBvciB1cGdyYWRlYDtcbn1cblxuLyoqIEEgYFZVTE5fRkxBR0dFRGAgbG9va3VwIHdhcm5pbmcgKHRoZSBsb29rdXAgZW52ZWxvcGUncyBgd2FybmluZ3NbXWAgZW50cnkpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWdWxuRmxhZ2dlZFdhcm5pbmcge1xuICBjb2RlOiB0eXBlb2YgVlVMTl9GTEFHR0VEX1dBUk5JTkc7XG4gIHBsdWdpbjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNyaXRpY2FsOiBudW1iZXI7XG4gIGhpZ2g6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICAvKiogVG9wIGZpeGFibGUgZmluZGluZ3Mgd2l0aCB0aGVpciBmaXhlZCB2ZXJzaW9ucy4gKi9cbiAgZmluZGluZ3M6IFBsdWdpblNjYW5GaW5kaW5nW107XG59XG5cbi8qKiBCdWlsZCB0aGUgYFZVTE5fRkxBR0dFRGAgd2FybmluZyBmb3IgYHBsdWdpbkB2ZXJzaW9uYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2dWxuRmxhZ2dlZFdhcm5pbmcocGx1Z2luOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgZmxhZzogUGx1Z2luU2NhbkZsYWcpOiBWdWxuRmxhZ2dlZFdhcm5pbmcge1xuICByZXR1cm4ge1xuICAgIGNvZGU6IFZVTE5fRkxBR0dFRF9XQVJOSU5HLFxuICAgIHBsdWdpbixcbiAgICB2ZXJzaW9uLFxuICAgIGNyaXRpY2FsOiBmbGFnLmNyaXRpY2FsLFxuICAgIGhpZ2g6IGZsYWcuaGlnaCxcbiAgICBtZXNzYWdlOiB2dWxuRmxhZ2dlZE1lc3NhZ2UoYCR7cGx1Z2lufUAke3ZlcnNpb259YCwgZmxhZyksXG4gICAgZmluZGluZ3M6IGZsYWcuZmluZGluZ3Muc2xpY2UoMCwgU0NBTl9GTEFHX1RPUF9GSU5ESU5HUyksXG4gIH07XG59XG5cbi8qKiBUaGUgNDA5IG1lc3NhZ2UgZm9yIGFuIGV4YWN0IHBpbiB0byBhIGZsYWdnZWQgdmVyc2lvbiB3aGlsZSBibG9ja2luZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2dWxuQmxvY2tlZE1lc3NhZ2UocGx1Z2luOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgZmxhZzogUGx1Z2luU2NhbkZsYWcpOiBzdHJpbmcge1xuICBjb25zdCBmaXhlcyA9IGZsYWcuZmluZGluZ3MubGVuZ3RoID4gMCA/IGAgRml4OiAke2Rlc2NyaWJlRmluZGluZ3MoZmxhZy5maW5kaW5ncyl9LmAgOiAnJztcbiAgcmV0dXJuIGAke3BsdWdpbn1AJHt2ZXJzaW9ufSBpcyBibG9ja2VkOiBhIHJlc2NhbiBmb3VuZCAke2ZsYWcuY3JpdGljYWx9IGZpeGFibGUgQ3JpdGljYWwgZmluZGluZyR7ZmxhZy5jcml0aWNhbCA9PT0gMSA/ICcnIDogJ3MnfSBgXG4gICAgKyBgKFBMVUdJTl9CTE9DS19PTl9ORVdfQ1JJVElDQUwpLiBSZWJ1aWxkIGl0IG9uIHBhdGNoZWQgcGFja2FnZXMgb3IgbW92ZSB0byBhIG5ld2VyIHZlcnNpb24uJHtmaXhlc31gO1xufVxuXG4vKiogTmFycm93IGFuIHVua25vd24gYHNjYW5fZmxhZ2AganNvbmIgdmFsdWUuICovXG5leHBvcnQgZnVuY3Rpb24gYXNTY2FuRmxhZyh2YWx1ZTogdW5rbm93bik6IFBsdWdpblNjYW5GbGFnIHwgbnVsbCB7XG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IHYgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKHR5cGVvZiB2LmNyaXRpY2FsICE9PSAnbnVtYmVyJyB8fCB0eXBlb2Ygdi5oaWdoICE9PSAnbnVtYmVyJykgcmV0dXJuIG51bGw7XG4gIGNvbnN0IGZpbmRpbmdzID0gQXJyYXkuaXNBcnJheSh2LmZpbmRpbmdzKSA/ICh2LmZpbmRpbmdzIGFzIFBsdWdpblNjYW5GaW5kaW5nW10pLmZpbHRlcigoZikgPT4gZiAmJiB0eXBlb2YgZi5pZCA9PT0gJ3N0cmluZycpIDogW107XG4gIHJldHVybiB7XG4gICAgY3JpdGljYWw6IHYuY3JpdGljYWwsXG4gICAgaGlnaDogdi5oaWdoLFxuICAgIG1heENyaXRpY2FsOiB0eXBlb2Ygdi5tYXhDcml0aWNhbCA9PT0gJ251bWJlcicgPyB2Lm1heENyaXRpY2FsIDogMCxcbiAgICBmaW5kaW5nczogZmluZGluZ3MubWFwKChmKSA9PiAoeyAuLi5mLCBmaXhlZEluOiBBcnJheS5pc0FycmF5KGYuZml4ZWRJbikgPyBmLmZpeGVkSW4gOiBbXSB9KSksXG4gIH07XG59XG4iXX0=
|
|
@@ -100,3 +100,10 @@ export type AdvisorySource = (typeof ADVISORY_SOURCES)[number];
|
|
|
100
100
|
*/
|
|
101
101
|
export declare const SUBMISSION_STATUSES: readonly ['pending_verification', 'pending_review', 'publishing', 'gate_failed', 'approved', 'rejected', 'expired', 'claimed'];
|
|
102
102
|
export type SubmissionStatus = (typeof SUBMISSION_STATUSES)[number];
|
|
103
|
+
/** Who receives an org's plugin security notices: `writers` = the uploader plus
|
|
104
|
+
* members holding `plugins:write`; `users` = the org's chosen members. */
|
|
105
|
+
export declare const PLUGIN_SECURITY_RECIPIENT_MODES: readonly ['writers', 'users'];
|
|
106
|
+
export type PluginSecurityRecipientMode = (typeof PLUGIN_SECURITY_RECIPIENT_MODES)[number];
|
|
107
|
+
/** How rescan findings (N31) are batched; blocked builds (N30) are always immediate. */
|
|
108
|
+
export declare const PLUGIN_SECURITY_DIGEST_MODES: readonly ['immediate', 'daily', 'weekly'];
|
|
109
|
+
export type PluginSecurityDigestMode = (typeof PLUGIN_SECURITY_DIGEST_MODES)[number];
|
|
@@ -91,4 +91,12 @@ export const ADVISORY_SOURCES = ['publisher', 'moderator', 'cve_rescan', 'review
|
|
|
91
91
|
export const SUBMISSION_STATUSES = [
|
|
92
92
|
'pending_verification', 'pending_review', 'publishing', 'gate_failed', 'approved', 'rejected', 'expired', 'claimed',
|
|
93
93
|
];
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS12b2NhYnVsYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3dpcmUtdm9jYWJ1bGFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7R0FTRztBQUVILGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFHekUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRzVELHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLEtBQUs7SUFDWCxVQUFVLEVBQUUsYUFBYTtJQUN6QixPQUFPO0lBQ1AsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztJQUN4QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVTtJQUNqQyxTQUFTLEVBQUUsU0FBUztJQUNwQixVQUFVLEVBQUUsVUFBVTtDQUNkLENBQUM7QUFHWCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBNEMsQ0FBQztBQUV2SCwwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7QUFHNUQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUd6RCxnRkFBZ0Y7QUFDaEYsV0FBVztBQUNYLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxjQUFjLEVBQUUs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QUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRzVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFVLENBQUM7QUFHbEYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUc1RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBVSxDQUFDO0FBRzVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDM0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENsb3NlZCBzdHJpbmcgdm9jYWJ1bGFyaWVzIHRoYXQgY3Jvc3MgdGhlIHdpcmUgYmV0d2VlbiB0aGUgc2VydmljZXMgYW5kIHRoZVxuICogYnJvd3Nlci4gRWFjaCBpcyBhbiBgYXMgY29uc3RgIGFycmF5ICh0aGUgcnVudGltZSBsaXN0IGEgWm9kIGVudW0sIGEgTW9uZ29vc2VcbiAqIGVudW0gb3IgYSBkcml6emxlIGAkdHlwZWAgYnVpbGRzIGZyb20pIHBsdXMgdGhlIHVuaW9uIHR5cGUgZGVyaXZlZCBmcm9tIGl0LlxuICpcbiAqIERlcGVuZGVuY3ktZnJlZSBvbiBwdXJwb3NlOiB0aGUgZnJvbnRlbmQgaW1wb3J0cyB0aGVzZSB0eXBlcywgc28gYSB2YWx1ZSBhZGRlZFxuICogaGVyZSByZWFjaGVzIHRoZSBVSSdzIGV4aGF1c3RpdmUgbGFiZWwgbWFwcyBhcyBhIGNvbXBpbGUgZXJyb3IgaW5zdGVhZCBvZiBhXG4gKiBzaWxlbnRseSB1bmhhbmRsZWQgc3RyaW5nLiBUaGUgUG9zdGdyZXMgQ0hFQ0sgY29uc3RyYWludHMgaW5cbiAqIGRlcGxveS9zaGFyZWQvcG9zdGdyZXMtaW5pdC5zcWwgbWlycm9yIHRoZSBvbmVzIHN0b3JlZCBpbiBTUUwuXG4gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbXBsaWFuY2UgcnVsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBSVUxFX1NFVkVSSVRJRVMgPSBbJ3dhcm5pbmcnLCAnZXJyb3InLCAnY3JpdGljYWwnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVTZXZlcml0eSA9ICh0eXBlb2YgUlVMRV9TRVZFUklUSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgUlVMRV9UQVJHRVRTID0gWydwbHVnaW4nLCAncGlwZWxpbmUnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVUYXJnZXQgPSAodHlwZW9mIFJVTEVfVEFSR0VUUylbbnVtYmVyXTtcblxuLyoqIEZpZWxkLWV2YWx1YXRpb24gb3BlcmF0b3JzOyB0aGUgZW5naW5lJ3MgaW1wbGVtZW50YXRpb25zIGxpdmUgaW4gYXBpL2NvbXBsaWFuY2UuICovXG5leHBvcnQgY29uc3QgUlVMRV9PUEVSQVRPUlMgPSBbXG4gICdlcScsICduZXEnLFxuICAnY29udGFpbnMnLCAnbm90Q29udGFpbnMnLFxuICAncmVnZXgnLFxuICAnZ3QnLCAnZ3RlJywgJ2x0JywgJ2x0ZScsXG4gICdpbicsICdub3RJbicsXG4gICdleGlzdHMnLCAnbm90RXhpc3RzJywgJ25vdEVtcHR5JyxcbiAgJ2NvdW50R3QnLCAnY291bnRMdCcsXG4gICdsZW5ndGhHdCcsICdsZW5ndGhMdCcsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZU9wZXJhdG9yID0gKHR5cGVvZiBSVUxFX09QRVJBVE9SUylbbnVtYmVyXTtcblxuLyoqIE9wZXJhdG9ycyB0aGF0IHRlc3QgcHJlc2VuY2Ugb25seSBhbmQgdGFrZSBubyBjb21wYXJpc29uIHZhbHVlLiAqL1xuZXhwb3J0IGNvbnN0IFZBTFVFTEVTU19SVUxFX09QRVJBVE9SUyA9IFsnZXhpc3RzJywgJ25vdEV4aXN0cycsICdub3RFbXB0eSddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBSdWxlT3BlcmF0b3JbXTtcblxuLyoqIEhvdyBhIG11bHRpLWNvbmRpdGlvbiBydWxlIGNvbWJpbmVzIGl0cyBjb25kaXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IFJVTEVfQ09ORElUSU9OX01PREVTID0gWydhbGwnLCAnYW55J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlQ29uZGl0aW9uTW9kZSA9ICh0eXBlb2YgUlVMRV9DT05ESVRJT05fTU9ERVMpW251bWJlcl07XG5cbi8qKiBgcHVibGlzaGVkYCBydWxlcyBiZWxvbmcgdG8gdGhlIHN5c3RlbSBvcmcgYW5kIGFwcGx5IGJ5IHN1YnNjcmlwdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBSVUxFX1NDT1BFUyA9IFsnb3JnJywgJ3B1Ymxpc2hlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVNjb3BlID0gKHR5cGVvZiBSVUxFX1NDT1BFUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1lc3NhZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9UWVBFUyA9IFsnYW5ub3VuY2VtZW50JywgJ2NvbnZlcnNhdGlvbiddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSAodHlwZW9mIE1FU1NBR0VfVFlQRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1BSSU9SSVRJRVMgPSBbJ25vcm1hbCcsICdoaWdoJywgJ3VyZ2VudCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTWVzc2FnZVByaW9yaXR5ID0gKHR5cGVvZiBNRVNTQUdFX1BSSU9SSVRJRVMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCaWxsaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgU1VCU0NSSVBUSU9OX1NUQVRVU0VTID0gWydhY3RpdmUnLCAnY2FuY2VsZWQnLCAncGFzdF9kdWUnLCAndHJpYWxpbmcnLCAnaW5jb21wbGV0ZSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uU3RhdHVzID0gKHR5cGVvZiBTVUJTQ1JJUFRJT05fU1RBVFVTRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBCSUxMSU5HX0lOVEVSVkFMUyA9IFsnbW9udGhseScsICdhbm51YWwnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJpbGxpbmdJbnRlcnZhbCA9ICh0eXBlb2YgQklMTElOR19JTlRFUlZBTFMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBJZGVudGl0eVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIE9JREMgcHJvdmlkZXJzIGFuIG9yZyBJZFAgY29uZmlnIGNhbiBuYW1lIChHaXRIdWIgaXMgT0F1dGgtb25seSBhbmQgcmVmdXNlZCBieSB0aGUgT0lEQyBlbmdpbmUpLiAqL1xuZXhwb3J0IGNvbnN0IElEUF9QUk9WSURFUlMgPSBbJ2dlbmVyaWMtb2lkYycsICdjb2duaXRvJywgJ2dvb2dsZScsICdnaXRodWInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIElkcFByb3ZpZGVyID0gKHR5cGVvZiBJRFBfUFJPVklERVJTKVtudW1iZXJdO1xuXG4vKiogVGhlIGZlZGVyYXRpb24gcHJvdG9jb2wgYW4gb3JnIHNpZ25zIGluIG92ZXIg4oCUIG9uZSBwZXIgb3JnLiAqL1xuZXhwb3J0IGNvbnN0IElEUF9QUk9UT0NPTFMgPSBbJ29pZGMnLCAnc2FtbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgSWRwUHJvdG9jb2wgPSAodHlwZW9mIElEUF9QUk9UT0NPTFMpW251bWJlcl07XG5cbi8qKlxuICogV2hpY2ggU0FNTCBhc3NlcnRpb24gYXR0cmlidXRlIGNhcnJpZXMgd2hpY2ggaWRlbnRpdHkgZmllbGQuIEFuIGVtcHR5IG5hbWVcbiAqIG1lYW5zIFwidXNlIHRoZSBjb21tb24gc3BlbGxpbmdzXCIgKHNob3J0IG5hbWVzIHBsdXMgdGhlIEVudHJhL1NoaWJib2xldGggVVJJcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FtbEF0dHJpYnV0ZU1hcHBpbmcge1xuICAvKiogQXR0cmlidXRlIGhvbGRpbmcgdGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzLiAqL1xuICBlbWFpbD86IHN0cmluZztcbiAgLyoqIEF0dHJpYnV0ZSBob2xkaW5nIHRoZSBkaXNwbGF5IG5hbWUuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBBdHRyaWJ1dGUgaG9sZGluZyBncm91cCBtZW1iZXJzaGlwcyAoZHJpdmVzIEpJVCByb2xlIG1hcHBpbmcpLiAqL1xuICBncm91cHM/OiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgY29hcnNlIGdyYW50IGEgcGVybWlzc2lvbiByb2xlIGdpdmVzIGl0cyBtZW1iZXJzLiAqL1xuZXhwb3J0IGNvbnN0IFJPTEVfR1JBTlRTID0gWydzdXBlcmFkbWluJywgJ2FkbWluJywgJ21lbWJlciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUm9sZUdyYW50ID0gKHR5cGVvZiBST0xFX0dSQU5UUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBsdWdpbiBlY29zeXN0ZW0gKGVhY2ggbWlycm9yZWQgYnkgYSBDSEVDSyBpbiBwb3N0Z3Jlcy1pbml0LnNxbClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBQdWJsaXNoZXIgdHJ1c3QgdGllci4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSVNIRVJfVElFUlMgPSBbJ29mZmljaWFsJywgJ3ZlcmlmaWVkJywgJ2NvbW11bml0eScsICd1bnZlcmlmaWVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoZXJUaWVyID0gKHR5cGVvZiBQVUJMSVNIRVJfVElFUlMpW251bWJlcl07XG5cbi8qKiBBIGRpcmVjdG9yeSBsaXN0aW5nJ3MgbGlmZWN5Y2xlIHN0YXRlLiAqL1xuZXhwb3J0IGNvbnN0IExJU1RJTkdfU1RBVEVTID0gWydsaXN0ZWQnLCAndW5tYWludGFpbmVkJywgJ3N1c3BlbmRlZCcsICd0cmFuc2ZlcnJlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTGlzdGluZ1N0YXRlID0gKHR5cGVvZiBMSVNUSU5HX1NUQVRFUylbbnVtYmVyXTtcblxuLyoqIFdoYXQgYSBwdWJsaXNoIHJlcXVlc3QgYXNrcyB0aGUgc3lzdGVtIG9yZyB0byBkby4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSVNIX1JFUVVFU1RfS0lORFMgPSBbXG4gICduZXdfbGlzdGluZycsICduZXdfdmVyc2lvbicsICdsaXN0aW5nX3VwZGF0ZScsICd5YW5rJywgJ3VucGF1c2UnLFxuICAndHJhbnNmZXInLCAnY2xhaW0nLCAncHJvZmlsZV9jaGFuZ2UnLCAnYWR2aXNvcnknLCAndmVyaWZ5JywgJ21vZGVyYXRpb24nLCAnc3VibWlzc2lvbicsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUHVibGlzaFJlcXVlc3RLaW5kID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfS0lORFMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBQVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMgPSBbJ3BlbmRpbmcnLCAncGVuZGluZ19zZWNvbmRfYXBwcm92YWwnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnd2l0aGRyYXduJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoUmVxdWVzdFN0YXR1cyA9ICh0eXBlb2YgUFVCTElTSF9SRVFVRVNUX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogVGhlIHN0YXR1c2VzIGEgcmVxdWVzdCBpcyBzdGlsbCBcIm9wZW5cIiBpbiAoZHJpdmVzIHRoZSBvbmUtb3Blbi1yZXF1ZXN0IGluZGV4KS4gKi9cbmV4cG9ydCBjb25zdCBPUEVOX1BVQkxJU0hfUkVRVUVTVF9TVEFUVVNFUyA9IFsncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBQdWJsaXNoUmVxdWVzdFN0YXR1c1tdO1xuXG4vKiogYHNlY3VyaXR5YCByZXF1ZXN0cyBqdW1wIHRoZSBtb2RlcmF0aW9uIHF1ZXVlLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9MQU5FUyA9IFsnc3RhbmRhcmQnLCAnc2VjdXJpdHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hSZXF1ZXN0TGFuZSA9ICh0eXBlb2YgUFVCTElTSF9SRVFVRVNUX0xBTkVTKVtudW1iZXJdO1xuXG4vKiogSW5zdGFsbCB2ZXJzaW9uIHBvbGljeTogZXhhY3QsIGB+YCwgYF5gLCBvciBhbnl0aGluZyBub24tYnJlYWtpbmcuICovXG5leHBvcnQgY29uc3QgSU5TVEFMTF9WRVJTSU9OX1BPTElDSUVTID0gWydwaW5uZWQnLCAncGF0Y2gnLCAnbWlub3InLCAnbGF0ZXN0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJbnN0YWxsVmVyc2lvblBvbGljeSA9ICh0eXBlb2YgSU5TVEFMTF9WRVJTSU9OX1BPTElDSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgSU5TVEFMTF9TVEFUVVNFUyA9IFsnYWN0aXZlJywgJ3BlbmRpbmdfYXBwcm92YWwnLCAnZGVuaWVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJbnN0YWxsU3RhdHVzID0gKHR5cGVvZiBJTlNUQUxMX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogVGhlIGFkdmlzb3J5IHNldmVyaXR5IGF0IHdoaWNoIGEgY29uc3VtcHRpb24gcG9saWN5IGJsb2NrcyBpbnN0YWxscy4gKi9cbmV4cG9ydCBjb25zdCBCTE9DS19PTl9BRFZJU09SWV9MRVZFTFMgPSBbJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbmV2ZXInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJsb2NrT25BZHZpc29yeSA9ICh0eXBlb2YgQkxPQ0tfT05fQURWSVNPUllfTEVWRUxTKVtudW1iZXJdO1xuXG4vKiogV2hldGhlciBvZmZpY2lhbCBwbHVnaW5zIG5lZWQgYW4gZXhwbGljaXQgaW5zdGFsbCBiZWZvcmUgYSBwaXBlbGluZSBjYW4gdXNlIHRoZW0uICovXG5leHBvcnQgY29uc3QgT0ZGSUNJQUxfSU5TVEFMTFNfTU9ERVMgPSBbJ2ltcGxpY2l0JywgJ2V4cGxpY2l0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBPZmZpY2lhbEluc3RhbGxzID0gKHR5cGVvZiBPRkZJQ0lBTF9JTlNUQUxMU19NT0RFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFJFVklFV19TVEFUVVNFUyA9IFsncHVibGlzaGVkJywgJ2hlbGQnLCAncmVtb3ZlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3U3RhdHVzID0gKHR5cGVvZiBSRVZJRVdfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBXaHkgYSBoZWxkIHJldmlldyBpcyBoZWxkLiAqL1xuZXhwb3J0IGNvbnN0IFJFVklFV19IT0xEX1JFQVNPTlMgPSBbJ3JlcG9ydHMnLCAnYnVyc3QnLCAnZmlsdGVyJywgJ3NlY3VyaXR5JywgJ21vZGVyYXRvciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3SG9sZFJlYXNvbiA9ICh0eXBlb2YgUkVWSUVXX0hPTERfUkVBU09OUylbbnVtYmVyXTtcblxuLyoqIEEgcmV2aWV3IHJlcG9ydCdzIGNhdGVnb3J5OyBgc2VjdXJpdHlgIHJvdXRlcyBwcml2YXRlbHkgdG8gdGhlIGFkdmlzb3J5IHBhdGguICovXG5leHBvcnQgY29uc3QgUkVWSUVXX1JFUE9SVF9DQVRFR09SSUVTID0gWydzcGFtJywgJ2FidXNlJywgJ29mZl90b3BpYycsICdzZWN1cml0eSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3UmVwb3J0Q2F0ZWdvcnkgPSAodHlwZW9mIFJFVklFV19SRVBPUlRfQ0FURUdPUklFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEFEVklTT1JZX1NFVkVSSVRJRVMgPSBbJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbWVkaXVtJywgJ2xvdyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTZXZlcml0eSA9ICh0eXBlb2YgQURWSVNPUllfU0VWRVJJVElFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEFEVklTT1JZX1NUQVRFUyA9IFsnZHJhZnQnLCAncHVibGlzaGVkJywgJ3dpdGhkcmF3biddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTdGF0ZSA9ICh0eXBlb2YgQURWSVNPUllfU1RBVEVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgQURWSVNPUllfU09VUkNFUyA9IFsncHVibGlzaGVyJywgJ21vZGVyYXRvcicsICdjdmVfcmVzY2FuJywgJ3JldmlldyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTb3VyY2UgPSAodHlwZW9mIEFEVklTT1JZX1NPVVJDRVMpW251bWJlcl07XG5cbi8qKlxuICogQW4gYW5vbnltb3VzIHN1Ym1pc3Npb24ncyBsaWZlY3ljbGUuIGBwdWJsaXNoaW5nYCBpcyB0aGUgc2hvcnQgY2xhaW0gYW5cbiAqIGFwcHJvdmFsIHRha2VzIGJlZm9yZSBpdCBjb3BpZXMgdGhlIHF1YXJhbnRpbmVkIGltYWdlIG91dCwgc28gYW4gZXhwaXJ5IGNhblxuICogbmV2ZXIgZGVsZXRlIHRoZSBhcnRpZmFjdHMgb2YgYSBzdWJtaXNzaW9uIHRoYXQgaXMgYmVpbmcgcHVibGlzaGVkLlxuICovXG5leHBvcnQgY29uc3QgU1VCTUlTU0lPTl9TVEFUVVNFUyA9IFtcbiAgJ3BlbmRpbmdfdmVyaWZpY2F0aW9uJywgJ3BlbmRpbmdfcmV2aWV3JywgJ3B1Ymxpc2hpbmcnLCAnZ2F0ZV9mYWlsZWQnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnZXhwaXJlZCcsICdjbGFpbWVkJyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdWJtaXNzaW9uU3RhdHVzID0gKHR5cGVvZiBTVUJNSVNTSU9OX1NUQVRVU0VTKVtudW1iZXJdO1xuIl19
|
|
94
|
+
// -----------------------------------------------------------------------------
|
|
95
|
+
// Plugin security notifications (per org)
|
|
96
|
+
// -----------------------------------------------------------------------------
|
|
97
|
+
/** Who receives an org's plugin security notices: `writers` = the uploader plus
|
|
98
|
+
* members holding `plugins:write`; `users` = the org's chosen members. */
|
|
99
|
+
export const PLUGIN_SECURITY_RECIPIENT_MODES = ['writers', 'users'];
|
|
100
|
+
/** How rescan findings (N31) are batched; blocked builds (N30) are always immediate. */
|
|
101
|
+
export const PLUGIN_SECURITY_DIGEST_MODES = ['immediate', 'daily', 'weekly'];
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS12b2NhYnVsYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3dpcmUtdm9jYWJ1bGFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7R0FTRztBQUVILGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFHekUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRzVELHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLEtBQUs7SUFDWCxVQUFVLEVBQUUsYUFBYTtJQUN6QixPQUFPO0lBQ1AsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztJQUN4QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVTtJQUNqQyxTQUFTLEVBQUUsU0FBUztJQUNwQixVQUFVLEVBQUUsVUFBVTtDQUNkLENBQUM7QUFHWCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBNEMsQ0FBQztBQUV2SCwwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7QUFHNUQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUd6RCxnRkFBZ0Y7QUFDaEYsV0FBVztBQUNYLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxjQUFjLEVBQUUs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QUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRzVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFVLENBQUM7QUFHbEYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUc1RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBVSxDQUFDO0FBRzVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDM0csQ0FBQztBQUdYLGdGQUFnRjtBQUNoRiwwQ0FBMEM7QUFDMUMsZ0ZBQWdGO0FBRWhGOzJFQUMyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQVUsQ0FBQztBQUc3RSx3RkFBd0Y7QUFDeEYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQ2xvc2VkIHN0cmluZyB2b2NhYnVsYXJpZXMgdGhhdCBjcm9zcyB0aGUgd2lyZSBiZXR3ZWVuIHRoZSBzZXJ2aWNlcyBhbmQgdGhlXG4gKiBicm93c2VyLiBFYWNoIGlzIGFuIGBhcyBjb25zdGAgYXJyYXkgKHRoZSBydW50aW1lIGxpc3QgYSBab2QgZW51bSwgYSBNb25nb29zZVxuICogZW51bSBvciBhIGRyaXp6bGUgYCR0eXBlYCBidWlsZHMgZnJvbSkgcGx1cyB0aGUgdW5pb24gdHlwZSBkZXJpdmVkIGZyb20gaXQuXG4gKlxuICogRGVwZW5kZW5jeS1mcmVlIG9uIHB1cnBvc2U6IHRoZSBmcm9udGVuZCBpbXBvcnRzIHRoZXNlIHR5cGVzLCBzbyBhIHZhbHVlIGFkZGVkXG4gKiBoZXJlIHJlYWNoZXMgdGhlIFVJJ3MgZXhoYXVzdGl2ZSBsYWJlbCBtYXBzIGFzIGEgY29tcGlsZSBlcnJvciBpbnN0ZWFkIG9mIGFcbiAqIHNpbGVudGx5IHVuaGFuZGxlZCBzdHJpbmcuIFRoZSBQb3N0Z3JlcyBDSEVDSyBjb25zdHJhaW50cyBpblxuICogZGVwbG95L3NoYXJlZC9wb3N0Z3Jlcy1pbml0LnNxbCBtaXJyb3IgdGhlIG9uZXMgc3RvcmVkIGluIFNRTC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29tcGxpYW5jZSBydWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IFJVTEVfU0VWRVJJVElFUyA9IFsnd2FybmluZycsICdlcnJvcicsICdjcml0aWNhbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVNldmVyaXR5ID0gKHR5cGVvZiBSVUxFX1NFVkVSSVRJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBSVUxFX1RBUkdFVFMgPSBbJ3BsdWdpbicsICdwaXBlbGluZSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVRhcmdldCA9ICh0eXBlb2YgUlVMRV9UQVJHRVRTKVtudW1iZXJdO1xuXG4vKiogRmllbGQtZXZhbHVhdGlvbiBvcGVyYXRvcnM7IHRoZSBlbmdpbmUncyBpbXBsZW1lbnRhdGlvbnMgbGl2ZSBpbiBhcGkvY29tcGxpYW5jZS4gKi9cbmV4cG9ydCBjb25zdCBSVUxFX09QRVJBVE9SUyA9IFtcbiAgJ2VxJywgJ25lcScsXG4gICdjb250YWlucycsICdub3RDb250YWlucycsXG4gICdyZWdleCcsXG4gICdndCcsICdndGUnLCAnbHQnLCAnbHRlJyxcbiAgJ2luJywgJ25vdEluJyxcbiAgJ2V4aXN0cycsICdub3RFeGlzdHMnLCAnbm90RW1wdHknLFxuICAnY291bnRHdCcsICdjb3VudEx0JyxcbiAgJ2xlbmd0aEd0JywgJ2xlbmd0aEx0Jyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlT3BlcmF0b3IgPSAodHlwZW9mIFJVTEVfT1BFUkFUT1JTKVtudW1iZXJdO1xuXG4vKiogT3BlcmF0b3JzIHRoYXQgdGVzdCBwcmVzZW5jZSBvbmx5IGFuZCB0YWtlIG5vIGNvbXBhcmlzb24gdmFsdWUuICovXG5leHBvcnQgY29uc3QgVkFMVUVMRVNTX1JVTEVfT1BFUkFUT1JTID0gWydleGlzdHMnLCAnbm90RXhpc3RzJywgJ25vdEVtcHR5J10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFJ1bGVPcGVyYXRvcltdO1xuXG4vKiogSG93IGEgbXVsdGktY29uZGl0aW9uIHJ1bGUgY29tYmluZXMgaXRzIGNvbmRpdGlvbnMuICovXG5leHBvcnQgY29uc3QgUlVMRV9DT05ESVRJT05fTU9ERVMgPSBbJ2FsbCcsICdhbnknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVDb25kaXRpb25Nb2RlID0gKHR5cGVvZiBSVUxFX0NPTkRJVElPTl9NT0RFUylbbnVtYmVyXTtcblxuLyoqIGBwdWJsaXNoZWRgIHJ1bGVzIGJlbG9uZyB0byB0aGUgc3lzdGVtIG9yZyBhbmQgYXBwbHkgYnkgc3Vic2NyaXB0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IFJVTEVfU0NPUEVTID0gWydvcmcnLCAncHVibGlzaGVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlU2NvcGUgPSAodHlwZW9mIFJVTEVfU0NPUEVTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWVzc2FnZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1RZUEVTID0gWydhbm5vdW5jZW1lbnQnLCAnY29udmVyc2F0aW9uJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9ICh0eXBlb2YgTUVTU0FHRV9UWVBFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfUFJJT1JJVElFUyA9IFsnbm9ybWFsJywgJ2hpZ2gnLCAndXJnZW50J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlUHJpb3JpdHkgPSAodHlwZW9mIE1FU1NBR0VfUFJJT1JJVElFUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJpbGxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBTVUJTQ1JJUFRJT05fU1RBVFVTRVMgPSBbJ2FjdGl2ZScsICdjYW5jZWxlZCcsICdwYXN0X2R1ZScsICd0cmlhbGluZycsICdpbmNvbXBsZXRlJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25TdGF0dXMgPSAodHlwZW9mIFNVQlNDUklQVElPTl9TVEFUVVNFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEJJTExJTkdfSU5URVJWQUxTID0gWydtb250aGx5JywgJ2FubnVhbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQmlsbGluZ0ludGVydmFsID0gKHR5cGVvZiBCSUxMSU5HX0lOVEVSVkFMUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIElkZW50aXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogT0lEQyBwcm92aWRlcnMgYW4gb3JnIElkUCBjb25maWcgY2FuIG5hbWUgKEdpdEh1YiBpcyBPQXV0aC1vbmx5IGFuZCByZWZ1c2VkIGJ5IHRoZSBPSURDIGVuZ2luZSkuICovXG5leHBvcnQgY29uc3QgSURQX1BST1ZJREVSUyA9IFsnZ2VuZXJpYy1vaWRjJywgJ2NvZ25pdG8nLCAnZ29vZ2xlJywgJ2dpdGh1YiddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgSWRwUHJvdmlkZXIgPSAodHlwZW9mIElEUF9QUk9WSURFUlMpW251bWJlcl07XG5cbi8qKiBUaGUgZmVkZXJhdGlvbiBwcm90b2NvbCBhbiBvcmcgc2lnbnMgaW4gb3ZlciDigJQgb25lIHBlciBvcmcuICovXG5leHBvcnQgY29uc3QgSURQX1BST1RPQ09MUyA9IFsnb2lkYycsICdzYW1sJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJZHBQcm90b2NvbCA9ICh0eXBlb2YgSURQX1BST1RPQ09MUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaGljaCBTQU1MIGFzc2VydGlvbiBhdHRyaWJ1dGUgY2FycmllcyB3aGljaCBpZGVudGl0eSBmaWVsZC4gQW4gZW1wdHkgbmFtZVxuICogbWVhbnMgXCJ1c2UgdGhlIGNvbW1vbiBzcGVsbGluZ3NcIiAoc2hvcnQgbmFtZXMgcGx1cyB0aGUgRW50cmEvU2hpYmJvbGV0aCBVUklzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1sQXR0cmlidXRlTWFwcGluZyB7XG4gIC8qKiBBdHRyaWJ1dGUgaG9sZGluZyB0aGUgdXNlcidzIGVtYWlsIGFkZHJlc3MuICovXG4gIGVtYWlsPzogc3RyaW5nO1xuICAvKiogQXR0cmlidXRlIGhvbGRpbmcgdGhlIGRpc3BsYXkgbmFtZS4gKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEF0dHJpYnV0ZSBob2xkaW5nIGdyb3VwIG1lbWJlcnNoaXBzIChkcml2ZXMgSklUIHJvbGUgbWFwcGluZykuICovXG4gIGdyb3Vwcz86IHN0cmluZztcbn1cblxuLyoqIFRoZSBjb2Fyc2UgZ3JhbnQgYSBwZXJtaXNzaW9uIHJvbGUgZ2l2ZXMgaXRzIG1lbWJlcnMuICovXG5leHBvcnQgY29uc3QgUk9MRV9HUkFOVFMgPSBbJ3N1cGVyYWRtaW4nLCAnYWRtaW4nLCAnbWVtYmVyJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSb2xlR3JhbnQgPSAodHlwZW9mIFJPTEVfR1JBTlRTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGx1Z2luIGVjb3N5c3RlbSAoZWFjaCBtaXJyb3JlZCBieSBhIENIRUNLIGluIHBvc3RncmVzLWluaXQuc3FsKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFB1Ymxpc2hlciB0cnVzdCB0aWVyLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hFUl9USUVSUyA9IFsnb2ZmaWNpYWwnLCAndmVyaWZpZWQnLCAnY29tbXVuaXR5JywgJ3VudmVyaWZpZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hlclRpZXIgPSAodHlwZW9mIFBVQkxJU0hFUl9USUVSUylbbnVtYmVyXTtcblxuLyoqIEEgZGlyZWN0b3J5IGxpc3RpbmcncyBsaWZlY3ljbGUgc3RhdGUuICovXG5leHBvcnQgY29uc3QgTElTVElOR19TVEFURVMgPSBbJ2xpc3RlZCcsICd1bm1haW50YWluZWQnLCAnc3VzcGVuZGVkJywgJ3RyYW5zZmVycmVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBMaXN0aW5nU3RhdGUgPSAodHlwZW9mIExJU1RJTkdfU1RBVEVTKVtudW1iZXJdO1xuXG4vKiogV2hhdCBhIHB1Ymxpc2ggcmVxdWVzdCBhc2tzIHRoZSBzeXN0ZW0gb3JnIHRvIGRvLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9LSU5EUyA9IFtcbiAgJ25ld19saXN0aW5nJywgJ25ld192ZXJzaW9uJywgJ2xpc3RpbmdfdXBkYXRlJywgJ3lhbmsnLCAndW5wYXVzZScsXG4gICd0cmFuc2ZlcicsICdjbGFpbScsICdwcm9maWxlX2NoYW5nZScsICdhZHZpc29yeScsICd2ZXJpZnknLCAnbW9kZXJhdGlvbicsICdzdWJtaXNzaW9uJyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoUmVxdWVzdEtpbmQgPSAodHlwZW9mIFBVQkxJU0hfUkVRVUVTVF9LSU5EUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9TVEFUVVNFUyA9IFsncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCcsICdhcHByb3ZlZCcsICdyZWplY3RlZCcsICd3aXRoZHJhd24nXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hSZXF1ZXN0U3RhdHVzID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBUaGUgc3RhdHVzZXMgYSByZXF1ZXN0IGlzIHN0aWxsIFwib3BlblwiIGluIChkcml2ZXMgdGhlIG9uZS1vcGVuLXJlcXVlc3QgaW5kZXgpLiAqL1xuZXhwb3J0IGNvbnN0IE9QRU5fUFVCTElTSF9SRVFVRVNUX1NUQVRVU0VTID0gWydwZW5kaW5nJywgJ3BlbmRpbmdfc2Vjb25kX2FwcHJvdmFsJ10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFB1Ymxpc2hSZXF1ZXN0U3RhdHVzW107XG5cbi8qKiBgc2VjdXJpdHlgIHJlcXVlc3RzIGp1bXAgdGhlIG1vZGVyYXRpb24gcXVldWUuICovXG5leHBvcnQgY29uc3QgUFVCTElTSF9SRVFVRVNUX0xBTkVTID0gWydzdGFuZGFyZCcsICdzZWN1cml0eSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUHVibGlzaFJlcXVlc3RMYW5lID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfTEFORVMpW251bWJlcl07XG5cbi8qKiBJbnN0YWxsIHZlcnNpb24gcG9saWN5OiBleGFjdCwgYH5gLCBgXmAsIG9yIGFueXRoaW5nIG5vbi1icmVha2luZy4gKi9cbmV4cG9ydCBjb25zdCBJTlNUQUxMX1ZFUlNJT05fUE9MSUNJRVMgPSBbJ3Bpbm5lZCcsICdwYXRjaCcsICdtaW5vcicsICdsYXRlc3QnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEluc3RhbGxWZXJzaW9uUG9saWN5ID0gKHR5cGVvZiBJTlNUQUxMX1ZFUlNJT05fUE9MSUNJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBJTlNUQUxMX1NUQVRVU0VTID0gWydhY3RpdmUnLCAncGVuZGluZ19hcHByb3ZhbCcsICdkZW5pZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEluc3RhbGxTdGF0dXMgPSAodHlwZW9mIElOU1RBTExfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBUaGUgYWR2aXNvcnkgc2V2ZXJpdHkgYXQgd2hpY2ggYSBjb25zdW1wdGlvbiBwb2xpY3kgYmxvY2tzIGluc3RhbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEJMT0NLX09OX0FEVklTT1JZX0xFVkVMUyA9IFsnY3JpdGljYWwnLCAnaGlnaCcsICduZXZlciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQmxvY2tPbkFkdmlzb3J5ID0gKHR5cGVvZiBCTE9DS19PTl9BRFZJU09SWV9MRVZFTFMpW251bWJlcl07XG5cbi8qKiBXaGV0aGVyIG9mZmljaWFsIHBsdWdpbnMgbmVlZCBhbiBleHBsaWNpdCBpbnN0YWxsIGJlZm9yZSBhIHBpcGVsaW5lIGNhbiB1c2UgdGhlbS4gKi9cbmV4cG9ydCBjb25zdCBPRkZJQ0lBTF9JTlNUQUxMU19NT0RFUyA9IFsnaW1wbGljaXQnLCAnZXhwbGljaXQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIE9mZmljaWFsSW5zdGFsbHMgPSAodHlwZW9mIE9GRklDSUFMX0lOU1RBTExTX01PREVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgUkVWSUVXX1NUQVRVU0VTID0gWydwdWJsaXNoZWQnLCAnaGVsZCcsICdyZW1vdmVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXZpZXdTdGF0dXMgPSAodHlwZW9mIFJFVklFV19TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqIFdoeSBhIGhlbGQgcmV2aWV3IGlzIGhlbGQuICovXG5leHBvcnQgY29uc3QgUkVWSUVXX0hPTERfUkVBU09OUyA9IFsncmVwb3J0cycsICdidXJzdCcsICdmaWx0ZXInLCAnc2VjdXJpdHknLCAnbW9kZXJhdG9yJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXZpZXdIb2xkUmVhc29uID0gKHR5cGVvZiBSRVZJRVdfSE9MRF9SRUFTT05TKVtudW1iZXJdO1xuXG4vKiogQSByZXZpZXcgcmVwb3J0J3MgY2F0ZWdvcnk7IGBzZWN1cml0eWAgcm91dGVzIHByaXZhdGVseSB0byB0aGUgYWR2aXNvcnkgcGF0aC4gKi9cbmV4cG9ydCBjb25zdCBSRVZJRVdfUkVQT1JUX0NBVEVHT1JJRVMgPSBbJ3NwYW0nLCAnYWJ1c2UnLCAnb2ZmX3RvcGljJywgJ3NlY3VyaXR5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXZpZXdSZXBvcnRDYXRlZ29yeSA9ICh0eXBlb2YgUkVWSUVXX1JFUE9SVF9DQVRFR09SSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgQURWSVNPUllfU0VWRVJJVElFUyA9IFsnY3JpdGljYWwnLCAnaGlnaCcsICdtZWRpdW0nLCAnbG93J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBZHZpc29yeVNldmVyaXR5ID0gKHR5cGVvZiBBRFZJU09SWV9TRVZFUklUSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgQURWSVNPUllfU1RBVEVTID0gWydkcmFmdCcsICdwdWJsaXNoZWQnLCAnd2l0aGRyYXduJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBZHZpc29yeVN0YXRlID0gKHR5cGVvZiBBRFZJU09SWV9TVEFURVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBBRFZJU09SWV9TT1VSQ0VTID0gWydwdWJsaXNoZXInLCAnbW9kZXJhdG9yJywgJ2N2ZV9yZXNjYW4nLCAncmV2aWV3J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBZHZpc29yeVNvdXJjZSA9ICh0eXBlb2YgQURWSVNPUllfU09VUkNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBBbiBhbm9ueW1vdXMgc3VibWlzc2lvbidzIGxpZmVjeWNsZS4gYHB1Ymxpc2hpbmdgIGlzIHRoZSBzaG9ydCBjbGFpbSBhblxuICogYXBwcm92YWwgdGFrZXMgYmVmb3JlIGl0IGNvcGllcyB0aGUgcXVhcmFudGluZWQgaW1hZ2Ugb3V0LCBzbyBhbiBleHBpcnkgY2FuXG4gKiBuZXZlciBkZWxldGUgdGhlIGFydGlmYWN0cyBvZiBhIHN1Ym1pc3Npb24gdGhhdCBpcyBiZWluZyBwdWJsaXNoZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBTVUJNSVNTSU9OX1NUQVRVU0VTID0gW1xuICAncGVuZGluZ192ZXJpZmljYXRpb24nLCAncGVuZGluZ19yZXZpZXcnLCAncHVibGlzaGluZycsICdnYXRlX2ZhaWxlZCcsICdhcHByb3ZlZCcsICdyZWplY3RlZCcsICdleHBpcmVkJywgJ2NsYWltZWQnLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFN1Ym1pc3Npb25TdGF0dXMgPSAodHlwZW9mIFNVQk1JU1NJT05fU1RBVFVTRVMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQbHVnaW4gc2VjdXJpdHkgbm90aWZpY2F0aW9ucyAocGVyIG9yZylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBXaG8gcmVjZWl2ZXMgYW4gb3JnJ3MgcGx1Z2luIHNlY3VyaXR5IG5vdGljZXM6IGB3cml0ZXJzYCA9IHRoZSB1cGxvYWRlciBwbHVzXG4gKiAgbWVtYmVycyBob2xkaW5nIGBwbHVnaW5zOndyaXRlYDsgYHVzZXJzYCA9IHRoZSBvcmcncyBjaG9zZW4gbWVtYmVycy4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fU0VDVVJJVFlfUkVDSVBJRU5UX01PREVTID0gWyd3cml0ZXJzJywgJ3VzZXJzJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5TZWN1cml0eVJlY2lwaWVudE1vZGUgPSAodHlwZW9mIFBMVUdJTl9TRUNVUklUWV9SRUNJUElFTlRfTU9ERVMpW251bWJlcl07XG5cbi8qKiBIb3cgcmVzY2FuIGZpbmRpbmdzIChOMzEpIGFyZSBiYXRjaGVkOyBibG9ja2VkIGJ1aWxkcyAoTjMwKSBhcmUgYWx3YXlzIGltbWVkaWF0ZS4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fU0VDVVJJVFlfRElHRVNUX01PREVTID0gWydpbW1lZGlhdGUnLCAnZGFpbHknLCAnd2Vla2x5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5TZWN1cml0eURpZ2VzdE1vZGUgPSAodHlwZW9mIFBMVUdJTl9TRUNVUklUWV9ESUdFU1RfTU9ERVMpW251bWJlcl07XG4iXX0=
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* - `scanned`: a vulnerability scan completed (`scannedAt` is set); the
|
|
14
14
|
* `vuln*` counts are present only then — an unscanned image sends no counts,
|
|
15
15
|
* so a numeric rule like `vulnCritical lt 1` cannot pass on a missing value.
|
|
16
|
+
* `vulnCriticalFixable` / `vulnHighFixable` count only the findings grype
|
|
17
|
+
* reports a fixed version for (what the platform floor gates on).
|
|
16
18
|
* - `runAsRoot`: the image config's effective USER is root (empty, `0`, `root`).
|
|
17
19
|
* - `packages`: package names from the signed SBOM.
|
|
18
20
|
* - `tags`: the plugin's keywords plus `key=value` labels (CIS 2.1 inventory).
|
|
@@ -44,12 +46,14 @@ export interface PluginComplianceAttributes {
|
|
|
44
46
|
vulnHigh?: number;
|
|
45
47
|
vulnMedium?: number;
|
|
46
48
|
vulnLow?: number;
|
|
49
|
+
vulnCriticalFixable?: number;
|
|
50
|
+
vulnHighFixable?: number;
|
|
47
51
|
runAsRoot?: boolean;
|
|
48
52
|
packages?: string[];
|
|
49
53
|
[key: string]: unknown;
|
|
50
54
|
}
|
|
51
55
|
/** Plugin attributes only the build worker can establish (see {@link PluginComplianceAttributes}). */
|
|
52
|
-
export declare const PLUGIN_IMAGE_COMPLIANCE_FIELDS: readonly ['signed', 'scanned', 'vulnCritical', 'vulnHigh', 'vulnMedium', 'vulnLow', 'runAsRoot', 'packages'];
|
|
56
|
+
export declare const PLUGIN_IMAGE_COMPLIANCE_FIELDS: readonly ['signed', 'scanned', 'vulnCritical', 'vulnHigh', 'vulnMedium', 'vulnLow', 'vulnCriticalFixable', 'vulnHighFixable', 'runAsRoot', 'packages'];
|
|
53
57
|
export type PluginImageComplianceField = typeof PLUGIN_IMAGE_COMPLIANCE_FIELDS[number];
|
|
54
58
|
/** The stored plugin-row columns the image facts derive from (any subset). */
|
|
55
59
|
export interface PluginImageRow {
|
|
@@ -61,6 +65,8 @@ export interface PluginImageRow {
|
|
|
61
65
|
vulnHigh?: unknown;
|
|
62
66
|
vulnMedium?: unknown;
|
|
63
67
|
vulnLow?: unknown;
|
|
68
|
+
vulnCriticalFixable?: unknown;
|
|
69
|
+
vulnHighFixable?: unknown;
|
|
64
70
|
runAsRoot?: unknown;
|
|
65
71
|
keywords?: unknown;
|
|
66
72
|
labels?: unknown;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
/** Plugin attributes only the build worker can establish (see {@link PluginComplianceAttributes}). */
|
|
4
4
|
export const PLUGIN_IMAGE_COMPLIANCE_FIELDS = [
|
|
5
|
-
'signed', 'scanned', 'vulnCritical', 'vulnHigh', 'vulnMedium', 'vulnLow',
|
|
5
|
+
'signed', 'scanned', 'vulnCritical', 'vulnHigh', 'vulnMedium', 'vulnLow',
|
|
6
|
+
'vulnCriticalFixable', 'vulnHighFixable', 'runAsRoot', 'packages',
|
|
6
7
|
];
|
|
7
8
|
const SIGNED_DIGEST_RE = /^sha256:[0-9a-f]{64}$/;
|
|
8
9
|
/**
|
|
@@ -65,6 +66,8 @@ export function derivePluginImageCompliance(row, packages) {
|
|
|
65
66
|
attributes.vulnHigh = finiteCount(row.vulnHigh);
|
|
66
67
|
attributes.vulnMedium = finiteCount(row.vulnMedium);
|
|
67
68
|
attributes.vulnLow = finiteCount(row.vulnLow);
|
|
69
|
+
attributes.vulnCriticalFixable = finiteCount(row.vulnCriticalFixable);
|
|
70
|
+
attributes.vulnHighFixable = finiteCount(row.vulnHighFixable);
|
|
68
71
|
}
|
|
69
72
|
if (typeof row.runAsRoot === 'boolean')
|
|
70
73
|
attributes.runAsRoot = row.runAsRoot;
|
|
@@ -75,4 +78,4 @@ export function derivePluginImageCompliance(row, packages) {
|
|
|
75
78
|
delete attributes[k];
|
|
76
79
|
return { attributes, deferredFields: packages === undefined ? ['packages'] : [] };
|
|
77
80
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNvbXBsaWFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcGx1Z2luLWNvbXBsaWFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXNEdEMsc0dBQXNHO0FBQ3RHLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVO0NBQ3pGLENBQUM7QUFrQlgsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBcUQ7SUFDdEYsT0FBTyxHQUFHLENBQUMsU0FBUyxLQUFLLGVBQWUsSUFBSSxHQUFHLENBQUMsVUFBVSxLQUFLLG9CQUFvQixDQUFDO0FBQ3RGLENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWlCLEVBQUUsTUFBZ0I7SUFDdEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM1QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVE7WUFBRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFpQyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssU0FBUztnQkFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUcsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFVLEVBQXNCLEVBQUUsQ0FDckQsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxHQUFtQixFQUNuQixRQUEwQjtJQUUxQixNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztJQUN0RSxNQUFNLFVBQVUsR0FBK0I7UUFDN0MsSUFBSTtRQUNKLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3JGLE9BQU87S0FDUixDQUFDO0lBQ0YsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLFVBQVUsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsVUFBVSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUztRQUFFLFVBQVUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUM3RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQUUsVUFBVSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDNUQsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogUGx1Z2luIGNvbXBsaWFuY2UgYXR0cmlidXRlczogd2hhdCB0aGUgcGx1Z2luIHNlcnZpY2UgdGVsbHMgY29tcGxpYW5jZSBhYm91dFxuICogYW4gdXBsb2FkZWQgcGx1Z2luIGFuZCBpdHMgcHVzaGVkIGltYWdlLCBkZXJpdmVkIGZyb20gdGhlIHN0b3JlZCBwbHVnaW4gcm93LlxuICovXG5cbi8qKlxuICogVGhlIGF0dHJpYnV0ZXMgdGhlIHBsdWdpbiBzZXJ2aWNlIHNlbmRzIHRvIGAvY29tcGxpYW5jZS92YWxpZGF0ZS9wbHVnaW5gLlxuICpcbiAqIFRoZSBzcGVjL2NvbmZpZyBmaWVsZHMgZGVzY3JpYmUgdGhlIHBsdWdpbiBhcyB1cGxvYWRlZC4gVGhlIGltYWdlIGZpZWxkc1xuICogZGVzY3JpYmUgd2hhdCB0aGUgcGxhdGZvcm0gaXRzZWxmIGVzdGFibGlzaGVkIGFib3V0IHRoZSBwdXNoZWQgaW1hZ2Ug4oCUIHRoZVxuICogZmFjdHMgdGhlIGN1cmF0ZWQgU09DMi9QQ0kvQ0lTIHBsdWdpbiBydWxlcyBldmFsdWF0ZTpcbiAqXG4gKiAtIGBzaWduZWRgOiB0aGUgaW1hZ2UgZGlnZXN0IGNhcnJpZXMgdGhlIHBsYXRmb3JtJ3MgY29zaWduIHNpZ25hdHVyZS5cbiAqIC0gYHNjYW5uZWRgOiBhIHZ1bG5lcmFiaWxpdHkgc2NhbiBjb21wbGV0ZWQgKGBzY2FubmVkQXRgIGlzIHNldCk7IHRoZVxuICogICBgdnVsbipgIGNvdW50cyBhcmUgcHJlc2VudCBvbmx5IHRoZW4g4oCUIGFuIHVuc2Nhbm5lZCBpbWFnZSBzZW5kcyBubyBjb3VudHMsXG4gKiAgIHNvIGEgbnVtZXJpYyBydWxlIGxpa2UgYHZ1bG5Dcml0aWNhbCBsdCAxYCBjYW5ub3QgcGFzcyBvbiBhIG1pc3NpbmcgdmFsdWUuXG4gKiAtIGBydW5Bc1Jvb3RgOiB0aGUgaW1hZ2UgY29uZmlnJ3MgZWZmZWN0aXZlIFVTRVIgaXMgcm9vdCAoZW1wdHksIGAwYCwgYHJvb3RgKS5cbiAqIC0gYHBhY2thZ2VzYDogcGFja2FnZSBuYW1lcyBmcm9tIHRoZSBzaWduZWQgU0JPTS5cbiAqIC0gYHRhZ3NgOiB0aGUgcGx1Z2luJ3Mga2V5d29yZHMgcGx1cyBga2V5PXZhbHVlYCBsYWJlbHMgKENJUyAyLjEgaW52ZW50b3J5KS5cbiAqXG4gKiBJbWFnZSBmaWVsZHMgYXJlIHVua25vd24gdW50aWwgdGhlIGJ1aWxkIHdvcmtlciBoYXMgcHVzaGVkLCBzaWduZWQgYW5kXG4gKiBzY2FubmVkIHRoZSBpbWFnZTsgdGhlIHVwbG9hZC10aW1lIGNoZWNrIGxpc3RzIHRoZW0gaW4gYGRlZmVycmVkRmllbGRzYFxuICogYW5kIHRoZSB3b3JrZXIgcmUtdmFsaWRhdGVzIG9uY2UgdGhleSBhcmUgcmVhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5Db21wbGlhbmNlQXR0cmlidXRlcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHBsdWdpblR5cGU/OiBzdHJpbmc7XG4gIGNvbXB1dGVUeXBlPzogc3RyaW5nO1xuICB0aW1lb3V0PzogbnVtYmVyIHwgbnVsbDtcbiAgZmFpbHVyZUJlaGF2aW9yPzogc3RyaW5nO1xuICBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBidWlsZEFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBpbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcbiAgY29tbWFuZHM/OiBzdHJpbmdbXTtcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgc2VjcmV0cz86IHVua25vd25bXTtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAga2V5d29yZHM/OiBzdHJpbmdbXTtcbiAgYnVpbGRUeXBlPzogc3RyaW5nO1xuICB0YWdzPzogc3RyaW5nW107XG4gIHNpZ25lZD86IGJvb2xlYW47XG4gIHNjYW5uZWQ/OiBib29sZWFuO1xuICB2dWxuQ3JpdGljYWw/OiBudW1iZXI7XG4gIHZ1bG5IaWdoPzogbnVtYmVyO1xuICB2dWxuTWVkaXVtPzogbnVtYmVyO1xuICB2dWxuTG93PzogbnVtYmVyO1xuICBydW5Bc1Jvb3Q/OiBib29sZWFuO1xuICBwYWNrYWdlcz86IHN0cmluZ1tdO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKiogUGx1Z2luIGF0dHJpYnV0ZXMgb25seSB0aGUgYnVpbGQgd29ya2VyIGNhbiBlc3RhYmxpc2ggKHNlZSB7QGxpbmsgUGx1Z2luQ29tcGxpYW5jZUF0dHJpYnV0ZXN9KS4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fSU1BR0VfQ09NUExJQU5DRV9GSUVMRFMgPSBbXG4gICdzaWduZWQnLCAnc2Nhbm5lZCcsICd2dWxuQ3JpdGljYWwnLCAndnVsbkhpZ2gnLCAndnVsbk1lZGl1bScsICd2dWxuTG93JywgJ3J1bkFzUm9vdCcsICdwYWNrYWdlcycsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luSW1hZ2VDb21wbGlhbmNlRmllbGQgPSB0eXBlb2YgUExVR0lOX0lNQUdFX0NPTVBMSUFOQ0VfRklFTERTW251bWJlcl07XG5cbi8qKiBUaGUgc3RvcmVkIHBsdWdpbi1yb3cgY29sdW1ucyB0aGUgaW1hZ2UgZmFjdHMgZGVyaXZlIGZyb20gKGFueSBzdWJzZXQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5JbWFnZVJvdyB7XG4gIGJ1aWxkVHlwZT86IHVua25vd247XG4gIHBsdWdpblR5cGU/OiB1bmtub3duO1xuICBpbWFnZURpZ2VzdD86IHVua25vd247XG4gIHNjYW5uZWRBdD86IHVua25vd247XG4gIHZ1bG5Dcml0aWNhbD86IHVua25vd247XG4gIHZ1bG5IaWdoPzogdW5rbm93bjtcbiAgdnVsbk1lZGl1bT86IHVua25vd247XG4gIHZ1bG5Mb3c/OiB1bmtub3duO1xuICBydW5Bc1Jvb3Q/OiB1bmtub3duO1xuICBrZXl3b3Jkcz86IHVua25vd247XG4gIGxhYmVscz86IHVua25vd247XG59XG5cbmNvbnN0IFNJR05FRF9ESUdFU1RfUkUgPSAvXnNoYTI1NjpbMC05YS1mXXs2NH0kLztcblxuLyoqXG4gKiBXaGV0aGVyIGEgcGx1Z2luIHJ1bnMgb24gaXRzIG93biBpbWFnZTogYG1ldGFkYXRhX29ubHlgIGJ1aWxkcyBub25lIGFuZCBhXG4gKiBgTWFudWFsQXBwcm92YWxTdGVwYCBuZXZlciBydW5zIG9uZS4gU2FtZSBydWxlIGFzIHRoZSBwbHVnaW4gd29ya2VyJ3Mgc2tpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpblJ1bnNPd25JbWFnZShyb3c6IFBpY2s8UGx1Z2luSW1hZ2VSb3csICdidWlsZFR5cGUnIHwgJ3BsdWdpblR5cGUnPik6IGJvb2xlYW4ge1xuICByZXR1cm4gcm93LmJ1aWxkVHlwZSAhPT0gJ21ldGFkYXRhX29ubHknICYmIHJvdy5wbHVnaW5UeXBlICE9PSAnTWFudWFsQXBwcm92YWxTdGVwJztcbn1cblxuLyoqIENJUyAyLjEgaW52ZW50b3J5IHRhZ3M6IHRoZSBwbHVnaW4ncyBrZXl3b3JkcyBwbHVzIGl0cyBsYWJlbHMgYXMgYGtleT12YWx1ZWAuICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luQ29tcGxpYW5jZVRhZ3Moa2V5d29yZHM6IHVua25vd24sIGxhYmVscz86IHVua25vd24pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHRhZ3MgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoa2V5d29yZHMpKSB7XG4gICAgZm9yIChjb25zdCBrIG9mIGtleXdvcmRzKSBpZiAodHlwZW9mIGsgPT09ICdzdHJpbmcnICYmIGsudHJpbSgpKSB0YWdzLmFkZChrLnRyaW0oKSk7XG4gIH1cbiAgaWYgKGxhYmVscyAmJiB0eXBlb2YgbGFiZWxzID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShsYWJlbHMpKSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMobGFiZWxzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHYgPT09ICdib29sZWFuJykgdGFncy5hZGQoYCR7a309JHtTdHJpbmcodil9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbLi4udGFnc107XG59XG5cbmNvbnN0IGZpbml0ZUNvdW50ID0gKHY6IHVua25vd24pOiBudW1iZXIgfCB1bmRlZmluZWQgPT5cbiAgdHlwZW9mIHYgPT09ICdudW1iZXInICYmIE51bWJlci5pc0Zpbml0ZSh2KSA/IHYgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGltYWdlLWRlcml2ZWQgY29tcGxpYW5jZSBhdHRyaWJ1dGVzIG9mIGEgU1RPUkVEIHBsdWdpbiByb3cgKHRoZSBwbHVnaW5cbiAqIHNlcnZpY2UncyB1cGRhdGUgcmUtY2hlY2ssIHRoZSBidWlsZCB3b3JrZXIncyBwb3N0LWJ1aWxkIGNoZWNrLCBhbmQgdGhlXG4gKiBjb21wbGlhbmNlIHNlcnZpY2UncyBzY2FucyBhbmQgZW50aXR5IGV2ZW50cyBhbGwgZGVyaXZlIHRoZW0gaGVyZSwgc28gdGhlXG4gKiBydWxlcyBzZWUgb25lIGRlZmluaXRpb24gb2YgYHNpZ25lZGAvYHNjYW5uZWRgKS5cbiAqXG4gKiAtIGBzaWduZWRgOiB0aGUgcm93IGNhcnJpZXMgYSB3ZWxsLWZvcm1lZCBkaWdlc3QuIFRoZSB3b3JrZXIgc3RvcmVzIGEgZGlnZXN0XG4gKiAgIG9ubHkgYWZ0ZXIgaW1hZ2UtcmVnaXN0cnkgc2lnbmVkIGl0IChhIHNpZ25pbmcgZmFpbHVyZSBmYWlscyB0aGUgYnVpbGQpLCBzb1xuICogICBhIGRpZ2VzdCBvbiB0aGUgcm93IElTIGEgcGxhdGZvcm0gc2lnbmF0dXJlLlxuICogLSBgc2Nhbm5lZGAgKyBgdnVsbipgOiBjb3VudHMgb25seSB3aGVuIGBzY2FubmVkQXRgIGlzIHNldC5cbiAqIC0gYHJ1bkFzUm9vdGA6IG9ubHkgd2hlbiBrbm93bi5cbiAqIC0gYHBhY2thZ2VzYDogbm90IGEgcm93IGNvbHVtbi4gUGFzcyB0aGUgU0JPTSdzIG5hbWVzIHdoZW4geW91IGhhdmUgdGhlbSxcbiAqICAgYG51bGxgIHdoZW4gdGhlIFNCT00gY291bGQgbm90IGJlIHJlYWQgKGF0dHJpYnV0ZSBvbWl0dGVkLCBzbyBhXG4gKiAgIGAkY291bnQocGFja2FnZXMpYCBydWxlIHNlZXMgMCksIG9yIGxlYXZlIGl0IGB1bmRlZmluZWRgIG9uIGEgcGF0aCB0aGF0XG4gKiAgIG5ldmVyIHJlYWRzIFNCT01zIOKAlCBpdCBpcyB0aGVuIHJldHVybmVkIGluIGBkZWZlcnJlZEZpZWxkc2AgKGl0IHdhc1xuICogICBldmFsdWF0ZWQgYnkgdGhlIHBvc3QtYnVpbGQgY2hlY2sgYW5kIGNhbm5vdCBjaGFuZ2Ugd2l0aG91dCBhIHJlYnVpbGQpLlxuICpcbiAqIEEgcGx1Z2luIHRoYXQgcnVucyBubyBpbWFnZSBvZiBpdHMgb3duIGlzIGhvbmVzdGx5IHVuc2lnbmVkIGFuZCB1bnNjYW5uZWRcbiAqIHdpdGggbm8gcGFja2FnZXM7IG5vdGhpbmcgaXMgZGVmZXJyZWQgZm9yIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlUGx1Z2luSW1hZ2VDb21wbGlhbmNlKFxuICByb3c6IFBsdWdpbkltYWdlUm93LFxuICBwYWNrYWdlcz86IHN0cmluZ1tdIHwgbnVsbCxcbik6IHsgYXR0cmlidXRlczogUGx1Z2luQ29tcGxpYW5jZUF0dHJpYnV0ZXM7IGRlZmVycmVkRmllbGRzOiBQbHVnaW5JbWFnZUNvbXBsaWFuY2VGaWVsZFtdIH0ge1xuICBjb25zdCB0YWdzID0gcGx1Z2luQ29tcGxpYW5jZVRhZ3Mocm93LmtleXdvcmRzLCByb3cubGFiZWxzKTtcbiAgaWYgKCFwbHVnaW5SdW5zT3duSW1hZ2Uocm93KSkge1xuICAgIHJldHVybiB7IGF0dHJpYnV0ZXM6IHsgdGFncywgc2lnbmVkOiBmYWxzZSwgc2Nhbm5lZDogZmFsc2UsIHBhY2thZ2VzOiBbXSB9LCBkZWZlcnJlZEZpZWxkczogW10gfTtcbiAgfVxuICBjb25zdCBzY2FubmVkID0gcm93LnNjYW5uZWRBdCAhPT0gbnVsbCAmJiByb3cuc2Nhbm5lZEF0ICE9PSB1bmRlZmluZWQ7XG4gIGNvbnN0IGF0dHJpYnV0ZXM6IFBsdWdpbkNvbXBsaWFuY2VBdHRyaWJ1dGVzID0ge1xuICAgIHRhZ3MsXG4gICAgc2lnbmVkOiB0eXBlb2Ygcm93LmltYWdlRGlnZXN0ID09PSAnc3RyaW5nJyAmJiBTSUdORURfRElHRVNUX1JFLnRlc3Qocm93LmltYWdlRGlnZXN0KSxcbiAgICBzY2FubmVkLFxuICB9O1xuICBpZiAoc2Nhbm5lZCkge1xuICAgIGF0dHJpYnV0ZXMudnVsbkNyaXRpY2FsID0gZmluaXRlQ291bnQocm93LnZ1bG5Dcml0aWNhbCk7XG4gICAgYXR0cmlidXRlcy52dWxuSGlnaCA9IGZpbml0ZUNvdW50KHJvdy52dWxuSGlnaCk7XG4gICAgYXR0cmlidXRlcy52dWxuTWVkaXVtID0gZmluaXRlQ291bnQocm93LnZ1bG5NZWRpdW0pO1xuICAgIGF0dHJpYnV0ZXMudnVsbkxvdyA9IGZpbml0ZUNvdW50KHJvdy52dWxuTG93KTtcbiAgfVxuICBpZiAodHlwZW9mIHJvdy5ydW5Bc1Jvb3QgPT09ICdib29sZWFuJykgYXR0cmlidXRlcy5ydW5Bc1Jvb3QgPSByb3cucnVuQXNSb290O1xuICBpZiAoQXJyYXkuaXNBcnJheShwYWNrYWdlcykpIGF0dHJpYnV0ZXMucGFja2FnZXMgPSBwYWNrYWdlcztcbiAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKSBpZiAoYXR0cmlidXRlc1trXSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgYXR0cmlidXRlc1trXTtcbiAgcmV0dXJuIHsgYXR0cmlidXRlcywgZGVmZXJyZWRGaWVsZHM6IHBhY2thZ2VzID09PSB1bmRlZmluZWQgPyBbJ3BhY2thZ2VzJ10gOiBbXSB9O1xufVxuIl19
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNvbXBsaWFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcGx1Z2luLWNvbXBsaWFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQTBEdEMsc0dBQXNHO0FBQ3RHLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUztJQUN4RSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVTtDQUN6RCxDQUFDO0FBb0JYLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQXFEO0lBQ3RGLE9BQU8sR0FBRyxDQUFDLFNBQVMsS0FBSyxlQUFlLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxvQkFBb0IsQ0FBQztBQUN0RixDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFpQixFQUFFLE1BQWdCO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLENBQUMsSUFBSSxRQUFRO1lBQUUsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkUsS0FBSyxNQUFNLENBQUMs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RUFBRSxFQUFFLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFBsdWdpbiBjb21wbGlhbmNlIGF0dHJpYnV0ZXM6IHdoYXQgdGhlIHBsdWdpbiBzZXJ2aWNlIHRlbGxzIGNvbXBsaWFuY2UgYWJvdXRcbiAqIGFuIHVwbG9hZGVkIHBsdWdpbiBhbmQgaXRzIHB1c2hlZCBpbWFnZSwgZGVyaXZlZCBmcm9tIHRoZSBzdG9yZWQgcGx1Z2luIHJvdy5cbiAqL1xuXG4vKipcbiAqIFRoZSBhdHRyaWJ1dGVzIHRoZSBwbHVnaW4gc2VydmljZSBzZW5kcyB0byBgL2NvbXBsaWFuY2UvdmFsaWRhdGUvcGx1Z2luYC5cbiAqXG4gKiBUaGUgc3BlYy9jb25maWcgZmllbGRzIGRlc2NyaWJlIHRoZSBwbHVnaW4gYXMgdXBsb2FkZWQuIFRoZSBpbWFnZSBmaWVsZHNcbiAqIGRlc2NyaWJlIHdoYXQgdGhlIHBsYXRmb3JtIGl0c2VsZiBlc3RhYmxpc2hlZCBhYm91dCB0aGUgcHVzaGVkIGltYWdlIOKAlCB0aGVcbiAqIGZhY3RzIHRoZSBjdXJhdGVkIFNPQzIvUENJL0NJUyBwbHVnaW4gcnVsZXMgZXZhbHVhdGU6XG4gKlxuICogLSBgc2lnbmVkYDogdGhlIGltYWdlIGRpZ2VzdCBjYXJyaWVzIHRoZSBwbGF0Zm9ybSdzIGNvc2lnbiBzaWduYXR1cmUuXG4gKiAtIGBzY2FubmVkYDogYSB2dWxuZXJhYmlsaXR5IHNjYW4gY29tcGxldGVkIChgc2Nhbm5lZEF0YCBpcyBzZXQpOyB0aGVcbiAqICAgYHZ1bG4qYCBjb3VudHMgYXJlIHByZXNlbnQgb25seSB0aGVuIOKAlCBhbiB1bnNjYW5uZWQgaW1hZ2Ugc2VuZHMgbm8gY291bnRzLFxuICogICBzbyBhIG51bWVyaWMgcnVsZSBsaWtlIGB2dWxuQ3JpdGljYWwgbHQgMWAgY2Fubm90IHBhc3Mgb24gYSBtaXNzaW5nIHZhbHVlLlxuICogICBgdnVsbkNyaXRpY2FsRml4YWJsZWAgLyBgdnVsbkhpZ2hGaXhhYmxlYCBjb3VudCBvbmx5IHRoZSBmaW5kaW5ncyBncnlwZVxuICogICByZXBvcnRzIGEgZml4ZWQgdmVyc2lvbiBmb3IgKHdoYXQgdGhlIHBsYXRmb3JtIGZsb29yIGdhdGVzIG9uKS5cbiAqIC0gYHJ1bkFzUm9vdGA6IHRoZSBpbWFnZSBjb25maWcncyBlZmZlY3RpdmUgVVNFUiBpcyByb290IChlbXB0eSwgYDBgLCBgcm9vdGApLlxuICogLSBgcGFja2FnZXNgOiBwYWNrYWdlIG5hbWVzIGZyb20gdGhlIHNpZ25lZCBTQk9NLlxuICogLSBgdGFnc2A6IHRoZSBwbHVnaW4ncyBrZXl3b3JkcyBwbHVzIGBrZXk9dmFsdWVgIGxhYmVscyAoQ0lTIDIuMSBpbnZlbnRvcnkpLlxuICpcbiAqIEltYWdlIGZpZWxkcyBhcmUgdW5rbm93biB1bnRpbCB0aGUgYnVpbGQgd29ya2VyIGhhcyBwdXNoZWQsIHNpZ25lZCBhbmRcbiAqIHNjYW5uZWQgdGhlIGltYWdlOyB0aGUgdXBsb2FkLXRpbWUgY2hlY2sgbGlzdHMgdGhlbSBpbiBgZGVmZXJyZWRGaWVsZHNgXG4gKiBhbmQgdGhlIHdvcmtlciByZS12YWxpZGF0ZXMgb25jZSB0aGV5IGFyZSByZWFsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkNvbXBsaWFuY2VBdHRyaWJ1dGVzIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgcGx1Z2luVHlwZT86IHN0cmluZztcbiAgY29tcHV0ZVR5cGU/OiBzdHJpbmc7XG4gIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICBmYWlsdXJlQmVoYXZpb3I/OiBzdHJpbmc7XG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGluc3RhbGxDb21tYW5kcz86IHN0cmluZ1tdO1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuICB2aXNpYmlsaXR5Pzogc3RyaW5nO1xuICBzZWNyZXRzPzogdW5rbm93bltdO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuICBidWlsZFR5cGU/OiBzdHJpbmc7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbiAgc2lnbmVkPzogYm9vbGVhbjtcbiAgc2Nhbm5lZD86IGJvb2xlYW47XG4gIHZ1bG5Dcml0aWNhbD86IG51bWJlcjtcbiAgdnVsbkhpZ2g/OiBudW1iZXI7XG4gIHZ1bG5NZWRpdW0/OiBudW1iZXI7XG4gIHZ1bG5Mb3c/OiBudW1iZXI7XG4gIHZ1bG5Dcml0aWNhbEZpeGFibGU/OiBudW1iZXI7XG4gIHZ1bG5IaWdoRml4YWJsZT86IG51bWJlcjtcbiAgcnVuQXNSb290PzogYm9vbGVhbjtcbiAgcGFja2FnZXM/OiBzdHJpbmdbXTtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLyoqIFBsdWdpbiBhdHRyaWJ1dGVzIG9ubHkgdGhlIGJ1aWxkIHdvcmtlciBjYW4gZXN0YWJsaXNoIChzZWUge0BsaW5rIFBsdWdpbkNvbXBsaWFuY2VBdHRyaWJ1dGVzfSkuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0lNQUdFX0NPTVBMSUFOQ0VfRklFTERTID0gW1xuICAnc2lnbmVkJywgJ3NjYW5uZWQnLCAndnVsbkNyaXRpY2FsJywgJ3Z1bG5IaWdoJywgJ3Z1bG5NZWRpdW0nLCAndnVsbkxvdycsXG4gICd2dWxuQ3JpdGljYWxGaXhhYmxlJywgJ3Z1bG5IaWdoRml4YWJsZScsICdydW5Bc1Jvb3QnLCAncGFja2FnZXMnLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkltYWdlQ29tcGxpYW5jZUZpZWxkID0gdHlwZW9mIFBMVUdJTl9JTUFHRV9DT01QTElBTkNFX0ZJRUxEU1tudW1iZXJdO1xuXG4vKiogVGhlIHN0b3JlZCBwbHVnaW4tcm93IGNvbHVtbnMgdGhlIGltYWdlIGZhY3RzIGRlcml2ZSBmcm9tIChhbnkgc3Vic2V0KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luSW1hZ2VSb3cge1xuICBidWlsZFR5cGU/OiB1bmtub3duO1xuICBwbHVnaW5UeXBlPzogdW5rbm93bjtcbiAgaW1hZ2VEaWdlc3Q/OiB1bmtub3duO1xuICBzY2FubmVkQXQ/OiB1bmtub3duO1xuICB2dWxuQ3JpdGljYWw/OiB1bmtub3duO1xuICB2dWxuSGlnaD86IHVua25vd247XG4gIHZ1bG5NZWRpdW0/OiB1bmtub3duO1xuICB2dWxuTG93PzogdW5rbm93bjtcbiAgdnVsbkNyaXRpY2FsRml4YWJsZT86IHVua25vd247XG4gIHZ1bG5IaWdoRml4YWJsZT86IHVua25vd247XG4gIHJ1bkFzUm9vdD86IHVua25vd247XG4gIGtleXdvcmRzPzogdW5rbm93bjtcbiAgbGFiZWxzPzogdW5rbm93bjtcbn1cblxuY29uc3QgU0lHTkVEX0RJR0VTVF9SRSA9IC9ec2hhMjU2OlswLTlhLWZdezY0fSQvO1xuXG4vKipcbiAqIFdoZXRoZXIgYSBwbHVnaW4gcnVucyBvbiBpdHMgb3duIGltYWdlOiBgbWV0YWRhdGFfb25seWAgYnVpbGRzIG5vbmUgYW5kIGFcbiAqIGBNYW51YWxBcHByb3ZhbFN0ZXBgIG5ldmVyIHJ1bnMgb25lLiBTYW1lIHJ1bGUgYXMgdGhlIHBsdWdpbiB3b3JrZXIncyBza2lwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luUnVuc093bkltYWdlKHJvdzogUGljazxQbHVnaW5JbWFnZVJvdywgJ2J1aWxkVHlwZScgfCAncGx1Z2luVHlwZSc+KTogYm9vbGVhbiB7XG4gIHJldHVybiByb3cuYnVpbGRUeXBlICE9PSAnbWV0YWRhdGFfb25seScgJiYgcm93LnBsdWdpblR5cGUgIT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xufVxuXG4vKiogQ0lTIDIuMSBpbnZlbnRvcnkgdGFnczogdGhlIHBsdWdpbidzIGtleXdvcmRzIHBsdXMgaXRzIGxhYmVscyBhcyBga2V5PXZhbHVlYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5Db21wbGlhbmNlVGFncyhrZXl3b3JkczogdW5rbm93biwgbGFiZWxzPzogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBpZiAoQXJyYXkuaXNBcnJheShrZXl3b3JkcykpIHtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5d29yZHMpIGlmICh0eXBlb2YgayA9PT0gJ3N0cmluZycgJiYgay50cmltKCkpIHRhZ3MuYWRkKGsudHJpbSgpKTtcbiAgfVxuICBpZiAobGFiZWxzICYmIHR5cGVvZiBsYWJlbHMgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGxhYmVscykpIHtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhsYWJlbHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB0YWdzLmFkZChgJHtrfT0ke1N0cmluZyh2KX1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFsuLi50YWdzXTtcbn1cblxuY29uc3QgZmluaXRlQ291bnQgPSAodjogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCA9PlxuICB0eXBlb2YgdiA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHYpID8gdiA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgaW1hZ2UtZGVyaXZlZCBjb21wbGlhbmNlIGF0dHJpYnV0ZXMgb2YgYSBTVE9SRUQgcGx1Z2luIHJvdyAodGhlIHBsdWdpblxuICogc2VydmljZSdzIHVwZGF0ZSByZS1jaGVjaywgdGhlIGJ1aWxkIHdvcmtlcidzIHBvc3QtYnVpbGQgY2hlY2ssIGFuZCB0aGVcbiAqIGNvbXBsaWFuY2Ugc2VydmljZSdzIHNjYW5zIGFuZCBlbnRpdHkgZXZlbnRzIGFsbCBkZXJpdmUgdGhlbSBoZXJlLCBzbyB0aGVcbiAqIHJ1bGVzIHNlZSBvbmUgZGVmaW5pdGlvbiBvZiBgc2lnbmVkYC9gc2Nhbm5lZGApLlxuICpcbiAqIC0gYHNpZ25lZGA6IHRoZSByb3cgY2FycmllcyBhIHdlbGwtZm9ybWVkIGRpZ2VzdC4gVGhlIHdvcmtlciBzdG9yZXMgYSBkaWdlc3RcbiAqICAgb25seSBhZnRlciBpbWFnZS1yZWdpc3RyeSBzaWduZWQgaXQgKGEgc2lnbmluZyBmYWlsdXJlIGZhaWxzIHRoZSBidWlsZCksIHNvXG4gKiAgIGEgZGlnZXN0IG9uIHRoZSByb3cgSVMgYSBwbGF0Zm9ybSBzaWduYXR1cmUuXG4gKiAtIGBzY2FubmVkYCArIGB2dWxuKmA6IGNvdW50cyBvbmx5IHdoZW4gYHNjYW5uZWRBdGAgaXMgc2V0LlxuICogLSBgcnVuQXNSb290YDogb25seSB3aGVuIGtub3duLlxuICogLSBgcGFja2FnZXNgOiBub3QgYSByb3cgY29sdW1uLiBQYXNzIHRoZSBTQk9NJ3MgbmFtZXMgd2hlbiB5b3UgaGF2ZSB0aGVtLFxuICogICBgbnVsbGAgd2hlbiB0aGUgU0JPTSBjb3VsZCBub3QgYmUgcmVhZCAoYXR0cmlidXRlIG9taXR0ZWQsIHNvIGFcbiAqICAgYCRjb3VudChwYWNrYWdlcylgIHJ1bGUgc2VlcyAwKSwgb3IgbGVhdmUgaXQgYHVuZGVmaW5lZGAgb24gYSBwYXRoIHRoYXRcbiAqICAgbmV2ZXIgcmVhZHMgU0JPTXMg4oCUIGl0IGlzIHRoZW4gcmV0dXJuZWQgaW4gYGRlZmVycmVkRmllbGRzYCAoaXQgd2FzXG4gKiAgIGV2YWx1YXRlZCBieSB0aGUgcG9zdC1idWlsZCBjaGVjayBhbmQgY2Fubm90IGNoYW5nZSB3aXRob3V0IGEgcmVidWlsZCkuXG4gKlxuICogQSBwbHVnaW4gdGhhdCBydW5zIG5vIGltYWdlIG9mIGl0cyBvd24gaXMgaG9uZXN0bHkgdW5zaWduZWQgYW5kIHVuc2Nhbm5lZFxuICogd2l0aCBubyBwYWNrYWdlczsgbm90aGluZyBpcyBkZWZlcnJlZCBmb3IgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVQbHVnaW5JbWFnZUNvbXBsaWFuY2UoXG4gIHJvdzogUGx1Z2luSW1hZ2VSb3csXG4gIHBhY2thZ2VzPzogc3RyaW5nW10gfCBudWxsLFxuKTogeyBhdHRyaWJ1dGVzOiBQbHVnaW5Db21wbGlhbmNlQXR0cmlidXRlczsgZGVmZXJyZWRGaWVsZHM6IFBsdWdpbkltYWdlQ29tcGxpYW5jZUZpZWxkW10gfSB7XG4gIGNvbnN0IHRhZ3MgPSBwbHVnaW5Db21wbGlhbmNlVGFncyhyb3cua2V5d29yZHMsIHJvdy5sYWJlbHMpO1xuICBpZiAoIXBsdWdpblJ1bnNPd25JbWFnZShyb3cpKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRlczogeyB0YWdzLCBzaWduZWQ6IGZhbHNlLCBzY2FubmVkOiBmYWxzZSwgcGFja2FnZXM6IFtdIH0sIGRlZmVycmVkRmllbGRzOiBbXSB9O1xuICB9XG4gIGNvbnN0IHNjYW5uZWQgPSByb3cuc2Nhbm5lZEF0ICE9PSBudWxsICYmIHJvdy5zY2FubmVkQXQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgYXR0cmlidXRlczogUGx1Z2luQ29tcGxpYW5jZUF0dHJpYnV0ZXMgPSB7XG4gICAgdGFncyxcbiAgICBzaWduZWQ6IHR5cGVvZiByb3cuaW1hZ2VEaWdlc3QgPT09ICdzdHJpbmcnICYmIFNJR05FRF9ESUdFU1RfUkUudGVzdChyb3cuaW1hZ2VEaWdlc3QpLFxuICAgIHNjYW5uZWQsXG4gIH07XG4gIGlmIChzY2FubmVkKSB7XG4gICAgYXR0cmlidXRlcy52dWxuQ3JpdGljYWwgPSBmaW5pdGVDb3VudChyb3cudnVsbkNyaXRpY2FsKTtcbiAgICBhdHRyaWJ1dGVzLnZ1bG5IaWdoID0gZmluaXRlQ291bnQocm93LnZ1bG5IaWdoKTtcbiAgICBhdHRyaWJ1dGVzLnZ1bG5NZWRpdW0gPSBmaW5pdGVDb3VudChyb3cudnVsbk1lZGl1bSk7XG4gICAgYXR0cmlidXRlcy52dWxuTG93ID0gZmluaXRlQ291bnQocm93LnZ1bG5Mb3cpO1xuICAgIGF0dHJpYnV0ZXMudnVsbkNyaXRpY2FsRml4YWJsZSA9IGZpbml0ZUNvdW50KHJvdy52dWxuQ3JpdGljYWxGaXhhYmxlKTtcbiAgICBhdHRyaWJ1dGVzLnZ1bG5IaWdoRml4YWJsZSA9IGZpbml0ZUNvdW50KHJvdy52dWxuSGlnaEZpeGFibGUpO1xuICB9XG4gIGlmICh0eXBlb2Ygcm93LnJ1bkFzUm9vdCA9PT0gJ2Jvb2xlYW4nKSBhdHRyaWJ1dGVzLnJ1bkFzUm9vdCA9IHJvdy5ydW5Bc1Jvb3Q7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhY2thZ2VzKSkgYXR0cmlidXRlcy5wYWNrYWdlcyA9IHBhY2thZ2VzO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIGlmIChhdHRyaWJ1dGVzW2tdID09PSB1bmRlZmluZWQpIGRlbGV0ZSBhdHRyaWJ1dGVzW2tdO1xuICByZXR1cm4geyBhdHRyaWJ1dGVzLCBkZWZlcnJlZEZpZWxkczogcGFja2FnZXMgPT09IHVuZGVmaW5lZCA/IFsncGFja2FnZXMnXSA6IFtdIH07XG59XG4iXX0=
|
|
@@ -49,7 +49,7 @@ export declare const IconKeySchema: z.ZodString;
|
|
|
49
49
|
export declare const PluginIconSchema: z.ZodPreprocess<z.ZodObject<{
|
|
50
50
|
key: z.ZodString;
|
|
51
51
|
badge: z.ZodOptional<z.ZodString>;
|
|
52
|
-
}, z.core.$strict
|
|
52
|
+
}, z.core.$strict>, unknown>;
|
|
53
53
|
/**
|
|
54
54
|
* Per-field validators for every DESCRIPTIVE field. A detected value
|
|
55
55
|
* and a user-typed value both go through these.
|
|
@@ -78,7 +78,7 @@ export declare const PLUGIN_CATALOG_FIELD_SCHEMAS: {
|
|
|
78
78
|
readonly icon: z.ZodPreprocess<z.ZodObject<{
|
|
79
79
|
key: z.ZodString;
|
|
80
80
|
badge: z.ZodOptional<z.ZodString>;
|
|
81
|
-
}, z.core.$strict
|
|
81
|
+
}, z.core.$strict>, unknown>;
|
|
82
82
|
readonly changelog: z.ZodString;
|
|
83
83
|
readonly readme: z.ZodString;
|
|
84
84
|
};
|
|
@@ -108,7 +108,7 @@ export declare const PluginCatalogEditsSchema: z.ZodObject<{
|
|
|
108
108
|
icon: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodObject<{
|
|
109
109
|
key: z.ZodString;
|
|
110
110
|
badge: z.ZodOptional<z.ZodString>;
|
|
111
|
-
}, z.core.$strict
|
|
111
|
+
}, z.core.$strict>, unknown>>>;
|
|
112
112
|
keywords: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
113
113
|
license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
114
114
|
readme: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -161,7 +161,7 @@ export declare const PluginUpdateSchema: z.ZodObject<{
|
|
|
161
161
|
icon: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodObject<{
|
|
162
162
|
key: z.ZodString;
|
|
163
163
|
badge: z.ZodOptional<z.ZodString>;
|
|
164
|
-
}, z.core.$strict
|
|
164
|
+
}, z.core.$strict>, unknown>>>;
|
|
165
165
|
keywords: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
166
166
|
license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
167
167
|
readme: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "git+https://github.com/mwashburn160/pipeline-builder.git"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"@jest/globals": "30.
|
|
9
|
+
"@jest/globals": "30.5.2",
|
|
10
10
|
"@stylistic/eslint-plugin": "^2",
|
|
11
11
|
"@types/express": "5.0.6",
|
|
12
12
|
"@types/jsonwebtoken": "9.0.10",
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"@typescript-eslint/parser": "^8",
|
|
16
16
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
17
17
|
"eslint": "^9",
|
|
18
|
-
"eslint-import-resolver-typescript": "^4.4.
|
|
18
|
+
"eslint-import-resolver-typescript": "^4.4.5",
|
|
19
19
|
"eslint-plugin-import": "^2.32.0",
|
|
20
|
-
"jest": "30.
|
|
20
|
+
"jest": "30.5.2",
|
|
21
21
|
"jest-junit": "^17",
|
|
22
22
|
"ts-jest": "29.4.12",
|
|
23
23
|
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@asteasolutions/zod-to-openapi": "9.1.0",
|
|
27
|
-
"@aws-sdk/client-kms": "3.
|
|
28
|
-
"@aws-sdk/client-sts": "3.
|
|
29
|
-
"@aws-sdk/credential-providers": "3.
|
|
27
|
+
"@aws-sdk/client-kms": "3.1136.0",
|
|
28
|
+
"@aws-sdk/client-sts": "3.1136.0",
|
|
29
|
+
"@aws-sdk/credential-providers": "3.1136.0",
|
|
30
30
|
"express": "5.2.1",
|
|
31
31
|
"ioredis": "6.0.0",
|
|
32
32
|
"jsonwebtoken": "9.0.3",
|
|
33
33
|
"winston": "3.19.0",
|
|
34
|
-
"zod": "4.
|
|
34
|
+
"zod": "4.6.5"
|
|
35
35
|
},
|
|
36
36
|
"keywords": [
|
|
37
37
|
"ci-cd",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
]
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
|
-
"version": "4.1.
|
|
106
|
+
"version": "4.1.17",
|
|
107
107
|
"bugs": {
|
|
108
108
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
109
109
|
},
|