@reddoorla/maintenance 0.81.0 → 0.82.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/airtable-ZDHLKK5K.js +9 -0
- package/dist/{announce-KZDU65IF.js → announce-7QHQGJPV.js} +4 -4
- package/dist/{bump-deps-XB2LJTVN.js → bump-deps-ZREAMK7M.js} +2 -2
- package/dist/{chunk-JR67FZVC.js → chunk-2BHSGLWR.js} +3 -3
- package/dist/{chunk-AKRUYPLU.js → chunk-4PW6ISX7.js} +3 -3
- package/dist/{chunk-R5KAXGSP.js → chunk-5E4L7WKE.js} +3 -3
- package/dist/{chunk-42A4H6SF.js → chunk-FFI7P74K.js} +2 -2
- package/dist/{chunk-3PU2QWOJ.js → chunk-LMCO7CYQ.js} +2 -2
- package/dist/{chunk-4BHNP6Y2.js → chunk-ODC4PXZL.js} +2 -2
- package/dist/{chunk-SK44IFZN.js → chunk-OIDDJLS7.js} +2 -2
- package/dist/{chunk-JMAFXEQE.js → chunk-T4FQ6TZT.js} +6 -3
- package/dist/chunk-T4FQ6TZT.js.map +1 -0
- package/dist/{chunk-6M2IXJ3E.js → chunk-UH5YPYS4.js} +2 -2
- package/dist/{chunk-KKIKJWM2.js → chunk-VXXF4Y25.js} +7 -5
- package/dist/chunk-VXXF4Y25.js.map +1 -0
- package/dist/{chunk-GXVX4HUH.js → chunk-YRM6EED7.js} +11 -2
- package/dist/chunk-YRM6EED7.js.map +1 -0
- package/dist/{chunk-TEOENEJH.js → chunk-ZXRRKKMR.js} +2 -2
- package/dist/cli/bin.js +21 -21
- package/dist/cli/commands/audit.js +6 -6
- package/dist/{convert-to-pnpm-FZHSLUQB.js → convert-to-pnpm-UT2R6EOW.js} +2 -2
- package/dist/{digest-44QNZZKM.js → digest-CLFUWW62.js} +5 -5
- package/dist/{ensure-site-3SOAWTZF.js → ensure-site-LLPOXLWP.js} +2 -2
- package/dist/{forms-notify-target-CL3HRVKN.js → forms-notify-target-PN6P3WPW.js} +2 -2
- package/dist/{github-signals-2BFMZLPV.js → github-signals-HTH7474O.js} +4 -4
- package/dist/{header-image-H4N54DHN.js → header-image-WMHZFU7B.js} +2 -2
- package/dist/{health-endpoint-LFVE26QS.js → health-endpoint-4E53ZMLE.js} +2 -2
- package/dist/index.d.ts +9 -0
- package/dist/index.js +8 -8
- package/dist/{init-RYKQFSZI.js → init-3ZJ7Z5NG.js} +4 -4
- package/dist/{launch-EGKYS3BD.js → launch-FRCDOB56.js} +6 -6
- package/dist/{lighthouse-airtable-ZXNMDEPE.js → lighthouse-airtable-I46QCEIS.js} +3 -3
- package/dist/{onboard-RDGHVCNG.js → onboard-45NPDMMW.js} +2 -2
- package/dist/{orchestrate-NY6L4Q7Q.js → orchestrate-34JYNIXT.js} +3 -3
- package/dist/{preflight-SRDQS7Y6.js → preflight-WVD32COX.js} +4 -4
- package/dist/{renovate-dispatch-7D7FMMJP.js → renovate-dispatch-LOOCNZTW.js} +6 -3
- package/dist/renovate-dispatch-LOOCNZTW.js.map +1 -0
- package/dist/{report-MLCIIML5.js → report-CLF2753O.js} +5 -5
- package/dist/{self-updating-WJEHPASK.js → self-updating-5TJ2NB26.js} +2 -2
- package/dist/{selftest-ZJDB4JQB.js → selftest-BTCZLCTL.js} +5 -5
- package/dist/{smoke-suite-SUEJFBYP.js → smoke-suite-GHKXMKIR.js} +2 -2
- package/dist/{submissions-RAYGOASP.js → submissions-KUXLKCSQ.js} +2 -2
- package/dist/{svelte-codemods-IWO7X3F3.js → svelte-codemods-YTCTLK7G.js} +2 -2
- package/dist/{sync-configs-7XGHFC6P.js → sync-configs-KSSQZU5L.js} +2 -2
- package/dist/{upgrade-AM4S7JF3.js → upgrade-UDAPY3SN.js} +2 -2
- package/dist/{websites-U6642XSE.js → websites-JXG3WWAU.js} +4 -2
- package/dist/{write-audits-to-airtable-22T6D733.js → write-audits-to-airtable-7D3LV4KP.js} +4 -4
- package/package.json +3 -3
- package/dist/airtable-6L3JD7FY.js +0 -9
- package/dist/chunk-GXVX4HUH.js.map +0 -1
- package/dist/chunk-JMAFXEQE.js.map +0 -1
- package/dist/chunk-KKIKJWM2.js.map +0 -1
- package/dist/renovate-dispatch-7D7FMMJP.js.map +0 -1
- /package/dist/{airtable-6L3JD7FY.js.map → airtable-ZDHLKK5K.js.map} +0 -0
- /package/dist/{announce-KZDU65IF.js.map → announce-7QHQGJPV.js.map} +0 -0
- /package/dist/{bump-deps-XB2LJTVN.js.map → bump-deps-ZREAMK7M.js.map} +0 -0
- /package/dist/{chunk-JR67FZVC.js.map → chunk-2BHSGLWR.js.map} +0 -0
- /package/dist/{chunk-AKRUYPLU.js.map → chunk-4PW6ISX7.js.map} +0 -0
- /package/dist/{chunk-R5KAXGSP.js.map → chunk-5E4L7WKE.js.map} +0 -0
- /package/dist/{chunk-42A4H6SF.js.map → chunk-FFI7P74K.js.map} +0 -0
- /package/dist/{chunk-3PU2QWOJ.js.map → chunk-LMCO7CYQ.js.map} +0 -0
- /package/dist/{chunk-4BHNP6Y2.js.map → chunk-ODC4PXZL.js.map} +0 -0
- /package/dist/{chunk-SK44IFZN.js.map → chunk-OIDDJLS7.js.map} +0 -0
- /package/dist/{chunk-6M2IXJ3E.js.map → chunk-UH5YPYS4.js.map} +0 -0
- /package/dist/{chunk-TEOENEJH.js.map → chunk-ZXRRKKMR.js.map} +0 -0
- /package/dist/{convert-to-pnpm-FZHSLUQB.js.map → convert-to-pnpm-UT2R6EOW.js.map} +0 -0
- /package/dist/{digest-44QNZZKM.js.map → digest-CLFUWW62.js.map} +0 -0
- /package/dist/{ensure-site-3SOAWTZF.js.map → ensure-site-LLPOXLWP.js.map} +0 -0
- /package/dist/{forms-notify-target-CL3HRVKN.js.map → forms-notify-target-PN6P3WPW.js.map} +0 -0
- /package/dist/{github-signals-2BFMZLPV.js.map → github-signals-HTH7474O.js.map} +0 -0
- /package/dist/{header-image-H4N54DHN.js.map → header-image-WMHZFU7B.js.map} +0 -0
- /package/dist/{health-endpoint-LFVE26QS.js.map → health-endpoint-4E53ZMLE.js.map} +0 -0
- /package/dist/{init-RYKQFSZI.js.map → init-3ZJ7Z5NG.js.map} +0 -0
- /package/dist/{launch-EGKYS3BD.js.map → launch-FRCDOB56.js.map} +0 -0
- /package/dist/{lighthouse-airtable-ZXNMDEPE.js.map → lighthouse-airtable-I46QCEIS.js.map} +0 -0
- /package/dist/{onboard-RDGHVCNG.js.map → onboard-45NPDMMW.js.map} +0 -0
- /package/dist/{orchestrate-NY6L4Q7Q.js.map → orchestrate-34JYNIXT.js.map} +0 -0
- /package/dist/{preflight-SRDQS7Y6.js.map → preflight-WVD32COX.js.map} +0 -0
- /package/dist/{report-MLCIIML5.js.map → report-CLF2753O.js.map} +0 -0
- /package/dist/{self-updating-WJEHPASK.js.map → self-updating-5TJ2NB26.js.map} +0 -0
- /package/dist/{selftest-ZJDB4JQB.js.map → selftest-BTCZLCTL.js.map} +0 -0
- /package/dist/{smoke-suite-SUEJFBYP.js.map → smoke-suite-GHKXMKIR.js.map} +0 -0
- /package/dist/{submissions-RAYGOASP.js.map → submissions-KUXLKCSQ.js.map} +0 -0
- /package/dist/{svelte-codemods-IWO7X3F3.js.map → svelte-codemods-YTCTLK7G.js.map} +0 -0
- /package/dist/{sync-configs-7XGHFC6P.js.map → sync-configs-KSSQZU5L.js.map} +0 -0
- /package/dist/{upgrade-AM4S7JF3.js.map → upgrade-UDAPY3SN.js.map} +0 -0
- /package/dist/{websites-U6642XSE.js.map → websites-JXG3WWAU.js.map} +0 -0
- /package/dist/{write-audits-to-airtable-22T6D733.js.map → write-audits-to-airtable-7D3LV4KP.js.map} +0 -0
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
} from "./chunk-PZQ3WED2.js";
|
|
4
4
|
import {
|
|
5
5
|
formatFleetWriteSummary
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-2BHSGLWR.js";
|
|
7
|
+
import "./chunk-LMCO7CYQ.js";
|
|
8
8
|
import {
|
|
9
9
|
detectSignalEvents,
|
|
10
10
|
fleetSweptEvent
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
listWebsites,
|
|
23
23
|
siteSlug,
|
|
24
24
|
updateGitHubSignals
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-YRM6EED7.js";
|
|
26
26
|
import {
|
|
27
27
|
openBase,
|
|
28
28
|
readAirtableConfig
|
|
@@ -134,4 +134,4 @@ export {
|
|
|
134
134
|
githubSignalsExitCode,
|
|
135
135
|
runGitHubSignalsCommand
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=github-signals-
|
|
137
|
+
//# sourceMappingURL=github-signals-HTH7474O.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ACTIVE_STATUSES,
|
|
9
9
|
listWebsites,
|
|
10
10
|
siteSlug
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YRM6EED7.js";
|
|
12
12
|
import {
|
|
13
13
|
openBase,
|
|
14
14
|
readAirtableConfig
|
|
@@ -92,4 +92,4 @@ export {
|
|
|
92
92
|
resolveTargets,
|
|
93
93
|
runHeaderImageCommand
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=header-image-
|
|
95
|
+
//# sourceMappingURL=header-image-WMHZFU7B.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
healthEndpoint
|
|
14
14
|
} from "./chunk-FX7RAMGC.js";
|
|
@@ -51,4 +51,4 @@ async function runHealthEndpointCommand(site, opts) {
|
|
|
51
51
|
export {
|
|
52
52
|
runHealthEndpointCommand
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=health-endpoint-
|
|
54
|
+
//# sourceMappingURL=health-endpoint-4E53ZMLE.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -224,6 +224,10 @@ type DependabotAlert = {
|
|
|
224
224
|
/** Dependency graph scope, or null when GitHub doesn't classify it. "development" marks a
|
|
225
225
|
* build-time-only dependency (lower live-exploit surface for a static site). */
|
|
226
226
|
scope: "runtime" | "development" | null;
|
|
227
|
+
/** Dependency graph relationship (`dependency.relationship`), or null when GitHub reports
|
|
228
|
+
* "unknown"/nothing. "transitive" means no direct-dep bump can fix it — Renovate's vuln
|
|
229
|
+
* alerts have no fix vehicle until the weekly lockfile-maintenance window. */
|
|
230
|
+
relationship: "direct" | "transitive" | null;
|
|
227
231
|
};
|
|
228
232
|
|
|
229
233
|
/** The Dependabot fetch the security audit needs, injectable for tests. The real default is
|
|
@@ -619,6 +623,11 @@ type SecurityAdvisory = {
|
|
|
619
623
|
* dashboard flag build-time-only ("development") vulns. Omitted for advisories from the
|
|
620
624
|
* lockfile `pnpm audit` fallback, which carries no per-package graph scope. */
|
|
621
625
|
scope?: "runtime" | "development";
|
|
626
|
+
/** GitHub Dependabot dependency-graph relationship, when known. "transitive" means no
|
|
627
|
+
* direct-dep bump can fix it — Renovate's vuln alerts have no fix vehicle until the weekly
|
|
628
|
+
* lockfile-maintenance window. Omitted when GitHub reports "unknown" or for the
|
|
629
|
+
* `pnpm audit` fallback. Drives {@link allActionableVulnsTransitive}. */
|
|
630
|
+
relationship?: "direct" | "transitive";
|
|
622
631
|
};
|
|
623
632
|
|
|
624
633
|
type ResolvedCopy = {
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "./chunk-2SLED3NB.js";
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-VXXF4Y25.js";
|
|
3
3
|
import {
|
|
4
4
|
draftReportForSite
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UH5YPYS4.js";
|
|
6
6
|
import "./chunk-62VF32IC.js";
|
|
7
7
|
import {
|
|
8
8
|
domainFromUrl,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-37S6L6G4.js";
|
|
12
12
|
import {
|
|
13
13
|
approveBlockers
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5E4L7WKE.js";
|
|
15
15
|
import {
|
|
16
16
|
findDueReports
|
|
17
17
|
} from "./chunk-D4FVAIEJ.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
DEFAULT_INIT_STEPS,
|
|
23
23
|
a11yFixturesPage,
|
|
24
24
|
init
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-ZXRRKKMR.js";
|
|
26
26
|
import {
|
|
27
27
|
convertToPnpm
|
|
28
28
|
} from "./chunk-MGJ72BA4.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
parseAddresses,
|
|
43
43
|
sendApprovedReports,
|
|
44
44
|
withGlobalCc
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-FFI7P74K.js";
|
|
46
46
|
import "./chunk-GECESMVS.js";
|
|
47
47
|
import {
|
|
48
48
|
BLURRED_CID,
|
|
@@ -78,7 +78,7 @@ import {
|
|
|
78
78
|
runAudits,
|
|
79
79
|
runAuditsAcross,
|
|
80
80
|
securityAudit
|
|
81
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-T4FQ6TZT.js";
|
|
82
82
|
import "./chunk-GASBX52O.js";
|
|
83
83
|
import "./chunk-YAMRVXOD.js";
|
|
84
84
|
import "./chunk-LKGVSM2O.js";
|
|
@@ -98,12 +98,12 @@ import "./chunk-XXTZBPUY.js";
|
|
|
98
98
|
import "./chunk-XTK5VIQB.js";
|
|
99
99
|
import {
|
|
100
100
|
fromAirtableBase
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-OIDDJLS7.js";
|
|
102
102
|
import "./chunk-U5SZ4FOP.js";
|
|
103
103
|
import {
|
|
104
104
|
SEVERITY_RANK,
|
|
105
105
|
siteSlug
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-YRM6EED7.js";
|
|
107
107
|
import "./chunk-HN6I2XWI.js";
|
|
108
108
|
import "./chunk-6VAL7XJT.js";
|
|
109
109
|
import "./chunk-NMAWXBJA.js";
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-4NAOR44V.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveSites
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ODC4PXZL.js";
|
|
9
9
|
import {
|
|
10
10
|
init
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZXRRKKMR.js";
|
|
12
12
|
import "./chunk-MGJ72BA4.js";
|
|
13
13
|
import "./chunk-LS6QPANO.js";
|
|
14
14
|
import "./chunk-J7SZQUCW.js";
|
|
@@ -20,7 +20,7 @@ import "./chunk-Q276MZ7E.js";
|
|
|
20
20
|
import "./chunk-73UFRZKY.js";
|
|
21
21
|
import "./chunk-ZTPPCHDB.js";
|
|
22
22
|
import "./chunk-OTGB6YQO.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-T4FQ6TZT.js";
|
|
24
24
|
import "./chunk-GASBX52O.js";
|
|
25
25
|
import "./chunk-YAMRVXOD.js";
|
|
26
26
|
import "./chunk-LKGVSM2O.js";
|
|
@@ -107,4 +107,4 @@ async function runInitCommand(site, opts) {
|
|
|
107
107
|
export {
|
|
108
108
|
runInitCommand
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=init-
|
|
110
|
+
//# sourceMappingURL=init-3ZJ7Z5NG.js.map
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
import "./chunk-MNDIED4M.js";
|
|
5
5
|
import {
|
|
6
6
|
writeAuditsToAirtable
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2BHSGLWR.js";
|
|
8
8
|
import {
|
|
9
9
|
hasRealScores,
|
|
10
10
|
lighthouseScoresFromResult
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LMCO7CYQ.js";
|
|
12
12
|
import "./chunk-5L3FPQIJ.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveSites
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ODC4PXZL.js";
|
|
16
16
|
import {
|
|
17
17
|
queueDraft
|
|
18
18
|
} from "./chunk-62VF32IC.js";
|
|
@@ -30,7 +30,7 @@ import "./chunk-SEEA6RXF.js";
|
|
|
30
30
|
import "./chunk-73UFRZKY.js";
|
|
31
31
|
import {
|
|
32
32
|
runAudits
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-T4FQ6TZT.js";
|
|
34
34
|
import "./chunk-GASBX52O.js";
|
|
35
35
|
import "./chunk-YAMRVXOD.js";
|
|
36
36
|
import "./chunk-LKGVSM2O.js";
|
|
@@ -46,7 +46,7 @@ import "./chunk-U5SZ4FOP.js";
|
|
|
46
46
|
import {
|
|
47
47
|
listWebsites,
|
|
48
48
|
siteSlug
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-YRM6EED7.js";
|
|
50
50
|
import {
|
|
51
51
|
openBase,
|
|
52
52
|
readAirtableConfig
|
|
@@ -216,4 +216,4 @@ async function runLaunchCommand(site, opts) {
|
|
|
216
216
|
export {
|
|
217
217
|
runLaunchCommand
|
|
218
218
|
};
|
|
219
|
-
//# sourceMappingURL=launch-
|
|
219
|
+
//# sourceMappingURL=launch-FRCDOB56.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
hasRealScores,
|
|
3
3
|
lighthouseScoresFromResult,
|
|
4
4
|
resolveSlugFromCwd
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-LMCO7CYQ.js";
|
|
6
|
+
import "./chunk-YRM6EED7.js";
|
|
7
7
|
export {
|
|
8
8
|
hasRealScores,
|
|
9
9
|
lighthouseScoresFromResult,
|
|
10
10
|
resolveSlugFromCwd
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=lighthouse-airtable-
|
|
12
|
+
//# sourceMappingURL=lighthouse-airtable-I46QCEIS.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
onboard
|
|
14
14
|
} from "./chunk-NT4WIP7I.js";
|
|
@@ -70,4 +70,4 @@ async function runOnboardCommand(site, opts) {
|
|
|
70
70
|
export {
|
|
71
71
|
runOnboardCommand
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=onboard-
|
|
73
|
+
//# sourceMappingURL=onboard-45NPDMMW.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
parseAddresses,
|
|
5
5
|
sendApprovedReports,
|
|
6
6
|
withGlobalCc
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FFI7P74K.js";
|
|
8
8
|
import "./chunk-GECESMVS.js";
|
|
9
9
|
import "./chunk-6QRLRT3P.js";
|
|
10
10
|
import "./chunk-MPBXOJ3N.js";
|
|
@@ -14,7 +14,7 @@ import "./chunk-QG6OSL4M.js";
|
|
|
14
14
|
import "./chunk-DC5H7KEQ.js";
|
|
15
15
|
import "./chunk-4SOCPK7A.js";
|
|
16
16
|
import "./chunk-U5SZ4FOP.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-YRM6EED7.js";
|
|
18
18
|
import "./chunk-HN6I2XWI.js";
|
|
19
19
|
import "./chunk-6VAL7XJT.js";
|
|
20
20
|
export {
|
|
@@ -24,4 +24,4 @@ export {
|
|
|
24
24
|
sendApprovedReports,
|
|
25
25
|
withGlobalCc
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=orchestrate-
|
|
27
|
+
//# sourceMappingURL=orchestrate-34JYNIXT.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
preflight
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5E4L7WKE.js";
|
|
4
4
|
import "./chunk-D4FVAIEJ.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-FFI7P74K.js";
|
|
6
6
|
import "./chunk-GECESMVS.js";
|
|
7
7
|
import "./chunk-6QRLRT3P.js";
|
|
8
8
|
import "./chunk-MPBXOJ3N.js";
|
|
@@ -12,7 +12,7 @@ import "./chunk-QG6OSL4M.js";
|
|
|
12
12
|
import "./chunk-DC5H7KEQ.js";
|
|
13
13
|
import "./chunk-4SOCPK7A.js";
|
|
14
14
|
import "./chunk-U5SZ4FOP.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-YRM6EED7.js";
|
|
16
16
|
import "./chunk-HN6I2XWI.js";
|
|
17
17
|
import "./chunk-6VAL7XJT.js";
|
|
18
18
|
|
|
@@ -63,4 +63,4 @@ async function runPreflightCommand(site, opts) {
|
|
|
63
63
|
export {
|
|
64
64
|
runPreflightCommand
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=preflight-
|
|
66
|
+
//# sourceMappingURL=preflight-WVD32COX.js.map
|
|
@@ -6,10 +6,11 @@ import {
|
|
|
6
6
|
} from "./chunk-YAMRVXOD.js";
|
|
7
7
|
import "./chunk-HVOOCK6L.js";
|
|
8
8
|
import {
|
|
9
|
+
allActionableVulnsTransitive,
|
|
9
10
|
isDashboardVisible,
|
|
10
11
|
listWebsites,
|
|
11
12
|
updateAutoFixAttempts
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YRM6EED7.js";
|
|
13
14
|
import {
|
|
14
15
|
openBase,
|
|
15
16
|
readAirtableConfig
|
|
@@ -69,7 +70,9 @@ function computeAutoFixAttemptUpdates(sites, result) {
|
|
|
69
70
|
if (!isDashboardVisible(s)) continue;
|
|
70
71
|
const repo = s.gitRepo?.trim();
|
|
71
72
|
if (!repo) continue;
|
|
72
|
-
if (dispatched.has(repo))
|
|
73
|
+
if (!dispatched.has(repo)) continue;
|
|
74
|
+
if (allActionableVulnsTransitive(s.securityAdvisories)) continue;
|
|
75
|
+
updates.push({ id: s.id, attempts: current + 1 });
|
|
73
76
|
}
|
|
74
77
|
return updates;
|
|
75
78
|
}
|
|
@@ -138,4 +141,4 @@ async function runRenovateDispatchCommand(opts) {
|
|
|
138
141
|
export {
|
|
139
142
|
runRenovateDispatchCommand
|
|
140
143
|
};
|
|
141
|
-
//# sourceMappingURL=renovate-dispatch-
|
|
144
|
+
//# sourceMappingURL=renovate-dispatch-LOOCNZTW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/github/renovate-dispatch.ts","../src/cli/commands/renovate-dispatch.ts"],"sourcesContent":["import {\n allActionableVulnsTransitive,\n isDashboardVisible,\n type WebsiteRow,\n} from \"../reports/airtable/websites.js\";\nimport { isRenovatePR } from \"../alerts/renovate.js\";\nimport type { PullRequestSummary } from \"./gh.js\";\n\n/**\n * On-demand Renovate trigger for fleet sites.\n *\n * The nightly security sweep (`fleet-security.yml`) writes each active site's\n * vulnerability counts to Airtable. This module turns that into action: for the\n * sites the sweep just flagged with *actionable* (critical or high) vulns, it\n * dispatches that repo's `renovate.yml` `workflow_dispatch` so Renovate runs off\n * its twice-daily schedule. Renovate's OSV vulnerability alerts bypass the\n * schedule, so the remediation PR opens immediately — and because GitHub's\n * platform auto-merge is disabled fleet-wide, Renovate merges it from inside that\n * same run (or a later scheduled one) per the shared preset, which is what keeps\n * the preset's \"majors are never auto-merged\" rule authoritative. Moderate/low\n * vulns are left to the normal schedule — not urgent enough to dispatch + churn\n * CI nightly.\n */\n\n/** The per-repo workflow file the fleet uses for its self-hosted Renovate run. */\nexport const RENOVATE_WORKFLOW_FILE = \"renovate.yml\";\n\n/**\n * Does the repo have a HEALTHY open Renovate PR — one that is NOT conflicting?\n *\n * A healthy PR means remediation is genuinely in flight (moving toward merge), so\n * re-dispatching would just churn CI — skip it. A CONFLICTING Renovate PR is STUCK\n * (its branch fell behind the base after another PR merged the same lockfile), so\n * it does NOT count as healthy: re-dispatching triggers Renovate to rebase it.\n * `UNKNOWN` mergeability (GitHub still computing it) is treated as healthy — don't\n * churn on uncertainty. Reuses {@link isRenovatePR} for the branch-prefix check.\n */\nexport function hasHealthyRenovatePr(prs: PullRequestSummary[]): boolean {\n return prs.some((pr) => isRenovatePR(pr) && pr.mergeable !== \"CONFLICTING\");\n}\n\n/** A site selected for an on-demand Renovate run, with the reason (vuln counts). */\nexport type RenovateDispatchTarget = {\n repo: string; // owner/repo, from the Websites \"Git repo\" field\n siteName: string;\n critical: number;\n high: number;\n};\n\n/**\n * Pick the active, repo-backed sites whose latest security sweep found a\n * critical or high vulnerability. A `null` vuln count is treated as zero (a site\n * that was never swept, or had its counts cleared, is not dispatched). Inactive\n * sites and sites without a `Git repo` are excluded — there's nothing to kick.\n *\n * Counts are only guaranteed fresh for sites the sweep actually audited (active +\n * URL present); a site whose write-back failed/was skipped this run is selected on\n * its last-known counts. That's safe — a stale-high false dispatch is an idempotent\n * Renovate no-op, and the open-PR skip in `dispatchRenovateAcross` avoids re-firing\n * when remediation is already in flight.\n */\nexport function selectRenovateTargets(sites: WebsiteRow[]): RenovateDispatchTarget[] {\n const targets: RenovateDispatchTarget[] = [];\n for (const s of sites) {\n if (!isDashboardVisible(s)) continue; // active (maintenance / launch period) only\n const repo = s.gitRepo?.trim();\n if (!repo) continue; // repo-backed only — the dispatch target is its renovate.yml\n const critical = s.securityVulnsCritical ?? 0;\n const high = s.securityVulnsHigh ?? 0;\n if (critical + high <= 0) continue; // actionable (critical/high) vulns only\n targets.push({ repo, siteName: s.name, critical, high });\n }\n return targets;\n}\n\n/** Injected GitHub operations — real ones come from `makeGitHub`, fakes from tests. */\nexport type RenovateDispatchDeps = {\n /** True iff the repo has a HEALTHY (non-conflicting) open Renovate PR —\n * remediation in flight, so don't re-dispatch. A conflicting/stuck PR returns\n * false so the dispatch goes through and Renovate rebases it. */\n hasHealthyOpenRenovatePr: (repo: string) => Promise<boolean>;\n defaultBranch: (repo: string) => Promise<string>;\n dispatch: (repo: string, workflow: string, ref: string) => Promise<void>;\n};\n\nexport type RenovateDispatchResult = {\n dispatched: string[];\n /** Repos skipped because a Renovate PR is already open — no point re-firing. */\n skipped: string[];\n failed: { repo: string; error: string }[];\n};\n\n/**\n * Dispatch `renovate.yml` for each target on its default branch.\n *\n * Skips a repo with a HEALTHY (non-conflicting) open Renovate PR — remediation is\n * in flight, so re-dispatching would just churn CI (keeps a persistent vuln from\n * re-firing every nightly run while its fix PR waits, e.g. a human-gated major\n * bump). A repo whose open Renovate PR is CONFLICTING/stuck is NOT skipped:\n * dispatching triggers Renovate to rebase it. Best-effort and isolated: a repo\n * that lacks `renovate.yml`, or whose\n * dispatch/PR-check is refused (the token's `actions:write` scope), is recorded in\n * `failed` and the rest still run. Never throws — the caller (a follow-up step on\n * the security sweep) must not be able to fail the sweep over a dispatch hiccup.\n */\nexport async function dispatchRenovateAcross(\n targets: RenovateDispatchTarget[],\n deps: RenovateDispatchDeps,\n): Promise<RenovateDispatchResult> {\n const dispatched: string[] = [];\n const skipped: string[] = [];\n const failed: { repo: string; error: string }[] = [];\n for (const t of targets) {\n try {\n if (await deps.hasHealthyOpenRenovatePr(t.repo)) {\n skipped.push(t.repo);\n continue;\n }\n const ref = await deps.defaultBranch(t.repo);\n await deps.dispatch(t.repo, RENOVATE_WORKFLOW_FILE, ref);\n dispatched.push(t.repo);\n } catch (e) {\n failed.push({ repo: t.repo, error: e instanceof Error ? e.message : String(e) });\n }\n }\n return { dispatched, skipped, failed };\n}\n\n/** Machine-readable counts line the workflow greps to annotate partial failures. */\nexport function formatRenovateDispatchSummary(result: RenovateDispatchResult): string {\n return `RENOVATE_DISPATCH_SUMMARY dispatched=${result.dispatched.length} skipped=${result.skipped.length} failed=${result.failed.length}`;\n}\n\n/**\n * Plan the per-site auto-fix-attempt counter writes from a dispatch result. PURE.\n * For each site:\n * - vulns now 0 (or never counted) → reset to 0 (episode resolved)\n * - else dispatched this run → attempts + 1 (a fresh failed-so-far attempt)\n * - else (skipped / failed / untouched) → unchanged\n * The RESET applies fleet-wide — regardless of Status or Git repo — so a site\n * archived or un-repo'd after its episode can't carry a stale counter into its\n * next vuln (Alamo sat at 7 from a long-closed episode). A null vuln count\n * (never-audited) reads as zero, consistent with the existing null-as-zero\n * semantics, so a lingering counter on such a row also clears. The INCREMENT\n * keeps its active + repo-backed filters (only those sites are dispatched).\n * Returns only the rows whose value CHANGES (a steady fleet writes nothing —\n * a 0→0 site emits no write). A skipped repo (healthy Renovate PR in flight) is\n * NOT a failed attempt — a fix is genuinely moving toward merge — so its counter\n * holds. A dispatched site whose critical/high advisories are ALL proven\n * TRANSITIVE also holds: Renovate has no direct-dep bump to open, so the run is a\n * known green no-op waiting on the weekly lockfile window, not a failed fix\n * attempt (Sonder rode 5 such no-ops to a false \"auto-fix failed\", 2026-08-10).\n * Missing/unknown relationship data keeps the increment — never mute on absence.\n */\nexport function computeAutoFixAttemptUpdates(\n sites: WebsiteRow[],\n result: RenovateDispatchResult,\n): { id: string; attempts: number }[] {\n const dispatched = new Set(result.dispatched);\n const updates: { id: string; attempts: number }[] = [];\n for (const s of sites) {\n const current = s.securityAutoFixAttempts ?? 0;\n const vulns = (s.securityVulnsCritical ?? 0) + (s.securityVulnsHigh ?? 0);\n if (vulns === 0) {\n // Episode resolved (or never confirmed): reset REGARDLESS of status/repo —\n // a site archived or un-repo'd after its episode must not carry a stale\n // counter into its next vuln (Alamo sat at 7 from a long-closed episode).\n if (current !== 0) updates.push({ id: s.id, attempts: 0 });\n continue;\n }\n if (!isDashboardVisible(s)) continue; // increments stay active-only\n const repo = s.gitRepo?.trim();\n if (!repo) continue; // …and repo-backed-only\n if (!dispatched.has(repo)) continue;\n // Transitive-only episode: the dispatch can't produce a fix PR (no direct dep\n // to bump) — don't count the no-op as a failed attempt.\n if (allActionableVulnsTransitive(s.securityAdvisories)) continue;\n updates.push({ id: s.id, attempts: current + 1 });\n }\n return updates;\n}\n\n/**\n * Apply the planned counter updates with an injected writer, BEST-EFFORT: a writer\n * that throws (e.g. the Airtable field not yet created, or a transient error) is\n * counted in `failed` and never propagates — the security sweep must not fail over\n * counter bookkeeping. Returns the applied/failed tallies for the summary line.\n */\nexport async function applyAutoFixAttemptUpdates(\n updates: { id: string; attempts: number }[],\n write: (id: string, attempts: number) => Promise<void>,\n): Promise<{ written: number; failed: number }> {\n let written = 0;\n let failed = 0;\n for (const u of updates) {\n try {\n await write(u.id, u.attempts);\n written++;\n } catch {\n failed++;\n }\n }\n return { written, failed };\n}\n\n/** Machine-readable counts line the workflow can grep, mirroring RENOVATE_DISPATCH_SUMMARY. */\nexport function formatAutoFixAttemptsSummary(tally: { written: number; failed: number }): string {\n return `AUTO_FIX_ATTEMPTS_SUMMARY written=${tally.written} failed=${tally.failed}`;\n}\n","import { openBase, readAirtableConfig, type AirtableBase } from \"../../reports/airtable/client.js\";\nimport { listWebsites, updateAutoFixAttempts } from \"../../reports/airtable/websites.js\";\nimport { makeGitHub } from \"../../github/gh.js\";\nimport {\n selectRenovateTargets,\n dispatchRenovateAcross,\n formatRenovateDispatchSummary,\n hasHealthyRenovatePr,\n computeAutoFixAttemptUpdates,\n applyAutoFixAttemptUpdates,\n formatAutoFixAttemptsSummary,\n type RenovateDispatchResult,\n} from \"../../github/renovate-dispatch.js\";\n\n/**\n * `renovate-dispatch --fleet`: read the Websites table, pick the active,\n * repo-backed sites the latest security sweep flagged with critical/high vulns,\n * and fire each one's `renovate.yml` `workflow_dispatch` so Renovate's OSV\n * vulnerability alerts open the remediation PR now (instead of waiting for the\n * weekly schedule). Designed to run as a best-effort follow-up step on\n * `fleet-security.yml` AFTER the sweep has written fresh counts to Airtable.\n *\n * Always exits 0: a missing token is a clean skip; a partial dispatch failure\n * (a repo without `renovate.yml`, or a token lacking `actions:write`) is reported\n * in the summary for the workflow to annotate, never failing the security sweep.\n */\nexport async function runRenovateDispatchCommand(opts: {\n fleet?: boolean | undefined;\n /** Inject a pre-opened Airtable base (tests). Defaults to env config. */\n base?: AirtableBase;\n}): Promise<{ output: string; code: number }> {\n if (!opts.fleet) {\n return { output: \"renovate-dispatch currently supports only --fleet\", code: 2 };\n }\n const token = process.env.RENOVATE_TOKEN?.trim() || process.env.GH_TOKEN?.trim();\n if (!token) {\n return {\n output: \"renovate-dispatch skipped: no RENOVATE_TOKEN/GH_TOKEN (fleet dispatch) configured.\",\n code: 0,\n };\n }\n\n const base = opts.base ?? openBase(readAirtableConfig());\n const websites = await listWebsites(base);\n const targets = selectRenovateTargets(websites);\n\n const lines: string[] = [];\n let result: RenovateDispatchResult = { dispatched: [], skipped: [], failed: [] };\n if (targets.length === 0) {\n lines.push(\n \"No active repo-backed sites with critical/high vulnerabilities — nothing to dispatch.\",\n );\n } else {\n const gh = makeGitHub({ token });\n result = await dispatchRenovateAcross(targets, {\n hasHealthyOpenRenovatePr: async (repo) =>\n hasHealthyRenovatePr(await gh.openPullRequests(repo)),\n defaultBranch: (repo) => gh.defaultBranch(repo),\n dispatch: (repo, workflow, ref) => gh.dispatchWorkflow(repo, workflow, ref),\n });\n\n const failedRepos = new Set(result.failed.map((f) => f.repo));\n const skippedRepos = new Set(result.skipped);\n for (const t of targets) {\n const status = failedRepos.has(t.repo)\n ? \"FAILED \"\n : skippedRepos.has(t.repo)\n ? \"skipped (open Renovate PR) \"\n : \"dispatched \";\n lines.push(`${status} ${t.repo} (critical=${t.critical} high=${t.high}) — ${t.siteName}`);\n }\n for (const f of result.failed) lines.push(` ↳ ${f.repo}: ${f.error}`);\n }\n\n // Counter bookkeeping runs on EVERY fleet run — the reset-on-clean branch was\n // previously unreachable behind the zero-targets early return, so a fully-clean\n // fleet never cleared stale counters (Alamo stuck at 7, 2026-07). Best-effort:\n // a failed write is tallied, never thrown. Uses the full `websites` list so\n // 0-vuln sites reset.\n const attemptUpdates = computeAutoFixAttemptUpdates(websites, result);\n const attemptTally = await applyAutoFixAttemptUpdates(attemptUpdates, (id, attempts) =>\n updateAutoFixAttempts(base, id, attempts),\n );\n\n lines.push(formatRenovateDispatchSummary(result));\n lines.push(formatAutoFixAttemptsSummary(attemptTally));\n\n return { output: lines.join(\"\\n\"), code: 0 };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBO,IAAM,yBAAyB;AAY/B,SAAS,qBAAqB,KAAoC;AACvE,SAAO,IAAI,KAAK,CAAC,OAAO,aAAa,EAAE,KAAK,GAAG,cAAc,aAAa;AAC5E;AAsBO,SAAS,sBAAsB,OAA+C;AACnF,QAAM,UAAoC,CAAC;AAC3C,aAAW,KAAK,OAAO;AACrB,QAAI,CAAC,mBAAmB,CAAC,EAAG;AAC5B,UAAM,OAAO,EAAE,SAAS,KAAK;AAC7B,QAAI,CAAC,KAAM;AACX,UAAM,WAAW,EAAE,yBAAyB;AAC5C,UAAM,OAAO,EAAE,qBAAqB;AACpC,QAAI,WAAW,QAAQ,EAAG;AAC1B,YAAQ,KAAK,EAAE,MAAM,UAAU,EAAE,MAAM,UAAU,KAAK,CAAC;AAAA,EACzD;AACA,SAAO;AACT;AAgCA,eAAsB,uBACpB,SACA,MACiC;AACjC,QAAM,aAAuB,CAAC;AAC9B,QAAM,UAAoB,CAAC;AAC3B,QAAM,SAA4C,CAAC;AACnD,aAAW,KAAK,SAAS;AACvB,QAAI;AACF,UAAI,MAAM,KAAK,yBAAyB,EAAE,IAAI,GAAG;AAC/C,gBAAQ,KAAK,EAAE,IAAI;AACnB;AAAA,MACF;AACA,YAAM,MAAM,MAAM,KAAK,cAAc,EAAE,IAAI;AAC3C,YAAM,KAAK,SAAS,EAAE,MAAM,wBAAwB,GAAG;AACvD,iBAAW,KAAK,EAAE,IAAI;AAAA,IACxB,SAAS,GAAG;AACV,aAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,EAAE,CAAC;AAAA,IACjF;AAAA,EACF;AACA,SAAO,EAAE,YAAY,SAAS,OAAO;AACvC;AAGO,SAAS,8BAA8B,QAAwC;AACpF,SAAO,wCAAwC,OAAO,WAAW,MAAM,YAAY,OAAO,QAAQ,MAAM,WAAW,OAAO,OAAO,MAAM;AACzI;AAuBO,SAAS,6BACd,OACA,QACoC;AACpC,QAAM,aAAa,IAAI,IAAI,OAAO,UAAU;AAC5C,QAAM,UAA8C,CAAC;AACrD,aAAW,KAAK,OAAO;AACrB,UAAM,UAAU,EAAE,2BAA2B;AAC7C,UAAM,SAAS,EAAE,yBAAyB,MAAM,EAAE,qBAAqB;AACvE,QAAI,UAAU,GAAG;AAIf,UAAI,YAAY,EAAG,SAAQ,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;AACzD;AAAA,IACF;AACA,QAAI,CAAC,mBAAmB,CAAC,EAAG;AAC5B,UAAM,OAAO,EAAE,SAAS,KAAK;AAC7B,QAAI,CAAC,KAAM;AACX,QAAI,CAAC,WAAW,IAAI,IAAI,EAAG;AAG3B,QAAI,6BAA6B,EAAE,kBAAkB,EAAG;AACxD,YAAQ,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,UAAU,EAAE,CAAC;AAAA,EAClD;AACA,SAAO;AACT;AAQA,eAAsB,2BACpB,SACA,OAC8C;AAC9C,MAAI,UAAU;AACd,MAAI,SAAS;AACb,aAAW,KAAK,SAAS;AACvB,QAAI;AACF,YAAM,MAAM,EAAE,IAAI,EAAE,QAAQ;AAC5B;AAAA,IACF,QAAQ;AACN;AAAA,IACF;AAAA,EACF;AACA,SAAO,EAAE,SAAS,OAAO;AAC3B;AAGO,SAAS,6BAA6B,OAAoD;AAC/F,SAAO,qCAAqC,MAAM,OAAO,WAAW,MAAM,MAAM;AAClF;;;ACtLA,eAAsB,2BAA2B,MAIH;AAC5C,MAAI,CAAC,KAAK,OAAO;AACf,WAAO,EAAE,QAAQ,qDAAqD,MAAM,EAAE;AAAA,EAChF;AACA,QAAM,QAAQ,QAAQ,IAAI,gBAAgB,KAAK,KAAK,QAAQ,IAAI,UAAU,KAAK;AAC/E,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAEA,QAAM,OAAO,KAAK,QAAQ,SAAS,mBAAmB,CAAC;AACvD,QAAM,WAAW,MAAM,aAAa,IAAI;AACxC,QAAM,UAAU,sBAAsB,QAAQ;AAE9C,QAAM,QAAkB,CAAC;AACzB,MAAI,SAAiC,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE;AAC/E,MAAI,QAAQ,WAAW,GAAG;AACxB,UAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,OAAO;AACL,UAAM,KAAK,WAAW,EAAE,MAAM,CAAC;AAC/B,aAAS,MAAM,uBAAuB,SAAS;AAAA,MAC7C,0BAA0B,OAAO,SAC/B,qBAAqB,MAAM,GAAG,iBAAiB,IAAI,CAAC;AAAA,MACtD,eAAe,CAAC,SAAS,GAAG,cAAc,IAAI;AAAA,MAC9C,UAAU,CAAC,MAAM,UAAU,QAAQ,GAAG,iBAAiB,MAAM,UAAU,GAAG;AAAA,IAC5E,CAAC;AAED,UAAM,cAAc,IAAI,IAAI,OAAO,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC5D,UAAM,eAAe,IAAI,IAAI,OAAO,OAAO;AAC3C,eAAW,KAAK,SAAS;AACvB,YAAM,SAAS,YAAY,IAAI,EAAE,IAAI,IACjC,kCACA,aAAa,IAAI,EAAE,IAAI,IACrB,kCACA;AACN,YAAM,KAAK,GAAG,MAAM,IAAI,EAAE,IAAI,cAAc,EAAE,QAAQ,SAAS,EAAE,IAAI,YAAO,EAAE,QAAQ,EAAE;AAAA,IAC1F;AACA,eAAW,KAAK,OAAO,OAAQ,OAAM,KAAK,YAAO,EAAE,IAAI,KAAK,EAAE,KAAK,EAAE;AAAA,EACvE;AAOA,QAAM,iBAAiB,6BAA6B,UAAU,MAAM;AACpE,QAAM,eAAe,MAAM;AAAA,IAA2B;AAAA,IAAgB,CAAC,IAAI,aACzE,sBAAsB,MAAM,IAAI,QAAQ;AAAA,EAC1C;AAEA,QAAM,KAAK,8BAA8B,MAAM,CAAC;AAChD,QAAM,KAAK,6BAA6B,YAAY,CAAC;AAErD,SAAO,EAAE,QAAQ,MAAM,KAAK,IAAI,GAAG,MAAM,EAAE;AAC7C;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
draftReportForSite,
|
|
3
3
|
readGaConfig
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UH5YPYS4.js";
|
|
5
5
|
import {
|
|
6
6
|
reportTier
|
|
7
7
|
} from "./chunk-62VF32IC.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
listWebsites,
|
|
24
24
|
siteSlug,
|
|
25
25
|
updateNextDueDates
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YRM6EED7.js";
|
|
27
27
|
import {
|
|
28
28
|
openBase,
|
|
29
29
|
readAirtableConfig
|
|
@@ -73,11 +73,11 @@ function dashboardBaseUrl() {
|
|
|
73
73
|
}
|
|
74
74
|
async function runReportCommand(slug, opts) {
|
|
75
75
|
if (opts.digest) {
|
|
76
|
-
const { runDigest } = await import("./digest-
|
|
76
|
+
const { runDigest } = await import("./digest-CLFUWW62.js");
|
|
77
77
|
return runDigest({ baseUrl: dashboardBaseUrl() });
|
|
78
78
|
}
|
|
79
79
|
if (opts.sendReady) {
|
|
80
|
-
const { sendApprovedReports } = await import("./orchestrate-
|
|
80
|
+
const { sendApprovedReports } = await import("./orchestrate-34JYNIXT.js");
|
|
81
81
|
return sendApprovedReports();
|
|
82
82
|
}
|
|
83
83
|
if (opts.due) {
|
|
@@ -272,4 +272,4 @@ export {
|
|
|
272
272
|
parseSingleSiteReportType,
|
|
273
273
|
runReportCommand
|
|
274
274
|
};
|
|
275
|
-
//# sourceMappingURL=report-
|
|
275
|
+
//# sourceMappingURL=report-CLF2753O.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-4NAOR44V.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveSites
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ODC4PXZL.js";
|
|
16
16
|
import "./chunk-73UFRZKY.js";
|
|
17
17
|
import "./chunk-GASBX52O.js";
|
|
18
18
|
import "./chunk-YAMRVXOD.js";
|
|
@@ -62,4 +62,4 @@ async function runSelfUpdatingCommand(site, opts) {
|
|
|
62
62
|
export {
|
|
63
63
|
runSelfUpdatingCommand
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=self-updating-
|
|
65
|
+
//# sourceMappingURL=self-updating-5TJ2NB26.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildReportDataForSite,
|
|
3
3
|
scoresFromRow
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-4PW6ISX7.js";
|
|
5
|
+
import "./chunk-UH5YPYS4.js";
|
|
6
6
|
import "./chunk-62VF32IC.js";
|
|
7
7
|
import "./chunk-37S6L6G4.js";
|
|
8
8
|
import {
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
parseAddresses,
|
|
14
14
|
prepareHeaderImage,
|
|
15
15
|
renderReportEmail
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FFI7P74K.js";
|
|
17
17
|
import "./chunk-GECESMVS.js";
|
|
18
18
|
import "./chunk-6QRLRT3P.js";
|
|
19
19
|
import {
|
|
@@ -30,7 +30,7 @@ import "./chunk-U5SZ4FOP.js";
|
|
|
30
30
|
import {
|
|
31
31
|
listWebsites,
|
|
32
32
|
siteSlug
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-YRM6EED7.js";
|
|
34
34
|
import {
|
|
35
35
|
openBase,
|
|
36
36
|
readAirtableConfig
|
|
@@ -162,4 +162,4 @@ async function runSelftestCommand(kind, site, opts) {
|
|
|
162
162
|
export {
|
|
163
163
|
runSelftestCommand
|
|
164
164
|
};
|
|
165
|
-
//# sourceMappingURL=selftest-
|
|
165
|
+
//# sourceMappingURL=selftest-BTCZLCTL.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
smokeSuite
|
|
14
14
|
} from "./chunk-K5JZ5KLO.js";
|
|
@@ -51,4 +51,4 @@ async function runSmokeSuiteCommand(site, opts) {
|
|
|
51
51
|
export {
|
|
52
52
|
runSmokeSuiteCommand
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=smoke-suite-
|
|
54
|
+
//# sourceMappingURL=smoke-suite-GHKXMKIR.js.map
|
|
@@ -41,7 +41,7 @@ async function rescoreNewSubmissions(db, opts) {
|
|
|
41
41
|
async function loadSiteNames() {
|
|
42
42
|
try {
|
|
43
43
|
const { openBase, readAirtableConfig } = await import("./client-EPVO3FEH.js");
|
|
44
|
-
const { listWebsites } = await import("./websites-
|
|
44
|
+
const { listWebsites } = await import("./websites-JXG3WWAU.js");
|
|
45
45
|
const sites = await listWebsites(openBase(readAirtableConfig()));
|
|
46
46
|
return new Map(sites.map((s) => [s.id, s.name]));
|
|
47
47
|
} catch (err) {
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
rescoreNewSubmissions,
|
|
120
120
|
runSubmissionsCommand
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=submissions-
|
|
122
|
+
//# sourceMappingURL=submissions-KUXLKCSQ.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
svelteCodemods
|
|
14
14
|
} from "./chunk-LS6QPANO.js";
|
|
@@ -51,4 +51,4 @@ async function runSvelteCodemodsCommand(site, opts) {
|
|
|
51
51
|
export {
|
|
52
52
|
runSvelteCodemodsCommand
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=svelte-codemods-
|
|
54
|
+
//# sourceMappingURL=svelte-codemods-YTCTLK7G.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
ALL_CONFIG_NAMES,
|
|
14
14
|
CANONICAL_GITIGNORE_ENTRIES,
|
|
@@ -113,4 +113,4 @@ async function runSyncConfigsCommand(site, opts) {
|
|
|
113
113
|
export {
|
|
114
114
|
runSyncConfigsCommand
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=sync-configs-
|
|
116
|
+
//# sourceMappingURL=sync-configs-KSSQZU5L.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-4NAOR44V.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveSites
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ODC4PXZL.js";
|
|
12
12
|
import {
|
|
13
13
|
upgradeSvelte4to5
|
|
14
14
|
} from "./chunk-B5ZUQZFL.js";
|
|
@@ -60,4 +60,4 @@ async function runUpgradeCommand(upgradeName, site, opts = {}) {
|
|
|
60
60
|
export {
|
|
61
61
|
runUpgradeCommand
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=upgrade-
|
|
63
|
+
//# sourceMappingURL=upgrade-UDAPY3SN.js.map
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
PRE_LAUNCH_STATUSES,
|
|
6
6
|
SEVERITY_RANK,
|
|
7
7
|
WEBSITES_TABLE,
|
|
8
|
+
allActionableVulnsTransitive,
|
|
8
9
|
getWebsiteBySlug,
|
|
9
10
|
isArchivedStatus,
|
|
10
11
|
isDashboardVisible,
|
|
@@ -28,7 +29,7 @@ import {
|
|
|
28
29
|
updateScores,
|
|
29
30
|
updateSecurityCounts,
|
|
30
31
|
updateSiteField
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YRM6EED7.js";
|
|
32
33
|
export {
|
|
33
34
|
ACTIVE_STATUSES,
|
|
34
35
|
ARCHIVED_STATUSES,
|
|
@@ -36,6 +37,7 @@ export {
|
|
|
36
37
|
PRE_LAUNCH_STATUSES,
|
|
37
38
|
SEVERITY_RANK,
|
|
38
39
|
WEBSITES_TABLE,
|
|
40
|
+
allActionableVulnsTransitive,
|
|
39
41
|
getWebsiteBySlug,
|
|
40
42
|
isArchivedStatus,
|
|
41
43
|
isDashboardVisible,
|
|
@@ -60,4 +62,4 @@ export {
|
|
|
60
62
|
updateSecurityCounts,
|
|
61
63
|
updateSiteField
|
|
62
64
|
};
|
|
63
|
-
//# sourceMappingURL=websites-
|
|
65
|
+
//# sourceMappingURL=websites-JXG3WWAU.js.map
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
formatFleetWriteSummary,
|
|
3
3
|
writeAuditsToAirtable,
|
|
4
4
|
writeFleetAuditsToAirtable
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-2BHSGLWR.js";
|
|
6
|
+
import "./chunk-LMCO7CYQ.js";
|
|
7
7
|
import "./chunk-5L3FPQIJ.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-YRM6EED7.js";
|
|
9
9
|
export {
|
|
10
10
|
formatFleetWriteSummary,
|
|
11
11
|
writeAuditsToAirtable,
|
|
12
12
|
writeFleetAuditsToAirtable
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=write-audits-to-airtable-
|
|
14
|
+
//# sourceMappingURL=write-audits-to-airtable-7D3LV4KP.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reddoorla/maintenance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.82.0",
|
|
4
4
|
"description": "Canonical maintenance configs, audits, and recipes for the reddoor stack.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"listr2": "^10.2.1",
|
|
66
66
|
"node-html-parser": "^9.0.0",
|
|
67
67
|
"prettier": "^3.1.1",
|
|
68
|
-
"prettier-plugin-svelte": "^
|
|
68
|
+
"prettier-plugin-svelte": "^4.0.0",
|
|
69
69
|
"tinyglobby": "^0.2.10",
|
|
70
70
|
"typescript-eslint": "^8.59.1"
|
|
71
71
|
},
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@changesets/cli": "^2.31.0",
|
|
82
|
-
"@google-analytics/data": "^
|
|
82
|
+
"@google-analytics/data": "^7.0.0",
|
|
83
83
|
"@lhci/cli": "^0.15.1",
|
|
84
84
|
"@libsql/client": "^0.8.1",
|
|
85
85
|
"@libsql/kysely-libsql": "^0.4.1",
|