@sonordev/site-kit 6.5.0 → 7.0.1

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 (1625) hide show
  1. package/AGENTS.md +18 -3
  2. package/README.md +50 -34
  3. package/agent-manifest.json +282 -52
  4. package/dist/AnalyticsProvider-EMM2TKRE.js +11 -0
  5. package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
  6. package/dist/ArticleViewTracker-RA64BGL6.js +49 -0
  7. package/dist/BlocksPopup-D25RFNOV.js +43 -0
  8. package/dist/ChatWidget-RYI7BMJJ.js +15 -0
  9. package/dist/DatePicker-JEBV6WYJ.js +2 -0
  10. package/dist/EngageWidget-UKFCN33M.js +11 -0
  11. package/dist/FileField-MUHA7LZR.js +83 -0
  12. package/dist/FormCelebration-OVGAGBKF.js +2 -0
  13. package/dist/FormSpotlight-TCLPWPLL.js +754 -0
  14. package/dist/FormStage-CNYLP6I6.js +418 -0
  15. package/dist/ManagedForm-7ZL5SKTO.js +14 -0
  16. package/dist/ManagedNewsletterForm-33B4JLX7.js +62 -0
  17. package/dist/SignalCore-L5FVDHFE.js +322 -0
  18. package/dist/SiteDesignReporter-4JOFL4FP.js +11 -0
  19. package/dist/SitemapSync-7WKY4HXI.js +8 -0
  20. package/dist/SitemapSync.d.ts +0 -1
  21. package/dist/_client/booking-widget.d.ts +4 -0
  22. package/dist/_client/booking-widget.js +7 -0
  23. package/dist/_client/testimonial-section.d.ts +11 -0
  24. package/dist/_client/testimonial-section.js +5 -0
  25. package/dist/admin-auth/index.d.ts +0 -1
  26. package/dist/admin-auth/index.js +0 -0
  27. package/dist/admin-auth/session.d.ts +0 -1
  28. package/dist/affiliates/AffiliatesWidget.d.ts +0 -1
  29. package/dist/affiliates/api.d.ts +0 -1
  30. package/dist/affiliates/index.d.ts +0 -1
  31. package/dist/affiliates/index.js +149 -0
  32. package/dist/affiliates/types.d.ts +0 -1
  33. package/dist/affiliates/useAffiliates.d.ts +0 -1
  34. package/dist/analytics/AnalyticsProvider.d.ts +0 -1
  35. package/dist/analytics/WebVitals.d.ts +0 -1
  36. package/dist/analytics/dispatch.d.ts +0 -1
  37. package/dist/analytics/index.d.ts +0 -1
  38. package/dist/analytics/index.js +12 -67
  39. package/dist/analytics/measurement-context.d.ts +0 -1
  40. package/dist/analytics/page-observation.d.ts +0 -1
  41. package/dist/analytics/send-gate.d.ts +0 -1
  42. package/dist/analytics/types.d.ts +0 -1
  43. package/dist/analytics/useContactTracking.d.ts +0 -1
  44. package/dist/article-styles-6CM5FUMV.js +590 -0
  45. package/dist/article-tables-AXSZOGNW.js +2 -0
  46. package/dist/articles/Article.d.ts +0 -1
  47. package/dist/articles/ArticleFAQ.d.ts +0 -1
  48. package/dist/articles/ArticleFaqSection.d.ts +0 -1
  49. package/dist/articles/ArticleList.d.ts +0 -1
  50. package/dist/articles/ArticleViewTracker.d.ts +0 -1
  51. package/dist/articles/AuthorCard.d.ts +0 -1
  52. package/dist/articles/AuthorPage.d.ts +0 -1
  53. package/dist/articles/ClusterLandingPage.d.ts +0 -1
  54. package/dist/articles/ClusterNavigation.d.ts +0 -1
  55. package/dist/articles/ManagedNewsletterForm.d.ts +0 -1
  56. package/dist/articles/NewsletterShell.d.ts +0 -1
  57. package/dist/articles/NewsletterWidget.d.ts +0 -1
  58. package/dist/articles/PublicationLayout.d.ts +0 -1
  59. package/dist/articles/PublicationSidebar.d.ts +0 -1
  60. package/dist/articles/RelatedPosts.d.ts +0 -1
  61. package/dist/articles/ServiceCallout.d.ts +0 -1
  62. package/dist/articles/TableOfContents.d.ts +0 -1
  63. package/dist/articles/article-styles.d.ts +0 -1
  64. package/dist/articles/article-tables.d.ts +0 -1
  65. package/dist/articles/artwork.d.ts +0 -1
  66. package/dist/articles/author-schema.d.ts +0 -1
  67. package/dist/articles/author-social.d.ts +0 -1
  68. package/dist/articles/excerpt.d.ts +0 -1
  69. package/dist/articles/index.d.ts +0 -1
  70. package/dist/articles/index.js +87 -147
  71. package/dist/articles/news-sitemap.d.ts +0 -1
  72. package/dist/articles/processArticleHtml.d.ts +0 -1
  73. package/dist/articles/public-reads.d.ts +0 -1
  74. package/dist/articles/reading-time.d.ts +0 -1
  75. package/dist/articles/routes.d.ts +0 -1
  76. package/dist/articles/server-core.d.ts +0 -14
  77. package/dist/articles/server-ui.d.ts +0 -1
  78. package/dist/articles/server-ui.js +221 -265
  79. package/dist/articles/server.d.ts +0 -14
  80. package/dist/articles/server.js +10 -252
  81. package/dist/articles/types.d.ts +0 -1
  82. package/dist/articles/widget-styles.d.ts +0 -1
  83. package/dist/brand/extract-brand-profile.d.ts +0 -1
  84. package/dist/chat/index.d.ts +11 -0
  85. package/dist/chat/index.js +16 -0
  86. package/dist/chunk-24QZEO3Q.js +41 -0
  87. package/dist/chunk-3KUUH2YP.js +148 -0
  88. package/dist/chunk-43OCZ3JA.js +67 -0
  89. package/dist/chunk-4IQ52CXL.js +1803 -0
  90. package/dist/chunk-4KZ6W3ZH.js +8 -0
  91. package/dist/chunk-4RMVXRBO.js +478 -0
  92. package/dist/chunk-4Y5FWDPM.js +97 -0
  93. package/dist/chunk-5SEM2V4A.js +837 -0
  94. package/dist/chunk-5SQK3D53.js +24 -0
  95. package/dist/chunk-6HDT4G4A.js +253 -0
  96. package/dist/chunk-6T6CQVNL.js +37 -0
  97. package/dist/chunk-7KJGO77W.js +1 -0
  98. package/dist/chunk-7L5AARVY.js +68 -0
  99. package/dist/chunk-7ZWO5HDQ.js +1 -0
  100. package/dist/chunk-A4CC4ZG3.js +15 -0
  101. package/dist/chunk-AQSNPZY4.js +92 -0
  102. package/dist/chunk-BMO3VGMR.js +184 -0
  103. package/dist/chunk-BQR4IPBW.js +146 -0
  104. package/dist/chunk-BR4ZKUHH.js +227 -0
  105. package/dist/chunk-BU66S5B7.js +1 -0
  106. package/dist/chunk-C4G3NW2E.js +25 -0
  107. package/dist/chunk-CVTVNC2U.js +99 -0
  108. package/dist/chunk-D7SLSJS4.js +1 -0
  109. package/dist/chunk-DIKNRN34.js +28 -0
  110. package/dist/chunk-DXO6SBMD.js +43 -0
  111. package/dist/chunk-EDYHROQ7.js +77 -0
  112. package/dist/chunk-EGOD74PP.js +129 -0
  113. package/dist/chunk-EKBEOXTH.js +114 -0
  114. package/dist/chunk-FESKKJAS.js +19 -0
  115. package/dist/chunk-FL4EPUWA.js +407 -0
  116. package/dist/chunk-FV2VD7WM.js +347 -0
  117. package/dist/chunk-FYAB6CXS.js +265 -0
  118. package/dist/chunk-FYBZ5SNP.js +1241 -0
  119. package/dist/chunk-G3NHWMP5.js +233 -0
  120. package/dist/chunk-GJWI74ZZ.js +27 -0
  121. package/dist/chunk-GKGSXUVQ.js +218 -0
  122. package/dist/chunk-GLHQ3LRO.js +97 -0
  123. package/dist/chunk-GW7GSBO7.js +66 -0
  124. package/dist/chunk-GYESATRY.js +19 -0
  125. package/dist/chunk-GYF2ULVO.js +14 -0
  126. package/dist/chunk-HGCK465A.js +1071 -0
  127. package/dist/chunk-HXJ54KAM.js +122 -0
  128. package/dist/chunk-IHG36STL.js +286 -0
  129. package/dist/chunk-J4FSB4OG.js +200 -0
  130. package/dist/chunk-JE4A5S4F.js +48 -0
  131. package/dist/chunk-JJ4JS3LD.js +26 -0
  132. package/dist/chunk-JSZN6LDZ.js +338 -0
  133. package/dist/chunk-KPAZG65P.js +138 -0
  134. package/dist/chunk-KV4LOKOU.js +154 -0
  135. package/dist/chunk-KXPBMCFL.js +39 -0
  136. package/dist/chunk-L2V5PUFN.js +15 -0
  137. package/dist/chunk-L3AQCDCY.js +386 -0
  138. package/dist/chunk-L5UOHS6E.js +45 -0
  139. package/dist/chunk-LCDVPAMR.js +24 -0
  140. package/dist/chunk-LE7ZOTHB.js +43 -0
  141. package/dist/chunk-LNSNA3W4.js +217 -0
  142. package/dist/chunk-LQJC5S2M.js +236 -0
  143. package/dist/chunk-LVESVYCE.js +270 -0
  144. package/dist/chunk-MH2DSGC6.js +10 -0
  145. package/dist/chunk-MJP63SSS.js +14 -0
  146. package/dist/chunk-MV2MBTC3.js +177 -0
  147. package/dist/chunk-MVLMXC44.js +9 -0
  148. package/dist/chunk-N2UVOR3X.js +238 -0
  149. package/dist/chunk-NDF4A5JM.js +37 -0
  150. package/dist/chunk-NJCTQH2P.js +62 -0
  151. package/dist/chunk-NZOJHERI.js +32 -0
  152. package/dist/chunk-OFOAHPUV.js +127 -0
  153. package/dist/chunk-OPRBF7VE.js +41 -0
  154. package/dist/chunk-OSYCOC3K.js +21 -0
  155. package/dist/chunk-P4GRY6QP.js +54 -0
  156. package/dist/chunk-P5GB6NEO.js +66 -0
  157. package/dist/chunk-P5J7VMQ3.js +523 -0
  158. package/dist/chunk-PKBMQBKP.js +5 -0
  159. package/dist/chunk-PO2TRJPY.js +40 -0
  160. package/dist/chunk-PSAG45YF.js +451 -0
  161. package/dist/chunk-PXKIGZ2F.js +31 -0
  162. package/dist/chunk-QANVUXKH.js +100 -0
  163. package/dist/chunk-QGHSMJKW.js +4 -0
  164. package/dist/chunk-QLTDFUJ7.js +94 -0
  165. package/dist/chunk-QPEEKFCA.js +533 -0
  166. package/dist/chunk-QXMIKDOL.js +125 -0
  167. package/dist/chunk-QZZIKMAT.js +163 -0
  168. package/dist/chunk-S22FSH7C.js +94 -0
  169. package/dist/chunk-SC4MZGWZ.js +63 -0
  170. package/dist/chunk-SOD2F6C2.js +281 -0
  171. package/dist/chunk-SS636UDN.js +35 -0
  172. package/dist/chunk-SSUQKA7L.js +746 -0
  173. package/dist/chunk-SWKE6FWH.js +47 -0
  174. package/dist/chunk-T22VK4NJ.js +49 -0
  175. package/dist/chunk-T3MC4HOD.js +130 -0
  176. package/dist/chunk-TT63HHIT.js +543 -0
  177. package/dist/chunk-TXBAOEKG.js +1084 -0
  178. package/dist/chunk-UPFU63L4.js +126 -0
  179. package/dist/chunk-UVPGW4R7.js +222 -0
  180. package/dist/chunk-UZN4ZYR2.js +937 -0
  181. package/dist/chunk-V6LSQRTH.js +52 -0
  182. package/dist/chunk-VX5CMNMM.js +26 -0
  183. package/dist/chunk-WATH55UY.js +191 -0
  184. package/dist/chunk-WMVK77ND.js +53 -0
  185. package/dist/chunk-X6F6SO4S.js +135 -0
  186. package/dist/chunk-XTRZGXB2.js +34 -0
  187. package/dist/chunk-Y3INC4QJ.js +133 -0
  188. package/dist/chunk-YC7ELZS3.js +51 -0
  189. package/dist/chunk-YGGDU6C3.js +93 -0
  190. package/dist/chunk-YVKRYQRG.js +70 -0
  191. package/dist/chunk-Z22QVHT4.js +57 -0
  192. package/dist/chunk-ZEGVKVD5.js +80 -0
  193. package/dist/chunk-ZTZQPYP6.js +55 -0
  194. package/dist/client/SiteKitCredential.d.ts +0 -1
  195. package/dist/client/index.d.ts +0 -1
  196. package/dist/client/index.js +13 -53
  197. package/dist/cms/CmsPage.d.ts +0 -1
  198. package/dist/cms/CmsPreview.d.ts +0 -1
  199. package/dist/cms/CmsSection.d.ts +0 -1
  200. package/dist/cms/PortableTextRenderer.d.ts +0 -1
  201. package/dist/cms/index.d.ts +1 -2
  202. package/dist/cms/index.js +5 -410
  203. package/dist/cms/sanity-image.d.ts +0 -1
  204. package/dist/cms/sections/CtaSection.d.ts +0 -1
  205. package/dist/cms/sections/CustomSection.d.ts +0 -1
  206. package/dist/cms/sections/FaqSection.d.ts +0 -1
  207. package/dist/cms/sections/FormSection.d.ts +0 -1
  208. package/dist/cms/sections/GallerySection.d.ts +0 -1
  209. package/dist/cms/sections/HeroSection.d.ts +0 -1
  210. package/dist/cms/sections/RichTextSection.d.ts +0 -1
  211. package/dist/cms/sections/TestimonialsSection.d.ts +0 -1
  212. package/dist/cms/sections/index.d.ts +0 -1
  213. package/dist/cms/server-api.d.ts +0 -1
  214. package/dist/cms/server.d.ts +0 -1
  215. package/dist/cms/server.js +5 -22
  216. package/dist/cms/types.d.ts +0 -1
  217. package/dist/commerce/CalendarView.d.ts +0 -1
  218. package/dist/commerce/CheckoutForm.d.ts +0 -1
  219. package/dist/commerce/EventCalendar.d.ts +0 -1
  220. package/dist/commerce/EventCheckout.d.ts +0 -1
  221. package/dist/commerce/EventEmbed.d.ts +0 -1
  222. package/dist/commerce/EventModal.d.ts +0 -1
  223. package/dist/commerce/EventTile.d.ts +0 -1
  224. package/dist/commerce/EventsAgenda.d.ts +0 -1
  225. package/dist/commerce/EventsWidget.d.ts +0 -1
  226. package/dist/commerce/OfferingCard.d.ts +0 -1
  227. package/dist/commerce/OfferingList.d.ts +0 -1
  228. package/dist/commerce/ProductDetail.d.ts +0 -1
  229. package/dist/commerce/ProductEmbed.d.ts +0 -1
  230. package/dist/commerce/ProductGrid.d.ts +0 -1
  231. package/dist/commerce/ProductPage.d.ts +0 -1
  232. package/dist/commerce/RegistrationForm.d.ts +0 -1
  233. package/dist/commerce/SizeChart.d.ts +0 -1
  234. package/dist/commerce/UpcomingEvents.d.ts +0 -1
  235. package/dist/commerce/api.d.ts +0 -1
  236. package/dist/commerce/events-extras.d.ts +0 -1
  237. package/dist/commerce/index.d.ts +0 -1
  238. package/dist/commerce/index.js +8021 -228
  239. package/dist/commerce/server.d.ts +0 -1
  240. package/dist/commerce/server.js +2 -251
  241. package/dist/commerce/types.d.ts +0 -1
  242. package/dist/commerce/useEventModal.d.ts +0 -1
  243. package/dist/commerce/utils.d.ts +0 -1
  244. package/dist/config/index.d.ts +0 -1
  245. package/dist/config/index.js +7 -11
  246. package/dist/contracts/color.d.ts +38 -0
  247. package/dist/contracts/entries.d.ts +8 -0
  248. package/dist/contracts/fleet.d.ts +96 -0
  249. package/dist/contracts/forms.d.ts +89 -0
  250. package/dist/contracts/llms.d.ts +54 -0
  251. package/dist/contracts/portfolio.d.ts +158 -0
  252. package/dist/contracts/seo-meta.d.ts +56 -0
  253. package/dist/contracts/seo-pages.d.ts +124 -0
  254. package/dist/contracts/sites-normalize.d.ts +35 -0
  255. package/dist/contracts/sites.d.ts +48 -0
  256. package/dist/contracts/slots.d.ts +81 -0
  257. package/dist/contracts/website.d.ts +148 -0
  258. package/dist/cta-bar/CtaBar.d.ts +0 -1
  259. package/dist/cta-bar/CtaBarBehavior.d.ts +0 -1
  260. package/dist/cta-bar/client.d.ts +0 -1
  261. package/dist/cta-bar/client.js +3 -22
  262. package/dist/cta-bar/index.d.ts +0 -1
  263. package/dist/cta-bar/index.js +5 -227
  264. package/dist/cta-bar/styles.d.ts +0 -1
  265. package/dist/discover-3YYOHOQP.js +2 -0
  266. package/dist/engage/ChatWidget.d.ts +0 -1
  267. package/dist/engage/DesignRenderer.d.ts +0 -1
  268. package/dist/engage/EchoUiActions.d.ts +0 -1
  269. package/dist/engage/EngageWidget.d.ts +2 -1
  270. package/dist/engage/brand-color.d.ts +0 -1
  271. package/dist/engage/chat-messages.d.ts +0 -1
  272. package/dist/engage/echo-config.d.ts +0 -1
  273. package/dist/engage/element-rules.d.ts +0 -1
  274. package/dist/engage/index.d.ts +0 -1
  275. package/dist/engage/index.js +20 -37
  276. package/dist/engage/launcher-placement.d.ts +0 -1
  277. package/dist/engage/socket-loader.d.ts +0 -1
  278. package/dist/engage/types.d.ts +18 -1
  279. package/dist/fleet/FleetHeartbeat.d.ts +0 -1
  280. package/dist/fleet/contract.d.ts +1 -98
  281. package/dist/fleet/contract.js +2 -53
  282. package/dist/fleet/heartbeat.d.ts +0 -1
  283. package/dist/fleet/index.d.ts +0 -1
  284. package/dist/fleet/index.js +9 -76
  285. package/dist/forms/DatePicker.d.ts +0 -1
  286. package/dist/forms/FileField.d.ts +0 -1
  287. package/dist/forms/FormCelebration.d.ts +0 -1
  288. package/dist/forms/FormClient.d.ts +0 -1
  289. package/dist/forms/FormEnhancer.d.ts +0 -1
  290. package/dist/forms/FormField.d.ts +0 -1
  291. package/dist/forms/FormSpotlight.d.ts +0 -1
  292. package/dist/forms/FormStage.d.ts +0 -1
  293. package/dist/forms/HoneypotField.d.ts +0 -1
  294. package/dist/forms/ManagedForm.d.ts +0 -1
  295. package/dist/forms/ServerForm.d.ts +0 -1
  296. package/dist/forms/StaticForm.d.ts +0 -1
  297. package/dist/forms/contract.d.ts +1 -91
  298. package/dist/forms/contract.js +2 -37
  299. package/dist/forms/defaultSuccessMessage.d.ts +0 -1
  300. package/dist/forms/delight.d.ts +0 -1
  301. package/dist/forms/experience-chrome.d.ts +0 -1
  302. package/dist/forms/experience-plan.d.ts +0 -1
  303. package/dist/forms/field-controls.d.ts +0 -1
  304. package/dist/forms/field-interactions.d.ts +0 -1
  305. package/dist/forms/field-rules.d.ts +0 -1
  306. package/dist/forms/form-loaded-at.d.ts +12 -0
  307. package/dist/forms/form-values.d.ts +0 -1
  308. package/dist/forms/formsApi.d.ts +0 -1
  309. package/dist/forms/ga4-identity.d.ts +0 -1
  310. package/dist/forms/index.d.ts +0 -1
  311. package/dist/forms/index.js +20 -64
  312. package/dist/forms/normalize-config.d.ts +0 -1
  313. package/dist/forms/recaptcha-warmup.d.ts +0 -1
  314. package/dist/forms/recaptcha.d.ts +0 -1
  315. package/dist/forms/server.d.ts +0 -1
  316. package/dist/forms/server.js +11 -67
  317. package/dist/forms/static.d.ts +0 -1
  318. package/dist/forms/static.js +6 -17
  319. package/dist/forms/submitForm.d.ts +0 -1
  320. package/dist/forms/tracking-session.d.ts +0 -1
  321. package/dist/forms/types.d.ts +0 -1
  322. package/dist/forms/useForm.d.ts +0 -1
  323. package/dist/forms/useFormTracking.d.ts +0 -1
  324. package/dist/images/ManagedFavicon.d.ts +0 -1
  325. package/dist/images/ManagedImage.d.ts +0 -1
  326. package/dist/images/api.d.ts +0 -1
  327. package/dist/images/index.d.ts +0 -1
  328. package/dist/images/index.js +6 -49
  329. package/dist/images/server.d.ts +0 -1
  330. package/dist/images/server.js +3 -21
  331. package/dist/index.d.ts +13 -56
  332. package/dist/index.js +2 -427
  333. package/dist/landing/LandingPage.d.ts +0 -1
  334. package/dist/landing/contract.d.ts +0 -1
  335. package/dist/landing/index.d.ts +0 -1
  336. package/dist/landing/index.js +3 -22
  337. package/dist/landing/metadata.d.ts +0 -1
  338. package/dist/landing/server.d.ts +0 -1
  339. package/dist/landing/server.js +3 -17
  340. package/dist/layout/SiteKitClientProviders.d.ts +12 -3
  341. package/dist/layout/SiteKitLayout.d.ts +19 -4
  342. package/dist/layout/SpeculationRules.d.ts +0 -1
  343. package/dist/layout/client.d.ts +12 -3
  344. package/dist/layout/client.js +16 -27
  345. package/dist/layout/index.d.ts +0 -1
  346. package/dist/layout/index.js +43 -41
  347. package/dist/layout/types.d.ts +13 -1
  348. package/dist/llms/AEOComponents.d.ts +0 -1
  349. package/dist/llms/SpeakableSchema.d.ts +0 -1
  350. package/dist/llms/agent-access.d.ts +43 -0
  351. package/dist/llms/aiRobots.d.ts +0 -10
  352. package/dist/llms/api.d.ts +0 -1
  353. package/dist/llms/client.d.ts +0 -1
  354. package/dist/llms/client.js +4 -66
  355. package/dist/llms/contract.d.ts +1 -42
  356. package/dist/llms/contract.js +2 -41
  357. package/dist/llms/discovery-headers.d.ts +6 -1
  358. package/dist/llms/generateLLMsTxt.d.ts +0 -1
  359. package/dist/llms/handlers.d.ts +0 -1
  360. package/dist/llms/humanize-industry.d.ts +0 -1
  361. package/dist/llms/index.d.ts +3 -2
  362. package/dist/llms/index.js +17 -448
  363. package/dist/llms/links.d.ts +0 -1
  364. package/dist/llms/revalidate.d.ts +0 -1
  365. package/dist/llms/seo-revalidate.d.ts +0 -1
  366. package/dist/llms/sourcedFacts.d.ts +0 -1
  367. package/dist/llms/types.d.ts +6 -1
  368. package/dist/llms/writeLLMsTxt.d.ts +10 -1
  369. package/dist/manifest/index.d.ts +0 -1
  370. package/dist/manifest/index.js +4 -8
  371. package/dist/maps/GoogleMap.d.ts +0 -1
  372. package/dist/maps/NeighborhoodMap.d.ts +0 -1
  373. package/dist/maps/api.d.ts +0 -1
  374. package/dist/maps/index.d.ts +0 -1
  375. package/dist/maps/index.js +85 -92
  376. package/dist/maps/types.d.ts +0 -1
  377. package/dist/mcp/WebMcpTools.d.ts +0 -1
  378. package/dist/mcp/client.d.ts +0 -1
  379. package/dist/mcp/client.js +9 -12
  380. package/dist/mcp/declarative.d.ts +0 -1
  381. package/dist/mcp/handlers.d.ts +15 -2
  382. package/dist/mcp/index.d.ts +2 -3
  383. package/dist/mcp/index.js +50 -298
  384. package/dist/mcp/protocol.d.ts +0 -1
  385. package/dist/mcp/report.d.ts +27 -0
  386. package/dist/mcp/serverCard.d.ts +0 -1
  387. package/dist/mcp/sonor.d.ts +99 -0
  388. package/dist/mcp/sonor.js +484 -0
  389. package/dist/mcp/transport.d.ts +0 -1
  390. package/dist/mcp/transport.js +8 -24
  391. package/dist/mcp/types.d.ts +21 -1
  392. package/dist/motion/CountUp.d.ts +0 -1
  393. package/dist/motion/Parallax.d.ts +0 -1
  394. package/dist/motion/Reveal.d.ts +0 -1
  395. package/dist/motion/ScrollScene.d.ts +0 -1
  396. package/dist/motion/engine.d.ts +0 -1
  397. package/dist/motion/failsafe.d.ts +0 -1
  398. package/dist/motion/gsap.d.ts +0 -1
  399. package/dist/motion/gsap.js +17 -29
  400. package/dist/motion/index.d.ts +0 -1
  401. package/dist/motion/index.js +25 -51
  402. package/dist/motion/three.d.ts +0 -1
  403. package/dist/motion/three.js +16 -23
  404. package/dist/og/config.d.ts +0 -1
  405. package/dist/og/contrast.d.ts +0 -1
  406. package/dist/og/index.d.ts +0 -1
  407. package/dist/og/index.js +4 -43
  408. package/dist/og/pages.d.ts +0 -1
  409. package/dist/og/route-fit.d.ts +0 -1
  410. package/dist/og/route.d.ts +0 -1
  411. package/dist/og/route.js +3 -245
  412. package/dist/og/template.d.ts +0 -1
  413. package/dist/portfolio/contract.d.ts +1 -153
  414. package/dist/portfolio/contract.js +2 -136
  415. package/dist/proxy/index.d.ts +16 -14
  416. package/dist/proxy/index.js +20 -36
  417. package/dist/proxy/securityHeaders.d.ts +0 -1
  418. package/dist/proxy/segment.d.ts +0 -1
  419. package/dist/redirects/index.d.ts +0 -8
  420. package/dist/redirects/index.js +6 -41
  421. package/dist/reputation/TestimonialSection.d.ts +0 -1
  422. package/dist/reputation/api.d.ts +0 -1
  423. package/dist/reputation/index.d.ts +0 -1
  424. package/dist/reputation/index.js +4 -22
  425. package/dist/reputation/server.d.ts +0 -1
  426. package/dist/reputation/server.js +3 -17
  427. package/dist/reputation/types.d.ts +0 -1
  428. package/dist/robots/index.d.ts +1 -2
  429. package/dist/robots/index.js +4 -78
  430. package/dist/robots/indexnow.d.ts +0 -1
  431. package/dist/robots/indexnow.js +4 -39
  432. package/dist/robots/next-internals.d.ts +0 -1
  433. package/dist/seo/ManagedContent.d.ts +0 -1
  434. package/dist/seo/ManagedFAQ.d.ts +0 -1
  435. package/dist/seo/ManagedInternalLinks.d.ts +0 -1
  436. package/dist/seo/ManagedSchema.d.ts +0 -1
  437. package/dist/seo/ManagedScripts.d.ts +0 -1
  438. package/dist/seo/api.d.ts +0 -1
  439. package/dist/seo/client.d.ts +0 -1
  440. package/dist/seo/client.js +8 -19
  441. package/dist/seo/entry-indexnow.d.ts +2 -0
  442. package/dist/seo/entry-llms-client.d.ts +2 -0
  443. package/dist/seo/entry-llms-contract.d.ts +2 -0
  444. package/dist/seo/entry-llms.d.ts +2 -0
  445. package/dist/seo/entry-meta-contract.d.ts +2 -0
  446. package/dist/seo/entry-og-route.d.ts +2 -0
  447. package/dist/seo/entry-og.d.ts +2 -0
  448. package/dist/seo/entry-pages-contract.d.ts +2 -0
  449. package/dist/seo/entry-redirects.d.ts +2 -0
  450. package/dist/seo/entry-robots.d.ts +2 -0
  451. package/dist/seo/entry-sitemap.d.ts +2 -0
  452. package/dist/seo/getManagedMetadata.d.ts +0 -1
  453. package/dist/seo/groundingSchema.d.ts +0 -1
  454. package/dist/seo/index.d.ts +0 -2
  455. package/dist/seo/index.js +88 -318
  456. package/dist/seo/indexnow.d.ts +2 -0
  457. package/dist/seo/indexnow.js +4 -0
  458. package/dist/seo/llms/client.d.ts +2 -0
  459. package/dist/seo/llms/client.js +4 -0
  460. package/dist/seo/llms/contract.d.ts +2 -0
  461. package/dist/seo/llms/contract.js +2 -0
  462. package/dist/seo/llms.d.ts +2 -0
  463. package/dist/seo/llms.js +17 -0
  464. package/dist/seo/load-env.d.ts +12 -0
  465. package/dist/seo/meta/contract.d.ts +2 -0
  466. package/dist/seo/meta/contract.js +2 -0
  467. package/dist/seo/og/route.d.ts +2 -0
  468. package/dist/seo/og/route.js +3 -0
  469. package/dist/seo/og.d.ts +2 -0
  470. package/dist/seo/og.js +4 -0
  471. package/dist/seo/pages/contract.d.ts +2 -0
  472. package/dist/seo/pages/contract.js +4 -0
  473. package/dist/seo/redirects.d.ts +2 -0
  474. package/dist/seo/redirects.js +6 -0
  475. package/dist/seo/register-sitemap-cli-impl.d.ts +6 -1
  476. package/dist/seo/register-sitemap-cli.d.ts +1 -1
  477. package/dist/seo/register-sitemap-cli.js +73 -66
  478. package/dist/seo/register-sitemap-request.d.ts +0 -1
  479. package/dist/seo/robots.d.ts +2 -0
  480. package/dist/seo/robots.js +4 -0
  481. package/dist/seo/routing.d.ts +0 -1
  482. package/dist/seo/safeJsonLd.d.ts +0 -1
  483. package/dist/seo/schema-filter.d.ts +0 -1
  484. package/dist/seo/server-api.d.ts +0 -1
  485. package/dist/seo/server.d.ts +0 -1
  486. package/dist/seo/server.js +10 -80
  487. package/dist/seo/sitemap.d.ts +2 -0
  488. package/dist/seo/sitemap.js +15 -0
  489. package/dist/seo/types.d.ts +0 -1
  490. package/dist/seo/withManagedMetadata.d.ts +0 -1
  491. package/dist/seo-meta/contract.d.ts +1 -60
  492. package/dist/seo-meta/contract.js +2 -41
  493. package/dist/seo-pages/contract.d.ts +1 -61
  494. package/dist/seo-pages/contract.js +4 -49
  495. package/dist/server/index.d.ts +0 -1
  496. package/dist/server/index.js +6 -32
  497. package/dist/server/mint-site-token.d.ts +0 -1
  498. package/dist/server/server-fetch.d.ts +0 -1
  499. package/dist/server-api-GJJQZVG7.js +8 -0
  500. package/dist/shared/build-entries.d.ts +53 -14
  501. package/dist/shared/clock.d.ts +20 -0
  502. package/dist/shared/color.d.ts +1 -39
  503. package/dist/shared/defer.d.ts +0 -1
  504. package/dist/shared/fetchWithRetry.d.ts +0 -1
  505. package/dist/shared/frame.d.ts +1 -9
  506. package/dist/shared/fresh-fetch.d.ts +0 -1
  507. package/dist/shared/glass.d.ts +0 -1
  508. package/dist/shared/identity.d.ts +0 -1
  509. package/dist/shared/markdown.d.ts +40 -0
  510. package/dist/shared/next-files.d.ts +0 -1
  511. package/dist/shared/page-leave.d.ts +0 -1
  512. package/dist/shared/publishCredential.d.ts +0 -1
  513. package/dist/shared/reporting-gate.d.ts +0 -1
  514. package/dist/shared/request-guards.d.ts +0 -1
  515. package/dist/shared/siteToken.d.ts +0 -1
  516. package/dist/shared/sonorFetch.d.ts +0 -1
  517. package/dist/shared/source-graph.d.ts +0 -1
  518. package/dist/shared/uuid.d.ts +0 -1
  519. package/dist/shared/version.d.ts +1 -2
  520. package/dist/shared/visual-viewport-gap.d.ts +0 -1
  521. package/dist/signal/SignalBridge.d.ts +0 -1
  522. package/dist/signal/SignalCore.d.ts +0 -1
  523. package/dist/signal/SignalExperiment.d.ts +0 -1
  524. package/dist/signal/index.d.ts +0 -1
  525. package/dist/signal/index.js +72 -44
  526. package/dist/signal/store.d.ts +0 -1
  527. package/dist/signal/types.d.ts +0 -1
  528. package/dist/site-config/index.d.ts +0 -1
  529. package/dist/site-config/index.js +2 -17
  530. package/dist/sitemap/discover.d.ts +0 -1
  531. package/dist/sitemap/index.d.ts +6 -1
  532. package/dist/sitemap/index.js +15 -553
  533. package/dist/sitemap/shared.d.ts +0 -1
  534. package/dist/sites/contract.d.ts +1 -51
  535. package/dist/sites/contract.js +3 -38
  536. package/dist/sites/normalize.d.ts +1 -36
  537. package/dist/sites/resolve.d.ts +0 -1
  538. package/dist/sites/site-param.d.ts +0 -1
  539. package/dist/slots/ManagedSlot.d.ts +0 -1
  540. package/dist/slots/contract.d.ts +1 -82
  541. package/dist/slots/contract.js +2 -41
  542. package/dist/slots/index.d.ts +0 -1
  543. package/dist/slots/index.js +5 -182
  544. package/dist/slots/revalidate.d.ts +0 -1
  545. package/dist/slots/server-api.d.ts +0 -1
  546. package/dist/socket-loader-R24ZSRSQ.js +12 -0
  547. package/dist/sync/AddToCalendar.d.ts +0 -1
  548. package/dist/sync/BookingWidget.d.ts +0 -1
  549. package/dist/sync/MeetingFormatStep.d.ts +0 -1
  550. package/dist/sync/api.d.ts +0 -1
  551. package/dist/sync/booking-flow.d.ts +0 -1
  552. package/dist/sync/index.d.ts +0 -1
  553. package/dist/sync/index.js +6 -64
  554. package/dist/sync/types.d.ts +0 -1
  555. package/dist/types.d.ts +0 -63
  556. package/dist/web-vitals.attribution-N2PCCF4Q.js +522 -0
  557. package/dist/website/BlocksPopup.d.ts +25 -0
  558. package/dist/website/PopupBlocks.d.ts +57 -0
  559. package/dist/website/SiteDesignReporter.d.ts +28 -0
  560. package/dist/website/cms/server.d.ts +2 -0
  561. package/dist/website/cms/server.js +5 -0
  562. package/dist/website/cms-server.d.ts +2 -0
  563. package/dist/website/cms.d.ts +2 -0
  564. package/dist/website/cms.js +5 -0
  565. package/dist/website/contract.d.ts +1 -0
  566. package/dist/website/contract.js +3 -0
  567. package/dist/website/cta-bar.d.ts +2 -0
  568. package/dist/website/cta-bar.js +5 -0
  569. package/dist/website/design.d.ts +165 -0
  570. package/dist/website/images/server.d.ts +2 -0
  571. package/dist/website/images/server.js +3 -0
  572. package/dist/website/images-server.d.ts +2 -0
  573. package/dist/website/images.d.ts +2 -0
  574. package/dist/website/images.js +6 -0
  575. package/dist/website/index.d.ts +17 -0
  576. package/dist/website/index.js +13 -0
  577. package/dist/website/landing/server.d.ts +2 -0
  578. package/dist/website/landing/server.js +3 -0
  579. package/dist/website/landing-server.d.ts +2 -0
  580. package/dist/website/landing.d.ts +2 -0
  581. package/dist/website/landing.js +3 -0
  582. package/dist/website/popups.d.ts +17 -0
  583. package/dist/website/popups.js +22 -0
  584. package/dist/website/slots/contract.d.ts +2 -0
  585. package/dist/website/slots/contract.js +2 -0
  586. package/dist/website/slots-contract.d.ts +2 -0
  587. package/dist/website/slots.d.ts +3 -0
  588. package/dist/website/slots.js +5 -0
  589. package/dist/writeLLMsTxt-UMHKGNRR.js +11 -0
  590. package/package.json +191 -161
  591. package/skills/site-kit/SKILL.md +9 -3
  592. package/dist/AnalyticsProvider-44PDLORZ.js +0 -34
  593. package/dist/AnalyticsProvider-44PDLORZ.js.map +0 -1
  594. package/dist/AnalyticsProvider-F6KHEAOX.mjs +0 -13
  595. package/dist/AnalyticsProvider-F6KHEAOX.mjs.map +0 -1
  596. package/dist/ArticleFaqSection-3KZ24MFS.js +0 -13
  597. package/dist/ArticleFaqSection-3KZ24MFS.js.map +0 -1
  598. package/dist/ArticleFaqSection-XZPXJVH4.mjs +0 -11
  599. package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +0 -1
  600. package/dist/ArticleViewTracker-MGNVIHZ4.js +0 -54
  601. package/dist/ArticleViewTracker-MGNVIHZ4.js.map +0 -1
  602. package/dist/ArticleViewTracker-NI4UNSY7.mjs +0 -51
  603. package/dist/ArticleViewTracker-NI4UNSY7.mjs.map +0 -1
  604. package/dist/ChatWidget-XSALHDDW.mjs +0 -17
  605. package/dist/ChatWidget-XSALHDDW.mjs.map +0 -1
  606. package/dist/ChatWidget-YBXJRR2Z.js +0 -34
  607. package/dist/ChatWidget-YBXJRR2Z.js.map +0 -1
  608. package/dist/DatePicker-4WNKNNCV.mjs +0 -4
  609. package/dist/DatePicker-4WNKNNCV.mjs.map +0 -1
  610. package/dist/DatePicker-VPZR7RU3.js +0 -13
  611. package/dist/DatePicker-VPZR7RU3.js.map +0 -1
  612. package/dist/EngageWidget-DUEXPVOY.mjs +0 -13
  613. package/dist/EngageWidget-DUEXPVOY.mjs.map +0 -1
  614. package/dist/EngageWidget-MDCRS3BN.js +0 -22
  615. package/dist/EngageWidget-MDCRS3BN.js.map +0 -1
  616. package/dist/FileField-AXU6KBSV.js +0 -91
  617. package/dist/FileField-AXU6KBSV.js.map +0 -1
  618. package/dist/FileField-UTLGR5ZN.mjs +0 -85
  619. package/dist/FileField-UTLGR5ZN.mjs.map +0 -1
  620. package/dist/FormCelebration-7CBANVNS.mjs +0 -4
  621. package/dist/FormCelebration-7CBANVNS.mjs.map +0 -1
  622. package/dist/FormCelebration-O2O5S6JI.js +0 -13
  623. package/dist/FormCelebration-O2O5S6JI.js.map +0 -1
  624. package/dist/FormSpotlight-NWLCZMOT.mjs +0 -756
  625. package/dist/FormSpotlight-NWLCZMOT.mjs.map +0 -1
  626. package/dist/FormSpotlight-RR5KJDIH.js +0 -761
  627. package/dist/FormSpotlight-RR5KJDIH.js.map +0 -1
  628. package/dist/FormStage-GFNX4GLU.js +0 -422
  629. package/dist/FormStage-GFNX4GLU.js.map +0 -1
  630. package/dist/FormStage-V4XKLI6J.mjs +0 -420
  631. package/dist/FormStage-V4XKLI6J.mjs.map +0 -1
  632. package/dist/ManagedForm-4AD3LWSC.js +0 -25
  633. package/dist/ManagedForm-4AD3LWSC.js.map +0 -1
  634. package/dist/ManagedForm-4IWPG6AZ.mjs +0 -16
  635. package/dist/ManagedForm-4IWPG6AZ.mjs.map +0 -1
  636. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs +0 -64
  637. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs.map +0 -1
  638. package/dist/ManagedNewsletterForm-HJZNUABY.js +0 -66
  639. package/dist/ManagedNewsletterForm-HJZNUABY.js.map +0 -1
  640. package/dist/SignalCore-N2LKG4XN.mjs +0 -324
  641. package/dist/SignalCore-N2LKG4XN.mjs.map +0 -1
  642. package/dist/SignalCore-P2JUY2BO.js +0 -326
  643. package/dist/SignalCore-P2JUY2BO.js.map +0 -1
  644. package/dist/SitemapSync-KFY4PJ7G.js +0 -19
  645. package/dist/SitemapSync-KFY4PJ7G.js.map +0 -1
  646. package/dist/SitemapSync-UYDL7T4M.mjs +0 -10
  647. package/dist/SitemapSync-UYDL7T4M.mjs.map +0 -1
  648. package/dist/SitemapSync.d.ts.map +0 -1
  649. package/dist/admin-auth/index.d.ts.map +0 -1
  650. package/dist/admin-auth/index.js.map +0 -1
  651. package/dist/admin-auth/index.mjs +0 -0
  652. package/dist/admin-auth/index.mjs.map +0 -1
  653. package/dist/admin-auth/session.d.ts.map +0 -1
  654. package/dist/affiliates/AffiliatesWidget.d.ts.map +0 -1
  655. package/dist/affiliates/api.d.ts.map +0 -1
  656. package/dist/affiliates/index.d.ts.map +0 -1
  657. package/dist/affiliates/types.d.ts.map +0 -1
  658. package/dist/affiliates/useAffiliates.d.ts.map +0 -1
  659. package/dist/analytics/AnalyticsProvider.d.ts.map +0 -1
  660. package/dist/analytics/WebVitals.d.ts.map +0 -1
  661. package/dist/analytics/dispatch.d.ts.map +0 -1
  662. package/dist/analytics/index.d.ts.map +0 -1
  663. package/dist/analytics/index.js.map +0 -1
  664. package/dist/analytics/index.mjs +0 -15
  665. package/dist/analytics/index.mjs.map +0 -1
  666. package/dist/analytics/measurement-context.d.ts.map +0 -1
  667. package/dist/analytics/page-observation.d.ts.map +0 -1
  668. package/dist/analytics/send-gate.d.ts.map +0 -1
  669. package/dist/analytics/types.d.ts.map +0 -1
  670. package/dist/analytics/useContactTracking.d.ts.map +0 -1
  671. package/dist/api-D745LGGU.mjs +0 -183
  672. package/dist/api-XR5APCH3.js +0 -201
  673. package/dist/article-styles-DACUAOVT.mjs +0 -592
  674. package/dist/article-styles-DACUAOVT.mjs.map +0 -1
  675. package/dist/article-styles-JHHTNHOK.js +0 -595
  676. package/dist/article-styles-JHHTNHOK.js.map +0 -1
  677. package/dist/article-tables-EWXG4LNP.js +0 -17
  678. package/dist/article-tables-EWXG4LNP.js.map +0 -1
  679. package/dist/article-tables-OGE52LNT.mjs +0 -4
  680. package/dist/article-tables-OGE52LNT.mjs.map +0 -1
  681. package/dist/articles/Article.d.ts.map +0 -1
  682. package/dist/articles/ArticleFAQ.d.ts.map +0 -1
  683. package/dist/articles/ArticleFaqSection.d.ts.map +0 -1
  684. package/dist/articles/ArticleList.d.ts.map +0 -1
  685. package/dist/articles/ArticleViewTracker.d.ts.map +0 -1
  686. package/dist/articles/AuthorCard.d.ts.map +0 -1
  687. package/dist/articles/AuthorPage.d.ts.map +0 -1
  688. package/dist/articles/ClusterLandingPage.d.ts.map +0 -1
  689. package/dist/articles/ClusterNavigation.d.ts.map +0 -1
  690. package/dist/articles/ManagedNewsletterForm.d.ts.map +0 -1
  691. package/dist/articles/NewsletterShell.d.ts.map +0 -1
  692. package/dist/articles/NewsletterWidget.d.ts.map +0 -1
  693. package/dist/articles/PublicationLayout.d.ts.map +0 -1
  694. package/dist/articles/PublicationSidebar.d.ts.map +0 -1
  695. package/dist/articles/RelatedPosts.d.ts.map +0 -1
  696. package/dist/articles/ServiceCallout.d.ts.map +0 -1
  697. package/dist/articles/TableOfContents.d.ts.map +0 -1
  698. package/dist/articles/article-styles.d.ts.map +0 -1
  699. package/dist/articles/article-tables.d.ts.map +0 -1
  700. package/dist/articles/artwork.d.ts.map +0 -1
  701. package/dist/articles/author-schema.d.ts.map +0 -1
  702. package/dist/articles/author-social.d.ts.map +0 -1
  703. package/dist/articles/excerpt.d.ts.map +0 -1
  704. package/dist/articles/index.d.ts.map +0 -1
  705. package/dist/articles/index.js.map +0 -1
  706. package/dist/articles/index.mjs +0 -457
  707. package/dist/articles/index.mjs.map +0 -1
  708. package/dist/articles/news-sitemap.d.ts.map +0 -1
  709. package/dist/articles/processArticleHtml.d.ts.map +0 -1
  710. package/dist/articles/public-reads.d.ts.map +0 -1
  711. package/dist/articles/reading-time.d.ts.map +0 -1
  712. package/dist/articles/routes.d.ts.map +0 -1
  713. package/dist/articles/server-core.d.ts.map +0 -1
  714. package/dist/articles/server-ui.d.ts.map +0 -1
  715. package/dist/articles/server-ui.js.map +0 -1
  716. package/dist/articles/server-ui.mjs +0 -1098
  717. package/dist/articles/server-ui.mjs.map +0 -1
  718. package/dist/articles/server.d.ts.map +0 -1
  719. package/dist/articles/server.js.map +0 -1
  720. package/dist/articles/server.mjs +0 -11
  721. package/dist/articles/server.mjs.map +0 -1
  722. package/dist/articles/types.d.ts.map +0 -1
  723. package/dist/articles/widget-styles.d.ts.map +0 -1
  724. package/dist/brand/extract-brand-profile.d.ts.map +0 -1
  725. package/dist/chunk-2FEQ6TYD.mjs +0 -37
  726. package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
  727. package/dist/chunk-34XL7TVH.js +0 -130
  728. package/dist/chunk-34XL7TVH.js.map +0 -1
  729. package/dist/chunk-3AOKYAZ2.js +0 -135
  730. package/dist/chunk-3AOKYAZ2.js.map +0 -1
  731. package/dist/chunk-3BLKKF67.mjs +0 -131
  732. package/dist/chunk-3BLKKF67.mjs.map +0 -1
  733. package/dist/chunk-3DWIYCQX.js +0 -30
  734. package/dist/chunk-3DWIYCQX.js.map +0 -1
  735. package/dist/chunk-3EAS4PAT.js +0 -141
  736. package/dist/chunk-3EAS4PAT.js.map +0 -1
  737. package/dist/chunk-3SDMJMN2.js +0 -71
  738. package/dist/chunk-3SDMJMN2.js.map +0 -1
  739. package/dist/chunk-3T2CVHFO.mjs +0 -453
  740. package/dist/chunk-3T2CVHFO.mjs.map +0 -1
  741. package/dist/chunk-42LLFAJQ.mjs +0 -932
  742. package/dist/chunk-42LLFAJQ.mjs.map +0 -1
  743. package/dist/chunk-4BEGKFMN.js +0 -133
  744. package/dist/chunk-4BEGKFMN.js.map +0 -1
  745. package/dist/chunk-4KAMU5HD.mjs +0 -16
  746. package/dist/chunk-4KAMU5HD.mjs.map +0 -1
  747. package/dist/chunk-4U5NCKQY.mjs +0 -39
  748. package/dist/chunk-4U5NCKQY.mjs.map +0 -1
  749. package/dist/chunk-4WCA2HM6.mjs +0 -57
  750. package/dist/chunk-4WCA2HM6.mjs.map +0 -1
  751. package/dist/chunk-54CARHDR.mjs +0 -95
  752. package/dist/chunk-54CARHDR.mjs.map +0 -1
  753. package/dist/chunk-55J2KE7D.js +0 -60
  754. package/dist/chunk-55J2KE7D.js.map +0 -1
  755. package/dist/chunk-5F2FIM5A.mjs +0 -135
  756. package/dist/chunk-5F2FIM5A.mjs.map +0 -1
  757. package/dist/chunk-5SANRSX3.mjs +0 -17
  758. package/dist/chunk-5SANRSX3.mjs.map +0 -1
  759. package/dist/chunk-5XFFUP6D.js +0 -100
  760. package/dist/chunk-5XFFUP6D.js.map +0 -1
  761. package/dist/chunk-5YA6SI4Z.mjs +0 -14279
  762. package/dist/chunk-5YVQWLSQ.mjs +0 -47
  763. package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
  764. package/dist/chunk-5ZMTEK7U.js +0 -1430
  765. package/dist/chunk-5ZMTEK7U.js.map +0 -1
  766. package/dist/chunk-64BOVMXG.mjs +0 -68
  767. package/dist/chunk-64BOVMXG.mjs.map +0 -1
  768. package/dist/chunk-662YHKWW.mjs +0 -10
  769. package/dist/chunk-662YHKWW.mjs.map +0 -1
  770. package/dist/chunk-6C47333H.mjs +0 -55
  771. package/dist/chunk-6C47333H.mjs.map +0 -1
  772. package/dist/chunk-6EDVCUAG.mjs +0 -29
  773. package/dist/chunk-6EDVCUAG.mjs.map +0 -1
  774. package/dist/chunk-6FNFM7JL.js +0 -113
  775. package/dist/chunk-6FNFM7JL.js.map +0 -1
  776. package/dist/chunk-6OQYRVMI.js +0 -937
  777. package/dist/chunk-6OQYRVMI.js.map +0 -1
  778. package/dist/chunk-6PJTLBRR.mjs +0 -11
  779. package/dist/chunk-6PJTLBRR.mjs.map +0 -1
  780. package/dist/chunk-6XNEGG5B.mjs +0 -137
  781. package/dist/chunk-6XNEGG5B.mjs.map +0 -1
  782. package/dist/chunk-7F66Y4MA.mjs +0 -1073
  783. package/dist/chunk-7F66Y4MA.mjs.map +0 -1
  784. package/dist/chunk-7RLL67F3.js +0 -47
  785. package/dist/chunk-7RLL67F3.js.map +0 -1
  786. package/dist/chunk-7THQ4UW3.js +0 -69
  787. package/dist/chunk-7THQ4UW3.js.map +0 -1
  788. package/dist/chunk-A2HL22BO.mjs +0 -165
  789. package/dist/chunk-A2HL22BO.mjs.map +0 -1
  790. package/dist/chunk-AAZNH3MA.mjs +0 -23
  791. package/dist/chunk-AAZNH3MA.mjs.map +0 -1
  792. package/dist/chunk-AEN7EL6N.js +0 -161
  793. package/dist/chunk-AEN7EL6N.js.map +0 -1
  794. package/dist/chunk-AGIMH67E.mjs +0 -26
  795. package/dist/chunk-AGIMH67E.mjs.map +0 -1
  796. package/dist/chunk-AL4Z6VYF.js +0 -83
  797. package/dist/chunk-AL4Z6VYF.js.map +0 -1
  798. package/dist/chunk-AS2HUIDW.mjs +0 -16
  799. package/dist/chunk-AS2HUIDW.mjs.map +0 -1
  800. package/dist/chunk-B22WSN4L.mjs +0 -59
  801. package/dist/chunk-B22WSN4L.mjs.map +0 -1
  802. package/dist/chunk-B6QPCAEG.mjs +0 -128
  803. package/dist/chunk-B6QPCAEG.mjs.map +0 -1
  804. package/dist/chunk-BBBJHYPH.js +0 -19
  805. package/dist/chunk-BBBJHYPH.js.map +0 -1
  806. package/dist/chunk-BEXTDHO4.mjs +0 -57
  807. package/dist/chunk-BEXTDHO4.mjs.map +0 -1
  808. package/dist/chunk-BHZHWXER.js +0 -791
  809. package/dist/chunk-BHZHWXER.js.map +0 -1
  810. package/dist/chunk-BNKBRLJK.mjs +0 -75
  811. package/dist/chunk-BNKBRLJK.mjs.map +0 -1
  812. package/dist/chunk-BQP6JIE2.mjs +0 -28
  813. package/dist/chunk-BQP6JIE2.mjs.map +0 -1
  814. package/dist/chunk-BZR6RUIN.mjs +0 -128
  815. package/dist/chunk-BZR6RUIN.mjs.map +0 -1
  816. package/dist/chunk-C2CTLLIO.mjs +0 -72
  817. package/dist/chunk-C2CTLLIO.mjs.map +0 -1
  818. package/dist/chunk-C5VITBN7.mjs +0 -220
  819. package/dist/chunk-C5VITBN7.mjs.map +0 -1
  820. package/dist/chunk-CABEVWKJ.mjs +0 -25
  821. package/dist/chunk-CABEVWKJ.mjs.map +0 -1
  822. package/dist/chunk-CDRQYJUT.js +0 -355
  823. package/dist/chunk-CDRQYJUT.js.map +0 -1
  824. package/dist/chunk-CFRJ2MK5.mjs +0 -16
  825. package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
  826. package/dist/chunk-CIM5W3UO.js +0 -26
  827. package/dist/chunk-CIM5W3UO.js.map +0 -1
  828. package/dist/chunk-CLO3K7PF.js +0 -19
  829. package/dist/chunk-CLO3K7PF.js.map +0 -1
  830. package/dist/chunk-CM4AVKXR.js +0 -533
  831. package/dist/chunk-CM4AVKXR.js.map +0 -1
  832. package/dist/chunk-CU6OGBKK.mjs +0 -68
  833. package/dist/chunk-CU6OGBKK.mjs.map +0 -1
  834. package/dist/chunk-CUNZAD46.js +0 -53
  835. package/dist/chunk-CUNZAD46.js.map +0 -1
  836. package/dist/chunk-CXAXZFFW.js +0 -157
  837. package/dist/chunk-CXAXZFFW.js.map +0 -1
  838. package/dist/chunk-D3WJMSTB.mjs +0 -132
  839. package/dist/chunk-D3WJMSTB.mjs.map +0 -1
  840. package/dist/chunk-DA7IANFG.mjs +0 -37
  841. package/dist/chunk-DA7IANFG.mjs.map +0 -1
  842. package/dist/chunk-DV2LJYFD.js +0 -14
  843. package/dist/chunk-DV2LJYFD.js.map +0 -1
  844. package/dist/chunk-DV5KVNA7.js +0 -45
  845. package/dist/chunk-DV5KVNA7.js.map +0 -1
  846. package/dist/chunk-DVYYGHSG.js +0 -285
  847. package/dist/chunk-DVYYGHSG.js.map +0 -1
  848. package/dist/chunk-DWZGW77V.mjs +0 -1669
  849. package/dist/chunk-DWZGW77V.mjs.map +0 -1
  850. package/dist/chunk-EDLNMGQC.mjs +0 -65
  851. package/dist/chunk-EDLNMGQC.mjs.map +0 -1
  852. package/dist/chunk-EHJANA5C.js +0 -231
  853. package/dist/chunk-EHJANA5C.js.map +0 -1
  854. package/dist/chunk-EMHSHAVW.js +0 -19
  855. package/dist/chunk-EMHSHAVW.js.map +0 -1
  856. package/dist/chunk-ESP5RMB7.js +0 -42
  857. package/dist/chunk-ESP5RMB7.js.map +0 -1
  858. package/dist/chunk-FCAHV5P3.mjs +0 -45
  859. package/dist/chunk-FCAHV5P3.mjs.map +0 -1
  860. package/dist/chunk-FPVYKSXE.mjs +0 -154
  861. package/dist/chunk-FPVYKSXE.mjs.map +0 -1
  862. package/dist/chunk-G2KGHIAP.js +0 -176
  863. package/dist/chunk-G2KGHIAP.js.map +0 -1
  864. package/dist/chunk-G6WF4G3E.js +0 -43
  865. package/dist/chunk-G6WF4G3E.js.map +0 -1
  866. package/dist/chunk-GCPPXUAI.js +0 -72
  867. package/dist/chunk-GCPPXUAI.js.map +0 -1
  868. package/dist/chunk-GFSQMK35.mjs +0 -127
  869. package/dist/chunk-GFSQMK35.mjs.map +0 -1
  870. package/dist/chunk-GIGUDKLS.mjs +0 -6
  871. package/dist/chunk-GIGUDKLS.mjs.map +0 -1
  872. package/dist/chunk-GSRT66PA.js +0 -80
  873. package/dist/chunk-GSRT66PA.js.map +0 -1
  874. package/dist/chunk-H4TSADY3.mjs +0 -761
  875. package/dist/chunk-H4TSADY3.mjs.map +0 -1
  876. package/dist/chunk-H6AU3WKF.js +0 -108
  877. package/dist/chunk-H6AU3WKF.js.map +0 -1
  878. package/dist/chunk-HGNSJXWT.js +0 -55
  879. package/dist/chunk-HGNSJXWT.js.map +0 -1
  880. package/dist/chunk-HIZJD7TU.mjs +0 -326
  881. package/dist/chunk-HIZJD7TU.mjs.map +0 -1
  882. package/dist/chunk-HPGPOUHU.mjs +0 -105
  883. package/dist/chunk-HPGPOUHU.mjs.map +0 -1
  884. package/dist/chunk-HXHDOIV6.js +0 -41
  885. package/dist/chunk-HXHDOIV6.js.map +0 -1
  886. package/dist/chunk-I7AZC5ZQ.js +0 -14285
  887. package/dist/chunk-IBJOGXQI.js +0 -33
  888. package/dist/chunk-IBJOGXQI.js.map +0 -1
  889. package/dist/chunk-IMWON7OV.mjs +0 -27
  890. package/dist/chunk-IMWON7OV.mjs.map +0 -1
  891. package/dist/chunk-IO65ROAO.js +0 -134
  892. package/dist/chunk-IO65ROAO.js.map +0 -1
  893. package/dist/chunk-IWSN4DGG.js +0 -132
  894. package/dist/chunk-IWSN4DGG.js.map +0 -1
  895. package/dist/chunk-J7QI3GDX.js +0 -12
  896. package/dist/chunk-J7QI3GDX.js.map +0 -1
  897. package/dist/chunk-JA77WXRE.js +0 -30
  898. package/dist/chunk-JA77WXRE.js.map +0 -1
  899. package/dist/chunk-JCDX37BY.js +0 -58
  900. package/dist/chunk-JCDX37BY.js.map +0 -1
  901. package/dist/chunk-JONWE26J.js +0 -81
  902. package/dist/chunk-JONWE26J.js.map +0 -1
  903. package/dist/chunk-JOYMIGR2.mjs +0 -24842
  904. package/dist/chunk-JP5WGL75.js +0 -62
  905. package/dist/chunk-JP5WGL75.js.map +0 -1
  906. package/dist/chunk-JS75ORH7.js +0 -24860
  907. package/dist/chunk-JSXLTZUP.mjs +0 -255
  908. package/dist/chunk-JSXLTZUP.mjs.map +0 -1
  909. package/dist/chunk-JX3PO2MH.js +0 -53
  910. package/dist/chunk-JX3PO2MH.js.map +0 -1
  911. package/dist/chunk-KHPJ3CEL.js +0 -72
  912. package/dist/chunk-KHPJ3CEL.js.map +0 -1
  913. package/dist/chunk-KP5BFPGT.js +0 -44
  914. package/dist/chunk-KP5BFPGT.js.map +0 -1
  915. package/dist/chunk-KR7ATPAN.js +0 -52
  916. package/dist/chunk-KR7ATPAN.js.map +0 -1
  917. package/dist/chunk-KZVSB5WE.mjs +0 -21
  918. package/dist/chunk-KZVSB5WE.mjs.map +0 -1
  919. package/dist/chunk-LVGSOW2F.js +0 -32
  920. package/dist/chunk-LVGSOW2F.js.map +0 -1
  921. package/dist/chunk-M2N7NY3V.js +0 -103
  922. package/dist/chunk-M2N7NY3V.js.map +0 -1
  923. package/dist/chunk-MDQLON5R.mjs +0 -101
  924. package/dist/chunk-MDQLON5R.mjs.map +0 -1
  925. package/dist/chunk-MHKD34B4.js +0 -1677
  926. package/dist/chunk-MHKD34B4.js.map +0 -1
  927. package/dist/chunk-MLVHVKFT.mjs +0 -148
  928. package/dist/chunk-MLVHVKFT.mjs.map +0 -1
  929. package/dist/chunk-MU3D5IO7.mjs +0 -283
  930. package/dist/chunk-MU3D5IO7.mjs.map +0 -1
  931. package/dist/chunk-MU7DTEUF.mjs +0 -77
  932. package/dist/chunk-MU7DTEUF.mjs.map +0 -1
  933. package/dist/chunk-MVHR77V4.js +0 -205
  934. package/dist/chunk-MVHR77V4.js.map +0 -1
  935. package/dist/chunk-MXJOKOFK.mjs +0 -51
  936. package/dist/chunk-MXJOKOFK.mjs.map +0 -1
  937. package/dist/chunk-NBOBOYMT.js +0 -52
  938. package/dist/chunk-NBOBOYMT.js.map +0 -1
  939. package/dist/chunk-NE6QGHFT.mjs +0 -240
  940. package/dist/chunk-NE6QGHFT.mjs.map +0 -1
  941. package/dist/chunk-NH2P27MA.js +0 -27
  942. package/dist/chunk-NH2P27MA.js.map +0 -1
  943. package/dist/chunk-NN2YE5WT.js +0 -325
  944. package/dist/chunk-NNZDWY3L.mjs +0 -323
  945. package/dist/chunk-NSWO43XW.mjs +0 -39
  946. package/dist/chunk-NSWO43XW.mjs.map +0 -1
  947. package/dist/chunk-NYXENHD2.mjs +0 -96
  948. package/dist/chunk-NYXENHD2.mjs.map +0 -1
  949. package/dist/chunk-O5GHP7UO.js +0 -142
  950. package/dist/chunk-O5GHP7UO.js.map +0 -1
  951. package/dist/chunk-OBKS3CPP.mjs +0 -50
  952. package/dist/chunk-OBKS3CPP.mjs.map +0 -1
  953. package/dist/chunk-OFBEBMXN.mjs +0 -8014
  954. package/dist/chunk-OFBEBMXN.mjs.map +0 -1
  955. package/dist/chunk-OGNX6JT4.js +0 -222
  956. package/dist/chunk-OGNX6JT4.js.map +0 -1
  957. package/dist/chunk-OIPG3EGM.js +0 -771
  958. package/dist/chunk-OIPG3EGM.js.map +0 -1
  959. package/dist/chunk-OSU4QA5M.js +0 -260
  960. package/dist/chunk-OSU4QA5M.js.map +0 -1
  961. package/dist/chunk-OY3PDIB3.js +0 -106
  962. package/dist/chunk-OY3PDIB3.js.map +0 -1
  963. package/dist/chunk-P4Y75QSU.js +0 -19
  964. package/dist/chunk-P4Y75QSU.js.map +0 -1
  965. package/dist/chunk-PENNTSJE.mjs +0 -99
  966. package/dist/chunk-PENNTSJE.mjs.map +0 -1
  967. package/dist/chunk-PFDRQJKJ.js +0 -1079
  968. package/dist/chunk-PFDRQJKJ.js.map +0 -1
  969. package/dist/chunk-PGYOBEPL.mjs +0 -150
  970. package/dist/chunk-PGYOBEPL.mjs.map +0 -1
  971. package/dist/chunk-PIPGH7GA.js +0 -158
  972. package/dist/chunk-PIPGH7GA.js.map +0 -1
  973. package/dist/chunk-PRAHDLKT.js +0 -67
  974. package/dist/chunk-PRAHDLKT.js.map +0 -1
  975. package/dist/chunk-PURI56RE.js +0 -8
  976. package/dist/chunk-PURI56RE.js.map +0 -1
  977. package/dist/chunk-QAQTDHHT.mjs +0 -1102
  978. package/dist/chunk-QAQTDHHT.mjs.map +0 -1
  979. package/dist/chunk-QCS7NWMA.js +0 -161
  980. package/dist/chunk-QCS7NWMA.js.map +0 -1
  981. package/dist/chunk-QRHVMTHF.mjs +0 -94
  982. package/dist/chunk-QRHVMTHF.mjs.map +0 -1
  983. package/dist/chunk-QZF5NTXQ.mjs +0 -28
  984. package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
  985. package/dist/chunk-R5F2JQVX.mjs +0 -41
  986. package/dist/chunk-R5F2JQVX.mjs.map +0 -1
  987. package/dist/chunk-RC4WWQXR.js +0 -47
  988. package/dist/chunk-RC4WWQXR.js.map +0 -1
  989. package/dist/chunk-RCB6HEHM.mjs +0 -349
  990. package/dist/chunk-RCB6HEHM.mjs.map +0 -1
  991. package/dist/chunk-RI6DFQCA.js +0 -539
  992. package/dist/chunk-RI6DFQCA.js.map +0 -1
  993. package/dist/chunk-RLUNEEGM.js +0 -336
  994. package/dist/chunk-RLUNEEGM.js.map +0 -1
  995. package/dist/chunk-RMDH2HMW.js +0 -108
  996. package/dist/chunk-RMDH2HMW.js.map +0 -1
  997. package/dist/chunk-RQROZLH3.js +0 -1153
  998. package/dist/chunk-RQROZLH3.js.map +0 -1
  999. package/dist/chunk-SFMNUVDN.mjs +0 -49
  1000. package/dist/chunk-SFMNUVDN.mjs.map +0 -1
  1001. package/dist/chunk-SG7CWD2R.js +0 -138
  1002. package/dist/chunk-SG7CWD2R.js.map +0 -1
  1003. package/dist/chunk-SHLWA6JY.mjs +0 -26
  1004. package/dist/chunk-SHLWA6JY.mjs.map +0 -1
  1005. package/dist/chunk-SNAQBZPT.js +0 -68
  1006. package/dist/chunk-SNAQBZPT.js.map +0 -1
  1007. package/dist/chunk-SUGBIEYQ.js +0 -195
  1008. package/dist/chunk-SUGBIEYQ.js.map +0 -1
  1009. package/dist/chunk-SVCKJ5KH.mjs +0 -193
  1010. package/dist/chunk-SVCKJ5KH.mjs.map +0 -1
  1011. package/dist/chunk-SWIKKSKL.js +0 -19
  1012. package/dist/chunk-SWIKKSKL.js.map +0 -1
  1013. package/dist/chunk-TBXWJJGT.js +0 -468
  1014. package/dist/chunk-TBXWJJGT.js.map +0 -1
  1015. package/dist/chunk-THO4NS6Z.mjs +0 -1416
  1016. package/dist/chunk-THO4NS6Z.mjs.map +0 -1
  1017. package/dist/chunk-TMVKRQGJ.mjs +0 -64
  1018. package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
  1019. package/dist/chunk-TPEPAHU5.mjs +0 -525
  1020. package/dist/chunk-TPEPAHU5.mjs.map +0 -1
  1021. package/dist/chunk-TST2IKYO.js +0 -264
  1022. package/dist/chunk-TST2IKYO.js.map +0 -1
  1023. package/dist/chunk-TULCHQX2.js +0 -29
  1024. package/dist/chunk-TULCHQX2.js.map +0 -1
  1025. package/dist/chunk-U577ITSA.js +0 -23
  1026. package/dist/chunk-U577ITSA.js.map +0 -1
  1027. package/dist/chunk-UCMMIGC6.mjs +0 -156
  1028. package/dist/chunk-UCMMIGC6.mjs.map +0 -1
  1029. package/dist/chunk-UCQDE5UH.mjs +0 -102
  1030. package/dist/chunk-UCQDE5UH.mjs.map +0 -1
  1031. package/dist/chunk-UHYRVALN.mjs +0 -98
  1032. package/dist/chunk-UHYRVALN.mjs.map +0 -1
  1033. package/dist/chunk-UO6KTHBQ.mjs +0 -125
  1034. package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
  1035. package/dist/chunk-UZKXOZHR.js +0 -23
  1036. package/dist/chunk-UZKXOZHR.js.map +0 -1
  1037. package/dist/chunk-VA2O5OSV.mjs +0 -21
  1038. package/dist/chunk-VA2O5OSV.mjs.map +0 -1
  1039. package/dist/chunk-VIGRGMWR.mjs +0 -229
  1040. package/dist/chunk-VIGRGMWR.mjs.map +0 -1
  1041. package/dist/chunk-VJMPIRSD.js +0 -31
  1042. package/dist/chunk-VJMPIRSD.js.map +0 -1
  1043. package/dist/chunk-VJTKIKZY.mjs +0 -782
  1044. package/dist/chunk-VJTKIKZY.mjs.map +0 -1
  1045. package/dist/chunk-VQL7XDIY.mjs +0 -43
  1046. package/dist/chunk-VQL7XDIY.mjs.map +0 -1
  1047. package/dist/chunk-VS67QHNX.mjs +0 -34
  1048. package/dist/chunk-VS67QHNX.mjs.map +0 -1
  1049. package/dist/chunk-VUAGR6VL.js +0 -483
  1050. package/dist/chunk-VUAGR6VL.js.map +0 -1
  1051. package/dist/chunk-WRRVYPMY.mjs +0 -535
  1052. package/dist/chunk-WRRVYPMY.mjs.map +0 -1
  1053. package/dist/chunk-WS7MH3GD.js +0 -40
  1054. package/dist/chunk-WS7MH3GD.js.map +0 -1
  1055. package/dist/chunk-WSPGXSBU.mjs +0 -202
  1056. package/dist/chunk-WSPGXSBU.mjs.map +0 -1
  1057. package/dist/chunk-XEOIGCUE.mjs +0 -480
  1058. package/dist/chunk-XEOIGCUE.mjs.map +0 -1
  1059. package/dist/chunk-Y2CP5J6Q.js +0 -116
  1060. package/dist/chunk-Y2CP5J6Q.js.map +0 -1
  1061. package/dist/chunk-YBKALLBH.js +0 -46
  1062. package/dist/chunk-YBKALLBH.js.map +0 -1
  1063. package/dist/chunk-YMZNEDFP.js +0 -39
  1064. package/dist/chunk-YMZNEDFP.js.map +0 -1
  1065. package/dist/chunk-YPGUV6BT.mjs +0 -30
  1066. package/dist/chunk-YPGUV6BT.mjs.map +0 -1
  1067. package/dist/chunk-YU7QZ3PP.mjs +0 -45
  1068. package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
  1069. package/dist/chunk-YVJASVVK.js +0 -97
  1070. package/dist/chunk-YVJASVVK.js.map +0 -1
  1071. package/dist/chunk-YZJ22HUQ.js +0 -29
  1072. package/dist/chunk-YZJ22HUQ.js.map +0 -1
  1073. package/dist/chunk-Z2URIOKG.mjs +0 -36
  1074. package/dist/chunk-Z2URIOKG.mjs.map +0 -1
  1075. package/dist/chunk-ZN4HBK5C.mjs +0 -17
  1076. package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
  1077. package/dist/chunk-ZVBLXXNJ.mjs +0 -53
  1078. package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
  1079. package/dist/chunk-ZXC56JS3.js +0 -8071
  1080. package/dist/chunk-ZXC56JS3.js.map +0 -1
  1081. package/dist/chunk-ZZQAGCSI.mjs +0 -43
  1082. package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
  1083. package/dist/cli/agent/checks.d.ts +0 -96
  1084. package/dist/cli/agent/checks.d.ts.map +0 -1
  1085. package/dist/cli/agent/context.d.ts +0 -50
  1086. package/dist/cli/agent/context.d.ts.map +0 -1
  1087. package/dist/cli/agent/envelope.d.ts +0 -98
  1088. package/dist/cli/agent/envelope.d.ts.map +0 -1
  1089. package/dist/cli/agent/errors.d.ts +0 -36
  1090. package/dist/cli/agent/errors.d.ts.map +0 -1
  1091. package/dist/cli/agent/output.d.ts +0 -41
  1092. package/dist/cli/agent/output.d.ts.map +0 -1
  1093. package/dist/cli/agent/ssr-bailout.d.ts +0 -27
  1094. package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
  1095. package/dist/cli/api/sonor.d.ts +0 -39
  1096. package/dist/cli/api/sonor.d.ts.map +0 -1
  1097. package/dist/cli/codemod/diff.d.ts +0 -14
  1098. package/dist/cli/codemod/diff.d.ts.map +0 -1
  1099. package/dist/cli/codemod/engine.d.ts +0 -26
  1100. package/dist/cli/codemod/engine.d.ts.map +0 -1
  1101. package/dist/cli/codemod/transforms.d.ts +0 -31
  1102. package/dist/cli/codemod/transforms.d.ts.map +0 -1
  1103. package/dist/cli/commands/api-routes.d.ts +0 -13
  1104. package/dist/cli/commands/api-routes.d.ts.map +0 -1
  1105. package/dist/cli/commands/codemod.d.ts +0 -21
  1106. package/dist/cli/commands/codemod.d.ts.map +0 -1
  1107. package/dist/cli/commands/doctor.d.ts +0 -27
  1108. package/dist/cli/commands/doctor.d.ts.map +0 -1
  1109. package/dist/cli/commands/faqs.d.ts +0 -16
  1110. package/dist/cli/commands/faqs.d.ts.map +0 -1
  1111. package/dist/cli/commands/geo.d.ts +0 -18
  1112. package/dist/cli/commands/geo.d.ts.map +0 -1
  1113. package/dist/cli/commands/images.d.ts +0 -85
  1114. package/dist/cli/commands/images.d.ts.map +0 -1
  1115. package/dist/cli/commands/init.d.ts +0 -21
  1116. package/dist/cli/commands/init.d.ts.map +0 -1
  1117. package/dist/cli/commands/install.d.ts +0 -15
  1118. package/dist/cli/commands/install.d.ts.map +0 -1
  1119. package/dist/cli/commands/locations.d.ts +0 -55
  1120. package/dist/cli/commands/locations.d.ts.map +0 -1
  1121. package/dist/cli/commands/manifest.d.ts +0 -17
  1122. package/dist/cli/commands/manifest.d.ts.map +0 -1
  1123. package/dist/cli/commands/migrate.d.ts +0 -19
  1124. package/dist/cli/commands/migrate.d.ts.map +0 -1
  1125. package/dist/cli/commands/next16.d.ts +0 -10
  1126. package/dist/cli/commands/next16.d.ts.map +0 -1
  1127. package/dist/cli/commands/og.d.ts +0 -117
  1128. package/dist/cli/commands/og.d.ts.map +0 -1
  1129. package/dist/cli/commands/scaffold.d.ts +0 -22
  1130. package/dist/cli/commands/scaffold.d.ts.map +0 -1
  1131. package/dist/cli/commands/scan.d.ts +0 -18
  1132. package/dist/cli/commands/scan.d.ts.map +0 -1
  1133. package/dist/cli/commands/setup.d.ts +0 -35
  1134. package/dist/cli/commands/setup.d.ts.map +0 -1
  1135. package/dist/cli/commands/sync.d.ts +0 -22
  1136. package/dist/cli/commands/sync.d.ts.map +0 -1
  1137. package/dist/cli/commands/upgrade.d.ts +0 -15
  1138. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  1139. package/dist/cli/commands/verify.d.ts +0 -22
  1140. package/dist/cli/commands/verify.d.ts.map +0 -1
  1141. package/dist/cli/config.d.ts +0 -31
  1142. package/dist/cli/config.d.ts.map +0 -1
  1143. package/dist/cli/generators/index.d.ts +0 -60
  1144. package/dist/cli/generators/index.d.ts.map +0 -1
  1145. package/dist/cli/index.d.ts +0 -15
  1146. package/dist/cli/index.d.ts.map +0 -1
  1147. package/dist/cli/index.js +0 -32904
  1148. package/dist/cli/index.mjs +0 -32872
  1149. package/dist/cli/migrator/index.d.ts +0 -92
  1150. package/dist/cli/migrator/index.d.ts.map +0 -1
  1151. package/dist/cli/scanner/index.d.ts +0 -129
  1152. package/dist/cli/scanner/index.d.ts.map +0 -1
  1153. package/dist/cli/state.d.ts +0 -7
  1154. package/dist/cli/state.d.ts.map +0 -1
  1155. package/dist/client/SiteKitCredential.d.ts.map +0 -1
  1156. package/dist/client/index.d.ts.map +0 -1
  1157. package/dist/client/index.js.map +0 -1
  1158. package/dist/client/index.mjs +0 -27
  1159. package/dist/client/index.mjs.map +0 -1
  1160. package/dist/cms/CmsPage.d.ts.map +0 -1
  1161. package/dist/cms/CmsPreview.d.ts.map +0 -1
  1162. package/dist/cms/CmsSection.d.ts.map +0 -1
  1163. package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
  1164. package/dist/cms/index.d.ts.map +0 -1
  1165. package/dist/cms/index.js.map +0 -1
  1166. package/dist/cms/index.mjs +0 -389
  1167. package/dist/cms/index.mjs.map +0 -1
  1168. package/dist/cms/sanity-image.d.ts.map +0 -1
  1169. package/dist/cms/sections/CtaSection.d.ts.map +0 -1
  1170. package/dist/cms/sections/CustomSection.d.ts.map +0 -1
  1171. package/dist/cms/sections/FaqSection.d.ts.map +0 -1
  1172. package/dist/cms/sections/FormSection.d.ts.map +0 -1
  1173. package/dist/cms/sections/GallerySection.d.ts.map +0 -1
  1174. package/dist/cms/sections/HeroSection.d.ts.map +0 -1
  1175. package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
  1176. package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
  1177. package/dist/cms/sections/index.d.ts.map +0 -1
  1178. package/dist/cms/server-api.d.ts.map +0 -1
  1179. package/dist/cms/server.d.ts.map +0 -1
  1180. package/dist/cms/server.js.map +0 -1
  1181. package/dist/cms/server.mjs +0 -5
  1182. package/dist/cms/server.mjs.map +0 -1
  1183. package/dist/cms/types.d.ts.map +0 -1
  1184. package/dist/commerce/CalendarView.d.ts.map +0 -1
  1185. package/dist/commerce/CheckoutForm.d.ts.map +0 -1
  1186. package/dist/commerce/EventCalendar.d.ts.map +0 -1
  1187. package/dist/commerce/EventCheckout.d.ts.map +0 -1
  1188. package/dist/commerce/EventEmbed.d.ts.map +0 -1
  1189. package/dist/commerce/EventModal.d.ts.map +0 -1
  1190. package/dist/commerce/EventTile.d.ts.map +0 -1
  1191. package/dist/commerce/EventsAgenda.d.ts.map +0 -1
  1192. package/dist/commerce/EventsWidget.d.ts.map +0 -1
  1193. package/dist/commerce/OfferingCard.d.ts.map +0 -1
  1194. package/dist/commerce/OfferingList.d.ts.map +0 -1
  1195. package/dist/commerce/ProductDetail.d.ts.map +0 -1
  1196. package/dist/commerce/ProductEmbed.d.ts.map +0 -1
  1197. package/dist/commerce/ProductGrid.d.ts.map +0 -1
  1198. package/dist/commerce/ProductPage.d.ts.map +0 -1
  1199. package/dist/commerce/RegistrationForm.d.ts.map +0 -1
  1200. package/dist/commerce/SizeChart.d.ts.map +0 -1
  1201. package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
  1202. package/dist/commerce/api.d.ts.map +0 -1
  1203. package/dist/commerce/events-extras.d.ts.map +0 -1
  1204. package/dist/commerce/index.d.ts.map +0 -1
  1205. package/dist/commerce/index.js.map +0 -1
  1206. package/dist/commerce/index.mjs +0 -16
  1207. package/dist/commerce/index.mjs.map +0 -1
  1208. package/dist/commerce/server.d.ts.map +0 -1
  1209. package/dist/commerce/server.js.map +0 -1
  1210. package/dist/commerce/server.mjs +0 -237
  1211. package/dist/commerce/server.mjs.map +0 -1
  1212. package/dist/commerce/types.d.ts.map +0 -1
  1213. package/dist/commerce/useEventModal.d.ts.map +0 -1
  1214. package/dist/commerce/utils.d.ts.map +0 -1
  1215. package/dist/config/index.d.ts.map +0 -1
  1216. package/dist/config/index.js.map +0 -1
  1217. package/dist/config/index.mjs +0 -116
  1218. package/dist/config/index.mjs.map +0 -1
  1219. package/dist/cta-bar/CtaBar.d.ts.map +0 -1
  1220. package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
  1221. package/dist/cta-bar/client.d.ts.map +0 -1
  1222. package/dist/cta-bar/client.js.map +0 -1
  1223. package/dist/cta-bar/client.mjs +0 -6
  1224. package/dist/cta-bar/client.mjs.map +0 -1
  1225. package/dist/cta-bar/index.d.ts.map +0 -1
  1226. package/dist/cta-bar/index.js.map +0 -1
  1227. package/dist/cta-bar/index.mjs +0 -221
  1228. package/dist/cta-bar/index.mjs.map +0 -1
  1229. package/dist/cta-bar/styles.d.ts.map +0 -1
  1230. package/dist/discover-LPN55L5B.js +0 -21
  1231. package/dist/discover-LPN55L5B.js.map +0 -1
  1232. package/dist/discover-QGA6QFSR.mjs +0 -4
  1233. package/dist/discover-QGA6QFSR.mjs.map +0 -1
  1234. package/dist/engage/ChatWidget.d.ts.map +0 -1
  1235. package/dist/engage/DesignRenderer.d.ts.map +0 -1
  1236. package/dist/engage/EchoUiActions.d.ts.map +0 -1
  1237. package/dist/engage/EngageWidget.d.ts.map +0 -1
  1238. package/dist/engage/brand-color.d.ts.map +0 -1
  1239. package/dist/engage/chat-messages.d.ts.map +0 -1
  1240. package/dist/engage/echo-config.d.ts.map +0 -1
  1241. package/dist/engage/element-rules.d.ts.map +0 -1
  1242. package/dist/engage/index.d.ts.map +0 -1
  1243. package/dist/engage/index.js.map +0 -1
  1244. package/dist/engage/index.mjs +0 -51
  1245. package/dist/engage/index.mjs.map +0 -1
  1246. package/dist/engage/launcher-placement.d.ts.map +0 -1
  1247. package/dist/engage/socket-loader.d.ts.map +0 -1
  1248. package/dist/engage/types.d.ts.map +0 -1
  1249. package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
  1250. package/dist/fleet/contract.d.ts.map +0 -1
  1251. package/dist/fleet/contract.js.map +0 -1
  1252. package/dist/fleet/contract.mjs +0 -4
  1253. package/dist/fleet/contract.mjs.map +0 -1
  1254. package/dist/fleet/heartbeat.d.ts.map +0 -1
  1255. package/dist/fleet/index.d.ts.map +0 -1
  1256. package/dist/fleet/index.js.map +0 -1
  1257. package/dist/fleet/index.mjs +0 -12
  1258. package/dist/fleet/index.mjs.map +0 -1
  1259. package/dist/forms/DatePicker.d.ts.map +0 -1
  1260. package/dist/forms/FileField.d.ts.map +0 -1
  1261. package/dist/forms/FormCelebration.d.ts.map +0 -1
  1262. package/dist/forms/FormClient.d.ts.map +0 -1
  1263. package/dist/forms/FormEnhancer.d.ts.map +0 -1
  1264. package/dist/forms/FormField.d.ts.map +0 -1
  1265. package/dist/forms/FormSpotlight.d.ts.map +0 -1
  1266. package/dist/forms/FormStage.d.ts.map +0 -1
  1267. package/dist/forms/HoneypotField.d.ts.map +0 -1
  1268. package/dist/forms/ManagedForm.d.ts.map +0 -1
  1269. package/dist/forms/ServerForm.d.ts.map +0 -1
  1270. package/dist/forms/StaticForm.d.ts.map +0 -1
  1271. package/dist/forms/contract.d.ts.map +0 -1
  1272. package/dist/forms/contract.js.map +0 -1
  1273. package/dist/forms/contract.mjs +0 -4
  1274. package/dist/forms/contract.mjs.map +0 -1
  1275. package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
  1276. package/dist/forms/delight.d.ts.map +0 -1
  1277. package/dist/forms/experience-chrome.d.ts.map +0 -1
  1278. package/dist/forms/experience-plan.d.ts.map +0 -1
  1279. package/dist/forms/field-controls.d.ts.map +0 -1
  1280. package/dist/forms/field-interactions.d.ts.map +0 -1
  1281. package/dist/forms/field-rules.d.ts.map +0 -1
  1282. package/dist/forms/form-values.d.ts.map +0 -1
  1283. package/dist/forms/formsApi.d.ts.map +0 -1
  1284. package/dist/forms/ga4-identity.d.ts.map +0 -1
  1285. package/dist/forms/index.d.ts.map +0 -1
  1286. package/dist/forms/index.js.map +0 -1
  1287. package/dist/forms/index.mjs +0 -341
  1288. package/dist/forms/index.mjs.map +0 -1
  1289. package/dist/forms/normalize-config.d.ts.map +0 -1
  1290. package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
  1291. package/dist/forms/recaptcha.d.ts.map +0 -1
  1292. package/dist/forms/server.d.ts.map +0 -1
  1293. package/dist/forms/server.js.map +0 -1
  1294. package/dist/forms/server.mjs +0 -61
  1295. package/dist/forms/server.mjs.map +0 -1
  1296. package/dist/forms/static.d.ts.map +0 -1
  1297. package/dist/forms/static.js.map +0 -1
  1298. package/dist/forms/static.mjs +0 -8
  1299. package/dist/forms/static.mjs.map +0 -1
  1300. package/dist/forms/submitForm.d.ts.map +0 -1
  1301. package/dist/forms/tracking-session.d.ts.map +0 -1
  1302. package/dist/forms/types.d.ts.map +0 -1
  1303. package/dist/forms/useForm.d.ts.map +0 -1
  1304. package/dist/forms/useFormTracking.d.ts.map +0 -1
  1305. package/dist/images/ManagedFavicon.d.ts.map +0 -1
  1306. package/dist/images/ManagedImage.d.ts.map +0 -1
  1307. package/dist/images/api.d.ts.map +0 -1
  1308. package/dist/images/index.d.ts.map +0 -1
  1309. package/dist/images/index.js.map +0 -1
  1310. package/dist/images/index.mjs +0 -8
  1311. package/dist/images/index.mjs.map +0 -1
  1312. package/dist/images/server.d.ts.map +0 -1
  1313. package/dist/images/server.js.map +0 -1
  1314. package/dist/images/server.mjs +0 -4
  1315. package/dist/images/server.mjs.map +0 -1
  1316. package/dist/index.d.ts.map +0 -1
  1317. package/dist/index.js.map +0 -1
  1318. package/dist/index.mjs +0 -173
  1319. package/dist/index.mjs.map +0 -1
  1320. package/dist/landing/LandingPage.d.ts.map +0 -1
  1321. package/dist/landing/contract.d.ts.map +0 -1
  1322. package/dist/landing/index.d.ts.map +0 -1
  1323. package/dist/landing/index.js.map +0 -1
  1324. package/dist/landing/index.mjs +0 -5
  1325. package/dist/landing/index.mjs.map +0 -1
  1326. package/dist/landing/metadata.d.ts.map +0 -1
  1327. package/dist/landing/server.d.ts.map +0 -1
  1328. package/dist/landing/server.js.map +0 -1
  1329. package/dist/landing/server.mjs +0 -4
  1330. package/dist/landing/server.mjs.map +0 -1
  1331. package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
  1332. package/dist/layout/SiteKitLayout.d.ts.map +0 -1
  1333. package/dist/layout/SpeculationRules.d.ts.map +0 -1
  1334. package/dist/layout/client.d.ts.map +0 -1
  1335. package/dist/layout/client.js.map +0 -1
  1336. package/dist/layout/client.mjs +0 -19
  1337. package/dist/layout/client.mjs.map +0 -1
  1338. package/dist/layout/index.d.ts.map +0 -1
  1339. package/dist/layout/index.js.map +0 -1
  1340. package/dist/layout/index.mjs +0 -106
  1341. package/dist/layout/index.mjs.map +0 -1
  1342. package/dist/layout/types.d.ts.map +0 -1
  1343. package/dist/lib-6HOOMENJ.js +0 -28
  1344. package/dist/lib-BGAWCSUH.js +0 -31
  1345. package/dist/lib-R7IQ4ZHE.mjs +0 -3
  1346. package/dist/lib-RSDMEKDQ.mjs +0 -4
  1347. package/dist/llms/AEOComponents.d.ts.map +0 -1
  1348. package/dist/llms/SpeakableSchema.d.ts.map +0 -1
  1349. package/dist/llms/aiRobots.d.ts.map +0 -1
  1350. package/dist/llms/api.d.ts.map +0 -1
  1351. package/dist/llms/client.d.ts.map +0 -1
  1352. package/dist/llms/client.js.map +0 -1
  1353. package/dist/llms/client.mjs +0 -5
  1354. package/dist/llms/client.mjs.map +0 -1
  1355. package/dist/llms/contract.d.ts.map +0 -1
  1356. package/dist/llms/contract.js.map +0 -1
  1357. package/dist/llms/contract.mjs +0 -4
  1358. package/dist/llms/contract.mjs.map +0 -1
  1359. package/dist/llms/discovery-headers.d.ts.map +0 -1
  1360. package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
  1361. package/dist/llms/handlers.d.ts.map +0 -1
  1362. package/dist/llms/humanize-industry.d.ts.map +0 -1
  1363. package/dist/llms/index.d.ts.map +0 -1
  1364. package/dist/llms/index.js.map +0 -1
  1365. package/dist/llms/index.mjs +0 -286
  1366. package/dist/llms/index.mjs.map +0 -1
  1367. package/dist/llms/links.d.ts.map +0 -1
  1368. package/dist/llms/revalidate.d.ts.map +0 -1
  1369. package/dist/llms/seo-revalidate.d.ts.map +0 -1
  1370. package/dist/llms/sourcedFacts.d.ts.map +0 -1
  1371. package/dist/llms/types.d.ts.map +0 -1
  1372. package/dist/llms/wiring.d.ts +0 -103
  1373. package/dist/llms/wiring.d.ts.map +0 -1
  1374. package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
  1375. package/dist/manifest/index.d.ts.map +0 -1
  1376. package/dist/manifest/index.js.map +0 -1
  1377. package/dist/manifest/index.mjs +0 -83
  1378. package/dist/manifest/index.mjs.map +0 -1
  1379. package/dist/maps/GoogleMap.d.ts.map +0 -1
  1380. package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
  1381. package/dist/maps/api.d.ts.map +0 -1
  1382. package/dist/maps/index.d.ts.map +0 -1
  1383. package/dist/maps/index.js.map +0 -1
  1384. package/dist/maps/index.mjs +0 -361
  1385. package/dist/maps/index.mjs.map +0 -1
  1386. package/dist/maps/types.d.ts.map +0 -1
  1387. package/dist/mcp/WebMcpTools.d.ts.map +0 -1
  1388. package/dist/mcp/client.d.ts.map +0 -1
  1389. package/dist/mcp/client.js.map +0 -1
  1390. package/dist/mcp/client.mjs +0 -129
  1391. package/dist/mcp/client.mjs.map +0 -1
  1392. package/dist/mcp/declarative.d.ts.map +0 -1
  1393. package/dist/mcp/handlers.d.ts.map +0 -1
  1394. package/dist/mcp/index.d.ts.map +0 -1
  1395. package/dist/mcp/index.js.map +0 -1
  1396. package/dist/mcp/index.mjs +0 -509
  1397. package/dist/mcp/index.mjs.map +0 -1
  1398. package/dist/mcp/protocol.d.ts.map +0 -1
  1399. package/dist/mcp/serverCard.d.ts.map +0 -1
  1400. package/dist/mcp/transport.d.ts.map +0 -1
  1401. package/dist/mcp/transport.js.map +0 -1
  1402. package/dist/mcp/transport.mjs +0 -123
  1403. package/dist/mcp/transport.mjs.map +0 -1
  1404. package/dist/mcp/types.d.ts.map +0 -1
  1405. package/dist/motion/CountUp.d.ts.map +0 -1
  1406. package/dist/motion/Parallax.d.ts.map +0 -1
  1407. package/dist/motion/Reveal.d.ts.map +0 -1
  1408. package/dist/motion/ScrollScene.d.ts.map +0 -1
  1409. package/dist/motion/engine.d.ts.map +0 -1
  1410. package/dist/motion/failsafe.d.ts.map +0 -1
  1411. package/dist/motion/gsap.d.ts.map +0 -1
  1412. package/dist/motion/gsap.js.map +0 -1
  1413. package/dist/motion/gsap.mjs +0 -220
  1414. package/dist/motion/gsap.mjs.map +0 -1
  1415. package/dist/motion/index.d.ts.map +0 -1
  1416. package/dist/motion/index.js.map +0 -1
  1417. package/dist/motion/index.mjs +0 -209
  1418. package/dist/motion/index.mjs.map +0 -1
  1419. package/dist/motion/three.d.ts.map +0 -1
  1420. package/dist/motion/three.js.map +0 -1
  1421. package/dist/motion/three.mjs +0 -145
  1422. package/dist/motion/three.mjs.map +0 -1
  1423. package/dist/og/config.d.ts.map +0 -1
  1424. package/dist/og/contrast.d.ts.map +0 -1
  1425. package/dist/og/index.d.ts.map +0 -1
  1426. package/dist/og/index.js.map +0 -1
  1427. package/dist/og/index.mjs +0 -6
  1428. package/dist/og/index.mjs.map +0 -1
  1429. package/dist/og/pages.d.ts.map +0 -1
  1430. package/dist/og/route-copy.d.ts +0 -34
  1431. package/dist/og/route-copy.d.ts.map +0 -1
  1432. package/dist/og/route-fit.d.ts.map +0 -1
  1433. package/dist/og/route.d.ts.map +0 -1
  1434. package/dist/og/route.js.map +0 -1
  1435. package/dist/og/route.mjs +0 -239
  1436. package/dist/og/route.mjs.map +0 -1
  1437. package/dist/og/template.d.ts.map +0 -1
  1438. package/dist/og/wiring.d.ts +0 -100
  1439. package/dist/og/wiring.d.ts.map +0 -1
  1440. package/dist/portfolio/contract.d.ts.map +0 -1
  1441. package/dist/portfolio/contract.js.map +0 -1
  1442. package/dist/portfolio/contract.mjs +0 -115
  1443. package/dist/portfolio/contract.mjs.map +0 -1
  1444. package/dist/proxy/index.d.ts.map +0 -1
  1445. package/dist/proxy/index.js.map +0 -1
  1446. package/dist/proxy/index.mjs +0 -170
  1447. package/dist/proxy/index.mjs.map +0 -1
  1448. package/dist/proxy/securityHeaders.d.ts.map +0 -1
  1449. package/dist/proxy/segment.d.ts.map +0 -1
  1450. package/dist/redirects/index.d.ts.map +0 -1
  1451. package/dist/redirects/index.js.map +0 -1
  1452. package/dist/redirects/index.mjs +0 -8
  1453. package/dist/redirects/index.mjs.map +0 -1
  1454. package/dist/redirects/not-found.d.ts +0 -31
  1455. package/dist/redirects/not-found.d.ts.map +0 -1
  1456. package/dist/redirects/not-found.js +0 -47
  1457. package/dist/redirects/not-found.js.map +0 -1
  1458. package/dist/redirects/not-found.mjs +0 -45
  1459. package/dist/redirects/not-found.mjs.map +0 -1
  1460. package/dist/reputation/TestimonialSection.d.ts.map +0 -1
  1461. package/dist/reputation/api.d.ts.map +0 -1
  1462. package/dist/reputation/index.d.ts.map +0 -1
  1463. package/dist/reputation/index.js.map +0 -1
  1464. package/dist/reputation/index.mjs +0 -5
  1465. package/dist/reputation/index.mjs.map +0 -1
  1466. package/dist/reputation/server.d.ts.map +0 -1
  1467. package/dist/reputation/server.js.map +0 -1
  1468. package/dist/reputation/server.mjs +0 -4
  1469. package/dist/reputation/server.mjs.map +0 -1
  1470. package/dist/reputation/types.d.ts.map +0 -1
  1471. package/dist/robots/index.d.ts.map +0 -1
  1472. package/dist/robots/index.js.map +0 -1
  1473. package/dist/robots/index.mjs +0 -53
  1474. package/dist/robots/index.mjs.map +0 -1
  1475. package/dist/robots/indexnow.d.ts.map +0 -1
  1476. package/dist/robots/indexnow.js.map +0 -1
  1477. package/dist/robots/indexnow.mjs +0 -34
  1478. package/dist/robots/indexnow.mjs.map +0 -1
  1479. package/dist/robots/next-internals.d.ts.map +0 -1
  1480. package/dist/search/contract.d.ts +0 -62
  1481. package/dist/search/contract.d.ts.map +0 -1
  1482. package/dist/search/contract.js +0 -17
  1483. package/dist/search/contract.js.map +0 -1
  1484. package/dist/search/contract.mjs +0 -4
  1485. package/dist/search/contract.mjs.map +0 -1
  1486. package/dist/search/index.d.ts +0 -52
  1487. package/dist/search/index.d.ts.map +0 -1
  1488. package/dist/search/index.js +0 -105
  1489. package/dist/search/index.js.map +0 -1
  1490. package/dist/search/index.mjs +0 -99
  1491. package/dist/search/index.mjs.map +0 -1
  1492. package/dist/seo/LocationPageContent.d.ts +0 -64
  1493. package/dist/seo/LocationPageContent.d.ts.map +0 -1
  1494. package/dist/seo/ManagedContent.d.ts.map +0 -1
  1495. package/dist/seo/ManagedFAQ.d.ts.map +0 -1
  1496. package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
  1497. package/dist/seo/ManagedSchema.d.ts.map +0 -1
  1498. package/dist/seo/ManagedScripts.d.ts.map +0 -1
  1499. package/dist/seo/api.d.ts.map +0 -1
  1500. package/dist/seo/client.d.ts.map +0 -1
  1501. package/dist/seo/client.js.map +0 -1
  1502. package/dist/seo/client.mjs +0 -11
  1503. package/dist/seo/client.mjs.map +0 -1
  1504. package/dist/seo/getManagedMetadata.d.ts.map +0 -1
  1505. package/dist/seo/groundingSchema.d.ts.map +0 -1
  1506. package/dist/seo/index.d.ts.map +0 -1
  1507. package/dist/seo/index.js.map +0 -1
  1508. package/dist/seo/index.mjs +0 -702
  1509. package/dist/seo/index.mjs.map +0 -1
  1510. package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
  1511. package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
  1512. package/dist/seo/register-sitemap-cli.mjs +0 -528
  1513. package/dist/seo/register-sitemap-request.d.ts.map +0 -1
  1514. package/dist/seo/routing.d.ts.map +0 -1
  1515. package/dist/seo/safeJsonLd.d.ts.map +0 -1
  1516. package/dist/seo/schema-filter.d.ts.map +0 -1
  1517. package/dist/seo/server-api.d.ts.map +0 -1
  1518. package/dist/seo/server.d.ts.map +0 -1
  1519. package/dist/seo/server.js.map +0 -1
  1520. package/dist/seo/server.mjs +0 -11
  1521. package/dist/seo/server.mjs.map +0 -1
  1522. package/dist/seo/types.d.ts.map +0 -1
  1523. package/dist/seo/withManagedMetadata.d.ts.map +0 -1
  1524. package/dist/seo-meta/contract.d.ts.map +0 -1
  1525. package/dist/seo-meta/contract.js.map +0 -1
  1526. package/dist/seo-meta/contract.mjs +0 -4
  1527. package/dist/seo-meta/contract.mjs.map +0 -1
  1528. package/dist/seo-pages/contract.d.ts.map +0 -1
  1529. package/dist/seo-pages/contract.js.map +0 -1
  1530. package/dist/seo-pages/contract.mjs +0 -45
  1531. package/dist/seo-pages/contract.mjs.map +0 -1
  1532. package/dist/server/index.d.ts.map +0 -1
  1533. package/dist/server/index.js.map +0 -1
  1534. package/dist/server/index.mjs +0 -7
  1535. package/dist/server/index.mjs.map +0 -1
  1536. package/dist/server/mint-site-token.d.ts.map +0 -1
  1537. package/dist/server/server-fetch.d.ts.map +0 -1
  1538. package/dist/server-api-7F5P6CSH.mjs +0 -9
  1539. package/dist/server-api-7F5P6CSH.mjs.map +0 -1
  1540. package/dist/server-api-OC5JNK6R.js +0 -86
  1541. package/dist/server-api-OC5JNK6R.js.map +0 -1
  1542. package/dist/setup/index.d.ts +0 -12
  1543. package/dist/setup/index.d.ts.map +0 -1
  1544. package/dist/setup/index.js +0 -4
  1545. package/dist/setup/index.js.map +0 -1
  1546. package/dist/setup/index.mjs +0 -3
  1547. package/dist/setup/index.mjs.map +0 -1
  1548. package/dist/shared/build-entries.d.ts.map +0 -1
  1549. package/dist/shared/color.d.ts.map +0 -1
  1550. package/dist/shared/defer.d.ts.map +0 -1
  1551. package/dist/shared/fetchWithRetry.d.ts.map +0 -1
  1552. package/dist/shared/frame.d.ts.map +0 -1
  1553. package/dist/shared/fresh-fetch.d.ts.map +0 -1
  1554. package/dist/shared/glass.d.ts.map +0 -1
  1555. package/dist/shared/identity.d.ts.map +0 -1
  1556. package/dist/shared/next-files.d.ts.map +0 -1
  1557. package/dist/shared/page-leave.d.ts.map +0 -1
  1558. package/dist/shared/publishCredential.d.ts.map +0 -1
  1559. package/dist/shared/reporting-gate.d.ts.map +0 -1
  1560. package/dist/shared/request-guards.d.ts.map +0 -1
  1561. package/dist/shared/siteToken.d.ts.map +0 -1
  1562. package/dist/shared/sonorFetch.d.ts.map +0 -1
  1563. package/dist/shared/source-graph.d.ts.map +0 -1
  1564. package/dist/shared/uuid.d.ts.map +0 -1
  1565. package/dist/shared/version.d.ts.map +0 -1
  1566. package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
  1567. package/dist/signal/SignalBridge.d.ts.map +0 -1
  1568. package/dist/signal/SignalCore.d.ts.map +0 -1
  1569. package/dist/signal/SignalExperiment.d.ts.map +0 -1
  1570. package/dist/signal/index.d.ts.map +0 -1
  1571. package/dist/signal/index.js.map +0 -1
  1572. package/dist/signal/index.mjs +0 -6
  1573. package/dist/signal/index.mjs.map +0 -1
  1574. package/dist/signal/store.d.ts.map +0 -1
  1575. package/dist/signal/types.d.ts.map +0 -1
  1576. package/dist/site-config/index.d.ts.map +0 -1
  1577. package/dist/site-config/index.js.map +0 -1
  1578. package/dist/site-config/index.mjs +0 -4
  1579. package/dist/site-config/index.mjs.map +0 -1
  1580. package/dist/sitemap/discover.d.ts.map +0 -1
  1581. package/dist/sitemap/index.d.ts.map +0 -1
  1582. package/dist/sitemap/index.js.map +0 -1
  1583. package/dist/sitemap/index.mjs +0 -549
  1584. package/dist/sitemap/index.mjs.map +0 -1
  1585. package/dist/sitemap/shared.d.ts.map +0 -1
  1586. package/dist/sites/contract.d.ts.map +0 -1
  1587. package/dist/sites/contract.js.map +0 -1
  1588. package/dist/sites/contract.mjs +0 -5
  1589. package/dist/sites/contract.mjs.map +0 -1
  1590. package/dist/sites/normalize.d.ts.map +0 -1
  1591. package/dist/sites/resolve.d.ts.map +0 -1
  1592. package/dist/sites/site-param.d.ts.map +0 -1
  1593. package/dist/slots/ManagedSlot.d.ts.map +0 -1
  1594. package/dist/slots/contract.d.ts.map +0 -1
  1595. package/dist/slots/contract.js.map +0 -1
  1596. package/dist/slots/contract.mjs +0 -4
  1597. package/dist/slots/contract.mjs.map +0 -1
  1598. package/dist/slots/index.d.ts.map +0 -1
  1599. package/dist/slots/index.js.map +0 -1
  1600. package/dist/slots/index.mjs +0 -142
  1601. package/dist/slots/index.mjs.map +0 -1
  1602. package/dist/slots/revalidate.d.ts.map +0 -1
  1603. package/dist/slots/server-api.d.ts.map +0 -1
  1604. package/dist/socket-loader-2NYBMBFQ.js +0 -16
  1605. package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
  1606. package/dist/socket-loader-JA2DI2RT.mjs +0 -14
  1607. package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
  1608. package/dist/sync/AddToCalendar.d.ts.map +0 -1
  1609. package/dist/sync/BookingWidget.d.ts.map +0 -1
  1610. package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
  1611. package/dist/sync/api.d.ts.map +0 -1
  1612. package/dist/sync/booking-flow.d.ts.map +0 -1
  1613. package/dist/sync/index.d.ts.map +0 -1
  1614. package/dist/sync/index.js.map +0 -1
  1615. package/dist/sync/index.mjs +0 -7
  1616. package/dist/sync/index.mjs.map +0 -1
  1617. package/dist/sync/types.d.ts.map +0 -1
  1618. package/dist/types.d.ts.map +0 -1
  1619. package/dist/web-vitals.attribution-7LKLZ5GR.mjs +0 -524
  1620. package/dist/web-vitals.attribution-7LKLZ5GR.mjs.map +0 -1
  1621. package/dist/web-vitals.attribution-ONVYQNRB.js +0 -535
  1622. package/dist/web-vitals.attribution-ONVYQNRB.js.map +0 -1
  1623. package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
  1624. package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
  1625. package/scripts/postinstall.cjs +0 -67
@@ -1,326 +0,0 @@
1
- import { OG_HEIGHT, OG_WIDTH, TITLE_MAX_PX, barTextColor, TITLE_MIN_PX, OG_REPORT_ATTR } from './chunk-YU7QZ3PP.mjs';
2
- import { applyTrailingSlash, resolveTrailingSlash } from './chunk-C2CTLLIO.mjs';
3
-
4
- // src/og/template.ts
5
- function fitScript() {
6
- return `<script>
7
- (async function () {
8
- var report = { fits: true, titlePx: ${TITLE_MAX_PX}, issues: [] };
9
- function push(msg) { report.fits = false; report.issues.push(msg); }
10
- try {
11
- try { await document.fonts.ready; } catch (e) {}
12
- var h1 = document.querySelector('h1');
13
- var copy = document.querySelector('.copy');
14
- var wrap = document.querySelector('.wrap');
15
- var bar = document.querySelector('.bar');
16
-
17
- if (h1 && copy && wrap) {
18
- var cs = getComputedStyle(wrap);
19
- var avail = wrap.clientHeight - parseFloat(cs.paddingTop || '0') - parseFloat(cs.paddingBottom || '0');
20
-
21
- // Fit BOTH axes. Height alone is not enough: a single long word
22
- // ("WORKBENCHES") cannot wrap, so it keeps overflowing the column
23
- // sideways at a size that fits vertically. Shrinking for either
24
- // condition is what makes an arbitrary managed title safe to render.
25
- var tooTall = function () { return copy.scrollHeight > avail; };
26
- var tooWide = function () { return h1.scrollWidth > copy.clientWidth + 1; };
27
- var size = ${TITLE_MAX_PX};
28
- while (size > ${TITLE_MIN_PX} && (tooTall() || tooWide())) {
29
- size -= 2;
30
- h1.style.fontSize = size + 'px';
31
- }
32
- report.titlePx = size;
33
-
34
- if (tooTall()) {
35
- push('title/subtitle block overflows the card by ' + Math.ceil(copy.scrollHeight - avail) +
36
- 'px even at the ' + ${TITLE_MIN_PX} + 'px legibility floor - shorten content.title or content.subtitle');
37
- }
38
- if (tooWide()) {
39
- push('the longest title word still overflows the copy column by ' + Math.ceil(h1.scrollWidth - copy.clientWidth) +
40
- 'px at the ' + ${TITLE_MIN_PX} + 'px floor - shorten it or add a line break');
41
- }
42
- }
43
-
44
- // The bar is checked on BOTH axes. Width alone missed a real failure: a
45
- // long segment wrapped INSIDE its span, so scrollWidth never exceeded
46
- // clientWidth while the text grew past the bar's fixed height and spilled
47
- // over the subtitle. Segments are nowrap now, which turns that into
48
- // horizontal overflow the width check sees, and the height check is the
49
- // belt-and-braces for anything else that grows the bar.
50
- if (bar) {
51
- if (bar.scrollWidth > bar.clientWidth + 1) {
52
- push('bottom bar content overflows by ' + Math.ceil(bar.scrollWidth - bar.clientWidth) +
53
- 'px - drop a content.bar segment or shorten one');
54
- }
55
- if (bar.scrollHeight > bar.clientHeight + 1) {
56
- push('bottom bar content is ' + Math.ceil(bar.scrollHeight - bar.clientHeight) +
57
- 'px taller than the bar - a segment is wrapping; shorten it');
58
- }
59
- }
60
-
61
- // Nothing may sit outside the frame platforms actually crop to.
62
- var named = [['kicker', '.kicker'], ['title', 'h1'], ['subtitle', '.sub'], ['hand', '.hand'], ['bar', '.bar']];
63
- for (var i = 0; i < named.length; i++) {
64
- var el = document.querySelector(named[i][1]);
65
- if (!el) continue;
66
- var r = el.getBoundingClientRect();
67
- if (r.top < -1 || r.bottom > ${OG_HEIGHT} + 1) {
68
- push(named[i][0] + ' sits outside the ' + ${OG_HEIGHT} + 'px frame (top ' +
69
- Math.round(r.top) + ', bottom ' + Math.round(r.bottom) + ')');
70
- }
71
- }
72
- } catch (e) {
73
- push('fitter failed: ' + (e && e.message ? e.message : String(e)));
74
- }
75
- document.documentElement.setAttribute('${OG_REPORT_ATTR}', JSON.stringify(report));
76
- })();
77
- </script>`;
78
- }
79
- function esc(s) {
80
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
81
- }
82
- function fontLink(config) {
83
- const fonts = config.fonts?.length ? config.fonts : [{ family: "Barlow Condensed", weights: [800] }];
84
- const families = fonts.map((f) => `family=${f.family.replace(/ /g, "+")}:wght@${(f.weights || [700]).join(";")}`).join("&");
85
- return `<link href="https://fonts.googleapis.com/css2?${families}&display=block" rel="stylesheet">`;
86
- }
87
- function displayFamily(config) {
88
- return config.fonts?.[0]?.family || "Barlow Condensed";
89
- }
90
- function handFamily(config) {
91
- const fonts = config.fonts || [];
92
- return fonts.length > 1 ? fonts[fonts.length - 1].family : displayFamily(config);
93
- }
94
- function muted(theme) {
95
- return theme.muted || theme.text;
96
- }
97
- function backgroundLayers(config) {
98
- if (!config.background) return "";
99
- const { image, blur = 0, scrim } = config.background;
100
- return `
101
- <div class="bg"><img src="${esc(image)}" style="filter:blur(${blur}px)"></div>
102
- ${scrim ? `<div class="scrim" style="background:${esc(scrim)}"></div>` : ""}`;
103
- }
104
- function barHtml(content, theme) {
105
- if (!content.bar?.length) return "";
106
- const segs = content.bar.map((s) => `<span>${esc(s)}</span>`).join('<span class="dot"></span>');
107
- return `<div class="bar" style="background:${esc(theme.accent)}">${segs}</div>`;
108
- }
109
- function copyHtml(config) {
110
- const { content, theme } = config;
111
- const titleHtml = esc(content.title).replace(/\n/g, "<br>");
112
- const mark = config.logo && (config.layout ?? (config.logo ? "plate-left" : "banner")) === "split" ? `<img class="mark" src="${esc(config.logo)}">` : "";
113
- return `
114
- <div class="copy">
115
- ${mark}
116
- ${content.kicker ? `<div class="kicker">${esc(content.kicker)}</div>` : ""}
117
- <h1>${titleHtml}</h1>
118
- ${content.subtitle ? `<div class="sub" style="color:${esc(muted(theme))}">${esc(content.subtitle)}</div>` : ""}
119
- ${content.hand ? `<div class="hand" style="font-family:'${esc(handFamily(config))}',cursive">${esc(content.hand)}</div>` : ""}
120
- </div>`;
121
- }
122
- function buildOgHtml(config) {
123
- if (config.html) return config.html;
124
- if (config.template) {
125
- return config.template(config, {
126
- esc,
127
- fontLink: fontLink(config),
128
- width: OG_WIDTH,
129
- height: OG_HEIGHT
130
- });
131
- }
132
- const { theme, logo, layout = logo ? "plate-left" : "banner" } = config;
133
- const display = displayFamily(config);
134
- const plate = logo ? `<div class="plate" style="background:${esc(theme.surface)}"><img src="${esc(logo)}"></div>` : "";
135
- const photo = config.photo ? `<div class="photo" style="flex-basis:${config.photo.width ?? 430}px;border-radius:${config.photo.radius ?? 24}px"><img src="${esc(config.photo.src)}"></div>` : "";
136
- const body = layout === "centered" ? `<div class="wrap centered">${plate}${copyHtml(config)}</div>` : layout === "banner" ? `<div class="wrap banner">${copyHtml(config)}</div>` : layout === "split" ? `<div class="wrap">${copyHtml(config)}${photo}</div>` : `<div class="wrap">${photo || plate}${copyHtml(config)}</div>`;
137
- return `<!doctype html>
138
- <html><head><meta charset="utf-8">
139
- <link rel="preconnect" href="https://fonts.googleapis.com">
140
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
141
- ${fontLink(config)}
142
- <style>
143
- * { margin:0; padding:0; box-sizing:border-box; }
144
- html,body { width:${OG_WIDTH}px; height:${OG_HEIGHT}px; overflow:hidden; }
145
- body { position:relative; background:${theme.bg}; font-family:'${display}',sans-serif; color:${theme.text}; }
146
- .bg { position:absolute; inset:0; }
147
- .bg img { width:100%; height:100%; object-fit:cover; transform:scale(1.05); }
148
- .scrim { position:absolute; inset:0; }
149
- .wrap { position:relative; height:100%; display:flex; align-items:center; gap:52px; padding:0 68px ${config.content.bar?.length ? "74px" : "0"}; }
150
- .wrap.centered { flex-direction:column; justify-content:center; text-align:center; gap:28px; }
151
- .wrap.banner { padding-left:90px; }
152
- .plate { border-radius:28px; padding:26px; flex:0 0 auto; }
153
- .plate img { display:block; width:250px; height:auto; }
154
- .centered .plate img { width:180px; }
155
- .photo { flex:0 0 auto; height:76%; overflow:hidden; box-shadow:0 8px 40px rgba(0,0,0,.25); }
156
- .photo img { width:100%; height:100%; object-fit:cover; display:block; }
157
- .copy { flex:1 1 auto; min-width:0; }
158
- /* split-layout brand mark: the photo owns the right pane, so the logo rides
159
- above the kicker rather than being dropped. */
160
- .mark { display:block; height:44px; width:auto; margin-bottom:20px; }
161
- .kicker { font-weight:800; text-transform:uppercase; letter-spacing:.22em; font-size:24px; color:${theme.accent}; margin-bottom:14px; }
162
- /* Opening size only \u2014 the in-page fitter steps this down to fit the frame. */
163
- h1 { font-weight:800; text-transform:uppercase; font-size:${TITLE_MAX_PX}px; line-height:.9; letter-spacing:-.01em; }
164
- .sub { margin-top:22px; font-size:29px; font-weight:500; line-height:1.32; }
165
- /* Never below 40px: script faces are illegible at thumbnail width under that. */
166
- .hand { font-size:42px; margin-top:14px; transform:rotate(-1.5deg); display:inline-block; }
167
- .bar { position:absolute; left:0; right:0; bottom:0; height:74px; display:flex; align-items:center; justify-content:center; gap:26px;
168
- font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:31px; color:${barTextColor(theme)}; }
169
- /* nowrap so an over-long segment overflows the bar sideways, where the
170
- fitter's width check sees it, instead of silently wrapping to a second
171
- line and spilling over the copy above. */
172
- .bar > span { white-space:nowrap; }
173
- .bar .dot { width:10px; height:10px; border-radius:50%; background:currentColor; opacity:.55; flex:0 0 auto; }
174
- </style></head>
175
- <body>
176
- ${backgroundLayers(config)}
177
- ${body}
178
- ${barHtml(config.content, theme)}
179
- ${fitScript()}
180
- </body></html>`;
181
- }
182
-
183
- // src/og/pages.ts
184
- var DYNAMIC = "*";
185
- function pathSegments(path) {
186
- return path.split("/").filter(Boolean);
187
- }
188
- var TITLE_SEPARATOR = /\s*\|\s*|\s+[–—-]\s+/g;
189
- var TRAILING_HOSTNAME = /,\s*(?:https?:\/\/)?(?:[a-z0-9-]+\.)+[a-z]{2,}\/?$/i;
190
- var DANGLING_SEPARATOR = /(?:\s*\||\s+[–—-])\s*$/;
191
- function stripBrandSuffix(title, brand) {
192
- const original = title.trim();
193
- const base = original.replace(DANGLING_SEPARATOR, "").replace(TRAILING_HOSTNAME, "").trim() || original;
194
- let last = -1;
195
- for (const m of base.matchAll(TITLE_SEPARATOR)) last = m.index ?? last;
196
- const cleaned = last > 0 ? base.slice(0, last).trim() : base;
197
- if (!cleaned) return base;
198
- if (brand && cleaned.toLowerCase() === brand.toLowerCase()) return base;
199
- return cleaned;
200
- }
201
- function titleFromPath(path) {
202
- const last = pathSegments(path).filter((s) => s !== DYNAMIC).pop();
203
- if (!last) return "Home";
204
- return last.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()).trim();
205
- }
206
- function kickerFromPath(path, fallback) {
207
- const parts = pathSegments(path);
208
- const section = (parts[parts.length - 1] === DYNAMIC ? parts : parts.slice(0, -1)).filter(
209
- (s) => s !== DYNAMIC
210
- );
211
- if (!section.length) return fallback;
212
- return section.join(" / ").replace(/[-_]+/g, " ");
213
- }
214
- function clampSubtitle(text, max = 100) {
215
- if (!text) return void 0;
216
- const flat = text.replace(/\s+/g, " ").trim();
217
- if (!flat) return void 0;
218
- if (flat.length <= max) return flat;
219
- const sentence = flat.slice(0, max + 1).match(/^.*[.!?](?=\s|$)/)?.[0];
220
- if (sentence && sentence.length >= 30) return sentence.trim();
221
- return void 0;
222
- }
223
- function kickerIsRedundant(kicker, title) {
224
- if (!kicker) return false;
225
- const norm = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
226
- const k = norm(kicker);
227
- const t = norm(title);
228
- if (!k) return true;
229
- if (t.includes(k) || k.includes(t)) return true;
230
- const titleWords = new Set(t.split(" "));
231
- return k.split(" ").every((w) => titleWords.has(w));
232
- }
233
- function slugForPath(path) {
234
- const segments = pathSegments(path);
235
- if (!segments.length) return "home";
236
- return segments.map((s) => s === DYNAMIC ? "any" : s).join("-").replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "").toLowerCase();
237
- }
238
- function unmatchedCardKeys(cards, paths) {
239
- if (!cards) return [];
240
- const known = new Set(paths.flatMap((p) => [p, slugForPath(p)]));
241
- const patterns = paths.filter((p) => p.includes(DYNAMIC));
242
- return Object.keys(cards).filter(
243
- (key) => !known.has(key) && !patterns.some((pattern) => matchesRoutePattern(key, pattern))
244
- );
245
- }
246
- function bareRoute(path) {
247
- const segments = pathSegments(path);
248
- return segments.length ? `/${segments.join("/")}` : "/";
249
- }
250
- function matchesRoutePattern(path, pattern) {
251
- const concrete = pathSegments(path);
252
- const shape = pathSegments(pattern);
253
- if (concrete.includes(DYNAMIC) || concrete.length !== shape.length) return false;
254
- return shape.every((seg, i) => seg === DYNAMIC || seg === concrete[i]);
255
- }
256
- function paramCardKeys(cards, paths) {
257
- if (!cards) return [];
258
- const known = new Set(paths.flatMap((p) => [p, slugForPath(p)]));
259
- const patterns = paths.filter((p) => p.includes(DYNAMIC));
260
- const found = [];
261
- for (const key of Object.keys(cards)) {
262
- if (known.has(key) || !key.startsWith("/")) continue;
263
- const pattern = patterns.find((p) => matchesRoutePattern(key, p));
264
- if (pattern) found.push({ path: bareRoute(key), pattern });
265
- }
266
- return found;
267
- }
268
- var PARAM_CARD_DIR = "_og";
269
- function paramCardUrl(path) {
270
- const segments = pathSegments(path);
271
- return `/${PARAM_CARD_DIR}/${segments.length ? segments.join("/") : "home"}.jpg`;
272
- }
273
- function paramCardImage(path, options = {}) {
274
- if (options.config) {
275
- const bare = bareRoute(path);
276
- const cards = options.config.cards ?? {};
277
- if (!cards[bare] && !cards[`${bare}/`]) return void 0;
278
- }
279
- return {
280
- url: paramCardUrl(path),
281
- width: OG_WIDTH,
282
- height: OG_HEIGHT,
283
- type: "image/jpeg",
284
- ...options.alt && { alt: options.alt }
285
- };
286
- }
287
- function codeCardImage(path, options = {}) {
288
- const base = bareRoute(path);
289
- const url = applyTrailingSlash(`${base === "/" ? "" : base}/opengraph-image`, resolveTrailingSlash(options.trailingSlash));
290
- return {
291
- url,
292
- width: OG_WIDTH,
293
- height: OG_HEIGHT,
294
- type: options.contentType ?? "image/png",
295
- ...options.alt && { alt: options.alt }
296
- };
297
- }
298
- function pageCardConfig(base, route, brand) {
299
- const override = base.cards?.[route.path] ?? base.cards?.[`${route.path}/`] ?? base.cards?.[slugForPath(route.path)];
300
- const isHome = route.path === "/";
301
- const derived = isHome ? { ...base, cards: void 0 } : (() => {
302
- const title = route.title ? stripBrandSuffix(route.title, brand) : titleFromPath(route.path);
303
- const kicker = kickerFromPath(route.path, base.content.kicker);
304
- return {
305
- ...base,
306
- // `cards` is a build-time instruction, not part of a rendered card.
307
- cards: void 0,
308
- content: {
309
- ...base.content,
310
- kicker: kickerIsRedundant(kicker, title) ? void 0 : kicker,
311
- title,
312
- subtitle: clampSubtitle(route.description) ?? base.content.subtitle
313
- }
314
- };
315
- })();
316
- if (!override) return derived;
317
- return {
318
- ...derived,
319
- ...override,
320
- content: { ...derived.content, ...override.content }
321
- };
322
- }
323
-
324
- export { DYNAMIC, PARAM_CARD_DIR, buildOgHtml, codeCardImage, pageCardConfig, paramCardImage, paramCardKeys, paramCardUrl, unmatchedCardKeys };
325
- //# sourceMappingURL=chunk-HIZJD7TU.mjs.map
326
- //# sourceMappingURL=chunk-HIZJD7TU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/og/template.ts","../src/og/pages.ts"],"names":[],"mappings":"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","file":"chunk-HIZJD7TU.mjs","sourcesContent":["/**\n * OG card HTML template builder.\n *\n * Turns an OgCardConfig into a self-contained 1200x630 HTML document rendered\n * by headless Chrome. Layout rules baked in from the Ludlow card:\n * - content held inside the middle ~80% (platforms crop toward 2:1 and the\n * bottom bar is the first casualty)\n * - script/hand faces never below 40px — under that they turn to mush at\n * iMessage thumbnail width (~300px)\n * - the plate + title must survive alone if everything else is cropped\n */\n\nimport type { OgCardConfig, OgContent, OgTheme } from './config'\nimport { barTextColor } from './contrast'\nimport {\n OG_WIDTH,\n OG_HEIGHT,\n TITLE_MAX_PX,\n TITLE_MIN_PX,\n OG_REPORT_ATTR,\n} from './config'\n\n/**\n * The in-page fitter. Runs inside the render, after webfonts settle, and does\n * the two things a Node-side template cannot:\n *\n * 1. FITS THE TITLE. The h1 opens at TITLE_MAX_PX and steps down until the\n * copy column fits the frame. Before this the size was fixed, so title\n * length silently decided whether a card worked — a long one did not\n * shrink, it pushed the kicker off the top and the subtitle under the\n * bottom bar, and the CLI still reported success.\n * 2. MEASURES WHAT IS LEFT. Anything still clipped is written to the report\n * attribute, which `sonor-setup og` reads back through --dump-dom and\n * turns into a failure. Real measurement, not a character-count estimate.\n *\n * Fonts matter: measuring before `document.fonts.ready` measures the fallback\n * face and produces a size that is wrong for the face that actually renders.\n */\nfunction fitScript(): string {\n return `<script>\n(async function () {\n var report = { fits: true, titlePx: ${TITLE_MAX_PX}, issues: [] };\n function push(msg) { report.fits = false; report.issues.push(msg); }\n try {\n try { await document.fonts.ready; } catch (e) {}\n var h1 = document.querySelector('h1');\n var copy = document.querySelector('.copy');\n var wrap = document.querySelector('.wrap');\n var bar = document.querySelector('.bar');\n\n if (h1 && copy && wrap) {\n var cs = getComputedStyle(wrap);\n var avail = wrap.clientHeight - parseFloat(cs.paddingTop || '0') - parseFloat(cs.paddingBottom || '0');\n\n // Fit BOTH axes. Height alone is not enough: a single long word\n // (\"WORKBENCHES\") cannot wrap, so it keeps overflowing the column\n // sideways at a size that fits vertically. Shrinking for either\n // condition is what makes an arbitrary managed title safe to render.\n var tooTall = function () { return copy.scrollHeight > avail; };\n var tooWide = function () { return h1.scrollWidth > copy.clientWidth + 1; };\n var size = ${TITLE_MAX_PX};\n while (size > ${TITLE_MIN_PX} && (tooTall() || tooWide())) {\n size -= 2;\n h1.style.fontSize = size + 'px';\n }\n report.titlePx = size;\n\n if (tooTall()) {\n push('title/subtitle block overflows the card by ' + Math.ceil(copy.scrollHeight - avail) +\n 'px even at the ' + ${TITLE_MIN_PX} + 'px legibility floor - shorten content.title or content.subtitle');\n }\n if (tooWide()) {\n push('the longest title word still overflows the copy column by ' + Math.ceil(h1.scrollWidth - copy.clientWidth) +\n 'px at the ' + ${TITLE_MIN_PX} + 'px floor - shorten it or add a line break');\n }\n }\n\n // The bar is checked on BOTH axes. Width alone missed a real failure: a\n // long segment wrapped INSIDE its span, so scrollWidth never exceeded\n // clientWidth while the text grew past the bar's fixed height and spilled\n // over the subtitle. Segments are nowrap now, which turns that into\n // horizontal overflow the width check sees, and the height check is the\n // belt-and-braces for anything else that grows the bar.\n if (bar) {\n if (bar.scrollWidth > bar.clientWidth + 1) {\n push('bottom bar content overflows by ' + Math.ceil(bar.scrollWidth - bar.clientWidth) +\n 'px - drop a content.bar segment or shorten one');\n }\n if (bar.scrollHeight > bar.clientHeight + 1) {\n push('bottom bar content is ' + Math.ceil(bar.scrollHeight - bar.clientHeight) +\n 'px taller than the bar - a segment is wrapping; shorten it');\n }\n }\n\n // Nothing may sit outside the frame platforms actually crop to.\n var named = [['kicker', '.kicker'], ['title', 'h1'], ['subtitle', '.sub'], ['hand', '.hand'], ['bar', '.bar']];\n for (var i = 0; i < named.length; i++) {\n var el = document.querySelector(named[i][1]);\n if (!el) continue;\n var r = el.getBoundingClientRect();\n if (r.top < -1 || r.bottom > ${OG_HEIGHT} + 1) {\n push(named[i][0] + ' sits outside the ' + ${OG_HEIGHT} + 'px frame (top ' +\n Math.round(r.top) + ', bottom ' + Math.round(r.bottom) + ')');\n }\n }\n } catch (e) {\n push('fitter failed: ' + (e && e.message ? e.message : String(e)));\n }\n document.documentElement.setAttribute('${OG_REPORT_ATTR}', JSON.stringify(report));\n})();\n</script>`\n}\n\nfunction esc(s: string): string {\n return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\nfunction fontLink(config: OgCardConfig): string {\n const fonts = config.fonts?.length\n ? config.fonts\n : [{ family: 'Barlow Condensed', weights: [800] }]\n const families = fonts\n .map(f => `family=${f.family.replace(/ /g, '+')}:wght@${(f.weights || [700]).join(';')}`)\n .join('&')\n return `<link href=\"https://fonts.googleapis.com/css2?${families}&display=block\" rel=\"stylesheet\">`\n}\n\nfunction displayFamily(config: OgCardConfig): string {\n return config.fonts?.[0]?.family || 'Barlow Condensed'\n}\n\nfunction handFamily(config: OgCardConfig): string {\n const fonts = config.fonts || []\n return fonts.length > 1 ? fonts[fonts.length - 1].family : displayFamily(config)\n}\n\nfunction muted(theme: OgTheme): string {\n return theme.muted || theme.text\n}\n\nfunction backgroundLayers(config: OgCardConfig): string {\n if (!config.background) return ''\n const { image, blur = 0, scrim } = config.background\n return `\n <div class=\"bg\"><img src=\"${esc(image)}\" style=\"filter:blur(${blur}px)\"></div>\n ${scrim ? `<div class=\"scrim\" style=\"background:${esc(scrim)}\"></div>` : ''}`\n}\n\nfunction barHtml(content: OgContent, theme: OgTheme): string {\n if (!content.bar?.length) return ''\n const segs = content.bar\n .map(s => `<span>${esc(s)}</span>`)\n .join('<span class=\"dot\"></span>')\n return `<div class=\"bar\" style=\"background:${esc(theme.accent)}\">${segs}</div>`\n}\n\nfunction copyHtml(config: OgCardConfig): string {\n const { content, theme } = config\n const titleHtml = esc(content.title).replace(/\\n/g, '<br>')\n // In `split` the photo owns the right pane, so a configured logo has nowhere\n // to go as a plate. It used to be dropped silently. Render it small above the\n // kicker instead: the brand mark still appears, and the plate invariant that\n // split has no `.plate` is preserved.\n const mark =\n config.logo && (config.layout ?? (config.logo ? 'plate-left' : 'banner')) === 'split'\n ? `<img class=\"mark\" src=\"${esc(config.logo)}\">`\n : ''\n return `\n <div class=\"copy\">\n ${mark}\n ${content.kicker ? `<div class=\"kicker\">${esc(content.kicker)}</div>` : ''}\n <h1>${titleHtml}</h1>\n ${content.subtitle ? `<div class=\"sub\" style=\"color:${esc(muted(theme))}\">${esc(content.subtitle)}</div>` : ''}\n ${content.hand ? `<div class=\"hand\" style=\"font-family:'${esc(handFamily(config))}',cursive\">${esc(content.hand)}</div>` : ''}\n </div>`\n}\n\nexport function buildOgHtml(config: OgCardConfig): string {\n if (config.html) return config.html\n if (config.template) {\n return config.template(config, {\n esc,\n fontLink: fontLink(config),\n width: OG_WIDTH,\n height: OG_HEIGHT,\n })\n }\n\n const { theme, logo, layout = logo ? 'plate-left' : 'banner' } = config\n const display = displayFamily(config)\n\n const plate = logo\n ? `<div class=\"plate\" style=\"background:${esc(theme.surface)}\"><img src=\"${esc(logo)}\"></div>`\n : ''\n\n const photo = config.photo\n ? `<div class=\"photo\" style=\"flex-basis:${config.photo.width ?? 430}px;border-radius:${config.photo.radius ?? 24}px\"><img src=\"${esc(config.photo.src)}\"></div>`\n : ''\n\n const body =\n layout === 'centered'\n ? `<div class=\"wrap centered\">${plate}${copyHtml(config)}</div>`\n : layout === 'banner'\n ? `<div class=\"wrap banner\">${copyHtml(config)}</div>`\n : layout === 'split'\n ? `<div class=\"wrap\">${copyHtml(config)}${photo}</div>`\n : `<div class=\"wrap\">${photo || plate}${copyHtml(config)}</div>`\n\n return `<!doctype html>\n<html><head><meta charset=\"utf-8\">\n<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n${fontLink(config)}\n<style>\n * { margin:0; padding:0; box-sizing:border-box; }\n html,body { width:${OG_WIDTH}px; height:${OG_HEIGHT}px; overflow:hidden; }\n body { position:relative; background:${theme.bg}; font-family:'${display}',sans-serif; color:${theme.text}; }\n .bg { position:absolute; inset:0; }\n .bg img { width:100%; height:100%; object-fit:cover; transform:scale(1.05); }\n .scrim { position:absolute; inset:0; }\n .wrap { position:relative; height:100%; display:flex; align-items:center; gap:52px; padding:0 68px ${config.content.bar?.length ? '74px' : '0'}; }\n .wrap.centered { flex-direction:column; justify-content:center; text-align:center; gap:28px; }\n .wrap.banner { padding-left:90px; }\n .plate { border-radius:28px; padding:26px; flex:0 0 auto; }\n .plate img { display:block; width:250px; height:auto; }\n .centered .plate img { width:180px; }\n .photo { flex:0 0 auto; height:76%; overflow:hidden; box-shadow:0 8px 40px rgba(0,0,0,.25); }\n .photo img { width:100%; height:100%; object-fit:cover; display:block; }\n .copy { flex:1 1 auto; min-width:0; }\n /* split-layout brand mark: the photo owns the right pane, so the logo rides\n above the kicker rather than being dropped. */\n .mark { display:block; height:44px; width:auto; margin-bottom:20px; }\n .kicker { font-weight:800; text-transform:uppercase; letter-spacing:.22em; font-size:24px; color:${theme.accent}; margin-bottom:14px; }\n /* Opening size only — the in-page fitter steps this down to fit the frame. */\n h1 { font-weight:800; text-transform:uppercase; font-size:${TITLE_MAX_PX}px; line-height:.9; letter-spacing:-.01em; }\n .sub { margin-top:22px; font-size:29px; font-weight:500; line-height:1.32; }\n /* Never below 40px: script faces are illegible at thumbnail width under that. */\n .hand { font-size:42px; margin-top:14px; transform:rotate(-1.5deg); display:inline-block; }\n .bar { position:absolute; left:0; right:0; bottom:0; height:74px; display:flex; align-items:center; justify-content:center; gap:26px;\n font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:31px; color:${barTextColor(theme)}; }\n /* nowrap so an over-long segment overflows the bar sideways, where the\n fitter's width check sees it, instead of silently wrapping to a second\n line and spilling over the copy above. */\n .bar > span { white-space:nowrap; }\n .bar .dot { width:10px; height:10px; border-radius:50%; background:currentColor; opacity:.55; flex:0 0 auto; }\n</style></head>\n<body>\n${backgroundLayers(config)}\n${body}\n${barHtml(config.content, theme)}\n${fitScript()}\n</body></html>`\n}\n","/**\n * @sonordev/site-kit/og — per-page card derivation.\n *\n * The site-wide card answers \"what is this site\". A per-page card answers\n * \"what is THIS page\", which is what someone pasting a deep link is actually\n * sharing. Every static route gets one by default.\n *\n * Copy comes from Sonor's managed metadata when a key is configured, because\n * that is the same copy the page's <title> and description already use — the\n * card and the SERP entry then say the same thing. Without a key (or when a\n * lookup fails) the path itself is titled, which is worse copy but still a\n * real, page-specific card rather than the site default.\n *\n * Everything else — theme, fonts, logo, photo, bar — is inherited from the\n * site's own og.config.ts, so the whole set reads as one family.\n */\n\nimport type { OgCardConfig } from './config'\nimport { OG_HEIGHT, OG_WIDTH } from './config'\n// Single source of truth for Next's trailingSlash URL shape (pure string logic).\nimport { applyTrailingSlash, resolveTrailingSlash } from '../sitemap/shared'\n\n/** A route to build a card for. */\nexport interface OgPageRoute {\n /** URL path, e.g. `/services/garage`. */\n path: string\n /** Managed title, if Sonor had one. */\n title?: string\n /** Managed meta description, if Sonor had one. */\n description?: string\n}\n\n/**\n * The stand-in for a dynamic segment in a route path.\n *\n * A dynamic route has no single URL, so its card is keyed by a pattern with one\n * `*` per dynamic level: `/services/[slug]` is `/services/*`, and each further\n * dynamic level adds another star. The depth is what keeps those patterns\n * apart — they are different pages and deserve different cards.\n *\n * (Nested patterns are spelled out in prose rather than written literally in\n * these block comments: a star followed by a slash closes the comment. See\n * src/og/README.md.)\n */\nexport const DYNAMIC = '*'\n\n/** `/services/garage/` -> `['services', 'garage']`. */\nfunction pathSegments(path: string): string[] {\n return path.split('/').filter(Boolean)\n}\n\n/**\n * A separator between a title and its brand: a pipe with or without spaces\n * around it, or a dash (`-`, `–`, `—`) with spaces on both sides. A dash with\n * no spaces is part of a word (\"Walk-In Closets\"), never a separator; the old\n * pattern treated it as one and cut that title to \"Walk\".\n */\nconst TITLE_SEPARATOR = /\\s*\\|\\s*|\\s+[–—-]\\s+/g\n\n/** `, abbeyglenapts.com` at the very end: a domain appended as if it were the brand. */\nconst TRAILING_HOSTNAME = /,\\s*(?:https?:\\/\\/)?(?:[a-z0-9-]+\\.)+[a-z]{2,}\\/?$/i\n\n/** A separator the title ends on, with nothing after it (\"Contact Us |\"). */\nconst DANGLING_SEPARATOR = /(?:\\s*\\||\\s+[–—-])\\s*$/\n\n/**\n * Trailing brand suffix on a managed title (` | Acme`, ` - Acme`, ` — Acme`).\n * Managed titles carry the brand because a SERP entry needs it; a card does\n * not — the logo, the photo and the bar are already saying whose it is, and\n * every character spent on the brand is one not spent on the page.\n *\n * Also drops the two broken suffixes managed titles turn up with, both found\n * on 2026-09-15 and each worked around by hand in a site's `cards`: a\n * dangling separator with no brand after it (reinhart's \"About Us |\", Green\n * Bay's), and the domain after a comma (\"Privacy Policy, abbeyglenapts.com\").\n */\nexport function stripBrandSuffix(title: string, brand?: string): string {\n const original = title.trim()\n // The junk first, so \"About | Acme |\" still loses its brand after it.\n const base = original.replace(DANGLING_SEPARATOR, '').replace(TRAILING_HOSTNAME, '').trim() || original\n let last = -1\n for (const m of base.matchAll(TITLE_SEPARATOR)) last = m.index ?? last\n const cleaned = last > 0 ? base.slice(0, last).trim() : base\n // Only accept the strip if something survives it, so a title that IS the\n // brand (\"Acme\") is left alone rather than reduced to nothing.\n if (!cleaned) return base\n if (brand && cleaned.toLowerCase() === brand.toLowerCase()) return base\n return cleaned\n}\n\n/**\n * `/services/walk-in-closets` -> `Walk In Closets`. The no-managed-data path.\n *\n * `*` segments (a dynamic route's card, `/services/*`) are skipped rather than\n * titled: one file covers every param, so the honest title is the section the\n * params belong to. Without this, an unmanaged dynamic segment rendered a card\n * whose headline was literally `*`.\n */\nexport function titleFromPath(path: string): string {\n const last = pathSegments(path).filter(s => s !== DYNAMIC).pop()\n if (!last) return 'Home'\n return last\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, c => c.toUpperCase())\n .trim()\n}\n\n/**\n * The kicker for a page card: its parent section, so a deep link reads\n * \"SERVICES / Walk In Closets\" rather than repeating the site name on every\n * card. Falls back to the base card's kicker at the top level.\n */\nexport function kickerFromPath(path: string, fallback?: string): string | undefined {\n const parts = pathSegments(path)\n // When the leaf is a `*`, the stars ARE the leaf, so the section is every\n // static segment — `/services/*` and `/services/*/*` both read \"services\",\n // never \"services / *\". A static leaf under a dynamic segment\n // (`/properties/*/about`) is the page itself, so the section is what's\n // above it, minus the stars: \"properties\".\n const section = (parts[parts.length - 1] === DYNAMIC ? parts : parts.slice(0, -1)).filter(\n s => s !== DYNAMIC,\n )\n if (!section.length) return fallback\n return section.join(' / ').replace(/[-_]+/g, ' ')\n}\n\n/**\n * Keep a card subtitle to two readable lines, never a full meta description.\n *\n * A meta description is written for a SERP row and runs to ~155 characters; at\n * card size that is four lines crowding the bottom bar. This trims to the first\n * sentence when there is one, and otherwise cuts on a word boundary.\n */\nexport function clampSubtitle(text: string | undefined, max = 100): string | undefined {\n if (!text) return undefined\n const flat = text.replace(/\\s+/g, ' ').trim()\n if (!flat) return undefined\n if (flat.length <= max) return flat\n\n // A whole sentence reads as written rather than as truncated. The floor is\n // absolute rather than a ratio of `max` (a ratio rejected a clean\n // 48-character sentence) — but not so low it accepts a stray \"Inc.\".\n const sentence = flat.slice(0, max + 1).match(/^.*[.!?](?=\\s|$)/)?.[0]\n if (sentence && sentence.length >= 30) return sentence.trim()\n\n /*\n * Otherwise: refuse.\n *\n * A managed description is 150+ characters of prose written for a SERP row,\n * and at card size NO truncation of it looks deliberate. Both attempts\n * proved it on real cards: a word cut gave \"across Cincinnati and…\", and\n * cutting at the last comma gave \"home offices designed, built\" — worse,\n * because with no ellipsis it looks complete and merely ungrammatical.\n *\n * Returning undefined lets the caller fall back to the site's own subtitle,\n * which is short, hand-written and always fits. A clean generic line beats a\n * mangled specific one, and the TITLE is already page-specific — which is\n * the signal that actually matters on a card.\n */\n return undefined\n}\n\n/**\n * Is the kicker already saying what the title says?\n *\n * Managed titles are written for search and usually carry the section and the\n * city, so the home page came out as kicker \"Custom Closets · Cincinnati\" above\n * title \"CUSTOM CLOSETS CINCINNATI TRI-STATE\" — a stutter that also cost a line\n * of the frame. When either contains the other, the title wins.\n */\nfunction kickerIsRedundant(kicker: string | undefined, title: string): boolean {\n if (!kicker) return false\n const norm = (s: string) => s.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim()\n const k = norm(kicker)\n const t = norm(title)\n if (!k) return true\n if (t.includes(k) || k.includes(t)) return true\n // Or every word of the kicker already appears in the title.\n const titleWords = new Set(t.split(' '))\n return k.split(' ').every(w => titleWords.has(w))\n}\n\n/**\n * File-safe name for a route's card: `/services/garage` -> `services-garage`,\n * `/` -> `home`. Deterministic, so the generator and anything reading the\n * output agree without a manifest.\n *\n * A `*` (dynamic) segment becomes `any`, one per level: `/services/*` is\n * `services-any`, and a second dynamic level is `services-any-any`. The naive\n * punctuation strip collapsed every one of those to `services` — the SAME slug\n * as the real `/services` route — so a `cards` override keyed by slug could\n * silently land on the wrong card. (A literal `/services/any` route would still collide;\n * key those by path, which is always unambiguous.)\n */\nexport function slugForPath(path: string): string {\n const segments = pathSegments(path)\n if (!segments.length) return 'home'\n return segments\n .map(s => (s === DYNAMIC ? 'any' : s))\n .join('-')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase()\n}\n\n/**\n * The `cards` keys in og.config.ts that match none of the routes being\n * rendered.\n *\n * `pageCardConfig` looks an override up by exact path or exact slug and\n * silently derives the card when neither hits, so a mistyped or stale key — or\n * one written for a route shape the generator does not produce (a two-star\n * services pattern, before nested dynamic segments got their own key) — cost a\n * hand-written card with nothing said about it. The caller reports these.\n */\nexport function unmatchedCardKeys(\n cards: Record<string, unknown> | undefined,\n paths: string[],\n): string[] {\n if (!cards) return []\n const known = new Set(paths.flatMap(p => [p, slugForPath(p)]))\n const patterns = paths.filter(p => p.includes(DYNAMIC))\n return Object.keys(cards).filter(\n key => !known.has(key) && !patterns.some(pattern => matchesRoutePattern(key, pattern)),\n )\n}\n\n/** `/floor-plans/1-bedroom/` -> `/floor-plans/1-bedroom`. */\nfunction bareRoute(path: string): string {\n const segments = pathSegments(path)\n return segments.length ? `/${segments.join('/')}` : '/'\n}\n\n/**\n * Does a concrete URL fall under a dynamic route pattern? One `*` matches\n * exactly one segment: `/properties/tall-pines/about` is under\n * `/properties/*` + `/about`, and `/floor-plans/1-bedroom` under\n * `/floor-plans/*`. A key that is itself a pattern matches nothing.\n */\nexport function matchesRoutePattern(path: string, pattern: string): boolean {\n const concrete = pathSegments(path)\n const shape = pathSegments(pattern)\n if (concrete.includes(DYNAMIC) || concrete.length !== shape.length) return false\n return shape.every((seg, i) => seg === DYNAMIC || seg === concrete[i])\n}\n\n/**\n * The `cards` keys that name one page under a dynamic route: a card per\n * floor plan, per community, per sub-page of a community. Keyed by the URL\n * itself (`/floor-plans/1-bedroom`), which any site can build from the same\n * data its `generateStaticParams` reads.\n *\n * A static file in a dynamic segment covers every param of the route, so\n * these can't be `opengraph-image` files. `sonor-setup og` renders each one to\n * `public/_og/` (see paramCardUrl), and the page declares it with\n * `paramCardImage`. The MDG property sites needed a card per floor plan and\n * per community and rendered them with their own script until this existed.\n *\n * Returns each key with the pattern it falls under. Keys that are a real\n * static route or a pattern are left to the route cards.\n */\nexport function paramCardKeys(\n cards: Record<string, unknown> | undefined,\n paths: string[],\n): Array<{ path: string; pattern: string }> {\n if (!cards) return []\n const known = new Set(paths.flatMap(p => [p, slugForPath(p)]))\n const patterns = paths.filter(p => p.includes(DYNAMIC))\n const found: Array<{ path: string; pattern: string }> = []\n for (const key of Object.keys(cards)) {\n if (known.has(key) || !key.startsWith('/')) continue\n const pattern = patterns.find(p => matchesRoutePattern(key, p))\n if (pattern) found.push({ path: bareRoute(key), pattern })\n }\n return found\n}\n\n/**\n * Public directory (under `public/`) that `sonor-setup og` owns for per-URL\n * cards. Generated; the command clears it on every run, so keep nothing else\n * in it.\n */\nexport const PARAM_CARD_DIR = '_og'\n\n/**\n * Where the per-URL card for a page is served: `/floor-plans/1-bedroom` ->\n * `/_og/floor-plans/1-bedroom.jpg`. Single source of truth for the file the\n * CLI writes and the URL `paramCardImage` declares.\n *\n * It ends in `.jpg` on purpose. Next serves a code-based `opengraph-image`\n * route without an extension, and `trailingSlash: true` answers that URL with\n * a 308 before the card, which some preview bots don't follow. A static file\n * with an extension is never redirected.\n */\nexport function paramCardUrl(path: string): string {\n const segments = pathSegments(path)\n return `/${PARAM_CARD_DIR}/${segments.length ? segments.join('/') : 'home'}.jpg`\n}\n\n/** An `openGraph.images` entry. */\nexport interface OgImageDescriptor {\n url: string\n width: number\n height: number\n type: string\n alt?: string\n}\n\n/**\n * The page's per-URL card, for its metadata:\n *\n * ```ts\n * const card = paramCardImage(`/floor-plans/${slug}`, { config: ogConfig })\n * return {\n * openGraph: { ...(card && { images: [card] }) },\n * twitter: { card: 'summary_large_image', ...(card && { images: [card.url] }) },\n * }\n * ```\n *\n * Pass `config` (the site's og.config) and it answers undefined for a page\n * with no `cards` entry, so the page keeps its segment's static card. Without\n * `config` it always answers, so only call it for URLs you gave a card.\n */\nexport function paramCardImage(\n path: string,\n options: { config?: Pick<OgCardConfig, 'cards'>; alt?: string } = {},\n): OgImageDescriptor | undefined {\n if (options.config) {\n const bare = bareRoute(path)\n const cards = options.config.cards ?? {}\n if (!cards[bare] && !cards[`${bare}/`]) return undefined\n }\n return {\n url: paramCardUrl(path),\n width: OG_WIDTH,\n height: OG_HEIGHT,\n type: 'image/jpeg',\n ...(options.alt && { alt: options.alt }),\n }\n}\n\n/**\n * A code-based card (`opengraph-image.tsx`) declared at the URL the site\n * actually serves it from.\n *\n * Next wires such a card in as `<path>/opengraph-image`, with no extension.\n * With `trailingSlash: true` that URL 308-redirects to the slashed one, so\n * every share preview starts with a redirect, and bots that don't follow one\n * show no card (the MDG property sites, 2026-09-15). Declaring the slashed URL\n * gets a 200 first time. Declared images beat the file convention, so this\n * replaces Next's own entry rather than adding a second.\n *\n * `trailingSlash` defaults to the site's next.config. Without it, this is the\n * URL Next would have used anyway.\n */\nexport function codeCardImage(\n path: string,\n options: { trailingSlash?: boolean; alt?: string; contentType?: string } = {},\n): OgImageDescriptor {\n const base = bareRoute(path)\n const url = applyTrailingSlash(`${base === '/' ? '' : base}/opengraph-image`, resolveTrailingSlash(options.trailingSlash))\n return {\n url,\n width: OG_WIDTH,\n height: OG_HEIGHT,\n type: options.contentType ?? 'image/png',\n ...(options.alt && { alt: options.alt }),\n }\n}\n\n/**\n * Build a page's card config by layering its copy over the site's card.\n *\n * `cards` in og.config.ts wins over everything derived here, so a site can\n * hand-write the two or three cards that matter and let the rest be generated.\n */\nexport function pageCardConfig(\n base: OgCardConfig,\n route: OgPageRoute,\n brand?: string,\n): OgCardConfig {\n const override =\n base.cards?.[route.path] ?? base.cards?.[`${route.path}/`] ?? base.cards?.[slugForPath(route.path)]\n const isHome = route.path === '/'\n\n /*\n * The home page keeps the card the site actually wrote.\n *\n * og.config.ts `content` IS the home page's card — it is the one route whose\n * subject is the whole site, and it is hand-written. Deriving it from the\n * managed <title> instead replaced a crafted headline (\"Built by brothers\")\n * with the SEO string (\"Custom Closets Cincinnati Tri-State\"), which repeated\n * the kicker and ran to four lines. Every other route has no hand-written\n * card, so deriving is a clear gain there.\n */\n const derived: OgCardConfig = isHome\n ? { ...base, cards: undefined }\n : (() => {\n const title = route.title ? stripBrandSuffix(route.title, brand) : titleFromPath(route.path)\n const kicker = kickerFromPath(route.path, base.content.kicker)\n return {\n ...base,\n // `cards` is a build-time instruction, not part of a rendered card.\n cards: undefined,\n content: {\n ...base.content,\n kicker: kickerIsRedundant(kicker, title) ? undefined : kicker,\n title,\n subtitle: clampSubtitle(route.description) ?? base.content.subtitle,\n },\n }\n })()\n\n if (!override) return derived\n return {\n ...derived,\n ...override,\n content: { ...derived.content, ...override.content },\n }\n}\n"]}
@@ -1,105 +0,0 @@
1
- // src/robots/next-internals.ts
2
- var NEXT_INTERNALS_PATH = /^\/?_next(?:[/*?$]|$)/;
3
- function isNextInternalsPath(path) {
4
- return NEXT_INTERNALS_PATH.test(path.trim());
5
- }
6
- var warned = /* @__PURE__ */ new Set();
7
- function warnDropped(paths) {
8
- for (const p of paths) {
9
- if (warned.has(p)) continue;
10
- warned.add(p);
11
- console.warn(
12
- `[site-kit/robots] Dropped "Disallow: ${p}". Googlebot needs /_next/ to render pages and index images.`
13
- );
14
- }
15
- }
16
- function stripNextInternals(paths) {
17
- if (paths === void 0) return void 0;
18
- const list2 = Array.isArray(paths) ? paths : [paths];
19
- const dropped = list2.filter(isNextInternalsPath);
20
- if (dropped.length === 0) return paths;
21
- warnDropped(dropped);
22
- const kept = list2.filter((p) => !isNextInternalsPath(p));
23
- if (kept.length === 0) return void 0;
24
- return Array.isArray(paths) ? kept : kept[0];
25
- }
26
-
27
- // src/llms/aiRobots.ts
28
- var AI_RETRIEVAL_CRAWLERS = [
29
- "OAI-SearchBot",
30
- "ChatGPT-User",
31
- "Claude-SearchBot",
32
- "Claude-User",
33
- "PerplexityBot",
34
- "Perplexity-User",
35
- "GoogleOther",
36
- "Applebot",
37
- "DuckAssistBot",
38
- "MistralAI-User",
39
- "YouBot"
40
- ];
41
- var AI_TRAINING_CRAWLERS = [
42
- "GPTBot",
43
- "ClaudeBot",
44
- "Google-Extended",
45
- "Applebot-Extended",
46
- "Meta-ExternalAgent",
47
- "FacebookBot",
48
- "CCBot",
49
- "Bytespider",
50
- "cohere-ai",
51
- "MistralBot",
52
- "Amazonbot"
53
- ];
54
- function buildAiCrawlerRules(options = {}) {
55
- const { allow = "/", training = "allow" } = options;
56
- const disallow = stripNextInternals(options.disallow);
57
- const retrieval = AI_RETRIEVAL_CRAWLERS.map((userAgent) => ({
58
- userAgent,
59
- allow,
60
- ...disallow ? { disallow } : {}
61
- }));
62
- const trainingRules = AI_TRAINING_CRAWLERS.map(
63
- (userAgent) => training === "block" ? { userAgent, disallow: "/" } : { userAgent, allow, ...disallow ? { disallow } : {} }
64
- );
65
- return [...retrieval, ...trainingRules];
66
- }
67
- var yn = (v) => v ? "yes" : "no";
68
- function formatContentSignals(options = {}) {
69
- const { search = true, aiInput = true, aiTrain = true } = options;
70
- return [
71
- "# Content Signals Policy (https://contentsignals.org): usage preferences",
72
- "# for this site\u2019s content. Declarative \u2014 a preference, not enforcement.",
73
- `Content-Signal: search=${yn(search)}, ai-input=${yn(aiInput)}, ai-train=${yn(aiTrain)}`
74
- ].join("\n");
75
- }
76
- var list = (v) => v === void 0 ? [] : Array.isArray(v) ? v : [v];
77
- function createRobotsTxtHandler(options) {
78
- const { rules, sitemap, host } = options;
79
- const blocks = [];
80
- for (const rule of rules) {
81
- const lines = [`User-Agent: ${rule.userAgent}`];
82
- for (const p of list(rule.allow)) lines.push(`Allow: ${p}`);
83
- for (const p of list(stripNextInternals(rule.disallow))) lines.push(`Disallow: ${p}`);
84
- blocks.push(lines.join("\n"));
85
- }
86
- const tail = [];
87
- for (const s of list(sitemap)) tail.push(`Sitemap: ${s}`);
88
- if (host) tail.push(`Host: ${host}`);
89
- if (tail.length) blocks.push(tail.join("\n"));
90
- const body = `${blocks.join("\n\n")}
91
- `;
92
- return async function GET() {
93
- return new Response(body, {
94
- status: 200,
95
- headers: {
96
- "Content-Type": "text/plain; charset=utf-8",
97
- "Cache-Control": "public, max-age=3600, s-maxage=86400"
98
- }
99
- });
100
- };
101
- }
102
-
103
- export { AI_RETRIEVAL_CRAWLERS, AI_TRAINING_CRAWLERS, buildAiCrawlerRules, createRobotsTxtHandler, formatContentSignals, isNextInternalsPath, stripNextInternals };
104
- //# sourceMappingURL=chunk-HPGPOUHU.mjs.map
105
- //# sourceMappingURL=chunk-HPGPOUHU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/robots/next-internals.ts","../src/llms/aiRobots.ts"],"names":["list"],"mappings":"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","file":"chunk-HPGPOUHU.mjs","sourcesContent":["/**\n * Keeps `/_next/` out of every robots.txt site-kit emits.\n *\n * Googlebot renders pages with the CSS, JS chunks and optimized images Next\n * serves from `/_next/`, and `/_next/image` is how a site's photos reach\n * Google Images. A `Disallow: /_next/` makes Google judge an unstyled,\n * image-less page, and a 2026-09 fleet sweep found it on ten sites. Sites\n * passed it in by hand, so the builders drop it on the way out rather than\n * trusting callers to leave it off.\n *\n * Single source of truth for that rule — used by `createRobots`\n * (`robots/index.ts`) and by `buildAiCrawlerRules` + `createRobotsTxtHandler`\n * (`llms/aiRobots.ts`). Route any new robots builder through it.\n */\n\n// `/_next`, `/_next/`, `/_next/*`, `/_next/static/`, `/_next/image`, `/_next$`,\n// and the slashless `_next/` typo. `/_nextjs-docs/` is a real path; leave it.\nconst NEXT_INTERNALS_PATH = /^\\/?_next(?:[/*?$]|$)/\n\nexport function isNextInternalsPath(path: string): boolean {\n return NEXT_INTERNALS_PATH.test(path.trim())\n}\n\nconst warned = new Set<string>()\n\nfunction warnDropped(paths: string[]): void {\n for (const p of paths) {\n if (warned.has(p)) continue\n warned.add(p)\n console.warn(\n `[site-kit/robots] Dropped \"Disallow: ${p}\". Googlebot needs /_next/ to render pages and index images.`,\n )\n }\n}\n\n/**\n * Removes `/_next` paths from a disallow list, keeping its shape: returns the\n * input untouched when there is nothing to drop, and `undefined` when nothing\n * is left.\n */\nexport function stripNextInternals(\n paths: string | string[] | undefined,\n): string | string[] | undefined {\n if (paths === undefined) return undefined\n const list = Array.isArray(paths) ? paths : [paths]\n const dropped = list.filter(isNextInternalsPath)\n if (dropped.length === 0) return paths\n warnDropped(dropped)\n const kept = list.filter((p) => !isNextInternalsPath(p))\n if (kept.length === 0) return undefined\n return Array.isArray(paths) ? kept : kept[0]\n}\n","/**\n * @sonordev/site-kit/llms — AI crawler robots policy\n *\n * 2026 practice separates AI RETRIEVAL crawlers (they fetch pages to answer\n * live queries and cite the source — visibility with attribution) from AI\n * TRAINING crawlers (they ingest content into future model weights). A site\n * can welcome one and decline the other. This module provides:\n *\n * - Curated user-agent lists for both classes (keep current with vendor docs)\n * - buildAiCrawlerRules(): rules for Next's MetadataRoute robots convention\n * - createRobotsTxtHandler(): a plain-text robots.txt route handler.\n *\n * No `Content-Signal` line is ever emitted (6.3.4). Google's robots.txt\n * parser reports it as an \"Unknown directive\" error in Search Console\n * (cincinnaticondoconnection.com, 2026-09-22), and robots.txt is the one file\n * that must parse cleanly for every crawler. Training/retrieval preferences\n * are expressed by the per-crawler Allow/Disallow rules instead, which every\n * crawler understands.\n *\n * Every builder here drops `/_next` disallow paths (see\n * robots/next-internals.ts): Googlebot needs them to render pages.\n *\n * Canonical import: `@sonordev/site-kit/llms`. `@sonordev/site-kit/robots`\n * re-exports the same functions, because that's where people look for them.\n * Same code either way; the lists live here once.\n */\n\nimport { stripNextInternals } from '../robots/next-internals'\n\n/**\n * Retrieval/search agents — fetch on demand or index for AI search, cite sources.\n *\n * MistralAI-User (Le Chat fetching a page for a user) and YouBot (You.com's\n * search index) were added 2026-09-15: vsf-consulting-nextjs named them in\n * its own robots.txt and had to keep a NOT_YET_IN_KIT list beside this one.\n */\nexport const AI_RETRIEVAL_CRAWLERS = [\n 'OAI-SearchBot',\n 'ChatGPT-User',\n 'Claude-SearchBot',\n 'Claude-User',\n 'PerplexityBot',\n 'Perplexity-User',\n 'GoogleOther',\n 'Applebot',\n 'DuckAssistBot',\n 'MistralAI-User',\n 'YouBot',\n] as const\n\n/**\n * Training crawlers — content may enter future model training corpora.\n *\n * Amazonbot is here rather than in retrieval: Amazon says what it collects\n * may be used to train its AI models, so `training: 'block'` has to cover it.\n * It also feeds Alexa answers, which is the cost of blocking it.\n */\nexport const AI_TRAINING_CRAWLERS = [\n 'GPTBot',\n 'ClaudeBot',\n 'Google-Extended',\n 'Applebot-Extended',\n 'Meta-ExternalAgent',\n 'FacebookBot',\n 'CCBot',\n 'Bytespider',\n 'cohere-ai',\n 'MistralBot',\n 'Amazonbot',\n] as const\n\nexport interface AiCrawlerRulesOptions {\n /** Paths every AI crawler may fetch (default: everything). */\n allow?: string | string[]\n /** Paths withheld from every AI crawler (default: none). `/_next` paths are dropped. */\n disallow?: string | string[]\n /**\n * Policy for TRAINING crawlers. 'allow' (default) welcomes them — the\n * visibility-maximalist choice for marketing sites that WANT to be in\n * model knowledge. 'block' opts out of training while retrieval crawlers\n * stay welcome, so the site is still cited in AI answers.\n */\n training?: 'allow' | 'block'\n}\n\ninterface RobotsRule {\n userAgent: string\n allow?: string | string[]\n disallow?: string | string[]\n}\n\n/**\n * Rules for Next's MetadataRoute robots convention (app/robots.(js|ts)).\n * Spread into your existing rules array; order relative to your own rules\n * does not matter (robots matching is per-user-agent, most-specific wins).\n */\nexport function buildAiCrawlerRules(\n options: AiCrawlerRulesOptions = {},\n): RobotsRule[] {\n const { allow = '/', training = 'allow' } = options\n const disallow = stripNextInternals(options.disallow)\n const retrieval: RobotsRule[] = AI_RETRIEVAL_CRAWLERS.map((userAgent) => ({\n userAgent,\n allow,\n ...(disallow ? { disallow } : {}),\n }))\n const trainingRules: RobotsRule[] = AI_TRAINING_CRAWLERS.map((userAgent) =>\n training === 'block'\n ? { userAgent, disallow: '/' }\n : { userAgent, allow, ...(disallow ? { disallow } : {}) },\n )\n return [...retrieval, ...trainingRules]\n}\n\nexport interface ContentSignalsOptions {\n /** May the content be indexed for classic search? Default true. */\n search?: boolean\n /** May the content feed a live AI answer (RAG/grounding)? Default true. */\n aiInput?: boolean\n /** May the content train future models? Default true. */\n aiTrain?: boolean\n}\n\nconst yn = (v: boolean) => (v ? 'yes' : 'no')\n\n/**\n * The Cloudflare Content Signals Policy block.\n *\n * @deprecated Don't put this in robots.txt: Google's parser reports\n * `Content-Signal` as an \"Unknown directive\" error in Search Console.\n * createRobotsTxtHandler no longer emits it. Express the same preference with\n * buildAiCrawlerRules({ training: 'block' | 'allow' }).\n */\nexport function formatContentSignals(\n options: ContentSignalsOptions = {},\n): string {\n const { search = true, aiInput = true, aiTrain = true } = options\n return [\n '# Content Signals Policy (https://contentsignals.org): usage preferences',\n '# for this site’s content. Declarative — a preference, not enforcement.',\n `Content-Signal: search=${yn(search)}, ai-input=${yn(aiInput)}, ai-train=${yn(aiTrain)}`,\n ].join('\\n')\n}\n\nexport interface RobotsTxtHandlerOptions {\n /** Robots rules (same shape as MetadataRoute robots rules). */\n rules: RobotsRule[]\n /**\n * @deprecated No-op since 6.3.4: a Content-Signal line is an \"Unknown\n * directive\" error in Google Search Console. Kept so existing call sites\n * type-check; remove it when you next touch the file.\n */\n contentSignals?: ContentSignalsOptions\n /** Absolute sitemap URL(s). */\n sitemap?: string | string[]\n /** Preferred host (emitted as Host:). */\n host?: string\n}\n\nconst list = (v: string | string[] | undefined): string[] =>\n v === undefined ? [] : Array.isArray(v) ? v : [v]\n\n/**\n * Plain-text robots.txt route handler (app/robots.txt/route.ts). Emits only\n * directives every crawler parses: User-Agent, Allow, Disallow, Sitemap\n * (and Host, which Google ignores without flagging). Drop-in:\n *\n * import { createRobotsTxtHandler, buildAiCrawlerRules } from '@sonordev/site-kit/llms'\n * export const GET = createRobotsTxtHandler({\n * rules: [{ userAgent: '*', allow: '/' }, ...buildAiCrawlerRules()],\n * sitemap: 'https://example.com/sitemap.xml',\n * })\n */\nexport function createRobotsTxtHandler(options: RobotsTxtHandlerOptions) {\n const { rules, sitemap, host } = options\n const blocks: string[] = []\n for (const rule of rules) {\n const lines = [`User-Agent: ${rule.userAgent}`]\n for (const p of list(rule.allow)) lines.push(`Allow: ${p}`)\n for (const p of list(stripNextInternals(rule.disallow))) lines.push(`Disallow: ${p}`)\n blocks.push(lines.join('\\n'))\n }\n const tail: string[] = []\n for (const s of list(sitemap)) tail.push(`Sitemap: ${s}`)\n if (host) tail.push(`Host: ${host}`)\n if (tail.length) blocks.push(tail.join('\\n'))\n const body = `${blocks.join('\\n\\n')}\\n`\n\n return async function GET(): Promise<Response> {\n return new Response(body, {\n status: 200,\n headers: {\n 'Content-Type': 'text/plain; charset=utf-8',\n 'Cache-Control': 'public, max-age=3600, s-maxage=86400',\n },\n })\n }\n}\n"]}
@@ -1,41 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkSWIKKSKL_js = require('./chunk-SWIKKSKL.js');
4
-
5
- // src/sites/contract.ts
6
- var SITE_HOST_CONTRACT_VERSION = 1;
7
- function stripWww(host) {
8
- return host.startsWith("www.") ? host.slice(4) : host;
9
- }
10
- function sameSite(a, b) {
11
- if (!a || !b) return false;
12
- return stripWww(a) === stripWww(b);
13
- }
14
- function hostFromUrl(value) {
15
- if (!value || !value.startsWith("http://") && !value.startsWith("https://")) return null;
16
- try {
17
- return chunkSWIKKSKL_js.normalizeSiteHost(new URL(value).host);
18
- } catch {
19
- return null;
20
- }
21
- }
22
- function isNormalizedSiteHost(value) {
23
- return typeof value === "string" && value.length > 0 && chunkSWIKKSKL_js.normalizeSiteHost(value) === value;
24
- }
25
- var SITE_HOST_JSON_SCHEMA = {
26
- $schema: "http://json-schema.org/draft-07/schema#",
27
- $id: "https://sonor.io/schemas/site-host.v1.json",
28
- title: "NormalizedSiteHost",
29
- description: "A normalized sub-site host (the multi-site `site` dimension): lowercase, no protocol, no path, no port. null denotes a project-wide (unattributed) row.",
30
- type: ["string", "null"],
31
- pattern: "^[a-z0-9.-]+$"
32
- };
33
-
34
- exports.SITE_HOST_CONTRACT_VERSION = SITE_HOST_CONTRACT_VERSION;
35
- exports.SITE_HOST_JSON_SCHEMA = SITE_HOST_JSON_SCHEMA;
36
- exports.hostFromUrl = hostFromUrl;
37
- exports.isNormalizedSiteHost = isNormalizedSiteHost;
38
- exports.sameSite = sameSite;
39
- exports.stripWww = stripWww;
40
- //# sourceMappingURL=chunk-HXHDOIV6.js.map
41
- //# sourceMappingURL=chunk-HXHDOIV6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sites/contract.ts"],"names":["normalizeSiteHost"],"mappings":";;;;;AAgBO,IAAM,0BAAA,GAA6B;AAYnC,SAAS,SAAS,IAAA,EAAsB;AAC7C,EAAA,OAAO,KAAK,UAAA,CAAW,MAAM,IAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA;AACnD;AAOO,SAAS,QAAA,CAAS,GAA8B,CAAA,EAAuC;AAC5F,EAAA,IAAI,CAAC,CAAA,IAAK,CAAC,CAAA,EAAG,OAAO,KAAA;AACrB,EAAA,OAAO,QAAA,CAAS,CAAC,CAAA,KAAM,QAAA,CAAS,CAAC,CAAA;AACnC;AAMO,SAAS,YAAY,KAAA,EAAiD;AAC3E,EAAA,IAAI,CAAC,KAAA,IAAU,CAAC,KAAA,CAAM,UAAA,CAAW,SAAS,CAAA,IAAK,CAAC,KAAA,CAAM,UAAA,CAAW,UAAU,CAAA,EAAI,OAAO,IAAA;AACtF,EAAA,IAAI;AACF,IAAA,OAAOA,kCAAA,CAAkB,IAAI,GAAA,CAAI,KAAK,EAAE,IAAI,CAAA;AAAA,EAC9C,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAGO,SAAS,qBAAqB,KAAA,EAAiC;AACpE,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,CAAM,SAAS,CAAA,IAAKA,kCAAA,CAAkB,KAAK,CAAA,KAAM,KAAA;AACvF;AAMO,IAAM,qBAAA,GAAwB;AAAA,EACnC,OAAA,EAAS,yCAAA;AAAA,EACT,GAAA,EAAK,4CAAA;AAAA,EACL,KAAA,EAAO,oBAAA;AAAA,EACP,WAAA,EACE,yJAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,EACvB,OAAA,EAAS;AACX","file":"chunk-HXHDOIV6.js","sourcesContent":["/**\n * @sonordev/site-kit/sites/contract — Multi-site \"site\" dimension host contract (v1)\n *\n * Single source of truth for normalizing and comparing sub-site host values\n * (the multi-site `site` dimension, see CLAUDE.md). Same pattern as\n * `@sonordev/site-kit/llms/contract` and `@sonordev/site-kit/slots/contract`:\n * site-kit owns the canonical logic; the Nest APIs keep byte-identical inline\n * mirrors (sonor-api `src/common/utils/site-host.ts`, signal-api\n * `src/shared/utils/seo-page-pick.util.ts`) guarded by the shared drift-test\n * vectors in `contract.test.ts` — so a divergent copy fails CI on either side.\n *\n * Pure string logic only (no Node built-ins) so it is safe in the browser:\n * site-kit itself normalizes `__SITE_KIT_SITE__` with `normalizeSiteHost`.\n */\n\n/** Bump on breaking changes to the normalized host shape. */\nexport const SITE_HOST_CONTRACT_VERSION = 1 as const\n\n/**\n * The normalizer itself lives in `./normalize`, a leaf module, so browser code\n * (`shared/publishCredential`) can import it without dragging this whole module\n * — JSON schema included — into client bundles. Re-exported here so the public\n * contract surface and the cross-repo drift tests are unchanged.\n */\nexport { normalizeSiteHost } from './normalize'\nimport { normalizeSiteHost } from './normalize'\n\n/** Strip a leading `www.` from a host (\"www.tps.com\" → \"tps.com\"). */\nexport function stripWww(host: string): string {\n return host.startsWith('www.') ? host.slice(4) : host\n}\n\n/**\n * www-insensitive sub-site host equality — `www.a.com` and `a.com` are the\n * same site. Operands are expected already-normalized (lowercase host);\n * returns false if either side is missing.\n */\nexport function sameSite(a: string | null | undefined, b: string | null | undefined): boolean {\n if (!a || !b) return false\n return stripWww(a) === stripWww(b)\n}\n\n/**\n * Host of a full URL (\"https://ohiopowerstudies.com/x\" → \"ohiopowerstudies.com\"),\n * null for site-relative paths (\"/services\") and unparseable input.\n */\nexport function hostFromUrl(value: string | null | undefined): string | null {\n if (!value || (!value.startsWith('http://') && !value.startsWith('https://'))) return null\n try {\n return normalizeSiteHost(new URL(value).host)\n } catch {\n return null\n }\n}\n\n/** True when `value` is a non-empty normalized host (lowercase, no protocol/path/port). */\nexport function isNormalizedSiteHost(value: unknown): value is string {\n return typeof value === 'string' && value.length > 0 && normalizeSiteHost(value) === value\n}\n\n/**\n * Agent-native contract: JSON Schema for a normalized `site` value, so services\n * and agents can validate the dimension mechanically without importing the code.\n */\nexport const SITE_HOST_JSON_SCHEMA = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n $id: 'https://sonor.io/schemas/site-host.v1.json',\n title: 'NormalizedSiteHost',\n description:\n 'A normalized sub-site host (the multi-site `site` dimension): lowercase, no protocol, no path, no port. null denotes a project-wide (unattributed) row.',\n type: ['string', 'null'],\n pattern: '^[a-z0-9.-]+$',\n} as const\n"]}