@reddoorla/maintenance 0.85.2 → 0.86.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.
Files changed (245) hide show
  1. package/README.md +8 -0
  2. package/dist/airtable-G7WBQQMI.js +9 -0
  3. package/dist/{announce-GIAYN67S.js → announce-MXTUQ6C7.js} +26 -19
  4. package/dist/announce-MXTUQ6C7.js.map +1 -0
  5. package/dist/{bump-deps-SWJB6H5V.js → bump-deps-EC74CPLS.js} +9 -9
  6. package/dist/chunk-2EVEFOZY.js +129 -0
  7. package/dist/chunk-2EVEFOZY.js.map +1 -0
  8. package/dist/{chunk-COZPL62X.js → chunk-2NDRHXMR.js} +25 -17
  9. package/dist/chunk-2NDRHXMR.js.map +1 -0
  10. package/dist/{chunk-SDUJIANJ.js → chunk-2NJQLSEU.js} +3 -3
  11. package/dist/chunk-2NQUCS7O.js +243 -0
  12. package/dist/chunk-2NQUCS7O.js.map +1 -0
  13. package/dist/{chunk-DTTIFYAM.js → chunk-2ZPT7GLV.js} +42 -403
  14. package/dist/chunk-2ZPT7GLV.js.map +1 -0
  15. package/dist/{chunk-ZTPPCHDB.js → chunk-3G25KIWW.js} +4 -4
  16. package/dist/chunk-3SF7D4DY.js +359 -0
  17. package/dist/chunk-3SF7D4DY.js.map +1 -0
  18. package/dist/{chunk-Q276MZ7E.js → chunk-3VQWSE3F.js} +4 -4
  19. package/dist/{chunk-37S6L6G4.js → chunk-5UINJNAJ.js} +72 -2
  20. package/dist/chunk-5UINJNAJ.js.map +1 -0
  21. package/dist/{chunk-THEFTZ7F.js → chunk-62CMMGEO.js} +5 -5
  22. package/dist/{chunk-FDIFTIXC.js → chunk-6TWWY7ZU.js} +2 -2
  23. package/dist/{chunk-UYCAF77E.js → chunk-7RJ2HMMJ.js} +3 -3
  24. package/dist/chunk-ACBRLLFT.js +198 -0
  25. package/dist/chunk-ACBRLLFT.js.map +1 -0
  26. package/dist/chunk-BNM5POSJ.js +284 -0
  27. package/dist/chunk-BNM5POSJ.js.map +1 -0
  28. package/dist/{chunk-R6FPFMOS.js → chunk-BQRFQSGY.js} +3 -3
  29. package/dist/{chunk-MGR2H7F4.js → chunk-BYK66EWO.js} +19 -12
  30. package/dist/chunk-BYK66EWO.js.map +1 -0
  31. package/dist/{chunk-6QRLRT3P.js → chunk-CQR4LIM7.js} +12 -265
  32. package/dist/chunk-CQR4LIM7.js.map +1 -0
  33. package/dist/{chunk-SEEA6RXF.js → chunk-DJZWYIPP.js} +2 -2
  34. package/dist/chunk-DJZWYIPP.js.map +1 -0
  35. package/dist/chunk-EVBCK2KC.js +68 -0
  36. package/dist/chunk-EVBCK2KC.js.map +1 -0
  37. package/dist/{chunk-TP5M2NQB.js → chunk-F5KM4LEQ.js} +3 -3
  38. package/dist/{chunk-62VF32IC.js → chunk-ILUNZHYV.js} +2 -2
  39. package/dist/chunk-ITIOFN7A.js +396 -0
  40. package/dist/chunk-ITIOFN7A.js.map +1 -0
  41. package/dist/{chunk-LS6QPANO.js → chunk-IYSEC543.js} +2 -2
  42. package/dist/{chunk-DC5H7KEQ.js → chunk-JHGHLKFS.js} +2 -2
  43. package/dist/{chunk-PBWDDDQH.js → chunk-KTH5ZODA.js} +2 -2
  44. package/dist/{chunk-4DHQCN5H.js → chunk-LBYOLBW7.js} +17 -2
  45. package/dist/chunk-LBYOLBW7.js.map +1 -0
  46. package/dist/{chunk-577HCGZO.js → chunk-LDWZSLSU.js} +38 -23
  47. package/dist/chunk-LDWZSLSU.js.map +1 -0
  48. package/dist/{chunk-LTB6KVJW.js → chunk-N45M3FDK.js} +13 -11
  49. package/dist/{chunk-LTB6KVJW.js.map → chunk-N45M3FDK.js.map} +1 -1
  50. package/dist/chunk-NYUYNYQL.js +48 -0
  51. package/dist/chunk-NYUYNYQL.js.map +1 -0
  52. package/dist/{chunk-7J53SUT6.js → chunk-P2FE5AI6.js} +4 -4
  53. package/dist/{chunk-3YXDSCM6.js → chunk-PPE5KZJK.js} +29 -11
  54. package/dist/chunk-PPE5KZJK.js.map +1 -0
  55. package/dist/chunk-PTDMVGKL.js +31 -0
  56. package/dist/chunk-PTDMVGKL.js.map +1 -0
  57. package/dist/{chunk-D4FVAIEJ.js → chunk-PZR4EBPY.js} +5 -2
  58. package/dist/chunk-PZR4EBPY.js.map +1 -0
  59. package/dist/{chunk-NWB4O5EY.js → chunk-SLUQ7R6I.js} +3 -3
  60. package/dist/chunk-SLUQ7R6I.js.map +1 -0
  61. package/dist/{chunk-GZNBCHAZ.js → chunk-TERE5SDF.js} +4 -4
  62. package/dist/{chunk-ZMIPG6TR.js → chunk-TVL5MVUF.js} +4 -4
  63. package/dist/chunk-UDRHAQT7.js +172 -0
  64. package/dist/chunk-UDRHAQT7.js.map +1 -0
  65. package/dist/chunk-VAD43MOR.js +72 -0
  66. package/dist/chunk-VAD43MOR.js.map +1 -0
  67. package/dist/chunk-VSBFM7DS.js +229 -0
  68. package/dist/chunk-VSBFM7DS.js.map +1 -0
  69. package/dist/chunk-W7Z3BGCI.js +274 -0
  70. package/dist/chunk-W7Z3BGCI.js.map +1 -0
  71. package/dist/chunk-X3B723J4.js +1209 -0
  72. package/dist/chunk-X3B723J4.js.map +1 -0
  73. package/dist/{chunk-VRWUL4TR.js → chunk-XHHMM5HX.js} +2 -2
  74. package/dist/{chunk-RJB3QUSP.js → chunk-XIDUYLSR.js} +3 -3
  75. package/dist/{chunk-QG6OSL4M.js → chunk-XUGSZP7Z.js} +2 -2
  76. package/dist/{chunk-S56JQJ4F.js → chunk-Y53WOQIJ.js} +3 -3
  77. package/dist/{chunk-ICXV25N7.js → chunk-Z3KYFUN6.js} +3 -3
  78. package/dist/{chunk-MPBXOJ3N.js → chunk-Z7AXYKQB.js} +33 -2
  79. package/dist/chunk-Z7AXYKQB.js.map +1 -0
  80. package/dist/{chunk-WYYQK4D3.js → chunk-ZKXSX4LO.js} +11 -11
  81. package/dist/cli/bin.js +46 -28
  82. package/dist/cli/bin.js.map +1 -1
  83. package/dist/cli/commands/audit.d.ts +30 -1
  84. package/dist/cli/commands/audit.js +62 -30
  85. package/dist/cli/commands/audit.js.map +1 -1
  86. package/dist/client-AUE3XUPO.js +11 -0
  87. package/dist/{convert-to-pnpm-AT52NWZB.js → convert-to-pnpm-6L6P74WR.js} +9 -9
  88. package/dist/db-B35OGV3G.js +217 -0
  89. package/dist/db-B35OGV3G.js.map +1 -0
  90. package/dist/{digest-UVHYZUYE.js → digest-BL6UJYKH.js} +23 -20
  91. package/dist/{digest-UVHYZUYE.js.map → digest-BL6UJYKH.js.map} +1 -1
  92. package/dist/dump-P6EBSIOH.js +68 -0
  93. package/dist/dump-P6EBSIOH.js.map +1 -0
  94. package/dist/email-VTTTKKL5.js +195 -0
  95. package/dist/email-VTTTKKL5.js.map +1 -0
  96. package/dist/{ensure-site-S25MDDHW.js → ensure-site-DFTB7MN3.js} +8 -7
  97. package/dist/ensure-site-DFTB7MN3.js.map +1 -0
  98. package/dist/fleet-events-cF2Om88w.d.ts +24 -0
  99. package/dist/{forms-notify-target-TWN4EH6K.js → forms-notify-target-75U6OU7L.js} +38 -132
  100. package/dist/forms-notify-target-75U6OU7L.js.map +1 -0
  101. package/dist/{github-signals-G4ILZAJ6.js → github-signals-IJUPGCUX.js} +40 -19
  102. package/dist/github-signals-IJUPGCUX.js.map +1 -0
  103. package/dist/{header-image-T7XD37JL.js → header-image-AWLLQA4L.js} +34 -11
  104. package/dist/header-image-AWLLQA4L.js.map +1 -0
  105. package/dist/header-images-335L2AKB.js +68 -0
  106. package/dist/header-images-335L2AKB.js.map +1 -0
  107. package/dist/{health-endpoint-242WG2OJ.js → health-endpoint-WJC2UMYS.js} +9 -9
  108. package/dist/health-mirror-4B2L7T2Y.js +75 -0
  109. package/dist/health-mirror-4B2L7T2Y.js.map +1 -0
  110. package/dist/import-airtable-HE43FB4H.js +35 -0
  111. package/dist/index.d.ts +175 -21
  112. package/dist/index.js +115 -73
  113. package/dist/index.js.map +1 -1
  114. package/dist/{init-JN26NTWF.js → init-NJEOEO7I.js} +20 -17
  115. package/dist/{init-JN26NTWF.js.map → init-NJEOEO7I.js.map} +1 -1
  116. package/dist/{launch-JA7Z4CIM.js → launch-XNAX427U.js} +31 -25
  117. package/dist/{launch-JA7Z4CIM.js.map → launch-XNAX427U.js.map} +1 -1
  118. package/dist/lighthouse-VHI77PFB.js +11 -0
  119. package/dist/{lighthouse-airtable-BIPM26SZ.js → lighthouse-airtable-LBVIYYP5.js} +3 -3
  120. package/dist/mailchimp-XYCTEEJY.js +72 -0
  121. package/dist/mailchimp-XYCTEEJY.js.map +1 -0
  122. package/dist/migrate-GQH237A6.js +7 -0
  123. package/dist/notify-C645PGD5.js +22 -0
  124. package/dist/{onboard-53CITIM7.js → onboard-GK4PHPNI.js} +9 -9
  125. package/dist/orchestrate-77UO4BYJ.js +30 -0
  126. package/dist/orchestrate-77UO4BYJ.js.map +1 -0
  127. package/dist/parity-MWS24A3H.js +12 -0
  128. package/dist/parity-MWS24A3H.js.map +1 -0
  129. package/dist/pipeline-S6CVHDGB.js +12 -0
  130. package/dist/pipeline-S6CVHDGB.js.map +1 -0
  131. package/dist/{preflight-3XPDUHFJ.js → preflight-6WBNU2GZ.js} +16 -13
  132. package/dist/{preflight-3XPDUHFJ.js.map → preflight-6WBNU2GZ.js.map} +1 -1
  133. package/dist/{prismic-ci-UTQ6LRR3.js → prismic-ci-3RHOZUUT.js} +15 -15
  134. package/dist/{prismic-models-PVES6R5V.js → prismic-models-QBGUT2Q3.js} +10 -10
  135. package/dist/prospect-audit-IUNCJ2LV.js +174 -0
  136. package/dist/prospect-audit-IUNCJ2LV.js.map +1 -0
  137. package/dist/prospect-audits-3PMIO73D.js +19 -0
  138. package/dist/prospect-audits-3PMIO73D.js.map +1 -0
  139. package/dist/{protection-audit-64PLLBLI.js → protection-audit-SJO53MEQ.js} +3 -3
  140. package/dist/recipes/sync-configs.js +3 -3
  141. package/dist/render-AQAVQDPZ.js +10 -0
  142. package/dist/render-AQAVQDPZ.js.map +1 -0
  143. package/dist/{renovate-dispatch-ICJGSFCE.js → renovate-dispatch-QJY75ODR.js} +8 -8
  144. package/dist/replay-C2LXMJZP.js +66 -0
  145. package/dist/replay-C2LXMJZP.js.map +1 -0
  146. package/dist/{report-6CKSWJNG.js → report-4EVNDHOZ.js} +55 -29
  147. package/dist/report-4EVNDHOZ.js.map +1 -0
  148. package/dist/reports/header-image/assets/headline-announcement.png +0 -0
  149. package/dist/reports/header-image/assets/headline-launch.png +0 -0
  150. package/dist/reports/header-image/assets/headline-maintenance.png +0 -0
  151. package/dist/reports/header-image/assets/headline-testing.png +0 -0
  152. package/dist/reports/header-image/assets/plate-clean.png +0 -0
  153. package/dist/{self-updating-PPQVV6UA.js → self-updating-6DWI2Z56.js} +9 -9
  154. package/dist/{selftest-CQ6NOX52.js → selftest-RC36MTKP.js} +25 -20
  155. package/dist/selftest-RC36MTKP.js.map +1 -0
  156. package/dist/smoke-B2GQOSIZ.js +20 -0
  157. package/dist/smoke-B2GQOSIZ.js.map +1 -0
  158. package/dist/{smoke-suite-TMCSOYRK.js → smoke-suite-VYY2LXM2.js} +9 -9
  159. package/dist/{submissions-GJ6ITBRH.js → submissions-Q7DRFOCD.js} +3 -3
  160. package/dist/{svelte-codemods-ZOBDHIES.js → svelte-codemods-25J2FO22.js} +9 -9
  161. package/dist/sync-34HNZZ56.js +44 -0
  162. package/dist/sync-34HNZZ56.js.map +1 -0
  163. package/dist/{sync-configs-CJXUX6MD.js → sync-configs-3SE6PSCO.js} +9 -9
  164. package/dist/{upgrade-WLX27UPC.js → upgrade-WBRQ62FX.js} +9 -9
  165. package/dist/{webflow-624FEBFD.js → webflow-IRKOIT7S.js} +4 -4
  166. package/dist/webhook-VOGOW3W6.js +38 -0
  167. package/dist/webhook-VOGOW3W6.js.map +1 -0
  168. package/dist/{websites-SADZR4XQ.js → websites-SXWTP72S.js} +6 -2
  169. package/dist/websites-SXWTP72S.js.map +1 -0
  170. package/dist/{write-audits-to-airtable-7PH75YWY.js → write-audits-to-airtable-MBEILLPU.js} +4 -4
  171. package/dist/write-audits-to-airtable-MBEILLPU.js.map +1 -0
  172. package/package.json +5 -2
  173. package/dist/airtable-HRKSA7V4.js +0 -9
  174. package/dist/announce-GIAYN67S.js.map +0 -1
  175. package/dist/chunk-37S6L6G4.js.map +0 -1
  176. package/dist/chunk-3YXDSCM6.js.map +0 -1
  177. package/dist/chunk-4DHQCN5H.js.map +0 -1
  178. package/dist/chunk-4SOCPK7A.js +0 -108
  179. package/dist/chunk-4SOCPK7A.js.map +0 -1
  180. package/dist/chunk-577HCGZO.js.map +0 -1
  181. package/dist/chunk-6QRLRT3P.js.map +0 -1
  182. package/dist/chunk-COZPL62X.js.map +0 -1
  183. package/dist/chunk-D4FVAIEJ.js.map +0 -1
  184. package/dist/chunk-DTTIFYAM.js.map +0 -1
  185. package/dist/chunk-MGR2H7F4.js.map +0 -1
  186. package/dist/chunk-MPBXOJ3N.js.map +0 -1
  187. package/dist/chunk-NWB4O5EY.js.map +0 -1
  188. package/dist/chunk-SEEA6RXF.js.map +0 -1
  189. package/dist/chunk-U5SZ4FOP.js +0 -26
  190. package/dist/chunk-U5SZ4FOP.js.map +0 -1
  191. package/dist/client-X5WUJWDE.js +0 -11
  192. package/dist/db-JSIZYT23.js +0 -23
  193. package/dist/db-JSIZYT23.js.map +0 -1
  194. package/dist/ensure-site-S25MDDHW.js.map +0 -1
  195. package/dist/forms-notify-target-TWN4EH6K.js.map +0 -1
  196. package/dist/github-signals-G4ILZAJ6.js.map +0 -1
  197. package/dist/header-image-T7XD37JL.js.map +0 -1
  198. package/dist/migrate-LJUFGXQZ.js +0 -7
  199. package/dist/orchestrate-KDNXZQX7.js +0 -27
  200. package/dist/report-6CKSWJNG.js.map +0 -1
  201. package/dist/reports/header-image/assets/plate.png +0 -0
  202. package/dist/selftest-CQ6NOX52.js.map +0 -1
  203. /package/dist/{airtable-HRKSA7V4.js.map → airtable-G7WBQQMI.js.map} +0 -0
  204. /package/dist/{bump-deps-SWJB6H5V.js.map → bump-deps-EC74CPLS.js.map} +0 -0
  205. /package/dist/{chunk-SDUJIANJ.js.map → chunk-2NJQLSEU.js.map} +0 -0
  206. /package/dist/{chunk-ZTPPCHDB.js.map → chunk-3G25KIWW.js.map} +0 -0
  207. /package/dist/{chunk-Q276MZ7E.js.map → chunk-3VQWSE3F.js.map} +0 -0
  208. /package/dist/{chunk-THEFTZ7F.js.map → chunk-62CMMGEO.js.map} +0 -0
  209. /package/dist/{chunk-FDIFTIXC.js.map → chunk-6TWWY7ZU.js.map} +0 -0
  210. /package/dist/{chunk-UYCAF77E.js.map → chunk-7RJ2HMMJ.js.map} +0 -0
  211. /package/dist/{chunk-R6FPFMOS.js.map → chunk-BQRFQSGY.js.map} +0 -0
  212. /package/dist/{chunk-TP5M2NQB.js.map → chunk-F5KM4LEQ.js.map} +0 -0
  213. /package/dist/{chunk-62VF32IC.js.map → chunk-ILUNZHYV.js.map} +0 -0
  214. /package/dist/{chunk-LS6QPANO.js.map → chunk-IYSEC543.js.map} +0 -0
  215. /package/dist/{chunk-DC5H7KEQ.js.map → chunk-JHGHLKFS.js.map} +0 -0
  216. /package/dist/{chunk-PBWDDDQH.js.map → chunk-KTH5ZODA.js.map} +0 -0
  217. /package/dist/{chunk-7J53SUT6.js.map → chunk-P2FE5AI6.js.map} +0 -0
  218. /package/dist/{chunk-GZNBCHAZ.js.map → chunk-TERE5SDF.js.map} +0 -0
  219. /package/dist/{chunk-ZMIPG6TR.js.map → chunk-TVL5MVUF.js.map} +0 -0
  220. /package/dist/{chunk-VRWUL4TR.js.map → chunk-XHHMM5HX.js.map} +0 -0
  221. /package/dist/{chunk-RJB3QUSP.js.map → chunk-XIDUYLSR.js.map} +0 -0
  222. /package/dist/{chunk-QG6OSL4M.js.map → chunk-XUGSZP7Z.js.map} +0 -0
  223. /package/dist/{chunk-S56JQJ4F.js.map → chunk-Y53WOQIJ.js.map} +0 -0
  224. /package/dist/{chunk-ICXV25N7.js.map → chunk-Z3KYFUN6.js.map} +0 -0
  225. /package/dist/{chunk-WYYQK4D3.js.map → chunk-ZKXSX4LO.js.map} +0 -0
  226. /package/dist/{client-X5WUJWDE.js.map → client-AUE3XUPO.js.map} +0 -0
  227. /package/dist/{convert-to-pnpm-AT52NWZB.js.map → convert-to-pnpm-6L6P74WR.js.map} +0 -0
  228. /package/dist/{health-endpoint-242WG2OJ.js.map → health-endpoint-WJC2UMYS.js.map} +0 -0
  229. /package/dist/{lighthouse-airtable-BIPM26SZ.js.map → import-airtable-HE43FB4H.js.map} +0 -0
  230. /package/dist/{migrate-LJUFGXQZ.js.map → lighthouse-VHI77PFB.js.map} +0 -0
  231. /package/dist/{orchestrate-KDNXZQX7.js.map → lighthouse-airtable-LBVIYYP5.js.map} +0 -0
  232. /package/dist/{websites-SADZR4XQ.js.map → migrate-GQH237A6.js.map} +0 -0
  233. /package/dist/{write-audits-to-airtable-7PH75YWY.js.map → notify-C645PGD5.js.map} +0 -0
  234. /package/dist/{onboard-53CITIM7.js.map → onboard-GK4PHPNI.js.map} +0 -0
  235. /package/dist/{prismic-ci-UTQ6LRR3.js.map → prismic-ci-3RHOZUUT.js.map} +0 -0
  236. /package/dist/{prismic-models-PVES6R5V.js.map → prismic-models-QBGUT2Q3.js.map} +0 -0
  237. /package/dist/{protection-audit-64PLLBLI.js.map → protection-audit-SJO53MEQ.js.map} +0 -0
  238. /package/dist/{renovate-dispatch-ICJGSFCE.js.map → renovate-dispatch-QJY75ODR.js.map} +0 -0
  239. /package/dist/{self-updating-PPQVV6UA.js.map → self-updating-6DWI2Z56.js.map} +0 -0
  240. /package/dist/{smoke-suite-TMCSOYRK.js.map → smoke-suite-VYY2LXM2.js.map} +0 -0
  241. /package/dist/{submissions-GJ6ITBRH.js.map → submissions-Q7DRFOCD.js.map} +0 -0
  242. /package/dist/{svelte-codemods-ZOBDHIES.js.map → svelte-codemods-25J2FO22.js.map} +0 -0
  243. /package/dist/{sync-configs-CJXUX6MD.js.map → sync-configs-3SE6PSCO.js.map} +0 -0
  244. /package/dist/{upgrade-WLX27UPC.js.map → upgrade-WBRQ62FX.js.map} +0 -0
  245. /package/dist/{webflow-624FEBFD.js.map → webflow-IRKOIT7S.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,110 +1,122 @@
1
1
  import "./chunk-2SLED3NB.js";
2
- import "./chunk-TP5M2NQB.js";
2
+ import "./chunk-F5KM4LEQ.js";
3
3
  import {
4
- approveBlockers
5
- } from "./chunk-LTB6KVJW.js";
6
- import {
7
- DEFAULT_INIT_STEPS,
8
- a11yFixturesPage,
9
- init
10
- } from "./chunk-WYYQK4D3.js";
4
+ draftReportForSite
5
+ } from "./chunk-BYK66EWO.js";
11
6
  import {
12
- onboard,
13
- selfCaretRange,
14
- selfPackageVersion
15
- } from "./chunk-UYCAF77E.js";
7
+ approveBlockers
8
+ } from "./chunk-N45M3FDK.js";
16
9
  import {
17
10
  findDueReports
18
- } from "./chunk-D4FVAIEJ.js";
19
- import {
20
- draftReportForSite
21
- } from "./chunk-MGR2H7F4.js";
22
- import "./chunk-62VF32IC.js";
23
- import {
24
- domainFromUrl,
25
- generateHeaderImage,
26
- loadPlate
27
- } from "./chunk-37S6L6G4.js";
11
+ } from "./chunk-PZR4EBPY.js";
28
12
  import {
29
13
  upgradeSvelte4to5
30
- } from "./chunk-ICXV25N7.js";
14
+ } from "./chunk-Z3KYFUN6.js";
15
+ import {
16
+ DEFAULT_INIT_STEPS,
17
+ a11yFixturesPage,
18
+ init
19
+ } from "./chunk-ZKXSX4LO.js";
31
20
  import {
32
21
  convertToPnpm
33
- } from "./chunk-RJB3QUSP.js";
22
+ } from "./chunk-XIDUYLSR.js";
34
23
  import {
35
24
  svelteCodemods
36
- } from "./chunk-LS6QPANO.js";
25
+ } from "./chunk-IYSEC543.js";
37
26
  import "./chunk-J7SZQUCW.js";
38
- import "./chunk-R6FPFMOS.js";
39
- import "./chunk-S56JQJ4F.js";
27
+ import "./chunk-BQRFQSGY.js";
28
+ import "./chunk-Y53WOQIJ.js";
29
+ import {
30
+ onboard,
31
+ selfCaretRange,
32
+ selfPackageVersion
33
+ } from "./chunk-7RJ2HMMJ.js";
34
+ import "./chunk-ILUNZHYV.js";
35
+ import {
36
+ bumpDeps
37
+ } from "./chunk-2NJQLSEU.js";
40
38
  import "./chunk-R53VL3RI.js";
39
+ import {
40
+ fromAirtableBase
41
+ } from "./chunk-SLUQ7R6I.js";
41
42
  import {
42
43
  parseAddresses,
43
44
  sendApprovedReports,
44
45
  withGlobalCc
45
- } from "./chunk-COZPL62X.js";
46
+ } from "./chunk-2NDRHXMR.js";
46
47
  import "./chunk-GECESMVS.js";
48
+ import {
49
+ domainFromUrl,
50
+ generateHeaderImage,
51
+ loadHeadline,
52
+ loadPlate
53
+ } from "./chunk-5UINJNAJ.js";
47
54
  import {
48
55
  BLURRED_CID,
49
56
  CHECK_CID,
50
- checklistFor,
51
- gatingFields,
52
- isHealthGateClear,
53
- isPendingApproval,
54
57
  loadBundledImages,
55
58
  renderReportHtml
56
- } from "./chunk-6QRLRT3P.js";
57
- import "./chunk-MPBXOJ3N.js";
59
+ } from "./chunk-CQR4LIM7.js";
60
+ import "./chunk-Z7AXYKQB.js";
58
61
  import {
59
62
  escapeHtml,
60
63
  safeUrl
61
- } from "./chunk-SEEA6RXF.js";
62
- import "./chunk-WEKL2HYJ.js";
64
+ } from "./chunk-DJZWYIPP.js";
63
65
  import {
64
- bumpDeps
65
- } from "./chunk-SDUJIANJ.js";
66
+ isPendingApproval
67
+ } from "./chunk-ACBRLLFT.js";
68
+ import {
69
+ checklistFor,
70
+ gatingFields,
71
+ isHealthGateClear
72
+ } from "./chunk-VAD43MOR.js";
73
+ import "./chunk-HN6I2XWI.js";
74
+ import "./chunk-WEKL2HYJ.js";
75
+ import "./chunk-NYUYNYQL.js";
66
76
  import {
67
77
  syncConfigs
68
- } from "./chunk-Q276MZ7E.js";
78
+ } from "./chunk-3VQWSE3F.js";
79
+ import "./chunk-3G25KIWW.js";
69
80
  import "./chunk-73UFRZKY.js";
70
- import "./chunk-ZTPPCHDB.js";
71
81
  import "./chunk-OTGB6YQO.js";
72
82
  import {
73
83
  ALL_AUDIT_NAMES,
74
84
  a11yAudit,
75
85
  depsAudit,
76
- lighthouseAudit,
77
86
  lintAudit,
78
87
  runAudits,
79
88
  runAuditsAcross,
80
89
  securityAudit
81
- } from "./chunk-DTTIFYAM.js";
90
+ } from "./chunk-2ZPT7GLV.js";
82
91
  import "./chunk-LKGVSM2O.js";
83
92
  import "./chunk-GASBX52O.js";
84
- import "./chunk-VRWUL4TR.js";
85
- import "./chunk-QG6OSL4M.js";
86
- import "./chunk-DC5H7KEQ.js";
87
- import "./chunk-4SOCPK7A.js";
93
+ import "./chunk-XHHMM5HX.js";
88
94
  import {
89
95
  fromJsonFile,
90
96
  localPath
91
- } from "./chunk-FDIFTIXC.js";
92
- import "./chunk-4DHQCN5H.js";
97
+ } from "./chunk-6TWWY7ZU.js";
98
+ import "./chunk-XUGSZP7Z.js";
99
+ import "./chunk-EVBCK2KC.js";
100
+ import "./chunk-JHGHLKFS.js";
101
+ import "./chunk-3SF7D4DY.js";
93
102
  import "./chunk-A3WDWNN5.js";
94
103
  import {
95
104
  isLeadFormType
96
105
  } from "./chunk-2OP4JKIQ.js";
97
- import "./chunk-XXTZBPUY.js";
98
106
  import "./chunk-XTK5VIQB.js";
99
107
  import {
100
- fromAirtableBase
101
- } from "./chunk-NWB4O5EY.js";
102
- import "./chunk-U5SZ4FOP.js";
108
+ lighthouseAudit
109
+ } from "./chunk-2NQUCS7O.js";
110
+ import "./chunk-UDRHAQT7.js";
111
+ import "./chunk-PTDMVGKL.js";
112
+ import "./chunk-LBYOLBW7.js";
113
+ import "./chunk-XXTZBPUY.js";
103
114
  import {
115
+ CANONICAL_STATUSES,
104
116
  SEVERITY_RANK,
105
- siteSlug
106
- } from "./chunk-577HCGZO.js";
107
- import "./chunk-HN6I2XWI.js";
117
+ siteSlug,
118
+ toAirtableStatus
119
+ } from "./chunk-LDWZSLSU.js";
108
120
  import "./chunk-6VAL7XJT.js";
109
121
  import "./chunk-NMAWXBJA.js";
110
122
  import "./chunk-C6B4RHXR.js";
@@ -128,6 +140,16 @@ function isRecipeName(value) {
128
140
  return ALL_RECIPE_NAMES.includes(value);
129
141
  }
130
142
 
143
+ // src/dashboard/favicon.ts
144
+ var REDDOOR_FAVICON_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAAAAnAAAAJwEqCZFPAAAAk1BMVEVHcEzkGTfjGDbjGTfjGTfjGTfjGTfjGDbjGDbjGTfjGTfjGTfkGTfjGTfjGDbjGDbkGTfjGDbjGDbjGTfjGTfjGDbjGTfjGDbjGTfjGDbjGTfjGTfjGDbjGDbjGDbjGDbjGTfjGTbjGDbjGDbjGDbjGDbjGTfjGTfjGTfjGDbjGDbjGTfjGDbjGDbjGTfjGTbkGTfxxbwzAAAALXRSTlMA4DABMOD8cOBwDltwi+bFLMlk54/BDVPk/I61/u2cFaBw9nqO1izBIQE+Becdo6eEAAABBElEQVQ4y91SCVYCMQwt4kxbcEHFfUFFcMGf9P6nM0kXEPEAmtdJs+cnU+f+He2fIIEAYuVgkmvDfTG9Rh+6LoRBUBqE7gi09l9eAeeTrZJoFd5uQWfj4VbPvRqwmj9zfzP6CYpyi48F6HW5A3WuMHsEPsfvO8cSkMPTe+pfRr/MTckdg+4enqL3PkYf/YFIqiiP8VAw6EZkH6QEO0xJLUhmdbY5+TjHkCVohprlcpzlnJw9GlNkrZC16uCmWIaAZItNrT4xV0T2yxrIWoNKy4rdVXOq0MycWp4r43FOMQWciibMYaOHCXKSPhapqTupGFAnwHoVuUUZq7jaSkqDb0/uD9MXqvJMDtU7lL0AAAAASUVORK5CYII=";
145
+ var FAVICON_LINK = `<link rel="icon" type="image/png" href="data:image/png;base64,${REDDOOR_FAVICON_PNG_BASE64}" />`;
146
+
147
+ // src/dashboard/auth/render.ts
148
+ function renderAuthChrome(email) {
149
+ if (!email) return "";
150
+ return `<div style="float:right;font-size:0.8rem;color:#666">${escapeHtml(email)} \xB7 <a href="/auth/logout">sign out</a></div>`;
151
+ }
152
+
131
153
  // src/dashboard/relative-time.ts
132
154
  function relativeTimeFromNow(iso, now = /* @__PURE__ */ new Date()) {
133
155
  if (!iso) return "\u2014";
@@ -147,10 +169,6 @@ function relativeTimeFromNow(iso, now = /* @__PURE__ */ new Date()) {
147
169
  return `${months}mo ago`;
148
170
  }
149
171
 
150
- // src/dashboard/favicon.ts
151
- var REDDOOR_FAVICON_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAAAAnAAAAJwEqCZFPAAAAk1BMVEVHcEzkGTfjGDbjGTfjGTfjGTfjGTfjGDbjGDbjGTfjGTfjGTfkGTfjGTfjGDbjGDbkGTfjGDbjGDbjGTfjGTfjGDbjGTfjGDbjGTfjGDbjGTfjGTfjGDbjGDbjGDbjGDbjGTfjGTbjGDbjGDbjGDbjGDbjGTfjGTfjGTfjGDbjGDbjGTfjGDbjGDbjGTfjGTbkGTfxxbwzAAAALXRSTlMA4DABMOD8cOBwDltwi+bFLMlk54/BDVPk/I61/u2cFaBw9nqO1izBIQE+Becdo6eEAAABBElEQVQ4y91SCVYCMQwt4kxbcEHFfUFFcMGf9P6nM0kXEPEAmtdJs+cnU+f+He2fIIEAYuVgkmvDfTG9Rh+6LoRBUBqE7gi09l9eAeeTrZJoFd5uQWfj4VbPvRqwmj9zfzP6CYpyi48F6HW5A3WuMHsEPsfvO8cSkMPTe+pfRr/MTckdg+4enqL3PkYf/YFIqiiP8VAw6EZkH6QEO0xJLUhmdbY5+TjHkCVohprlcpzlnJw9GlNkrZC16uCmWIaAZItNrT4xV0T2yxrIWoNKy4rdVXOq0MycWp4r43FOMQWciibMYaOHCXKSPhapqTupGFAnwHoVuUUZq7jaSkqDb0/uD9MXqvJMDtU7lL0AAAAASUVORK5CYII=";
152
- var FAVICON_LINK = `<link rel="icon" type="image/png" href="data:image/png;base64,${REDDOOR_FAVICON_PNG_BASE64}" />`;
153
-
154
172
  // src/dashboard/onboarding.ts
155
173
  function isNonEmpty(s) {
156
174
  return typeof s === "string" && s.trim().length > 0;
@@ -294,14 +312,7 @@ var SUBMISSION_STATUS_SCRIPT = `document.querySelectorAll("button.subm-status").
294
312
  });`;
295
313
 
296
314
  // src/dashboard/site-details.ts
297
- var SITE_STATUS_OPTIONS = [
298
- "in development",
299
- "launch period",
300
- "maintenance",
301
- "hosting",
302
- "probably not our problem",
303
- "deprecated"
304
- ];
315
+ var SITE_STATUS_OPTIONS = CANONICAL_STATUSES.map(toAirtableStatus);
305
316
  var FREQ_OPTIONS = ["None", "Monthly", "Quarterly", "Yearly"];
306
317
 
307
318
  // src/dashboard/render.ts
@@ -476,8 +487,8 @@ function gaUsersCell(r) {
476
487
  const current = String(r.gaUsersCurrent);
477
488
  if (r.gaUsersPrevious === null) return escapeHtml(current);
478
489
  const delta = r.gaUsersCurrent - r.gaUsersPrevious;
479
- const sign = delta > 0 ? "+" : "";
480
- return `${escapeHtml(current)} <span class="muted">(${escapeHtml(`${sign}${delta}`)})</span>`;
490
+ const sign2 = delta > 0 ? "+" : "";
491
+ return `${escapeHtml(current)} <span class="muted">(${escapeHtml(`${sign2}${delta}`)})</span>`;
481
492
  }
482
493
  function searchCell(r) {
483
494
  if (r.searchFoundPage1 && r.searchPosition !== null) {
@@ -575,6 +586,9 @@ function selectRow(label, field, options, current, url) {
575
586
  function inputRow(label, field, value, url) {
576
587
  return `<div class="detail"><dt><label for="detail-${field}">${escapeHtml(label)}</label></dt><dd><input type="text" id="detail-${field}" data-detail-field="${field}" data-details-url="${url}" value="${escapeHtml(value ?? "")}" />${savedSpan(field)}</dd></div>`;
577
588
  }
589
+ function dateRow(label, field, value, url) {
590
+ return `<div class="detail"><dt><label for="detail-${field}">${escapeHtml(label)}</label></dt><dd><input type="date" id="detail-${field}" data-detail-field="${field}" data-details-url="${url}" value="${escapeHtml(value ?? "")}" />${savedSpan(field)}</dd></div>`;
591
+ }
578
592
  function textareaRow(label, field, value, url) {
579
593
  return `<div class="detail wide"><dt><label for="detail-${field}">${escapeHtml(label)}</label></dt><dd><textarea id="detail-${field}" data-detail-field="${field}" data-details-url="${url}">${escapeHtml(value ?? "")}</textarea>${savedSpan(field)}</dd></div>`;
580
594
  }
@@ -582,7 +596,11 @@ function siteDetailsSection(site) {
582
596
  const url = `/api/sites/${escapeHtml(siteSlug(site.name))}/details`;
583
597
  const lastCommit = site.lastCommitAt ? `${relativeTimeFromNow(site.lastCommitAt)}` : null;
584
598
  const rows = [
585
- selectRow("Status", "status", SITE_STATUS_OPTIONS, site.status, url),
599
+ // `statusRaw`, not `status`: this select's options ARE the Airtable cell
600
+ // values (see SITE_STATUS_OPTIONS), so it must preselect against the raw cell.
601
+ // Comparing the canonical value would mis-preselect every site, and would show
602
+ // a "legacy" site as "deprecated" instead of the placeholder.
603
+ selectRow("Status", "status", SITE_STATUS_OPTIONS, site.statusRaw, url),
586
604
  selectRow("Maintenance cadence", "maintenanceFreq", FREQ_OPTIONS, site.maintenanceFreq, url),
587
605
  selectRow("Testing cadence", "testingFreq", FREQ_OPTIONS, site.testingFreq, url),
588
606
  inputRow("Report recipients (To)", "reportRecipientsTo", site.reportRecipientsTo, url),
@@ -591,6 +609,18 @@ function siteDetailsSection(site) {
591
609
  inputRow("GA4 property", "ga4PropertyId", site.ga4PropertyId, url),
592
610
  inputRow("Search query", "searchQuery", site.searchQuery, url),
593
611
  inputRow("Git repo", "gitRepo", site.gitRepo, url),
612
+ // #539 Phase 4 — the fields nothing rendered before. `Mailchimp API Key` is
613
+ // the one field in that group still absent, and deliberately: it is a live
614
+ // credential and every row here emits its stored value into the page.
615
+ inputRow("Netlify ID", "netlifyId", site.netlifyId, url),
616
+ inputRow("Search Console property", "searchConsoleProperty", site.searchConsoleProperty, url),
617
+ inputRow("Newsletter webhook", "newsletterWebhook", site.newsletterWebhook, url),
618
+ inputRow("Mailchimp audience ID", "mailchimpAudienceId", site.mailchimpAudienceId, url),
619
+ dateRow("Last maintenance day", "maintenanceDay", site.maintenanceDay, url),
620
+ dateRow("Last testing day", "testingDay", site.testingDay, url),
621
+ // Raw JSON, and shown as the raw cell rather than the parsed object: what the
622
+ // operator edits has to be the thing `parseNotifyRouting` will read back.
623
+ textareaRow("Notify routing (JSON)", "notifyRouting", site.notifyRoutingRaw, url),
594
624
  textareaRow("Copy \u2014 Intro", "copyIntro", site.copyIntro, url),
595
625
  textareaRow("Copy \u2014 Contact", "copyContact", site.copyContact, url),
596
626
  textareaRow("Copy \u2014 Footer", "copyFooter", site.copyFooter, url),
@@ -754,7 +784,7 @@ button.trigger-renovate:disabled { opacity: 0.6; cursor: default; }
754
784
  .chip.accepted { background: transparent; border: 1px dashed #bbb; color: #888; }
755
785
  @media (prefers-color-scheme: dark) { .chip.accepted { border-color: #444; } .chip.critical { background: #2a0f0d; color: #ff8a80; } }
756
786
  `;
757
- function renderSiteDashboardHtml(site, reports, submissions = [], spamTotals = null, now = /* @__PURE__ */ new Date(), alarm = null) {
787
+ function renderSiteDashboardHtml(site, reports, submissions = [], spamTotals = null, now = /* @__PURE__ */ new Date(), alarm = null, operatorEmail = null) {
758
788
  const name = escapeHtml(site.name);
759
789
  const urlSafe = safeUrl(site.url);
760
790
  const allScoresNull = site.pScore === null && site.rScore === null && site.bpScore === null && site.seoScore === null;
@@ -787,6 +817,7 @@ function renderSiteDashboardHtml(site, reports, submissions = [], spamTotals = n
787
817
  <style>${STYLES}${SUBMISSION_STYLES}</style>
788
818
  </head>
789
819
  <body>
820
+ ${renderAuthChrome(operatorEmail)}
790
821
  <a class="home" href="/">\u2190 Fleet home</a>
791
822
  <h1>${name}</h1>
792
823
  <div class="meta"><a href="${escapeHtml(urlSafe)}">${escapeHtml(site.url)}</a></div>
@@ -1612,7 +1643,7 @@ var AUDIT_SCRIPT = `<script>
1612
1643
  } catch(e){}
1613
1644
  })();
1614
1645
  </script>`;
1615
- function renderCockpitHtml(model) {
1646
+ function renderCockpitHtml(model, operatorEmail = null) {
1616
1647
  const total = model.cards.length;
1617
1648
  const feed = buildNeedsYouFeed(model);
1618
1649
  return `<!doctype html>
@@ -1625,8 +1656,9 @@ function renderCockpitHtml(model) {
1625
1656
  <style>${STYLES2}</style>
1626
1657
  </head>
1627
1658
  <body>
1659
+ ${renderAuthChrome(operatorEmail)}
1628
1660
  <h1>Reddoor fleet cockpit</h1>
1629
- <div class="meta">${total} site${total === 1 ? "" : "s"} on the Reddoor stack.</div>
1661
+ <div class="meta">${total} site${total === 1 ? "" : "s"} on the Reddoor stack. <a href="/fleet">Fleet table \u2192</a></div>
1630
1662
  ${verdictBar(model, feed)}
1631
1663
  ${renderNeedsYouFeed(feed)}
1632
1664
  ${renderFleetBrowsePanel(model)}
@@ -1659,6 +1691,15 @@ function verifyBasicAuth(authHeader, expectedPassword) {
1659
1691
  if (a.length !== b.length) return false;
1660
1692
  return timingSafeEqual(a, b);
1661
1693
  }
1694
+
1695
+ // src/dashboard/auth/signing.ts
1696
+ import { createHmac, timingSafeEqual as timingSafeEqual2 } from "crypto";
1697
+
1698
+ // src/dashboard/auth/session.ts
1699
+ var SESSION_TTL_SECONDS = 30 * 24 * 60 * 60;
1700
+
1701
+ // src/dashboard/prospect-audit-trigger.ts
1702
+ var PROSPECT_AUDIT_DUPLICATE_WINDOW_MS = 10 * 60 * 1e3;
1662
1703
  export {
1663
1704
  ALL_AUDIT_NAMES,
1664
1705
  ALL_RECIPE_NAMES,
@@ -1681,6 +1722,7 @@ export {
1681
1722
  lighthouseAudit,
1682
1723
  lintAudit,
1683
1724
  loadBundledImages,
1725
+ loadHeadline,
1684
1726
  loadPlate,
1685
1727
  localPath,
1686
1728
  onboard,