@sonordev/site-kit 6.4.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1621) 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-GJ6JFQO5.js +11 -0
  5. package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
  6. package/dist/ArticleViewTracker-FEA5SBKW.js +49 -0
  7. package/dist/BlocksPopup-MNK4SDZM.js +43 -0
  8. package/dist/ChatWidget-M2YNLRYW.js +15 -0
  9. package/dist/DatePicker-JEBV6WYJ.js +2 -0
  10. package/dist/EngageWidget-RR63JQCA.js +11 -0
  11. package/dist/FileField-JFBXXD43.js +83 -0
  12. package/dist/FormCelebration-OVGAGBKF.js +2 -0
  13. package/dist/FormSpotlight-QE3J3VB5.js +754 -0
  14. package/dist/FormStage-OTPKEWID.js +418 -0
  15. package/dist/ManagedForm-3VRALWUD.js +14 -0
  16. package/dist/ManagedNewsletterForm-A2FE6L5C.js +62 -0
  17. package/dist/SignalCore-S6DO3VQV.js +322 -0
  18. package/dist/SiteDesignReporter-2WZVWJMA.js +11 -0
  19. package/dist/SitemapSync-IKNKPT2G.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 -66
  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 +6 -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-3XHK5DFX.js +184 -0
  88. package/dist/chunk-43OCZ3JA.js +67 -0
  89. package/dist/chunk-4KZ6W3ZH.js +8 -0
  90. package/dist/chunk-4WI3FU5L.js +129 -0
  91. package/dist/chunk-4Y5FWDPM.js +97 -0
  92. package/dist/chunk-5C4WVOVO.js +478 -0
  93. package/dist/chunk-5SQK3D53.js +24 -0
  94. package/dist/chunk-5UZN5V52.js +52 -0
  95. package/dist/chunk-5YSI5KFD.js +19 -0
  96. package/dist/chunk-6CUFRMMF.js +937 -0
  97. package/dist/chunk-6HDT4G4A.js +253 -0
  98. package/dist/chunk-6T6CQVNL.js +37 -0
  99. package/dist/chunk-6ZB3XNAT.js +54 -0
  100. package/dist/chunk-7KJGO77W.js +1 -0
  101. package/dist/chunk-7L5AARVY.js +68 -0
  102. package/dist/chunk-7ZHJIRM3.js +4 -0
  103. package/dist/chunk-7ZWO5HDQ.js +1 -0
  104. package/dist/chunk-A4CC4ZG3.js +15 -0
  105. package/dist/chunk-AQSNPZY4.js +92 -0
  106. package/dist/chunk-B52EXDWI.js +1803 -0
  107. package/dist/chunk-BQR4IPBW.js +146 -0
  108. package/dist/chunk-BR4ZKUHH.js +227 -0
  109. package/dist/chunk-BU66S5B7.js +1 -0
  110. package/dist/chunk-C4G3NW2E.js +25 -0
  111. package/dist/chunk-D7SLSJS4.js +1 -0
  112. package/dist/chunk-DIKNRN34.js +28 -0
  113. package/dist/chunk-DXO6SBMD.js +43 -0
  114. package/dist/chunk-EDYHROQ7.js +77 -0
  115. package/dist/chunk-EKBEOXTH.js +114 -0
  116. package/dist/chunk-FESKKJAS.js +19 -0
  117. package/dist/chunk-FV2VD7WM.js +347 -0
  118. package/dist/chunk-FYAB6CXS.js +265 -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-GYBMMWGF.js +163 -0
  125. package/dist/chunk-GYF2ULVO.js +14 -0
  126. package/dist/chunk-HPUXKMNR.js +148 -0
  127. package/dist/chunk-HXJ54KAM.js +122 -0
  128. package/dist/chunk-I6WUCBKI.js +99 -0
  129. package/dist/chunk-IHG36STL.js +286 -0
  130. package/dist/chunk-J4FSB4OG.js +200 -0
  131. package/dist/chunk-JE4A5S4F.js +48 -0
  132. package/dist/chunk-JJ4JS3LD.js +26 -0
  133. package/dist/chunk-JMRESWQT.js +130 -0
  134. package/dist/chunk-JSZN6LDZ.js +338 -0
  135. package/dist/chunk-KPAZG65P.js +138 -0
  136. package/dist/chunk-KV4LOKOU.js +154 -0
  137. package/dist/chunk-KXPBMCFL.js +39 -0
  138. package/dist/chunk-L2V5PUFN.js +15 -0
  139. package/dist/chunk-L3AQCDCY.js +386 -0
  140. package/dist/chunk-L5UOHS6E.js +45 -0
  141. package/dist/chunk-LCDVPAMR.js +24 -0
  142. package/dist/chunk-LE7ZOTHB.js +43 -0
  143. package/dist/chunk-LNSNA3W4.js +217 -0
  144. package/dist/chunk-LQJC5S2M.js +236 -0
  145. package/dist/chunk-LT5ITURG.js +1071 -0
  146. package/dist/chunk-LVESVYCE.js +270 -0
  147. package/dist/chunk-M4ZY2FVB.js +177 -0
  148. package/dist/chunk-MH2DSGC6.js +10 -0
  149. package/dist/chunk-MJP63SSS.js +14 -0
  150. package/dist/chunk-MVLMXC44.js +9 -0
  151. package/dist/chunk-MZFF5F7R.js +407 -0
  152. package/dist/chunk-N2UVOR3X.js +238 -0
  153. package/dist/chunk-NDF4A5JM.js +37 -0
  154. package/dist/chunk-NJCTQH2P.js +62 -0
  155. package/dist/chunk-NZOJHERI.js +32 -0
  156. package/dist/chunk-OO2GZ272.js +1241 -0
  157. package/dist/chunk-OPRBF7VE.js +41 -0
  158. package/dist/chunk-OSQHWIM5.js +523 -0
  159. package/dist/chunk-OSYCOC3K.js +21 -0
  160. package/dist/chunk-P5GB6NEO.js +66 -0
  161. package/dist/chunk-PKBMQBKP.js +5 -0
  162. package/dist/chunk-PO2TRJPY.js +40 -0
  163. package/dist/chunk-PSAG45YF.js +451 -0
  164. package/dist/chunk-PXKIGZ2F.js +31 -0
  165. package/dist/chunk-QLTDFUJ7.js +94 -0
  166. package/dist/chunk-QPEEKFCA.js +533 -0
  167. package/dist/chunk-QXMIKDOL.js +125 -0
  168. package/dist/chunk-R3TOKUDJ.js +191 -0
  169. package/dist/chunk-S22FSH7C.js +94 -0
  170. package/dist/chunk-SC4MZGWZ.js +63 -0
  171. package/dist/chunk-SOD2F6C2.js +281 -0
  172. package/dist/chunk-SS636UDN.js +35 -0
  173. package/dist/chunk-SSUQKA7L.js +746 -0
  174. package/dist/chunk-SWKE6FWH.js +47 -0
  175. package/dist/chunk-T22VK4NJ.js +49 -0
  176. package/dist/chunk-TT63HHIT.js +543 -0
  177. package/dist/chunk-TXBAOEKG.js +1084 -0
  178. package/dist/chunk-UINSEWQ3.js +127 -0
  179. package/dist/chunk-UPFU63L4.js +126 -0
  180. package/dist/chunk-UVPGW4R7.js +222 -0
  181. package/dist/chunk-VX5CMNMM.js +26 -0
  182. package/dist/chunk-WFHI6HXP.js +837 -0
  183. package/dist/chunk-WMVK77ND.js +53 -0
  184. package/dist/chunk-X6F6SO4S.js +135 -0
  185. package/dist/chunk-XTRZGXB2.js +34 -0
  186. package/dist/chunk-XZMVNORA.js +100 -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 -227
  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 -36
  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 -75
  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 -426
  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 -26
  345. package/dist/layout/index.d.ts +0 -1
  346. package/dist/layout/index.js +43 -40
  347. package/dist/layout/types.d.ts +19 -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 +482 -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 -60
  414. package/dist/portfolio/contract.js +2 -43
  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 -18
  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 -317
  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 +8 -1
  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 +175 -147
  591. package/skills/site-kit/SKILL.md +9 -3
  592. package/dist/AnalyticsProvider-4K5T7OQ7.mjs +0 -12
  593. package/dist/AnalyticsProvider-4K5T7OQ7.mjs.map +0 -1
  594. package/dist/AnalyticsProvider-QXZN5O6D.js +0 -33
  595. package/dist/AnalyticsProvider-QXZN5O6D.js.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-BUG2TOHS.mjs +0 -51
  601. package/dist/ArticleViewTracker-BUG2TOHS.mjs.map +0 -1
  602. package/dist/ArticleViewTracker-FFMHR7AY.js +0 -54
  603. package/dist/ArticleViewTracker-FFMHR7AY.js.map +0 -1
  604. package/dist/ChatWidget-CRQPBDEF.mjs +0 -17
  605. package/dist/ChatWidget-CRQPBDEF.mjs.map +0 -1
  606. package/dist/ChatWidget-XFYLVXAX.js +0 -34
  607. package/dist/ChatWidget-XFYLVXAX.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-S234YAT2.js +0 -21
  613. package/dist/EngageWidget-S234YAT2.js.map +0 -1
  614. package/dist/EngageWidget-SQU4T7CI.mjs +0 -12
  615. package/dist/EngageWidget-SQU4T7CI.mjs.map +0 -1
  616. package/dist/FileField-HNEBEBLB.mjs +0 -85
  617. package/dist/FileField-HNEBEBLB.mjs.map +0 -1
  618. package/dist/FileField-XG4EYAZW.js +0 -91
  619. package/dist/FileField-XG4EYAZW.js.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-IODREOPN.js +0 -761
  625. package/dist/FormSpotlight-IODREOPN.js.map +0 -1
  626. package/dist/FormSpotlight-VKD774PZ.mjs +0 -756
  627. package/dist/FormSpotlight-VKD774PZ.mjs.map +0 -1
  628. package/dist/FormStage-37KKZQH4.js +0 -422
  629. package/dist/FormStage-37KKZQH4.js.map +0 -1
  630. package/dist/FormStage-PRZNRYNC.mjs +0 -420
  631. package/dist/FormStage-PRZNRYNC.mjs.map +0 -1
  632. package/dist/ManagedForm-4PZOCKCV.mjs +0 -16
  633. package/dist/ManagedForm-4PZOCKCV.mjs.map +0 -1
  634. package/dist/ManagedForm-JCMEE626.js +0 -25
  635. package/dist/ManagedForm-JCMEE626.js.map +0 -1
  636. package/dist/ManagedNewsletterForm-CTC33B2U.js +0 -66
  637. package/dist/ManagedNewsletterForm-CTC33B2U.js.map +0 -1
  638. package/dist/ManagedNewsletterForm-KMZG24OE.mjs +0 -64
  639. package/dist/ManagedNewsletterForm-KMZG24OE.mjs.map +0 -1
  640. package/dist/SignalCore-YHT7WPXV.js +0 -326
  641. package/dist/SignalCore-YHT7WPXV.js.map +0 -1
  642. package/dist/SignalCore-YIPKKIUG.mjs +0 -324
  643. package/dist/SignalCore-YIPKKIUG.mjs.map +0 -1
  644. package/dist/SitemapSync-GN4OXIM2.js +0 -18
  645. package/dist/SitemapSync-GN4OXIM2.js.map +0 -1
  646. package/dist/SitemapSync-NG763CGN.mjs +0 -9
  647. package/dist/SitemapSync-NG763CGN.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 -14
  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-24LFAQEG.mjs +0 -480
  726. package/dist/chunk-24LFAQEG.mjs.map +0 -1
  727. package/dist/chunk-2FEQ6TYD.mjs +0 -37
  728. package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
  729. package/dist/chunk-3AOKYAZ2.js +0 -135
  730. package/dist/chunk-3AOKYAZ2.js.map +0 -1
  731. package/dist/chunk-3DWIYCQX.js +0 -30
  732. package/dist/chunk-3DWIYCQX.js.map +0 -1
  733. package/dist/chunk-3SDMJMN2.js +0 -71
  734. package/dist/chunk-3SDMJMN2.js.map +0 -1
  735. package/dist/chunk-3T2CVHFO.mjs +0 -453
  736. package/dist/chunk-3T2CVHFO.mjs.map +0 -1
  737. package/dist/chunk-4BEGKFMN.js +0 -133
  738. package/dist/chunk-4BEGKFMN.js.map +0 -1
  739. package/dist/chunk-4C3INRHE.mjs +0 -1073
  740. package/dist/chunk-4C3INRHE.mjs.map +0 -1
  741. package/dist/chunk-4KAMU5HD.mjs +0 -16
  742. package/dist/chunk-4KAMU5HD.mjs.map +0 -1
  743. package/dist/chunk-4U5NCKQY.mjs +0 -39
  744. package/dist/chunk-4U5NCKQY.mjs.map +0 -1
  745. package/dist/chunk-4WCA2HM6.mjs +0 -57
  746. package/dist/chunk-4WCA2HM6.mjs.map +0 -1
  747. package/dist/chunk-54CARHDR.mjs +0 -95
  748. package/dist/chunk-54CARHDR.mjs.map +0 -1
  749. package/dist/chunk-55J2KE7D.js +0 -60
  750. package/dist/chunk-55J2KE7D.js.map +0 -1
  751. package/dist/chunk-5BARLEAI.mjs +0 -102
  752. package/dist/chunk-5BARLEAI.mjs.map +0 -1
  753. package/dist/chunk-5F2FIM5A.mjs +0 -135
  754. package/dist/chunk-5F2FIM5A.mjs.map +0 -1
  755. package/dist/chunk-5RNAUYWE.js +0 -50
  756. package/dist/chunk-5RNAUYWE.js.map +0 -1
  757. package/dist/chunk-5SANRSX3.mjs +0 -17
  758. package/dist/chunk-5SANRSX3.mjs.map +0 -1
  759. package/dist/chunk-5T3J24K4.mjs +0 -131
  760. package/dist/chunk-5T3J24K4.mjs.map +0 -1
  761. package/dist/chunk-5W4S7XQD.js +0 -141
  762. package/dist/chunk-5W4S7XQD.js.map +0 -1
  763. package/dist/chunk-5XFFUP6D.js +0 -100
  764. package/dist/chunk-5XFFUP6D.js.map +0 -1
  765. package/dist/chunk-5YVQWLSQ.mjs +0 -47
  766. package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
  767. package/dist/chunk-64BOVMXG.mjs +0 -68
  768. package/dist/chunk-64BOVMXG.mjs.map +0 -1
  769. package/dist/chunk-662YHKWW.mjs +0 -10
  770. package/dist/chunk-662YHKWW.mjs.map +0 -1
  771. package/dist/chunk-6C47333H.mjs +0 -55
  772. package/dist/chunk-6C47333H.mjs.map +0 -1
  773. package/dist/chunk-6EDVCUAG.mjs +0 -29
  774. package/dist/chunk-6EDVCUAG.mjs.map +0 -1
  775. package/dist/chunk-6FNFM7JL.js +0 -113
  776. package/dist/chunk-6FNFM7JL.js.map +0 -1
  777. package/dist/chunk-6PJTLBRR.mjs +0 -11
  778. package/dist/chunk-6PJTLBRR.mjs.map +0 -1
  779. package/dist/chunk-6QPKC6XP.mjs +0 -1416
  780. package/dist/chunk-6QPKC6XP.mjs.map +0 -1
  781. package/dist/chunk-6XNEGG5B.mjs +0 -137
  782. package/dist/chunk-6XNEGG5B.mjs.map +0 -1
  783. package/dist/chunk-7K6L33BX.mjs +0 -24842
  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-A6UYV475.mjs +0 -45
  789. package/dist/chunk-A6UYV475.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-AS2HUIDW.mjs +0 -16
  797. package/dist/chunk-AS2HUIDW.mjs.map +0 -1
  798. package/dist/chunk-ATPQ6264.js +0 -24860
  799. package/dist/chunk-B22WSN4L.mjs +0 -59
  800. package/dist/chunk-B22WSN4L.mjs.map +0 -1
  801. package/dist/chunk-BBBJHYPH.js +0 -19
  802. package/dist/chunk-BBBJHYPH.js.map +0 -1
  803. package/dist/chunk-BEXTDHO4.mjs +0 -57
  804. package/dist/chunk-BEXTDHO4.mjs.map +0 -1
  805. package/dist/chunk-BI7DH42Z.mjs +0 -101
  806. package/dist/chunk-BI7DH42Z.mjs.map +0 -1
  807. package/dist/chunk-BQP6JIE2.mjs +0 -28
  808. package/dist/chunk-BQP6JIE2.mjs.map +0 -1
  809. package/dist/chunk-BZR6RUIN.mjs +0 -128
  810. package/dist/chunk-BZR6RUIN.mjs.map +0 -1
  811. package/dist/chunk-C2CTLLIO.mjs +0 -72
  812. package/dist/chunk-C2CTLLIO.mjs.map +0 -1
  813. package/dist/chunk-C5VITBN7.mjs +0 -220
  814. package/dist/chunk-C5VITBN7.mjs.map +0 -1
  815. package/dist/chunk-C7J4XLBN.js +0 -134
  816. package/dist/chunk-C7J4XLBN.js.map +0 -1
  817. package/dist/chunk-CDRQYJUT.js +0 -355
  818. package/dist/chunk-CDRQYJUT.js.map +0 -1
  819. package/dist/chunk-CFRJ2MK5.mjs +0 -16
  820. package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
  821. package/dist/chunk-CIB3RHNZ.js +0 -8
  822. package/dist/chunk-CIB3RHNZ.js.map +0 -1
  823. package/dist/chunk-CIM5W3UO.js +0 -26
  824. package/dist/chunk-CIM5W3UO.js.map +0 -1
  825. package/dist/chunk-CLO3K7PF.js +0 -19
  826. package/dist/chunk-CLO3K7PF.js.map +0 -1
  827. package/dist/chunk-CU6OGBKK.mjs +0 -68
  828. package/dist/chunk-CU6OGBKK.mjs.map +0 -1
  829. package/dist/chunk-CUNZAD46.js +0 -53
  830. package/dist/chunk-CUNZAD46.js.map +0 -1
  831. package/dist/chunk-CUZ3I6CO.js +0 -23
  832. package/dist/chunk-CUZ3I6CO.js.map +0 -1
  833. package/dist/chunk-CXAXZFFW.js +0 -157
  834. package/dist/chunk-CXAXZFFW.js.map +0 -1
  835. package/dist/chunk-DA7IANFG.mjs +0 -37
  836. package/dist/chunk-DA7IANFG.mjs.map +0 -1
  837. package/dist/chunk-DV2LJYFD.js +0 -14
  838. package/dist/chunk-DV2LJYFD.js.map +0 -1
  839. package/dist/chunk-DV5KVNA7.js +0 -45
  840. package/dist/chunk-DV5KVNA7.js.map +0 -1
  841. package/dist/chunk-DVYYGHSG.js +0 -285
  842. package/dist/chunk-DVYYGHSG.js.map +0 -1
  843. package/dist/chunk-EDLNMGQC.mjs +0 -65
  844. package/dist/chunk-EDLNMGQC.mjs.map +0 -1
  845. package/dist/chunk-EHJANA5C.js +0 -231
  846. package/dist/chunk-EHJANA5C.js.map +0 -1
  847. package/dist/chunk-EMHSHAVW.js +0 -19
  848. package/dist/chunk-EMHSHAVW.js.map +0 -1
  849. package/dist/chunk-ESP5RMB7.js +0 -42
  850. package/dist/chunk-ESP5RMB7.js.map +0 -1
  851. package/dist/chunk-EWDWLY74.js +0 -158
  852. package/dist/chunk-EWDWLY74.js.map +0 -1
  853. package/dist/chunk-F2GECCK7.js +0 -483
  854. package/dist/chunk-F2GECCK7.js.map +0 -1
  855. package/dist/chunk-FCAHV5P3.mjs +0 -45
  856. package/dist/chunk-FCAHV5P3.mjs.map +0 -1
  857. package/dist/chunk-G6WF4G3E.js +0 -43
  858. package/dist/chunk-G6WF4G3E.js.map +0 -1
  859. package/dist/chunk-GCPPXUAI.js +0 -72
  860. package/dist/chunk-GCPPXUAI.js.map +0 -1
  861. package/dist/chunk-GFSQMK35.mjs +0 -127
  862. package/dist/chunk-GFSQMK35.mjs.map +0 -1
  863. package/dist/chunk-GGGX54ZE.js +0 -8071
  864. package/dist/chunk-GGGX54ZE.js.map +0 -1
  865. package/dist/chunk-GSRT66PA.js +0 -80
  866. package/dist/chunk-GSRT66PA.js.map +0 -1
  867. package/dist/chunk-GSU6VTCZ.mjs +0 -165
  868. package/dist/chunk-GSU6VTCZ.mjs.map +0 -1
  869. package/dist/chunk-GXSSFQ5D.js +0 -1677
  870. package/dist/chunk-GXSSFQ5D.js.map +0 -1
  871. package/dist/chunk-H4TSADY3.mjs +0 -761
  872. package/dist/chunk-H4TSADY3.mjs.map +0 -1
  873. package/dist/chunk-H6AU3WKF.js +0 -108
  874. package/dist/chunk-H6AU3WKF.js.map +0 -1
  875. package/dist/chunk-HGNSJXWT.js +0 -55
  876. package/dist/chunk-HGNSJXWT.js.map +0 -1
  877. package/dist/chunk-HIZJD7TU.mjs +0 -326
  878. package/dist/chunk-HIZJD7TU.mjs.map +0 -1
  879. package/dist/chunk-HPGPOUHU.mjs +0 -105
  880. package/dist/chunk-HPGPOUHU.mjs.map +0 -1
  881. package/dist/chunk-HSLPN3QK.js +0 -106
  882. package/dist/chunk-HSLPN3QK.js.map +0 -1
  883. package/dist/chunk-HTCNRTN6.js +0 -791
  884. package/dist/chunk-HTCNRTN6.js.map +0 -1
  885. package/dist/chunk-HXHDOIV6.js +0 -41
  886. package/dist/chunk-HXHDOIV6.js.map +0 -1
  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-IWSN4DGG.js +0 -132
  892. package/dist/chunk-IWSN4DGG.js.map +0 -1
  893. package/dist/chunk-J7QI3GDX.js +0 -12
  894. package/dist/chunk-J7QI3GDX.js.map +0 -1
  895. package/dist/chunk-JA77WXRE.js +0 -30
  896. package/dist/chunk-JA77WXRE.js.map +0 -1
  897. package/dist/chunk-JONWE26J.js +0 -81
  898. package/dist/chunk-JONWE26J.js.map +0 -1
  899. package/dist/chunk-JP5WGL75.js +0 -62
  900. package/dist/chunk-JP5WGL75.js.map +0 -1
  901. package/dist/chunk-JSXLTZUP.mjs +0 -255
  902. package/dist/chunk-JSXLTZUP.mjs.map +0 -1
  903. package/dist/chunk-JX3PO2MH.js +0 -53
  904. package/dist/chunk-JX3PO2MH.js.map +0 -1
  905. package/dist/chunk-JXRGIE3V.mjs +0 -1669
  906. package/dist/chunk-JXRGIE3V.mjs.map +0 -1
  907. package/dist/chunk-K3PVUXKB.mjs +0 -6
  908. package/dist/chunk-K3PVUXKB.mjs.map +0 -1
  909. package/dist/chunk-KHPJ3CEL.js +0 -72
  910. package/dist/chunk-KHPJ3CEL.js.map +0 -1
  911. package/dist/chunk-KOPFFKG2.mjs +0 -132
  912. package/dist/chunk-KOPFFKG2.mjs.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-KZBDH5A3.js +0 -130
  918. package/dist/chunk-KZBDH5A3.js.map +0 -1
  919. package/dist/chunk-KZVSB5WE.mjs +0 -21
  920. package/dist/chunk-KZVSB5WE.mjs.map +0 -1
  921. package/dist/chunk-LPDXS2B2.mjs +0 -932
  922. package/dist/chunk-LPDXS2B2.mjs.map +0 -1
  923. package/dist/chunk-LVGSOW2F.js +0 -32
  924. package/dist/chunk-LVGSOW2F.js.map +0 -1
  925. package/dist/chunk-M2N7NY3V.js +0 -103
  926. package/dist/chunk-M2N7NY3V.js.map +0 -1
  927. package/dist/chunk-M3JCHPK3.mjs +0 -782
  928. package/dist/chunk-M3JCHPK3.mjs.map +0 -1
  929. package/dist/chunk-M62L2N5A.mjs +0 -193
  930. package/dist/chunk-M62L2N5A.mjs.map +0 -1
  931. package/dist/chunk-MLVHVKFT.mjs +0 -148
  932. package/dist/chunk-MLVHVKFT.mjs.map +0 -1
  933. package/dist/chunk-MU3D5IO7.mjs +0 -283
  934. package/dist/chunk-MU3D5IO7.mjs.map +0 -1
  935. package/dist/chunk-MU7DTEUF.mjs +0 -77
  936. package/dist/chunk-MU7DTEUF.mjs.map +0 -1
  937. package/dist/chunk-MVHR77V4.js +0 -205
  938. package/dist/chunk-MVHR77V4.js.map +0 -1
  939. package/dist/chunk-NBOBOYMT.js +0 -52
  940. package/dist/chunk-NBOBOYMT.js.map +0 -1
  941. package/dist/chunk-NE6QGHFT.mjs +0 -240
  942. package/dist/chunk-NE6QGHFT.mjs.map +0 -1
  943. package/dist/chunk-NSWO43XW.mjs +0 -39
  944. package/dist/chunk-NSWO43XW.mjs.map +0 -1
  945. package/dist/chunk-NYXENHD2.mjs +0 -96
  946. package/dist/chunk-NYXENHD2.mjs.map +0 -1
  947. package/dist/chunk-O5GHP7UO.js +0 -142
  948. package/dist/chunk-O5GHP7UO.js.map +0 -1
  949. package/dist/chunk-OBKS3CPP.mjs +0 -50
  950. package/dist/chunk-OBKS3CPP.mjs.map +0 -1
  951. package/dist/chunk-OGNX6JT4.js +0 -222
  952. package/dist/chunk-OGNX6JT4.js.map +0 -1
  953. package/dist/chunk-OIPG3EGM.js +0 -771
  954. package/dist/chunk-OIPG3EGM.js.map +0 -1
  955. package/dist/chunk-OSU4QA5M.js +0 -260
  956. package/dist/chunk-OSU4QA5M.js.map +0 -1
  957. package/dist/chunk-P4Y75QSU.js +0 -19
  958. package/dist/chunk-P4Y75QSU.js.map +0 -1
  959. package/dist/chunk-PENNTSJE.mjs +0 -99
  960. package/dist/chunk-PENNTSJE.mjs.map +0 -1
  961. package/dist/chunk-PRAHDLKT.js +0 -67
  962. package/dist/chunk-PRAHDLKT.js.map +0 -1
  963. package/dist/chunk-QAQTDHHT.mjs +0 -1102
  964. package/dist/chunk-QAQTDHHT.mjs.map +0 -1
  965. package/dist/chunk-QOKMH2TD.mjs +0 -21
  966. package/dist/chunk-QOKMH2TD.mjs.map +0 -1
  967. package/dist/chunk-QRHVMTHF.mjs +0 -94
  968. package/dist/chunk-QRHVMTHF.mjs.map +0 -1
  969. package/dist/chunk-QZF5NTXQ.mjs +0 -28
  970. package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
  971. package/dist/chunk-R5F2JQVX.mjs +0 -41
  972. package/dist/chunk-R5F2JQVX.mjs.map +0 -1
  973. package/dist/chunk-RC4WWQXR.js +0 -47
  974. package/dist/chunk-RC4WWQXR.js.map +0 -1
  975. package/dist/chunk-RCB6HEHM.mjs +0 -349
  976. package/dist/chunk-RCB6HEHM.mjs.map +0 -1
  977. package/dist/chunk-RH4XEXTK.mjs +0 -323
  978. package/dist/chunk-RI6DFQCA.js +0 -539
  979. package/dist/chunk-RI6DFQCA.js.map +0 -1
  980. package/dist/chunk-RLUNEEGM.js +0 -336
  981. package/dist/chunk-RLUNEEGM.js.map +0 -1
  982. package/dist/chunk-RQROZLH3.js +0 -1153
  983. package/dist/chunk-RQROZLH3.js.map +0 -1
  984. package/dist/chunk-S5QKNXLQ.js +0 -1430
  985. package/dist/chunk-S5QKNXLQ.js.map +0 -1
  986. package/dist/chunk-SBTA6B6Y.mjs +0 -8014
  987. package/dist/chunk-SBTA6B6Y.mjs.map +0 -1
  988. package/dist/chunk-SFMNUVDN.mjs +0 -49
  989. package/dist/chunk-SFMNUVDN.mjs.map +0 -1
  990. package/dist/chunk-SG7CWD2R.js +0 -138
  991. package/dist/chunk-SG7CWD2R.js.map +0 -1
  992. package/dist/chunk-SHLWA6JY.mjs +0 -26
  993. package/dist/chunk-SHLWA6JY.mjs.map +0 -1
  994. package/dist/chunk-SNAQBZPT.js +0 -68
  995. package/dist/chunk-SNAQBZPT.js.map +0 -1
  996. package/dist/chunk-SWIKKSKL.js +0 -19
  997. package/dist/chunk-SWIKKSKL.js.map +0 -1
  998. package/dist/chunk-TBXWJJGT.js +0 -468
  999. package/dist/chunk-TBXWJJGT.js.map +0 -1
  1000. package/dist/chunk-TIFVAASU.mjs +0 -14279
  1001. package/dist/chunk-TMVKRQGJ.mjs +0 -64
  1002. package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
  1003. package/dist/chunk-TPDDSEL3.mjs +0 -75
  1004. package/dist/chunk-TPDDSEL3.mjs.map +0 -1
  1005. package/dist/chunk-TST2IKYO.js +0 -264
  1006. package/dist/chunk-TST2IKYO.js.map +0 -1
  1007. package/dist/chunk-TULCHQX2.js +0 -29
  1008. package/dist/chunk-TULCHQX2.js.map +0 -1
  1009. package/dist/chunk-U4CYO4NG.js +0 -195
  1010. package/dist/chunk-U4CYO4NG.js.map +0 -1
  1011. package/dist/chunk-U5NFIHLY.js +0 -158
  1012. package/dist/chunk-U5NFIHLY.js.map +0 -1
  1013. package/dist/chunk-UCMMIGC6.mjs +0 -156
  1014. package/dist/chunk-UCMMIGC6.mjs.map +0 -1
  1015. package/dist/chunk-UHYRVALN.mjs +0 -98
  1016. package/dist/chunk-UHYRVALN.mjs.map +0 -1
  1017. package/dist/chunk-UO6KTHBQ.mjs +0 -125
  1018. package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
  1019. package/dist/chunk-USQPRLSG.mjs +0 -151
  1020. package/dist/chunk-USQPRLSG.mjs.map +0 -1
  1021. package/dist/chunk-UZKXOZHR.js +0 -23
  1022. package/dist/chunk-UZKXOZHR.js.map +0 -1
  1023. package/dist/chunk-VDEQVXNV.js +0 -176
  1024. package/dist/chunk-VDEQVXNV.js.map +0 -1
  1025. package/dist/chunk-VIGRGMWR.mjs +0 -229
  1026. package/dist/chunk-VIGRGMWR.mjs.map +0 -1
  1027. package/dist/chunk-VJMPIRSD.js +0 -31
  1028. package/dist/chunk-VJMPIRSD.js.map +0 -1
  1029. package/dist/chunk-VMNPLCZB.js +0 -533
  1030. package/dist/chunk-VMNPLCZB.js.map +0 -1
  1031. package/dist/chunk-VQL7XDIY.mjs +0 -43
  1032. package/dist/chunk-VQL7XDIY.mjs.map +0 -1
  1033. package/dist/chunk-VS67QHNX.mjs +0 -34
  1034. package/dist/chunk-VS67QHNX.mjs.map +0 -1
  1035. package/dist/chunk-W7IAG5YD.js +0 -108
  1036. package/dist/chunk-W7IAG5YD.js.map +0 -1
  1037. package/dist/chunk-WIWHM47B.mjs +0 -525
  1038. package/dist/chunk-WIWHM47B.mjs.map +0 -1
  1039. package/dist/chunk-WRRVYPMY.mjs +0 -535
  1040. package/dist/chunk-WRRVYPMY.mjs.map +0 -1
  1041. package/dist/chunk-WS7MH3GD.js +0 -40
  1042. package/dist/chunk-WS7MH3GD.js.map +0 -1
  1043. package/dist/chunk-WSPGXSBU.mjs +0 -202
  1044. package/dist/chunk-WSPGXSBU.mjs.map +0 -1
  1045. package/dist/chunk-XXSSUCJB.js +0 -14285
  1046. package/dist/chunk-XZHR4E2D.js +0 -83
  1047. package/dist/chunk-XZHR4E2D.js.map +0 -1
  1048. package/dist/chunk-Y2CP5J6Q.js +0 -116
  1049. package/dist/chunk-Y2CP5J6Q.js.map +0 -1
  1050. package/dist/chunk-YACU35MY.js +0 -937
  1051. package/dist/chunk-YACU35MY.js.map +0 -1
  1052. package/dist/chunk-YBKALLBH.js +0 -46
  1053. package/dist/chunk-YBKALLBH.js.map +0 -1
  1054. package/dist/chunk-YMZNEDFP.js +0 -39
  1055. package/dist/chunk-YMZNEDFP.js.map +0 -1
  1056. package/dist/chunk-YPGUV6BT.mjs +0 -30
  1057. package/dist/chunk-YPGUV6BT.mjs.map +0 -1
  1058. package/dist/chunk-YRKWJCML.mjs +0 -150
  1059. package/dist/chunk-YRKWJCML.mjs.map +0 -1
  1060. package/dist/chunk-YU7QZ3PP.mjs +0 -45
  1061. package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
  1062. package/dist/chunk-YVJASVVK.js +0 -97
  1063. package/dist/chunk-YVJASVVK.js.map +0 -1
  1064. package/dist/chunk-YZJ22HUQ.js +0 -29
  1065. package/dist/chunk-YZJ22HUQ.js.map +0 -1
  1066. package/dist/chunk-Z2URIOKG.mjs +0 -36
  1067. package/dist/chunk-Z2URIOKG.mjs.map +0 -1
  1068. package/dist/chunk-ZEBOOUBP.mjs +0 -128
  1069. package/dist/chunk-ZEBOOUBP.mjs.map +0 -1
  1070. package/dist/chunk-ZN4HBK5C.mjs +0 -17
  1071. package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
  1072. package/dist/chunk-ZOBUA65N.js +0 -1079
  1073. package/dist/chunk-ZOBUA65N.js.map +0 -1
  1074. package/dist/chunk-ZUQSVCMD.js +0 -325
  1075. package/dist/chunk-ZVBLXXNJ.mjs +0 -53
  1076. package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
  1077. package/dist/chunk-ZZQAGCSI.mjs +0 -43
  1078. package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
  1079. package/dist/cli/agent/checks.d.ts +0 -96
  1080. package/dist/cli/agent/checks.d.ts.map +0 -1
  1081. package/dist/cli/agent/context.d.ts +0 -50
  1082. package/dist/cli/agent/context.d.ts.map +0 -1
  1083. package/dist/cli/agent/envelope.d.ts +0 -98
  1084. package/dist/cli/agent/envelope.d.ts.map +0 -1
  1085. package/dist/cli/agent/errors.d.ts +0 -36
  1086. package/dist/cli/agent/errors.d.ts.map +0 -1
  1087. package/dist/cli/agent/output.d.ts +0 -41
  1088. package/dist/cli/agent/output.d.ts.map +0 -1
  1089. package/dist/cli/agent/ssr-bailout.d.ts +0 -27
  1090. package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
  1091. package/dist/cli/api/sonor.d.ts +0 -39
  1092. package/dist/cli/api/sonor.d.ts.map +0 -1
  1093. package/dist/cli/codemod/diff.d.ts +0 -14
  1094. package/dist/cli/codemod/diff.d.ts.map +0 -1
  1095. package/dist/cli/codemod/engine.d.ts +0 -26
  1096. package/dist/cli/codemod/engine.d.ts.map +0 -1
  1097. package/dist/cli/codemod/transforms.d.ts +0 -31
  1098. package/dist/cli/codemod/transforms.d.ts.map +0 -1
  1099. package/dist/cli/commands/api-routes.d.ts +0 -13
  1100. package/dist/cli/commands/api-routes.d.ts.map +0 -1
  1101. package/dist/cli/commands/codemod.d.ts +0 -21
  1102. package/dist/cli/commands/codemod.d.ts.map +0 -1
  1103. package/dist/cli/commands/doctor.d.ts +0 -27
  1104. package/dist/cli/commands/doctor.d.ts.map +0 -1
  1105. package/dist/cli/commands/faqs.d.ts +0 -16
  1106. package/dist/cli/commands/faqs.d.ts.map +0 -1
  1107. package/dist/cli/commands/geo.d.ts +0 -18
  1108. package/dist/cli/commands/geo.d.ts.map +0 -1
  1109. package/dist/cli/commands/images.d.ts +0 -85
  1110. package/dist/cli/commands/images.d.ts.map +0 -1
  1111. package/dist/cli/commands/init.d.ts +0 -21
  1112. package/dist/cli/commands/init.d.ts.map +0 -1
  1113. package/dist/cli/commands/install.d.ts +0 -15
  1114. package/dist/cli/commands/install.d.ts.map +0 -1
  1115. package/dist/cli/commands/locations.d.ts +0 -55
  1116. package/dist/cli/commands/locations.d.ts.map +0 -1
  1117. package/dist/cli/commands/manifest.d.ts +0 -17
  1118. package/dist/cli/commands/manifest.d.ts.map +0 -1
  1119. package/dist/cli/commands/migrate.d.ts +0 -19
  1120. package/dist/cli/commands/migrate.d.ts.map +0 -1
  1121. package/dist/cli/commands/next16.d.ts +0 -10
  1122. package/dist/cli/commands/next16.d.ts.map +0 -1
  1123. package/dist/cli/commands/og.d.ts +0 -117
  1124. package/dist/cli/commands/og.d.ts.map +0 -1
  1125. package/dist/cli/commands/scaffold.d.ts +0 -22
  1126. package/dist/cli/commands/scaffold.d.ts.map +0 -1
  1127. package/dist/cli/commands/scan.d.ts +0 -18
  1128. package/dist/cli/commands/scan.d.ts.map +0 -1
  1129. package/dist/cli/commands/setup.d.ts +0 -35
  1130. package/dist/cli/commands/setup.d.ts.map +0 -1
  1131. package/dist/cli/commands/sync.d.ts +0 -22
  1132. package/dist/cli/commands/sync.d.ts.map +0 -1
  1133. package/dist/cli/commands/upgrade.d.ts +0 -15
  1134. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  1135. package/dist/cli/commands/verify.d.ts +0 -22
  1136. package/dist/cli/commands/verify.d.ts.map +0 -1
  1137. package/dist/cli/config.d.ts +0 -31
  1138. package/dist/cli/config.d.ts.map +0 -1
  1139. package/dist/cli/generators/index.d.ts +0 -60
  1140. package/dist/cli/generators/index.d.ts.map +0 -1
  1141. package/dist/cli/index.d.ts +0 -15
  1142. package/dist/cli/index.d.ts.map +0 -1
  1143. package/dist/cli/index.js +0 -32904
  1144. package/dist/cli/index.mjs +0 -32872
  1145. package/dist/cli/migrator/index.d.ts +0 -92
  1146. package/dist/cli/migrator/index.d.ts.map +0 -1
  1147. package/dist/cli/scanner/index.d.ts +0 -129
  1148. package/dist/cli/scanner/index.d.ts.map +0 -1
  1149. package/dist/cli/state.d.ts +0 -7
  1150. package/dist/cli/state.d.ts.map +0 -1
  1151. package/dist/client/SiteKitCredential.d.ts.map +0 -1
  1152. package/dist/client/index.d.ts.map +0 -1
  1153. package/dist/client/index.js.map +0 -1
  1154. package/dist/client/index.mjs +0 -27
  1155. package/dist/client/index.mjs.map +0 -1
  1156. package/dist/cms/CmsPage.d.ts.map +0 -1
  1157. package/dist/cms/CmsPreview.d.ts.map +0 -1
  1158. package/dist/cms/CmsSection.d.ts.map +0 -1
  1159. package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
  1160. package/dist/cms/index.d.ts.map +0 -1
  1161. package/dist/cms/index.js.map +0 -1
  1162. package/dist/cms/index.mjs +0 -389
  1163. package/dist/cms/index.mjs.map +0 -1
  1164. package/dist/cms/sanity-image.d.ts.map +0 -1
  1165. package/dist/cms/sections/CtaSection.d.ts.map +0 -1
  1166. package/dist/cms/sections/CustomSection.d.ts.map +0 -1
  1167. package/dist/cms/sections/FaqSection.d.ts.map +0 -1
  1168. package/dist/cms/sections/FormSection.d.ts.map +0 -1
  1169. package/dist/cms/sections/GallerySection.d.ts.map +0 -1
  1170. package/dist/cms/sections/HeroSection.d.ts.map +0 -1
  1171. package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
  1172. package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
  1173. package/dist/cms/sections/index.d.ts.map +0 -1
  1174. package/dist/cms/server-api.d.ts.map +0 -1
  1175. package/dist/cms/server.d.ts.map +0 -1
  1176. package/dist/cms/server.js.map +0 -1
  1177. package/dist/cms/server.mjs +0 -5
  1178. package/dist/cms/server.mjs.map +0 -1
  1179. package/dist/cms/types.d.ts.map +0 -1
  1180. package/dist/commerce/CalendarView.d.ts.map +0 -1
  1181. package/dist/commerce/CheckoutForm.d.ts.map +0 -1
  1182. package/dist/commerce/EventCalendar.d.ts.map +0 -1
  1183. package/dist/commerce/EventCheckout.d.ts.map +0 -1
  1184. package/dist/commerce/EventEmbed.d.ts.map +0 -1
  1185. package/dist/commerce/EventModal.d.ts.map +0 -1
  1186. package/dist/commerce/EventTile.d.ts.map +0 -1
  1187. package/dist/commerce/EventsAgenda.d.ts.map +0 -1
  1188. package/dist/commerce/EventsWidget.d.ts.map +0 -1
  1189. package/dist/commerce/OfferingCard.d.ts.map +0 -1
  1190. package/dist/commerce/OfferingList.d.ts.map +0 -1
  1191. package/dist/commerce/ProductDetail.d.ts.map +0 -1
  1192. package/dist/commerce/ProductEmbed.d.ts.map +0 -1
  1193. package/dist/commerce/ProductGrid.d.ts.map +0 -1
  1194. package/dist/commerce/ProductPage.d.ts.map +0 -1
  1195. package/dist/commerce/RegistrationForm.d.ts.map +0 -1
  1196. package/dist/commerce/SizeChart.d.ts.map +0 -1
  1197. package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
  1198. package/dist/commerce/api.d.ts.map +0 -1
  1199. package/dist/commerce/events-extras.d.ts.map +0 -1
  1200. package/dist/commerce/index.d.ts.map +0 -1
  1201. package/dist/commerce/index.js.map +0 -1
  1202. package/dist/commerce/index.mjs +0 -15
  1203. package/dist/commerce/index.mjs.map +0 -1
  1204. package/dist/commerce/server.d.ts.map +0 -1
  1205. package/dist/commerce/server.js.map +0 -1
  1206. package/dist/commerce/server.mjs +0 -237
  1207. package/dist/commerce/server.mjs.map +0 -1
  1208. package/dist/commerce/types.d.ts.map +0 -1
  1209. package/dist/commerce/useEventModal.d.ts.map +0 -1
  1210. package/dist/commerce/utils.d.ts.map +0 -1
  1211. package/dist/config/index.d.ts.map +0 -1
  1212. package/dist/config/index.js.map +0 -1
  1213. package/dist/config/index.mjs +0 -116
  1214. package/dist/config/index.mjs.map +0 -1
  1215. package/dist/cta-bar/CtaBar.d.ts.map +0 -1
  1216. package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
  1217. package/dist/cta-bar/client.d.ts.map +0 -1
  1218. package/dist/cta-bar/client.js.map +0 -1
  1219. package/dist/cta-bar/client.mjs +0 -6
  1220. package/dist/cta-bar/client.mjs.map +0 -1
  1221. package/dist/cta-bar/index.d.ts.map +0 -1
  1222. package/dist/cta-bar/index.js.map +0 -1
  1223. package/dist/cta-bar/index.mjs +0 -221
  1224. package/dist/cta-bar/index.mjs.map +0 -1
  1225. package/dist/cta-bar/styles.d.ts.map +0 -1
  1226. package/dist/discover-LPN55L5B.js +0 -21
  1227. package/dist/discover-LPN55L5B.js.map +0 -1
  1228. package/dist/discover-QGA6QFSR.mjs +0 -4
  1229. package/dist/discover-QGA6QFSR.mjs.map +0 -1
  1230. package/dist/engage/ChatWidget.d.ts.map +0 -1
  1231. package/dist/engage/DesignRenderer.d.ts.map +0 -1
  1232. package/dist/engage/EchoUiActions.d.ts.map +0 -1
  1233. package/dist/engage/EngageWidget.d.ts.map +0 -1
  1234. package/dist/engage/brand-color.d.ts.map +0 -1
  1235. package/dist/engage/chat-messages.d.ts.map +0 -1
  1236. package/dist/engage/echo-config.d.ts.map +0 -1
  1237. package/dist/engage/element-rules.d.ts.map +0 -1
  1238. package/dist/engage/index.d.ts.map +0 -1
  1239. package/dist/engage/index.js.map +0 -1
  1240. package/dist/engage/index.mjs +0 -50
  1241. package/dist/engage/index.mjs.map +0 -1
  1242. package/dist/engage/launcher-placement.d.ts.map +0 -1
  1243. package/dist/engage/socket-loader.d.ts.map +0 -1
  1244. package/dist/engage/types.d.ts.map +0 -1
  1245. package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
  1246. package/dist/fleet/contract.d.ts.map +0 -1
  1247. package/dist/fleet/contract.js.map +0 -1
  1248. package/dist/fleet/contract.mjs +0 -4
  1249. package/dist/fleet/contract.mjs.map +0 -1
  1250. package/dist/fleet/heartbeat.d.ts.map +0 -1
  1251. package/dist/fleet/index.d.ts.map +0 -1
  1252. package/dist/fleet/index.js.map +0 -1
  1253. package/dist/fleet/index.mjs +0 -11
  1254. package/dist/fleet/index.mjs.map +0 -1
  1255. package/dist/forms/DatePicker.d.ts.map +0 -1
  1256. package/dist/forms/FileField.d.ts.map +0 -1
  1257. package/dist/forms/FormCelebration.d.ts.map +0 -1
  1258. package/dist/forms/FormClient.d.ts.map +0 -1
  1259. package/dist/forms/FormEnhancer.d.ts.map +0 -1
  1260. package/dist/forms/FormField.d.ts.map +0 -1
  1261. package/dist/forms/FormSpotlight.d.ts.map +0 -1
  1262. package/dist/forms/FormStage.d.ts.map +0 -1
  1263. package/dist/forms/HoneypotField.d.ts.map +0 -1
  1264. package/dist/forms/ManagedForm.d.ts.map +0 -1
  1265. package/dist/forms/ServerForm.d.ts.map +0 -1
  1266. package/dist/forms/StaticForm.d.ts.map +0 -1
  1267. package/dist/forms/contract.d.ts.map +0 -1
  1268. package/dist/forms/contract.js.map +0 -1
  1269. package/dist/forms/contract.mjs +0 -4
  1270. package/dist/forms/contract.mjs.map +0 -1
  1271. package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
  1272. package/dist/forms/delight.d.ts.map +0 -1
  1273. package/dist/forms/experience-chrome.d.ts.map +0 -1
  1274. package/dist/forms/experience-plan.d.ts.map +0 -1
  1275. package/dist/forms/field-controls.d.ts.map +0 -1
  1276. package/dist/forms/field-interactions.d.ts.map +0 -1
  1277. package/dist/forms/field-rules.d.ts.map +0 -1
  1278. package/dist/forms/form-values.d.ts.map +0 -1
  1279. package/dist/forms/formsApi.d.ts.map +0 -1
  1280. package/dist/forms/ga4-identity.d.ts.map +0 -1
  1281. package/dist/forms/index.d.ts.map +0 -1
  1282. package/dist/forms/index.js.map +0 -1
  1283. package/dist/forms/index.mjs +0 -341
  1284. package/dist/forms/index.mjs.map +0 -1
  1285. package/dist/forms/normalize-config.d.ts.map +0 -1
  1286. package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
  1287. package/dist/forms/recaptcha.d.ts.map +0 -1
  1288. package/dist/forms/server.d.ts.map +0 -1
  1289. package/dist/forms/server.js.map +0 -1
  1290. package/dist/forms/server.mjs +0 -61
  1291. package/dist/forms/server.mjs.map +0 -1
  1292. package/dist/forms/static.d.ts.map +0 -1
  1293. package/dist/forms/static.js.map +0 -1
  1294. package/dist/forms/static.mjs +0 -8
  1295. package/dist/forms/static.mjs.map +0 -1
  1296. package/dist/forms/submitForm.d.ts.map +0 -1
  1297. package/dist/forms/tracking-session.d.ts.map +0 -1
  1298. package/dist/forms/types.d.ts.map +0 -1
  1299. package/dist/forms/useForm.d.ts.map +0 -1
  1300. package/dist/forms/useFormTracking.d.ts.map +0 -1
  1301. package/dist/images/ManagedFavicon.d.ts.map +0 -1
  1302. package/dist/images/ManagedImage.d.ts.map +0 -1
  1303. package/dist/images/api.d.ts.map +0 -1
  1304. package/dist/images/index.d.ts.map +0 -1
  1305. package/dist/images/index.js.map +0 -1
  1306. package/dist/images/index.mjs +0 -8
  1307. package/dist/images/index.mjs.map +0 -1
  1308. package/dist/images/server.d.ts.map +0 -1
  1309. package/dist/images/server.js.map +0 -1
  1310. package/dist/images/server.mjs +0 -4
  1311. package/dist/images/server.mjs.map +0 -1
  1312. package/dist/index.d.ts.map +0 -1
  1313. package/dist/index.js.map +0 -1
  1314. package/dist/index.mjs +0 -172
  1315. package/dist/index.mjs.map +0 -1
  1316. package/dist/landing/LandingPage.d.ts.map +0 -1
  1317. package/dist/landing/contract.d.ts.map +0 -1
  1318. package/dist/landing/index.d.ts.map +0 -1
  1319. package/dist/landing/index.js.map +0 -1
  1320. package/dist/landing/index.mjs +0 -5
  1321. package/dist/landing/index.mjs.map +0 -1
  1322. package/dist/landing/metadata.d.ts.map +0 -1
  1323. package/dist/landing/server.d.ts.map +0 -1
  1324. package/dist/landing/server.js.map +0 -1
  1325. package/dist/landing/server.mjs +0 -4
  1326. package/dist/landing/server.mjs.map +0 -1
  1327. package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
  1328. package/dist/layout/SiteKitLayout.d.ts.map +0 -1
  1329. package/dist/layout/SpeculationRules.d.ts.map +0 -1
  1330. package/dist/layout/client.d.ts.map +0 -1
  1331. package/dist/layout/client.js.map +0 -1
  1332. package/dist/layout/client.mjs +0 -18
  1333. package/dist/layout/client.mjs.map +0 -1
  1334. package/dist/layout/index.d.ts.map +0 -1
  1335. package/dist/layout/index.js.map +0 -1
  1336. package/dist/layout/index.mjs +0 -105
  1337. package/dist/layout/index.mjs.map +0 -1
  1338. package/dist/layout/types.d.ts.map +0 -1
  1339. package/dist/lib-6GWWPDJR.js +0 -28
  1340. package/dist/lib-BD4KKQBI.mjs +0 -4
  1341. package/dist/lib-N5PD6JNJ.mjs +0 -3
  1342. package/dist/lib-WFB5RLEQ.js +0 -31
  1343. package/dist/llms/AEOComponents.d.ts.map +0 -1
  1344. package/dist/llms/SpeakableSchema.d.ts.map +0 -1
  1345. package/dist/llms/aiRobots.d.ts.map +0 -1
  1346. package/dist/llms/api.d.ts.map +0 -1
  1347. package/dist/llms/client.d.ts.map +0 -1
  1348. package/dist/llms/client.js.map +0 -1
  1349. package/dist/llms/client.mjs +0 -5
  1350. package/dist/llms/client.mjs.map +0 -1
  1351. package/dist/llms/contract.d.ts.map +0 -1
  1352. package/dist/llms/contract.js.map +0 -1
  1353. package/dist/llms/contract.mjs +0 -4
  1354. package/dist/llms/contract.mjs.map +0 -1
  1355. package/dist/llms/discovery-headers.d.ts.map +0 -1
  1356. package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
  1357. package/dist/llms/handlers.d.ts.map +0 -1
  1358. package/dist/llms/humanize-industry.d.ts.map +0 -1
  1359. package/dist/llms/index.d.ts.map +0 -1
  1360. package/dist/llms/index.js.map +0 -1
  1361. package/dist/llms/index.mjs +0 -286
  1362. package/dist/llms/index.mjs.map +0 -1
  1363. package/dist/llms/links.d.ts.map +0 -1
  1364. package/dist/llms/revalidate.d.ts.map +0 -1
  1365. package/dist/llms/seo-revalidate.d.ts.map +0 -1
  1366. package/dist/llms/sourcedFacts.d.ts.map +0 -1
  1367. package/dist/llms/types.d.ts.map +0 -1
  1368. package/dist/llms/wiring.d.ts +0 -103
  1369. package/dist/llms/wiring.d.ts.map +0 -1
  1370. package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
  1371. package/dist/manifest/index.d.ts.map +0 -1
  1372. package/dist/manifest/index.js.map +0 -1
  1373. package/dist/manifest/index.mjs +0 -83
  1374. package/dist/manifest/index.mjs.map +0 -1
  1375. package/dist/maps/GoogleMap.d.ts.map +0 -1
  1376. package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
  1377. package/dist/maps/api.d.ts.map +0 -1
  1378. package/dist/maps/index.d.ts.map +0 -1
  1379. package/dist/maps/index.js.map +0 -1
  1380. package/dist/maps/index.mjs +0 -361
  1381. package/dist/maps/index.mjs.map +0 -1
  1382. package/dist/maps/types.d.ts.map +0 -1
  1383. package/dist/mcp/WebMcpTools.d.ts.map +0 -1
  1384. package/dist/mcp/client.d.ts.map +0 -1
  1385. package/dist/mcp/client.js.map +0 -1
  1386. package/dist/mcp/client.mjs +0 -129
  1387. package/dist/mcp/client.mjs.map +0 -1
  1388. package/dist/mcp/declarative.d.ts.map +0 -1
  1389. package/dist/mcp/handlers.d.ts.map +0 -1
  1390. package/dist/mcp/index.d.ts.map +0 -1
  1391. package/dist/mcp/index.js.map +0 -1
  1392. package/dist/mcp/index.mjs +0 -509
  1393. package/dist/mcp/index.mjs.map +0 -1
  1394. package/dist/mcp/protocol.d.ts.map +0 -1
  1395. package/dist/mcp/serverCard.d.ts.map +0 -1
  1396. package/dist/mcp/transport.d.ts.map +0 -1
  1397. package/dist/mcp/transport.js.map +0 -1
  1398. package/dist/mcp/transport.mjs +0 -123
  1399. package/dist/mcp/transport.mjs.map +0 -1
  1400. package/dist/mcp/types.d.ts.map +0 -1
  1401. package/dist/motion/CountUp.d.ts.map +0 -1
  1402. package/dist/motion/Parallax.d.ts.map +0 -1
  1403. package/dist/motion/Reveal.d.ts.map +0 -1
  1404. package/dist/motion/ScrollScene.d.ts.map +0 -1
  1405. package/dist/motion/engine.d.ts.map +0 -1
  1406. package/dist/motion/failsafe.d.ts.map +0 -1
  1407. package/dist/motion/gsap.d.ts.map +0 -1
  1408. package/dist/motion/gsap.js.map +0 -1
  1409. package/dist/motion/gsap.mjs +0 -220
  1410. package/dist/motion/gsap.mjs.map +0 -1
  1411. package/dist/motion/index.d.ts.map +0 -1
  1412. package/dist/motion/index.js.map +0 -1
  1413. package/dist/motion/index.mjs +0 -209
  1414. package/dist/motion/index.mjs.map +0 -1
  1415. package/dist/motion/three.d.ts.map +0 -1
  1416. package/dist/motion/three.js.map +0 -1
  1417. package/dist/motion/three.mjs +0 -145
  1418. package/dist/motion/three.mjs.map +0 -1
  1419. package/dist/og/config.d.ts.map +0 -1
  1420. package/dist/og/contrast.d.ts.map +0 -1
  1421. package/dist/og/index.d.ts.map +0 -1
  1422. package/dist/og/index.js.map +0 -1
  1423. package/dist/og/index.mjs +0 -6
  1424. package/dist/og/index.mjs.map +0 -1
  1425. package/dist/og/pages.d.ts.map +0 -1
  1426. package/dist/og/route-copy.d.ts +0 -34
  1427. package/dist/og/route-copy.d.ts.map +0 -1
  1428. package/dist/og/route-fit.d.ts.map +0 -1
  1429. package/dist/og/route.d.ts.map +0 -1
  1430. package/dist/og/route.js.map +0 -1
  1431. package/dist/og/route.mjs +0 -239
  1432. package/dist/og/route.mjs.map +0 -1
  1433. package/dist/og/template.d.ts.map +0 -1
  1434. package/dist/og/wiring.d.ts +0 -100
  1435. package/dist/og/wiring.d.ts.map +0 -1
  1436. package/dist/portfolio/contract.d.ts.map +0 -1
  1437. package/dist/portfolio/contract.js.map +0 -1
  1438. package/dist/portfolio/contract.mjs +0 -38
  1439. package/dist/portfolio/contract.mjs.map +0 -1
  1440. package/dist/proxy/index.d.ts.map +0 -1
  1441. package/dist/proxy/index.js.map +0 -1
  1442. package/dist/proxy/index.mjs +0 -170
  1443. package/dist/proxy/index.mjs.map +0 -1
  1444. package/dist/proxy/securityHeaders.d.ts.map +0 -1
  1445. package/dist/proxy/segment.d.ts.map +0 -1
  1446. package/dist/redirects/index.d.ts.map +0 -1
  1447. package/dist/redirects/index.js.map +0 -1
  1448. package/dist/redirects/index.mjs +0 -8
  1449. package/dist/redirects/index.mjs.map +0 -1
  1450. package/dist/redirects/not-found.d.ts +0 -31
  1451. package/dist/redirects/not-found.d.ts.map +0 -1
  1452. package/dist/redirects/not-found.js +0 -47
  1453. package/dist/redirects/not-found.js.map +0 -1
  1454. package/dist/redirects/not-found.mjs +0 -45
  1455. package/dist/redirects/not-found.mjs.map +0 -1
  1456. package/dist/reputation/TestimonialSection.d.ts.map +0 -1
  1457. package/dist/reputation/api.d.ts.map +0 -1
  1458. package/dist/reputation/index.d.ts.map +0 -1
  1459. package/dist/reputation/index.js.map +0 -1
  1460. package/dist/reputation/index.mjs +0 -5
  1461. package/dist/reputation/index.mjs.map +0 -1
  1462. package/dist/reputation/server.d.ts.map +0 -1
  1463. package/dist/reputation/server.js.map +0 -1
  1464. package/dist/reputation/server.mjs +0 -4
  1465. package/dist/reputation/server.mjs.map +0 -1
  1466. package/dist/reputation/types.d.ts.map +0 -1
  1467. package/dist/robots/index.d.ts.map +0 -1
  1468. package/dist/robots/index.js.map +0 -1
  1469. package/dist/robots/index.mjs +0 -53
  1470. package/dist/robots/index.mjs.map +0 -1
  1471. package/dist/robots/indexnow.d.ts.map +0 -1
  1472. package/dist/robots/indexnow.js.map +0 -1
  1473. package/dist/robots/indexnow.mjs +0 -34
  1474. package/dist/robots/indexnow.mjs.map +0 -1
  1475. package/dist/robots/next-internals.d.ts.map +0 -1
  1476. package/dist/search/contract.d.ts +0 -62
  1477. package/dist/search/contract.d.ts.map +0 -1
  1478. package/dist/search/contract.js +0 -17
  1479. package/dist/search/contract.js.map +0 -1
  1480. package/dist/search/contract.mjs +0 -4
  1481. package/dist/search/contract.mjs.map +0 -1
  1482. package/dist/search/index.d.ts +0 -52
  1483. package/dist/search/index.d.ts.map +0 -1
  1484. package/dist/search/index.js +0 -105
  1485. package/dist/search/index.js.map +0 -1
  1486. package/dist/search/index.mjs +0 -99
  1487. package/dist/search/index.mjs.map +0 -1
  1488. package/dist/seo/LocationPageContent.d.ts +0 -64
  1489. package/dist/seo/LocationPageContent.d.ts.map +0 -1
  1490. package/dist/seo/ManagedContent.d.ts.map +0 -1
  1491. package/dist/seo/ManagedFAQ.d.ts.map +0 -1
  1492. package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
  1493. package/dist/seo/ManagedSchema.d.ts.map +0 -1
  1494. package/dist/seo/ManagedScripts.d.ts.map +0 -1
  1495. package/dist/seo/api.d.ts.map +0 -1
  1496. package/dist/seo/client.d.ts.map +0 -1
  1497. package/dist/seo/client.js.map +0 -1
  1498. package/dist/seo/client.mjs +0 -10
  1499. package/dist/seo/client.mjs.map +0 -1
  1500. package/dist/seo/getManagedMetadata.d.ts.map +0 -1
  1501. package/dist/seo/groundingSchema.d.ts.map +0 -1
  1502. package/dist/seo/index.d.ts.map +0 -1
  1503. package/dist/seo/index.js.map +0 -1
  1504. package/dist/seo/index.mjs +0 -701
  1505. package/dist/seo/index.mjs.map +0 -1
  1506. package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
  1507. package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
  1508. package/dist/seo/register-sitemap-cli.mjs +0 -528
  1509. package/dist/seo/register-sitemap-request.d.ts.map +0 -1
  1510. package/dist/seo/routing.d.ts.map +0 -1
  1511. package/dist/seo/safeJsonLd.d.ts.map +0 -1
  1512. package/dist/seo/schema-filter.d.ts.map +0 -1
  1513. package/dist/seo/server-api.d.ts.map +0 -1
  1514. package/dist/seo/server.d.ts.map +0 -1
  1515. package/dist/seo/server.js.map +0 -1
  1516. package/dist/seo/server.mjs +0 -11
  1517. package/dist/seo/server.mjs.map +0 -1
  1518. package/dist/seo/types.d.ts.map +0 -1
  1519. package/dist/seo/withManagedMetadata.d.ts.map +0 -1
  1520. package/dist/seo-meta/contract.d.ts.map +0 -1
  1521. package/dist/seo-meta/contract.js.map +0 -1
  1522. package/dist/seo-meta/contract.mjs +0 -4
  1523. package/dist/seo-meta/contract.mjs.map +0 -1
  1524. package/dist/seo-pages/contract.d.ts.map +0 -1
  1525. package/dist/seo-pages/contract.js.map +0 -1
  1526. package/dist/seo-pages/contract.mjs +0 -45
  1527. package/dist/seo-pages/contract.mjs.map +0 -1
  1528. package/dist/server/index.d.ts.map +0 -1
  1529. package/dist/server/index.js.map +0 -1
  1530. package/dist/server/index.mjs +0 -7
  1531. package/dist/server/index.mjs.map +0 -1
  1532. package/dist/server/mint-site-token.d.ts.map +0 -1
  1533. package/dist/server/server-fetch.d.ts.map +0 -1
  1534. package/dist/server-api-7F5P6CSH.mjs +0 -9
  1535. package/dist/server-api-7F5P6CSH.mjs.map +0 -1
  1536. package/dist/server-api-OC5JNK6R.js +0 -86
  1537. package/dist/server-api-OC5JNK6R.js.map +0 -1
  1538. package/dist/setup/index.d.ts +0 -12
  1539. package/dist/setup/index.d.ts.map +0 -1
  1540. package/dist/setup/index.js +0 -4
  1541. package/dist/setup/index.js.map +0 -1
  1542. package/dist/setup/index.mjs +0 -3
  1543. package/dist/setup/index.mjs.map +0 -1
  1544. package/dist/shared/build-entries.d.ts.map +0 -1
  1545. package/dist/shared/color.d.ts.map +0 -1
  1546. package/dist/shared/defer.d.ts.map +0 -1
  1547. package/dist/shared/fetchWithRetry.d.ts.map +0 -1
  1548. package/dist/shared/frame.d.ts.map +0 -1
  1549. package/dist/shared/fresh-fetch.d.ts.map +0 -1
  1550. package/dist/shared/glass.d.ts.map +0 -1
  1551. package/dist/shared/identity.d.ts.map +0 -1
  1552. package/dist/shared/next-files.d.ts.map +0 -1
  1553. package/dist/shared/page-leave.d.ts.map +0 -1
  1554. package/dist/shared/publishCredential.d.ts.map +0 -1
  1555. package/dist/shared/reporting-gate.d.ts.map +0 -1
  1556. package/dist/shared/request-guards.d.ts.map +0 -1
  1557. package/dist/shared/siteToken.d.ts.map +0 -1
  1558. package/dist/shared/sonorFetch.d.ts.map +0 -1
  1559. package/dist/shared/source-graph.d.ts.map +0 -1
  1560. package/dist/shared/uuid.d.ts.map +0 -1
  1561. package/dist/shared/version.d.ts.map +0 -1
  1562. package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
  1563. package/dist/signal/SignalBridge.d.ts.map +0 -1
  1564. package/dist/signal/SignalCore.d.ts.map +0 -1
  1565. package/dist/signal/SignalExperiment.d.ts.map +0 -1
  1566. package/dist/signal/index.d.ts.map +0 -1
  1567. package/dist/signal/index.js.map +0 -1
  1568. package/dist/signal/index.mjs +0 -6
  1569. package/dist/signal/index.mjs.map +0 -1
  1570. package/dist/signal/store.d.ts.map +0 -1
  1571. package/dist/signal/types.d.ts.map +0 -1
  1572. package/dist/site-config/index.d.ts.map +0 -1
  1573. package/dist/site-config/index.js.map +0 -1
  1574. package/dist/site-config/index.mjs +0 -4
  1575. package/dist/site-config/index.mjs.map +0 -1
  1576. package/dist/sitemap/discover.d.ts.map +0 -1
  1577. package/dist/sitemap/index.d.ts.map +0 -1
  1578. package/dist/sitemap/index.js.map +0 -1
  1579. package/dist/sitemap/index.mjs +0 -549
  1580. package/dist/sitemap/index.mjs.map +0 -1
  1581. package/dist/sitemap/shared.d.ts.map +0 -1
  1582. package/dist/sites/contract.d.ts.map +0 -1
  1583. package/dist/sites/contract.js.map +0 -1
  1584. package/dist/sites/contract.mjs +0 -5
  1585. package/dist/sites/contract.mjs.map +0 -1
  1586. package/dist/sites/normalize.d.ts.map +0 -1
  1587. package/dist/sites/resolve.d.ts.map +0 -1
  1588. package/dist/sites/site-param.d.ts.map +0 -1
  1589. package/dist/slots/ManagedSlot.d.ts.map +0 -1
  1590. package/dist/slots/contract.d.ts.map +0 -1
  1591. package/dist/slots/contract.js.map +0 -1
  1592. package/dist/slots/contract.mjs +0 -4
  1593. package/dist/slots/contract.mjs.map +0 -1
  1594. package/dist/slots/index.d.ts.map +0 -1
  1595. package/dist/slots/index.js.map +0 -1
  1596. package/dist/slots/index.mjs +0 -142
  1597. package/dist/slots/index.mjs.map +0 -1
  1598. package/dist/slots/revalidate.d.ts.map +0 -1
  1599. package/dist/slots/server-api.d.ts.map +0 -1
  1600. package/dist/socket-loader-2NYBMBFQ.js +0 -16
  1601. package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
  1602. package/dist/socket-loader-JA2DI2RT.mjs +0 -14
  1603. package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
  1604. package/dist/sync/AddToCalendar.d.ts.map +0 -1
  1605. package/dist/sync/BookingWidget.d.ts.map +0 -1
  1606. package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
  1607. package/dist/sync/api.d.ts.map +0 -1
  1608. package/dist/sync/booking-flow.d.ts.map +0 -1
  1609. package/dist/sync/index.d.ts.map +0 -1
  1610. package/dist/sync/index.js.map +0 -1
  1611. package/dist/sync/index.mjs +0 -7
  1612. package/dist/sync/index.mjs.map +0 -1
  1613. package/dist/sync/types.d.ts.map +0 -1
  1614. package/dist/types.d.ts.map +0 -1
  1615. package/dist/web-vitals.attribution-CHXXWO72.mjs +0 -524
  1616. package/dist/web-vitals.attribution-CHXXWO72.mjs.map +0 -1
  1617. package/dist/web-vitals.attribution-SQVZNHN3.js +0 -535
  1618. package/dist/web-vitals.attribution-SQVZNHN3.js.map +0 -1
  1619. package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
  1620. package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
  1621. package/scripts/postinstall.cjs +0 -67
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llms/api.ts","../src/llms/humanize-industry.ts","../src/llms/links.ts","../src/llms/generateLLMsTxt.ts","../src/llms/writeLLMsTxt.ts"],"names":["freshFetch","cache","withSiteParam","LLM_GEO_CONTRACT_VERSION","linkClassificationHost","applyTrailingSlash","resolveTrailingSlash","resolveArticleUrl","sanitizePrimaryLanguageTag","sanitizeLlmsDisclaimerLine","sanitizeLlmsPublicSummary","resolveSiteHost","join","existsSync","mkdirSync","writeFileSync","renameSync","unlinkSync"],"mappings":"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","file":"chunk-OIPG3EGM.js","sourcesContent":["/**\n * @sonordev/site-kit/llms - API Functions\n * \n * Data fetching for LLM visibility content.\n * Pulls from Signal knowledge base and project data.\n */\n\nimport { cache } from 'react'\nimport { LLM_GEO_CONTRACT_VERSION } from './contract'\n// `site` scopes every seo_pages read on the Sonor side to THIS host — see the\n// `withSiteParam` callers below and the multi-site notes on `getLLMsData`. The\n// append-or-omit rule is shared with the publication reads (`sites/site-param`).\nimport { withSiteParam } from '../sites/site-param'\nimport { freshFetch } from '../shared/fresh-fetch'\nimport type { LLMsDataResponse, LLMBusinessInfo, LLMContactInfo, LLMService, LLMFAQItem, LLMPageSummary } from './types'\n\n// ============================================\n// API Config\n// ============================================\n\nfunction getApiConfig() {\n // Use site-kit globals if available, otherwise fall back to env vars\n const apiUrl = (typeof window !== 'undefined' && (window as any).__SITE_KIT_API_URL__)\n || process.env.SONOR_API_URL\n || 'https://api.sonor.io'\n\n const apiKey = (typeof window !== 'undefined' && (window as any).__SITE_KIT_API_KEY__)\n || process.env.SONOR_API_KEY\n || ''\n \n return { apiUrl, apiKey }\n}\n\n/**\n * `fresh` is for build-time writers (public/llms.txt): bypass Next's Data Cache,\n * which hosts persist across builds (see shared/fresh-fetch.ts). Without it the\n * read joins the Data Cache with a one-hour revalidate, which is what the llms\n * route handlers rely on at request time. Don't change that default.\n */\nasync function apiGet<T>(endpoint: string, options?: { fresh?: boolean }): Promise<T | null> {\n const { apiUrl, apiKey } = getApiConfig()\n\n if (!apiKey) {\n console.error('@sonordev/llms: No API key configured. Set SONOR_API_KEY.')\n return null\n }\n\n try {\n const headers = {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n }\n const response = options?.fresh\n ? await freshFetch(`${apiUrl}${endpoint}`, { method: 'GET', headers })\n : await fetch(`${apiUrl}${endpoint}`, {\n method: 'GET',\n headers,\n next: { revalidate: 3600 }, // Next.js fetch cache\n } as RequestInit)\n \n if (!response.ok) {\n console.error(`@sonordev/llms: API error: ${response.statusText}`)\n return null\n }\n\n const json = await response.json()\n return json\n } catch (error) {\n console.error('@sonordev/llms: Network error:', error)\n return null\n }\n}\n\n// ============================================\n// Cached Data Fetchers\n// ============================================\n\n/**\n * Fetch all LLM visibility data for a project - cached per request\n * This is the main data source for llms.txt generation\n *\n * @param projectId - Optional project ID (API key identifies project if omitted)\n * @param site - Sub-site host. One Sonor project can host many domains, and\n * seo_pages then holds one row PER HOST for shared paths like `/` and\n * `/terms`. Without this the API returns an arbitrary sibling's row, so a\n * site describes its neighbours instead of itself. Omit to resolve from\n * NEXT_PUBLIC_SITE_URL (the build-time source of truth).\n */\nexport const getLLMsData = cache(async (\n projectId?: string,\n site?: string,\n /** Bypass Next's Data Cache (build-time writers only; see apiGet). */\n fresh?: boolean\n): Promise<LLMsDataResponse | null> => {\n const data = await apiGet<LLMsDataResponse>(withSiteParam(`/api/public/llms/data`, site), { fresh })\n if (\n data?.meta &&\n data.meta.contract_version != null &&\n data.meta.contract_version !== LLM_GEO_CONTRACT_VERSION &&\n typeof process !== 'undefined' &&\n process.env.NODE_ENV !== 'production'\n ) {\n console.warn(\n `[site-kit/llms] API meta.contract_version (${data.meta.contract_version}) !== site-kit LLM_GEO_CONTRACT_VERSION (${LLM_GEO_CONTRACT_VERSION}).`,\n )\n }\n return data\n})\n\n/**\n * Fetch business info only - cached per request\n */\nexport const getBusinessInfo = cache(async (\n projectId?: string\n): Promise<LLMBusinessInfo | null> => {\n const result = await apiGet<{ business: LLMBusinessInfo }>(`/api/public/llms/business`)\n return result?.business || null\n})\n\n/**\n * Fetch services list - cached per request\n */\nexport const getServices = cache(async (\n projectId?: string,\n site?: string\n): Promise<LLMService[]> => {\n const result = await apiGet<{ services: LLMService[] }>(withSiteParam(`/api/public/llms/services`, site))\n return result?.services || []\n})\n\n/**\n * Fetch FAQ items - cached per request. `site` scopes them to that host's\n * FAQs plus project-wide ones (resolves from NEXT_PUBLIC_SITE_URL when omitted).\n */\nexport const getFAQItems = cache(async (\n projectId?: string,\n limit?: number,\n site?: string\n): Promise<LLMFAQItem[]> => {\n const endpoint = limit \n ? `/api/public/llms/faq?limit=${limit}`\n : '/api/public/llms/faq'\n const result = await apiGet<{ faq: LLMFAQItem[] }>(withSiteParam(endpoint, site))\n return result?.faq || []\n})\n\n/**\n * Fetch page summaries for sitemap - cached per request\n */\nexport const getPageSummaries = cache(async (\n projectId?: string,\n limit?: number,\n site?: string\n): Promise<LLMPageSummary[]> => {\n const endpoint = limit \n ? `/api/public/llms/pages?limit=${limit}`\n : '/api/public/llms/pages'\n const result = await apiGet<{ pages: LLMPageSummary[] }>(withSiteParam(endpoint, site))\n return result?.pages || []\n})\n\n/**\n * Fetch AI-optimized llms.txt markdown from Portal API (build-time)\n * Used by writeLLMsTxtToPublic for static file generation\n *\n * Always fresh (shared/fresh-fetch.ts). With Next's patched fetch and no cache\n * option, a static build stored this response in the Data Cache with a one-year\n * revalidate, and every later build rewrote public/llms.txt from that copy.\n */\nexport async function getOptimizedLLMsTxt(options?: {\n full?: boolean\n /** Matches Portal GET /api/public/llms/txt?publicSummaryOnly=true */\n publicSummaryOnly?: boolean\n /**\n * Sub-site host — scopes the page index to THIS domain on multi-site\n * projects. Omit to resolve from NEXT_PUBLIC_SITE_URL. See getLLMsData.\n */\n site?: string\n apiUrl?: string\n apiKey?: string\n}): Promise<string | null> {\n const apiUrl = options?.apiUrl\n || (typeof process !== 'undefined' && process.env?.SONOR_API_URL)\n || 'https://api.sonor.io'\n const apiKey = options?.apiKey\n || (typeof process !== 'undefined' && process.env?.SONOR_API_KEY)\n || ''\n\n if (!apiKey) {\n console.error('@sonordev/llms: No API key configured for getOptimizedLLMsTxt')\n return null\n }\n\n const params = new URLSearchParams()\n if (options?.full) params.set('full', 'true')\n if (options?.publicSummaryOnly) params.set('publicSummaryOnly', 'true')\n const qs = params.toString()\n const endpoint = withSiteParam(`/api/public/llms/txt${qs ? `?${qs}` : ''}`, options?.site)\n\n try {\n const response = await freshFetch(`${apiUrl}${endpoint}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'x-api-key': apiKey,\n },\n })\n\n if (!response.ok) {\n console.error(`@sonordev/llms: Optimized txt API error: ${response.status} ${response.statusText}`)\n return null\n }\n\n return await response.text()\n } catch (error) {\n console.error('@sonordev/llms: Failed to fetch optimized llms.txt:', error)\n return null\n }\n}\n","/**\n * Turn a stored industry slug into display prose.\n *\n * `business.industry` comes from a fixed enum column (professional_services,\n * home_services, …) and llms.txt is served to AI crawlers verbatim, so\n * printing the raw slug reads as a database leak rather than a description.\n */\nexport function humanizeIndustry(industry: string): string {\n const spaced = industry.replace(/[_-]+/g, ' ').trim()\n if (!spaced) return industry\n return spaced.charAt(0).toUpperCase() + spaced.slice(1)\n}\n","/**\n * @sonordev/site-kit/llms — trailing-slash shape for llms.txt's own links.\n *\n * Single source of truth for putting llms.txt links into the site's\n * trailing-slash shape. Two writers produce this text and neither knows the\n * site's next.config: Portal's AI-optimized file (built server-side from\n * `business.website` + the unslashed seo_pages path) and the local generator.\n * Both pass their output through here, so on a `trailingSlash: true` site an\n * AI crawler following a link gets the page instead of a 308. The path rule\n * itself is `applyTrailingSlash`, shared with the sitemap.\n *\n * Adds slashes only. Nothing is stripped when the site runs Next's default,\n * because the unslashed form is what both writers already emit. A slashed\n * link there was typed by a person (a custom section), and if detection ever\n * came back wrong, stripping would break links that were right.\n */\n\nimport { applyTrailingSlash } from '../sitemap/shared'\nimport { linkClassificationHost } from '../articles/processArticleHtml'\n\n/** An absolute URL in markdown or plain text. Stops at whitespace, brackets and quotes. */\nconst ABSOLUTE_URL = /https?:\\/\\/[^\\s<>()[\\]\"'`]+/g\n\n/** A root-relative markdown link target: `](/about)`. Protocol-relative `//x` is excluded. */\nconst RELATIVE_LINK_TARGET = /\\]\\((\\/(?!\\/)[^)\\s]*)/g\n\n/** Sentence punctuation that follows a bare URL but isn't part of it. */\nconst TRAILING_PUNCTUATION = /[.,;:!?]+$/\n\n/**\n * Give every link to `site` in `markdown` the trailing slash its Next config\n * serves. Links to other hosts are untouched, and so is a bare origin\n * (`https://example.com`). Hosts compare the way internal/external link\n * classification does, ignoring `www.`. Idempotent.\n *\n * @param site The site's origin or bare host (`https://example.com`, `example.com`).\n */\nexport function applyTrailingSlashToSiteLinks(\n markdown: string,\n site: string | undefined,\n trailingSlash: boolean,\n): string {\n if (!trailingSlash || !markdown) return markdown\n const siteHost = site ? linkClassificationHost(site) : ''\n\n let out = markdown.replace(RELATIVE_LINK_TARGET, (_match, path: string) => `](${applyTrailingSlash(path, true)}`)\n if (!siteHost) return out\n\n out = out.replace(ABSOLUTE_URL, raw => {\n const punctuation = raw.match(TRAILING_PUNCTUATION)?.[0] ?? ''\n const url = punctuation ? raw.slice(0, -punctuation.length) : raw\n const match = /^(https?:\\/\\/[^/?#]+)(.*)$/.exec(url)\n if (!match || linkClassificationHost(match[1]) !== siteHost) return raw\n const [, origin, rest] = match\n // A bare origin (with or without ?query/#hash) has no path to shape.\n if (!rest.startsWith('/')) return raw\n return `${origin}${applyTrailingSlash(rest, true)}${punctuation}`\n })\n return out\n}\n","/**\n * @sonordev/site-kit/llms - llms.txt Generator\n * \n * Generates llms.txt content following the llms.txt specification.\n * https://llmstxt.org/\n * \n * The llms.txt file provides a markdown-formatted overview of a website\n * specifically designed for LLM consumption. It helps AI systems understand\n * what a business does, what services it offers, and how to answer questions.\n */\n\nimport { getLLMsData } from './api'\nimport { freshFetch } from '../shared/fresh-fetch'\nimport type {\n GenerateLLMSTxtOptions,\n LLMSTxtContent,\n LLMsDataResponse,\n LLMBusinessInfo,\n LLMContactInfo,\n LLMService,\n LLMFAQItem,\n LLMPageSummary,\n LLMPortfolioItem,\n} from './types'\nimport type { SEOEntity } from '../seo/types'\nimport type { LLMsPayloadMeta } from './contract'\nimport {\n LLM_GEO_CONTRACT_VERSION,\n sanitizeLlmsDisclaimerLine,\n sanitizeLlmsPublicSummary,\n sanitizePrimaryLanguageTag,\n} from './contract'\nimport { humanizeIndustry } from './humanize-industry'\nimport { resolveArticleUrl } from '../articles/routes'\nimport { applyTrailingSlashToSiteLinks } from './links'\nimport { applyTrailingSlash, resolveTrailingSlash } from '../sitemap/shared'\n\nfunction mergeLlmsMeta(\n fallback: LLMsPayloadMeta | null | undefined,\n primary: LLMsPayloadMeta | null | undefined,\n): LLMsPayloadMeta | undefined {\n if (!primary && !fallback) return undefined\n if (!primary) return fallback ?? undefined\n if (!fallback) return primary\n return {\n contract_version: primary.contract_version ?? fallback.contract_version,\n last_updated: primary.last_updated ?? fallback.last_updated ?? null,\n primary_language: primary.primary_language ?? fallback.primary_language ?? null,\n llms_disclaimer: primary.llms_disclaimer ?? fallback.llms_disclaimer ?? null,\n }\n}\n\n/**\n * Single source of truth for the llms.txt link base (site origin).\n * Precedence: explicit `baseUrl` option → Portal/local `business.website` →\n * NEXT_PUBLIC_SITE_URL → SITE_URL. Intentionally never derived from request\n * headers — touching the Request would force the /llms.txt route dynamic and\n * break static prerendering on consumer sites.\n */\nfunction resolveBaseUrl(\n optionBaseUrl: string | undefined,\n businessWebsite: string | undefined | null,\n): string {\n const candidate =\n optionBaseUrl ||\n businessWebsite ||\n process.env.NEXT_PUBLIC_SITE_URL ||\n process.env.SITE_URL ||\n ''\n return candidate.trim().replace(/\\/+$/, '')\n}\n\n/**\n * Merge Portal data with local data. Portal fields take precedence; local fills gaps when Portal is empty.\n */\nfunction mergeLLMsData(\n portal: Partial<LLMsDataResponse> | null,\n local: LLMsDataResponse | null\n): LLMsDataResponse | null {\n if (!local) return portal as LLMsDataResponse | null\n if (!portal) return local\n return {\n meta: mergeLlmsMeta(local.meta, portal.meta),\n business: portal.business ?? local.business,\n contact: portal.contact ?? local.contact,\n services: (portal.services?.length ? portal.services : local.services) ?? [],\n faq: (portal.faq?.length ? portal.faq : local.faq) ?? [],\n pages: (portal.pages?.length ? portal.pages : local.pages) ?? [],\n portfolio: (portal.portfolio?.length ? portal.portfolio : local.portfolio) ?? [],\n }\n}\n\n/**\n * Generate llms.txt content from Portal data\n * \n * @example\n * ```ts\n * // app/llms.txt/route.ts\n * import { generateLLMsTxt } from '@sonordev/site-kit/llms'\n * \n * export async function GET() {\n * const { markdown } = await generateLLMsTxt({\n * projectId: process.env.SONOR_API_KEY!\n * })\n * \n * return new Response(markdown, {\n * headers: { 'Content-Type': 'text/plain; charset=utf-8' }\n * })\n * }\n * ```\n */\nexport async function generateLLMsTxt(\n options: GenerateLLMSTxtOptions\n): Promise<LLMSTxtContent> {\n const {\n projectId,\n baseUrl: baseUrlOption,\n site,\n trailingSlash: trailingSlashOption,\n getLocalData,\n includeBusinessInfo = true,\n includeServices = true,\n includeFAQ = true,\n includePages = true,\n includeContact = true,\n includePortfolio = true,\n includeEntities = true,\n maxFAQItems = 20,\n maxPages = 50,\n maxPortfolioItems = 20,\n maxEntities = 50,\n maxArticlesPerCluster = 5,\n publication = {},\n customSections = [],\n optionalPagePaths = [],\n linkToFullLlms = false,\n fullLlmsTxtPath = '/llms-full.txt',\n pageListNotesFromPublicSummaryOnly = false,\n headerPrimaryLanguage,\n headerDisclaimer,\n fresh = false,\n } = options\n const readFetch = fresh ? freshFetch : fetch\n\n // Fetch from Portal first, scoped to THIS sub-site so a multi-site project\n // describes the host being built rather than an arbitrary sibling.\n let data = await getLLMsData(projectId, site, fresh)\n\n // Use local data when Portal returns null or empty services\n const useLocal = getLocalData && (!data || !data.services?.length)\n if (useLocal && getLocalData) {\n try {\n const local = await getLocalData()\n data = mergeLLMsData(data ?? null, local)\n } catch (err) {\n console.warn('[site-kit] getLocalData failed:', err)\n }\n }\n \n if (!data) {\n // Return minimal content if no data\n return {\n markdown: '# Website\\n\\n> Information not available.',\n metadata: {\n generated_at: new Date().toISOString(),\n project_id: projectId || '',\n sections: [],\n }\n }\n }\n\n const headerMeta = buildHeaderMeta(\n data.meta,\n headerPrimaryLanguage,\n headerDisclaimer,\n )\n\n const baseUrl = resolveBaseUrl(baseUrlOption, data.business?.website)\n const trailingSlash = resolveTrailingSlash(trailingSlashOption)\n\n const sections: string[] = []\n const sectionNames: string[] = []\n const attemptedSections: string[] = []\n const failedSections: string[] = []\n\n // ========================================\n // Header Section (H1 + blockquote summary)\n // ========================================\n if (includeBusinessInfo && data.business) {\n const header = generateHeaderSection(data.business, headerMeta, baseUrl)\n sections.push(header)\n sectionNames.push('header')\n }\n\n // ========================================\n // About Section\n // ========================================\n if (includeBusinessInfo && data.business?.description) {\n const about = generateAboutSection(data.business)\n sections.push(about)\n sectionNames.push('about')\n }\n\n // ========================================\n // Services Section\n // ========================================\n if (includeServices && data.services?.length > 0) {\n const services = generateServicesSection(data.services)\n sections.push(services)\n sectionNames.push('services')\n }\n\n // ========================================\n // Portfolio / Case Studies Section\n // ========================================\n if (includePortfolio) {\n let portfolioItems = data.portfolio || []\n\n // If LLMs data didn't include portfolio, fetch directly from the portfolio endpoint\n if (portfolioItems.length === 0) {\n attemptedSections.push('portfolio')\n try {\n const apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io'\n const apiKey = process.env.SONOR_API_KEY || ''\n if (apiKey) {\n const response = await readFetch(`${apiUrl}/api/public/portfolio/items`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n })\n if (response.ok) {\n const result = await response.json()\n const items = result?.portfolioItems || result?.items || result || []\n portfolioItems = items.filter((item: any) => item.status === 'published')\n }\n }\n } catch (err) {\n console.warn('[site-kit/llms] Portfolio section failed:', err)\n failedSections.push('portfolio')\n }\n }\n\n if (portfolioItems.length > 0) {\n const portfolio = generatePortfolioSection(\n portfolioItems.slice(0, maxPortfolioItems),\n baseUrl\n )\n sections.push(portfolio)\n sectionNames.push('portfolio')\n }\n }\n\n // ========================================\n // Contact Section\n // ========================================\n if (includeContact && data.contact) {\n const contact = generateContactSection(data.contact)\n sections.push(contact)\n sectionNames.push('contact')\n }\n\n // ========================================\n // FAQ Section\n // ========================================\n if (includeFAQ && data.faq?.length > 0) {\n const faq = generateFAQSection(data.faq.slice(0, maxFAQItems))\n sections.push(faq)\n sectionNames.push('faq')\n }\n\n // ========================================\n // Pages Section (sitemap-like index)\n // ========================================\n // `## Optional` needs a base URL to render. Only when it will render are the\n // demoted pages pulled out of `## Site Pages`; otherwise they'd vanish from\n // the file instead of moving.\n const renderOptional = optionalPagePaths.length > 0 && Boolean(baseUrl)\n const optionalKeys = renderOptional\n ? new Set(optionalPagePaths.map(normalizeLlmsPagePath))\n : null\n // Filter BEFORE applying maxPages: moving a page to Optional frees a slot in\n // the index for the next page instead of using one up.\n const indexPages = optionalKeys\n ? (data.pages ?? []).filter(p => !optionalKeys.has(normalizeLlmsPagePath(p.path)))\n : (data.pages ?? [])\n\n if (includePages && indexPages.length > 0) {\n const pages = generatePagesSection(\n indexPages.slice(0, maxPages),\n baseUrl,\n pageListNotesFromPublicSummaryOnly,\n )\n sections.push(pages)\n sectionNames.push('pages')\n }\n\n if (renderOptional) {\n const opt = generateOptionalPagesSection(\n optionalPagePaths,\n data.pages || [],\n baseUrl,\n pageListNotesFromPublicSummaryOnly,\n trailingSlash,\n )\n if (opt) {\n sections.push(opt)\n sectionNames.push('optional')\n }\n }\n\n if (linkToFullLlms && baseUrl) {\n const fullPath = fullLlmsTxtPath.startsWith('/') ? fullLlmsTxtPath : `/${fullLlmsTxtPath}`\n const fullUrl = fullPath.startsWith('http') ? fullPath : `${baseUrl}${fullPath}`\n sections.push(\n `## Full context\\n\\n- [llms-full.txt](${fullUrl}): Expanded page index and FAQ for large-context systems.`,\n )\n sectionNames.push('full-context')\n }\n\n // ========================================\n // Knowledge Graph + Topic Clusters (parallel)\n // ========================================\n {\n type OptionalResult =\n | { kind: 'entities'; entities: SEOEntity[]; primaryEntity: SEOEntity | null }\n | { kind: 'clusters'; clusters: any[] }\n\n const optionalFetches: Promise<OptionalResult | null>[] = []\n\n if (includeEntities) {\n attemptedSections.push('knowledge-graph')\n optionalFetches.push(\n import('../seo/server-api')\n .then(async ({ getEntities, getPrimaryEntity }) => {\n const [entities, primaryEntity] = await Promise.all([\n getEntities().then(e => e.slice(0, maxEntities)),\n getPrimaryEntity(),\n ])\n return { kind: 'entities' as const, entities, primaryEntity }\n })\n .catch((err) => {\n console.warn('[site-kit/llms] Knowledge graph section failed:', err)\n failedSections.push('knowledge-graph')\n return null\n }),\n )\n }\n\n attemptedSections.push('topic-clusters')\n optionalFetches.push(\n import('../articles/server-core')\n .then(async ({ getTopicClusters }) => {\n // Same sub-site as the rest of this file, so a microsite lists only\n // its own (and project-wide) clusters.\n const clusters = await getTopicClusters({ site })\n return { kind: 'clusters' as const, clusters }\n })\n .catch((err) => {\n console.warn('[site-kit/llms] Topic clusters section failed:', err)\n failedSections.push('topic-clusters')\n return null\n }),\n )\n\n const settled = await Promise.all(optionalFetches)\n\n for (const result of settled) {\n if (!result) continue\n\n if (result.kind === 'entities') {\n if (result.entities.length > 0 || result.primaryEntity) {\n const entitySection = generateEntitySection(result.entities, result.primaryEntity, false)\n sections.push(entitySection)\n sectionNames.push('knowledge-graph')\n }\n }\n\n if (result.kind === 'clusters' && result.clusters.length > 0) {\n const clusterLines: string[] = ['## Topic Clusters', '']\n clusterLines.push('Organized content collections providing comprehensive coverage of key topics.', '')\n for (const cluster of result.clusters) {\n clusterLines.push(`### ${cluster.cluster_name}`)\n clusterLines.push(`Topic: ${cluster.core_topic}`)\n if (cluster.geo_target) clusterLines.push(`Area: ${cluster.geo_target}`)\n clusterLines.push(`Articles: ${cluster.article_count}`)\n if (cluster.target_service_page) {\n clusterLines.push(`Service page: ${baseUrl}${cluster.target_service_page}`)\n }\n\n // Enriched: list pillar page and recent articles\n if (cluster.pillar) {\n const pillarUrl = cluster.pillar.slug ? resolveArticleUrl(cluster.pillar, { ...publication, siteUrl: baseUrl }) : ''\n clusterLines.push(`Pillar: [${cluster.pillar.title || cluster.cluster_name}](${pillarUrl})`)\n }\n const supports = (cluster.supports || []) as any[]\n if (supports.length > 0) {\n const sorted = [...supports]\n .sort((a, b) => (b.published_at || '').localeCompare(a.published_at || ''))\n .slice(0, maxArticlesPerCluster)\n for (const article of sorted) {\n const articleUrl = article.slug ? resolveArticleUrl(article, { ...publication, siteUrl: baseUrl }) : ''\n const dateStr = article.published_at\n ? ` (${new Date(article.published_at).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })})`\n : ''\n clusterLines.push(`- [${article.title}](${articleUrl})${dateStr}`)\n }\n }\n\n clusterLines.push('')\n }\n sections.push(clusterLines.join('\\n'))\n sectionNames.push('topic-clusters')\n }\n }\n }\n\n // ========================================\n // Custom Sections\n // ========================================\n for (const custom of customSections) {\n sections.push(`## ${custom.title}\\n\\n${custom.content}`)\n sectionNames.push(custom.title.toLowerCase().replace(/\\s+/g, '-'))\n }\n\n return {\n // Every own-site link (pages, clusters, portfolio, custom sections) takes\n // the site's trailing-slash shape in one pass.\n markdown: applyTrailingSlashToSiteLinks(sections.join('\\n\\n---\\n\\n'), baseUrl, trailingSlash),\n metadata: {\n generated_at: new Date().toISOString(),\n project_id: projectId || '',\n sections: sectionNames,\n attempted_sections: attemptedSections.length ? attemptedSections : undefined,\n failed_sections: failedSections.length ? failedSections : undefined,\n }\n }\n}\n\n/**\n * Generate llms-full.txt with comprehensive knowledge dump\n * Use this for AI systems that can handle larger context\n */\nexport async function generateLLMsFullTxt(\n options: GenerateLLMSTxtOptions\n): Promise<LLMSTxtContent> {\n return generateLLMsTxt({\n ...options,\n includeBusinessInfo: true,\n includeServices: true,\n includeFAQ: true,\n includePages: true,\n includeContact: true,\n includePortfolio: true,\n includeEntities: true,\n maxFAQItems: 100,\n maxPages: 200,\n maxPortfolioItems: 50,\n maxEntities: 200,\n })\n}\n\n// ============================================\n// Section Generators\n// ============================================\n\nfunction buildHeaderMeta(\n base: LLMsPayloadMeta | null | undefined,\n primaryLanguageOverride?: string,\n disclaimerOverride?: string,\n): LLMsPayloadMeta | undefined {\n if (primaryLanguageOverride === undefined && disclaimerOverride === undefined) {\n return base ?? undefined\n }\n const merged: LLMsPayloadMeta = {\n contract_version: base?.contract_version ?? LLM_GEO_CONTRACT_VERSION,\n last_updated: base?.last_updated ?? null,\n primary_language: base?.primary_language ?? null,\n llms_disclaimer: base?.llms_disclaimer ?? null,\n }\n if (primaryLanguageOverride !== undefined) {\n const pl = sanitizePrimaryLanguageTag(primaryLanguageOverride)\n merged.primary_language = pl ?? merged.primary_language\n }\n if (disclaimerOverride !== undefined) {\n const d = sanitizeLlmsDisclaimerLine(disclaimerOverride)\n merged.llms_disclaimer = d ?? merged.llms_disclaimer\n }\n return merged\n}\n\nfunction generateHeaderSection(\n business: LLMBusinessInfo,\n meta?: LLMsPayloadMeta | null,\n resolvedBaseUrl?: string,\n): string {\n const lines: string[] = []\n \n // H1 with business name\n lines.push(`# ${business.name}`)\n lines.push('')\n \n // Blockquote summary (per llms.txt spec)\n const summary =\n business.tagline || business.description?.split('.')[0] || business.name\n lines.push(`> ${summary}`)\n if (meta?.last_updated) {\n lines.push(`> Content index last updated: ${meta.last_updated}`)\n }\n if (meta?.primary_language) {\n lines.push(`> Primary language: ${meta.primary_language}`)\n }\n if (meta?.llms_disclaimer) {\n lines.push(`> ${meta.llms_disclaimer}`)\n }\n \n if (business.industry) {\n lines.push('')\n lines.push(`**Industry:** ${humanizeIndustry(business.industry)}`)\n }\n \n if (business.service_area) {\n lines.push(`**Service Area:** ${business.service_area}`)\n }\n \n const website = business.website || resolvedBaseUrl\n if (website) {\n lines.push(`**Website:** ${website}`)\n }\n\n return lines.join('\\n')\n}\n\nfunction generateAboutSection(business: LLMBusinessInfo): string {\n const lines: string[] = []\n \n lines.push('## About')\n lines.push('')\n lines.push(business.description)\n \n if (business.founded) {\n lines.push('')\n lines.push(`Established: ${business.founded}`)\n }\n\n return lines.join('\\n')\n}\n\nfunction generateServicesSection(services: LLMService[]): string {\n const lines: string[] = []\n \n lines.push('## Services')\n lines.push('')\n \n for (const service of services) {\n if (service.url) {\n lines.push(`- **[${service.name}](${service.url})**: ${service.description}`)\n } else {\n lines.push(`- **${service.name}**: ${service.description}`)\n }\n }\n\n return lines.join('\\n')\n}\n\nfunction generatePortfolioSection(items: LLMPortfolioItem[], baseUrl: string): string {\n const lines: string[] = []\n\n lines.push('## Portfolio & Case Studies')\n lines.push('')\n\n for (const item of items) {\n const url = item.live_url || (item.slug ? `${baseUrl}/portfolio/${item.slug}` : '')\n\n if (url) {\n lines.push(`### [${item.title}](${url})`)\n } else {\n lines.push(`### ${item.title}`)\n }\n lines.push('')\n\n if (item.description) {\n lines.push(item.description)\n lines.push('')\n }\n\n const meta: string[] = []\n if (item.category) {\n meta.push(`**Category:** ${item.category}`)\n }\n if (item.services?.length) {\n meta.push(`**Services:** ${item.services.join(', ')}`)\n }\n if (item.live_url) {\n meta.push(`**Live Site:** ${item.live_url}`)\n }\n\n if (meta.length > 0) {\n lines.push(meta.join(' | '))\n lines.push('')\n }\n }\n\n return lines.join('\\n').trim()\n}\n\nfunction generateContactSection(contact: LLMContactInfo): string {\n const lines: string[] = []\n \n lines.push('## Contact Information')\n lines.push('')\n \n if (contact.phone) {\n lines.push(`- **Phone:** ${contact.phone}`)\n }\n if (contact.email) {\n lines.push(`- **Email:** ${contact.email}`)\n }\n if (contact.address || contact.city) {\n const addressParts = [\n contact.address,\n contact.city,\n contact.state,\n contact.postal_code,\n contact.country\n ].filter(Boolean)\n lines.push(`- **Address:** ${addressParts.join(', ')}`)\n }\n if (contact.hours) {\n lines.push(`- **Hours:** ${contact.hours}`)\n }\n\n return lines.join('\\n')\n}\n\nfunction generateFAQSection(faq: LLMFAQItem[]): string {\n const lines: string[] = []\n \n lines.push('## Frequently Asked Questions')\n lines.push('')\n \n for (const item of faq) {\n lines.push(`### ${item.question}`)\n lines.push('')\n lines.push(item.answer)\n lines.push('')\n }\n\n return lines.join('\\n').trim()\n}\n\nfunction pageListNote(\n page: LLMPageSummary,\n publicSummaryOnly: boolean,\n): string | undefined {\n const pub = sanitizeLlmsPublicSummary(page.llms_public_summary)\n if (pub) return pub\n if (publicSummaryOnly) return undefined\n if (page.description) return page.description.replace(/[\\[\\]\\r\\n]/g, ' ').trim()\n return undefined\n}\n\n/**\n * Single source of truth for matching an `optionalPagePaths` entry to a page:\n * leading slash added, one trailing slash ignored, empty → `/`. Used both to\n * pull demoted pages out of `## Site Pages` and to find them for `## Optional`,\n * so the two sections can't disagree about which page a path means.\n */\nfunction normalizeLlmsPagePath(path: string): string {\n const withLeading = path.startsWith('/') ? path : `/${path}`\n return withLeading.replace(/\\/$/, '') || '/'\n}\n\n/**\n * The `- [title](url): note` line for a known page. Shared by `## Site Pages`\n * and `## Optional` so a page moved to Optional keeps the URL and note it had\n * in the index. Moving a page doesn't change where it links.\n */\nfunction formatPageLine(\n page: LLMPageSummary,\n baseUrl: string,\n publicSummaryOnly: boolean,\n): string {\n const url = page.path.startsWith('http') ? page.path : `${baseUrl}${page.path}`\n const note = pageListNote(page, publicSummaryOnly)\n return note ? `- [${page.title}](${url}): ${note}` : `- [${page.title}](${url})`\n}\n\nfunction generatePagesSection(\n pages: LLMPageSummary[],\n baseUrl: string,\n publicSummaryOnly: boolean,\n): string {\n const lines: string[] = []\n\n lines.push('## Site Pages')\n lines.push('')\n\n for (const page of pages) {\n lines.push(formatPageLine(page, baseUrl, publicSummaryOnly))\n }\n\n return lines.join('\\n')\n}\n\nfunction generateOptionalPagesSection(\n paths: string[],\n pages: LLMPageSummary[],\n baseUrl: string,\n publicSummaryOnly: boolean,\n trailingSlash: boolean,\n): string | null {\n // First row wins, matching the index order the API already prioritised.\n const byPath = new Map<string, LLMPageSummary>()\n for (const page of pages) {\n const key = normalizeLlmsPagePath(page.path)\n if (!byPath.has(key)) byPath.set(key, page)\n }\n const lines: string[] = ['## Optional', '']\n // `/privacy` and `/privacy/` are one page, so they get one line.\n const seen = new Set<string>()\n for (const raw of paths) {\n const key = normalizeLlmsPagePath(raw)\n if (seen.has(key)) continue\n seen.add(key)\n const match = byPath.get(key)\n if (match) {\n lines.push(formatPageLine(match, baseUrl, publicSummaryOnly))\n continue\n }\n // Not in the page list, so all we have is the path as the caller wrote it,\n // shaped the way the site serves it. This used to force a slash onto\n // every such path, which 308s on a default (trailingSlash: false) site.\n const title = key.split('/').filter(Boolean).pop() || key\n lines.push(`- [${title}](${baseUrl}${applyTrailingSlash(key, trailingSlash)})`)\n }\n return seen.size > 0 ? lines.join('\\n') : null\n}\n\nfunction generateEntitySection(\n entities: SEOEntity[],\n primaryEntity: SEOEntity | null,\n detailed: boolean\n): string {\n const lines: string[] = []\n\n lines.push('## Knowledge Graph')\n lines.push('')\n\n // Primary entity first\n if (primaryEntity) {\n lines.push(`### ${primaryEntity.name} (Primary)`)\n lines.push('')\n lines.push(`- **Type:** ${primaryEntity.entity_type}`)\n if (primaryEntity.schema_type) {\n lines.push(`- **Schema:** ${primaryEntity.schema_type}`)\n }\n if (detailed && primaryEntity.knows_about?.length) {\n lines.push(`- **Knows About:** ${primaryEntity.knows_about.join(', ')}`)\n }\n if (detailed && primaryEntity.same_as?.length) {\n lines.push(`- **Same As:** ${primaryEntity.same_as.join(', ')}`)\n }\n lines.push('')\n }\n\n // Group remaining entities by type\n const grouped = new Map<string, SEOEntity[]>()\n for (const entity of entities) {\n if (primaryEntity && entity.id === primaryEntity.id) continue\n const type = entity.entity_type\n if (!grouped.has(type)) grouped.set(type, [])\n grouped.get(type)!.push(entity)\n }\n\n for (const [type, group] of grouped) {\n const label = type.charAt(0).toUpperCase() + type.slice(1) + 's'\n lines.push(`### ${label}`)\n lines.push('')\n for (const entity of group) {\n if (detailed) {\n lines.push(`- **${entity.name}**`)\n if (entity.knows_about?.length) {\n lines.push(` - Knows About: ${entity.knows_about.join(', ')}`)\n }\n if (entity.same_as?.length) {\n lines.push(` - Same As: ${entity.same_as.join(', ')}`)\n }\n } else {\n lines.push(`- ${entity.name}`)\n }\n }\n lines.push('')\n }\n\n return lines.join('\\n').trim()\n}\n\nexport default generateLLMsTxt\n","/**\n * @sonordev/site-kit/llms - Build-Time Write\n *\n * Fetches AI-optimized llms.txt from Portal API and writes to public/llms.txt\n * at build time. Integrates with sitemap flow when optimizedLLMsTxt is enabled.\n */\n\nimport type { PublicationRoutingOptions } from '../articles/routes'\nimport { writeFileSync, mkdirSync, existsSync, renameSync, unlinkSync } from 'fs'\nimport { join } from 'path'\nimport { getOptimizedLLMsTxt } from './api'\nimport { generateLLMsTxt, generateLLMsFullTxt } from './generateLLMsTxt'\nimport type { LLMsDataResponse, LLMSTxtContent } from './types'\nimport { applyTrailingSlashToSiteLinks } from './links'\nimport { resolveTrailingSlash } from '../sitemap/shared'\nimport { resolveSiteHost } from '../sites/resolve'\n\nexport interface LLMsCustomSection {\n title: string\n content: string\n}\n\nexport interface WriteLLMsTxtOptions {\n /** Output directory (default: public, relative to cwd) */\n outputDir?: string\n /** Write llms-full.txt as well */\n full?: boolean\n /** Portal API URL */\n apiUrl?: string\n /** Portal API key */\n apiKey?: string\n /** Fallback to non-optimized when API fails */\n fallbackToLocal?: boolean\n /**\n * Sub-site host this build belongs to (e.g. `bd-charlotte.com`). Scopes the\n * page index to THIS domain: one Sonor project can host many domains, and\n * seo_pages then holds one row PER HOST for shared paths like `/` and\n * `/terms`. Without it the API resolves an arbitrary sibling's row, so each\n * build described whichever neighbour happened to sync last. Omit to resolve\n * from NEXT_PUBLIC_SITE_URL via the shared `resolveSiteHost`.\n */\n site?: string\n /**\n * Where the site's articles live, for topic-cluster links in a locally\n * generated file (e.g. `{ basePath: '/insights' }`). Defaults to /articles.\n */\n publication?: PublicationRoutingOptions\n /**\n * Match Next's `trailingSlash` in the written files' links to this site.\n * Portal builds its links from unslashed paths, so on a `trailingSlash: true`\n * site they're rewritten here before the write. createSitemap passes its\n * resolved value. The default reads next.config through Next's bundle,\n * which a plain-Node postbuild script doesn't have, so pass it explicitly\n * there.\n */\n trailingSlash?: boolean\n /** When Portal returns empty services/faq/pages, use this to supply local site data */\n getLocalData?: () => Promise<LLMsDataResponse | null>\n /** Forward to GET /api/public/llms/txt and align local fallback with site-kit strict page notes */\n publicSummaryOnly?: boolean\n /**\n * Site-authored sections appended to llms-full.txt (never llms.txt — that\n * file stays a compact index). Applied on BOTH content paths: appended to\n * the Portal-optimized markdown, and forwarded to the local generator's\n * customSections on fallback. A function form is resolved at write time so\n * sites can build sections from local data (e.g. a verified citation\n * registry → a \"Sourced facts\" section via formatSourcedFactsSection).\n * Sections are only ever appended to real base content — they can never\n * cause a customs-only file to be written.\n */\n customSections?:\n | LLMsCustomSection[]\n | (() => Promise<LLMsCustomSection[] | null> | LLMsCustomSection[] | null)\n}\n\n/**\n * Fetch optimized llms.txt from Portal and write to public/llms.txt\n * Called at build time after sitemap sync (when optimizedLLMsTxt is enabled)\n *\n * Never persists a failure stub: when neither the Portal API nor local data\n * yields real content, the write is skipped entirely so a previously\n * generated (or committed) file keeps serving.\n */\nexport async function writeLLMsTxtToPublic(\n options: WriteLLMsTxtOptions = {}\n): Promise<{ success: boolean; path: string; optimized: boolean }> {\n const {\n outputDir = 'public',\n full = false,\n apiUrl,\n apiKey,\n fallbackToLocal = true,\n site,\n publication,\n trailingSlash: trailingSlashOption,\n getLocalData,\n publicSummaryOnly,\n customSections,\n } = options\n const trailingSlash = resolveTrailingSlash(trailingSlashOption)\n // Which links are this site's: the host the reads are scoped to.\n const linkHost = resolveSiteHost(site)\n const shapeLinks = (md: string) => applyTrailingSlashToSiteLinks(md, linkHost, trailingSlash)\n\n const cwd = typeof process !== 'undefined' ? process.cwd() : '.'\n const outPath = join(cwd, outputDir)\n const llmsPath = join(outPath, 'llms.txt')\n const llmsFullPath = join(outPath, 'llms-full.txt')\n\n // Ensure output directory exists\n if (!existsSync(outPath)) {\n mkdirSync(outPath, { recursive: true })\n }\n\n const apiOptions = { apiUrl, apiKey, publicSummaryOnly, site }\n\n const genOpts = {\n site,\n publication,\n trailingSlash,\n getLocalData,\n pageListNotesFromPublicSummaryOnly: !!publicSummaryOnly,\n // This writes a file that outlives the build, so every Sonor read behind\n // it bypasses Next's Data Cache (getOptimizedLLMsTxt always does).\n fresh: true,\n }\n\n // Fetch optimized content\n let markdown = toWritableMarkdown(await getOptimizedLLMsTxt({ ...apiOptions, full: false }))\n let optimized = !!markdown\n\n if (!markdown && fallbackToLocal) {\n console.warn('[site-kit] Optimized llms.txt unavailable, using local generation')\n const result = await generateLLMsTxt(genOpts)\n markdown = toWritableMarkdown(result.markdown, result.metadata)\n }\n\n if (!markdown) {\n console.warn(\n `[site-kit] llms.txt unavailable (Portal fetch failed, no local data) — skipped write, keeping any existing file at ${llmsPath}`\n )\n return { success: false, path: llmsPath, optimized: false }\n }\n\n atomicWriteSync(llmsPath, shapeLinks(markdown))\n console.log(`[site-kit] Wrote llms.txt to ${llmsPath}`)\n\n if (full) {\n const sections = await resolveCustomSections(customSections)\n\n let fullMarkdown = toWritableMarkdown(await getOptimizedLLMsTxt({ ...apiOptions, full: true }))\n if (fullMarkdown && sections.length > 0) {\n // Portal path returns finished markdown — append the site's sections.\n fullMarkdown = appendCustomSections(fullMarkdown, sections)\n }\n if (!fullMarkdown && fallbackToLocal) {\n // Local path — the generator appends customSections itself.\n const result = await generateLLMsFullTxt({ ...genOpts, customSections: sections })\n fullMarkdown = toWritableMarkdown(result.markdown, result.metadata)\n }\n if (fullMarkdown) {\n atomicWriteSync(llmsFullPath, shapeLinks(fullMarkdown))\n console.log(`[site-kit] Wrote llms-full.txt to ${llmsFullPath}`)\n } else {\n console.warn(\n `[site-kit] llms-full.txt unavailable — skipped write, keeping any existing file at ${llmsFullPath}`\n )\n }\n }\n\n return { success: true, path: llmsPath, optimized }\n}\n\n/**\n * Single source of truth for \"is this real llms.txt content that may be\n * persisted?\" — applied to both the optimized Portal response and the\n * local-generation fallback (llms.txt and llms-full.txt).\n *\n * generateLLMsTxt returns an \"Information not available.\" stub with zero\n * metadata.sections when the Portal fetch and local data both fail. Stubs and\n * empty responses must never reach disk: consumer route handlers serve\n * public/llms.txt with preferStatic, so a single failed build would replace a\n * good file and keep serving the stub to AI crawlers until the next\n * successful build.\n */\nfunction toWritableMarkdown(\n markdown: string | null | undefined,\n metadata?: LLMSTxtContent['metadata'],\n): string | null {\n if (!markdown || !markdown.trim()) return null\n if (metadata && metadata.sections.length === 0) return null\n return markdown\n}\n\n/**\n * Resolve the customSections option (array or factory) defensively: a\n * throwing/rejecting factory or malformed entries must never break the\n * write of the base file — the sections are an enhancement, not a gate.\n */\nasync function resolveCustomSections(\n input: WriteLLMsTxtOptions['customSections'],\n): Promise<LLMsCustomSection[]> {\n if (!input) return []\n try {\n const raw = typeof input === 'function' ? await input() : input\n if (!Array.isArray(raw)) return []\n return raw.filter(\n (s): s is LLMsCustomSection =>\n !!s && typeof s.title === 'string' && !!s.title.trim() &&\n typeof s.content === 'string' && !!s.content.trim(),\n )\n } catch (err) {\n console.warn('[site-kit] llms customSections factory failed — sections skipped:', err)\n return []\n }\n}\n\n/** Append site sections in the generator's own section format. */\nfunction appendCustomSections(markdown: string, sections: LLMsCustomSection[]): string {\n const blocks = sections.map((s) => `## ${s.title}\\n\\n${s.content}`)\n return `${markdown.replace(/\\s+$/, '')}\\n\\n---\\n\\n${blocks.join('\\n\\n---\\n\\n')}\\n`\n}\n\n/**\n * Atomic write: write to .tmp then rename (POSIX atomic).\n * Prevents corrupted files on crash or disk-full.\n */\nfunction atomicWriteSync(filePath: string, content: string): void {\n const tmp = `${filePath}.tmp`\n try {\n writeFileSync(tmp, content, 'utf-8')\n renameSync(tmp, filePath)\n } catch (err) {\n // Clean up temp file on failure\n try { unlinkSync(tmp) } catch { /* ignore */ }\n throw err\n }\n}\n"]}
@@ -1,260 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkBBBJHYPH_js = require('./chunk-BBBJHYPH.js');
4
- var chunkO5GHP7UO_js = require('./chunk-O5GHP7UO.js');
5
- var chunkIBJOGXQI_js = require('./chunk-IBJOGXQI.js');
6
- var react = require('react');
7
- require('server-only');
8
-
9
- // src/seo/schema-filter.ts
10
- function typesOf(node) {
11
- const t = node["@type"];
12
- return Array.isArray(t) ? t.filter((x) => typeof x === "string") : typeof t === "string" ? [t] : [];
13
- }
14
- function isPlainObject(value) {
15
- return !!value && typeof value === "object" && !Array.isArray(value);
16
- }
17
- function isEmptyNode(node) {
18
- const keys = Object.keys(node).filter((k) => k !== "@context");
19
- if (!keys.length) return true;
20
- return keys.length === 1 && keys[0] === "@graph" && Array.isArray(node["@graph"]) && node["@graph"].length === 0;
21
- }
22
- function pruneSchemaTypes(value, deny) {
23
- if (!deny.size) return value;
24
- if (Array.isArray(value)) {
25
- const kept = value.map((v) => pruneSchemaTypes(v, deny)).filter((v) => v !== null);
26
- return kept;
27
- }
28
- if (!isPlainObject(value)) return value;
29
- if (typesOf(value).some((t) => deny.has(t))) return null;
30
- const out = {};
31
- for (const [key, child] of Object.entries(value)) {
32
- const next = pruneSchemaTypes(child, deny);
33
- if (next === null) continue;
34
- if (Array.isArray(next) && next.length === 0 && Array.isArray(child) && child.length > 0 && key !== "@graph") {
35
- continue;
36
- }
37
- out[key] = next;
38
- }
39
- return isEmptyNode(out) && !isEmptyNode(value) ? null : out;
40
- }
41
- function filterSchemaRows(rows, { includeTypes, excludeTypes } = {}) {
42
- let out = rows;
43
- if (includeTypes?.length) {
44
- const allow = new Set(includeTypes);
45
- out = out.filter((r) => r?.schema_type && allow.has(r.schema_type));
46
- }
47
- if (excludeTypes?.length) {
48
- const deny = new Set(excludeTypes);
49
- out = out.flatMap((r) => {
50
- if (r?.schema_type && deny.has(r.schema_type)) return [];
51
- if (r?.schema_json === void 0) return [r];
52
- const json = pruneSchemaTypes(r.schema_json, deny);
53
- return json === null ? [] : [{ ...r, schema_json: json }];
54
- });
55
- }
56
- return out;
57
- }
58
-
59
- // src/seo/server-api.ts
60
- var SEO_LOG_PREFIX = "@sonordev/seo";
61
- function getSecureApiConfig() {
62
- return chunkO5GHP7UO_js.requireServerApiConfig(
63
- {},
64
- "@sonordev/seo: SONOR_API_KEY environment variable is required for server-side SEO functions"
65
- );
66
- }
67
- function getProjectIdFromKey(apiKey) {
68
- const match = apiKey.match(/^sonor_([0-9a-f-]{36})_/);
69
- return match ? match[1] : null;
70
- }
71
- function secureApiPost(endpoint, body = {}, revalidate = 86400) {
72
- return chunkO5GHP7UO_js.serverApiFetch(endpoint, {
73
- method: "POST",
74
- body,
75
- revalidate,
76
- requireKey: true,
77
- retry: true,
78
- logPrefix: SEO_LOG_PREFIX
79
- });
80
- }
81
- var loadPageSeoContext = react.cache(async (path) => {
82
- const result = await secureApiPost("/api/public/seo/page-context", { path });
83
- if (!result) return null;
84
- return {
85
- page: result.page ?? null,
86
- schemas: Array.isArray(result.schemas) ? result.schemas : [],
87
- project: result.project ?? null
88
- };
89
- });
90
- var getSEOPageData = react.cache(async (path) => {
91
- const ctx = await loadPageSeoContext(path);
92
- return {
93
- page: ctx?.page ?? null,
94
- project: ctx?.project ?? null
95
- };
96
- });
97
- var getSchemaMarkups = react.cache(async (path, options) => {
98
- const ctx = await loadPageSeoContext(path);
99
- return filterSchemaRows(ctx?.schemas ?? [], options);
100
- });
101
- var getFAQData = react.cache(async (path, site) => {
102
- const result = await secureApiPost("/api/public/seo/faq", chunkBBBJHYPH_js.withSiteBody({ path }, site));
103
- return result?.faq || null;
104
- });
105
- var getInternalLinks = react.cache(async (sourcePath, options) => {
106
- const result = await secureApiPost(
107
- "/api/public/seo/internal-links",
108
- chunkBBBJHYPH_js.withSiteBody(
109
- {
110
- sourcePath,
111
- position: options?.position,
112
- limit: options?.limit
113
- },
114
- options?.site
115
- )
116
- );
117
- return result?.links || [];
118
- });
119
- var getContentBlock = react.cache(async (path, section, site) => {
120
- const result = await secureApiPost("/api/public/seo/content", chunkBBBJHYPH_js.withSiteBody({ path, section }, site));
121
- return result?.content || null;
122
- });
123
- var getABTest = react.cache(async (path, field) => {
124
- const result = await secureApiPost("/api/public/seo/ab-test", { path, field });
125
- return result?.test || null;
126
- });
127
- async function recordABImpression(testId, variant, sessionId) {
128
- await secureApiPost("/api/public/seo/ab-impression", { testId, variant, sessionId });
129
- }
130
- var getRedirectData = react.cache(async (path) => {
131
- const result = await secureApiPost("/api/public/seo/redirect", { path });
132
- return result?.redirect || null;
133
- });
134
- var getManagedScripts = react.cache(async (position, currentPath) => {
135
- const result = await secureApiPost("/api/public/seo/scripts", {
136
- position,
137
- currentPath
138
- });
139
- return result?.scripts || [];
140
- });
141
- var getRobotsData = react.cache(async (path) => {
142
- const { page } = await getSEOPageData(path);
143
- return page?.managed_robots || null;
144
- });
145
- var getSitemapEntries = react.cache(async (options) => {
146
- const result = await secureApiPost("/api/public/seo/sitemap", {
147
- publishedOnly: options?.publishedOnly
148
- });
149
- return result?.entries || [];
150
- });
151
- async function registerSitemap(entries, options) {
152
- const { apiUrl, apiKey } = getSecureApiConfig();
153
- const mode = options?.mode ?? "full-replace";
154
- try {
155
- const response = await chunkIBJOGXQI_js.postRegisterSitemap({ apiUrl, apiKey, entries, mode, site: chunkIBJOGXQI_js.resolveSyncSite(options?.site) });
156
- if (!response.ok) {
157
- console.error(`@sonordev/seo: Sitemap registration failed: ${response.statusText}`);
158
- return { success: false, created: 0, updated: 0 };
159
- }
160
- return await response.json();
161
- } catch (error) {
162
- console.error("@sonordev/seo: Sitemap registration error:", error);
163
- return { success: false, created: 0, updated: 0 };
164
- }
165
- }
166
- var ensureMetadata = react.cache(async (path) => {
167
- return secureApiPost("/api/public/seo/ensure-metadata", { path });
168
- });
169
- function getSignalApiConfig() {
170
- const apiUrl = process.env.SONOR_SIGNAL_URL || process.env.SIGNAL_API_URL || process.env.NEXT_PUBLIC_SIGNAL_API_URL || "https://signal.sonor.io";
171
- const apiKey = process.env.SONOR_API_KEY || "";
172
- return { apiUrl, apiKey };
173
- }
174
- async function signalApiGet(endpoint) {
175
- const { apiUrl, apiKey } = getSignalApiConfig();
176
- if (!apiKey) {
177
- return null;
178
- }
179
- try {
180
- const response = await fetch(`${apiUrl}${endpoint}`, {
181
- method: "GET",
182
- headers: {
183
- "Content-Type": "application/json",
184
- "x-api-key": apiKey
185
- },
186
- next: { revalidate: 300 }
187
- // Cache for 5 minutes
188
- });
189
- if (!response.ok) {
190
- return null;
191
- }
192
- const result = await response.json();
193
- return result?.data || result;
194
- } catch (error) {
195
- console.error("@sonordev/seo: Signal API error:", error);
196
- return null;
197
- }
198
- }
199
- var getEntities = react.cache(async (options) => {
200
- const { apiKey } = getSecureApiConfig();
201
- const projectId = getProjectIdFromKey(apiKey);
202
- if (!projectId) return [];
203
- let endpoint = `/skills/seo/entities/${projectId}`;
204
- if (options?.type) {
205
- endpoint += `?type=${options.type}`;
206
- }
207
- const result = await signalApiGet(endpoint);
208
- return result || [];
209
- });
210
- var getPrimaryEntity = react.cache(async () => {
211
- const { apiKey } = getSecureApiConfig();
212
- const projectId = getProjectIdFromKey(apiKey);
213
- if (!projectId) return null;
214
- return signalApiGet(`/skills/seo/entities/${projectId}/primary`);
215
- });
216
- var getEntityEnhancedSchema = react.cache(async (pagePath) => {
217
- const { apiKey } = getSecureApiConfig();
218
- const projectId = getProjectIdFromKey(apiKey);
219
- if (!projectId) return [];
220
- const result = await signalApiGet(
221
- `/skills/seo/schema/${projectId}/entity-enhanced?pagePath=${encodeURIComponent(pagePath)}`
222
- );
223
- return result?.schemas || [];
224
- });
225
- var getVisibilityScore = react.cache(async (pagePath) => {
226
- const { apiKey } = getSecureApiConfig();
227
- const projectId = getProjectIdFromKey(apiKey);
228
- if (!projectId) return null;
229
- const result = await signalApiGet(`/skills/seo/visibility/${projectId}`);
230
- if (!result) return null;
231
- return result.find((s) => s.page_path === pagePath) || null;
232
- });
233
- var getVisibilitySummary = react.cache(async () => {
234
- const { apiKey } = getSecureApiConfig();
235
- const projectId = getProjectIdFromKey(apiKey);
236
- if (!projectId) return null;
237
- return signalApiGet(`/skills/seo/visibility/${projectId}/summary`);
238
- });
239
-
240
- exports.ensureMetadata = ensureMetadata;
241
- exports.getABTest = getABTest;
242
- exports.getContentBlock = getContentBlock;
243
- exports.getEntities = getEntities;
244
- exports.getEntityEnhancedSchema = getEntityEnhancedSchema;
245
- exports.getFAQData = getFAQData;
246
- exports.getInternalLinks = getInternalLinks;
247
- exports.getManagedScripts = getManagedScripts;
248
- exports.getPrimaryEntity = getPrimaryEntity;
249
- exports.getRedirectData = getRedirectData;
250
- exports.getRobotsData = getRobotsData;
251
- exports.getSEOPageData = getSEOPageData;
252
- exports.getSchemaMarkups = getSchemaMarkups;
253
- exports.getSitemapEntries = getSitemapEntries;
254
- exports.getVisibilityScore = getVisibilityScore;
255
- exports.getVisibilitySummary = getVisibilitySummary;
256
- exports.pruneSchemaTypes = pruneSchemaTypes;
257
- exports.recordABImpression = recordABImpression;
258
- exports.registerSitemap = registerSitemap;
259
- //# sourceMappingURL=chunk-OSU4QA5M.js.map
260
- //# sourceMappingURL=chunk-OSU4QA5M.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/seo/schema-filter.ts","../src/seo/server-api.ts"],"names":["requireServerApiConfig","serverApiFetch","cache","withSiteBody","postRegisterSitemap","resolveSyncSite"],"mappings":"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","file":"chunk-OSU4QA5M.js","sourcesContent":["/**\n * @sonordev/site-kit/seo — `includeTypes` / `excludeTypes` for JSON-LD.\n *\n * SINGLE SOURCE OF TRUTH for the ManagedSchema type filter, used for Sonor's\n * schema-markup rows (`getSchemaMarkups`) and for the page's\n * `managed_schema` and entity-graph nodes (`ManagedSchema`).\n *\n * `excludeTypes` used to drop a row only when its `schema_type` matched\n * exactly, so a node of that type nested INSIDE a row got through. Found\n * 2026-09-15 on the MDG Green Bay site: the Georgetown and Westbrooke pages\n * carry a page-level row whose JSON-LD embeds a FAQPage for questions the\n * page doesn't show, and structured data has to describe visible content.\n * `excludeTypes: ['FAQPage']` couldn't touch it; the site template dropped\n * FAQPage nodes by hand and re-added the rows. Now an excluded type goes\n * wherever it sits: a whole row, an `@graph` member, or a nested value\n * (`mainEntity`, `hasPart`). A row left with nothing in it is dropped.\n *\n * `includeTypes` stays a row-level allow list on `schema_type`.\n *\n * Pure: no I/O.\n */\n\ntype Json = unknown\n\n/** A node's `@type`, as a list (`@type` may be a string or an array). */\nfunction typesOf(node: Record<string, unknown>): string[] {\n const t = node['@type']\n return Array.isArray(t) ? t.filter((x): x is string => typeof x === 'string') : typeof t === 'string' ? [t] : []\n}\n\nfunction isPlainObject(value: Json): value is Record<string, unknown> {\n return !!value && typeof value === 'object' && !Array.isArray(value)\n}\n\n/** Nothing left worth emitting: no keys but `@context`, and an empty or missing `@graph`. */\nfunction isEmptyNode(node: Record<string, unknown>): boolean {\n const keys = Object.keys(node).filter(k => k !== '@context')\n if (!keys.length) return true\n return keys.length === 1 && keys[0] === '@graph' && Array.isArray(node['@graph']) && node['@graph'].length === 0\n}\n\n/**\n * The same JSON-LD with every node whose `@type` is in `deny` removed, at any\n * depth. Returns null when the value itself is removed or nothing is left.\n * Doesn't mutate its input.\n */\nexport function pruneSchemaTypes(value: Json, deny: ReadonlySet<string>): Json | null {\n if (!deny.size) return value\n if (Array.isArray(value)) {\n const kept = value.map(v => pruneSchemaTypes(v, deny)).filter(v => v !== null)\n return kept\n }\n if (!isPlainObject(value)) return value\n if (typesOf(value).some(t => deny.has(t))) return null\n\n const out: Record<string, unknown> = {}\n for (const [key, child] of Object.entries(value)) {\n const next = pruneSchemaTypes(child, deny)\n if (next === null) continue\n // A property whose every node was excluded goes, rather than shipping [].\n if (Array.isArray(next) && next.length === 0 && Array.isArray(child) && child.length > 0 && key !== '@graph') {\n continue\n }\n out[key] = next\n }\n return isEmptyNode(out) && !isEmptyNode(value) ? null : out\n}\n\nexport interface SchemaTypeFilter {\n includeTypes?: string[]\n excludeTypes?: string[]\n}\n\n/**\n * Apply the filter to Sonor's schema-markup rows: `includeTypes` keeps rows\n * whose `schema_type` it names; `excludeTypes` drops matching rows and prunes\n * matching nodes out of the rest.\n */\nexport function filterSchemaRows<T extends { schema_type?: string; schema_json?: unknown }>(\n rows: T[],\n { includeTypes, excludeTypes }: SchemaTypeFilter = {},\n): T[] {\n let out = rows\n if (includeTypes?.length) {\n const allow = new Set(includeTypes)\n out = out.filter(r => r?.schema_type && allow.has(r.schema_type))\n }\n if (excludeTypes?.length) {\n const deny = new Set(excludeTypes)\n out = out.flatMap(r => {\n if (r?.schema_type && deny.has(r.schema_type)) return []\n if (r?.schema_json === undefined) return [r]\n const json = pruneSchemaTypes(r.schema_json, deny)\n return json === null ? [] : [{ ...r, schema_json: json }]\n })\n }\n return out\n}\n","/**\n * @sonordev/site-kit/seo - Server-Only API Functions\n * \n * SECURITY: These functions use private environment variables\n * and should ONLY be imported in server-side code (RSC, API routes, server actions).\n * \n * DO NOT import this file in client components or it will expose API keys.\n */\n\nimport { cache } from 'react'\nimport 'server-only' // This ensures the module can only be imported server-side\nimport { requireServerApiConfig, serverApiFetch } from '../server/server-fetch'\nimport { withSiteBody } from '../sites/site-param'\nimport { filterSchemaRows } from './schema-filter'\nimport { postRegisterSitemap, resolveSyncSite } from './register-sitemap-request'\n\n// ============================================\n// Server-Only API Config\n// ============================================\n\nconst SEO_LOG_PREFIX = '@sonordev/seo'\n\n/**\n * Config for portal API calls. Project is resolved by the portal from the API key;\n * sites never send or read project ID.\n *\n * Delegates to the shared `requireServerApiConfig` (single source of truth for\n * server API config — see `../server/server-fetch`) with an SEO-specific message.\n */\nfunction getSecureApiConfig() {\n return requireServerApiConfig(\n {},\n '@sonordev/seo: SONOR_API_KEY environment variable is required for server-side SEO functions',\n )\n}\n\n/** Derive project ID from API key for Signal API only (format: sonor_{uuid}_{secret}). Not used for portal. */\nfunction getProjectIdFromKey(apiKey: string): string | null {\n const match = apiKey.match(/^sonor_([0-9a-f-]{36})_/)\n return match ? match[1] : null\n}\n\n/**\n * POST to the Portal public API. Retries transient 429/502/503 with backoff\n * (parallel SSG workers behind one egress IP). 24h default revalidate — SEO data\n * rarely changes; Portal can on-demand revalidate. Throws if no API key is set.\n *\n * Thin wrapper over the shared `serverApiFetch` so the retry/backoff lives in one\n * place (see `../server/server-fetch`).\n */\nfunction secureApiPost<T>(endpoint: string, body: Record<string, any> = {}, revalidate = 86400): Promise<T | null> {\n return serverApiFetch<T>(endpoint, {\n method: 'POST',\n body,\n revalidate,\n requireKey: true,\n retry: true,\n logPrefix: SEO_LOG_PREFIX,\n })\n}\n\n/** GET from the Portal public API (single attempt, 24h revalidate). Throws if no API key is set. */\nfunction secureApiGet<T>(endpoint: string): Promise<T | null> {\n return serverApiFetch<T>(endpoint, {\n method: 'GET',\n revalidate: 86400,\n requireKey: true,\n retry: false,\n logPrefix: SEO_LOG_PREFIX,\n })\n}\n\n// ============================================\n// Secure Cached Data Fetchers\n// ============================================\n\n/** Response shape for POST /api/public/seo/page-context */\nexport type PageSeoContext = {\n page: any | null\n schemas: any[]\n project: {\n id: string\n title?: string | null\n /** Resolved site brand (settings.business_name → title/org name). Grounds the managed-title quality gate. */\n brand?: string | null\n domain?: string | null\n logo_url?: string | null\n site_url?: string | null\n } | null\n}\n\n/**\n * One Portal round-trip per path (page row + schemas + project).\n * React cache() dedupes when getSEOPageData + getSchemaMarkups run in the same render (e.g. metadata + ManagedSchema).\n * @server-only\n */\nconst loadPageSeoContext = cache(async (path: string): Promise<PageSeoContext | null> => {\n const result = await secureApiPost<PageSeoContext>('/api/public/seo/page-context', { path })\n if (!result) return null\n return {\n page: result.page ?? null,\n schemas: Array.isArray(result.schemas) ? result.schemas : [],\n project: result.project ?? null,\n }\n})\n\n/**\n * Fetch SEO page data - cached per request\n * @server-only\n */\nexport const getSEOPageData = cache(async (path: string) => {\n const ctx = await loadPageSeoContext(path)\n return {\n page: ctx?.page ?? null,\n project: ctx?.project ?? null,\n }\n})\n\n/**\n * Fetch schema markups for a page - cached per request (shares loadPageSeoContext with getSEOPageData)\n * @server-only\n */\nexport const getSchemaMarkups = cache(async (\n path: string,\n options?: { includeTypes?: string[]; excludeTypes?: string[] }\n) => {\n const ctx = await loadPageSeoContext(path)\n // Single source of truth for the type filter (also applied to\n // managed_schema in ManagedSchema): an excluded type is pruned wherever it\n // sits in a row, not only when it's the row's schema_type.\n return filterSchemaRows(ctx?.schemas ?? [], options)\n})\n\n// Managed FAQs, internal links and content blocks are site-scoped on\n// multi-site projects: a row with no site applies to every host, a row tagged\n// with a host applies only there. So these three reads send `site` in the body\n// via the shared `withSiteBody` (explicit → NEXT_PUBLIC_SITE_URL host →\n// window.location.host, omitted when nothing resolves). The API treats a\n// request with no site as the project's primary domain.\n\n/**\n * Fetch FAQ data for a page - cached per request\n * @param site Sub-site host override; resolves from NEXT_PUBLIC_SITE_URL when omitted\n * @server-only\n */\nexport const getFAQData = cache(async (path: string, site?: string) => {\n const result = await secureApiPost<{ faq: any }>('/api/public/seo/faq', withSiteBody({ path }, site))\n return result?.faq || null\n})\n\n/**\n * Fetch internal links for a page - cached per request\n * `options.site`: sub-site host override; resolves from NEXT_PUBLIC_SITE_URL when omitted\n * @server-only\n */\nexport const getInternalLinks = cache(async (\n sourcePath: string,\n options?: { position?: string; limit?: number; site?: string }\n) => {\n const result = await secureApiPost<{ links: any[] }>(\n '/api/public/seo/internal-links',\n withSiteBody(\n {\n sourcePath,\n position: options?.position,\n limit: options?.limit,\n },\n options?.site,\n ),\n )\n return result?.links || []\n})\n\n/**\n * Fetch content block - cached per request\n * @param site Sub-site host override; resolves from NEXT_PUBLIC_SITE_URL when omitted\n * @server-only\n */\nexport const getContentBlock = cache(async (path: string, section: string, site?: string) => {\n const result = await secureApiPost<{ content: any }>('/api/public/seo/content', withSiteBody({ path, section }, site))\n return result?.content || null\n})\n\n/**\n * Fetch A/B test and determine variant - cached per request\n * @server-only\n */\nexport const getABTest = cache(async (path: string, field: string) => {\n const result = await secureApiPost<{ test: any }>('/api/public/seo/ab-test', { path, field })\n return result?.test || null\n})\n\n/**\n * Record A/B test impression\n * @server-only\n */\nexport async function recordABImpression(\n testId: string,\n variant: 'a' | 'b',\n sessionId?: string\n): Promise<void> {\n await secureApiPost('/api/public/seo/ab-impression', { testId, variant, sessionId })\n}\n\n/**\n * Fetch redirect for a path - cached per request\n * @server-only\n */\nexport const getRedirectData = cache(async (path: string) => {\n const result = await secureApiPost<{ redirect: any }>('/api/public/seo/redirect', { path })\n return result?.redirect || null\n})\n\n/**\n * Fetch managed scripts - cached per request\n * @server-only\n */\nexport const getManagedScripts = cache(async (position: string, currentPath?: string) => {\n const result = await secureApiPost<{ scripts: any[] }>('/api/public/seo/scripts', {\n position,\n currentPath,\n })\n return result?.scripts || []\n})\n\n/**\n * Fetch robots directive for a page - cached per request\n * @server-only\n */\nexport const getRobotsData = cache(async (path: string) => {\n const { page } = await getSEOPageData(path)\n return page?.managed_robots || null\n})\n\n/**\n * Fetch sitemap entries - cached per request\n * @server-only\n */\nexport const getSitemapEntries = cache(async (options?: { publishedOnly?: boolean }) => {\n const result = await secureApiPost<{ entries: any[] }>('/api/public/seo/sitemap', {\n publishedOnly: options?.publishedOnly,\n })\n return result?.entries || []\n})\n\n/**\n * Register/sync sitemap entries from the client site\n * Call this at build time to populate seo_pages from your sitemap.xml\n * @server-only\n *\n * Defaults to mode 'full-replace', which PRUNES every page missing from\n * `entries`. Pass `{ mode: 'additive' }` unless the list is the whole site.\n *\n * @example\n * ```ts\n * // scripts/register-sitemap.ts (run at build time)\n * import { registerSitemap } from '@sonordev/site-kit/seo/server'\n *\n * await registerSitemap(\n * [\n * { path: '/', priority: 1.0, changefreq: 'daily' },\n * { path: '/about', priority: 0.8, changefreq: 'weekly' },\n * ],\n * { mode: 'additive' },\n * )\n * ```\n */\nexport async function registerSitemap(\n entries: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n }>,\n options?: {\n /**\n * Sync mode:\n * - 'full-replace': replaces the entire page set (default for build-time sync)\n * - 'additive': adds/updates pages but never deletes existing ones\n */\n mode?: 'additive' | 'full-replace'\n /**\n * Sub-site host these pages belong to, on a multi-site project. Defaults\n * to NEXT_PUBLIC_SITE_URL's host; left off when nothing resolves.\n */\n site?: string\n }\n): Promise<{ success: boolean; created: number; updated: number }> {\n const { apiUrl, apiKey } = getSecureApiConfig()\n const mode = options?.mode ?? 'full-replace'\n\n try {\n const response = await postRegisterSitemap({ apiUrl, apiKey, entries, mode, site: resolveSyncSite(options?.site) })\n \n if (!response.ok) {\n console.error(`@sonordev/seo: Sitemap registration failed: ${response.statusText}`)\n return { success: false, created: 0, updated: 0 }\n }\n \n return await response.json()\n } catch (error) {\n console.error('@sonordev/seo: Sitemap registration error:', error)\n return { success: false, created: 0, updated: 0 }\n }\n}\n\n// ============================================\n// Signal-Powered Metadata Fallback\n// ============================================\n\n/**\n * Ensure metadata exists for a page by triggering Signal AI optimization.\n * If the page has no managed_title or managed_meta_description, Signal will\n * generate them and save to the database via Portal proxy.\n *\n * Idempotent — returns existing metadata if already populated.\n * @server-only\n */\nexport const ensureMetadata = cache(async (path: string): Promise<{\n managed_title?: string\n managed_meta_description?: string\n managed_keywords?: string[]\n managed_schema?: Record<string, unknown>\n} | null> => {\n return secureApiPost('/api/public/seo/ensure-metadata', { path })\n})\n\n// ============================================\n// AI Visibility & Entity Graph API (Signal)\n// ============================================\n\nfunction getSignalApiConfig() {\n const apiUrl = process.env.SONOR_SIGNAL_URL || process.env.SIGNAL_API_URL || process.env.NEXT_PUBLIC_SIGNAL_API_URL || 'https://signal.sonor.io'\n const apiKey = process.env.SONOR_API_KEY || ''\n return { apiUrl, apiKey }\n}\n\nasync function signalApiGet<T>(endpoint: string): Promise<T | null> {\n const { apiUrl, apiKey } = getSignalApiConfig()\n \n if (!apiKey) {\n return null\n }\n \n try {\n const response = await fetch(`${apiUrl}${endpoint}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n next: { revalidate: 300 }, // Cache for 5 minutes\n })\n \n if (!response.ok) {\n return null\n }\n \n const result = await response.json()\n return result?.data || result\n } catch (error) {\n console.error('@sonordev/seo: Signal API error:', error)\n return null\n }\n}\n\n/**\n * Entity types for the knowledge graph\n */\nexport type EntityType = \n | 'organization'\n | 'person'\n | 'service'\n | 'product'\n | 'location'\n | 'concept'\n | 'credential'\n\n/**\n * Entity from the knowledge graph\n */\nexport interface SEOEntity {\n id: string\n project_id: string\n entity_type: EntityType\n name: string\n slug: string\n properties: Record<string, unknown>\n knows_about: string[]\n same_as: string[]\n schema_type?: string\n is_primary: boolean\n}\n\n/**\n * Fetch entities for a project - cached per request\n * Returns the entity graph for enhanced schema markup\n * @server-only\n */\nexport const getEntities = cache(async (\n options?: { type?: EntityType }\n): Promise<SEOEntity[]> => {\n const { apiKey } = getSecureApiConfig()\n const projectId = getProjectIdFromKey(apiKey)\n if (!projectId) return []\n let endpoint = `/skills/seo/entities/${projectId}`\n if (options?.type) {\n endpoint += `?type=${options.type}`\n }\n const result = await signalApiGet<SEOEntity[]>(endpoint)\n return result || []\n})\n\n/**\n * Fetch primary entity (the business) - cached per request\n * @server-only\n */\nexport const getPrimaryEntity = cache(async (): Promise<SEOEntity | null> => {\n const { apiKey } = getSecureApiConfig()\n const projectId = getProjectIdFromKey(apiKey)\n if (!projectId) return null\n return signalApiGet<SEOEntity>(`/skills/seo/entities/${projectId}/primary`)\n})\n\n/**\n * Fetch entity-enhanced schema for a page\n * Returns Organization schema with knowsAbout, areaServed, employee, etc.\n * @server-only\n */\nexport const getEntityEnhancedSchema = cache(async (pagePath: string): Promise<object[]> => {\n const { apiKey } = getSecureApiConfig()\n const projectId = getProjectIdFromKey(apiKey)\n if (!projectId) return []\n const result = await signalApiGet<{ schemas: object[] }>(\n `/skills/seo/schema/${projectId}/entity-enhanced?pagePath=${encodeURIComponent(pagePath)}`\n )\n return result?.schemas || []\n})\n\n/**\n * Get AI visibility score for a page\n * @server-only\n */\nexport const getVisibilityScore = cache(async (\n pagePath: string\n): Promise<{\n overall_score: number\n entity_coverage: number\n answer_density: number\n chunk_readability: number\n authority_signals: number\n schema_completeness: number\n} | null> => {\n const { apiKey } = getSecureApiConfig()\n const projectId = getProjectIdFromKey(apiKey)\n if (!projectId) return null\n const result = await signalApiGet<any[]>(`/skills/seo/visibility/${projectId}`)\n if (!result) return null\n return result.find(s => s.page_path === pagePath) || null\n})\n\n/**\n * Get AI visibility summary for project\n * @server-only\n */\nexport const getVisibilitySummary = cache(async (): Promise<{\n overall_score: number\n total_entities: number\n pages_analyzed: number\n top_recommendations: Array<{ priority: string; type: string; message: string }>\n} | null> => {\n const { apiKey } = getSecureApiConfig()\n const projectId = getProjectIdFromKey(apiKey)\n if (!projectId) return null\n return signalApiGet(`/skills/seo/visibility/${projectId}/summary`)\n})\n"]}
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- // src/shared/page-leave.ts
4
- function onPageLeave(onLeave, win = window, doc = document) {
5
- const handleVisibilityChange = () => {
6
- if (doc.visibilityState === "hidden") onLeave();
7
- };
8
- const handlePageHide = () => onLeave();
9
- doc.addEventListener("visibilitychange", handleVisibilityChange);
10
- win.addEventListener("pagehide", handlePageHide);
11
- return () => {
12
- doc.removeEventListener("visibilitychange", handleVisibilityChange);
13
- win.removeEventListener("pagehide", handlePageHide);
14
- };
15
- }
16
-
17
- exports.onPageLeave = onPageLeave;
18
- //# sourceMappingURL=chunk-P4Y75QSU.js.map
19
- //# sourceMappingURL=chunk-P4Y75QSU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/page-leave.ts"],"names":[],"mappings":";;;AAwBO,SAAS,WAAA,CACd,OAAA,EACA,GAAA,GAAsB,MAAA,EACtB,MAAqE,QAAA,EACzD;AACZ,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,IAAI,GAAA,CAAI,eAAA,KAAoB,QAAA,EAAU,OAAA,EAAQ;AAAA,EAChD,CAAA;AACA,EAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,EAAQ;AAErC,EAAA,GAAA,CAAI,gBAAA,CAAiB,oBAAoB,sBAAsB,CAAA;AAC/D,EAAA,GAAA,CAAI,gBAAA,CAAiB,YAAY,cAAc,CAAA;AAE/C,EAAA,OAAO,MAAM;AACX,IAAA,GAAA,CAAI,mBAAA,CAAoB,oBAAoB,sBAAsB,CAAA;AAClE,IAAA,GAAA,CAAI,mBAAA,CAAoB,YAAY,cAAc,CAAA;AAAA,EACpD,CAAA;AACF","file":"chunk-P4Y75QSU.js","sourcesContent":["/**\n * @sonordev/site-kit - page-leave signal\n *\n * SINGLE SOURCE OF TRUTH for \"the visitor may be gone, send what you have\".\n * Used by form abandonment, Signal's behavior flush and scroll-depth reporting.\n * Do NOT hand-roll another pagehide/visibilitychange pair.\n *\n * Two events, because neither covers every leave on its own:\n * - `visibilitychange` to hidden: tab switch, app switch, screen lock, and the\n * last thing a mobile browser reliably fires before it discards a\n * backgrounded tab (it often never fires pagehide for those).\n * - `pagehide`: full navigation or close, including Safari versions that skip\n * visibilitychange on navigation.\n *\n * Never `beforeunload`: iOS Safari doesn't fire it, and Firefox won't put a\n * page that listens for it in the back/forward cache.\n *\n * One leave usually fires both events, and a hidden tab can come back, so\n * `onLeave` can run several times per page. It must be idempotent.\n */\n\ntype ListenerTarget = Pick<EventTarget, 'addEventListener' | 'removeEventListener'>\n\n/** Call `onLeave` whenever the page is hidden or unloaded. Returns the cleanup. */\nexport function onPageLeave(\n onLeave: () => void,\n win: ListenerTarget = window,\n doc: ListenerTarget & { visibilityState: DocumentVisibilityState } = document,\n): () => void {\n const handleVisibilityChange = () => {\n if (doc.visibilityState === 'hidden') onLeave()\n }\n const handlePageHide = () => onLeave()\n\n doc.addEventListener('visibilitychange', handleVisibilityChange)\n win.addEventListener('pagehide', handlePageHide)\n\n return () => {\n doc.removeEventListener('visibilitychange', handleVisibilityChange)\n win.removeEventListener('pagehide', handlePageHide)\n }\n}\n"]}
@@ -1,99 +0,0 @@
1
- // src/llms/contract.ts
2
- var LLM_GEO_CONTRACT_VERSION = 1;
3
- var LLMS_PUBLIC_SUMMARY_MAX_LENGTH = 400;
4
- var LLMS_DISCLAIMER_MAX_LENGTH = 280;
5
- var MANAGED_LLM_SCHEMA_KNOWN_KEYS = /* @__PURE__ */ new Set([
6
- "@context",
7
- "@type",
8
- "name",
9
- "description",
10
- "url",
11
- "keywords",
12
- "audience",
13
- "about",
14
- "mainEntity",
15
- "isPartOf",
16
- "speakable",
17
- "additionalType"
18
- ]);
19
- function sanitizeLlmsPublicSummary(raw) {
20
- if (raw === null || raw === void 0) return null;
21
- if (typeof raw !== "string") return null;
22
- let s = raw.trim().replace(/\s+/g, " ");
23
- s = s.replace(/[\[\]\r\n]/g, " ").replace(/\s+/g, " ").trim();
24
- if (s.length > LLMS_PUBLIC_SUMMARY_MAX_LENGTH) {
25
- s = `${s.slice(0, LLMS_PUBLIC_SUMMARY_MAX_LENGTH - 1).trimEnd()}\u2026`;
26
- }
27
- if (/\b[\w.%+-]+@[\w.-]+\.[A-Za-z]{2,}\b/.test(s)) return null;
28
- if (/\b\+?\d[\d\s().-]{8,}\b/.test(s)) return null;
29
- if (s.length < 8) return null;
30
- return s;
31
- }
32
- function sanitizeLlmsDisclaimerLine(raw) {
33
- if (raw === null || raw === void 0) return null;
34
- if (typeof raw !== "string") return null;
35
- let s = raw.trim().replace(/\s+/g, " ");
36
- s = s.replace(/[\[\]\r\n]/g, " ").replace(/\s+/g, " ").trim();
37
- if (s.length > LLMS_DISCLAIMER_MAX_LENGTH) {
38
- s = `${s.slice(0, LLMS_DISCLAIMER_MAX_LENGTH - 1).trimEnd()}\u2026`;
39
- }
40
- if (/\b[\w.%+-]+@[\w.-]+\.[A-Za-z]{2,}\b/.test(s)) return null;
41
- if (/\b\+?\d[\d\s().-]{8,}\b/.test(s)) return null;
42
- if (s.length < 3) return null;
43
- return s;
44
- }
45
- function sanitizePrimaryLanguageTag(raw) {
46
- if (raw === null || raw === void 0) return null;
47
- if (typeof raw !== "string") return null;
48
- const s = raw.trim();
49
- if (!/^[\w-]{2,20}$/.test(s)) return null;
50
- return s;
51
- }
52
- function isEmittableReviewNode(node) {
53
- const author = node.author;
54
- if (typeof author === "string") return author.trim().length > 0;
55
- if (Array.isArray(author)) {
56
- return author.some((a) => isEmittableReviewNode({ author: a }));
57
- }
58
- if (author && typeof author === "object") {
59
- const name = author.name;
60
- return typeof name === "string" && name.trim().length > 0;
61
- }
62
- return false;
63
- }
64
- var DROP = /* @__PURE__ */ Symbol("drop-invalid-review");
65
- function stripInvalidReviewNodes(value) {
66
- if (Array.isArray(value)) {
67
- return value.map((v) => stripInvalidReviewNodes(v)).filter((v) => v !== DROP);
68
- }
69
- if (value && typeof value === "object") {
70
- const src = value;
71
- if (src["@type"] === "Review" && !isEmittableReviewNode(src)) return DROP;
72
- const out = {};
73
- for (const key of Object.keys(src)) {
74
- const child = stripInvalidReviewNodes(src[key]);
75
- if (child === DROP) continue;
76
- out[key] = child;
77
- }
78
- return out;
79
- }
80
- return value;
81
- }
82
- function pickManagedLlmSchemaForJsonLd(schema) {
83
- if (!schema || typeof schema !== "object") return null;
84
- const out = {};
85
- const omitFromJsonLd = /* @__PURE__ */ new Set(["llms_public_summary"]);
86
- for (const key of Object.keys(schema)) {
87
- if (omitFromJsonLd.has(key)) continue;
88
- if (MANAGED_LLM_SCHEMA_KNOWN_KEYS.has(key)) {
89
- const value = stripInvalidReviewNodes(schema[key]);
90
- if (value === DROP) continue;
91
- out[key] = value;
92
- }
93
- }
94
- return Object.keys(out).length ? out : null;
95
- }
96
-
97
- export { LLMS_DISCLAIMER_MAX_LENGTH, LLMS_PUBLIC_SUMMARY_MAX_LENGTH, LLM_GEO_CONTRACT_VERSION, MANAGED_LLM_SCHEMA_KNOWN_KEYS, pickManagedLlmSchemaForJsonLd, sanitizeLlmsDisclaimerLine, sanitizeLlmsPublicSummary, sanitizePrimaryLanguageTag };
98
- //# sourceMappingURL=chunk-PENNTSJE.mjs.map
99
- //# sourceMappingURL=chunk-PENNTSJE.mjs.map