@reddoorla/maintenance 0.95.1 → 0.97.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/README.md +41 -7
- package/dist/{announce-CLQYX5I4.js → announce-5ZD2SBGD.js} +39 -31
- package/dist/announce-5ZD2SBGD.js.map +1 -0
- package/dist/attachments-JFGFQRXQ.js +10 -0
- package/dist/{blux-4KNXUP2K.js → blux-NXQLMS4W.js} +1 -1
- package/dist/{bump-deps-C5G2EFBB.js → bump-deps-775VLDYB.js} +6 -6
- package/dist/{chunk-FUWFLAWQ.js → chunk-3RLDX3Q2.js} +5 -5
- package/dist/{chunk-XHHMM5HX.js → chunk-43SW3FGW.js} +63 -1
- package/dist/chunk-43SW3FGW.js.map +1 -0
- package/dist/{chunk-R53VL3RI.js → chunk-5CJVUPJU.js} +1 -1
- package/dist/{chunk-R53VL3RI.js.map → chunk-5CJVUPJU.js.map} +1 -1
- package/dist/{chunk-S7RYFUIK.js → chunk-6PGXKN6F.js} +2 -2
- package/dist/{chunk-HTABUCF4.js → chunk-6THEZQLA.js} +3 -3
- package/dist/chunk-A5QKNOXW.js +72 -0
- package/dist/chunk-A5QKNOXW.js.map +1 -0
- package/dist/chunk-ASLDCWBF.js +41 -0
- package/dist/chunk-ASLDCWBF.js.map +1 -0
- package/dist/{chunk-CWXTNPNZ.js → chunk-AYDQQBNG.js} +3 -3
- package/dist/chunk-AYDQQBNG.js.map +1 -0
- package/dist/{chunk-WVNDEYXL.js → chunk-BINFZQ2T.js} +57 -6
- package/dist/chunk-BINFZQ2T.js.map +1 -0
- package/dist/{chunk-2NQUCS7O.js → chunk-BIYQN7FH.js} +3 -1
- package/dist/{chunk-2NQUCS7O.js.map → chunk-BIYQN7FH.js.map} +1 -1
- package/dist/{chunk-YLYXW5PH.js → chunk-CXICCLNM.js} +34 -4
- package/dist/chunk-CXICCLNM.js.map +1 -0
- package/dist/{chunk-BYGPUUCT.js → chunk-DRNZVORX.js} +66 -30
- package/dist/chunk-DRNZVORX.js.map +1 -0
- package/dist/{chunk-LM2NHRCJ.js → chunk-DYTYPKFN.js} +4 -4
- package/dist/chunk-DYTYPKFN.js.map +1 -0
- package/dist/{chunk-DFKBTBO3.js → chunk-EN6CTBUN.js} +35 -6
- package/dist/chunk-EN6CTBUN.js.map +1 -0
- package/dist/{chunk-5EEMTJMT.js → chunk-FHFXJ3EM.js} +8 -6
- package/dist/chunk-FHFXJ3EM.js.map +1 -0
- package/dist/{chunk-Z2K4JPQ3.js → chunk-FP6HOW6J.js} +10 -7
- package/dist/chunk-FP6HOW6J.js.map +1 -0
- package/dist/{chunk-2LYOAB2E.js → chunk-HSMN35LU.js} +2 -2
- package/dist/chunk-ICSRWW5Q.js +148 -0
- package/dist/chunk-ICSRWW5Q.js.map +1 -0
- package/dist/{chunk-FSGICFXB.js → chunk-IDBPII6G.js} +17 -5
- package/dist/chunk-IDBPII6G.js.map +1 -0
- package/dist/{chunk-C3IQQKXL.js → chunk-IOTOOTII.js} +121 -1
- package/dist/{chunk-C3IQQKXL.js.map → chunk-IOTOOTII.js.map} +1 -1
- package/dist/{chunk-BCKEP5S6.js → chunk-JHJNNJLG.js} +2 -2
- package/dist/{chunk-TO7DJYLZ.js → chunk-L3S3QZXL.js} +178 -39
- package/dist/chunk-L3S3QZXL.js.map +1 -0
- package/dist/{chunk-WSJ7RO54.js → chunk-LAG6IP7Y.js} +23 -5
- package/dist/chunk-LAG6IP7Y.js.map +1 -0
- package/dist/{chunk-WJMPCVOR.js → chunk-LAJ3FF54.js} +12 -4
- package/dist/chunk-LAJ3FF54.js.map +1 -0
- package/dist/{chunk-2ZAZ7ETT.js → chunk-LDHRIQUW.js} +32 -18
- package/dist/chunk-LDHRIQUW.js.map +1 -0
- package/dist/{chunk-6R56OKJZ.js → chunk-LF2TJN4X.js} +2 -2
- package/dist/chunk-LF2TJN4X.js.map +1 -0
- package/dist/{chunk-ZQV7UQNE.js → chunk-LUF52EIY.js} +2 -2
- package/dist/{chunk-5UINJNAJ.js → chunk-LZMAG73U.js} +34 -21
- package/dist/chunk-LZMAG73U.js.map +1 -0
- package/dist/{chunk-VSGMCCGQ.js → chunk-MMSMZC7S.js} +2 -2
- package/dist/chunk-MVKNU4QD.js +37 -0
- package/dist/chunk-MVKNU4QD.js.map +1 -0
- package/dist/{chunk-XPJQXSC4.js → chunk-P7323YVW.js} +27 -5
- package/dist/chunk-P7323YVW.js.map +1 -0
- package/dist/{chunk-KJRVMMM3.js → chunk-PARKXDXI.js} +36 -5
- package/dist/chunk-PARKXDXI.js.map +1 -0
- package/dist/{chunk-4763KQ6O.js → chunk-PXRN2MER.js} +2 -2
- package/dist/{chunk-WMBLR5VA.js → chunk-PZZ6HM5T.js} +3 -3
- package/dist/{chunk-TR3HFH6J.js → chunk-QFSL2L2B.js} +67 -10
- package/dist/chunk-QFSL2L2B.js.map +1 -0
- package/dist/chunk-RQJFGK3A.js +51 -0
- package/dist/chunk-RQJFGK3A.js.map +1 -0
- package/dist/{chunk-3Z6X3BHU.js → chunk-TC4GANMX.js} +53 -150
- package/dist/chunk-TC4GANMX.js.map +1 -0
- package/dist/{chunk-F3JWOPTG.js → chunk-TEMQPSCM.js} +45 -105
- package/dist/chunk-TEMQPSCM.js.map +1 -0
- package/dist/chunk-TJLKWQOX.js +52 -0
- package/dist/chunk-TJLKWQOX.js.map +1 -0
- package/dist/{chunk-CJ2RMTT7.js → chunk-TV76A6GN.js} +2 -2
- package/dist/{chunk-KZRR4NFG.js → chunk-TVZ6QCOE.js} +3 -3
- package/dist/{chunk-BVEDKMNG.js → chunk-U2ZI6G7H.js} +29 -11
- package/dist/chunk-U2ZI6G7H.js.map +1 -0
- package/dist/chunk-UPE6D4AT.js +69 -0
- package/dist/chunk-UPE6D4AT.js.map +1 -0
- package/dist/{chunk-R5IMFAFR.js → chunk-VMGHQUTV.js} +7 -16
- package/dist/chunk-VMGHQUTV.js.map +1 -0
- package/dist/chunk-VQMAAQ5M.js +53 -0
- package/dist/chunk-VQMAAQ5M.js.map +1 -0
- package/dist/{chunk-AVEQUR44.js → chunk-WMF5S2MB.js} +60 -17
- package/dist/chunk-WMF5S2MB.js.map +1 -0
- package/dist/{chunk-SVAAONYB.js → chunk-WQLNUEZL.js} +12 -2
- package/dist/{chunk-SVAAONYB.js.map → chunk-WQLNUEZL.js.map} +1 -1
- package/dist/{chunk-XN37VTDB.js → chunk-X56LAKPR.js} +3 -3
- package/dist/chunk-X56LAKPR.js.map +1 -0
- package/dist/{chunk-ZCL7C5LH.js → chunk-Y6FCXRIC.js} +1661 -387
- package/dist/chunk-Y6FCXRIC.js.map +1 -0
- package/dist/{chunk-2SLED3NB.js → chunk-YDZ7XGPZ.js} +1 -1
- package/dist/{chunk-2SLED3NB.js.map → chunk-YDZ7XGPZ.js.map} +1 -1
- package/dist/{chunk-IY6256GK.js → chunk-YJBSB4LP.js} +6 -1
- package/dist/chunk-YJBSB4LP.js.map +1 -0
- package/dist/{chunk-BI2VI6EM.js → chunk-YXWBM26P.js} +2 -2
- package/dist/{chunk-QF6IQQFP.js → chunk-Z7FDJ35L.js} +18 -12
- package/dist/chunk-Z7FDJ35L.js.map +1 -0
- package/dist/cli/bin.js +111 -51
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/audit.d.ts +33 -3
- package/dist/cli/commands/audit.js +28 -25
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/client-DGTO65WB.js +11 -0
- package/dist/configs/playwright-a11y.d.ts +11 -1
- package/dist/configs/playwright-a11y.js +3 -1
- package/dist/{convert-to-pnpm-YTFREUJK.js → convert-to-pnpm-KLWA53N5.js} +6 -6
- package/dist/{db-XKZYDCKM.js → db-II5WAK4D.js} +45 -20
- package/dist/db-II5WAK4D.js.map +1 -0
- package/dist/deadletter-G4M3HSVM.js +17 -0
- package/dist/{digest-7UBGUBRK.js → digest-CWKK2DMR.js} +56 -32
- package/dist/digest-CWKK2DMR.js.map +1 -0
- package/dist/{digest-collectors-DJFN5ZDK.js → digest-collectors-CYTN2EUX.js} +17 -12
- package/dist/{digest-state-3KHZF7GD.js → digest-state-ZDPKR7MW.js} +18 -2
- package/dist/digest-state-ZDPKR7MW.js.map +1 -0
- package/dist/ensure-site-2QZHFVQ3.js +70 -0
- package/dist/ensure-site-2QZHFVQ3.js.map +1 -0
- package/dist/ensure-site-JEKV2ODE.js +105 -0
- package/dist/ensure-site-JEKV2ODE.js.map +1 -0
- package/dist/{ensure-site-OAAE5YE2.js → ensure-site-OO4UPWNQ.js} +49 -44
- package/dist/ensure-site-OO4UPWNQ.js.map +1 -0
- package/dist/fleet-events-CkOZpMVC.d.ts +435 -0
- package/dist/{fleet-state-UEVZ3X3J.js → fleet-state-RJROYXKO.js} +19 -7
- package/dist/{forms-notify-target-UC6PF3AE.js → forms-notify-target-X6UEOI2M.js} +19 -15
- package/dist/forms-notify-target-X6UEOI2M.js.map +1 -0
- package/dist/{freeze-A6MUCZU4.js → freeze-GUQ43EAU.js} +2 -2
- package/dist/{github-signals-TX5FPYP6.js → github-signals-QIRTHHET.js} +22 -17
- package/dist/github-signals-QIRTHHET.js.map +1 -0
- package/dist/{header-image-PSPT7CUM.js → header-image-H7ZJAV26.js} +15 -18
- package/dist/header-image-H7ZJAV26.js.map +1 -0
- package/dist/{health-endpoint-KVCJYWET.js → health-endpoint-BJ6BKRHF.js} +8 -7
- package/dist/{health-endpoint-KVCJYWET.js.map → health-endpoint-BJ6BKRHF.js.map} +1 -1
- package/dist/{health-mirror-XJAKA3EY.js → health-mirror-KU3G7V2Y.js} +10 -10
- package/dist/{import-airtable-TAKSN4NV.js → import-airtable-UBF5GYAL.js} +3 -3
- package/dist/index.d.ts +158 -419
- package/dist/index.js +91 -46
- package/dist/index.js.map +1 -1
- package/dist/{init-FFE4FCO2.js → init-GOWDA5QS.js} +19 -18
- package/dist/{init-FFE4FCO2.js.map → init-GOWDA5QS.js.map} +1 -1
- package/dist/{launch-UD36AHUN.js → launch-7N3X2MXB.js} +229 -79
- package/dist/launch-7N3X2MXB.js.map +1 -0
- package/dist/{lighthouse-VHI77PFB.js → lighthouse-52WSPZ5D.js} +2 -2
- package/dist/lighthouse-airtable-M45OPVRV.js +14 -0
- package/dist/match-harness-GBCDSVPS.js +417 -0
- package/dist/match-harness-GBCDSVPS.js.map +1 -0
- package/dist/migrate-XZ7U5DFC.js +7 -0
- package/dist/{notify-IISTHNBR.js → notify-K3WVH3DM.js} +4 -4
- package/dist/{onboard-TM2KESGF.js → onboard-JQQIMQW7.js} +6 -6
- package/dist/{orchestrate-HYVQPRCE.js → orchestrate-L2A5BZFY.js} +13 -10
- package/dist/parity-2JGVUCZD.js +14 -0
- package/dist/{pipeline-YROAY6DT.js → pipeline-UUPXOS2J.js} +3 -3
- package/dist/{preflight-RYIP54NY.js → preflight-O7Q6FWHU.js} +35 -11
- package/dist/preflight-O7Q6FWHU.js.map +1 -0
- package/dist/{prismic-ci-6GKKZGB5.js → prismic-ci-NAPWOXXD.js} +39 -9
- package/dist/prismic-ci-NAPWOXXD.js.map +1 -0
- package/dist/{prismic-models-P6FWWVRS.js → prismic-models-LL6ORTQ2.js} +20 -17
- package/dist/prismic-models-LL6ORTQ2.js.map +1 -0
- package/dist/prospect/types.d.ts +72 -0
- package/dist/prospect/types.js +1 -1
- package/dist/{prospect-audit-PRHU53HS.js → prospect-audit-FMPGQIRQ.js} +16 -7
- package/dist/prospect-audit-FMPGQIRQ.js.map +1 -0
- package/dist/{prospect-audits-R3LWF6U7.js → prospect-audits-IZVQY3OQ.js} +4 -2
- package/dist/protection-audit-YXJKFU6O.js +413 -0
- package/dist/protection-audit-YXJKFU6O.js.map +1 -0
- package/dist/recipes/sync-configs.js +3 -3
- package/dist/{render-YGNGTX3W.js → render-MHUUHPLN.js} +36 -9
- package/dist/render-MHUUHPLN.js.map +1 -0
- package/dist/{render-from-row-IFSBHWDH.js → render-from-row-75JTED2Z.js} +6 -4
- package/dist/{renovate-dispatch-U5Q52SKT.js → renovate-dispatch-2IHAZDVA.js} +14 -9
- package/dist/{renovate-dispatch-U5Q52SKT.js.map → renovate-dispatch-2IHAZDVA.js.map} +1 -1
- package/dist/{replay-PCSQOGCZ.js → replay-4FVFOMHH.js} +10 -23
- package/dist/replay-4FVFOMHH.js.map +1 -0
- package/dist/{report-LQS4ECTM.js → report-IAHXN5CW.js} +103 -57
- package/dist/report-IAHXN5CW.js.map +1 -0
- package/dist/{report-mirror-HDTOJE64.js → report-mirror-4QM57LMS.js} +34 -12
- package/dist/report-mirror-4QM57LMS.js.map +1 -0
- package/dist/roster-GDNSIRAK.js +19 -0
- package/dist/roster-GDNSIRAK.js.map +1 -0
- package/dist/{schema-A4WCPIF4.js → schema-KWUQEZ5O.js} +1 -1
- package/dist/schema-KWUQEZ5O.js.map +1 -0
- package/dist/{self-updating-MWXIZLL7.js → self-updating-ZUWPGYUP.js} +8 -7
- package/dist/{self-updating-MWXIZLL7.js.map → self-updating-ZUWPGYUP.js.map} +1 -1
- package/dist/{selftest-VXTHRPRN.js → selftest-G4W3LIBQ.js} +21 -17
- package/dist/{selftest-VXTHRPRN.js.map → selftest-G4W3LIBQ.js.map} +1 -1
- package/dist/site-create-ZU3ACBTO.js +45 -0
- package/dist/site-create-ZU3ACBTO.js.map +1 -0
- package/dist/site-lookup-DTOLJ4EA.js +27 -0
- package/dist/site-lookup-DTOLJ4EA.js.map +1 -0
- package/dist/{site-mirror-WON4FTJ2.js → site-mirror-WR7ACXOV.js} +26 -12
- package/dist/site-mirror-WR7ACXOV.js.map +1 -0
- package/dist/{smoke-suite-7DGITCTZ.js → smoke-suite-WAUPI6EJ.js} +8 -7
- package/dist/{smoke-suite-7DGITCTZ.js.map → smoke-suite-WAUPI6EJ.js.map} +1 -1
- package/dist/{submissions-OVZPVBYG.js → submissions-2SHCFOKD.js} +12 -7
- package/dist/submissions-2SHCFOKD.js.map +1 -0
- package/dist/{submissions-3I3GAQAX.js → submissions-JDZP35JM.js} +49 -9
- package/dist/submissions-JDZP35JM.js.map +1 -0
- package/dist/{svelte-codemods-WSV2FGNG.js → svelte-codemods-VOLOKKFI.js} +6 -6
- package/dist/{sync-K3PKHVLH.js → sync-F4USL4K5.js} +6 -6
- package/dist/{sync-configs-RRIHNLIJ.js → sync-configs-OXSWKVZ2.js} +6 -6
- package/dist/turso-KQKBBQCK.js +24 -0
- package/dist/turso-KQKBBQCK.js.map +1 -0
- package/dist/{upgrade-VTD6V4HS.js → upgrade-EVAL3JTO.js} +6 -6
- package/dist/util/git.d.ts +49 -10
- package/dist/util/git.js +1 -1
- package/dist/{webflow-IRKOIT7S.js → webflow-624FEBFD.js} +4 -4
- package/dist/{websites-TB4TCAWM.js → websites-Y6FN2XFD.js} +27 -20
- package/dist/{write-audits-to-airtable-53EVXKMU.js → write-audits-to-airtable-TI3JMWSY.js} +7 -5
- package/package.json +3 -2
- package/dist/airtable-JGCPS7JH.js +0 -9
- package/dist/announce-CLQYX5I4.js.map +0 -1
- package/dist/attachments-NLZIJ5NU.js +0 -9
- package/dist/chunk-2ZAZ7ETT.js.map +0 -1
- package/dist/chunk-3Z6X3BHU.js.map +0 -1
- package/dist/chunk-5EEMTJMT.js.map +0 -1
- package/dist/chunk-5GUJ36TL.js +0 -53
- package/dist/chunk-5GUJ36TL.js.map +0 -1
- package/dist/chunk-5UINJNAJ.js.map +0 -1
- package/dist/chunk-6R56OKJZ.js.map +0 -1
- package/dist/chunk-AVEQUR44.js.map +0 -1
- package/dist/chunk-BVEDKMNG.js.map +0 -1
- package/dist/chunk-BYGPUUCT.js.map +0 -1
- package/dist/chunk-CWXTNPNZ.js.map +0 -1
- package/dist/chunk-DFKBTBO3.js.map +0 -1
- package/dist/chunk-F3JWOPTG.js.map +0 -1
- package/dist/chunk-FSGICFXB.js.map +0 -1
- package/dist/chunk-GASBX52O.js +0 -12
- package/dist/chunk-GASBX52O.js.map +0 -1
- package/dist/chunk-IY6256GK.js.map +0 -1
- package/dist/chunk-KJRVMMM3.js.map +0 -1
- package/dist/chunk-LM2NHRCJ.js.map +0 -1
- package/dist/chunk-QF6IQQFP.js.map +0 -1
- package/dist/chunk-R5IMFAFR.js.map +0 -1
- package/dist/chunk-TO7DJYLZ.js.map +0 -1
- package/dist/chunk-TR3HFH6J.js.map +0 -1
- package/dist/chunk-WJMPCVOR.js.map +0 -1
- package/dist/chunk-WSJ7RO54.js.map +0 -1
- package/dist/chunk-WVNDEYXL.js.map +0 -1
- package/dist/chunk-XHHMM5HX.js.map +0 -1
- package/dist/chunk-XN37VTDB.js.map +0 -1
- package/dist/chunk-XPJQXSC4.js.map +0 -1
- package/dist/chunk-YFAXOD7Z.js +0 -42
- package/dist/chunk-YFAXOD7Z.js.map +0 -1
- package/dist/chunk-YLYXW5PH.js.map +0 -1
- package/dist/chunk-Z2K4JPQ3.js.map +0 -1
- package/dist/chunk-ZCL7C5LH.js.map +0 -1
- package/dist/client-G2WGWPCA.js +0 -11
- package/dist/db-XKZYDCKM.js.map +0 -1
- package/dist/digest-7UBGUBRK.js.map +0 -1
- package/dist/digest-state-3KHZF7GD.js.map +0 -1
- package/dist/ensure-site-OAAE5YE2.js.map +0 -1
- package/dist/fleet-events-cF2Om88w.d.ts +0 -24
- package/dist/forms-notify-target-UC6PF3AE.js.map +0 -1
- package/dist/github-signals-TX5FPYP6.js.map +0 -1
- package/dist/header-image-PSPT7CUM.js.map +0 -1
- package/dist/launch-UD36AHUN.js.map +0 -1
- package/dist/lighthouse-airtable-YMH4UA7R.js +0 -12
- package/dist/match-harness-QRG6XZAR.js +0 -70
- package/dist/match-harness-QRG6XZAR.js.map +0 -1
- package/dist/migrate-Y7R4CESL.js +0 -7
- package/dist/parity-CAJ477PS.js +0 -14
- package/dist/preflight-RYIP54NY.js.map +0 -1
- package/dist/prismic-ci-6GKKZGB5.js.map +0 -1
- package/dist/prismic-models-P6FWWVRS.js.map +0 -1
- package/dist/prospect-audit-PRHU53HS.js.map +0 -1
- package/dist/protection-audit-SJO53MEQ.js +0 -168
- package/dist/protection-audit-SJO53MEQ.js.map +0 -1
- package/dist/render-YGNGTX3W.js.map +0 -1
- package/dist/replay-PCSQOGCZ.js.map +0 -1
- package/dist/report-LQS4ECTM.js.map +0 -1
- package/dist/report-mirror-HDTOJE64.js.map +0 -1
- package/dist/schema-A4WCPIF4.js.map +0 -1
- package/dist/site-mirror-WON4FTJ2.js.map +0 -1
- package/dist/submissions-3I3GAQAX.js.map +0 -1
- package/dist/submissions-OVZPVBYG.js.map +0 -1
- /package/dist/{airtable-JGCPS7JH.js.map → attachments-JFGFQRXQ.js.map} +0 -0
- /package/dist/{blux-4KNXUP2K.js.map → blux-NXQLMS4W.js.map} +0 -0
- /package/dist/{bump-deps-C5G2EFBB.js.map → bump-deps-775VLDYB.js.map} +0 -0
- /package/dist/{chunk-FUWFLAWQ.js.map → chunk-3RLDX3Q2.js.map} +0 -0
- /package/dist/{chunk-S7RYFUIK.js.map → chunk-6PGXKN6F.js.map} +0 -0
- /package/dist/{chunk-HTABUCF4.js.map → chunk-6THEZQLA.js.map} +0 -0
- /package/dist/{chunk-2LYOAB2E.js.map → chunk-HSMN35LU.js.map} +0 -0
- /package/dist/{chunk-BCKEP5S6.js.map → chunk-JHJNNJLG.js.map} +0 -0
- /package/dist/{chunk-ZQV7UQNE.js.map → chunk-LUF52EIY.js.map} +0 -0
- /package/dist/{chunk-VSGMCCGQ.js.map → chunk-MMSMZC7S.js.map} +0 -0
- /package/dist/{chunk-4763KQ6O.js.map → chunk-PXRN2MER.js.map} +0 -0
- /package/dist/{chunk-WMBLR5VA.js.map → chunk-PZZ6HM5T.js.map} +0 -0
- /package/dist/{chunk-CJ2RMTT7.js.map → chunk-TV76A6GN.js.map} +0 -0
- /package/dist/{chunk-KZRR4NFG.js.map → chunk-TVZ6QCOE.js.map} +0 -0
- /package/dist/{chunk-BI2VI6EM.js.map → chunk-YXWBM26P.js.map} +0 -0
- /package/dist/{attachments-NLZIJ5NU.js.map → client-DGTO65WB.js.map} +0 -0
- /package/dist/{convert-to-pnpm-YTFREUJK.js.map → convert-to-pnpm-KLWA53N5.js.map} +0 -0
- /package/dist/{client-G2WGWPCA.js.map → deadletter-G4M3HSVM.js.map} +0 -0
- /package/dist/{digest-collectors-DJFN5ZDK.js.map → digest-collectors-CYTN2EUX.js.map} +0 -0
- /package/dist/{fleet-state-UEVZ3X3J.js.map → fleet-state-RJROYXKO.js.map} +0 -0
- /package/dist/{freeze-A6MUCZU4.js.map → freeze-GUQ43EAU.js.map} +0 -0
- /package/dist/{health-mirror-XJAKA3EY.js.map → health-mirror-KU3G7V2Y.js.map} +0 -0
- /package/dist/{import-airtable-TAKSN4NV.js.map → import-airtable-UBF5GYAL.js.map} +0 -0
- /package/dist/{lighthouse-VHI77PFB.js.map → lighthouse-52WSPZ5D.js.map} +0 -0
- /package/dist/{lighthouse-airtable-YMH4UA7R.js.map → lighthouse-airtable-M45OPVRV.js.map} +0 -0
- /package/dist/{migrate-Y7R4CESL.js.map → migrate-XZ7U5DFC.js.map} +0 -0
- /package/dist/{notify-IISTHNBR.js.map → notify-K3WVH3DM.js.map} +0 -0
- /package/dist/{onboard-TM2KESGF.js.map → onboard-JQQIMQW7.js.map} +0 -0
- /package/dist/{orchestrate-HYVQPRCE.js.map → orchestrate-L2A5BZFY.js.map} +0 -0
- /package/dist/{parity-CAJ477PS.js.map → parity-2JGVUCZD.js.map} +0 -0
- /package/dist/{pipeline-YROAY6DT.js.map → pipeline-UUPXOS2J.js.map} +0 -0
- /package/dist/{prospect-audits-R3LWF6U7.js.map → prospect-audits-IZVQY3OQ.js.map} +0 -0
- /package/dist/{render-from-row-IFSBHWDH.js.map → render-from-row-75JTED2Z.js.map} +0 -0
- /package/dist/{svelte-codemods-WSV2FGNG.js.map → svelte-codemods-VOLOKKFI.js.map} +0 -0
- /package/dist/{sync-K3PKHVLH.js.map → sync-F4USL4K5.js.map} +0 -0
- /package/dist/{sync-configs-RRIHNLIJ.js.map → sync-configs-OXSWKVZ2.js.map} +0 -0
- /package/dist/{upgrade-VTD6V4HS.js.map → upgrade-EVAL3JTO.js.map} +0 -0
- /package/dist/{webflow-IRKOIT7S.js.map → webflow-624FEBFD.js.map} +0 -0
- /package/dist/{websites-TB4TCAWM.js.map → websites-Y6FN2XFD.js.map} +0 -0
- /package/dist/{write-audits-to-airtable-53EVXKMU.js.map → write-audits-to-airtable-TI3JMWSY.js.map} +0 -0
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
} from "./chunk-LKGVSM2O.js";
|
|
4
4
|
import {
|
|
5
5
|
readGitHubConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MVKNU4QD.js";
|
|
7
7
|
import {
|
|
8
8
|
assertUrlSegment
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-43SW3FGW.js";
|
|
10
10
|
import {
|
|
11
11
|
lighthouseAudit,
|
|
12
12
|
readSiteConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BIYQN7FH.js";
|
|
14
14
|
import {
|
|
15
15
|
smokeAudit
|
|
16
16
|
} from "./chunk-UDRHAQT7.js";
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
import {
|
|
30
30
|
a11yRoutes,
|
|
31
31
|
smokeRoutes
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-CXICCLNM.js";
|
|
33
33
|
|
|
34
34
|
// src/audits/deps.ts
|
|
35
35
|
import { readFile } from "fs/promises";
|
|
@@ -247,6 +247,7 @@ function mapDependabotAlert(raw) {
|
|
|
247
247
|
const cveId = typeof adv["cve_id"] === "string" ? adv["cve_id"] : null;
|
|
248
248
|
const rawScope = dependency["scope"];
|
|
249
249
|
const rawRelationship = dependency["relationship"];
|
|
250
|
+
const rawManifest = dependency["manifest_path"];
|
|
250
251
|
return {
|
|
251
252
|
package: packageName,
|
|
252
253
|
severity: typeof adv["severity"] === "string" ? adv["severity"] : "",
|
|
@@ -254,7 +255,8 @@ function mapDependabotAlert(raw) {
|
|
|
254
255
|
cves: cveId ? [cveId] : [],
|
|
255
256
|
url: typeof raw["html_url"] === "string" ? raw["html_url"] : null,
|
|
256
257
|
scope: rawScope === "runtime" || rawScope === "development" ? rawScope : null,
|
|
257
|
-
relationship: rawRelationship === "direct" || rawRelationship === "transitive" ? rawRelationship : null
|
|
258
|
+
relationship: rawRelationship === "direct" || rawRelationship === "transitive" || rawRelationship === "inconclusive" ? rawRelationship : null,
|
|
259
|
+
manifestPath: typeof rawManifest === "string" && rawManifest ? rawManifest : null
|
|
258
260
|
};
|
|
259
261
|
}
|
|
260
262
|
function makeGitHubRest(deps) {
|
|
@@ -397,6 +399,23 @@ function makeGitHubRest(deps) {
|
|
|
397
399
|
url = nextLink(res.headers.get("link"));
|
|
398
400
|
}
|
|
399
401
|
return out;
|
|
402
|
+
},
|
|
403
|
+
async manifestExists(repo, path) {
|
|
404
|
+
const { owner, name } = splitRepo(repo);
|
|
405
|
+
assertUrlSegment("path", owner);
|
|
406
|
+
assertUrlSegment("path", name);
|
|
407
|
+
const encoded = path.split("/").map(encodeURIComponent).join("/");
|
|
408
|
+
const res = await doFetch(`${GITHUB_API}/repos/${owner}/${name}/contents/${encoded}`, {
|
|
409
|
+
headers: baseHeaders,
|
|
410
|
+
signal: AbortSignal.timeout(DEPENDABOT_FETCH_TIMEOUT_MS)
|
|
411
|
+
});
|
|
412
|
+
if (res.status === 404) return false;
|
|
413
|
+
if (!res.ok) {
|
|
414
|
+
throw new Error(
|
|
415
|
+
`GitHub GET contents/${path} ${owner}/${name} failed (${res.status}): ${await bodyText(res)}`
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
return true;
|
|
400
419
|
}
|
|
401
420
|
};
|
|
402
421
|
}
|
|
@@ -497,7 +516,25 @@ function defaultDependabotDeps() {
|
|
|
497
516
|
const cfg = readGitHubConfig();
|
|
498
517
|
if (!cfg) return null;
|
|
499
518
|
const gh = makeGitHubRest({ token: cfg.token });
|
|
500
|
-
return {
|
|
519
|
+
return {
|
|
520
|
+
listAlerts: (repo) => gh.listDependabotAlerts(repo, { state: "open" }),
|
|
521
|
+
manifestExists: (repo, path) => gh.manifestExists(repo, path)
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
async function absentManifests(deps, repo, alerts, label) {
|
|
525
|
+
const absent = /* @__PURE__ */ new Set();
|
|
526
|
+
if (!deps.manifestExists) return absent;
|
|
527
|
+
const paths = new Set(alerts.flatMap((a) => a.manifestPath ? [a.manifestPath] : []));
|
|
528
|
+
for (const path of paths) {
|
|
529
|
+
try {
|
|
530
|
+
if (!await deps.manifestExists(repo, path)) absent.add(path);
|
|
531
|
+
} catch (e) {
|
|
532
|
+
console.error(
|
|
533
|
+
`[security] ${label}: could not resolve manifest ${path} \u2014 counting its alerts: ${e instanceof Error ? e.message : String(e)}`
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return absent;
|
|
501
538
|
}
|
|
502
539
|
function ghSeverityToApp(s) {
|
|
503
540
|
if (s === "critical" || s === "high" || s === "low") return s;
|
|
@@ -514,12 +551,13 @@ async function dependabotAudit(deps, repo, label) {
|
|
|
514
551
|
);
|
|
515
552
|
return null;
|
|
516
553
|
}
|
|
554
|
+
const absent = await absentManifests(deps, repo, alerts, label);
|
|
517
555
|
const counts = { low: 0, moderate: 0, high: 0, critical: 0 };
|
|
518
556
|
const advisories = [];
|
|
557
|
+
const ghostAdvisories = [];
|
|
519
558
|
for (const a of alerts) {
|
|
520
559
|
const severity = ghSeverityToApp(a.severity);
|
|
521
|
-
|
|
522
|
-
advisories.push({
|
|
560
|
+
const entry = {
|
|
523
561
|
module: a.package,
|
|
524
562
|
severity,
|
|
525
563
|
title: a.summary || "(no title)",
|
|
@@ -527,12 +565,36 @@ async function dependabotAudit(deps, repo, label) {
|
|
|
527
565
|
...a.url ? { url: a.url } : {},
|
|
528
566
|
...a.scope ? { scope: a.scope } : {},
|
|
529
567
|
...a.relationship ? { relationship: a.relationship } : {}
|
|
530
|
-
}
|
|
568
|
+
};
|
|
569
|
+
if (a.manifestPath && absent.has(a.manifestPath)) {
|
|
570
|
+
ghostAdvisories.push({ ...entry, manifestPath: a.manifestPath });
|
|
571
|
+
continue;
|
|
572
|
+
}
|
|
573
|
+
counts[severity] += 1;
|
|
574
|
+
advisories.push(entry);
|
|
531
575
|
}
|
|
532
|
-
const
|
|
576
|
+
const liveStatus = classify(counts);
|
|
533
577
|
const total = counts.low + counts.moderate + counts.high + counts.critical;
|
|
534
|
-
const
|
|
535
|
-
|
|
578
|
+
const liveSummary = liveStatus === "pass" ? ghostAdvisories.length > 0 ? "Dependabot: 0 live alert(s)" : "Dependabot: 0 alerts" : `Dependabot: ${total} alert(s) (${counts.critical}C/${counts.high}H/${counts.moderate}M/${counts.low}L)`;
|
|
579
|
+
if (ghostAdvisories.length === 0) {
|
|
580
|
+
return {
|
|
581
|
+
audit: "security",
|
|
582
|
+
site: label,
|
|
583
|
+
status: liveStatus,
|
|
584
|
+
summary: liveSummary,
|
|
585
|
+
details: { counts, advisories }
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
const status = liveStatus === "pass" ? "warn" : liveStatus;
|
|
589
|
+
const manifests = [...new Set(ghostAdvisories.map((g) => g.manifestPath))].join(", ");
|
|
590
|
+
const summary = `${liveSummary}; ${ghostAdvisories.length} alert(s) on a manifest GitHub no longer tracks (${manifests}) \u2014 dismiss as inaccurate`;
|
|
591
|
+
return {
|
|
592
|
+
audit: "security",
|
|
593
|
+
site: label,
|
|
594
|
+
status,
|
|
595
|
+
summary,
|
|
596
|
+
details: { counts, advisories, ghostAdvisories }
|
|
597
|
+
};
|
|
536
598
|
}
|
|
537
599
|
async function securityAudit(ctx) {
|
|
538
600
|
const spawn = ctx.spawn ?? defaultSpawn;
|
|
@@ -600,7 +662,36 @@ async function readJsonMaybe(path) {
|
|
|
600
662
|
return null;
|
|
601
663
|
}
|
|
602
664
|
}
|
|
603
|
-
|
|
665
|
+
var DEV_SERVER_TIMEOUT_MS = 12e4;
|
|
666
|
+
var PREVIEW_SERVER_TIMEOUT_MS = 5 * 6e4;
|
|
667
|
+
var PLAYWRIGHT_TIMEOUT_MS = 5 * 6e4;
|
|
668
|
+
var PLAYWRIGHT_PREVIEW_TIMEOUT_MS = 10 * 6e4;
|
|
669
|
+
function webServerBlock(opts) {
|
|
670
|
+
return `{
|
|
671
|
+
command: ${JSON.stringify(opts.command)},
|
|
672
|
+
url: ${JSON.stringify(opts.url)},
|
|
673
|
+
cwd: ${JSON.stringify(opts.sitePath)},
|
|
674
|
+
reuseExistingServer: false,
|
|
675
|
+
timeout: ${opts.timeoutMs},
|
|
676
|
+
}`;
|
|
677
|
+
}
|
|
678
|
+
function buildPlaywrightConfig(port, sitePath, previewPort) {
|
|
679
|
+
const dev = webServerBlock({
|
|
680
|
+
command: `npm run vite:dev -- --port ${port} --strictPort`,
|
|
681
|
+
url: `http://localhost:${port}/dev/a11y-fixtures`,
|
|
682
|
+
sitePath,
|
|
683
|
+
timeoutMs: DEV_SERVER_TIMEOUT_MS
|
|
684
|
+
});
|
|
685
|
+
const preview = previewPort === void 0 ? void 0 : webServerBlock({
|
|
686
|
+
command: `npm run build && npm run preview -- --port ${previewPort} --strictPort`,
|
|
687
|
+
url: `http://localhost:${previewPort}/`,
|
|
688
|
+
sitePath,
|
|
689
|
+
timeoutMs: PREVIEW_SERVER_TIMEOUT_MS
|
|
690
|
+
});
|
|
691
|
+
const webServer = preview === void 0 ? dev : `[
|
|
692
|
+
${dev},
|
|
693
|
+
${preview},
|
|
694
|
+
]`;
|
|
604
695
|
return `import { defineConfig } from "@playwright/test";
|
|
605
696
|
|
|
606
697
|
export default defineConfig({
|
|
@@ -614,24 +705,18 @@ export default defineConfig({
|
|
|
614
705
|
baseURL: "http://localhost:${port}",
|
|
615
706
|
trace: "on-first-retry",
|
|
616
707
|
},
|
|
617
|
-
webServer: {
|
|
618
|
-
// --strictPort: refuse to bump to a different port if ours is taken,
|
|
619
|
-
// so the audit fails loudly instead of probing a zombie.
|
|
620
|
-
// reuseExistingServer:false: never reuse \u2014 we control the lifecycle.
|
|
621
|
-
// cwd: playwright's default webServer.cwd is the config file's
|
|
622
|
-
// directory. Our config lives in /tmp so without this override,
|
|
623
|
-
// "npm run vite:dev" tries to read /tmp/.../package.json and
|
|
624
|
-
// ENOENTs before vite ever starts. Caltex 2026-05-28 (0.10.5).
|
|
625
|
-
command: "npm run vite:dev -- --port ${port} --strictPort",
|
|
626
|
-
url: "http://localhost:${port}/dev/a11y-fixtures",
|
|
627
|
-
cwd: ${JSON.stringify(sitePath)},
|
|
628
|
-
reuseExistingServer: false,
|
|
629
|
-
timeout: 120_000,
|
|
630
|
-
},
|
|
708
|
+
webServer: ${webServer},
|
|
631
709
|
});
|
|
632
710
|
`;
|
|
633
711
|
}
|
|
634
|
-
function
|
|
712
|
+
async function allocateDistinctPort(taken) {
|
|
713
|
+
for (let attempt = 0; attempt < 5; attempt += 1) {
|
|
714
|
+
const candidate = await findFreePort();
|
|
715
|
+
if (candidate !== taken) return candidate;
|
|
716
|
+
}
|
|
717
|
+
throw new Error(`a11y: could not allocate a second free port distinct from ${taken}`);
|
|
718
|
+
}
|
|
719
|
+
function buildSpec(axePages, smokeOrigin = "") {
|
|
635
720
|
return `import { test, expect } from "@playwright/test";
|
|
636
721
|
import AxeBuilder from "@axe-core/playwright";
|
|
637
722
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
@@ -639,6 +724,13 @@ import { dirname } from "node:path";
|
|
|
639
724
|
|
|
640
725
|
const pages = ${JSON.stringify(axePages)};
|
|
641
726
|
const smokePages = ${JSON.stringify(smokeRoutes)};
|
|
727
|
+
// Absolute origin for the hydration smoke when the site has opted its gates
|
|
728
|
+
// onto a production build (#700). The axe loop runs against the dev server via
|
|
729
|
+
// baseURL; these routes run against the built bundle on a second port, and the
|
|
730
|
+
// origin has to be explicit or they would silently fall back to baseURL \u2014 i.e.
|
|
731
|
+
// to dev \u2014 and measure exactly what this exists to stop measuring. Empty string
|
|
732
|
+
// = one server for both, the default.
|
|
733
|
+
const SMOKE_ORIGIN = ${JSON.stringify(smokeOrigin)};
|
|
642
734
|
const OUTPUT = process.env.REDDOOR_A11Y_OUTPUT;
|
|
643
735
|
|
|
644
736
|
// Playwright's default per-test timeout is 30s. We loop through every
|
|
@@ -664,7 +756,23 @@ test("a11y + hydration across configured routes", async ({ page }) => {
|
|
|
664
756
|
|
|
665
757
|
for (const { path, name } of pages) {
|
|
666
758
|
currentRoute = name;
|
|
667
|
-
await page.goto(path);
|
|
759
|
+
const response = await page.goto(path);
|
|
760
|
+
// A route that does not exist is a config problem, not a markup one. The
|
|
761
|
+
// audit used to navigate, get a 404, run axe over whatever the error page
|
|
762
|
+
// was and report the count -- for months that page was a bare fallback with
|
|
763
|
+
// nothing to flag, so a missing fixture read as green. When reddoor-website
|
|
764
|
+
// gave its 404 page a designed watermark the count went to 1 with no route
|
|
765
|
+
// and no rule in the summary, and the "violation" was bisected as markup
|
|
766
|
+
// (#680). Name it as a missing route and do not scan the error page.
|
|
767
|
+
if (!response || response.status() !== 200) {
|
|
768
|
+
violations.push({
|
|
769
|
+
id: "route-missing",
|
|
770
|
+
impact: "serious",
|
|
771
|
+
route: name,
|
|
772
|
+
help: \`\${path} returned \${response ? response.status() : "no response"}\`,
|
|
773
|
+
});
|
|
774
|
+
continue;
|
|
775
|
+
}
|
|
668
776
|
// Snap CSS transitions/animations to their resting state before axe runs.
|
|
669
777
|
// AnimateIn-style fixtures transition opacity 0->1; sampling mid-transition
|
|
670
778
|
// makes axe compute color-contrast against semi-transparent text, yielding a
|
|
@@ -697,7 +805,7 @@ test("a11y + hydration across configured routes", async ({ page }) => {
|
|
|
697
805
|
// renders empty-but-valid won't false-fail -- only a real client crash does.
|
|
698
806
|
for (const { path, name } of smokePages) {
|
|
699
807
|
currentRoute = name;
|
|
700
|
-
await page.goto(path);
|
|
808
|
+
await page.goto(SMOKE_ORIGIN + path);
|
|
701
809
|
// Let hydration + first effects run so a TDZ/ReferenceError surfaces.
|
|
702
810
|
await page.waitForTimeout(2000);
|
|
703
811
|
}
|
|
@@ -717,22 +825,45 @@ test("a11y + hydration across configured routes", async ({ page }) => {
|
|
|
717
825
|
});
|
|
718
826
|
`;
|
|
719
827
|
}
|
|
828
|
+
var NAMED_VIOLATIONS_MAX = 6;
|
|
829
|
+
function describeViolations(violations) {
|
|
830
|
+
const groups = /* @__PURE__ */ new Map();
|
|
831
|
+
for (const v of violations) {
|
|
832
|
+
const key = `${v.id}\0${v.route}`;
|
|
833
|
+
const g = groups.get(key);
|
|
834
|
+
if (g) g.n += 1;
|
|
835
|
+
else groups.set(key, { id: v.id, route: v.route, ...v.help ? { help: v.help } : {}, n: 1 });
|
|
836
|
+
}
|
|
837
|
+
const entries = [...groups.values()];
|
|
838
|
+
const shown = entries.slice(0, NAMED_VIOLATIONS_MAX).map((g) => {
|
|
839
|
+
const count = g.n > 1 ? ` \xD7${g.n}` : "";
|
|
840
|
+
const detail = g.id === "route-missing" && g.help ? ` (${g.help})` : "";
|
|
841
|
+
return `${g.id}${count} on ${g.route}${detail}`;
|
|
842
|
+
});
|
|
843
|
+
const rest = entries.length - shown.length;
|
|
844
|
+
return shown.join(", ") + (rest > 0 ? `, +${rest} more` : "");
|
|
845
|
+
}
|
|
720
846
|
async function a11yAudit(ctx) {
|
|
721
847
|
const spawn = ctx.spawn ?? defaultSpawn;
|
|
722
848
|
const site = ctx.site;
|
|
723
849
|
const label = siteLabel(site);
|
|
724
850
|
const specDir = await mkdtemp(join4(site.path, ".reddoor-a11y-spec-"));
|
|
725
851
|
try {
|
|
726
|
-
const { a11yRoutes: siteRoutes } = await readSiteConfig(site.path);
|
|
852
|
+
const { a11yRoutes: siteRoutes, gateServer } = await readSiteConfig(site.path);
|
|
727
853
|
const axePages = [
|
|
728
854
|
...a11yRoutes,
|
|
729
855
|
...(siteRoutes ?? []).map((path) => ({ path, name: path }))
|
|
730
856
|
];
|
|
731
|
-
const specPath = join4(specDir, "a11y.spec.ts");
|
|
732
|
-
await writeFile(specPath, buildSpec(axePages), "utf-8");
|
|
733
857
|
const port = await findFreePort();
|
|
858
|
+
const previewPort = gateServer === "preview" ? await allocateDistinctPort(port) : void 0;
|
|
859
|
+
const specPath = join4(specDir, "a11y.spec.ts");
|
|
860
|
+
await writeFile(
|
|
861
|
+
specPath,
|
|
862
|
+
buildSpec(axePages, previewPort === void 0 ? "" : `http://localhost:${previewPort}`),
|
|
863
|
+
"utf-8"
|
|
864
|
+
);
|
|
734
865
|
const configPath = join4(specDir, "playwright.config.ts");
|
|
735
|
-
await writeFile(configPath, buildPlaywrightConfig(port, site.path), "utf-8");
|
|
866
|
+
await writeFile(configPath, buildPlaywrightConfig(port, site.path, previewPort), "utf-8");
|
|
736
867
|
const resultsPath = join4(site.path, RESULTS_REL);
|
|
737
868
|
await rm(join4(site.path, ".reddoor-a11y"), { recursive: true, force: true });
|
|
738
869
|
let raw;
|
|
@@ -747,7 +878,10 @@ async function a11yAudit(ctx) {
|
|
|
747
878
|
// server, and runs axe over every configured route. The shared 30 s
|
|
748
879
|
// default in runAudits is fine for deps/lint/security but starves
|
|
749
880
|
// playwright (mirrors the lighthouse fix shipped earlier).
|
|
750
|
-
|
|
881
|
+
// A preview run pays for a production build before the first
|
|
882
|
+
// navigation, so the budget sized for "boot vite, then axe" would
|
|
883
|
+
// SIGKILL it mid-build and report it as an audit failure.
|
|
884
|
+
timeoutMs: previewPort === void 0 ? PLAYWRIGHT_TIMEOUT_MS : PLAYWRIGHT_PREVIEW_TIMEOUT_MS
|
|
751
885
|
}
|
|
752
886
|
);
|
|
753
887
|
} catch (err) {
|
|
@@ -774,7 +908,11 @@ async function a11yAudit(ctx) {
|
|
|
774
908
|
const hasSerious = (artifact.byImpact.serious ?? 0) > 0 || (artifact.byImpact.critical ?? 0) > 0;
|
|
775
909
|
const hasAny = artifact.totalViolations > 0;
|
|
776
910
|
const status = hasSerious ? "fail" : hasAny ? "warn" : "pass";
|
|
777
|
-
const
|
|
911
|
+
const siteRouteCount = axePages.length - a11yRoutes.length;
|
|
912
|
+
const scanned = siteRouteCount > 0 ? `${axePages.length} routes (${a11yRoutes.length} fixtures + ${siteRouteCount} from package.json)` : `${axePages.length} routes`;
|
|
913
|
+
const smokeNote = previewPort === void 0 ? `+${smokeRoutes.length} hydration smoke` : `+${smokeRoutes.length} hydration smoke on a production preview`;
|
|
914
|
+
const named = describeViolations(artifact.violations ?? []);
|
|
915
|
+
const summary = status === "pass" ? `a11y: 0 violations across ${scanned} (${smokeNote})` : `a11y: ${artifact.totalViolations} violations across ${scanned}${named ? ` \u2014 ${named}` : ""}`;
|
|
778
916
|
return {
|
|
779
917
|
audit: "a11y",
|
|
780
918
|
site: label,
|
|
@@ -1659,6 +1797,7 @@ async function functionHealthAudit(ctx) {
|
|
|
1659
1797
|
// src/audits/form-e2e.ts
|
|
1660
1798
|
var CF_TEST_SITEKEY = "1x00000000000000000000AA";
|
|
1661
1799
|
var CONTACT_PATHS = ["/contact", "/"];
|
|
1800
|
+
var FORM_E2E_TESTMODE_UNDECLARED_SUMMARY = "site /health does not declare forms.testMode \u2014 probe refused (testMode forwarding not yet rolled out here)";
|
|
1662
1801
|
var TESTMODE_SKIPPED_WORK_MS = 1e3;
|
|
1663
1802
|
var BUDGET_WARN_RATIO = 0.5;
|
|
1664
1803
|
function projectRealSubmissionMs(probeElapsedMs) {
|
|
@@ -1674,7 +1813,7 @@ function budgetThinSummary(probeElapsedMs) {
|
|
|
1674
1813
|
var TURNSTILE_HOSTNAME_REJECTED = /\[Cloudflare Turnstile\][^\n]*?\b110200\b/;
|
|
1675
1814
|
var TURNSTILE_WIDGET_ERROR = /\[Cloudflare Turnstile\][^\n]*?\b(?:110(?!200\b)\d{3}|400020|400070)\b/;
|
|
1676
1815
|
var TURNSTILE_INIT_FAILED = /\[turnstile\] widget did not render/;
|
|
1677
|
-
var TURNSTILE_API_JS = /challenges\.cloudflare\.com\/turnstile\/v0\/api\.js/;
|
|
1816
|
+
var TURNSTILE_API_JS = /challenges\.cloudflare\.com\/turnstile\/v0\/(?:[\w.-]+\/)*api\.js/;
|
|
1678
1817
|
function turnstileVerdict(health, observed) {
|
|
1679
1818
|
if (health.turnstile === false) return "fail";
|
|
1680
1819
|
if (!observed) return null;
|
|
@@ -1716,7 +1855,7 @@ async function formE2eAudit(ctx) {
|
|
|
1716
1855
|
audit: "form-e2e",
|
|
1717
1856
|
site: label,
|
|
1718
1857
|
status: "skip",
|
|
1719
|
-
summary:
|
|
1858
|
+
summary: FORM_E2E_TESTMODE_UNDECLARED_SUMMARY,
|
|
1720
1859
|
details: { checkedAt, turnstileWidget: null }
|
|
1721
1860
|
};
|
|
1722
1861
|
}
|
|
@@ -2056,4 +2195,4 @@ export {
|
|
|
2056
2195
|
runAudits,
|
|
2057
2196
|
runAuditsAcross
|
|
2058
2197
|
};
|
|
2059
|
-
//# sourceMappingURL=chunk-
|
|
2198
|
+
//# sourceMappingURL=chunk-L3S3QZXL.js.map
|