@reddoorla/maintenance 0.95.0 → 0.96.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 +37 -2
- package/dist/airtable-SJV4ZSMS.js +9 -0
- package/dist/{announce-PGT4SZZB.js → announce-45HVP4J4.js} +7 -7
- package/dist/{blux-4KNXUP2K.js → blux-RUFMNOUJ.js} +5 -5
- package/dist/{bump-deps-C5G2EFBB.js → bump-deps-EL3TKMIL.js} +6 -6
- package/dist/{chunk-XN37VTDB.js → chunk-37B4LVB3.js} +2 -2
- package/dist/{chunk-BVEDKMNG.js → chunk-3EA43S3R.js} +28 -10
- package/dist/chunk-3EA43S3R.js.map +1 -0
- package/dist/{chunk-XHHMM5HX.js → chunk-43SW3FGW.js} +63 -1
- package/dist/chunk-43SW3FGW.js.map +1 -0
- package/dist/{chunk-WMBLR5VA.js → chunk-44SDGPGQ.js} +3 -3
- package/dist/chunk-4UTJ4G6P.js +52 -0
- package/dist/chunk-4UTJ4G6P.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-4AIYWWKV.js → chunk-62YWOFVN.js} +36 -5
- package/dist/chunk-62YWOFVN.js.map +1 -0
- package/dist/{chunk-22GKJO5F.js → chunk-6INOBNRO.js} +2 -2
- package/dist/{chunk-BYGPUUCT.js → chunk-72FJZ6LO.js} +43 -11
- package/dist/chunk-72FJZ6LO.js.map +1 -0
- package/dist/{chunk-5GUJ36TL.js → chunk-74QRWE6G.js} +2 -2
- package/dist/chunk-A5QKNOXW.js +72 -0
- package/dist/chunk-A5QKNOXW.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-S7RYFUIK.js → chunk-CA6ADGOC.js} +2 -2
- package/dist/chunk-CGQZFQAY.js +38 -0
- package/dist/chunk-CGQZFQAY.js.map +1 -0
- package/dist/{chunk-YLYXW5PH.js → chunk-CXICCLNM.js} +34 -4
- package/dist/chunk-CXICCLNM.js.map +1 -0
- package/dist/{chunk-KZRR4NFG.js → chunk-D3CTOCUR.js} +3 -3
- package/dist/{chunk-CWXTNPNZ.js → chunk-DVJNYPFR.js} +3 -3
- package/dist/chunk-DVJNYPFR.js.map +1 -0
- package/dist/{chunk-AVEQUR44.js → chunk-EASYCD6F.js} +60 -17
- package/dist/chunk-EASYCD6F.js.map +1 -0
- package/dist/{chunk-BCKEP5S6.js → chunk-ECDJDHKT.js} +2 -2
- package/dist/{chunk-DMPHP7UP.js → chunk-EQQ4H6L3.js} +2 -2
- package/dist/{chunk-WVNDEYXL.js → chunk-GEUC5VGM.js} +11 -5
- package/dist/chunk-GEUC5VGM.js.map +1 -0
- package/dist/{chunk-Z2K4JPQ3.js → chunk-H445EH33.js} +2 -2
- package/dist/chunk-IHHAYXKY.js +351 -0
- package/dist/chunk-IHHAYXKY.js.map +1 -0
- package/dist/{chunk-FUWFLAWQ.js → chunk-IMYL67JV.js} +3 -3
- package/dist/{chunk-3Z6X3BHU.js → chunk-KN52PM63.js} +7 -2
- package/dist/{chunk-3Z6X3BHU.js.map → chunk-KN52PM63.js.map} +1 -1
- package/dist/{chunk-WJMPCVOR.js → chunk-LAJ3FF54.js} +12 -4
- package/dist/chunk-LAJ3FF54.js.map +1 -0
- package/dist/{chunk-5UINJNAJ.js → chunk-MZZDMBDT.js} +16 -3
- package/dist/chunk-MZZDMBDT.js.map +1 -0
- package/dist/{chunk-DFKBTBO3.js → chunk-NVLREB5R.js} +35 -6
- package/dist/chunk-NVLREB5R.js.map +1 -0
- package/dist/{chunk-AEUABPAJ.js → chunk-OTEVKRAH.js} +3 -3
- package/dist/{chunk-KQB2BX4V.js → chunk-P4A6D6HO.js} +4 -4
- package/dist/chunk-P7323YVW.js +134 -0
- package/dist/chunk-P7323YVW.js.map +1 -0
- package/dist/{chunk-4763KQ6O.js → chunk-PXRN2MER.js} +2 -2
- package/dist/{chunk-TR3HFH6J.js → chunk-QFSL2L2B.js} +67 -10
- package/dist/chunk-QFSL2L2B.js.map +1 -0
- package/dist/{chunk-2LYOAB2E.js → chunk-RRE74VWI.js} +2 -2
- package/dist/{chunk-LM2NHRCJ.js → chunk-SHGIDTYF.js} +4 -4
- package/dist/chunk-SHGIDTYF.js.map +1 -0
- package/dist/{chunk-ZQV7UQNE.js → chunk-SQ4FSNYL.js} +2 -2
- package/dist/{chunk-OCNSIBMP.js → chunk-T76MA2FH.js} +135 -1
- package/dist/{chunk-OCNSIBMP.js.map → chunk-T76MA2FH.js.map} +1 -1
- package/dist/{chunk-6R56OKJZ.js → chunk-UIITN37J.js} +2 -2
- package/dist/{chunk-CJ2RMTT7.js → chunk-VEIIUCYL.js} +2 -2
- 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-WSJ7RO54.js → chunk-XED2DNAI.js} +23 -5
- package/dist/chunk-XED2DNAI.js.map +1 -0
- package/dist/{chunk-FSGICFXB.js → chunk-XG2A6GIG.js} +17 -5
- package/dist/chunk-XG2A6GIG.js.map +1 -0
- package/dist/{chunk-TO7DJYLZ.js → chunk-XY7YV2YQ.js} +178 -39
- package/dist/chunk-XY7YV2YQ.js.map +1 -0
- package/dist/{chunk-HTABUCF4.js → chunk-Y5BVR4HW.js} +3 -3
- package/dist/chunk-Y6FCXRIC.js +3972 -0
- 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-QF6IQQFP.js → chunk-Z7FDJ35L.js} +18 -12
- package/dist/chunk-Z7FDJ35L.js.map +1 -0
- package/dist/{chunk-5EEMTJMT.js → chunk-ZH5LOQET.js} +4 -4
- package/dist/cli/bin.js +49 -31
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/audit.js +18 -18
- package/dist/client-L7NAUG6J.js +11 -0
- package/dist/configs/eslint.js +27 -1
- package/dist/configs/eslint.js.map +1 -1
- 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-4DON7IFS.js} +6 -6
- package/dist/{db-BBEM7CBX.js → db-5K4CDEGJ.js} +45 -20
- package/dist/db-5K4CDEGJ.js.map +1 -0
- package/dist/deadletter-G4M3HSVM.js +17 -0
- package/dist/{digest-65BOZ7AT.js → digest-5AJGWS33.js} +45 -22
- package/dist/digest-5AJGWS33.js.map +1 -0
- package/dist/{digest-collectors-EHFY2OQC.js → digest-collectors-MC5NWEUA.js} +12 -10
- 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-WIDO6LGU.js → ensure-site-XESZHZEB.js} +39 -11
- package/dist/ensure-site-XESZHZEB.js.map +1 -0
- package/dist/{fleet-state-UEVZ3X3J.js → fleet-state-GJWGKTLD.js} +6 -4
- package/dist/{forms-notify-target-2LWF5C5B.js → forms-notify-target-4NPLX2UG.js} +5 -5
- package/dist/{freeze-A6MUCZU4.js → freeze-GUQ43EAU.js} +2 -2
- package/dist/{github-signals-GAHNOAHS.js → github-signals-DMU74SAX.js} +10 -10
- package/dist/{header-image-YN3AQRY3.js → header-image-BRTOLHJF.js} +6 -5
- package/dist/header-image-BRTOLHJF.js.map +1 -0
- package/dist/{health-endpoint-KVCJYWET.js → health-endpoint-UCLMSSCN.js} +8 -7
- package/dist/{health-endpoint-KVCJYWET.js.map → health-endpoint-UCLMSSCN.js.map} +1 -1
- package/dist/{health-mirror-EB76EERV.js → health-mirror-ONRT4DQ5.js} +7 -7
- package/dist/{import-airtable-TAKSN4NV.js → import-airtable-IIK2QUUF.js} +3 -3
- package/dist/index.d.ts +135 -4
- package/dist/index.js +68 -34
- package/dist/index.js.map +1 -1
- package/dist/{init-FFE4FCO2.js → init-3LMZTCVD.js} +19 -18
- package/dist/{init-FFE4FCO2.js.map → init-3LMZTCVD.js.map} +1 -1
- package/dist/{launch-4RVWPZGI.js → launch-XTDMC6LD.js} +209 -61
- package/dist/launch-XTDMC6LD.js.map +1 -0
- package/dist/{lighthouse-VHI77PFB.js → lighthouse-52WSPZ5D.js} +2 -2
- package/dist/{lighthouse-airtable-YMH4UA7R.js → lighthouse-airtable-3NOFB42B.js} +3 -3
- package/dist/{match-harness-2Q6ISEES.js → match-harness-OW45CB5H.js} +14 -7
- package/dist/match-harness-OW45CB5H.js.map +1 -0
- package/dist/migrate-NE3DUMTM.js +7 -0
- package/dist/{notify-IISTHNBR.js → notify-K3WVH3DM.js} +3 -3
- package/dist/{onboard-TM2KESGF.js → onboard-CZYBWVWH.js} +6 -6
- package/dist/{orchestrate-MWXENQOS.js → orchestrate-TGDFGY52.js} +8 -8
- package/dist/{parity-CAJ477PS.js → parity-AEKYSLN6.js} +5 -5
- package/dist/{pipeline-YROAY6DT.js → pipeline-UUPXOS2J.js} +3 -3
- package/dist/{preflight-4VQP7JJL.js → preflight-POZZI3GN.js} +9 -9
- package/dist/{prismic-ci-6GKKZGB5.js → prismic-ci-AHY5ULJR.js} +38 -8
- package/dist/prismic-ci-AHY5ULJR.js.map +1 -0
- package/dist/{prismic-models-W6CNLTWH.js → prismic-models-URYGODNY.js} +9 -9
- package/dist/prospect/types.d.ts +72 -0
- package/dist/prospect/types.js +1 -1
- package/dist/{prospect-audit-X4Z67LWW.js → prospect-audit-AJEE3Z4L.js} +16 -7
- package/dist/prospect-audit-AJEE3Z4L.js.map +1 -0
- package/dist/{prospect-audits-RVYEA4KH.js → prospect-audits-IZVQY3OQ.js} +12 -4
- package/dist/protection-audit-3J3UEOVT.js +413 -0
- package/dist/protection-audit-3J3UEOVT.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-65DC6ZP3.js} +4 -4
- package/dist/{renovate-dispatch-U5Q52SKT.js → renovate-dispatch-ONJMBUHJ.js} +3 -3
- package/dist/{replay-PCSQOGCZ.js → replay-4FVFOMHH.js} +10 -23
- package/dist/replay-4FVFOMHH.js.map +1 -0
- package/dist/{report-4GFD4MW2.js → report-RC5LGPU3.js} +22 -20
- package/dist/report-RC5LGPU3.js.map +1 -0
- package/dist/{report-mirror-IP64R7B3.js → report-mirror-KKZZ6RMZ.js} +13 -9
- package/dist/{report-mirror-IP64R7B3.js.map → report-mirror-KKZZ6RMZ.js.map} +1 -1
- package/dist/{schema-2V7BGYVT.js → schema-KWUQEZ5O.js} +1 -1
- package/dist/schema-KWUQEZ5O.js.map +1 -0
- package/dist/{self-updating-MWXIZLL7.js → self-updating-RKKIYNV4.js} +8 -7
- package/dist/{self-updating-MWXIZLL7.js.map → self-updating-RKKIYNV4.js.map} +1 -1
- package/dist/{selftest-MAB2PBXQ.js → selftest-AFLR7YV7.js} +10 -10
- package/dist/site-lookup-DTOLJ4EA.js +27 -0
- package/dist/site-lookup-DTOLJ4EA.js.map +1 -0
- package/dist/{site-mirror-UKHREAD6.js → site-mirror-H2FYMN55.js} +23 -9
- package/dist/site-mirror-H2FYMN55.js.map +1 -0
- package/dist/{smoke-suite-7DGITCTZ.js → smoke-suite-BWHR3XX5.js} +8 -7
- package/dist/{smoke-suite-7DGITCTZ.js.map → smoke-suite-BWHR3XX5.js.map} +1 -1
- package/dist/{submissions-5GKJPCIH.js → submissions-II5J35QM.js} +4 -4
- 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-QWGIRNN6.js} +6 -6
- package/dist/{sync-K3PKHVLH.js → sync-NKPDCMYW.js} +5 -5
- package/dist/{sync-configs-RRIHNLIJ.js → sync-configs-HGLQV55H.js} +6 -6
- package/dist/{upgrade-VTD6V4HS.js → upgrade-WZ44IARG.js} +6 -6
- package/dist/util/git.d.ts +48 -9
- package/dist/util/git.js +1 -1
- package/dist/{webflow-IRKOIT7S.js → webflow-624FEBFD.js} +4 -4
- package/dist/{websites-TB4TCAWM.js → websites-6DHIHJ2D.js} +4 -2
- package/dist/{write-audits-to-airtable-53EVXKMU.js → write-audits-to-airtable-BIK6LNVC.js} +5 -5
- package/dist/write-audits-to-airtable-BIK6LNVC.js.map +1 -0
- package/package.json +3 -2
- package/dist/airtable-JGCPS7JH.js +0 -9
- package/dist/chunk-4AIYWWKV.js.map +0 -1
- package/dist/chunk-5UINJNAJ.js.map +0 -1
- package/dist/chunk-6VKYQATC.js +0 -1708
- package/dist/chunk-6VKYQATC.js.map +0 -1
- package/dist/chunk-7MKT4I5T.js +0 -62
- package/dist/chunk-7MKT4I5T.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-FSGICFXB.js.map +0 -1
- package/dist/chunk-GASBX52O.js +0 -12
- package/dist/chunk-GASBX52O.js.map +0 -1
- package/dist/chunk-LM2NHRCJ.js.map +0 -1
- package/dist/chunk-QF6IQQFP.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-YLYXW5PH.js.map +0 -1
- package/dist/client-M2V6FHH5.js +0 -11
- package/dist/db-BBEM7CBX.js.map +0 -1
- package/dist/digest-65BOZ7AT.js.map +0 -1
- package/dist/digest-state-3KHZF7GD.js.map +0 -1
- package/dist/ensure-site-WIDO6LGU.js.map +0 -1
- package/dist/header-image-YN3AQRY3.js.map +0 -1
- package/dist/launch-4RVWPZGI.js.map +0 -1
- package/dist/match-harness-2Q6ISEES.js.map +0 -1
- package/dist/migrate-K4JETR36.js +0 -7
- package/dist/prismic-ci-6GKKZGB5.js.map +0 -1
- package/dist/prospect-audit-X4Z67LWW.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-4GFD4MW2.js.map +0 -1
- package/dist/schema-2V7BGYVT.js.map +0 -1
- package/dist/site-mirror-UKHREAD6.js.map +0 -1
- package/dist/submissions-3I3GAQAX.js.map +0 -1
- /package/dist/{airtable-JGCPS7JH.js.map → airtable-SJV4ZSMS.js.map} +0 -0
- /package/dist/{announce-PGT4SZZB.js.map → announce-45HVP4J4.js.map} +0 -0
- /package/dist/{blux-4KNXUP2K.js.map → blux-RUFMNOUJ.js.map} +0 -0
- /package/dist/{bump-deps-C5G2EFBB.js.map → bump-deps-EL3TKMIL.js.map} +0 -0
- /package/dist/{chunk-XN37VTDB.js.map → chunk-37B4LVB3.js.map} +0 -0
- /package/dist/{chunk-WMBLR5VA.js.map → chunk-44SDGPGQ.js.map} +0 -0
- /package/dist/{chunk-22GKJO5F.js.map → chunk-6INOBNRO.js.map} +0 -0
- /package/dist/{chunk-5GUJ36TL.js.map → chunk-74QRWE6G.js.map} +0 -0
- /package/dist/{chunk-S7RYFUIK.js.map → chunk-CA6ADGOC.js.map} +0 -0
- /package/dist/{chunk-KZRR4NFG.js.map → chunk-D3CTOCUR.js.map} +0 -0
- /package/dist/{chunk-BCKEP5S6.js.map → chunk-ECDJDHKT.js.map} +0 -0
- /package/dist/{chunk-DMPHP7UP.js.map → chunk-EQQ4H6L3.js.map} +0 -0
- /package/dist/{chunk-Z2K4JPQ3.js.map → chunk-H445EH33.js.map} +0 -0
- /package/dist/{chunk-FUWFLAWQ.js.map → chunk-IMYL67JV.js.map} +0 -0
- /package/dist/{chunk-AEUABPAJ.js.map → chunk-OTEVKRAH.js.map} +0 -0
- /package/dist/{chunk-KQB2BX4V.js.map → chunk-P4A6D6HO.js.map} +0 -0
- /package/dist/{chunk-4763KQ6O.js.map → chunk-PXRN2MER.js.map} +0 -0
- /package/dist/{chunk-2LYOAB2E.js.map → chunk-RRE74VWI.js.map} +0 -0
- /package/dist/{chunk-ZQV7UQNE.js.map → chunk-SQ4FSNYL.js.map} +0 -0
- /package/dist/{chunk-6R56OKJZ.js.map → chunk-UIITN37J.js.map} +0 -0
- /package/dist/{chunk-CJ2RMTT7.js.map → chunk-VEIIUCYL.js.map} +0 -0
- /package/dist/{chunk-HTABUCF4.js.map → chunk-Y5BVR4HW.js.map} +0 -0
- /package/dist/{chunk-5EEMTJMT.js.map → chunk-ZH5LOQET.js.map} +0 -0
- /package/dist/{client-M2V6FHH5.js.map → client-L7NAUG6J.js.map} +0 -0
- /package/dist/{convert-to-pnpm-YTFREUJK.js.map → convert-to-pnpm-4DON7IFS.js.map} +0 -0
- /package/dist/{digest-collectors-EHFY2OQC.js.map → deadletter-G4M3HSVM.js.map} +0 -0
- /package/dist/{fleet-state-UEVZ3X3J.js.map → digest-collectors-MC5NWEUA.js.map} +0 -0
- /package/dist/{freeze-A6MUCZU4.js.map → fleet-state-GJWGKTLD.js.map} +0 -0
- /package/dist/{forms-notify-target-2LWF5C5B.js.map → forms-notify-target-4NPLX2UG.js.map} +0 -0
- /package/dist/{import-airtable-TAKSN4NV.js.map → freeze-GUQ43EAU.js.map} +0 -0
- /package/dist/{github-signals-GAHNOAHS.js.map → github-signals-DMU74SAX.js.map} +0 -0
- /package/dist/{health-mirror-EB76EERV.js.map → health-mirror-ONRT4DQ5.js.map} +0 -0
- /package/dist/{lighthouse-VHI77PFB.js.map → import-airtable-IIK2QUUF.js.map} +0 -0
- /package/dist/{lighthouse-airtable-YMH4UA7R.js.map → lighthouse-52WSPZ5D.js.map} +0 -0
- /package/dist/{migrate-K4JETR36.js.map → lighthouse-airtable-3NOFB42B.js.map} +0 -0
- /package/dist/{notify-IISTHNBR.js.map → migrate-NE3DUMTM.js.map} +0 -0
- /package/dist/{orchestrate-MWXENQOS.js.map → notify-K3WVH3DM.js.map} +0 -0
- /package/dist/{onboard-TM2KESGF.js.map → onboard-CZYBWVWH.js.map} +0 -0
- /package/dist/{parity-CAJ477PS.js.map → orchestrate-TGDFGY52.js.map} +0 -0
- /package/dist/{pipeline-YROAY6DT.js.map → parity-AEKYSLN6.js.map} +0 -0
- /package/dist/{prospect-audits-RVYEA4KH.js.map → pipeline-UUPXOS2J.js.map} +0 -0
- /package/dist/{preflight-4VQP7JJL.js.map → preflight-POZZI3GN.js.map} +0 -0
- /package/dist/{prismic-models-W6CNLTWH.js.map → prismic-models-URYGODNY.js.map} +0 -0
- /package/dist/{render-from-row-IFSBHWDH.js.map → prospect-audits-IZVQY3OQ.js.map} +0 -0
- /package/dist/{websites-TB4TCAWM.js.map → render-from-row-65DC6ZP3.js.map} +0 -0
- /package/dist/{renovate-dispatch-U5Q52SKT.js.map → renovate-dispatch-ONJMBUHJ.js.map} +0 -0
- /package/dist/{selftest-MAB2PBXQ.js.map → selftest-AFLR7YV7.js.map} +0 -0
- /package/dist/{submissions-5GKJPCIH.js.map → submissions-II5J35QM.js.map} +0 -0
- /package/dist/{svelte-codemods-WSV2FGNG.js.map → svelte-codemods-QWGIRNN6.js.map} +0 -0
- /package/dist/{sync-K3PKHVLH.js.map → sync-NKPDCMYW.js.map} +0 -0
- /package/dist/{sync-configs-RRIHNLIJ.js.map → sync-configs-HGLQV55H.js.map} +0 -0
- /package/dist/{upgrade-VTD6V4HS.js.map → upgrade-WZ44IARG.js.map} +0 -0
- /package/dist/{webflow-IRKOIT7S.js.map → webflow-624FEBFD.js.map} +0 -0
- /package/dist/{write-audits-to-airtable-53EVXKMU.js.map → websites-6DHIHJ2D.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -315,14 +315,27 @@ type DependabotAlert = {
|
|
|
315
315
|
scope: "runtime" | "development" | null;
|
|
316
316
|
/** Dependency graph relationship (`dependency.relationship`), or null when GitHub reports
|
|
317
317
|
* "unknown"/nothing. "transitive" means no direct-dep bump can fix it — Renovate's vuln
|
|
318
|
-
* alerts have no fix vehicle until the weekly lockfile-maintenance window.
|
|
319
|
-
|
|
318
|
+
* alerts have no fix vehicle until the weekly lockfile-maintenance window. "inconclusive"
|
|
319
|
+
* is what GitHub stamps on an alert filed against a manifest its dependency graph still
|
|
320
|
+
* tracks but the tree no longer holds (#702) — kept, never folded to null, because it is
|
|
321
|
+
* the secondary tell for a ghost alert. */
|
|
322
|
+
relationship: "direct" | "transitive" | "inconclusive" | null;
|
|
323
|
+
/** The manifest the alert was filed against (`dependency.manifest_path`, e.g.
|
|
324
|
+
* `package-lock.json`), or null when absent. GitHub retains a manifest after the file is
|
|
325
|
+
* deleted from the default branch and keeps filing alerts against that frozen snapshot;
|
|
326
|
+
* the audit resolves this path with {@link GitHubRest.manifestExists} to tell a ghost from
|
|
327
|
+
* a live vulnerability (#702). */
|
|
328
|
+
manifestPath: string | null;
|
|
320
329
|
};
|
|
321
330
|
|
|
322
331
|
/** The Dependabot fetch the security audit needs, injectable for tests. The real default is
|
|
323
332
|
* built from GITHUB_TOKEN; absent token (or a site with no gitRepo) → pnpm/npm audit fallback. */
|
|
324
333
|
type DependabotDeps = {
|
|
325
334
|
listAlerts: (repo: string) => Promise<DependabotAlert[]>;
|
|
335
|
+
/** Whether an alert's `manifestPath` is still on the default branch. Optional: without it
|
|
336
|
+
* every alert counts, which is the loud direction. A lookup that THROWS also counts the
|
|
337
|
+
* alert — an API hiccup must never quietly suppress a real vulnerability (#702). */
|
|
338
|
+
manifestExists?: (repo: string, path: string) => Promise<boolean>;
|
|
326
339
|
};
|
|
327
340
|
declare function securityAudit(ctx: AuditContext): Promise<AuditResult>;
|
|
328
341
|
|
|
@@ -418,6 +431,84 @@ declare function onboard(site: Site, opts?: OnboardOptions): Promise<RecipeResul
|
|
|
418
431
|
*/
|
|
419
432
|
declare function a11yFixturesPage(site: Site): Promise<RecipeResult>;
|
|
420
433
|
|
|
434
|
+
type HealthEndpointDeps = {
|
|
435
|
+
spawn: SpawnFn;
|
|
436
|
+
/** Resolve the TARGET repo's own prettier. Injected so a test can assert the
|
|
437
|
+
* absolute-path spawn without a populated `node_modules`. */
|
|
438
|
+
resolvePrettier?: (repoRoot: string) => Promise<string | null>;
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Writes a resilient `src/routes/health/+server.ts` if the route doesn't already
|
|
442
|
+
* exist. The function-health audit fetches this endpoint; existing sites need it
|
|
443
|
+
* or the Report Health Gate blocks their Maintenance reports on "unknown". Operator
|
|
444
|
+
* edits to an existing endpoint are never clobbered (noop on existing file).
|
|
445
|
+
*
|
|
446
|
+
* Two heterogeneity fixes the fleet rollout exposed: (1) it detects whether the
|
|
447
|
+
* site has a `$lib/prismicio` module and writes the Prismic-free variant when it
|
|
448
|
+
* doesn't (a static import of a missing module fails the build); (2) it runs the
|
|
449
|
+
* SITE's own prettier on the written file before committing, so the file matches
|
|
450
|
+
* that site's formatting config (tabs/spaces, quote style vary fleet-wide) and
|
|
451
|
+
* doesn't red the CI format check. Prettier is best-effort — a site without it
|
|
452
|
+
* installed commits unformatted with a flag note rather than failing the recipe.
|
|
453
|
+
*/
|
|
454
|
+
declare function healthEndpoint(site: Site, deps?: HealthEndpointDeps): Promise<RecipeResult>;
|
|
455
|
+
|
|
456
|
+
type SmokeSuiteDeps = {
|
|
457
|
+
spawn: SpawnFn;
|
|
458
|
+
/** Resolve the TARGET repo's own prettier. Injected so a test can assert the
|
|
459
|
+
* absolute-path spawn without a populated `node_modules`. */
|
|
460
|
+
resolvePrettier?: (repoRoot: string) => Promise<string | null>;
|
|
461
|
+
};
|
|
462
|
+
/**
|
|
463
|
+
* Adds the smoke suite to a site: the `tests/smoke/*` specs, a `test:smoke` /
|
|
464
|
+
* `test:unit` script split, `@playwright/test`, and a `playwright.config.ts`
|
|
465
|
+
* that honors `REDDOOR_SMOKE_PORT` (R1.1). Conservative + partial-apply — every
|
|
466
|
+
* file is noop-if-exists, every `package.json` script/dep is add-if-absent, and
|
|
467
|
+
* an existing config that isn't a recognizable shared-base shape is left
|
|
468
|
+
* untouched and flagged for a manual R1.1 patch (never a destructive write).
|
|
469
|
+
* A site with no `package.json` noops (not a node project). Branch+commit per site.
|
|
470
|
+
*/
|
|
471
|
+
declare function smokeSuite(site: Site, deps?: SmokeSuiteDeps): Promise<RecipeResult>;
|
|
472
|
+
|
|
473
|
+
type MatchHarnessOptions = {
|
|
474
|
+
/** The live reference URL the harness gates against. Required — a harness
|
|
475
|
+
* with no reference cannot produce evidence, only an absence of errors. */
|
|
476
|
+
ref: string;
|
|
477
|
+
/** Candidate origin. Defaults to the SvelteKit dev server. */
|
|
478
|
+
cand?: string;
|
|
479
|
+
/** Breakpoint matrix. Defaults to the fleet's 1440 / 834 / 390. */
|
|
480
|
+
matrix?: number[];
|
|
481
|
+
};
|
|
482
|
+
type MatchHarnessDeps = {
|
|
483
|
+
spawn: SpawnFn;
|
|
484
|
+
/** Previously shipped renders per relative path; injectable so the
|
|
485
|
+
* safe-replace path is testable before a second version exists. */
|
|
486
|
+
previous?: Readonly<Record<string, readonly string[]>>;
|
|
487
|
+
/** Previously shipped BLOCK bodies per target file; injectable for the same
|
|
488
|
+
* reason, and empty in the shipped table until a body is superseded. */
|
|
489
|
+
blockPrevious?: Readonly<Record<string, readonly string[]>>;
|
|
490
|
+
/** Resolve the TARGET repo's own prettier. Injected so a test can assert the
|
|
491
|
+
* absolute-path spawn without a populated `node_modules`. */
|
|
492
|
+
resolvePrettier?: (repoRoot: string) => Promise<string | null>;
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* Installs the matching harness into a site: the dev-guarded `/dev/match/[uid]`
|
|
496
|
+
* route, a `site-pages.js` scaffold and its fixture-vs-model test,
|
|
497
|
+
* `matching/harness.json` + the read layer, the round scripts, the site records,
|
|
498
|
+
* and the `.gitignore` / `.prettierignore` / `CLAUDE.md` blocks.
|
|
499
|
+
*
|
|
500
|
+
* Install-if-absent throughout. Files a site edits are never rewritten. A
|
|
501
|
+
* recipe-owned script that matches a previously shipped render is safe-replaced;
|
|
502
|
+
* one that has been hand-edited is FLAGGED in the notes and left alone.
|
|
503
|
+
*
|
|
504
|
+
* ONE EXCEPTION TO PER-FILE INDEPENDENCE: the scripts in MATCH_HARNESS_COUPLED
|
|
505
|
+
* upgrade as a SET. If any one of them is hand-edited, none of them is written,
|
|
506
|
+
* because gate.sh calls `harness.mjs --check-run` and next.mjs imports from
|
|
507
|
+
* harness.mjs — upgrading the others around a pinned one leaves a harness that
|
|
508
|
+
* cannot run at all. See the measurement on MATCH_HARNESS_COUPLED.
|
|
509
|
+
*/
|
|
510
|
+
declare function matchHarness(site: Site, opts: MatchHarnessOptions, deps?: MatchHarnessDeps): Promise<RecipeResult>;
|
|
511
|
+
|
|
421
512
|
type InitStepResult = {
|
|
422
513
|
kind: "recipe";
|
|
423
514
|
result: RecipeResult;
|
|
@@ -1166,6 +1257,13 @@ type SiteMirror = {
|
|
|
1166
1257
|
health: (siteId: string, fields: Record<string, unknown>) => Promise<void>;
|
|
1167
1258
|
/** Columns that live in `sites`. */
|
|
1168
1259
|
site: (siteId: string, fields: Record<string, unknown>) => Promise<void>;
|
|
1260
|
+
/** #645. Does Turso hold a row for this site id? A pure READ, so it is the one
|
|
1261
|
+
* op here that neither logs a SITE_MIRROR line nor throws under the freeze —
|
|
1262
|
+
* `ensure-site` uses it to decide whether to heal, and a probe that threw
|
|
1263
|
+
* would sink the very command that repairs the gap. Creds-absent answers
|
|
1264
|
+
* `true` ("assume present"), so a mirror that cannot read can never provoke
|
|
1265
|
+
* a blind insert. */
|
|
1266
|
+
hasRow: (siteId: string) => Promise<boolean>;
|
|
1169
1267
|
};
|
|
1170
1268
|
|
|
1171
1269
|
type ShootOptions = {
|
|
@@ -1174,6 +1272,9 @@ type ShootOptions = {
|
|
|
1174
1272
|
height: number;
|
|
1175
1273
|
deviceScaleFactor: number;
|
|
1176
1274
|
settleMs: number;
|
|
1275
|
+
/** Extra CSS selector(s) hidden before the shutter, for a site whose consent
|
|
1276
|
+
* or interstitial UI the class/id heuristic misses. */
|
|
1277
|
+
consentSelector?: string;
|
|
1177
1278
|
};
|
|
1178
1279
|
/** Injected browser IO. The real impl drives Playwright; tests pass a fake. */
|
|
1179
1280
|
type Shooter = {
|
|
@@ -1187,8 +1288,11 @@ type GenerateInput = {
|
|
|
1187
1288
|
slug?: string;
|
|
1188
1289
|
/** Injected browser IO (tests). */
|
|
1189
1290
|
shooter?: Shooter;
|
|
1190
|
-
/** Per-site settle override for animation-heavy
|
|
1291
|
+
/** Per-site settle override for animation-heavy homepages. */
|
|
1191
1292
|
settleMs?: number;
|
|
1293
|
+
/** Extra CSS selector(s) hidden before the shutter, for consent or
|
|
1294
|
+
* interstitial UI the capture's class/id heuristic misses (#654). */
|
|
1295
|
+
consentSelector?: string;
|
|
1192
1296
|
};
|
|
1193
1297
|
type GeneratedHeaderImage = {
|
|
1194
1298
|
bytes: Uint8Array;
|
|
@@ -1452,6 +1556,15 @@ type SubmissionRow = {
|
|
|
1452
1556
|
* was attempted: a non-newsletter form, a spam row, a site with no destination
|
|
1453
1557
|
* configured, or a row written before 0005. See ingest.ts for the token grammar. */
|
|
1454
1558
|
fanoutStatus?: string | null;
|
|
1559
|
+
/** Resend's bounce classification, kept so a content rejection by the CLIENT's
|
|
1560
|
+
* mail filter can be told apart from a dead mailbox (#783). Null for a
|
|
1561
|
+
* complaint, and for every row written before migration 0018. */
|
|
1562
|
+
bounceType?: string | null;
|
|
1563
|
+
bounceSubType?: string | null;
|
|
1564
|
+
bounceMessage?: string | null;
|
|
1565
|
+
/** ISO-8601 of the operator saying "this address is not dead" (#783). The row
|
|
1566
|
+
* keeps its bounce record and stops counting toward the alarm. */
|
|
1567
|
+
bounceAckAt?: string | null;
|
|
1455
1568
|
};
|
|
1456
1569
|
|
|
1457
1570
|
type ScreenOutTotals = {
|
|
@@ -1474,6 +1587,13 @@ type AttentionItem = {
|
|
|
1474
1587
|
/** Stable identity for diffing: `vuln:<siteId>`, `delivery:<reportId>`. */
|
|
1475
1588
|
key: string;
|
|
1476
1589
|
kind: "vuln" | "delivery" | "renovate" | "lighthouse" | "ci" | "analytics" | "preflight" | "turnstile" | "notify-bounce"
|
|
1590
|
+
/** #645. Leads captured by the dead-letter because their site could not be
|
|
1591
|
+
* placed — a store outage during the lookup, or (since #645) a slug with no
|
|
1592
|
+
* Turso row at all. Until this kind existed a dropped lead had NO alarm
|
|
1593
|
+
* anywhere: the queue could fill and nothing said so. Keyed by SLUG, not by
|
|
1594
|
+
* site id, because the whole point of the worst case is that the slug
|
|
1595
|
+
* resolves to no site. */
|
|
1596
|
+
| "deadletter"
|
|
1477
1597
|
/** The nightly Prismic model sweep. THREE item flavors share this kind —
|
|
1478
1598
|
* `prismic-drift:` (repo and Prismic diverge), `prismic-unknown:` (the check
|
|
1479
1599
|
* ran and could not answer), `prismic-stale:` (nobody has re-established the
|
|
@@ -1612,6 +1732,17 @@ type CockpitModel = {
|
|
|
1612
1732
|
* invisible to every fleet op, so the Needs-you feed surfaces them as amber watch
|
|
1613
1733
|
* rows (optional for back-compat). */
|
|
1614
1734
|
unrecognizedStatus?: OffFleetSiteEntry[];
|
|
1735
|
+
/** #786. Attention items that belong to NO site card. The grid is built from
|
|
1736
|
+
* the visible sites and items are grouped onto it by `siteName`, so an item
|
|
1737
|
+
* naming a site the fleet does not have matched nothing and was dropped —
|
|
1738
|
+
* silently, on the one surface the operator actually watches.
|
|
1739
|
+
*
|
|
1740
|
+
* The collector that produces them is the one whose entire point is that the
|
|
1741
|
+
* site is missing: a dead letter for a slug resolving to no fleet row means
|
|
1742
|
+
* leads are being dropped RIGHT NOW. Kept general rather than
|
|
1743
|
+
* dead-letter-specific, so a future card-less item lands here instead of
|
|
1744
|
+
* vanishing the same way. Optional for back-compat with hand-built models. */
|
|
1745
|
+
cardless?: AttentionItem[];
|
|
1615
1746
|
};
|
|
1616
1747
|
/** The cockpit's alarm verdict for ONE site, for the /s/<slug> page header. */
|
|
1617
1748
|
type SiteAlarmContext = {
|
|
@@ -1702,4 +1833,4 @@ declare function loadPlate(): Promise<Uint8Array>;
|
|
|
1702
1833
|
/** Read a headline overlay (transparent PNG, ink-box cropped). */
|
|
1703
1834
|
declare function loadHeadline(kind: HeadlineKind): Promise<Uint8Array>;
|
|
1704
1835
|
|
|
1705
|
-
export { ALL_AUDIT_NAMES, ALL_RECIPE_NAMES, type AirtableInventoryOptions, AuditName, AuditResult, BLURRED_CID, type BumpDepsOptions, type BundledImage, CHECK_CID, type ConvertToPnpmOptions, DEFAULT_INIT_STEPS, type DraftOptions, type DraftResult, type DueItem, type GenerateInput, type GeneratedHeaderImage, type HeaderImage, type InitOptions, type InitResult, type InitStep, type InitStepResult, InventoryProvider, type LighthouseScores, type LocalPathOptions, type OnboardAudit, type OnboardOptions, type OrchestrateOptions, RecipeName, RecipeResult, type RefreshHeaderDeps, type RenderResult, type ReportData, type ReportType, Site, type UpgradeSvelte4to5Options, a11yAudit, a11yFixturesPage, bumpDeps, convertToPnpm, depsAudit, domainFromUrl, draftReportForSite, findDueReports, fromAirtableBase, fromJsonFile, generateHeaderImage, init, isRecipeName, lighthouseAudit, lintAudit, loadBundledImages, loadHeadline, loadPlate, localPath, onboard, renderCockpitHtml, renderReportHtml, renderSiteDashboardHtml, runAudits, runAuditsAcross, securityAudit, selfCaretRange, selfPackageVersion, sendApprovedReports, svelteCodemods, upgradeSvelte4to5, verifyBasicAuth };
|
|
1836
|
+
export { ALL_AUDIT_NAMES, ALL_RECIPE_NAMES, type AirtableInventoryOptions, AuditName, AuditResult, BLURRED_CID, type BumpDepsOptions, type BundledImage, CHECK_CID, type ConvertToPnpmOptions, DEFAULT_INIT_STEPS, type DraftOptions, type DraftResult, type DueItem, type GenerateInput, type GeneratedHeaderImage, type HeaderImage, type InitOptions, type InitResult, type InitStep, type InitStepResult, InventoryProvider, type LighthouseScores, type LocalPathOptions, type OnboardAudit, type OnboardOptions, type OrchestrateOptions, RecipeName, RecipeResult, type RefreshHeaderDeps, type RenderResult, type ReportData, type ReportType, Site, type UpgradeSvelte4to5Options, a11yAudit, a11yFixturesPage, bumpDeps, convertToPnpm, depsAudit, domainFromUrl, draftReportForSite, findDueReports, fromAirtableBase, fromJsonFile, generateHeaderImage, healthEndpoint, init, isRecipeName, lighthouseAudit, lintAudit, loadBundledImages, loadHeadline, loadPlate, localPath, matchHarness, onboard, renderCockpitHtml, renderReportHtml, renderSiteDashboardHtml, runAudits, runAuditsAcross, securityAudit, selfCaretRange, selfPackageVersion, sendApprovedReports, smokeSuite, svelteCodemods, upgradeSvelte4to5, verifyBasicAuth };
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,47 @@
|
|
|
1
|
-
import "./chunk-
|
|
1
|
+
import "./chunk-YDZ7XGPZ.js";
|
|
2
2
|
import {
|
|
3
3
|
DEFAULT_INIT_STEPS,
|
|
4
4
|
a11yFixturesPage,
|
|
5
5
|
init
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3EA43S3R.js";
|
|
7
7
|
import {
|
|
8
8
|
onboard,
|
|
9
9
|
selfCaretRange,
|
|
10
10
|
selfPackageVersion
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CA6ADGOC.js";
|
|
12
12
|
import {
|
|
13
13
|
draftReportForSite
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-72FJZ6LO.js";
|
|
15
15
|
import "./chunk-YFAXOD7Z.js";
|
|
16
16
|
import {
|
|
17
17
|
upgradeSvelte4to5
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ECDJDHKT.js";
|
|
19
19
|
import {
|
|
20
20
|
convertToPnpm
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DVJNYPFR.js";
|
|
22
22
|
import {
|
|
23
23
|
svelteCodemods
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RRE74VWI.js";
|
|
25
25
|
import "./chunk-J7SZQUCW.js";
|
|
26
|
-
import
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
import
|
|
26
|
+
import {
|
|
27
|
+
healthEndpoint
|
|
28
|
+
} from "./chunk-XED2DNAI.js";
|
|
29
|
+
import {
|
|
30
|
+
matchHarness
|
|
31
|
+
} from "./chunk-IHHAYXKY.js";
|
|
32
|
+
import "./chunk-Y6FCXRIC.js";
|
|
33
|
+
import {
|
|
34
|
+
smokeSuite
|
|
35
|
+
} from "./chunk-NVLREB5R.js";
|
|
36
|
+
import "./chunk-5CJVUPJU.js";
|
|
30
37
|
import {
|
|
31
38
|
bumpDeps
|
|
32
|
-
} from "./chunk-
|
|
33
|
-
import "./chunk-
|
|
39
|
+
} from "./chunk-VEIIUCYL.js";
|
|
40
|
+
import "./chunk-4UTJ4G6P.js";
|
|
41
|
+
import "./chunk-62YWOFVN.js";
|
|
34
42
|
import {
|
|
35
43
|
approveBlockers
|
|
36
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-OTEVKRAH.js";
|
|
37
45
|
import {
|
|
38
46
|
findDueReports
|
|
39
47
|
} from "./chunk-PZR4EBPY.js";
|
|
@@ -41,7 +49,7 @@ import {
|
|
|
41
49
|
parseAddresses,
|
|
42
50
|
sendApprovedReports,
|
|
43
51
|
withGlobalCc
|
|
44
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-P4A6D6HO.js";
|
|
45
53
|
import {
|
|
46
54
|
isPendingApproval
|
|
47
55
|
} from "./chunk-F3JWOPTG.js";
|
|
@@ -51,13 +59,13 @@ import {
|
|
|
51
59
|
isHealthGateClear
|
|
52
60
|
} from "./chunk-VAD43MOR.js";
|
|
53
61
|
import "./chunk-BRYXFH77.js";
|
|
54
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-P7323YVW.js";
|
|
55
63
|
import {
|
|
56
64
|
fromAirtableBase
|
|
57
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-74QRWE6G.js";
|
|
58
66
|
import "./chunk-IY6256GK.js";
|
|
59
67
|
import "./chunk-HN6I2XWI.js";
|
|
60
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-Y5BVR4HW.js";
|
|
61
69
|
import "./chunk-GECESMVS.js";
|
|
62
70
|
import {
|
|
63
71
|
BLURRED_CID,
|
|
@@ -75,19 +83,19 @@ import {
|
|
|
75
83
|
generateHeaderImage,
|
|
76
84
|
loadHeadline,
|
|
77
85
|
loadPlate
|
|
78
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-MZZDMBDT.js";
|
|
79
87
|
import {
|
|
80
88
|
CANONICAL_STATUSES,
|
|
81
89
|
SEVERITY_RANK,
|
|
82
90
|
siteSlug,
|
|
83
91
|
toAirtableStatus
|
|
84
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-KN52PM63.js";
|
|
85
93
|
import "./chunk-WEKL2HYJ.js";
|
|
86
94
|
import "./chunk-T7ZUUOZ2.js";
|
|
87
95
|
import {
|
|
88
96
|
syncConfigs
|
|
89
|
-
} from "./chunk-
|
|
90
|
-
import "./chunk-
|
|
97
|
+
} from "./chunk-IMYL67JV.js";
|
|
98
|
+
import "./chunk-SQ4FSNYL.js";
|
|
91
99
|
import "./chunk-SLFG7Y76.js";
|
|
92
100
|
import "./chunk-OTGB6YQO.js";
|
|
93
101
|
import {
|
|
@@ -98,20 +106,20 @@ import {
|
|
|
98
106
|
runAudits,
|
|
99
107
|
runAuditsAcross,
|
|
100
108
|
securityAudit
|
|
101
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-XY7YV2YQ.js";
|
|
102
110
|
import "./chunk-LKGVSM2O.js";
|
|
103
|
-
import "./chunk-
|
|
104
|
-
import "./chunk-
|
|
111
|
+
import "./chunk-CGQZFQAY.js";
|
|
112
|
+
import "./chunk-43SW3FGW.js";
|
|
105
113
|
import {
|
|
106
114
|
fromJsonFile,
|
|
107
115
|
localPath
|
|
108
116
|
} from "./chunk-Z3JXLULD.js";
|
|
109
|
-
import "./chunk-
|
|
110
|
-
import "./chunk-
|
|
111
|
-
import "./chunk-
|
|
117
|
+
import "./chunk-EQQ4H6L3.js";
|
|
118
|
+
import "./chunk-6INOBNRO.js";
|
|
119
|
+
import "./chunk-T76MA2FH.js";
|
|
112
120
|
import {
|
|
113
121
|
lighthouseAudit
|
|
114
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-BIYQN7FH.js";
|
|
115
123
|
import "./chunk-UDRHAQT7.js";
|
|
116
124
|
import "./chunk-PTDMVGKL.js";
|
|
117
125
|
import "./chunk-LBYOLBW7.js";
|
|
@@ -121,10 +129,10 @@ import {
|
|
|
121
129
|
} from "./chunk-2OP4JKIQ.js";
|
|
122
130
|
import "./chunk-RARREDQE.js";
|
|
123
131
|
import "./chunk-XXTZBPUY.js";
|
|
124
|
-
import "./chunk-
|
|
132
|
+
import "./chunk-EASYCD6F.js";
|
|
125
133
|
import "./chunk-6VAL7XJT.js";
|
|
126
134
|
import "./chunk-NMAWXBJA.js";
|
|
127
|
-
import "./chunk-
|
|
135
|
+
import "./chunk-CXICCLNM.js";
|
|
128
136
|
|
|
129
137
|
// src/recipes/index.ts
|
|
130
138
|
var ALL_RECIPE_NAMES = [
|
|
@@ -245,7 +253,13 @@ function renderSubmissionRowInner(s) {
|
|
|
245
253
|
const reasonChip = reasonTokens.length > 0 ? ` <span class="subm-reasons">${escapeHtml(reasonChipText(reasonTokens))}</span>` : "";
|
|
246
254
|
const provenance = s.status === "spam_auto" && s.spamScore !== null && s.spamScore !== void 0 ? ` <span class="subm-provenance" title="${escapeHtml(s.spamReason ?? "")}">auto-spam \xB7 ${escapeHtml(String(s.spamScore))}</span>${reasonChip}` : "";
|
|
247
255
|
const recover = s.status === "spam_auto" ? btn("Not spam \u2192 new", "new") : "";
|
|
248
|
-
const
|
|
256
|
+
const bouncePermanent = (s.bounceType ?? "").toLowerCase() === "permanent";
|
|
257
|
+
const bounceAcked = typeof s.bounceAckAt === "string" && s.bounceAckAt !== "";
|
|
258
|
+
const bounceLabel = s.bounceSubType ?? s.bounceType ?? null;
|
|
259
|
+
const bounceTitle = bouncePermanent ? "The lead notification email bounced \u2014 the point-of-contact address may be dead" : bounceLabel !== null ? "The receiving server refused this message \u2014 the client's mail filter is rejecting lead notifications, which is not the same as a dead address" : "The lead notification email bounced \u2014 Resend recorded no classification for it";
|
|
260
|
+
const bounceChipText = `notify bounced${bounceLabel !== null ? ` \xB7 ${bounceLabel}` : ""}${bounceAcked ? " \xB7 acknowledged" : ""}`;
|
|
261
|
+
const bounceChip = s.notifyStatus === "bounced" ? ` <span class="subm-bounce${bounceAcked ? " acked" : ""}" title="${escapeHtml(bounceTitle)}">${escapeHtml(bounceChipText)}</span>` : "";
|
|
262
|
+
const ackBounce = s.notifyStatus === "bounced" && !bounceAcked ? `<button class="subm-status" data-id="${id}" data-ack="notify-bounce" data-url="${url}">Not dead \u2014 acknowledge</button>` : "";
|
|
249
263
|
const fanoutBad = fanoutFailures(s.fanoutStatus);
|
|
250
264
|
const fanoutChip = fanoutBad.length > 0 ? ` <span class="subm-fanout-fail" title="This signup did not reach every configured destination">fan-out: ${escapeHtml(fanoutBad.join(" \xB7 "))}</span>` : "";
|
|
251
265
|
const kv = (label, value) => value === null || value === "" ? "" : `<div class="subm-kv"><span class="k">${label}</span> ${escapeHtml(String(value))}</div>`;
|
|
@@ -261,6 +275,11 @@ function renderSubmissionRowInner(s) {
|
|
|
261
275
|
extraFieldsList(s.extraFields),
|
|
262
276
|
kv("Spam", spamDetail),
|
|
263
277
|
kv("Notify", s.notifyStatus),
|
|
278
|
+
kv("Bounce", [s.bounceType, s.bounceSubType].filter((x) => !!x).join(" / ")),
|
|
279
|
+
// The receiving server's own words — the single most useful line when
|
|
280
|
+
// deciding whether an address is dead or a filter is being strict.
|
|
281
|
+
kv("Bounce message", s.bounceMessage ?? null),
|
|
282
|
+
kv("Bounce acknowledged", s.bounceAckAt ?? null),
|
|
264
283
|
kv("Fan-out", s.fanoutStatus ?? null),
|
|
265
284
|
kv("Resend ID", s.resendMessageId),
|
|
266
285
|
kv("Submission #", s.submissionId)
|
|
@@ -269,7 +288,7 @@ function renderSubmissionRowInner(s) {
|
|
|
269
288
|
<summary class="subm-head"><strong>${type}</strong> \xB7 ${who} <span class="muted">${email}</span> <span class="pill subm-${status}">${status}</span>${provenance}${bounceChip}${fanoutChip} <span class="muted">${when}</span></summary>
|
|
270
289
|
<div class="subm-detail">${details}</div>
|
|
271
290
|
</details>
|
|
272
|
-
<div class="subm-actions">${recover}${btn("Read", "read")}${btn("Archive", "archived")}${btn("Spam", "spam")}</div>`;
|
|
291
|
+
<div class="subm-actions">${recover}${ackBounce}${btn("Read", "read")}${btn("Archive", "archived")}${btn("Spam", "spam")}</div>`;
|
|
273
292
|
}
|
|
274
293
|
function renderSubmissionRow(s) {
|
|
275
294
|
return `<li class="subm-item">${renderSubmissionRowInner(s)}</li>`;
|
|
@@ -296,6 +315,7 @@ button.subm-status:disabled { opacity: 0.6; cursor: default; }
|
|
|
296
315
|
.pill.subm-spam_auto { background: #fff4e5; color: #a65a00; }
|
|
297
316
|
.subm-provenance { font-size: 0.72rem; border-radius: 0.25rem; padding: 0 0.35rem; white-space: nowrap; background: #fff4e5; color: #a65a00; }
|
|
298
317
|
.subm-bounce { font-size: 0.72rem; border-radius: 0.25rem; padding: 0 0.35rem; white-space: nowrap; background: #fdecea; color: #b00; font-weight: 700; }
|
|
318
|
+
.subm-bounce.acked { background: #f0f0f0; color: #666; font-weight: 400; }
|
|
299
319
|
.subm-fanout-fail { font-size: 0.72rem; border-radius: 0.25rem; padding: 0 0.35rem; white-space: nowrap; background: #fdecea; color: #b00; font-weight: 700; }
|
|
300
320
|
.subm-reasons { font-size: 0.72rem; color: #999; }
|
|
301
321
|
.subm-viewall { font-size: 0.8rem; font-weight: normal; margin-left: 0.4rem; white-space: nowrap; }`;
|
|
@@ -306,7 +326,9 @@ var SUBMISSION_STATUS_SCRIPT = `document.querySelectorAll("button.subm-status").
|
|
|
306
326
|
const res = await fetch(b.dataset.url, {
|
|
307
327
|
method: "POST",
|
|
308
328
|
headers: { "content-type": "application/json" },
|
|
309
|
-
body: JSON.stringify(
|
|
329
|
+
body: JSON.stringify(
|
|
330
|
+
b.dataset.ack ? { ack: b.dataset.ack } : { status: b.dataset.status },
|
|
331
|
+
),
|
|
310
332
|
});
|
|
311
333
|
b.textContent = res.ok ? "\u2713" : "Failed";
|
|
312
334
|
if (!res.ok) b.disabled = false;
|
|
@@ -1638,6 +1660,14 @@ function renderArchivedLane(model) {
|
|
|
1638
1660
|
).join("");
|
|
1639
1661
|
return `<details class="archived"><summary>\u{1F5C4} Archived (${rows.length})</summary>${lis}</details>`;
|
|
1640
1662
|
}
|
|
1663
|
+
function renderCardlessLane(model) {
|
|
1664
|
+
const items = model.cardless ?? [];
|
|
1665
|
+
if (items.length === 0) return "";
|
|
1666
|
+
const rows = items.map(
|
|
1667
|
+
(i) => `<div class="approve-row"><strong>${escapeHtml(i.siteName)}</strong> <span class="muted">${escapeHtml(i.title)}</span></div>`
|
|
1668
|
+
).join("");
|
|
1669
|
+
return `<details class="cardless"><summary>\u26A0 Not on any site card (${items.length})</summary>${rows}</details>`;
|
|
1670
|
+
}
|
|
1641
1671
|
function renderInboxLane(model) {
|
|
1642
1672
|
const subs = model.submissions ?? [];
|
|
1643
1673
|
const spam = model.spam;
|
|
@@ -1812,6 +1842,7 @@ function renderCockpitHtml(model, operatorEmail = null) {
|
|
|
1812
1842
|
${renderFleetBrowsePanel(model)}
|
|
1813
1843
|
${renderRecentlyLane(model)}
|
|
1814
1844
|
${renderArchivedLane(model)}
|
|
1845
|
+
${renderCardlessLane(model)}
|
|
1815
1846
|
${renderInboxLane(model)}
|
|
1816
1847
|
${AUDIT_SCRIPT}
|
|
1817
1848
|
${FLEET_BROWSE_SCRIPT}
|
|
@@ -1867,6 +1898,7 @@ export {
|
|
|
1867
1898
|
fromAirtableBase,
|
|
1868
1899
|
fromJsonFile,
|
|
1869
1900
|
generateHeaderImage,
|
|
1901
|
+
healthEndpoint,
|
|
1870
1902
|
init,
|
|
1871
1903
|
isRecipeName,
|
|
1872
1904
|
lighthouseAudit,
|
|
@@ -1875,6 +1907,7 @@ export {
|
|
|
1875
1907
|
loadHeadline,
|
|
1876
1908
|
loadPlate,
|
|
1877
1909
|
localPath,
|
|
1910
|
+
matchHarness,
|
|
1878
1911
|
onboard,
|
|
1879
1912
|
renderCockpitHtml,
|
|
1880
1913
|
renderReportHtml,
|
|
@@ -1885,6 +1918,7 @@ export {
|
|
|
1885
1918
|
selfCaretRange,
|
|
1886
1919
|
selfPackageVersion,
|
|
1887
1920
|
sendApprovedReports,
|
|
1921
|
+
smokeSuite,
|
|
1888
1922
|
svelteCodemods,
|
|
1889
1923
|
syncConfigs,
|
|
1890
1924
|
upgradeSvelte4to5,
|