@sonordev/site-kit 4.2.4 → 4.3.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 (227) hide show
  1. package/agent-manifest.json +11 -1
  2. package/dist/AnalyticsProvider-WRAJE62B.js +31 -0
  3. package/dist/{AnalyticsProvider-LFSSF7MQ.js.map → AnalyticsProvider-WRAJE62B.js.map} +1 -1
  4. package/dist/AnalyticsProvider-YZAOPVAY.mjs +10 -0
  5. package/dist/{AnalyticsProvider-HVPZPHZI.mjs.map → AnalyticsProvider-YZAOPVAY.mjs.map} +1 -1
  6. package/dist/ChatWidget-NMZGPP7A.js +20 -0
  7. package/dist/{ChatWidget-RFVIYV5C.js.map → ChatWidget-NMZGPP7A.js.map} +1 -1
  8. package/dist/ChatWidget-ZI34F7JU.mjs +11 -0
  9. package/dist/{ChatWidget-7E4PLIYQ.mjs.map → ChatWidget-ZI34F7JU.mjs.map} +1 -1
  10. package/dist/EngageWidget-2U4EN7OP.js +18 -0
  11. package/dist/{EngageWidget-LPMSXVT6.js.map → EngageWidget-2U4EN7OP.js.map} +1 -1
  12. package/dist/EngageWidget-NI2BN6GO.mjs +9 -0
  13. package/dist/{EngageWidget-N7EQGSSL.mjs.map → EngageWidget-NI2BN6GO.mjs.map} +1 -1
  14. package/dist/{FileField-AS6TUTXA.mjs → FileField-I4UICUJF.mjs} +5 -5
  15. package/dist/{FileField-AS6TUTXA.mjs.map → FileField-I4UICUJF.mjs.map} +1 -1
  16. package/dist/{FileField-Y7NOLT27.js → FileField-UI6DAB3K.js} +6 -6
  17. package/dist/{FileField-Y7NOLT27.js.map → FileField-UI6DAB3K.js.map} +1 -1
  18. package/dist/{FormSpotlight-RMYOXT2T.js → FormSpotlight-LO4BU6FY.js} +15 -15
  19. package/dist/{FormSpotlight-RMYOXT2T.js.map → FormSpotlight-LO4BU6FY.js.map} +1 -1
  20. package/dist/{FormSpotlight-I6FEUYAA.mjs → FormSpotlight-RGFZMYPT.mjs} +3 -3
  21. package/dist/{FormSpotlight-I6FEUYAA.mjs.map → FormSpotlight-RGFZMYPT.mjs.map} +1 -1
  22. package/dist/{FormStage-44OWEWZM.js → FormStage-NT5ZAH5Y.js} +13 -13
  23. package/dist/{FormStage-44OWEWZM.js.map → FormStage-NT5ZAH5Y.js.map} +1 -1
  24. package/dist/{FormStage-G3MUJMTC.mjs → FormStage-RBXMNWM3.mjs} +3 -3
  25. package/dist/{FormStage-G3MUJMTC.mjs.map → FormStage-RBXMNWM3.mjs.map} +1 -1
  26. package/dist/ManagedForm-CJOFGQK6.mjs +14 -0
  27. package/dist/{ManagedForm-LVBNVUZE.mjs.map → ManagedForm-CJOFGQK6.mjs.map} +1 -1
  28. package/dist/ManagedForm-MKV5RM54.js +23 -0
  29. package/dist/{ManagedForm-YC6WLYVJ.js.map → ManagedForm-MKV5RM54.js.map} +1 -1
  30. package/dist/{SignalCore-DYBIG4JP.mjs → SignalCore-B2ZSLEXI.mjs} +5 -5
  31. package/dist/{SignalCore-DYBIG4JP.mjs.map → SignalCore-B2ZSLEXI.mjs.map} +1 -1
  32. package/dist/{SignalCore-AW5VDA4Y.js → SignalCore-IX4L2TYS.js} +11 -11
  33. package/dist/{SignalCore-AW5VDA4Y.js.map → SignalCore-IX4L2TYS.js.map} +1 -1
  34. package/dist/SitemapSync-2LLNO24P.mjs +8 -0
  35. package/dist/{SitemapSync-2JJOGL7D.mjs.map → SitemapSync-2LLNO24P.mjs.map} +1 -1
  36. package/dist/SitemapSync-B2CY2JYM.js +17 -0
  37. package/dist/{SitemapSync-S54TSZLM.js.map → SitemapSync-B2CY2JYM.js.map} +1 -1
  38. package/dist/analytics/index.js +9 -9
  39. package/dist/analytics/index.mjs +4 -4
  40. package/dist/{chunk-CLD3IE6D.js → chunk-2EA4DC2G.js} +5 -5
  41. package/dist/{chunk-CLD3IE6D.js.map → chunk-2EA4DC2G.js.map} +1 -1
  42. package/dist/chunk-2X5ZB5D7.mjs +6 -0
  43. package/dist/{chunk-EFMPOC6L.mjs.map → chunk-2X5ZB5D7.mjs.map} +1 -1
  44. package/dist/{chunk-KPSESCYA.js → chunk-3AAFSXFC.js} +15 -15
  45. package/dist/{chunk-KPSESCYA.js.map → chunk-3AAFSXFC.js.map} +1 -1
  46. package/dist/{chunk-C6CNCDIN.mjs → chunk-3DFYFDGC.mjs} +3 -3
  47. package/dist/{chunk-C6CNCDIN.mjs.map → chunk-3DFYFDGC.mjs.map} +1 -1
  48. package/dist/{chunk-ICJ7EU4Z.js → chunk-3KVG2PSJ.js} +7 -7
  49. package/dist/{chunk-ICJ7EU4Z.js.map → chunk-3KVG2PSJ.js.map} +1 -1
  50. package/dist/{chunk-XLD6K3BV.mjs → chunk-3ZD2XCLE.mjs} +4 -4
  51. package/dist/{chunk-XLD6K3BV.mjs.map → chunk-3ZD2XCLE.mjs.map} +1 -1
  52. package/dist/{chunk-XWBQLPTZ.mjs → chunk-5PBJ42NC.mjs} +4 -4
  53. package/dist/{chunk-XWBQLPTZ.mjs.map → chunk-5PBJ42NC.mjs.map} +1 -1
  54. package/dist/{chunk-2MLIU6OJ.mjs → chunk-5S735BSH.mjs} +4 -4
  55. package/dist/{chunk-2MLIU6OJ.mjs.map → chunk-5S735BSH.mjs.map} +1 -1
  56. package/dist/{chunk-6ZQFCZPW.mjs → chunk-6SN3ABID.mjs} +3 -3
  57. package/dist/{chunk-6ZQFCZPW.mjs.map → chunk-6SN3ABID.mjs.map} +1 -1
  58. package/dist/{chunk-C6HDI464.js → chunk-7X4LKAYJ.js} +14 -14
  59. package/dist/{chunk-C6HDI464.js.map → chunk-7X4LKAYJ.js.map} +1 -1
  60. package/dist/{chunk-UHVII7W7.mjs → chunk-ACL5FDJI.mjs} +3 -3
  61. package/dist/{chunk-UHVII7W7.mjs.map → chunk-ACL5FDJI.mjs.map} +1 -1
  62. package/dist/{chunk-YDOWCCE2.mjs → chunk-ANJBOE46.mjs} +4 -4
  63. package/dist/{chunk-YDOWCCE2.mjs.map → chunk-ANJBOE46.mjs.map} +1 -1
  64. package/dist/{chunk-U7L7FW3K.js → chunk-BGIT5M27.js} +4 -4
  65. package/dist/{chunk-U7L7FW3K.js.map → chunk-BGIT5M27.js.map} +1 -1
  66. package/dist/{chunk-E3F6OOVQ.mjs → chunk-DYDJ6NCM.mjs} +3 -3
  67. package/dist/{chunk-E3F6OOVQ.mjs.map → chunk-DYDJ6NCM.mjs.map} +1 -1
  68. package/dist/{chunk-RH5WIBIA.js → chunk-F3MOVBEE.js} +7 -7
  69. package/dist/{chunk-RH5WIBIA.js.map → chunk-F3MOVBEE.js.map} +1 -1
  70. package/dist/{chunk-NK6K4VHD.js → chunk-FIVPS4Z6.js} +4 -4
  71. package/dist/{chunk-NK6K4VHD.js.map → chunk-FIVPS4Z6.js.map} +1 -1
  72. package/dist/{chunk-CPJA5XTO.mjs → chunk-G5EETWKH.mjs} +4 -4
  73. package/dist/{chunk-CPJA5XTO.mjs.map → chunk-G5EETWKH.mjs.map} +1 -1
  74. package/dist/{chunk-BX6FFL2Y.js → chunk-HXHDOIV6.js} +5 -5
  75. package/dist/{chunk-BX6FFL2Y.js.map → chunk-HXHDOIV6.js.map} +1 -1
  76. package/dist/{chunk-ULV3DZ27.mjs → chunk-IDSTSLMM.mjs} +3 -3
  77. package/dist/{chunk-ULV3DZ27.mjs.map → chunk-IDSTSLMM.mjs.map} +1 -1
  78. package/dist/{chunk-BJW6YR6W.mjs → chunk-IT76CWZ2.mjs} +3 -3
  79. package/dist/{chunk-BJW6YR6W.mjs.map → chunk-IT76CWZ2.mjs.map} +1 -1
  80. package/dist/{chunk-OIY5O3SE.js → chunk-IW6S62NR.js} +8 -8
  81. package/dist/{chunk-OIY5O3SE.js.map → chunk-IW6S62NR.js.map} +1 -1
  82. package/dist/{chunk-L5GUV4M7.mjs → chunk-IWFQPGA2.mjs} +7 -7
  83. package/dist/{chunk-L5GUV4M7.mjs.map → chunk-IWFQPGA2.mjs.map} +1 -1
  84. package/dist/{chunk-YHGMM2XF.js → chunk-IWV72YOE.js} +14 -14
  85. package/dist/{chunk-YHGMM2XF.js.map → chunk-IWV72YOE.js.map} +1 -1
  86. package/dist/{chunk-ARFWE2EL.js → chunk-IZVV36RT.js} +14 -14
  87. package/dist/{chunk-ARFWE2EL.js.map → chunk-IZVV36RT.js.map} +1 -1
  88. package/dist/{chunk-WX6VKFHW.mjs → chunk-JBX6KV46.mjs} +4 -4
  89. package/dist/{chunk-WX6VKFHW.mjs.map → chunk-JBX6KV46.mjs.map} +1 -1
  90. package/dist/{chunk-V3HJLXAI.mjs → chunk-JJTCVH4Q.mjs} +3 -3
  91. package/dist/{chunk-V3HJLXAI.mjs.map → chunk-JJTCVH4Q.mjs.map} +1 -1
  92. package/dist/{chunk-LSNIDSLQ.js → chunk-K7QBRZLN.js} +18 -18
  93. package/dist/{chunk-LSNIDSLQ.js.map → chunk-K7QBRZLN.js.map} +1 -1
  94. package/dist/{chunk-UBSZ466T.mjs → chunk-L4FHGCQ2.mjs} +3 -3
  95. package/dist/{chunk-UBSZ466T.mjs.map → chunk-L4FHGCQ2.mjs.map} +1 -1
  96. package/dist/{chunk-5K2CX5LK.js → chunk-LTALFZX7.js} +6 -6
  97. package/dist/{chunk-5K2CX5LK.js.map → chunk-LTALFZX7.js.map} +1 -1
  98. package/dist/{chunk-33OSUHPZ.mjs → chunk-LVMPYAOQ.mjs} +4 -4
  99. package/dist/{chunk-33OSUHPZ.mjs.map → chunk-LVMPYAOQ.mjs.map} +1 -1
  100. package/dist/{chunk-2MFLOK2I.js → chunk-NGAKS4WG.js} +3 -3
  101. package/dist/{chunk-2MFLOK2I.js.map → chunk-NGAKS4WG.js.map} +1 -1
  102. package/dist/{chunk-QQCOIGLN.js → chunk-O4TMBV54.js} +8 -8
  103. package/dist/{chunk-QQCOIGLN.js.map → chunk-O4TMBV54.js.map} +1 -1
  104. package/dist/{chunk-FSSVIYQ7.mjs → chunk-OBRGUSGB.mjs} +3 -3
  105. package/dist/{chunk-FSSVIYQ7.mjs.map → chunk-OBRGUSGB.mjs.map} +1 -1
  106. package/dist/{chunk-A7O7IWL7.js → chunk-OOBEJZJ5.js} +3 -3
  107. package/dist/{chunk-A7O7IWL7.js.map → chunk-OOBEJZJ5.js.map} +1 -1
  108. package/dist/{chunk-YZ6UYIXD.js → chunk-PJZHIISA.js} +3 -3
  109. package/dist/{chunk-YZ6UYIXD.js.map → chunk-PJZHIISA.js.map} +1 -1
  110. package/dist/{chunk-XKBADVXN.mjs → chunk-QEHPIQYN.mjs} +3 -3
  111. package/dist/{chunk-XKBADVXN.mjs.map → chunk-QEHPIQYN.mjs.map} +1 -1
  112. package/dist/{chunk-2XLWCYB3.js → chunk-R2O5VDNJ.js} +12 -12
  113. package/dist/{chunk-2XLWCYB3.js.map → chunk-R2O5VDNJ.js.map} +1 -1
  114. package/dist/{chunk-UVRB4SQU.mjs → chunk-RW76CJBS.mjs} +3 -3
  115. package/dist/{chunk-UVRB4SQU.mjs.map → chunk-RW76CJBS.mjs.map} +1 -1
  116. package/dist/{chunk-KDWKSL7U.js → chunk-SABYEM57.js} +9 -9
  117. package/dist/{chunk-KDWKSL7U.js.map → chunk-SABYEM57.js.map} +1 -1
  118. package/dist/{chunk-JHOMOLZA.js → chunk-SM27DPML.js} +12 -12
  119. package/dist/{chunk-JHOMOLZA.js.map → chunk-SM27DPML.js.map} +1 -1
  120. package/dist/{chunk-NB4MK2Q5.js → chunk-SWIKKSKL.js} +3 -2
  121. package/dist/chunk-SWIKKSKL.js.map +1 -0
  122. package/dist/{chunk-BDDTZJKC.js → chunk-T6YDAJ5F.js} +4 -4
  123. package/dist/{chunk-BDDTZJKC.js.map → chunk-T6YDAJ5F.js.map} +1 -1
  124. package/dist/{chunk-ZJNIM4GQ.js → chunk-TBIWQQVF.js} +15 -15
  125. package/dist/{chunk-ZJNIM4GQ.js.map → chunk-TBIWQQVF.js.map} +1 -1
  126. package/dist/chunk-U3P4WF2A.js +8 -0
  127. package/dist/{chunk-4JVFWTER.js.map → chunk-U3P4WF2A.js.map} +1 -1
  128. package/dist/{chunk-LUXCT2NU.js → chunk-UDXWBLBH.js} +4 -4
  129. package/dist/{chunk-LUXCT2NU.js.map → chunk-UDXWBLBH.js.map} +1 -1
  130. package/dist/{chunk-HP7V2DI3.mjs → chunk-UFT7IKDN.mjs} +4 -4
  131. package/dist/{chunk-HP7V2DI3.mjs.map → chunk-UFT7IKDN.mjs.map} +1 -1
  132. package/dist/{chunk-GU5OTUQS.mjs → chunk-VS67QHNX.mjs} +3 -3
  133. package/dist/{chunk-GU5OTUQS.mjs.map → chunk-VS67QHNX.mjs.map} +1 -1
  134. package/dist/{chunk-SYR7YSB2.mjs → chunk-XPNOM353.mjs} +3 -3
  135. package/dist/{chunk-SYR7YSB2.mjs.map → chunk-XPNOM353.mjs.map} +1 -1
  136. package/dist/{chunk-SSRQHRZB.mjs → chunk-YSLGMCQH.mjs} +8 -8
  137. package/dist/{chunk-SSRQHRZB.mjs.map → chunk-YSLGMCQH.mjs.map} +1 -1
  138. package/dist/{chunk-NI7OY4FW.mjs → chunk-ZN4HBK5C.mjs} +3 -2
  139. package/dist/chunk-ZN4HBK5C.mjs.map +1 -0
  140. package/dist/cli/index.js +3 -3
  141. package/dist/cli/index.mjs +1 -1
  142. package/dist/client/index.js +5 -5
  143. package/dist/client/index.mjs +4 -4
  144. package/dist/commerce/index.js +56 -56
  145. package/dist/commerce/index.mjs +5 -5
  146. package/dist/engage/index.js +13 -13
  147. package/dist/engage/index.mjs +7 -7
  148. package/dist/fleet/index.js +8 -8
  149. package/dist/fleet/index.mjs +4 -4
  150. package/dist/forms/index.js +21 -21
  151. package/dist/forms/index.mjs +10 -10
  152. package/dist/forms/server.js +10 -10
  153. package/dist/forms/server.mjs +8 -8
  154. package/dist/forms/static.js +7 -7
  155. package/dist/forms/static.mjs +6 -6
  156. package/dist/images/index.js +11 -11
  157. package/dist/images/index.mjs +4 -4
  158. package/dist/index.js +63 -63
  159. package/dist/index.mjs +9 -9
  160. package/dist/layout/client.js +9 -9
  161. package/dist/layout/client.mjs +8 -8
  162. package/dist/layout/index.js +11 -11
  163. package/dist/layout/index.mjs +9 -9
  164. package/dist/maps/index.js +5 -5
  165. package/dist/maps/index.mjs +3 -3
  166. package/dist/mcp/WebMcpTools.d.ts +60 -0
  167. package/dist/mcp/WebMcpTools.d.ts.map +1 -0
  168. package/dist/mcp/client.d.ts +9 -0
  169. package/dist/mcp/client.d.ts.map +1 -0
  170. package/dist/mcp/client.js +132 -0
  171. package/dist/mcp/client.js.map +1 -0
  172. package/dist/mcp/client.mjs +129 -0
  173. package/dist/mcp/client.mjs.map +1 -0
  174. package/dist/mcp/declarative.d.ts +77 -0
  175. package/dist/mcp/declarative.d.ts.map +1 -0
  176. package/dist/mcp/handlers.d.ts +92 -0
  177. package/dist/mcp/handlers.d.ts.map +1 -0
  178. package/dist/mcp/index.d.ts +29 -0
  179. package/dist/mcp/index.d.ts.map +1 -0
  180. package/dist/mcp/index.js +537 -0
  181. package/dist/mcp/index.js.map +1 -0
  182. package/dist/mcp/index.mjs +509 -0
  183. package/dist/mcp/index.mjs.map +1 -0
  184. package/dist/mcp/protocol.d.ts +140 -0
  185. package/dist/mcp/protocol.d.ts.map +1 -0
  186. package/dist/mcp/protocol.test.d.ts +2 -0
  187. package/dist/mcp/protocol.test.d.ts.map +1 -0
  188. package/dist/mcp/serverCard.d.ts +77 -0
  189. package/dist/mcp/serverCard.d.ts.map +1 -0
  190. package/dist/mcp/types.d.ts +154 -0
  191. package/dist/mcp/types.d.ts.map +1 -0
  192. package/dist/search/index.js +4 -4
  193. package/dist/search/index.mjs +3 -3
  194. package/dist/seo/client.js +5 -5
  195. package/dist/seo/client.mjs +4 -4
  196. package/dist/seo/index.js +5 -5
  197. package/dist/seo/index.mjs +4 -4
  198. package/dist/seo-pages/contract.js +6 -6
  199. package/dist/seo-pages/contract.mjs +2 -2
  200. package/dist/server/index.js +3 -3
  201. package/dist/server/index.mjs +2 -2
  202. package/dist/shared/build-entries.d.ts +4 -1
  203. package/dist/shared/build-entries.d.ts.map +1 -1
  204. package/dist/shared/version.d.ts +1 -1
  205. package/dist/signal/index.js +11 -11
  206. package/dist/signal/index.mjs +2 -2
  207. package/dist/sites/contract.js +9 -9
  208. package/dist/sites/contract.mjs +2 -2
  209. package/dist/sites/normalize.d.ts +2 -1
  210. package/dist/sites/normalize.d.ts.map +1 -1
  211. package/dist/sync/index.js +16 -16
  212. package/dist/sync/index.mjs +4 -4
  213. package/package.json +11 -1
  214. package/dist/AnalyticsProvider-HVPZPHZI.mjs +0 -10
  215. package/dist/AnalyticsProvider-LFSSF7MQ.js +0 -31
  216. package/dist/ChatWidget-7E4PLIYQ.mjs +0 -11
  217. package/dist/ChatWidget-RFVIYV5C.js +0 -20
  218. package/dist/EngageWidget-LPMSXVT6.js +0 -18
  219. package/dist/EngageWidget-N7EQGSSL.mjs +0 -9
  220. package/dist/ManagedForm-LVBNVUZE.mjs +0 -14
  221. package/dist/ManagedForm-YC6WLYVJ.js +0 -23
  222. package/dist/SitemapSync-2JJOGL7D.mjs +0 -8
  223. package/dist/SitemapSync-S54TSZLM.js +0 -17
  224. package/dist/chunk-4JVFWTER.js +0 -8
  225. package/dist/chunk-EFMPOC6L.mjs +0 -6
  226. package/dist/chunk-NB4MK2Q5.js.map +0 -1
  227. package/dist/chunk-NI7OY4FW.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sites/normalize.ts"],"names":[],"mappings":";AAkCO,SAAS,kBAAkB,IAAA,EAAqC;AACrE,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,IAAA;AAC9C,EAAA,IAAI,CAAA,GAAI,IAAA,CAAK,IAAA,EAAK,CAAE,WAAA,EAAY;AAChC,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,EAAA,CAAA,GAAI,CAAA,CAAE,OAAA,CAAQ,cAAA,EAAgB,EAAE,CAAA;AAEhC,EAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,OAAA,CAAQ,GAAG,CAAA;AAC3B,EAAA,IAAI,SAAS,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,KAAA,CAAM,GAAG,KAAK,CAAA;AAEpC,EAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,OAAA,CAAQ,GAAG,CAAA;AAC3B,EAAA,IAAI,SAAS,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,KAAA,CAAM,GAAG,KAAK,CAAA;AACpC,EAAA,OAAO,CAAA,IAAK,IAAA;AACd","file":"chunk-NI7OY4FW.mjs","sourcesContent":["/**\n * @sonordev/site-kit/sites — normalizeSiteHost (leaf module)\n *\n * Deliberately its own file, not part of `./contract`, so browser code can pull\n * in the normalizer WITHOUT the rest of the contract surface.\n *\n * `publishCredential` (which every client entry that publishes a credential\n * imports) needs exactly this one function. When it lived in `./contract`, the\n * bundler emitted that whole module as one shared chunk — `SITE_HOST_JSON_SCHEMA`,\n * `SITE_HOST_CONTRACT_VERSION`, `stripWww`, `sameSite`, `hostFromUrl`,\n * `isNormalizedSiteHost` and all — into `client`, `layout/client` and every\n * other entry that touched it. That was ~750B gzipped of agent-facing contract\n * metadata shipped to browsers for a 14-line string normalizer, and it is what\n * pushed those entries over their bundle budgets.\n *\n * `./contract` re-exports this, so the public `@sonordev/site-kit/sites/contract`\n * surface and the cross-repo drift tests are unchanged. Keep the implementation\n * HERE — the Nest APIs mirror this exact logic (sonor-api\n * `src/common/utils/site-host.ts`, signal-api `src/shared/utils/seo-page-pick.util.ts`).\n *\n * Pure string logic only (no Node built-ins) so it is safe in the browser.\n */\n\n/**\n * normalizeSiteHost — canonical normalizer for a sub-site host value before it\n * is persisted or used as a filter.\n *\n * `https://OhioPowerStudies.com:3000/path` → `ohiopowerstudies.com`\n *\n * Lowercases, strips protocol, keeps host only (drops path + query), strips\n * port (rollups span dev/prod). Returns null for empty/non-string input.\n * Note: `www.` is intentionally preserved here — use `sameSite`/`stripWww`\n * for www-insensitive equality.\n */\nexport function normalizeSiteHost(site?: string | null): string | null {\n if (!site || typeof site !== 'string') return null\n let s = site.trim().toLowerCase()\n if (!s) return null\n // Strip protocol if present\n s = s.replace(/^https?:\\/\\//, '')\n // Keep host only — drop everything from first slash onward\n const slash = s.indexOf('/')\n if (slash >= 0) s = s.slice(0, slash)\n // Strip port (rollups span dev/prod)\n const colon = s.indexOf(':')\n if (colon >= 0) s = s.slice(0, colon)\n return s || null\n}\n"]}