@sonordev/site-kit 6.5.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1625) hide show
  1. package/AGENTS.md +18 -3
  2. package/README.md +50 -34
  3. package/agent-manifest.json +282 -52
  4. package/dist/AnalyticsProvider-EMM2TKRE.js +11 -0
  5. package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
  6. package/dist/ArticleViewTracker-RA64BGL6.js +49 -0
  7. package/dist/BlocksPopup-D25RFNOV.js +43 -0
  8. package/dist/ChatWidget-RYI7BMJJ.js +15 -0
  9. package/dist/DatePicker-JEBV6WYJ.js +2 -0
  10. package/dist/EngageWidget-UKFCN33M.js +11 -0
  11. package/dist/FileField-MUHA7LZR.js +83 -0
  12. package/dist/FormCelebration-OVGAGBKF.js +2 -0
  13. package/dist/FormSpotlight-TCLPWPLL.js +754 -0
  14. package/dist/FormStage-CNYLP6I6.js +418 -0
  15. package/dist/ManagedForm-7ZL5SKTO.js +14 -0
  16. package/dist/ManagedNewsletterForm-33B4JLX7.js +62 -0
  17. package/dist/SignalCore-L5FVDHFE.js +322 -0
  18. package/dist/SiteDesignReporter-4JOFL4FP.js +11 -0
  19. package/dist/SitemapSync-7WKY4HXI.js +8 -0
  20. package/dist/SitemapSync.d.ts +0 -1
  21. package/dist/_client/booking-widget.d.ts +4 -0
  22. package/dist/_client/booking-widget.js +7 -0
  23. package/dist/_client/testimonial-section.d.ts +11 -0
  24. package/dist/_client/testimonial-section.js +5 -0
  25. package/dist/admin-auth/index.d.ts +0 -1
  26. package/dist/admin-auth/index.js +0 -0
  27. package/dist/admin-auth/session.d.ts +0 -1
  28. package/dist/affiliates/AffiliatesWidget.d.ts +0 -1
  29. package/dist/affiliates/api.d.ts +0 -1
  30. package/dist/affiliates/index.d.ts +0 -1
  31. package/dist/affiliates/index.js +149 -0
  32. package/dist/affiliates/types.d.ts +0 -1
  33. package/dist/affiliates/useAffiliates.d.ts +0 -1
  34. package/dist/analytics/AnalyticsProvider.d.ts +0 -1
  35. package/dist/analytics/WebVitals.d.ts +0 -1
  36. package/dist/analytics/dispatch.d.ts +0 -1
  37. package/dist/analytics/index.d.ts +0 -1
  38. package/dist/analytics/index.js +12 -67
  39. package/dist/analytics/measurement-context.d.ts +0 -1
  40. package/dist/analytics/page-observation.d.ts +0 -1
  41. package/dist/analytics/send-gate.d.ts +0 -1
  42. package/dist/analytics/types.d.ts +0 -1
  43. package/dist/analytics/useContactTracking.d.ts +0 -1
  44. package/dist/article-styles-6CM5FUMV.js +590 -0
  45. package/dist/article-tables-AXSZOGNW.js +2 -0
  46. package/dist/articles/Article.d.ts +0 -1
  47. package/dist/articles/ArticleFAQ.d.ts +0 -1
  48. package/dist/articles/ArticleFaqSection.d.ts +0 -1
  49. package/dist/articles/ArticleList.d.ts +0 -1
  50. package/dist/articles/ArticleViewTracker.d.ts +0 -1
  51. package/dist/articles/AuthorCard.d.ts +0 -1
  52. package/dist/articles/AuthorPage.d.ts +0 -1
  53. package/dist/articles/ClusterLandingPage.d.ts +0 -1
  54. package/dist/articles/ClusterNavigation.d.ts +0 -1
  55. package/dist/articles/ManagedNewsletterForm.d.ts +0 -1
  56. package/dist/articles/NewsletterShell.d.ts +0 -1
  57. package/dist/articles/NewsletterWidget.d.ts +0 -1
  58. package/dist/articles/PublicationLayout.d.ts +0 -1
  59. package/dist/articles/PublicationSidebar.d.ts +0 -1
  60. package/dist/articles/RelatedPosts.d.ts +0 -1
  61. package/dist/articles/ServiceCallout.d.ts +0 -1
  62. package/dist/articles/TableOfContents.d.ts +0 -1
  63. package/dist/articles/article-styles.d.ts +0 -1
  64. package/dist/articles/article-tables.d.ts +0 -1
  65. package/dist/articles/artwork.d.ts +0 -1
  66. package/dist/articles/author-schema.d.ts +0 -1
  67. package/dist/articles/author-social.d.ts +0 -1
  68. package/dist/articles/excerpt.d.ts +0 -1
  69. package/dist/articles/index.d.ts +0 -1
  70. package/dist/articles/index.js +87 -147
  71. package/dist/articles/news-sitemap.d.ts +0 -1
  72. package/dist/articles/processArticleHtml.d.ts +0 -1
  73. package/dist/articles/public-reads.d.ts +0 -1
  74. package/dist/articles/reading-time.d.ts +0 -1
  75. package/dist/articles/routes.d.ts +0 -1
  76. package/dist/articles/server-core.d.ts +0 -14
  77. package/dist/articles/server-ui.d.ts +0 -1
  78. package/dist/articles/server-ui.js +221 -265
  79. package/dist/articles/server.d.ts +0 -14
  80. package/dist/articles/server.js +10 -252
  81. package/dist/articles/types.d.ts +0 -1
  82. package/dist/articles/widget-styles.d.ts +0 -1
  83. package/dist/brand/extract-brand-profile.d.ts +0 -1
  84. package/dist/chat/index.d.ts +11 -0
  85. package/dist/chat/index.js +16 -0
  86. package/dist/chunk-24QZEO3Q.js +41 -0
  87. package/dist/chunk-3KUUH2YP.js +148 -0
  88. package/dist/chunk-43OCZ3JA.js +67 -0
  89. package/dist/chunk-4IQ52CXL.js +1803 -0
  90. package/dist/chunk-4KZ6W3ZH.js +8 -0
  91. package/dist/chunk-4RMVXRBO.js +478 -0
  92. package/dist/chunk-4Y5FWDPM.js +97 -0
  93. package/dist/chunk-5SEM2V4A.js +837 -0
  94. package/dist/chunk-5SQK3D53.js +24 -0
  95. package/dist/chunk-6HDT4G4A.js +253 -0
  96. package/dist/chunk-6T6CQVNL.js +37 -0
  97. package/dist/chunk-7KJGO77W.js +1 -0
  98. package/dist/chunk-7L5AARVY.js +68 -0
  99. package/dist/chunk-7ZWO5HDQ.js +1 -0
  100. package/dist/chunk-A4CC4ZG3.js +15 -0
  101. package/dist/chunk-AQSNPZY4.js +92 -0
  102. package/dist/chunk-BMO3VGMR.js +184 -0
  103. package/dist/chunk-BQR4IPBW.js +146 -0
  104. package/dist/chunk-BR4ZKUHH.js +227 -0
  105. package/dist/chunk-BU66S5B7.js +1 -0
  106. package/dist/chunk-C4G3NW2E.js +25 -0
  107. package/dist/chunk-CVTVNC2U.js +99 -0
  108. package/dist/chunk-D7SLSJS4.js +1 -0
  109. package/dist/chunk-DIKNRN34.js +28 -0
  110. package/dist/chunk-DXO6SBMD.js +43 -0
  111. package/dist/chunk-EDYHROQ7.js +77 -0
  112. package/dist/chunk-EGOD74PP.js +129 -0
  113. package/dist/chunk-EKBEOXTH.js +114 -0
  114. package/dist/chunk-FESKKJAS.js +19 -0
  115. package/dist/chunk-FL4EPUWA.js +407 -0
  116. package/dist/chunk-FV2VD7WM.js +347 -0
  117. package/dist/chunk-FYAB6CXS.js +265 -0
  118. package/dist/chunk-FYBZ5SNP.js +1241 -0
  119. package/dist/chunk-G3NHWMP5.js +233 -0
  120. package/dist/chunk-GJWI74ZZ.js +27 -0
  121. package/dist/chunk-GKGSXUVQ.js +218 -0
  122. package/dist/chunk-GLHQ3LRO.js +97 -0
  123. package/dist/chunk-GW7GSBO7.js +66 -0
  124. package/dist/chunk-GYESATRY.js +19 -0
  125. package/dist/chunk-GYF2ULVO.js +14 -0
  126. package/dist/chunk-HGCK465A.js +1071 -0
  127. package/dist/chunk-HXJ54KAM.js +122 -0
  128. package/dist/chunk-IHG36STL.js +286 -0
  129. package/dist/chunk-J4FSB4OG.js +200 -0
  130. package/dist/chunk-JE4A5S4F.js +48 -0
  131. package/dist/chunk-JJ4JS3LD.js +26 -0
  132. package/dist/chunk-JSZN6LDZ.js +338 -0
  133. package/dist/chunk-KPAZG65P.js +138 -0
  134. package/dist/chunk-KV4LOKOU.js +154 -0
  135. package/dist/chunk-KXPBMCFL.js +39 -0
  136. package/dist/chunk-L2V5PUFN.js +15 -0
  137. package/dist/chunk-L3AQCDCY.js +386 -0
  138. package/dist/chunk-L5UOHS6E.js +45 -0
  139. package/dist/chunk-LCDVPAMR.js +24 -0
  140. package/dist/chunk-LE7ZOTHB.js +43 -0
  141. package/dist/chunk-LNSNA3W4.js +217 -0
  142. package/dist/chunk-LQJC5S2M.js +236 -0
  143. package/dist/chunk-LVESVYCE.js +270 -0
  144. package/dist/chunk-MH2DSGC6.js +10 -0
  145. package/dist/chunk-MJP63SSS.js +14 -0
  146. package/dist/chunk-MV2MBTC3.js +177 -0
  147. package/dist/chunk-MVLMXC44.js +9 -0
  148. package/dist/chunk-N2UVOR3X.js +238 -0
  149. package/dist/chunk-NDF4A5JM.js +37 -0
  150. package/dist/chunk-NJCTQH2P.js +62 -0
  151. package/dist/chunk-NZOJHERI.js +32 -0
  152. package/dist/chunk-OFOAHPUV.js +127 -0
  153. package/dist/chunk-OPRBF7VE.js +41 -0
  154. package/dist/chunk-OSYCOC3K.js +21 -0
  155. package/dist/chunk-P4GRY6QP.js +54 -0
  156. package/dist/chunk-P5GB6NEO.js +66 -0
  157. package/dist/chunk-P5J7VMQ3.js +523 -0
  158. package/dist/chunk-PKBMQBKP.js +5 -0
  159. package/dist/chunk-PO2TRJPY.js +40 -0
  160. package/dist/chunk-PSAG45YF.js +451 -0
  161. package/dist/chunk-PXKIGZ2F.js +31 -0
  162. package/dist/chunk-QANVUXKH.js +100 -0
  163. package/dist/chunk-QGHSMJKW.js +4 -0
  164. package/dist/chunk-QLTDFUJ7.js +94 -0
  165. package/dist/chunk-QPEEKFCA.js +533 -0
  166. package/dist/chunk-QXMIKDOL.js +125 -0
  167. package/dist/chunk-QZZIKMAT.js +163 -0
  168. package/dist/chunk-S22FSH7C.js +94 -0
  169. package/dist/chunk-SC4MZGWZ.js +63 -0
  170. package/dist/chunk-SOD2F6C2.js +281 -0
  171. package/dist/chunk-SS636UDN.js +35 -0
  172. package/dist/chunk-SSUQKA7L.js +746 -0
  173. package/dist/chunk-SWKE6FWH.js +47 -0
  174. package/dist/chunk-T22VK4NJ.js +49 -0
  175. package/dist/chunk-T3MC4HOD.js +130 -0
  176. package/dist/chunk-TT63HHIT.js +543 -0
  177. package/dist/chunk-TXBAOEKG.js +1084 -0
  178. package/dist/chunk-UPFU63L4.js +126 -0
  179. package/dist/chunk-UVPGW4R7.js +222 -0
  180. package/dist/chunk-UZN4ZYR2.js +937 -0
  181. package/dist/chunk-V6LSQRTH.js +52 -0
  182. package/dist/chunk-VX5CMNMM.js +26 -0
  183. package/dist/chunk-WATH55UY.js +191 -0
  184. package/dist/chunk-WMVK77ND.js +53 -0
  185. package/dist/chunk-X6F6SO4S.js +135 -0
  186. package/dist/chunk-XTRZGXB2.js +34 -0
  187. package/dist/chunk-Y3INC4QJ.js +133 -0
  188. package/dist/chunk-YC7ELZS3.js +51 -0
  189. package/dist/chunk-YGGDU6C3.js +93 -0
  190. package/dist/chunk-YVKRYQRG.js +70 -0
  191. package/dist/chunk-Z22QVHT4.js +57 -0
  192. package/dist/chunk-ZEGVKVD5.js +80 -0
  193. package/dist/chunk-ZTZQPYP6.js +55 -0
  194. package/dist/client/SiteKitCredential.d.ts +0 -1
  195. package/dist/client/index.d.ts +0 -1
  196. package/dist/client/index.js +13 -53
  197. package/dist/cms/CmsPage.d.ts +0 -1
  198. package/dist/cms/CmsPreview.d.ts +0 -1
  199. package/dist/cms/CmsSection.d.ts +0 -1
  200. package/dist/cms/PortableTextRenderer.d.ts +0 -1
  201. package/dist/cms/index.d.ts +1 -2
  202. package/dist/cms/index.js +5 -410
  203. package/dist/cms/sanity-image.d.ts +0 -1
  204. package/dist/cms/sections/CtaSection.d.ts +0 -1
  205. package/dist/cms/sections/CustomSection.d.ts +0 -1
  206. package/dist/cms/sections/FaqSection.d.ts +0 -1
  207. package/dist/cms/sections/FormSection.d.ts +0 -1
  208. package/dist/cms/sections/GallerySection.d.ts +0 -1
  209. package/dist/cms/sections/HeroSection.d.ts +0 -1
  210. package/dist/cms/sections/RichTextSection.d.ts +0 -1
  211. package/dist/cms/sections/TestimonialsSection.d.ts +0 -1
  212. package/dist/cms/sections/index.d.ts +0 -1
  213. package/dist/cms/server-api.d.ts +0 -1
  214. package/dist/cms/server.d.ts +0 -1
  215. package/dist/cms/server.js +5 -22
  216. package/dist/cms/types.d.ts +0 -1
  217. package/dist/commerce/CalendarView.d.ts +0 -1
  218. package/dist/commerce/CheckoutForm.d.ts +0 -1
  219. package/dist/commerce/EventCalendar.d.ts +0 -1
  220. package/dist/commerce/EventCheckout.d.ts +0 -1
  221. package/dist/commerce/EventEmbed.d.ts +0 -1
  222. package/dist/commerce/EventModal.d.ts +0 -1
  223. package/dist/commerce/EventTile.d.ts +0 -1
  224. package/dist/commerce/EventsAgenda.d.ts +0 -1
  225. package/dist/commerce/EventsWidget.d.ts +0 -1
  226. package/dist/commerce/OfferingCard.d.ts +0 -1
  227. package/dist/commerce/OfferingList.d.ts +0 -1
  228. package/dist/commerce/ProductDetail.d.ts +0 -1
  229. package/dist/commerce/ProductEmbed.d.ts +0 -1
  230. package/dist/commerce/ProductGrid.d.ts +0 -1
  231. package/dist/commerce/ProductPage.d.ts +0 -1
  232. package/dist/commerce/RegistrationForm.d.ts +0 -1
  233. package/dist/commerce/SizeChart.d.ts +0 -1
  234. package/dist/commerce/UpcomingEvents.d.ts +0 -1
  235. package/dist/commerce/api.d.ts +0 -1
  236. package/dist/commerce/events-extras.d.ts +0 -1
  237. package/dist/commerce/index.d.ts +0 -1
  238. package/dist/commerce/index.js +8021 -228
  239. package/dist/commerce/server.d.ts +0 -1
  240. package/dist/commerce/server.js +2 -251
  241. package/dist/commerce/types.d.ts +0 -1
  242. package/dist/commerce/useEventModal.d.ts +0 -1
  243. package/dist/commerce/utils.d.ts +0 -1
  244. package/dist/config/index.d.ts +0 -1
  245. package/dist/config/index.js +7 -11
  246. package/dist/contracts/color.d.ts +38 -0
  247. package/dist/contracts/entries.d.ts +8 -0
  248. package/dist/contracts/fleet.d.ts +96 -0
  249. package/dist/contracts/forms.d.ts +89 -0
  250. package/dist/contracts/llms.d.ts +54 -0
  251. package/dist/contracts/portfolio.d.ts +158 -0
  252. package/dist/contracts/seo-meta.d.ts +56 -0
  253. package/dist/contracts/seo-pages.d.ts +124 -0
  254. package/dist/contracts/sites-normalize.d.ts +35 -0
  255. package/dist/contracts/sites.d.ts +48 -0
  256. package/dist/contracts/slots.d.ts +81 -0
  257. package/dist/contracts/website.d.ts +148 -0
  258. package/dist/cta-bar/CtaBar.d.ts +0 -1
  259. package/dist/cta-bar/CtaBarBehavior.d.ts +0 -1
  260. package/dist/cta-bar/client.d.ts +0 -1
  261. package/dist/cta-bar/client.js +3 -22
  262. package/dist/cta-bar/index.d.ts +0 -1
  263. package/dist/cta-bar/index.js +5 -227
  264. package/dist/cta-bar/styles.d.ts +0 -1
  265. package/dist/discover-3YYOHOQP.js +2 -0
  266. package/dist/engage/ChatWidget.d.ts +0 -1
  267. package/dist/engage/DesignRenderer.d.ts +0 -1
  268. package/dist/engage/EchoUiActions.d.ts +0 -1
  269. package/dist/engage/EngageWidget.d.ts +2 -1
  270. package/dist/engage/brand-color.d.ts +0 -1
  271. package/dist/engage/chat-messages.d.ts +0 -1
  272. package/dist/engage/echo-config.d.ts +0 -1
  273. package/dist/engage/element-rules.d.ts +0 -1
  274. package/dist/engage/index.d.ts +0 -1
  275. package/dist/engage/index.js +20 -37
  276. package/dist/engage/launcher-placement.d.ts +0 -1
  277. package/dist/engage/socket-loader.d.ts +0 -1
  278. package/dist/engage/types.d.ts +18 -1
  279. package/dist/fleet/FleetHeartbeat.d.ts +0 -1
  280. package/dist/fleet/contract.d.ts +1 -98
  281. package/dist/fleet/contract.js +2 -53
  282. package/dist/fleet/heartbeat.d.ts +0 -1
  283. package/dist/fleet/index.d.ts +0 -1
  284. package/dist/fleet/index.js +9 -76
  285. package/dist/forms/DatePicker.d.ts +0 -1
  286. package/dist/forms/FileField.d.ts +0 -1
  287. package/dist/forms/FormCelebration.d.ts +0 -1
  288. package/dist/forms/FormClient.d.ts +0 -1
  289. package/dist/forms/FormEnhancer.d.ts +0 -1
  290. package/dist/forms/FormField.d.ts +0 -1
  291. package/dist/forms/FormSpotlight.d.ts +0 -1
  292. package/dist/forms/FormStage.d.ts +0 -1
  293. package/dist/forms/HoneypotField.d.ts +0 -1
  294. package/dist/forms/ManagedForm.d.ts +0 -1
  295. package/dist/forms/ServerForm.d.ts +0 -1
  296. package/dist/forms/StaticForm.d.ts +0 -1
  297. package/dist/forms/contract.d.ts +1 -91
  298. package/dist/forms/contract.js +2 -37
  299. package/dist/forms/defaultSuccessMessage.d.ts +0 -1
  300. package/dist/forms/delight.d.ts +0 -1
  301. package/dist/forms/experience-chrome.d.ts +0 -1
  302. package/dist/forms/experience-plan.d.ts +0 -1
  303. package/dist/forms/field-controls.d.ts +0 -1
  304. package/dist/forms/field-interactions.d.ts +0 -1
  305. package/dist/forms/field-rules.d.ts +0 -1
  306. package/dist/forms/form-loaded-at.d.ts +12 -0
  307. package/dist/forms/form-values.d.ts +0 -1
  308. package/dist/forms/formsApi.d.ts +0 -1
  309. package/dist/forms/ga4-identity.d.ts +0 -1
  310. package/dist/forms/index.d.ts +0 -1
  311. package/dist/forms/index.js +20 -64
  312. package/dist/forms/normalize-config.d.ts +0 -1
  313. package/dist/forms/recaptcha-warmup.d.ts +0 -1
  314. package/dist/forms/recaptcha.d.ts +0 -1
  315. package/dist/forms/server.d.ts +0 -1
  316. package/dist/forms/server.js +11 -67
  317. package/dist/forms/static.d.ts +0 -1
  318. package/dist/forms/static.js +6 -17
  319. package/dist/forms/submitForm.d.ts +0 -1
  320. package/dist/forms/tracking-session.d.ts +0 -1
  321. package/dist/forms/types.d.ts +0 -1
  322. package/dist/forms/useForm.d.ts +0 -1
  323. package/dist/forms/useFormTracking.d.ts +0 -1
  324. package/dist/images/ManagedFavicon.d.ts +0 -1
  325. package/dist/images/ManagedImage.d.ts +0 -1
  326. package/dist/images/api.d.ts +0 -1
  327. package/dist/images/index.d.ts +0 -1
  328. package/dist/images/index.js +6 -49
  329. package/dist/images/server.d.ts +0 -1
  330. package/dist/images/server.js +3 -21
  331. package/dist/index.d.ts +13 -56
  332. package/dist/index.js +2 -427
  333. package/dist/landing/LandingPage.d.ts +0 -1
  334. package/dist/landing/contract.d.ts +0 -1
  335. package/dist/landing/index.d.ts +0 -1
  336. package/dist/landing/index.js +3 -22
  337. package/dist/landing/metadata.d.ts +0 -1
  338. package/dist/landing/server.d.ts +0 -1
  339. package/dist/landing/server.js +3 -17
  340. package/dist/layout/SiteKitClientProviders.d.ts +12 -3
  341. package/dist/layout/SiteKitLayout.d.ts +19 -4
  342. package/dist/layout/SpeculationRules.d.ts +0 -1
  343. package/dist/layout/client.d.ts +12 -3
  344. package/dist/layout/client.js +16 -27
  345. package/dist/layout/index.d.ts +0 -1
  346. package/dist/layout/index.js +43 -41
  347. package/dist/layout/types.d.ts +13 -1
  348. package/dist/llms/AEOComponents.d.ts +0 -1
  349. package/dist/llms/SpeakableSchema.d.ts +0 -1
  350. package/dist/llms/agent-access.d.ts +43 -0
  351. package/dist/llms/aiRobots.d.ts +0 -10
  352. package/dist/llms/api.d.ts +0 -1
  353. package/dist/llms/client.d.ts +0 -1
  354. package/dist/llms/client.js +4 -66
  355. package/dist/llms/contract.d.ts +1 -42
  356. package/dist/llms/contract.js +2 -41
  357. package/dist/llms/discovery-headers.d.ts +6 -1
  358. package/dist/llms/generateLLMsTxt.d.ts +0 -1
  359. package/dist/llms/handlers.d.ts +0 -1
  360. package/dist/llms/humanize-industry.d.ts +0 -1
  361. package/dist/llms/index.d.ts +3 -2
  362. package/dist/llms/index.js +17 -448
  363. package/dist/llms/links.d.ts +0 -1
  364. package/dist/llms/revalidate.d.ts +0 -1
  365. package/dist/llms/seo-revalidate.d.ts +0 -1
  366. package/dist/llms/sourcedFacts.d.ts +0 -1
  367. package/dist/llms/types.d.ts +6 -1
  368. package/dist/llms/writeLLMsTxt.d.ts +10 -1
  369. package/dist/manifest/index.d.ts +0 -1
  370. package/dist/manifest/index.js +4 -8
  371. package/dist/maps/GoogleMap.d.ts +0 -1
  372. package/dist/maps/NeighborhoodMap.d.ts +0 -1
  373. package/dist/maps/api.d.ts +0 -1
  374. package/dist/maps/index.d.ts +0 -1
  375. package/dist/maps/index.js +85 -92
  376. package/dist/maps/types.d.ts +0 -1
  377. package/dist/mcp/WebMcpTools.d.ts +0 -1
  378. package/dist/mcp/client.d.ts +0 -1
  379. package/dist/mcp/client.js +9 -12
  380. package/dist/mcp/declarative.d.ts +0 -1
  381. package/dist/mcp/handlers.d.ts +15 -2
  382. package/dist/mcp/index.d.ts +2 -3
  383. package/dist/mcp/index.js +50 -298
  384. package/dist/mcp/protocol.d.ts +0 -1
  385. package/dist/mcp/report.d.ts +27 -0
  386. package/dist/mcp/serverCard.d.ts +0 -1
  387. package/dist/mcp/sonor.d.ts +99 -0
  388. package/dist/mcp/sonor.js +484 -0
  389. package/dist/mcp/transport.d.ts +0 -1
  390. package/dist/mcp/transport.js +8 -24
  391. package/dist/mcp/types.d.ts +21 -1
  392. package/dist/motion/CountUp.d.ts +0 -1
  393. package/dist/motion/Parallax.d.ts +0 -1
  394. package/dist/motion/Reveal.d.ts +0 -1
  395. package/dist/motion/ScrollScene.d.ts +0 -1
  396. package/dist/motion/engine.d.ts +0 -1
  397. package/dist/motion/failsafe.d.ts +0 -1
  398. package/dist/motion/gsap.d.ts +0 -1
  399. package/dist/motion/gsap.js +17 -29
  400. package/dist/motion/index.d.ts +0 -1
  401. package/dist/motion/index.js +25 -51
  402. package/dist/motion/three.d.ts +0 -1
  403. package/dist/motion/three.js +16 -23
  404. package/dist/og/config.d.ts +0 -1
  405. package/dist/og/contrast.d.ts +0 -1
  406. package/dist/og/index.d.ts +0 -1
  407. package/dist/og/index.js +4 -43
  408. package/dist/og/pages.d.ts +0 -1
  409. package/dist/og/route-fit.d.ts +0 -1
  410. package/dist/og/route.d.ts +0 -1
  411. package/dist/og/route.js +3 -245
  412. package/dist/og/template.d.ts +0 -1
  413. package/dist/portfolio/contract.d.ts +1 -153
  414. package/dist/portfolio/contract.js +2 -136
  415. package/dist/proxy/index.d.ts +16 -14
  416. package/dist/proxy/index.js +20 -36
  417. package/dist/proxy/securityHeaders.d.ts +0 -1
  418. package/dist/proxy/segment.d.ts +0 -1
  419. package/dist/redirects/index.d.ts +0 -8
  420. package/dist/redirects/index.js +6 -41
  421. package/dist/reputation/TestimonialSection.d.ts +0 -1
  422. package/dist/reputation/api.d.ts +0 -1
  423. package/dist/reputation/index.d.ts +0 -1
  424. package/dist/reputation/index.js +4 -22
  425. package/dist/reputation/server.d.ts +0 -1
  426. package/dist/reputation/server.js +3 -17
  427. package/dist/reputation/types.d.ts +0 -1
  428. package/dist/robots/index.d.ts +1 -2
  429. package/dist/robots/index.js +4 -78
  430. package/dist/robots/indexnow.d.ts +0 -1
  431. package/dist/robots/indexnow.js +4 -39
  432. package/dist/robots/next-internals.d.ts +0 -1
  433. package/dist/seo/ManagedContent.d.ts +0 -1
  434. package/dist/seo/ManagedFAQ.d.ts +0 -1
  435. package/dist/seo/ManagedInternalLinks.d.ts +0 -1
  436. package/dist/seo/ManagedSchema.d.ts +0 -1
  437. package/dist/seo/ManagedScripts.d.ts +0 -1
  438. package/dist/seo/api.d.ts +0 -1
  439. package/dist/seo/client.d.ts +0 -1
  440. package/dist/seo/client.js +8 -19
  441. package/dist/seo/entry-indexnow.d.ts +2 -0
  442. package/dist/seo/entry-llms-client.d.ts +2 -0
  443. package/dist/seo/entry-llms-contract.d.ts +2 -0
  444. package/dist/seo/entry-llms.d.ts +2 -0
  445. package/dist/seo/entry-meta-contract.d.ts +2 -0
  446. package/dist/seo/entry-og-route.d.ts +2 -0
  447. package/dist/seo/entry-og.d.ts +2 -0
  448. package/dist/seo/entry-pages-contract.d.ts +2 -0
  449. package/dist/seo/entry-redirects.d.ts +2 -0
  450. package/dist/seo/entry-robots.d.ts +2 -0
  451. package/dist/seo/entry-sitemap.d.ts +2 -0
  452. package/dist/seo/getManagedMetadata.d.ts +0 -1
  453. package/dist/seo/groundingSchema.d.ts +0 -1
  454. package/dist/seo/index.d.ts +0 -2
  455. package/dist/seo/index.js +88 -318
  456. package/dist/seo/indexnow.d.ts +2 -0
  457. package/dist/seo/indexnow.js +4 -0
  458. package/dist/seo/llms/client.d.ts +2 -0
  459. package/dist/seo/llms/client.js +4 -0
  460. package/dist/seo/llms/contract.d.ts +2 -0
  461. package/dist/seo/llms/contract.js +2 -0
  462. package/dist/seo/llms.d.ts +2 -0
  463. package/dist/seo/llms.js +17 -0
  464. package/dist/seo/load-env.d.ts +12 -0
  465. package/dist/seo/meta/contract.d.ts +2 -0
  466. package/dist/seo/meta/contract.js +2 -0
  467. package/dist/seo/og/route.d.ts +2 -0
  468. package/dist/seo/og/route.js +3 -0
  469. package/dist/seo/og.d.ts +2 -0
  470. package/dist/seo/og.js +4 -0
  471. package/dist/seo/pages/contract.d.ts +2 -0
  472. package/dist/seo/pages/contract.js +4 -0
  473. package/dist/seo/redirects.d.ts +2 -0
  474. package/dist/seo/redirects.js +6 -0
  475. package/dist/seo/register-sitemap-cli-impl.d.ts +6 -1
  476. package/dist/seo/register-sitemap-cli.d.ts +1 -1
  477. package/dist/seo/register-sitemap-cli.js +73 -66
  478. package/dist/seo/register-sitemap-request.d.ts +0 -1
  479. package/dist/seo/robots.d.ts +2 -0
  480. package/dist/seo/robots.js +4 -0
  481. package/dist/seo/routing.d.ts +0 -1
  482. package/dist/seo/safeJsonLd.d.ts +0 -1
  483. package/dist/seo/schema-filter.d.ts +0 -1
  484. package/dist/seo/server-api.d.ts +0 -1
  485. package/dist/seo/server.d.ts +0 -1
  486. package/dist/seo/server.js +10 -80
  487. package/dist/seo/sitemap.d.ts +2 -0
  488. package/dist/seo/sitemap.js +15 -0
  489. package/dist/seo/types.d.ts +0 -1
  490. package/dist/seo/withManagedMetadata.d.ts +0 -1
  491. package/dist/seo-meta/contract.d.ts +1 -60
  492. package/dist/seo-meta/contract.js +2 -41
  493. package/dist/seo-pages/contract.d.ts +1 -61
  494. package/dist/seo-pages/contract.js +4 -49
  495. package/dist/server/index.d.ts +0 -1
  496. package/dist/server/index.js +6 -32
  497. package/dist/server/mint-site-token.d.ts +0 -1
  498. package/dist/server/server-fetch.d.ts +0 -1
  499. package/dist/server-api-GJJQZVG7.js +8 -0
  500. package/dist/shared/build-entries.d.ts +53 -14
  501. package/dist/shared/clock.d.ts +20 -0
  502. package/dist/shared/color.d.ts +1 -39
  503. package/dist/shared/defer.d.ts +0 -1
  504. package/dist/shared/fetchWithRetry.d.ts +0 -1
  505. package/dist/shared/frame.d.ts +1 -9
  506. package/dist/shared/fresh-fetch.d.ts +0 -1
  507. package/dist/shared/glass.d.ts +0 -1
  508. package/dist/shared/identity.d.ts +0 -1
  509. package/dist/shared/markdown.d.ts +40 -0
  510. package/dist/shared/next-files.d.ts +0 -1
  511. package/dist/shared/page-leave.d.ts +0 -1
  512. package/dist/shared/publishCredential.d.ts +0 -1
  513. package/dist/shared/reporting-gate.d.ts +0 -1
  514. package/dist/shared/request-guards.d.ts +0 -1
  515. package/dist/shared/siteToken.d.ts +0 -1
  516. package/dist/shared/sonorFetch.d.ts +0 -1
  517. package/dist/shared/source-graph.d.ts +0 -1
  518. package/dist/shared/uuid.d.ts +0 -1
  519. package/dist/shared/version.d.ts +1 -2
  520. package/dist/shared/visual-viewport-gap.d.ts +0 -1
  521. package/dist/signal/SignalBridge.d.ts +0 -1
  522. package/dist/signal/SignalCore.d.ts +0 -1
  523. package/dist/signal/SignalExperiment.d.ts +0 -1
  524. package/dist/signal/index.d.ts +0 -1
  525. package/dist/signal/index.js +72 -44
  526. package/dist/signal/store.d.ts +0 -1
  527. package/dist/signal/types.d.ts +0 -1
  528. package/dist/site-config/index.d.ts +0 -1
  529. package/dist/site-config/index.js +2 -17
  530. package/dist/sitemap/discover.d.ts +0 -1
  531. package/dist/sitemap/index.d.ts +6 -1
  532. package/dist/sitemap/index.js +15 -553
  533. package/dist/sitemap/shared.d.ts +0 -1
  534. package/dist/sites/contract.d.ts +1 -51
  535. package/dist/sites/contract.js +3 -38
  536. package/dist/sites/normalize.d.ts +1 -36
  537. package/dist/sites/resolve.d.ts +0 -1
  538. package/dist/sites/site-param.d.ts +0 -1
  539. package/dist/slots/ManagedSlot.d.ts +0 -1
  540. package/dist/slots/contract.d.ts +1 -82
  541. package/dist/slots/contract.js +2 -41
  542. package/dist/slots/index.d.ts +0 -1
  543. package/dist/slots/index.js +5 -182
  544. package/dist/slots/revalidate.d.ts +0 -1
  545. package/dist/slots/server-api.d.ts +0 -1
  546. package/dist/socket-loader-R24ZSRSQ.js +12 -0
  547. package/dist/sync/AddToCalendar.d.ts +0 -1
  548. package/dist/sync/BookingWidget.d.ts +0 -1
  549. package/dist/sync/MeetingFormatStep.d.ts +0 -1
  550. package/dist/sync/api.d.ts +0 -1
  551. package/dist/sync/booking-flow.d.ts +0 -1
  552. package/dist/sync/index.d.ts +0 -1
  553. package/dist/sync/index.js +6 -64
  554. package/dist/sync/types.d.ts +0 -1
  555. package/dist/types.d.ts +0 -63
  556. package/dist/web-vitals.attribution-N2PCCF4Q.js +522 -0
  557. package/dist/website/BlocksPopup.d.ts +25 -0
  558. package/dist/website/PopupBlocks.d.ts +57 -0
  559. package/dist/website/SiteDesignReporter.d.ts +28 -0
  560. package/dist/website/cms/server.d.ts +2 -0
  561. package/dist/website/cms/server.js +5 -0
  562. package/dist/website/cms-server.d.ts +2 -0
  563. package/dist/website/cms.d.ts +2 -0
  564. package/dist/website/cms.js +5 -0
  565. package/dist/website/contract.d.ts +1 -0
  566. package/dist/website/contract.js +3 -0
  567. package/dist/website/cta-bar.d.ts +2 -0
  568. package/dist/website/cta-bar.js +5 -0
  569. package/dist/website/design.d.ts +165 -0
  570. package/dist/website/images/server.d.ts +2 -0
  571. package/dist/website/images/server.js +3 -0
  572. package/dist/website/images-server.d.ts +2 -0
  573. package/dist/website/images.d.ts +2 -0
  574. package/dist/website/images.js +6 -0
  575. package/dist/website/index.d.ts +17 -0
  576. package/dist/website/index.js +13 -0
  577. package/dist/website/landing/server.d.ts +2 -0
  578. package/dist/website/landing/server.js +3 -0
  579. package/dist/website/landing-server.d.ts +2 -0
  580. package/dist/website/landing.d.ts +2 -0
  581. package/dist/website/landing.js +3 -0
  582. package/dist/website/popups.d.ts +17 -0
  583. package/dist/website/popups.js +22 -0
  584. package/dist/website/slots/contract.d.ts +2 -0
  585. package/dist/website/slots/contract.js +2 -0
  586. package/dist/website/slots-contract.d.ts +2 -0
  587. package/dist/website/slots.d.ts +3 -0
  588. package/dist/website/slots.js +5 -0
  589. package/dist/writeLLMsTxt-UMHKGNRR.js +11 -0
  590. package/package.json +191 -161
  591. package/skills/site-kit/SKILL.md +9 -3
  592. package/dist/AnalyticsProvider-44PDLORZ.js +0 -34
  593. package/dist/AnalyticsProvider-44PDLORZ.js.map +0 -1
  594. package/dist/AnalyticsProvider-F6KHEAOX.mjs +0 -13
  595. package/dist/AnalyticsProvider-F6KHEAOX.mjs.map +0 -1
  596. package/dist/ArticleFaqSection-3KZ24MFS.js +0 -13
  597. package/dist/ArticleFaqSection-3KZ24MFS.js.map +0 -1
  598. package/dist/ArticleFaqSection-XZPXJVH4.mjs +0 -11
  599. package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +0 -1
  600. package/dist/ArticleViewTracker-MGNVIHZ4.js +0 -54
  601. package/dist/ArticleViewTracker-MGNVIHZ4.js.map +0 -1
  602. package/dist/ArticleViewTracker-NI4UNSY7.mjs +0 -51
  603. package/dist/ArticleViewTracker-NI4UNSY7.mjs.map +0 -1
  604. package/dist/ChatWidget-XSALHDDW.mjs +0 -17
  605. package/dist/ChatWidget-XSALHDDW.mjs.map +0 -1
  606. package/dist/ChatWidget-YBXJRR2Z.js +0 -34
  607. package/dist/ChatWidget-YBXJRR2Z.js.map +0 -1
  608. package/dist/DatePicker-4WNKNNCV.mjs +0 -4
  609. package/dist/DatePicker-4WNKNNCV.mjs.map +0 -1
  610. package/dist/DatePicker-VPZR7RU3.js +0 -13
  611. package/dist/DatePicker-VPZR7RU3.js.map +0 -1
  612. package/dist/EngageWidget-DUEXPVOY.mjs +0 -13
  613. package/dist/EngageWidget-DUEXPVOY.mjs.map +0 -1
  614. package/dist/EngageWidget-MDCRS3BN.js +0 -22
  615. package/dist/EngageWidget-MDCRS3BN.js.map +0 -1
  616. package/dist/FileField-AXU6KBSV.js +0 -91
  617. package/dist/FileField-AXU6KBSV.js.map +0 -1
  618. package/dist/FileField-UTLGR5ZN.mjs +0 -85
  619. package/dist/FileField-UTLGR5ZN.mjs.map +0 -1
  620. package/dist/FormCelebration-7CBANVNS.mjs +0 -4
  621. package/dist/FormCelebration-7CBANVNS.mjs.map +0 -1
  622. package/dist/FormCelebration-O2O5S6JI.js +0 -13
  623. package/dist/FormCelebration-O2O5S6JI.js.map +0 -1
  624. package/dist/FormSpotlight-NWLCZMOT.mjs +0 -756
  625. package/dist/FormSpotlight-NWLCZMOT.mjs.map +0 -1
  626. package/dist/FormSpotlight-RR5KJDIH.js +0 -761
  627. package/dist/FormSpotlight-RR5KJDIH.js.map +0 -1
  628. package/dist/FormStage-GFNX4GLU.js +0 -422
  629. package/dist/FormStage-GFNX4GLU.js.map +0 -1
  630. package/dist/FormStage-V4XKLI6J.mjs +0 -420
  631. package/dist/FormStage-V4XKLI6J.mjs.map +0 -1
  632. package/dist/ManagedForm-4AD3LWSC.js +0 -25
  633. package/dist/ManagedForm-4AD3LWSC.js.map +0 -1
  634. package/dist/ManagedForm-4IWPG6AZ.mjs +0 -16
  635. package/dist/ManagedForm-4IWPG6AZ.mjs.map +0 -1
  636. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs +0 -64
  637. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs.map +0 -1
  638. package/dist/ManagedNewsletterForm-HJZNUABY.js +0 -66
  639. package/dist/ManagedNewsletterForm-HJZNUABY.js.map +0 -1
  640. package/dist/SignalCore-N2LKG4XN.mjs +0 -324
  641. package/dist/SignalCore-N2LKG4XN.mjs.map +0 -1
  642. package/dist/SignalCore-P2JUY2BO.js +0 -326
  643. package/dist/SignalCore-P2JUY2BO.js.map +0 -1
  644. package/dist/SitemapSync-KFY4PJ7G.js +0 -19
  645. package/dist/SitemapSync-KFY4PJ7G.js.map +0 -1
  646. package/dist/SitemapSync-UYDL7T4M.mjs +0 -10
  647. package/dist/SitemapSync-UYDL7T4M.mjs.map +0 -1
  648. package/dist/SitemapSync.d.ts.map +0 -1
  649. package/dist/admin-auth/index.d.ts.map +0 -1
  650. package/dist/admin-auth/index.js.map +0 -1
  651. package/dist/admin-auth/index.mjs +0 -0
  652. package/dist/admin-auth/index.mjs.map +0 -1
  653. package/dist/admin-auth/session.d.ts.map +0 -1
  654. package/dist/affiliates/AffiliatesWidget.d.ts.map +0 -1
  655. package/dist/affiliates/api.d.ts.map +0 -1
  656. package/dist/affiliates/index.d.ts.map +0 -1
  657. package/dist/affiliates/types.d.ts.map +0 -1
  658. package/dist/affiliates/useAffiliates.d.ts.map +0 -1
  659. package/dist/analytics/AnalyticsProvider.d.ts.map +0 -1
  660. package/dist/analytics/WebVitals.d.ts.map +0 -1
  661. package/dist/analytics/dispatch.d.ts.map +0 -1
  662. package/dist/analytics/index.d.ts.map +0 -1
  663. package/dist/analytics/index.js.map +0 -1
  664. package/dist/analytics/index.mjs +0 -15
  665. package/dist/analytics/index.mjs.map +0 -1
  666. package/dist/analytics/measurement-context.d.ts.map +0 -1
  667. package/dist/analytics/page-observation.d.ts.map +0 -1
  668. package/dist/analytics/send-gate.d.ts.map +0 -1
  669. package/dist/analytics/types.d.ts.map +0 -1
  670. package/dist/analytics/useContactTracking.d.ts.map +0 -1
  671. package/dist/api-D745LGGU.mjs +0 -183
  672. package/dist/api-XR5APCH3.js +0 -201
  673. package/dist/article-styles-DACUAOVT.mjs +0 -592
  674. package/dist/article-styles-DACUAOVT.mjs.map +0 -1
  675. package/dist/article-styles-JHHTNHOK.js +0 -595
  676. package/dist/article-styles-JHHTNHOK.js.map +0 -1
  677. package/dist/article-tables-EWXG4LNP.js +0 -17
  678. package/dist/article-tables-EWXG4LNP.js.map +0 -1
  679. package/dist/article-tables-OGE52LNT.mjs +0 -4
  680. package/dist/article-tables-OGE52LNT.mjs.map +0 -1
  681. package/dist/articles/Article.d.ts.map +0 -1
  682. package/dist/articles/ArticleFAQ.d.ts.map +0 -1
  683. package/dist/articles/ArticleFaqSection.d.ts.map +0 -1
  684. package/dist/articles/ArticleList.d.ts.map +0 -1
  685. package/dist/articles/ArticleViewTracker.d.ts.map +0 -1
  686. package/dist/articles/AuthorCard.d.ts.map +0 -1
  687. package/dist/articles/AuthorPage.d.ts.map +0 -1
  688. package/dist/articles/ClusterLandingPage.d.ts.map +0 -1
  689. package/dist/articles/ClusterNavigation.d.ts.map +0 -1
  690. package/dist/articles/ManagedNewsletterForm.d.ts.map +0 -1
  691. package/dist/articles/NewsletterShell.d.ts.map +0 -1
  692. package/dist/articles/NewsletterWidget.d.ts.map +0 -1
  693. package/dist/articles/PublicationLayout.d.ts.map +0 -1
  694. package/dist/articles/PublicationSidebar.d.ts.map +0 -1
  695. package/dist/articles/RelatedPosts.d.ts.map +0 -1
  696. package/dist/articles/ServiceCallout.d.ts.map +0 -1
  697. package/dist/articles/TableOfContents.d.ts.map +0 -1
  698. package/dist/articles/article-styles.d.ts.map +0 -1
  699. package/dist/articles/article-tables.d.ts.map +0 -1
  700. package/dist/articles/artwork.d.ts.map +0 -1
  701. package/dist/articles/author-schema.d.ts.map +0 -1
  702. package/dist/articles/author-social.d.ts.map +0 -1
  703. package/dist/articles/excerpt.d.ts.map +0 -1
  704. package/dist/articles/index.d.ts.map +0 -1
  705. package/dist/articles/index.js.map +0 -1
  706. package/dist/articles/index.mjs +0 -457
  707. package/dist/articles/index.mjs.map +0 -1
  708. package/dist/articles/news-sitemap.d.ts.map +0 -1
  709. package/dist/articles/processArticleHtml.d.ts.map +0 -1
  710. package/dist/articles/public-reads.d.ts.map +0 -1
  711. package/dist/articles/reading-time.d.ts.map +0 -1
  712. package/dist/articles/routes.d.ts.map +0 -1
  713. package/dist/articles/server-core.d.ts.map +0 -1
  714. package/dist/articles/server-ui.d.ts.map +0 -1
  715. package/dist/articles/server-ui.js.map +0 -1
  716. package/dist/articles/server-ui.mjs +0 -1098
  717. package/dist/articles/server-ui.mjs.map +0 -1
  718. package/dist/articles/server.d.ts.map +0 -1
  719. package/dist/articles/server.js.map +0 -1
  720. package/dist/articles/server.mjs +0 -11
  721. package/dist/articles/server.mjs.map +0 -1
  722. package/dist/articles/types.d.ts.map +0 -1
  723. package/dist/articles/widget-styles.d.ts.map +0 -1
  724. package/dist/brand/extract-brand-profile.d.ts.map +0 -1
  725. package/dist/chunk-2FEQ6TYD.mjs +0 -37
  726. package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
  727. package/dist/chunk-34XL7TVH.js +0 -130
  728. package/dist/chunk-34XL7TVH.js.map +0 -1
  729. package/dist/chunk-3AOKYAZ2.js +0 -135
  730. package/dist/chunk-3AOKYAZ2.js.map +0 -1
  731. package/dist/chunk-3BLKKF67.mjs +0 -131
  732. package/dist/chunk-3BLKKF67.mjs.map +0 -1
  733. package/dist/chunk-3DWIYCQX.js +0 -30
  734. package/dist/chunk-3DWIYCQX.js.map +0 -1
  735. package/dist/chunk-3EAS4PAT.js +0 -141
  736. package/dist/chunk-3EAS4PAT.js.map +0 -1
  737. package/dist/chunk-3SDMJMN2.js +0 -71
  738. package/dist/chunk-3SDMJMN2.js.map +0 -1
  739. package/dist/chunk-3T2CVHFO.mjs +0 -453
  740. package/dist/chunk-3T2CVHFO.mjs.map +0 -1
  741. package/dist/chunk-42LLFAJQ.mjs +0 -932
  742. package/dist/chunk-42LLFAJQ.mjs.map +0 -1
  743. package/dist/chunk-4BEGKFMN.js +0 -133
  744. package/dist/chunk-4BEGKFMN.js.map +0 -1
  745. package/dist/chunk-4KAMU5HD.mjs +0 -16
  746. package/dist/chunk-4KAMU5HD.mjs.map +0 -1
  747. package/dist/chunk-4U5NCKQY.mjs +0 -39
  748. package/dist/chunk-4U5NCKQY.mjs.map +0 -1
  749. package/dist/chunk-4WCA2HM6.mjs +0 -57
  750. package/dist/chunk-4WCA2HM6.mjs.map +0 -1
  751. package/dist/chunk-54CARHDR.mjs +0 -95
  752. package/dist/chunk-54CARHDR.mjs.map +0 -1
  753. package/dist/chunk-55J2KE7D.js +0 -60
  754. package/dist/chunk-55J2KE7D.js.map +0 -1
  755. package/dist/chunk-5F2FIM5A.mjs +0 -135
  756. package/dist/chunk-5F2FIM5A.mjs.map +0 -1
  757. package/dist/chunk-5SANRSX3.mjs +0 -17
  758. package/dist/chunk-5SANRSX3.mjs.map +0 -1
  759. package/dist/chunk-5XFFUP6D.js +0 -100
  760. package/dist/chunk-5XFFUP6D.js.map +0 -1
  761. package/dist/chunk-5YA6SI4Z.mjs +0 -14279
  762. package/dist/chunk-5YVQWLSQ.mjs +0 -47
  763. package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
  764. package/dist/chunk-5ZMTEK7U.js +0 -1430
  765. package/dist/chunk-5ZMTEK7U.js.map +0 -1
  766. package/dist/chunk-64BOVMXG.mjs +0 -68
  767. package/dist/chunk-64BOVMXG.mjs.map +0 -1
  768. package/dist/chunk-662YHKWW.mjs +0 -10
  769. package/dist/chunk-662YHKWW.mjs.map +0 -1
  770. package/dist/chunk-6C47333H.mjs +0 -55
  771. package/dist/chunk-6C47333H.mjs.map +0 -1
  772. package/dist/chunk-6EDVCUAG.mjs +0 -29
  773. package/dist/chunk-6EDVCUAG.mjs.map +0 -1
  774. package/dist/chunk-6FNFM7JL.js +0 -113
  775. package/dist/chunk-6FNFM7JL.js.map +0 -1
  776. package/dist/chunk-6OQYRVMI.js +0 -937
  777. package/dist/chunk-6OQYRVMI.js.map +0 -1
  778. package/dist/chunk-6PJTLBRR.mjs +0 -11
  779. package/dist/chunk-6PJTLBRR.mjs.map +0 -1
  780. package/dist/chunk-6XNEGG5B.mjs +0 -137
  781. package/dist/chunk-6XNEGG5B.mjs.map +0 -1
  782. package/dist/chunk-7F66Y4MA.mjs +0 -1073
  783. package/dist/chunk-7F66Y4MA.mjs.map +0 -1
  784. package/dist/chunk-7RLL67F3.js +0 -47
  785. package/dist/chunk-7RLL67F3.js.map +0 -1
  786. package/dist/chunk-7THQ4UW3.js +0 -69
  787. package/dist/chunk-7THQ4UW3.js.map +0 -1
  788. package/dist/chunk-A2HL22BO.mjs +0 -165
  789. package/dist/chunk-A2HL22BO.mjs.map +0 -1
  790. package/dist/chunk-AAZNH3MA.mjs +0 -23
  791. package/dist/chunk-AAZNH3MA.mjs.map +0 -1
  792. package/dist/chunk-AEN7EL6N.js +0 -161
  793. package/dist/chunk-AEN7EL6N.js.map +0 -1
  794. package/dist/chunk-AGIMH67E.mjs +0 -26
  795. package/dist/chunk-AGIMH67E.mjs.map +0 -1
  796. package/dist/chunk-AL4Z6VYF.js +0 -83
  797. package/dist/chunk-AL4Z6VYF.js.map +0 -1
  798. package/dist/chunk-AS2HUIDW.mjs +0 -16
  799. package/dist/chunk-AS2HUIDW.mjs.map +0 -1
  800. package/dist/chunk-B22WSN4L.mjs +0 -59
  801. package/dist/chunk-B22WSN4L.mjs.map +0 -1
  802. package/dist/chunk-B6QPCAEG.mjs +0 -128
  803. package/dist/chunk-B6QPCAEG.mjs.map +0 -1
  804. package/dist/chunk-BBBJHYPH.js +0 -19
  805. package/dist/chunk-BBBJHYPH.js.map +0 -1
  806. package/dist/chunk-BEXTDHO4.mjs +0 -57
  807. package/dist/chunk-BEXTDHO4.mjs.map +0 -1
  808. package/dist/chunk-BHZHWXER.js +0 -791
  809. package/dist/chunk-BHZHWXER.js.map +0 -1
  810. package/dist/chunk-BNKBRLJK.mjs +0 -75
  811. package/dist/chunk-BNKBRLJK.mjs.map +0 -1
  812. package/dist/chunk-BQP6JIE2.mjs +0 -28
  813. package/dist/chunk-BQP6JIE2.mjs.map +0 -1
  814. package/dist/chunk-BZR6RUIN.mjs +0 -128
  815. package/dist/chunk-BZR6RUIN.mjs.map +0 -1
  816. package/dist/chunk-C2CTLLIO.mjs +0 -72
  817. package/dist/chunk-C2CTLLIO.mjs.map +0 -1
  818. package/dist/chunk-C5VITBN7.mjs +0 -220
  819. package/dist/chunk-C5VITBN7.mjs.map +0 -1
  820. package/dist/chunk-CABEVWKJ.mjs +0 -25
  821. package/dist/chunk-CABEVWKJ.mjs.map +0 -1
  822. package/dist/chunk-CDRQYJUT.js +0 -355
  823. package/dist/chunk-CDRQYJUT.js.map +0 -1
  824. package/dist/chunk-CFRJ2MK5.mjs +0 -16
  825. package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
  826. package/dist/chunk-CIM5W3UO.js +0 -26
  827. package/dist/chunk-CIM5W3UO.js.map +0 -1
  828. package/dist/chunk-CLO3K7PF.js +0 -19
  829. package/dist/chunk-CLO3K7PF.js.map +0 -1
  830. package/dist/chunk-CM4AVKXR.js +0 -533
  831. package/dist/chunk-CM4AVKXR.js.map +0 -1
  832. package/dist/chunk-CU6OGBKK.mjs +0 -68
  833. package/dist/chunk-CU6OGBKK.mjs.map +0 -1
  834. package/dist/chunk-CUNZAD46.js +0 -53
  835. package/dist/chunk-CUNZAD46.js.map +0 -1
  836. package/dist/chunk-CXAXZFFW.js +0 -157
  837. package/dist/chunk-CXAXZFFW.js.map +0 -1
  838. package/dist/chunk-D3WJMSTB.mjs +0 -132
  839. package/dist/chunk-D3WJMSTB.mjs.map +0 -1
  840. package/dist/chunk-DA7IANFG.mjs +0 -37
  841. package/dist/chunk-DA7IANFG.mjs.map +0 -1
  842. package/dist/chunk-DV2LJYFD.js +0 -14
  843. package/dist/chunk-DV2LJYFD.js.map +0 -1
  844. package/dist/chunk-DV5KVNA7.js +0 -45
  845. package/dist/chunk-DV5KVNA7.js.map +0 -1
  846. package/dist/chunk-DVYYGHSG.js +0 -285
  847. package/dist/chunk-DVYYGHSG.js.map +0 -1
  848. package/dist/chunk-DWZGW77V.mjs +0 -1669
  849. package/dist/chunk-DWZGW77V.mjs.map +0 -1
  850. package/dist/chunk-EDLNMGQC.mjs +0 -65
  851. package/dist/chunk-EDLNMGQC.mjs.map +0 -1
  852. package/dist/chunk-EHJANA5C.js +0 -231
  853. package/dist/chunk-EHJANA5C.js.map +0 -1
  854. package/dist/chunk-EMHSHAVW.js +0 -19
  855. package/dist/chunk-EMHSHAVW.js.map +0 -1
  856. package/dist/chunk-ESP5RMB7.js +0 -42
  857. package/dist/chunk-ESP5RMB7.js.map +0 -1
  858. package/dist/chunk-FCAHV5P3.mjs +0 -45
  859. package/dist/chunk-FCAHV5P3.mjs.map +0 -1
  860. package/dist/chunk-FPVYKSXE.mjs +0 -154
  861. package/dist/chunk-FPVYKSXE.mjs.map +0 -1
  862. package/dist/chunk-G2KGHIAP.js +0 -176
  863. package/dist/chunk-G2KGHIAP.js.map +0 -1
  864. package/dist/chunk-G6WF4G3E.js +0 -43
  865. package/dist/chunk-G6WF4G3E.js.map +0 -1
  866. package/dist/chunk-GCPPXUAI.js +0 -72
  867. package/dist/chunk-GCPPXUAI.js.map +0 -1
  868. package/dist/chunk-GFSQMK35.mjs +0 -127
  869. package/dist/chunk-GFSQMK35.mjs.map +0 -1
  870. package/dist/chunk-GIGUDKLS.mjs +0 -6
  871. package/dist/chunk-GIGUDKLS.mjs.map +0 -1
  872. package/dist/chunk-GSRT66PA.js +0 -80
  873. package/dist/chunk-GSRT66PA.js.map +0 -1
  874. package/dist/chunk-H4TSADY3.mjs +0 -761
  875. package/dist/chunk-H4TSADY3.mjs.map +0 -1
  876. package/dist/chunk-H6AU3WKF.js +0 -108
  877. package/dist/chunk-H6AU3WKF.js.map +0 -1
  878. package/dist/chunk-HGNSJXWT.js +0 -55
  879. package/dist/chunk-HGNSJXWT.js.map +0 -1
  880. package/dist/chunk-HIZJD7TU.mjs +0 -326
  881. package/dist/chunk-HIZJD7TU.mjs.map +0 -1
  882. package/dist/chunk-HPGPOUHU.mjs +0 -105
  883. package/dist/chunk-HPGPOUHU.mjs.map +0 -1
  884. package/dist/chunk-HXHDOIV6.js +0 -41
  885. package/dist/chunk-HXHDOIV6.js.map +0 -1
  886. package/dist/chunk-I7AZC5ZQ.js +0 -14285
  887. package/dist/chunk-IBJOGXQI.js +0 -33
  888. package/dist/chunk-IBJOGXQI.js.map +0 -1
  889. package/dist/chunk-IMWON7OV.mjs +0 -27
  890. package/dist/chunk-IMWON7OV.mjs.map +0 -1
  891. package/dist/chunk-IO65ROAO.js +0 -134
  892. package/dist/chunk-IO65ROAO.js.map +0 -1
  893. package/dist/chunk-IWSN4DGG.js +0 -132
  894. package/dist/chunk-IWSN4DGG.js.map +0 -1
  895. package/dist/chunk-J7QI3GDX.js +0 -12
  896. package/dist/chunk-J7QI3GDX.js.map +0 -1
  897. package/dist/chunk-JA77WXRE.js +0 -30
  898. package/dist/chunk-JA77WXRE.js.map +0 -1
  899. package/dist/chunk-JCDX37BY.js +0 -58
  900. package/dist/chunk-JCDX37BY.js.map +0 -1
  901. package/dist/chunk-JONWE26J.js +0 -81
  902. package/dist/chunk-JONWE26J.js.map +0 -1
  903. package/dist/chunk-JOYMIGR2.mjs +0 -24842
  904. package/dist/chunk-JP5WGL75.js +0 -62
  905. package/dist/chunk-JP5WGL75.js.map +0 -1
  906. package/dist/chunk-JS75ORH7.js +0 -24860
  907. package/dist/chunk-JSXLTZUP.mjs +0 -255
  908. package/dist/chunk-JSXLTZUP.mjs.map +0 -1
  909. package/dist/chunk-JX3PO2MH.js +0 -53
  910. package/dist/chunk-JX3PO2MH.js.map +0 -1
  911. package/dist/chunk-KHPJ3CEL.js +0 -72
  912. package/dist/chunk-KHPJ3CEL.js.map +0 -1
  913. package/dist/chunk-KP5BFPGT.js +0 -44
  914. package/dist/chunk-KP5BFPGT.js.map +0 -1
  915. package/dist/chunk-KR7ATPAN.js +0 -52
  916. package/dist/chunk-KR7ATPAN.js.map +0 -1
  917. package/dist/chunk-KZVSB5WE.mjs +0 -21
  918. package/dist/chunk-KZVSB5WE.mjs.map +0 -1
  919. package/dist/chunk-LVGSOW2F.js +0 -32
  920. package/dist/chunk-LVGSOW2F.js.map +0 -1
  921. package/dist/chunk-M2N7NY3V.js +0 -103
  922. package/dist/chunk-M2N7NY3V.js.map +0 -1
  923. package/dist/chunk-MDQLON5R.mjs +0 -101
  924. package/dist/chunk-MDQLON5R.mjs.map +0 -1
  925. package/dist/chunk-MHKD34B4.js +0 -1677
  926. package/dist/chunk-MHKD34B4.js.map +0 -1
  927. package/dist/chunk-MLVHVKFT.mjs +0 -148
  928. package/dist/chunk-MLVHVKFT.mjs.map +0 -1
  929. package/dist/chunk-MU3D5IO7.mjs +0 -283
  930. package/dist/chunk-MU3D5IO7.mjs.map +0 -1
  931. package/dist/chunk-MU7DTEUF.mjs +0 -77
  932. package/dist/chunk-MU7DTEUF.mjs.map +0 -1
  933. package/dist/chunk-MVHR77V4.js +0 -205
  934. package/dist/chunk-MVHR77V4.js.map +0 -1
  935. package/dist/chunk-MXJOKOFK.mjs +0 -51
  936. package/dist/chunk-MXJOKOFK.mjs.map +0 -1
  937. package/dist/chunk-NBOBOYMT.js +0 -52
  938. package/dist/chunk-NBOBOYMT.js.map +0 -1
  939. package/dist/chunk-NE6QGHFT.mjs +0 -240
  940. package/dist/chunk-NE6QGHFT.mjs.map +0 -1
  941. package/dist/chunk-NH2P27MA.js +0 -27
  942. package/dist/chunk-NH2P27MA.js.map +0 -1
  943. package/dist/chunk-NN2YE5WT.js +0 -325
  944. package/dist/chunk-NNZDWY3L.mjs +0 -323
  945. package/dist/chunk-NSWO43XW.mjs +0 -39
  946. package/dist/chunk-NSWO43XW.mjs.map +0 -1
  947. package/dist/chunk-NYXENHD2.mjs +0 -96
  948. package/dist/chunk-NYXENHD2.mjs.map +0 -1
  949. package/dist/chunk-O5GHP7UO.js +0 -142
  950. package/dist/chunk-O5GHP7UO.js.map +0 -1
  951. package/dist/chunk-OBKS3CPP.mjs +0 -50
  952. package/dist/chunk-OBKS3CPP.mjs.map +0 -1
  953. package/dist/chunk-OFBEBMXN.mjs +0 -8014
  954. package/dist/chunk-OFBEBMXN.mjs.map +0 -1
  955. package/dist/chunk-OGNX6JT4.js +0 -222
  956. package/dist/chunk-OGNX6JT4.js.map +0 -1
  957. package/dist/chunk-OIPG3EGM.js +0 -771
  958. package/dist/chunk-OIPG3EGM.js.map +0 -1
  959. package/dist/chunk-OSU4QA5M.js +0 -260
  960. package/dist/chunk-OSU4QA5M.js.map +0 -1
  961. package/dist/chunk-OY3PDIB3.js +0 -106
  962. package/dist/chunk-OY3PDIB3.js.map +0 -1
  963. package/dist/chunk-P4Y75QSU.js +0 -19
  964. package/dist/chunk-P4Y75QSU.js.map +0 -1
  965. package/dist/chunk-PENNTSJE.mjs +0 -99
  966. package/dist/chunk-PENNTSJE.mjs.map +0 -1
  967. package/dist/chunk-PFDRQJKJ.js +0 -1079
  968. package/dist/chunk-PFDRQJKJ.js.map +0 -1
  969. package/dist/chunk-PGYOBEPL.mjs +0 -150
  970. package/dist/chunk-PGYOBEPL.mjs.map +0 -1
  971. package/dist/chunk-PIPGH7GA.js +0 -158
  972. package/dist/chunk-PIPGH7GA.js.map +0 -1
  973. package/dist/chunk-PRAHDLKT.js +0 -67
  974. package/dist/chunk-PRAHDLKT.js.map +0 -1
  975. package/dist/chunk-PURI56RE.js +0 -8
  976. package/dist/chunk-PURI56RE.js.map +0 -1
  977. package/dist/chunk-QAQTDHHT.mjs +0 -1102
  978. package/dist/chunk-QAQTDHHT.mjs.map +0 -1
  979. package/dist/chunk-QCS7NWMA.js +0 -161
  980. package/dist/chunk-QCS7NWMA.js.map +0 -1
  981. package/dist/chunk-QRHVMTHF.mjs +0 -94
  982. package/dist/chunk-QRHVMTHF.mjs.map +0 -1
  983. package/dist/chunk-QZF5NTXQ.mjs +0 -28
  984. package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
  985. package/dist/chunk-R5F2JQVX.mjs +0 -41
  986. package/dist/chunk-R5F2JQVX.mjs.map +0 -1
  987. package/dist/chunk-RC4WWQXR.js +0 -47
  988. package/dist/chunk-RC4WWQXR.js.map +0 -1
  989. package/dist/chunk-RCB6HEHM.mjs +0 -349
  990. package/dist/chunk-RCB6HEHM.mjs.map +0 -1
  991. package/dist/chunk-RI6DFQCA.js +0 -539
  992. package/dist/chunk-RI6DFQCA.js.map +0 -1
  993. package/dist/chunk-RLUNEEGM.js +0 -336
  994. package/dist/chunk-RLUNEEGM.js.map +0 -1
  995. package/dist/chunk-RMDH2HMW.js +0 -108
  996. package/dist/chunk-RMDH2HMW.js.map +0 -1
  997. package/dist/chunk-RQROZLH3.js +0 -1153
  998. package/dist/chunk-RQROZLH3.js.map +0 -1
  999. package/dist/chunk-SFMNUVDN.mjs +0 -49
  1000. package/dist/chunk-SFMNUVDN.mjs.map +0 -1
  1001. package/dist/chunk-SG7CWD2R.js +0 -138
  1002. package/dist/chunk-SG7CWD2R.js.map +0 -1
  1003. package/dist/chunk-SHLWA6JY.mjs +0 -26
  1004. package/dist/chunk-SHLWA6JY.mjs.map +0 -1
  1005. package/dist/chunk-SNAQBZPT.js +0 -68
  1006. package/dist/chunk-SNAQBZPT.js.map +0 -1
  1007. package/dist/chunk-SUGBIEYQ.js +0 -195
  1008. package/dist/chunk-SUGBIEYQ.js.map +0 -1
  1009. package/dist/chunk-SVCKJ5KH.mjs +0 -193
  1010. package/dist/chunk-SVCKJ5KH.mjs.map +0 -1
  1011. package/dist/chunk-SWIKKSKL.js +0 -19
  1012. package/dist/chunk-SWIKKSKL.js.map +0 -1
  1013. package/dist/chunk-TBXWJJGT.js +0 -468
  1014. package/dist/chunk-TBXWJJGT.js.map +0 -1
  1015. package/dist/chunk-THO4NS6Z.mjs +0 -1416
  1016. package/dist/chunk-THO4NS6Z.mjs.map +0 -1
  1017. package/dist/chunk-TMVKRQGJ.mjs +0 -64
  1018. package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
  1019. package/dist/chunk-TPEPAHU5.mjs +0 -525
  1020. package/dist/chunk-TPEPAHU5.mjs.map +0 -1
  1021. package/dist/chunk-TST2IKYO.js +0 -264
  1022. package/dist/chunk-TST2IKYO.js.map +0 -1
  1023. package/dist/chunk-TULCHQX2.js +0 -29
  1024. package/dist/chunk-TULCHQX2.js.map +0 -1
  1025. package/dist/chunk-U577ITSA.js +0 -23
  1026. package/dist/chunk-U577ITSA.js.map +0 -1
  1027. package/dist/chunk-UCMMIGC6.mjs +0 -156
  1028. package/dist/chunk-UCMMIGC6.mjs.map +0 -1
  1029. package/dist/chunk-UCQDE5UH.mjs +0 -102
  1030. package/dist/chunk-UCQDE5UH.mjs.map +0 -1
  1031. package/dist/chunk-UHYRVALN.mjs +0 -98
  1032. package/dist/chunk-UHYRVALN.mjs.map +0 -1
  1033. package/dist/chunk-UO6KTHBQ.mjs +0 -125
  1034. package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
  1035. package/dist/chunk-UZKXOZHR.js +0 -23
  1036. package/dist/chunk-UZKXOZHR.js.map +0 -1
  1037. package/dist/chunk-VA2O5OSV.mjs +0 -21
  1038. package/dist/chunk-VA2O5OSV.mjs.map +0 -1
  1039. package/dist/chunk-VIGRGMWR.mjs +0 -229
  1040. package/dist/chunk-VIGRGMWR.mjs.map +0 -1
  1041. package/dist/chunk-VJMPIRSD.js +0 -31
  1042. package/dist/chunk-VJMPIRSD.js.map +0 -1
  1043. package/dist/chunk-VJTKIKZY.mjs +0 -782
  1044. package/dist/chunk-VJTKIKZY.mjs.map +0 -1
  1045. package/dist/chunk-VQL7XDIY.mjs +0 -43
  1046. package/dist/chunk-VQL7XDIY.mjs.map +0 -1
  1047. package/dist/chunk-VS67QHNX.mjs +0 -34
  1048. package/dist/chunk-VS67QHNX.mjs.map +0 -1
  1049. package/dist/chunk-VUAGR6VL.js +0 -483
  1050. package/dist/chunk-VUAGR6VL.js.map +0 -1
  1051. package/dist/chunk-WRRVYPMY.mjs +0 -535
  1052. package/dist/chunk-WRRVYPMY.mjs.map +0 -1
  1053. package/dist/chunk-WS7MH3GD.js +0 -40
  1054. package/dist/chunk-WS7MH3GD.js.map +0 -1
  1055. package/dist/chunk-WSPGXSBU.mjs +0 -202
  1056. package/dist/chunk-WSPGXSBU.mjs.map +0 -1
  1057. package/dist/chunk-XEOIGCUE.mjs +0 -480
  1058. package/dist/chunk-XEOIGCUE.mjs.map +0 -1
  1059. package/dist/chunk-Y2CP5J6Q.js +0 -116
  1060. package/dist/chunk-Y2CP5J6Q.js.map +0 -1
  1061. package/dist/chunk-YBKALLBH.js +0 -46
  1062. package/dist/chunk-YBKALLBH.js.map +0 -1
  1063. package/dist/chunk-YMZNEDFP.js +0 -39
  1064. package/dist/chunk-YMZNEDFP.js.map +0 -1
  1065. package/dist/chunk-YPGUV6BT.mjs +0 -30
  1066. package/dist/chunk-YPGUV6BT.mjs.map +0 -1
  1067. package/dist/chunk-YU7QZ3PP.mjs +0 -45
  1068. package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
  1069. package/dist/chunk-YVJASVVK.js +0 -97
  1070. package/dist/chunk-YVJASVVK.js.map +0 -1
  1071. package/dist/chunk-YZJ22HUQ.js +0 -29
  1072. package/dist/chunk-YZJ22HUQ.js.map +0 -1
  1073. package/dist/chunk-Z2URIOKG.mjs +0 -36
  1074. package/dist/chunk-Z2URIOKG.mjs.map +0 -1
  1075. package/dist/chunk-ZN4HBK5C.mjs +0 -17
  1076. package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
  1077. package/dist/chunk-ZVBLXXNJ.mjs +0 -53
  1078. package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
  1079. package/dist/chunk-ZXC56JS3.js +0 -8071
  1080. package/dist/chunk-ZXC56JS3.js.map +0 -1
  1081. package/dist/chunk-ZZQAGCSI.mjs +0 -43
  1082. package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
  1083. package/dist/cli/agent/checks.d.ts +0 -96
  1084. package/dist/cli/agent/checks.d.ts.map +0 -1
  1085. package/dist/cli/agent/context.d.ts +0 -50
  1086. package/dist/cli/agent/context.d.ts.map +0 -1
  1087. package/dist/cli/agent/envelope.d.ts +0 -98
  1088. package/dist/cli/agent/envelope.d.ts.map +0 -1
  1089. package/dist/cli/agent/errors.d.ts +0 -36
  1090. package/dist/cli/agent/errors.d.ts.map +0 -1
  1091. package/dist/cli/agent/output.d.ts +0 -41
  1092. package/dist/cli/agent/output.d.ts.map +0 -1
  1093. package/dist/cli/agent/ssr-bailout.d.ts +0 -27
  1094. package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
  1095. package/dist/cli/api/sonor.d.ts +0 -39
  1096. package/dist/cli/api/sonor.d.ts.map +0 -1
  1097. package/dist/cli/codemod/diff.d.ts +0 -14
  1098. package/dist/cli/codemod/diff.d.ts.map +0 -1
  1099. package/dist/cli/codemod/engine.d.ts +0 -26
  1100. package/dist/cli/codemod/engine.d.ts.map +0 -1
  1101. package/dist/cli/codemod/transforms.d.ts +0 -31
  1102. package/dist/cli/codemod/transforms.d.ts.map +0 -1
  1103. package/dist/cli/commands/api-routes.d.ts +0 -13
  1104. package/dist/cli/commands/api-routes.d.ts.map +0 -1
  1105. package/dist/cli/commands/codemod.d.ts +0 -21
  1106. package/dist/cli/commands/codemod.d.ts.map +0 -1
  1107. package/dist/cli/commands/doctor.d.ts +0 -27
  1108. package/dist/cli/commands/doctor.d.ts.map +0 -1
  1109. package/dist/cli/commands/faqs.d.ts +0 -16
  1110. package/dist/cli/commands/faqs.d.ts.map +0 -1
  1111. package/dist/cli/commands/geo.d.ts +0 -18
  1112. package/dist/cli/commands/geo.d.ts.map +0 -1
  1113. package/dist/cli/commands/images.d.ts +0 -85
  1114. package/dist/cli/commands/images.d.ts.map +0 -1
  1115. package/dist/cli/commands/init.d.ts +0 -21
  1116. package/dist/cli/commands/init.d.ts.map +0 -1
  1117. package/dist/cli/commands/install.d.ts +0 -15
  1118. package/dist/cli/commands/install.d.ts.map +0 -1
  1119. package/dist/cli/commands/locations.d.ts +0 -55
  1120. package/dist/cli/commands/locations.d.ts.map +0 -1
  1121. package/dist/cli/commands/manifest.d.ts +0 -17
  1122. package/dist/cli/commands/manifest.d.ts.map +0 -1
  1123. package/dist/cli/commands/migrate.d.ts +0 -19
  1124. package/dist/cli/commands/migrate.d.ts.map +0 -1
  1125. package/dist/cli/commands/next16.d.ts +0 -10
  1126. package/dist/cli/commands/next16.d.ts.map +0 -1
  1127. package/dist/cli/commands/og.d.ts +0 -117
  1128. package/dist/cli/commands/og.d.ts.map +0 -1
  1129. package/dist/cli/commands/scaffold.d.ts +0 -22
  1130. package/dist/cli/commands/scaffold.d.ts.map +0 -1
  1131. package/dist/cli/commands/scan.d.ts +0 -18
  1132. package/dist/cli/commands/scan.d.ts.map +0 -1
  1133. package/dist/cli/commands/setup.d.ts +0 -35
  1134. package/dist/cli/commands/setup.d.ts.map +0 -1
  1135. package/dist/cli/commands/sync.d.ts +0 -22
  1136. package/dist/cli/commands/sync.d.ts.map +0 -1
  1137. package/dist/cli/commands/upgrade.d.ts +0 -15
  1138. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  1139. package/dist/cli/commands/verify.d.ts +0 -22
  1140. package/dist/cli/commands/verify.d.ts.map +0 -1
  1141. package/dist/cli/config.d.ts +0 -31
  1142. package/dist/cli/config.d.ts.map +0 -1
  1143. package/dist/cli/generators/index.d.ts +0 -60
  1144. package/dist/cli/generators/index.d.ts.map +0 -1
  1145. package/dist/cli/index.d.ts +0 -15
  1146. package/dist/cli/index.d.ts.map +0 -1
  1147. package/dist/cli/index.js +0 -32904
  1148. package/dist/cli/index.mjs +0 -32872
  1149. package/dist/cli/migrator/index.d.ts +0 -92
  1150. package/dist/cli/migrator/index.d.ts.map +0 -1
  1151. package/dist/cli/scanner/index.d.ts +0 -129
  1152. package/dist/cli/scanner/index.d.ts.map +0 -1
  1153. package/dist/cli/state.d.ts +0 -7
  1154. package/dist/cli/state.d.ts.map +0 -1
  1155. package/dist/client/SiteKitCredential.d.ts.map +0 -1
  1156. package/dist/client/index.d.ts.map +0 -1
  1157. package/dist/client/index.js.map +0 -1
  1158. package/dist/client/index.mjs +0 -27
  1159. package/dist/client/index.mjs.map +0 -1
  1160. package/dist/cms/CmsPage.d.ts.map +0 -1
  1161. package/dist/cms/CmsPreview.d.ts.map +0 -1
  1162. package/dist/cms/CmsSection.d.ts.map +0 -1
  1163. package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
  1164. package/dist/cms/index.d.ts.map +0 -1
  1165. package/dist/cms/index.js.map +0 -1
  1166. package/dist/cms/index.mjs +0 -389
  1167. package/dist/cms/index.mjs.map +0 -1
  1168. package/dist/cms/sanity-image.d.ts.map +0 -1
  1169. package/dist/cms/sections/CtaSection.d.ts.map +0 -1
  1170. package/dist/cms/sections/CustomSection.d.ts.map +0 -1
  1171. package/dist/cms/sections/FaqSection.d.ts.map +0 -1
  1172. package/dist/cms/sections/FormSection.d.ts.map +0 -1
  1173. package/dist/cms/sections/GallerySection.d.ts.map +0 -1
  1174. package/dist/cms/sections/HeroSection.d.ts.map +0 -1
  1175. package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
  1176. package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
  1177. package/dist/cms/sections/index.d.ts.map +0 -1
  1178. package/dist/cms/server-api.d.ts.map +0 -1
  1179. package/dist/cms/server.d.ts.map +0 -1
  1180. package/dist/cms/server.js.map +0 -1
  1181. package/dist/cms/server.mjs +0 -5
  1182. package/dist/cms/server.mjs.map +0 -1
  1183. package/dist/cms/types.d.ts.map +0 -1
  1184. package/dist/commerce/CalendarView.d.ts.map +0 -1
  1185. package/dist/commerce/CheckoutForm.d.ts.map +0 -1
  1186. package/dist/commerce/EventCalendar.d.ts.map +0 -1
  1187. package/dist/commerce/EventCheckout.d.ts.map +0 -1
  1188. package/dist/commerce/EventEmbed.d.ts.map +0 -1
  1189. package/dist/commerce/EventModal.d.ts.map +0 -1
  1190. package/dist/commerce/EventTile.d.ts.map +0 -1
  1191. package/dist/commerce/EventsAgenda.d.ts.map +0 -1
  1192. package/dist/commerce/EventsWidget.d.ts.map +0 -1
  1193. package/dist/commerce/OfferingCard.d.ts.map +0 -1
  1194. package/dist/commerce/OfferingList.d.ts.map +0 -1
  1195. package/dist/commerce/ProductDetail.d.ts.map +0 -1
  1196. package/dist/commerce/ProductEmbed.d.ts.map +0 -1
  1197. package/dist/commerce/ProductGrid.d.ts.map +0 -1
  1198. package/dist/commerce/ProductPage.d.ts.map +0 -1
  1199. package/dist/commerce/RegistrationForm.d.ts.map +0 -1
  1200. package/dist/commerce/SizeChart.d.ts.map +0 -1
  1201. package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
  1202. package/dist/commerce/api.d.ts.map +0 -1
  1203. package/dist/commerce/events-extras.d.ts.map +0 -1
  1204. package/dist/commerce/index.d.ts.map +0 -1
  1205. package/dist/commerce/index.js.map +0 -1
  1206. package/dist/commerce/index.mjs +0 -16
  1207. package/dist/commerce/index.mjs.map +0 -1
  1208. package/dist/commerce/server.d.ts.map +0 -1
  1209. package/dist/commerce/server.js.map +0 -1
  1210. package/dist/commerce/server.mjs +0 -237
  1211. package/dist/commerce/server.mjs.map +0 -1
  1212. package/dist/commerce/types.d.ts.map +0 -1
  1213. package/dist/commerce/useEventModal.d.ts.map +0 -1
  1214. package/dist/commerce/utils.d.ts.map +0 -1
  1215. package/dist/config/index.d.ts.map +0 -1
  1216. package/dist/config/index.js.map +0 -1
  1217. package/dist/config/index.mjs +0 -116
  1218. package/dist/config/index.mjs.map +0 -1
  1219. package/dist/cta-bar/CtaBar.d.ts.map +0 -1
  1220. package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
  1221. package/dist/cta-bar/client.d.ts.map +0 -1
  1222. package/dist/cta-bar/client.js.map +0 -1
  1223. package/dist/cta-bar/client.mjs +0 -6
  1224. package/dist/cta-bar/client.mjs.map +0 -1
  1225. package/dist/cta-bar/index.d.ts.map +0 -1
  1226. package/dist/cta-bar/index.js.map +0 -1
  1227. package/dist/cta-bar/index.mjs +0 -221
  1228. package/dist/cta-bar/index.mjs.map +0 -1
  1229. package/dist/cta-bar/styles.d.ts.map +0 -1
  1230. package/dist/discover-LPN55L5B.js +0 -21
  1231. package/dist/discover-LPN55L5B.js.map +0 -1
  1232. package/dist/discover-QGA6QFSR.mjs +0 -4
  1233. package/dist/discover-QGA6QFSR.mjs.map +0 -1
  1234. package/dist/engage/ChatWidget.d.ts.map +0 -1
  1235. package/dist/engage/DesignRenderer.d.ts.map +0 -1
  1236. package/dist/engage/EchoUiActions.d.ts.map +0 -1
  1237. package/dist/engage/EngageWidget.d.ts.map +0 -1
  1238. package/dist/engage/brand-color.d.ts.map +0 -1
  1239. package/dist/engage/chat-messages.d.ts.map +0 -1
  1240. package/dist/engage/echo-config.d.ts.map +0 -1
  1241. package/dist/engage/element-rules.d.ts.map +0 -1
  1242. package/dist/engage/index.d.ts.map +0 -1
  1243. package/dist/engage/index.js.map +0 -1
  1244. package/dist/engage/index.mjs +0 -51
  1245. package/dist/engage/index.mjs.map +0 -1
  1246. package/dist/engage/launcher-placement.d.ts.map +0 -1
  1247. package/dist/engage/socket-loader.d.ts.map +0 -1
  1248. package/dist/engage/types.d.ts.map +0 -1
  1249. package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
  1250. package/dist/fleet/contract.d.ts.map +0 -1
  1251. package/dist/fleet/contract.js.map +0 -1
  1252. package/dist/fleet/contract.mjs +0 -4
  1253. package/dist/fleet/contract.mjs.map +0 -1
  1254. package/dist/fleet/heartbeat.d.ts.map +0 -1
  1255. package/dist/fleet/index.d.ts.map +0 -1
  1256. package/dist/fleet/index.js.map +0 -1
  1257. package/dist/fleet/index.mjs +0 -12
  1258. package/dist/fleet/index.mjs.map +0 -1
  1259. package/dist/forms/DatePicker.d.ts.map +0 -1
  1260. package/dist/forms/FileField.d.ts.map +0 -1
  1261. package/dist/forms/FormCelebration.d.ts.map +0 -1
  1262. package/dist/forms/FormClient.d.ts.map +0 -1
  1263. package/dist/forms/FormEnhancer.d.ts.map +0 -1
  1264. package/dist/forms/FormField.d.ts.map +0 -1
  1265. package/dist/forms/FormSpotlight.d.ts.map +0 -1
  1266. package/dist/forms/FormStage.d.ts.map +0 -1
  1267. package/dist/forms/HoneypotField.d.ts.map +0 -1
  1268. package/dist/forms/ManagedForm.d.ts.map +0 -1
  1269. package/dist/forms/ServerForm.d.ts.map +0 -1
  1270. package/dist/forms/StaticForm.d.ts.map +0 -1
  1271. package/dist/forms/contract.d.ts.map +0 -1
  1272. package/dist/forms/contract.js.map +0 -1
  1273. package/dist/forms/contract.mjs +0 -4
  1274. package/dist/forms/contract.mjs.map +0 -1
  1275. package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
  1276. package/dist/forms/delight.d.ts.map +0 -1
  1277. package/dist/forms/experience-chrome.d.ts.map +0 -1
  1278. package/dist/forms/experience-plan.d.ts.map +0 -1
  1279. package/dist/forms/field-controls.d.ts.map +0 -1
  1280. package/dist/forms/field-interactions.d.ts.map +0 -1
  1281. package/dist/forms/field-rules.d.ts.map +0 -1
  1282. package/dist/forms/form-values.d.ts.map +0 -1
  1283. package/dist/forms/formsApi.d.ts.map +0 -1
  1284. package/dist/forms/ga4-identity.d.ts.map +0 -1
  1285. package/dist/forms/index.d.ts.map +0 -1
  1286. package/dist/forms/index.js.map +0 -1
  1287. package/dist/forms/index.mjs +0 -341
  1288. package/dist/forms/index.mjs.map +0 -1
  1289. package/dist/forms/normalize-config.d.ts.map +0 -1
  1290. package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
  1291. package/dist/forms/recaptcha.d.ts.map +0 -1
  1292. package/dist/forms/server.d.ts.map +0 -1
  1293. package/dist/forms/server.js.map +0 -1
  1294. package/dist/forms/server.mjs +0 -61
  1295. package/dist/forms/server.mjs.map +0 -1
  1296. package/dist/forms/static.d.ts.map +0 -1
  1297. package/dist/forms/static.js.map +0 -1
  1298. package/dist/forms/static.mjs +0 -8
  1299. package/dist/forms/static.mjs.map +0 -1
  1300. package/dist/forms/submitForm.d.ts.map +0 -1
  1301. package/dist/forms/tracking-session.d.ts.map +0 -1
  1302. package/dist/forms/types.d.ts.map +0 -1
  1303. package/dist/forms/useForm.d.ts.map +0 -1
  1304. package/dist/forms/useFormTracking.d.ts.map +0 -1
  1305. package/dist/images/ManagedFavicon.d.ts.map +0 -1
  1306. package/dist/images/ManagedImage.d.ts.map +0 -1
  1307. package/dist/images/api.d.ts.map +0 -1
  1308. package/dist/images/index.d.ts.map +0 -1
  1309. package/dist/images/index.js.map +0 -1
  1310. package/dist/images/index.mjs +0 -8
  1311. package/dist/images/index.mjs.map +0 -1
  1312. package/dist/images/server.d.ts.map +0 -1
  1313. package/dist/images/server.js.map +0 -1
  1314. package/dist/images/server.mjs +0 -4
  1315. package/dist/images/server.mjs.map +0 -1
  1316. package/dist/index.d.ts.map +0 -1
  1317. package/dist/index.js.map +0 -1
  1318. package/dist/index.mjs +0 -173
  1319. package/dist/index.mjs.map +0 -1
  1320. package/dist/landing/LandingPage.d.ts.map +0 -1
  1321. package/dist/landing/contract.d.ts.map +0 -1
  1322. package/dist/landing/index.d.ts.map +0 -1
  1323. package/dist/landing/index.js.map +0 -1
  1324. package/dist/landing/index.mjs +0 -5
  1325. package/dist/landing/index.mjs.map +0 -1
  1326. package/dist/landing/metadata.d.ts.map +0 -1
  1327. package/dist/landing/server.d.ts.map +0 -1
  1328. package/dist/landing/server.js.map +0 -1
  1329. package/dist/landing/server.mjs +0 -4
  1330. package/dist/landing/server.mjs.map +0 -1
  1331. package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
  1332. package/dist/layout/SiteKitLayout.d.ts.map +0 -1
  1333. package/dist/layout/SpeculationRules.d.ts.map +0 -1
  1334. package/dist/layout/client.d.ts.map +0 -1
  1335. package/dist/layout/client.js.map +0 -1
  1336. package/dist/layout/client.mjs +0 -19
  1337. package/dist/layout/client.mjs.map +0 -1
  1338. package/dist/layout/index.d.ts.map +0 -1
  1339. package/dist/layout/index.js.map +0 -1
  1340. package/dist/layout/index.mjs +0 -106
  1341. package/dist/layout/index.mjs.map +0 -1
  1342. package/dist/layout/types.d.ts.map +0 -1
  1343. package/dist/lib-6HOOMENJ.js +0 -28
  1344. package/dist/lib-BGAWCSUH.js +0 -31
  1345. package/dist/lib-R7IQ4ZHE.mjs +0 -3
  1346. package/dist/lib-RSDMEKDQ.mjs +0 -4
  1347. package/dist/llms/AEOComponents.d.ts.map +0 -1
  1348. package/dist/llms/SpeakableSchema.d.ts.map +0 -1
  1349. package/dist/llms/aiRobots.d.ts.map +0 -1
  1350. package/dist/llms/api.d.ts.map +0 -1
  1351. package/dist/llms/client.d.ts.map +0 -1
  1352. package/dist/llms/client.js.map +0 -1
  1353. package/dist/llms/client.mjs +0 -5
  1354. package/dist/llms/client.mjs.map +0 -1
  1355. package/dist/llms/contract.d.ts.map +0 -1
  1356. package/dist/llms/contract.js.map +0 -1
  1357. package/dist/llms/contract.mjs +0 -4
  1358. package/dist/llms/contract.mjs.map +0 -1
  1359. package/dist/llms/discovery-headers.d.ts.map +0 -1
  1360. package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
  1361. package/dist/llms/handlers.d.ts.map +0 -1
  1362. package/dist/llms/humanize-industry.d.ts.map +0 -1
  1363. package/dist/llms/index.d.ts.map +0 -1
  1364. package/dist/llms/index.js.map +0 -1
  1365. package/dist/llms/index.mjs +0 -286
  1366. package/dist/llms/index.mjs.map +0 -1
  1367. package/dist/llms/links.d.ts.map +0 -1
  1368. package/dist/llms/revalidate.d.ts.map +0 -1
  1369. package/dist/llms/seo-revalidate.d.ts.map +0 -1
  1370. package/dist/llms/sourcedFacts.d.ts.map +0 -1
  1371. package/dist/llms/types.d.ts.map +0 -1
  1372. package/dist/llms/wiring.d.ts +0 -103
  1373. package/dist/llms/wiring.d.ts.map +0 -1
  1374. package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
  1375. package/dist/manifest/index.d.ts.map +0 -1
  1376. package/dist/manifest/index.js.map +0 -1
  1377. package/dist/manifest/index.mjs +0 -83
  1378. package/dist/manifest/index.mjs.map +0 -1
  1379. package/dist/maps/GoogleMap.d.ts.map +0 -1
  1380. package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
  1381. package/dist/maps/api.d.ts.map +0 -1
  1382. package/dist/maps/index.d.ts.map +0 -1
  1383. package/dist/maps/index.js.map +0 -1
  1384. package/dist/maps/index.mjs +0 -361
  1385. package/dist/maps/index.mjs.map +0 -1
  1386. package/dist/maps/types.d.ts.map +0 -1
  1387. package/dist/mcp/WebMcpTools.d.ts.map +0 -1
  1388. package/dist/mcp/client.d.ts.map +0 -1
  1389. package/dist/mcp/client.js.map +0 -1
  1390. package/dist/mcp/client.mjs +0 -129
  1391. package/dist/mcp/client.mjs.map +0 -1
  1392. package/dist/mcp/declarative.d.ts.map +0 -1
  1393. package/dist/mcp/handlers.d.ts.map +0 -1
  1394. package/dist/mcp/index.d.ts.map +0 -1
  1395. package/dist/mcp/index.js.map +0 -1
  1396. package/dist/mcp/index.mjs +0 -509
  1397. package/dist/mcp/index.mjs.map +0 -1
  1398. package/dist/mcp/protocol.d.ts.map +0 -1
  1399. package/dist/mcp/serverCard.d.ts.map +0 -1
  1400. package/dist/mcp/transport.d.ts.map +0 -1
  1401. package/dist/mcp/transport.js.map +0 -1
  1402. package/dist/mcp/transport.mjs +0 -123
  1403. package/dist/mcp/transport.mjs.map +0 -1
  1404. package/dist/mcp/types.d.ts.map +0 -1
  1405. package/dist/motion/CountUp.d.ts.map +0 -1
  1406. package/dist/motion/Parallax.d.ts.map +0 -1
  1407. package/dist/motion/Reveal.d.ts.map +0 -1
  1408. package/dist/motion/ScrollScene.d.ts.map +0 -1
  1409. package/dist/motion/engine.d.ts.map +0 -1
  1410. package/dist/motion/failsafe.d.ts.map +0 -1
  1411. package/dist/motion/gsap.d.ts.map +0 -1
  1412. package/dist/motion/gsap.js.map +0 -1
  1413. package/dist/motion/gsap.mjs +0 -220
  1414. package/dist/motion/gsap.mjs.map +0 -1
  1415. package/dist/motion/index.d.ts.map +0 -1
  1416. package/dist/motion/index.js.map +0 -1
  1417. package/dist/motion/index.mjs +0 -209
  1418. package/dist/motion/index.mjs.map +0 -1
  1419. package/dist/motion/three.d.ts.map +0 -1
  1420. package/dist/motion/three.js.map +0 -1
  1421. package/dist/motion/three.mjs +0 -145
  1422. package/dist/motion/three.mjs.map +0 -1
  1423. package/dist/og/config.d.ts.map +0 -1
  1424. package/dist/og/contrast.d.ts.map +0 -1
  1425. package/dist/og/index.d.ts.map +0 -1
  1426. package/dist/og/index.js.map +0 -1
  1427. package/dist/og/index.mjs +0 -6
  1428. package/dist/og/index.mjs.map +0 -1
  1429. package/dist/og/pages.d.ts.map +0 -1
  1430. package/dist/og/route-copy.d.ts +0 -34
  1431. package/dist/og/route-copy.d.ts.map +0 -1
  1432. package/dist/og/route-fit.d.ts.map +0 -1
  1433. package/dist/og/route.d.ts.map +0 -1
  1434. package/dist/og/route.js.map +0 -1
  1435. package/dist/og/route.mjs +0 -239
  1436. package/dist/og/route.mjs.map +0 -1
  1437. package/dist/og/template.d.ts.map +0 -1
  1438. package/dist/og/wiring.d.ts +0 -100
  1439. package/dist/og/wiring.d.ts.map +0 -1
  1440. package/dist/portfolio/contract.d.ts.map +0 -1
  1441. package/dist/portfolio/contract.js.map +0 -1
  1442. package/dist/portfolio/contract.mjs +0 -115
  1443. package/dist/portfolio/contract.mjs.map +0 -1
  1444. package/dist/proxy/index.d.ts.map +0 -1
  1445. package/dist/proxy/index.js.map +0 -1
  1446. package/dist/proxy/index.mjs +0 -170
  1447. package/dist/proxy/index.mjs.map +0 -1
  1448. package/dist/proxy/securityHeaders.d.ts.map +0 -1
  1449. package/dist/proxy/segment.d.ts.map +0 -1
  1450. package/dist/redirects/index.d.ts.map +0 -1
  1451. package/dist/redirects/index.js.map +0 -1
  1452. package/dist/redirects/index.mjs +0 -8
  1453. package/dist/redirects/index.mjs.map +0 -1
  1454. package/dist/redirects/not-found.d.ts +0 -31
  1455. package/dist/redirects/not-found.d.ts.map +0 -1
  1456. package/dist/redirects/not-found.js +0 -47
  1457. package/dist/redirects/not-found.js.map +0 -1
  1458. package/dist/redirects/not-found.mjs +0 -45
  1459. package/dist/redirects/not-found.mjs.map +0 -1
  1460. package/dist/reputation/TestimonialSection.d.ts.map +0 -1
  1461. package/dist/reputation/api.d.ts.map +0 -1
  1462. package/dist/reputation/index.d.ts.map +0 -1
  1463. package/dist/reputation/index.js.map +0 -1
  1464. package/dist/reputation/index.mjs +0 -5
  1465. package/dist/reputation/index.mjs.map +0 -1
  1466. package/dist/reputation/server.d.ts.map +0 -1
  1467. package/dist/reputation/server.js.map +0 -1
  1468. package/dist/reputation/server.mjs +0 -4
  1469. package/dist/reputation/server.mjs.map +0 -1
  1470. package/dist/reputation/types.d.ts.map +0 -1
  1471. package/dist/robots/index.d.ts.map +0 -1
  1472. package/dist/robots/index.js.map +0 -1
  1473. package/dist/robots/index.mjs +0 -53
  1474. package/dist/robots/index.mjs.map +0 -1
  1475. package/dist/robots/indexnow.d.ts.map +0 -1
  1476. package/dist/robots/indexnow.js.map +0 -1
  1477. package/dist/robots/indexnow.mjs +0 -34
  1478. package/dist/robots/indexnow.mjs.map +0 -1
  1479. package/dist/robots/next-internals.d.ts.map +0 -1
  1480. package/dist/search/contract.d.ts +0 -62
  1481. package/dist/search/contract.d.ts.map +0 -1
  1482. package/dist/search/contract.js +0 -17
  1483. package/dist/search/contract.js.map +0 -1
  1484. package/dist/search/contract.mjs +0 -4
  1485. package/dist/search/contract.mjs.map +0 -1
  1486. package/dist/search/index.d.ts +0 -52
  1487. package/dist/search/index.d.ts.map +0 -1
  1488. package/dist/search/index.js +0 -105
  1489. package/dist/search/index.js.map +0 -1
  1490. package/dist/search/index.mjs +0 -99
  1491. package/dist/search/index.mjs.map +0 -1
  1492. package/dist/seo/LocationPageContent.d.ts +0 -64
  1493. package/dist/seo/LocationPageContent.d.ts.map +0 -1
  1494. package/dist/seo/ManagedContent.d.ts.map +0 -1
  1495. package/dist/seo/ManagedFAQ.d.ts.map +0 -1
  1496. package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
  1497. package/dist/seo/ManagedSchema.d.ts.map +0 -1
  1498. package/dist/seo/ManagedScripts.d.ts.map +0 -1
  1499. package/dist/seo/api.d.ts.map +0 -1
  1500. package/dist/seo/client.d.ts.map +0 -1
  1501. package/dist/seo/client.js.map +0 -1
  1502. package/dist/seo/client.mjs +0 -11
  1503. package/dist/seo/client.mjs.map +0 -1
  1504. package/dist/seo/getManagedMetadata.d.ts.map +0 -1
  1505. package/dist/seo/groundingSchema.d.ts.map +0 -1
  1506. package/dist/seo/index.d.ts.map +0 -1
  1507. package/dist/seo/index.js.map +0 -1
  1508. package/dist/seo/index.mjs +0 -702
  1509. package/dist/seo/index.mjs.map +0 -1
  1510. package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
  1511. package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
  1512. package/dist/seo/register-sitemap-cli.mjs +0 -528
  1513. package/dist/seo/register-sitemap-request.d.ts.map +0 -1
  1514. package/dist/seo/routing.d.ts.map +0 -1
  1515. package/dist/seo/safeJsonLd.d.ts.map +0 -1
  1516. package/dist/seo/schema-filter.d.ts.map +0 -1
  1517. package/dist/seo/server-api.d.ts.map +0 -1
  1518. package/dist/seo/server.d.ts.map +0 -1
  1519. package/dist/seo/server.js.map +0 -1
  1520. package/dist/seo/server.mjs +0 -11
  1521. package/dist/seo/server.mjs.map +0 -1
  1522. package/dist/seo/types.d.ts.map +0 -1
  1523. package/dist/seo/withManagedMetadata.d.ts.map +0 -1
  1524. package/dist/seo-meta/contract.d.ts.map +0 -1
  1525. package/dist/seo-meta/contract.js.map +0 -1
  1526. package/dist/seo-meta/contract.mjs +0 -4
  1527. package/dist/seo-meta/contract.mjs.map +0 -1
  1528. package/dist/seo-pages/contract.d.ts.map +0 -1
  1529. package/dist/seo-pages/contract.js.map +0 -1
  1530. package/dist/seo-pages/contract.mjs +0 -45
  1531. package/dist/seo-pages/contract.mjs.map +0 -1
  1532. package/dist/server/index.d.ts.map +0 -1
  1533. package/dist/server/index.js.map +0 -1
  1534. package/dist/server/index.mjs +0 -7
  1535. package/dist/server/index.mjs.map +0 -1
  1536. package/dist/server/mint-site-token.d.ts.map +0 -1
  1537. package/dist/server/server-fetch.d.ts.map +0 -1
  1538. package/dist/server-api-7F5P6CSH.mjs +0 -9
  1539. package/dist/server-api-7F5P6CSH.mjs.map +0 -1
  1540. package/dist/server-api-OC5JNK6R.js +0 -86
  1541. package/dist/server-api-OC5JNK6R.js.map +0 -1
  1542. package/dist/setup/index.d.ts +0 -12
  1543. package/dist/setup/index.d.ts.map +0 -1
  1544. package/dist/setup/index.js +0 -4
  1545. package/dist/setup/index.js.map +0 -1
  1546. package/dist/setup/index.mjs +0 -3
  1547. package/dist/setup/index.mjs.map +0 -1
  1548. package/dist/shared/build-entries.d.ts.map +0 -1
  1549. package/dist/shared/color.d.ts.map +0 -1
  1550. package/dist/shared/defer.d.ts.map +0 -1
  1551. package/dist/shared/fetchWithRetry.d.ts.map +0 -1
  1552. package/dist/shared/frame.d.ts.map +0 -1
  1553. package/dist/shared/fresh-fetch.d.ts.map +0 -1
  1554. package/dist/shared/glass.d.ts.map +0 -1
  1555. package/dist/shared/identity.d.ts.map +0 -1
  1556. package/dist/shared/next-files.d.ts.map +0 -1
  1557. package/dist/shared/page-leave.d.ts.map +0 -1
  1558. package/dist/shared/publishCredential.d.ts.map +0 -1
  1559. package/dist/shared/reporting-gate.d.ts.map +0 -1
  1560. package/dist/shared/request-guards.d.ts.map +0 -1
  1561. package/dist/shared/siteToken.d.ts.map +0 -1
  1562. package/dist/shared/sonorFetch.d.ts.map +0 -1
  1563. package/dist/shared/source-graph.d.ts.map +0 -1
  1564. package/dist/shared/uuid.d.ts.map +0 -1
  1565. package/dist/shared/version.d.ts.map +0 -1
  1566. package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
  1567. package/dist/signal/SignalBridge.d.ts.map +0 -1
  1568. package/dist/signal/SignalCore.d.ts.map +0 -1
  1569. package/dist/signal/SignalExperiment.d.ts.map +0 -1
  1570. package/dist/signal/index.d.ts.map +0 -1
  1571. package/dist/signal/index.js.map +0 -1
  1572. package/dist/signal/index.mjs +0 -6
  1573. package/dist/signal/index.mjs.map +0 -1
  1574. package/dist/signal/store.d.ts.map +0 -1
  1575. package/dist/signal/types.d.ts.map +0 -1
  1576. package/dist/site-config/index.d.ts.map +0 -1
  1577. package/dist/site-config/index.js.map +0 -1
  1578. package/dist/site-config/index.mjs +0 -4
  1579. package/dist/site-config/index.mjs.map +0 -1
  1580. package/dist/sitemap/discover.d.ts.map +0 -1
  1581. package/dist/sitemap/index.d.ts.map +0 -1
  1582. package/dist/sitemap/index.js.map +0 -1
  1583. package/dist/sitemap/index.mjs +0 -549
  1584. package/dist/sitemap/index.mjs.map +0 -1
  1585. package/dist/sitemap/shared.d.ts.map +0 -1
  1586. package/dist/sites/contract.d.ts.map +0 -1
  1587. package/dist/sites/contract.js.map +0 -1
  1588. package/dist/sites/contract.mjs +0 -5
  1589. package/dist/sites/contract.mjs.map +0 -1
  1590. package/dist/sites/normalize.d.ts.map +0 -1
  1591. package/dist/sites/resolve.d.ts.map +0 -1
  1592. package/dist/sites/site-param.d.ts.map +0 -1
  1593. package/dist/slots/ManagedSlot.d.ts.map +0 -1
  1594. package/dist/slots/contract.d.ts.map +0 -1
  1595. package/dist/slots/contract.js.map +0 -1
  1596. package/dist/slots/contract.mjs +0 -4
  1597. package/dist/slots/contract.mjs.map +0 -1
  1598. package/dist/slots/index.d.ts.map +0 -1
  1599. package/dist/slots/index.js.map +0 -1
  1600. package/dist/slots/index.mjs +0 -142
  1601. package/dist/slots/index.mjs.map +0 -1
  1602. package/dist/slots/revalidate.d.ts.map +0 -1
  1603. package/dist/slots/server-api.d.ts.map +0 -1
  1604. package/dist/socket-loader-2NYBMBFQ.js +0 -16
  1605. package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
  1606. package/dist/socket-loader-JA2DI2RT.mjs +0 -14
  1607. package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
  1608. package/dist/sync/AddToCalendar.d.ts.map +0 -1
  1609. package/dist/sync/BookingWidget.d.ts.map +0 -1
  1610. package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
  1611. package/dist/sync/api.d.ts.map +0 -1
  1612. package/dist/sync/booking-flow.d.ts.map +0 -1
  1613. package/dist/sync/index.d.ts.map +0 -1
  1614. package/dist/sync/index.js.map +0 -1
  1615. package/dist/sync/index.mjs +0 -7
  1616. package/dist/sync/index.mjs.map +0 -1
  1617. package/dist/sync/types.d.ts.map +0 -1
  1618. package/dist/types.d.ts.map +0 -1
  1619. package/dist/web-vitals.attribution-7LKLZ5GR.mjs +0 -524
  1620. package/dist/web-vitals.attribution-7LKLZ5GR.mjs.map +0 -1
  1621. package/dist/web-vitals.attribution-ONVYQNRB.js +0 -535
  1622. package/dist/web-vitals.attribution-ONVYQNRB.js.map +0 -1
  1623. package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
  1624. package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
  1625. package/scripts/postinstall.cjs +0 -67
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/articles/Article.tsx","../../src/articles/ArticleList.tsx","../../src/articles/ClusterLandingPage.tsx","../../src/articles/PublicationSidebar.tsx","../../src/articles/PublicationLayout.tsx","../../src/articles/RelatedPosts.tsx"],"names":["notFound","wrapArticleTables","nextNotFound","cls","jsxs","Fragment","jsx"],"mappings":"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","file":"server-ui.mjs","sourcesContent":["/**\n * @sonordev/site-kit/articles - Article Component\n *\n * Fetches and displays a single article with full content, table of contents,\n * author info, related posts, and SEO metadata support.\n *\n * Ships with world-class default styling via scoped `.sk-article-*` classes.\n * No configuration needed — just `<Article slug={slug} />`.\n *\n * Override with `styles` prop (per-element class names) or `unstyled` for\n * complete control. The `children` render prop gives full data access.\n */\n\nimport React from 'react'\nimport { marked } from 'marked'\nimport { notFound as nextNotFound } from 'next/navigation'\nimport type { Article as ArticleType, TocItem, ArticleAuthor, ClusterNavigation as ClusterNavigationType } from './types'\nimport { ServiceCallouts } from './ServiceCallout'\nimport { readingTimeMinutes } from './reading-time'\nimport { getAuthorSocialLinks } from './author-social'\nimport { ClusterNavigation } from './ClusterNavigation'\nimport { addExternalLinkTargets, resolvePublicationSiteUrl } from './processArticleHtml'\nimport { articleArtworkImageStyle, resolveArticleArtwork } from './artwork'\nimport { articleCategorySlug, createPublicationRoutes, type PublicationRoutingOptions } from './routes'\nimport { fetchArticleBySlug, fetchRelatedArticles } from './public-reads'\n\n/**\n * Extract cluster navigation from a post's cluster fields (pure function, no\n * API calls). Mirrored copy: server-core.ts getClusterNavigation is\n * identical. Keep the two in sync — they CANNOT be consolidated because\n * articles/index is a CLIENT_ENTRY that must never import articles/server-core (see\n * build-entries.ts and client-entry-boundary.test.ts).\n */\nfunction getClusterNav(post: Record<string, any>): ClusterNavigationType | null {\n if (!post.cluster_id && !post.cluster_slug) return null\n const isPillar = post.article_type === 'pillar'\n return {\n cluster_name: post.cluster_name || '',\n cluster_slug: post.cluster_slug || '',\n pillar: isPillar ? null\n : post.parent_pillar_slug\n ? {\n slug: post.parent_pillar_slug,\n title: post.parent_pillar_title || '',\n category: post.parent_pillar_category || undefined,\n }\n : null,\n siblings: post.sibling_articles || [],\n is_pillar: isPillar,\n }\n}\n\n// ============================================================================\n// Markdown helpers\n// ============================================================================\n\nfunction looksLikeMarkdown(text: string): boolean {\n if (text.trimStart().startsWith('<')) return false\n const markers = [/^#{1,6}\\s/m, /\\*\\*[^*]+\\*\\*/, /\\[([^\\]]+)\\]\\([^)]+\\)/, /^[-*]\\s/m, /^>\\s/m]\n let hits = 0\n for (const re of markers) if (re.test(text)) hits++\n return hits >= 2\n}\n\nfunction slugify(text: string): string {\n return text.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, '')\n}\n\n/** Convert markdown to HTML if needed, and inject IDs into headings for TOC anchors. */\nfunction ensureHtml(raw: string): string {\n if (!raw) return raw\n let html = raw\n if (looksLikeMarkdown(html)) {\n html = marked.parse(html, { gfm: true, breaks: false, async: false }) as string\n }\n html = injectHeadingIds(html)\n return html\n}\n\n/** Add `id` attributes to h2-h4 that lack them so TOC anchor links work. */\nfunction injectHeadingIds(html: string): string {\n return html.replace(/<h([2-4])([^>]*)>(.*?)<\\/h[2-4]>/gi, (_full, level, attrs: string, inner: string) => {\n if (/\\bid\\s*=/i.test(attrs)) return _full\n const text = inner.replace(/<[^>]*>/g, '')\n const id = slugify(text)\n return `<h${level}${attrs} id=\"${id}\">${inner}</h${level}>`\n })\n}\n\n// ============================================================================\n// STYLE TYPES\n// ============================================================================\n\nexport interface ArticleStyles {\n article?: string\n header?: string\n breadcrumb?: string\n breadcrumbLink?: string\n title?: string\n subtitle?: string\n meta?: string\n metaItem?: string\n featuredImageWrapper?: string\n featuredImage?: string\n contentLayout?: string\n content?: string\n tocSidebar?: string\n tocTitle?: string\n tocList?: string\n tocItem?: string\n tocLink?: string\n tags?: string\n tag?: string\n faqSection?: string\n faqTitle?: string\n faqItem?: string\n faqQuestion?: string\n faqAnswer?: string\n authorCard?: string\n relatedSection?: string\n relatedTitle?: string\n relatedGrid?: string\n relatedCard?: string\n notFound?: string\n}\n\n// ============================================================================\n// TOC GENERATION\n// ============================================================================\n\nfunction generateTableOfContents(html: string): TocItem[] {\n const headingRegex = /<h([2-4])[^>]*(?:id=\"([^\"]*)\")?[^>]*>(.*?)<\\/h[2-4]>/gi\n const items: TocItem[] = []\n let match\n while ((match = headingRegex.exec(html)) !== null) {\n const level = parseInt(match[1])\n const existingId = match[2]\n const text = match[3].replace(/<[^>]*>/g, '')\n const id = existingId || slugify(text)\n items.push({ id, text, level })\n }\n return items\n}\n\n// ============================================================================\n// COMPONENT PROPS\n// ============================================================================\n\nexport interface ArticleServerProps {\n apiUrl?: string\n apiKey?: string\n slug: string\n showToc?: boolean\n showRelated?: boolean\n relatedCount?: number\n showAuthor?: boolean\n basePath?: string\n routing?: PublicationRoutingOptions\n /** The publication's name in the breadcrumb (e.g. \"The Forge\"). Default \"Articles\". */\n publicationName?: string\n className?: string\n styles?: ArticleStyles\n unstyled?: boolean\n siteUrl?: string\n /**\n * Sub-site host for multi-site projects (e.g. `bd-charlotte.com`). Scopes\n * the post, related-posts and view-count calls to that host. Omit to resolve\n * from NEXT_PUBLIC_SITE_URL. Separate from `siteUrl`, which only decides\n * which links in the body open in a new tab.\n */\n site?: string\n /**\n * What to render when the post doesn't exist. Default true: call Next's\n * `notFound()`, so the route answers 404 with `noindex` instead of a\n * \"Post Not Found\" message on a 200 (a soft 404). False renders that\n * message, for a page that wants its own missing-post state.\n *\n * For a guaranteed 404 status, also call `requireArticle(slug)` from\n * `@sonordev/site-kit/articles/server` in `generateMetadata`: metadata resolves\n * before anything streams. Thrown from inside a Suspense boundary that has\n * already streamed, `notFound()` can only add `noindex` to a 200.\n */\n notFound?: boolean\n children?: (props: {\n post: ArticleType\n tableOfContents: TocItem[]\n relatedPosts: ArticleType[]\n }) => React.ReactNode\n}\n\n// ============================================================================\n// CLASS HELPER — pick custom `styles` class or default `.sk-article-*` class\n// ============================================================================\n\nfunction cls(unstyled: boolean, styles: ArticleStyles, key: keyof ArticleStyles, defaultClass: string, extra?: string): string | undefined {\n if (unstyled) return styles[key] || undefined\n const base = styles[key] || defaultClass\n return extra ? `${base} ${extra}` : base\n}\n\n// ============================================================================\n// ARTICLE COMPONENT\n// ============================================================================\n\nexport async function Article({\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n apiKey = process.env.SONOR_API_KEY || '',\n slug,\n showToc = true,\n showRelated = true,\n relatedCount = 3,\n showAuthor = true,\n basePath,\n publicationName = 'Articles',\n routing,\n className,\n styles = {},\n unstyled = false,\n siteUrl,\n site,\n notFound = true,\n children,\n}: ArticleServerProps) {\n const routes = createPublicationRoutes({ basePath, ...routing })\n if (!apiKey) {\n console.warn('[Articles] No API key configured')\n return null\n }\n\n // Keep server-rendered styles and HTML processing out of the legacy client barrel.\n const [post, { articleCss }, { wrapArticleTables }] = await Promise.all([\n fetchArticleBySlug({ apiUrl, apiKey, site }, slug),\n unstyled ? Promise.resolve({ articleCss: '' }) : import('./article-styles'),\n import('./article-tables'),\n ])\n\n // ---------- NOT FOUND ----------\n if (!post) {\n if (notFound) nextNotFound()\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: articleCss }} />}\n <div className={cls(unstyled, styles, 'notFound', 'sk-article-not-found', className)}>\n <h1>Post Not Found</h1>\n <p>The article you&rsquo;re looking for doesn&rsquo;t exist or has been removed.</p>\n <a href={routes.index}>&larr; Back to articles</a>\n </div>\n </>\n )\n }\n\n // ---------- PREPARE DATA ----------\n const rawContent = post.content_html || post.content || ''\n const content = ensureHtml(rawContent)\n const siteUrlResolved = resolvePublicationSiteUrl(siteUrl)\n const contentWithExternalTargets = wrapArticleTables(addExternalLinkTargets(content, siteUrlResolved))\n const artwork = resolveArticleArtwork(post, 'article')\n const tableOfContents = showToc ? generateTableOfContents(content) : []\n const relatedPosts = showRelated\n ? await fetchRelatedArticles({ apiUrl, apiKey, site }, post.id, relatedCount, { revalidate: 300 })\n : []\n\n const faqRaw = (post.faq_items ?? (post as { faqItems?: unknown }).faqItems) as Array<{ question: string; answer: string }> | undefined\n const faqItemsProcessed = faqRaw?.map((item) => ({\n ...item,\n answer: addExternalLinkTargets(item.answer || '', siteUrlResolved),\n })) ?? faqRaw\n\n // Client islands, dynamically imported so tsup splits + 'use client'-stamps\n // their chunks (same pattern for both).\n const { ArticleViewTracker } = await import('./ArticleViewTracker')\n\n // ---------- CUSTOM RENDER ----------\n if (children) {\n return (\n <>\n <ArticleViewTracker slug={post.slug} site={site} />\n {children({ post, tableOfContents, relatedPosts })}\n </>\n )\n }\n\n const { ArticleFaqSection } = await import('./ArticleFaqSection')\n\n const date = post.published_at\n ? new Date(post.published_at).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' })\n : null\n\n const hasToc = showToc && tableOfContents.length > 0\n\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: articleCss }} />}\n <ArticleViewTracker slug={post.slug} site={site} />\n\n <article className={cls(unstyled, styles, 'article', 'sk-article', className)}>\n {/* ===== Header ===== */}\n <header className={cls(unstyled, styles, 'header', 'sk-article-header')}>\n <nav className={cls(unstyled, styles, 'breadcrumb', 'sk-article-breadcrumb')}>\n <a href={routes.index} className={styles.breadcrumbLink || undefined}>{publicationName}</a>\n {post.category && (\n <>\n <span className=\"sk-article-breadcrumb-sep\">/</span>\n <a\n href={routing?.categoryPath ? routes.category(articleCategorySlug(post.category)) : `${routes.index}?category=${encodeURIComponent(articleCategorySlug(post.category))}`}\n className={styles.breadcrumbLink || undefined}\n >\n {typeof post.category === 'string' ? post.category : (post.category as any)?.name || 'Uncategorized'}\n </a>\n </>\n )}\n </nav>\n\n <h1 className={cls(unstyled, styles, 'title', 'sk-article-title')}>{post.title}</h1>\n\n {post.subtitle && (\n <p className={cls(unstyled, styles, 'subtitle', 'sk-article-subtitle')}>{post.subtitle}</p>\n )}\n\n <div className={cls(unstyled, styles, 'meta', 'sk-article-meta')}>\n {post.author && (\n <span className={cls(unstyled, styles, 'metaItem', 'sk-article-meta-item')}>\n By {typeof post.author === 'string' ? post.author : post.author.name}\n </span>\n )}\n {post.author && date && <span className=\"sk-article-meta-dot\" />}\n {date && (\n <span className={cls(unstyled, styles, 'metaItem', 'sk-article-meta-item')}>{date}</span>\n )}\n {date && readingTimeMinutes(post) && <span className=\"sk-article-meta-dot\" />}\n {readingTimeMinutes(post) && (\n <span className={cls(unstyled, styles, 'metaItem', 'sk-article-meta-item')}>\n {readingTimeMinutes(post)} min read\n </span>\n )}\n </div>\n </header>\n\n {/* ===== Featured Image ===== */}\n {artwork.src && (\n <figure className={cls(unstyled, styles, 'featuredImageWrapper', 'sk-article-featured-wrap')}>\n <img\n src={artwork.src}\n alt={artwork.alt}\n data-sk-composed-card={artwork.composed || undefined}\n style={articleArtworkImageStyle(artwork)}\n className={cls(unstyled, styles, 'featuredImage', 'sk-article-featured-img')}\n />\n </figure>\n )}\n\n {/* ===== Content + TOC ===== */}\n <div className={cls(unstyled, styles, 'contentLayout', hasToc ? 'sk-article-layout sk-article-layout--has-toc' : 'sk-article-layout')}>\n <div\n className={cls(unstyled, styles, 'content', 'sk-article-content')}\n dangerouslySetInnerHTML={{ __html: contentWithExternalTargets }}\n />\n\n {hasToc && (\n <aside className={cls(unstyled, styles, 'tocSidebar', 'sk-article-toc')}>\n <h4 className={cls(unstyled, styles, 'tocTitle', 'sk-article-toc-title')}>On This Page</h4>\n <ul className={cls(unstyled, styles, 'tocList', 'sk-article-toc-list')}>\n {tableOfContents.map((item) => (\n <li\n key={item.id}\n className={cls(unstyled, styles, 'tocItem', item.level > 2 ? `sk-article-toc-indent-${item.level}` : '')}\n >\n <a href={`#${item.id}`} className={styles.tocLink || undefined}>{item.text}</a>\n </li>\n ))}\n </ul>\n </aside>\n )}\n </div>\n\n {/* ===== Tags ===== */}\n {post.tags && post.tags.length > 0 && (\n <div className={cls(unstyled, styles, 'tags', 'sk-article-tags')}>\n {post.tags.map((tag, index) => {\n const tagName = typeof tag === 'string' ? tag : tag?.name || ''\n return (\n <a key={`${tagName}-${index}`} href={`${routes.index}?tag=${encodeURIComponent(tagName)}`} className={cls(unstyled, styles, 'tag', 'sk-article-tag')}>\n #{tagName}\n </a>\n )\n })}\n </div>\n )}\n\n {/* ===== Service Callouts ===== */}\n <ServiceCallouts\n callouts={(post as any).service_callouts ?? (post as any).serviceCallouts ?? []}\n unstyled={unstyled}\n />\n\n {/* ===== FAQ ===== */}\n <ArticleFaqSection\n items={(faqItemsProcessed ?? []) as any[]}\n unstyled={unstyled}\n styles={unstyled ? {\n section: styles.faqSection,\n title: styles.faqTitle,\n item: styles.faqItem,\n question: styles.faqQuestion,\n answerInner: styles.faqAnswer,\n } : undefined}\n />\n\n {/* ===== Author ===== */}\n {showAuthor && post.author && typeof post.author === 'object' && (\n <AuthorSection author={normalizeAuthorForDisplay(post.author)} className={styles.authorCard} unstyled={unstyled} />\n )}\n\n {/* ===== Cluster Navigation ===== */}\n {(() => {\n const clusterNav = getClusterNav(post as any)\n if (!clusterNav) return null\n return (\n <ClusterNavigation\n navigation={clusterNav}\n basePath={basePath}\n routing={routing}\n unstyled={unstyled}\n />\n )\n })()}\n\n {/* ===== Related articles ===== */}\n {showRelated && relatedPosts.length > 0 && (\n <section className={cls(unstyled, styles, 'relatedSection', 'sk-article-related')}>\n <h2 className={cls(unstyled, styles, 'relatedTitle', 'sk-article-related-title')}>Related articles</h2>\n <div className={cls(unstyled, styles, 'relatedGrid', 'sk-article-related-grid')}>\n {relatedPosts.map((rp) => {\n const relatedArtwork = resolveArticleArtwork(rp)\n return (\n <a key={rp.id} href={routes.post(rp)} className={cls(unstyled, styles, 'relatedCard', 'sk-article-related-card')}>\n {relatedArtwork.src && <img src={relatedArtwork.src} alt={relatedArtwork.alt} data-sk-composed-card={relatedArtwork.composed || undefined} style={articleArtworkImageStyle(relatedArtwork)} />}\n <div className=\"sk-article-related-card-body\">\n <h3>{rp.title}</h3>\n {rp.excerpt && <p>{rp.excerpt.slice(0, 120)}...</p>}\n </div>\n </a>\n )\n })}\n </div>\n </section>\n )}\n </article>\n </>\n )\n}\n\n// ============================================================================\n// AUTHOR HELPERS\n// ============================================================================\n\nfunction normalizeAuthorForDisplay(author: Record<string, unknown> | ArticleAuthor): ArticleAuthor & { sameAs?: string[]; title?: string } {\n const a = author as Record<string, unknown>\n return {\n id: (a.id as string) ?? 'author',\n project_id: (a.project_id as string) ?? '',\n name: (a.name as string) ?? 'Author',\n slug: (a.slug as string) ?? 'author',\n bio: (a.bio as string) ?? undefined,\n avatar_url: (a.avatar_url as string) ?? (a.image as string) ?? (a.image_url as string) ?? undefined,\n website: (a.website as string) ?? (a.url as string) ?? undefined,\n social_links: a.social_links as ArticleAuthor['social_links'] | undefined,\n // Real API columns (blog_authors) — previously dropped here, so\n // AuthorSection could never render socials from a live author row.\n linkedin_url: (a.linkedin_url as string) ?? undefined,\n twitter_url: (a.twitter_url as string) ?? undefined,\n website_url: (a.website_url as string) ?? undefined,\n same_as: (a.same_as as string[]) ?? undefined,\n is_active: (a.is_active as boolean) ?? true,\n ...(normalizeSocialProfiles(a.socialProfiles).length\n ? { sameAs: normalizeSocialProfiles(a.socialProfiles) }\n : {}),\n ...(a.title ? { title: a.title as string } : {}),\n } as ArticleAuthor & { sameAs?: string[]; title?: string }\n}\n\n/**\n * socialProfiles arrives as either string[] (site config) or the\n * {linkedin, twitter} object sonor-api emits — accept both into sameAs.\n */\nfunction normalizeSocialProfiles(value: unknown): string[] {\n if (Array.isArray(value)) return value.filter((v): v is string => typeof v === 'string' && !!v)\n if (value && typeof value === 'object') {\n return Object.values(value as Record<string, unknown>).filter(\n (v): v is string => typeof v === 'string' && !!v\n )\n }\n return []\n}\n\nfunction AuthorSection({ author, className, unstyled = false }: { author: ArticleAuthor & { sameAs?: string[]; title?: string }; className?: string; unstyled?: boolean }) {\n const base = unstyled ? className : (className || 'sk-article-author')\n const socialLinks = getAuthorSocialLinks(author)\n return (\n <section className={base || undefined}>\n {author.avatar_url && <img src={author.avatar_url} alt={author.name} className={unstyled ? undefined : 'sk-article-author-avatar'} />}\n <div>\n <h3 className={unstyled ? undefined : 'sk-article-author-name'}>{author.name}</h3>\n {'title' in author && author.title && <p className={unstyled ? undefined : 'sk-article-author-title'}>{author.title}</p>}\n {author.bio && <p className={unstyled ? undefined : 'sk-article-author-bio'}>{author.bio}</p>}\n {socialLinks.length > 0 && (\n <div className={unstyled ? undefined : 'sk-article-author-links'}>\n {socialLinks.map((link) => <a key={link.label} href={link.href} target=\"_blank\" rel=\"noopener noreferrer\">{link.label}</a>)}\n </div>\n )}\n {'sameAs' in author && author.sameAs && author.sameAs.length > 0 && socialLinks.length === 0 && (\n <div className={unstyled ? undefined : 'sk-article-author-links'}>\n {author.sameAs.map((url, i) => <a key={i} href={url} target=\"_blank\" rel=\"noopener noreferrer\">Profile</a>)}\n </div>\n )}\n </div>\n </section>\n )\n}\n","/**\n * @sonordev/site-kit/articles - Article List Component\n *\n * Fetches and displays a list of articles with pagination, filtering, and sorting.\n *\n * Ships with world-class default styling via scoped `.sk-article-list-*` classes.\n * No configuration needed — just `<ArticleList basePath=\"/article\" />`.\n *\n * Override with `styles` prop (per-element class names) or `unstyled` for\n * complete control. The `children` render prop gives full data access.\n */\n\nimport React from 'react'\nimport type { ArticleListResult, Article, ArticleCategory } from './types'\nimport { readingTimeMinutes } from './reading-time'\nimport { articleArtworkImageStyle, resolveArticleArtwork } from './artwork'\nimport { createPublicationRoutes, type PublicationRoutingOptions } from './routes'\nimport { fetchArticleCategories } from './public-reads'\nimport { withSiteParam } from '../sites/site-param'\n\n// ============================================================================\n// STYLE TYPES\n// ============================================================================\n\nexport interface ArticleListStyles {\n container?: string\n categoryNav?: string\n categoryLink?: string\n categoryLinkActive?: string\n categoryLinkInactive?: string\n grid?: string\n card?: string\n cardImageWrapper?: string\n cardImage?: string\n cardBody?: string\n cardMeta?: string\n cardCategory?: string\n cardDate?: string\n cardTitle?: string\n cardTitleLink?: string\n cardExcerpt?: string\n cardFooter?: string\n cardAuthor?: string\n cardReadingTime?: string\n cardReadMore?: string\n pagination?: string\n paginationLink?: string\n paginationInfo?: string\n emptyState?: string\n}\n\n// ============================================================================\n// DATA FETCHING\n// ============================================================================\n\ninterface FetchArticleListParams {\n apiUrl: string\n apiKey: string\n category?: string\n tag?: string\n author?: string\n featured?: boolean\n search?: string\n /** Topic cluster slug — the server resolves it to cluster_id */\n cluster?: string\n page?: number\n perPage?: number\n orderBy?: 'published_at' | 'title' | 'view_count'\n order?: 'asc' | 'desc'\n /** Sub-site host override; resolves from NEXT_PUBLIC_SITE_URL when omitted */\n site?: string\n}\n\nasync function fetchArticleList(params: FetchArticleListParams): Promise<ArticleListResult> {\n const {\n apiUrl,\n apiKey,\n category,\n tag,\n author,\n featured,\n search,\n cluster,\n page = 1,\n perPage = 12,\n orderBy = 'published_at',\n order = 'desc',\n site,\n } = params\n\n const queryParams = new URLSearchParams()\n if (category) queryParams.set('category', category)\n if (tag) queryParams.set('tag', tag)\n if (author) queryParams.set('author', author)\n if (featured) queryParams.set('featured', 'true')\n if (search) queryParams.set('search', search)\n if (cluster) queryParams.set('cluster', cluster)\n queryParams.set('page', String(page))\n queryParams.set('per_page', String(perPage))\n queryParams.set('order_by', orderBy)\n queryParams.set('order', order)\n\n try {\n const response = await fetch(withSiteParam(`${apiUrl}/public/articles/posts?${queryParams}`, site), {\n headers: { 'x-api-key': apiKey },\n next: { revalidate: 60 },\n })\n\n if (!response.ok) {\n console.error('[Articles] Failed to fetch posts:', response.statusText)\n return emptyResult()\n }\n\n const data = await response.json()\n return {\n posts: data.posts || [],\n pagination: {\n page: data.pagination?.page || 1,\n perPage: data.pagination?.per_page || 12,\n total: data.pagination?.total || 0,\n totalPages: data.pagination?.total_pages || 0,\n hasNext: data.pagination?.has_next || false,\n hasPrev: data.pagination?.has_prev || false,\n },\n }\n } catch (error) {\n console.error('[Articles] Error fetching posts:', error)\n return emptyResult()\n }\n}\n\nfunction emptyResult(): ArticleListResult {\n return { posts: [], pagination: { page: 1, perPage: 12, total: 0, totalPages: 0, hasNext: false, hasPrev: false } }\n}\n\n// ============================================================================\n// CLASS HELPER\n// ============================================================================\n\nfunction cls(unstyled: boolean, styles: ArticleListStyles, key: keyof ArticleListStyles, defaultClass: string, extra?: string): string | undefined {\n if (unstyled) return styles[key] || undefined\n const base = styles[key] || defaultClass\n return extra ? `${base} ${extra}` : base\n}\n\n// ============================================================================\n// ARTICLE LIST COMPONENT\n// ============================================================================\n\nexport interface ArticleListServerProps {\n apiUrl?: string\n apiKey?: string\n category?: string\n tag?: string\n /** Author slug (preferred) or display name; slug filtering requires the current Sonor API */\n author?: string\n featured?: boolean\n search?: string\n /**\n * Topic cluster slug — pairs with getTopicCluster. Note: an unknown slug\n * yields an UNfiltered list (pre-existing API behavior).\n */\n cluster?: string\n page?: number\n perPage?: number\n orderBy?: 'published_at' | 'title' | 'view_count'\n order?: 'asc' | 'desc'\n /**\n * Sub-site host for multi-site projects (e.g. `bd-charlotte.com`): the list\n * shows that host's posts plus project-wide ones. Omit to resolve from\n * NEXT_PUBLIC_SITE_URL.\n */\n site?: string\n showCategoryFilter?: boolean\n showPagination?: boolean\n className?: string\n basePath?: string\n routing?: PublicationRoutingOptions\n styles?: ArticleListStyles\n unstyled?: boolean\n renderPost?: (post: Article) => React.ReactNode\n children?: (props: {\n posts: Article[]\n pagination: ArticleListResult['pagination']\n categories: ArticleCategory[]\n }) => React.ReactNode\n}\n\nexport async function ArticleList({\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n apiKey = process.env.SONOR_API_KEY || '',\n category,\n tag,\n author,\n featured,\n search,\n cluster,\n page = 1,\n perPage = 12,\n orderBy = 'published_at',\n order = 'desc',\n site,\n showCategoryFilter = false,\n showPagination = true,\n className,\n basePath,\n routing,\n styles = {},\n unstyled = false,\n renderPost,\n children,\n}: ArticleListServerProps) {\n const routes = createPublicationRoutes({ basePath, ...routing })\n if (!apiKey) {\n console.warn('[Articles] No API key configured')\n return null\n }\n\n // These styles are emitted by the server, so client widgets don't need them eagerly.\n const [articleData, categories, { articleListCss }] = await Promise.all([\n fetchArticleList({ apiUrl, apiKey, category, tag, author, featured, search, cluster, page, perPage, orderBy, order, site }),\n showCategoryFilter ? fetchArticleCategories({ apiUrl, apiKey, site }) : Promise.resolve([]),\n unstyled || children ? Promise.resolve({ articleListCss: '' }) : import('./article-styles'),\n ])\n\n if (children) {\n return children({ posts: articleData.posts, pagination: articleData.pagination, categories })\n }\n\n const { posts, pagination } = articleData\n\n // ---------- EMPTY STATE ----------\n if (posts.length === 0) {\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: articleListCss }} />}\n <div className={cls(unstyled, styles, 'emptyState', 'sk-article-list sk-article-list-empty', className)}>\n <p>No posts found.</p>\n </div>\n </>\n )\n }\n\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: articleListCss }} />}\n\n <div className={cls(unstyled, styles, 'container', 'sk-article-list', className)}>\n {/* Category Filter */}\n {showCategoryFilter && categories.length > 0 && (\n <nav className={cls(unstyled, styles, 'categoryNav', 'sk-article-list-cats')}>\n <a\n href={routes.index}\n className={cls(unstyled, styles, 'categoryLink', !category ? 'sk-article-list-cat sk-article-list-cat--active' : 'sk-article-list-cat')}\n >\n All\n </a>\n {categories.map((cat) => (\n <a\n key={cat.slug}\n href={routing?.categoryPath ? routes.category(cat.slug) : `${routes.index}?category=${encodeURIComponent(cat.slug)}`}\n className={cls(unstyled, styles, 'categoryLink', category === cat.slug ? 'sk-article-list-cat sk-article-list-cat--active' : 'sk-article-list-cat')}\n >\n {cat.name} ({cat.post_count})\n </a>\n ))}\n </nav>\n )}\n\n {/* Article grid */}\n <div className={cls(unstyled, styles, 'grid', 'sk-article-list-grid')}>\n {posts.map((post) =>\n renderPost ? (\n <React.Fragment key={post.id}>{renderPost(post)}</React.Fragment>\n ) : (\n <ArticleCard key={post.id} post={post} href={routes.post(post)} styles={styles} unstyled={unstyled} />\n )\n )}\n </div>\n\n {/* Pagination */}\n {showPagination && pagination.totalPages > 1 && (\n <nav className={cls(unstyled, styles, 'pagination', 'sk-article-list-pagination')}>\n {pagination.hasPrev && (\n <a href={buildPaginationUrl(routes.index, page - 1, category)} className={cls(unstyled, styles, 'paginationLink', 'sk-article-list-page-link')}>\n &larr; Previous\n </a>\n )}\n <span className={cls(unstyled, styles, 'paginationInfo', 'sk-article-list-page-info')}>\n Page {pagination.page} of {pagination.totalPages}\n </span>\n {pagination.hasNext && (\n <a href={buildPaginationUrl(routes.index, page + 1, category)} className={cls(unstyled, styles, 'paginationLink', 'sk-article-list-page-link')}>\n Next &rarr;\n </a>\n )}\n </nav>\n )}\n </div>\n </>\n )\n}\n\n// ============================================================================\n// ARTICLE CARD (Default rendering)\n// ============================================================================\n\ninterface ArticleCardProps {\n post: Article\n href: string\n styles?: ArticleListStyles\n unstyled?: boolean\n}\n\nfunction ArticleCard({ post, href, styles = {}, unstyled = false }: ArticleCardProps) {\n const artwork = resolveArticleArtwork(post)\n const date = post.published_at\n ? new Date(post.published_at).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' })\n : null\n\n return (\n <article className={cls(unstyled, styles, 'card', 'sk-article-list-card')}>\n {artwork.src && (\n <a href={href} className={cls(unstyled, styles, 'cardImageWrapper', 'sk-article-list-card-img-link')}>\n <img\n src={artwork.src}\n alt={artwork.alt}\n data-sk-composed-card={artwork.composed || undefined}\n style={articleArtworkImageStyle(artwork)}\n className={cls(unstyled, styles, 'cardImage', 'sk-article-list-card-img')}\n />\n </a>\n )}\n\n <div className={cls(unstyled, styles, 'cardBody', 'sk-article-list-card-body')}>\n {/* Meta */}\n <div className={cls(unstyled, styles, 'cardMeta', 'sk-article-list-card-meta')}>\n {post.category && (\n <span className={cls(unstyled, styles, 'cardCategory', 'sk-article-list-card-category')}>\n {typeof post.category === 'string' ? post.category : post.category?.name || 'Uncategorized'}\n </span>\n )}\n {(post as any).article_type && (\n <span className=\"sk-article-list-card-article-type\" style={{\n display: 'inline-flex', alignItems: 'center',\n padding: '0.0625rem 0.375rem', borderRadius: '9999px',\n fontSize: '0.6875rem', fontWeight: 500,\n background: (post as any).article_type === 'pillar' ? 'rgba(99,102,241,0.1)' : 'rgba(99,102,241,0.05)',\n color: '#6366f1', border: '1px solid rgba(99,102,241,0.15)',\n textTransform: 'capitalize',\n }}>\n {(post as any).article_type}\n </span>\n )}\n {date && <span className={cls(unstyled, styles, 'cardDate', 'sk-article-list-card-date')}>{date}</span>}\n </div>\n\n {/* Title */}\n <h3 className={cls(unstyled, styles, 'cardTitle', 'sk-article-list-card-title')}>\n <a href={href} className={styles.cardTitleLink || undefined}>\n {post.title}\n </a>\n </h3>\n\n {/* Excerpt */}\n {post.excerpt && (\n <p className={cls(unstyled, styles, 'cardExcerpt', 'sk-article-list-card-excerpt')}>\n {post.excerpt}\n </p>\n )}\n\n {/* Footer */}\n <div className={cls(unstyled, styles, 'cardFooter', 'sk-article-list-card-footer')}>\n {post.author && (\n <span className={cls(unstyled, styles, 'cardAuthor', '')}>\n By {typeof post.author === 'string' ? post.author : post.author.name}\n </span>\n )}\n {readingTimeMinutes(post) && (\n <span className={cls(unstyled, styles, 'cardReadingTime', '')}>\n {readingTimeMinutes(post)} min read\n </span>\n )}\n </div>\n </div>\n </article>\n )\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\nfunction buildPaginationUrl(basePath: string, page: number, category?: string): string {\n const params = new URLSearchParams()\n params.set('page', String(page))\n if (category) params.set('category', category)\n return `${basePath}?${params}`\n}\n","/**\n * @sonordev/site-kit/articles - Cluster Landing Page Component\n *\n * Pre-built page component for `/article/cluster/[slug]` routes.\n * Renders a topic cluster overview with:\n * - Cluster hero (name, topic, description)\n * - Pillar article (featured, large card)\n * - Support articles (grid, categorized by article_type or funnel_stage)\n *\n * Server component — fetches cluster data from Portal API.\n * Ships with `.sk-cluster-landing-*` scoped styles.\n */\n\nimport React from 'react'\nimport { createPublicationRoutes, type PublicationRoutingOptions } from './routes'\nimport { getTopicCluster } from './server-core'\nimport type { TopicCluster, Article } from './types'\nimport { readingTimeMinutes } from './reading-time'\n\n// ============================================================================\n// CSS\n// ============================================================================\n\nconst clusterLandingCss = `\n.sk-cluster-landing { max-width: 72rem; margin: 0 auto; padding: 2rem 1rem; }\n\n.sk-cluster-hero { margin-bottom: 3rem; text-align: center; }\n.sk-cluster-hero-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.75rem; font-weight: 600; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n}\n.sk-cluster-hero-title {\n font-size: 2.25rem; font-weight: 800; color: #111827;\n line-height: 1.2; margin: 0 0 0.75rem 0;\n}\n.sk-cluster-hero-desc {\n font-size: 1.125rem; color: #6b7280; max-width: 40rem;\n margin: 0 auto; line-height: 1.6;\n}\n.sk-cluster-hero-meta {\n display: flex; justify-content: center; gap: 1.5rem;\n margin-top: 1rem; font-size: 0.875rem; color: #9ca3af;\n}\n\n.sk-cluster-pillar-card {\n display: block; text-decoration: none; color: inherit;\n padding: 2rem; border-radius: 0.75rem;\n background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(99,102,241,0.01));\n border: 2px solid rgba(99,102,241,0.2);\n margin-bottom: 3rem; transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-pillar-card:hover {\n border-color: rgba(99,102,241,0.4);\n box-shadow: 0 4px 24px rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n padding: 0.25rem 0.5rem; border-radius: 9999px;\n background: rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-title {\n font-size: 1.5rem; font-weight: 700; color: #111827;\n margin: 0 0 0.5rem 0; line-height: 1.3;\n}\n.sk-cluster-pillar-excerpt {\n font-size: 1rem; color: #6b7280; line-height: 1.6;\n margin: 0 0 1rem 0;\n}\n.sk-cluster-pillar-meta {\n display: flex; gap: 1rem; font-size: 0.8125rem; color: #9ca3af;\n}\n\n.sk-cluster-supports-section { margin-bottom: 2rem; }\n.sk-cluster-supports-title {\n font-size: 1.25rem; font-weight: 700; color: #111827;\n margin: 0 0 1.25rem 0;\n}\n.sk-cluster-supports-grid {\n display: grid; gap: 1.25rem;\n grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));\n}\n.sk-cluster-support-card {\n display: block; text-decoration: none; color: inherit;\n padding: 1.25rem; border-radius: 0.5rem;\n border: 1px solid #e5e7eb; background: #fff;\n transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-support-card:hover {\n border-color: #c7d2fe;\n box-shadow: 0 2px 12px rgba(0,0,0,0.04);\n}\n.sk-cluster-support-card-header {\n display: flex; align-items: center; gap: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.sk-cluster-support-type {\n display: inline-flex; align-items: center;\n padding: 0.125rem 0.375rem; border-radius: 9999px;\n font-size: 0.6875rem; font-weight: 500;\n background: rgba(99,102,241,0.06); color: #6366f1;\n border: 1px solid rgba(99,102,241,0.12);\n text-transform: capitalize;\n}\n.sk-cluster-support-intent {\n font-size: 0.6875rem; color: #9ca3af;\n text-transform: capitalize;\n}\n.sk-cluster-support-title {\n font-size: 1rem; font-weight: 600; color: #111827;\n margin: 0 0 0.375rem 0; line-height: 1.4;\n}\n.sk-cluster-support-excerpt {\n font-size: 0.875rem; color: #6b7280; line-height: 1.5;\n margin: 0; display: -webkit-box; -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; overflow: hidden;\n}\n.sk-cluster-support-meta {\n display: flex; gap: 0.75rem; margin-top: 0.75rem;\n font-size: 0.75rem; color: #9ca3af;\n}\n`\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport interface ClusterLandingPageProps {\n /** Cluster slug to fetch */\n slug: string\n /** Sub-site host for multi-site projects. Omit to resolve from NEXT_PUBLIC_SITE_URL. */\n site?: string\n /** Base path for article URLs (default: /article) */\n basePath?: string\n routing?: PublicationRoutingOptions\n /**\n * Include each article's own category segment in its URL:\n * {basePath}/{category}/{slug}. Enable on sites whose article routes are\n * category-segmented (e.g. upforge.io /insights/{category}/{slug}) —\n * without it, links point at {basePath}/{slug} and 404 on such sites.\n */\n categoryInPath?: boolean\n /** Disable default styles */\n unstyled?: boolean\n /** Custom class name */\n className?: string\n /** Render prop for full data access */\n children?: (props: { cluster: TopicCluster }) => React.ReactNode\n}\n\nexport async function ClusterLandingPage({\n slug,\n site,\n basePath,\n routing,\n categoryInPath = false,\n unstyled = false,\n className,\n children,\n}: ClusterLandingPageProps) {\n const cluster = await getTopicCluster(slug, { site })\n\n if (!cluster) {\n return (\n <div style={{ padding: '4rem 1rem', textAlign: 'center', color: '#6b7280' }}>\n <p>Topic cluster not found.</p>\n </div>\n )\n }\n\n // Custom render\n if (children) {\n return children({ cluster })\n }\n\n const pillar = cluster.pillar\n const supports = cluster.supports || []\n\n const articleUrl = createPublicationRoutes({ basePath, includeCategoryInPath: categoryInPath, ...routing }).post\n\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: clusterLandingCss }} />}\n\n <div className={`${unstyled ? '' : 'sk-cluster-landing'} ${className || ''}`}>\n {/* Hero */}\n <header className={unstyled ? '' : 'sk-cluster-hero'}>\n <p className={unstyled ? '' : 'sk-cluster-hero-label'}>\n Topic Cluster\n </p>\n <h1 className={unstyled ? '' : 'sk-cluster-hero-title'}>\n {cluster.cluster_name}\n </h1>\n <p className={unstyled ? '' : 'sk-cluster-hero-desc'}>\n {cluster.core_topic}\n {cluster.geo_target ? ` in ${cluster.geo_target}` : ''}\n </p>\n <div className={unstyled ? '' : 'sk-cluster-hero-meta'}>\n <span>{cluster.article_count} articles</span>\n {cluster.geo_target && <span>{cluster.geo_target}</span>}\n </div>\n </header>\n\n {/* Pillar article (hero card) */}\n {pillar && (\n <a href={articleUrl(pillar)} className={unstyled ? '' : 'sk-cluster-pillar-card'}>\n <span className={unstyled ? '' : 'sk-cluster-pillar-label'}>\n Pillar Guide\n </span>\n <h2 className={unstyled ? '' : 'sk-cluster-pillar-title'}>\n {pillar.title}\n </h2>\n {pillar.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-pillar-excerpt'}>\n {pillar.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-pillar-meta'}>\n {readingTimeMinutes(pillar) && (\n <span>{readingTimeMinutes(pillar)} min read</span>\n )}\n {pillar.word_count && (\n <span>{pillar.word_count.toLocaleString()} words</span>\n )}\n </div>\n </a>\n )}\n\n {/* Support articles */}\n {supports.length > 0 && (\n <section className={unstyled ? '' : 'sk-cluster-supports-section'}>\n <h2 className={unstyled ? '' : 'sk-cluster-supports-title'}>\n Deep Dives\n </h2>\n <div className={unstyled ? '' : 'sk-cluster-supports-grid'}>\n {supports.map((post) => (\n <a\n key={post.id || post.slug}\n href={articleUrl(post)}\n className={unstyled ? '' : 'sk-cluster-support-card'}\n >\n <div className={unstyled ? '' : 'sk-cluster-support-card-header'}>\n {post.article_type && (\n <span className={unstyled ? '' : 'sk-cluster-support-type'}>\n {post.article_type}\n </span>\n )}\n {post.search_intent && (\n <span className={unstyled ? '' : 'sk-cluster-support-intent'}>\n {post.search_intent}\n </span>\n )}\n </div>\n <h3 className={unstyled ? '' : 'sk-cluster-support-title'}>\n {post.title}\n </h3>\n {post.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-support-excerpt'}>\n {post.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-support-meta'}>\n {readingTimeMinutes(post) && (\n <span>{readingTimeMinutes(post)} min read</span>\n )}\n {post.relationship_to_pillar && (\n <span>{post.relationship_to_pillar}</span>\n )}\n </div>\n </a>\n ))}\n </div>\n </section>\n )}\n </div>\n </>\n )\n}\n","/**\n * @sonordev/site-kit/articles - Article Sidebar Component\n * \n * A reusable sidebar for article pages with categories, recent posts,\n * tags, newsletter signup, and custom widgets.\n */\n\nimport React from 'react'\nimport type { Article, ArticleCategory, ArticleTag } from './types'\nimport { widgetStyle, widgetTitleStyle } from './widget-styles'\nimport { articleArtworkImageStyle, resolveArticleArtwork } from './artwork'\nimport { createPublicationRoutes, type PublicationRoutingOptions } from './routes'\nimport { fetchArticleCategories } from './public-reads'\nimport { withSiteParam } from '../sites/site-param'\n\n// ============================================================================\n// DATA FETCHING\n// ============================================================================\n\nasync function fetchRecentPosts(\n apiUrl: string,\n apiKey: string,\n limit: number = 5,\n site?: string\n): Promise<Article[]> {\n try {\n const response = await fetch(withSiteParam(`${apiUrl}/public/articles/recent?limit=${limit}`, site), {\n headers: { 'x-api-key': apiKey },\n next: { revalidate: 300 },\n })\n\n if (!response.ok) return []\n\n const data = await response.json()\n return data.posts || []\n } catch (error) {\n console.error('[Articles] Error fetching recent posts:', error)\n return []\n }\n}\n\nasync function fetchTags(apiUrl: string, apiKey: string, site?: string): Promise<ArticleTag[]> {\n try {\n const response = await fetch(withSiteParam(`${apiUrl}/public/articles/tags`, site), {\n headers: { 'x-api-key': apiKey },\n next: { revalidate: 300 },\n })\n\n if (!response.ok) return []\n\n const data = await response.json()\n return data.tags || []\n } catch (error) {\n console.error('[Articles] Error fetching tags:', error)\n return []\n }\n}\n\n// ============================================================================\n// PUBLICATION SIDEBAR COMPONENT\n// ============================================================================\n\nexport interface PublicationSidebarProps {\n /** Portal API URL */\n apiUrl?: string\n /** Project API key */\n apiKey?: string\n /** Sub-site host for multi-site projects. Omit to resolve from NEXT_PUBLIC_SITE_URL. */\n site?: string\n /** Show categories widget */\n showCategories?: boolean\n /** Show recent posts widget */\n showRecentPosts?: boolean\n /** Number of recent posts to show */\n recentPostsCount?: number\n /** Show tags widget */\n showTags?: boolean\n /** Show search widget */\n showSearch?: boolean\n /** Base URL for article links */\n basePath?: string\n routing?: PublicationRoutingOptions\n /** Custom class name */\n className?: string\n /** Current category filter (for highlighting) */\n currentCategory?: string\n /** Additional widgets to render */\n children?: React.ReactNode\n}\n\nexport async function PublicationSidebar({\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n apiKey = process.env.SONOR_API_KEY || '',\n site,\n showCategories = true,\n showRecentPosts = true,\n recentPostsCount = 5,\n showTags = true,\n showSearch = true,\n basePath,\n routing,\n className,\n currentCategory,\n children,\n}: PublicationSidebarProps) {\n const routes = createPublicationRoutes({ basePath, ...routing })\n if (!apiKey) {\n console.warn('[Articles] No API key configured for sidebar')\n return null\n }\n\n // Fetch data in parallel\n const [categories, recentPosts, tags] = await Promise.all([\n showCategories ? fetchArticleCategories({ apiUrl, apiKey, site }) : Promise.resolve([]),\n showRecentPosts ? fetchRecentPosts(apiUrl, apiKey, recentPostsCount, site) : Promise.resolve([]),\n showTags ? fetchTags(apiUrl, apiKey, site) : Promise.resolve([]),\n ])\n\n return (\n <aside className={className} style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n {/* Search Widget */}\n {showSearch && <SearchWidget basePath={routes.index} />}\n\n {/* Categories Widget */}\n {showCategories && categories.length > 0 && (\n <CategoriesWidget\n categories={categories}\n basePath={routes.index}\n categoryPath={routing?.categoryPath ? routes.category : undefined}\n currentCategory={currentCategory}\n />\n )}\n\n {/* Recent Posts Widget */}\n {showRecentPosts && recentPosts.length > 0 && (\n <RecentPostsWidget posts={recentPosts} routes={routes} />\n )}\n\n {/* Tags Widget */}\n {showTags && tags.length > 0 && (\n <TagsWidget tags={tags} basePath={routes.index} />\n )}\n\n {/* Custom Widgets */}\n {children}\n </aside>\n )\n}\n\n// ============================================================================\n// WIDGET COMPONENTS\n// ============================================================================\n\nfunction SearchWidget({ basePath }: { basePath: string }) {\n return (\n <div style={widgetStyle}>\n <h4 style={widgetTitleStyle}>Search</h4>\n <form action={basePath} method=\"get\">\n <input\n type=\"search\"\n name=\"search\"\n placeholder=\"Search posts...\"\n style={{\n width: '100%',\n padding: '10px 12px',\n border: '1px solid var(--sk-border)',\n borderRadius: 8,\n fontSize: 14,\n }}\n />\n </form>\n </div>\n )\n}\n\nfunction CategoriesWidget({\n categories,\n basePath,\n categoryPath,\n currentCategory,\n}: {\n categories: ArticleCategory[]\n basePath: string\n categoryPath?: (slug: string) => string\n currentCategory?: string\n}) {\n return (\n <div style={widgetStyle}>\n <h4 style={widgetTitleStyle}>Categories</h4>\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n <li style={{ marginBottom: 8 }}>\n <a\n href={basePath}\n style={{\n ...categoryLinkStyle,\n fontWeight: !currentCategory ? 600 : 400,\n color: !currentCategory ? 'var(--sk-primary)' : 'var(--sk-text-primary)',\n }}\n >\n All Posts\n </a>\n </li>\n {categories.map((cat) => (\n <li key={cat.slug} style={{ marginBottom: 8 }}>\n <a\n href={categoryPath ? categoryPath(cat.slug) : `${basePath}?category=${encodeURIComponent(cat.slug)}`}\n style={{\n ...categoryLinkStyle,\n fontWeight: currentCategory === cat.slug ? 600 : 400,\n color: currentCategory === cat.slug ? 'var(--sk-primary)' : 'var(--sk-text-primary)',\n }}\n >\n {cat.name}\n <span style={{ color: 'var(--sk-text-tertiary)', marginLeft: 8 }}>({cat.post_count})</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nfunction RecentPostsWidget({\n posts,\n routes,\n}: {\n posts: Article[]\n routes: ReturnType<typeof createPublicationRoutes>\n}) {\n return (\n <div style={widgetStyle}>\n <h4 style={widgetTitleStyle}>Recent Posts</h4>\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n {posts.map((post) => {\n const artwork = resolveArticleArtwork(post)\n const date = post.published_at\n ? new Date(post.published_at).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n })\n : null\n\n return (\n <li\n key={post.id}\n style={{\n marginBottom: 16,\n paddingBottom: 16,\n borderBottom: '1px solid var(--sk-border)',\n }}\n >\n <div style={{ display: 'flex', gap: 12 }}>\n {artwork.src && (\n <a href={routes.post(post)}>\n <img\n src={artwork.src}\n alt=\"\"\n data-sk-composed-card={artwork.composed || undefined}\n style={{\n width: 64,\n height: 48,\n objectFit: 'cover',\n borderRadius: 6,\n flexShrink: 0,\n ...articleArtworkImageStyle(artwork),\n }}\n />\n </a>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <a\n href={routes.post(post)}\n style={{\n fontSize: 14,\n fontWeight: 500,\n color: 'var(--sk-text-primary)',\n textDecoration: 'none',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }}\n >\n {post.title}\n </a>\n {date && (\n <span style={{ fontSize: 12, color: 'var(--sk-text-tertiary)', display: 'block', marginTop: 4 }}>\n {date}\n </span>\n )}\n </div>\n </div>\n </li>\n )\n })}\n </ul>\n </div>\n )\n}\n\nfunction TagsWidget({\n tags,\n basePath,\n}: {\n tags: ArticleTag[]\n basePath: string\n}) {\n return (\n <div style={widgetStyle}>\n <h4 style={widgetTitleStyle}>Popular Tags</h4>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: 8 }}>\n {tags.slice(0, 15).map((tag) => (\n <a\n key={tag.slug}\n href={`${basePath}?tag=${encodeURIComponent(tag.name)}`}\n style={{\n padding: '4px 10px',\n backgroundColor: 'var(--sk-bg-elevated)',\n borderRadius: 9999,\n fontSize: 12,\n color: 'var(--sk-text-primary)',\n textDecoration: 'none',\n transition: 'background-color 0.2s',\n }}\n >\n {tag.name}\n </a>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// STYLES\n// ============================================================================\n\n\nconst categoryLinkStyle: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n fontSize: 14,\n textDecoration: 'none',\n}\n","/**\n * @sonordev/site-kit/articles - Article Layout Component\n * \n * A complete article layout with sidebar, responsive design, and optional hero.\n * Use this to wrap your article pages for consistent styling.\n */\n\nimport React from 'react'\nimport { PublicationSidebar, PublicationSidebarProps } from './PublicationSidebar'\nimport type { PublicationRoutingOptions } from './routes'\n\n// ============================================================================\n// PUBLICATION LAYOUT COMPONENT\n// ============================================================================\n\nexport interface PublicationLayoutProps {\n /** Portal API URL */\n apiUrl?: string\n /** Project API key */\n apiKey?: string\n /** Sub-site host for multi-site projects, passed to the sidebar. Omit to resolve from NEXT_PUBLIC_SITE_URL. */\n site?: string\n /** Layout style: 'sidebar-right', 'sidebar-left', 'full-width' */\n layout?: 'sidebar-right' | 'sidebar-left' | 'full-width'\n /** Show sidebar */\n showSidebar?: boolean\n /** Sidebar props */\n sidebarProps?: Partial<PublicationSidebarProps>\n /** Hero section config */\n hero?: {\n title?: string\n subtitle?: string\n backgroundImage?: string\n backgroundColor?: string\n }\n /** Max width for content */\n maxWidth?: number\n /** Base URL for article links */\n basePath?: string\n routing?: PublicationRoutingOptions\n /** Custom class name */\n className?: string\n /** Current category (for sidebar highlighting) */\n currentCategory?: string\n /** Main content */\n children: React.ReactNode\n}\n\nexport async function PublicationLayout({\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n apiKey = process.env.SONOR_API_KEY || '',\n site,\n layout = 'sidebar-right',\n showSidebar = true,\n sidebarProps = {},\n hero,\n maxWidth = 1280,\n basePath,\n routing,\n className,\n currentCategory,\n children,\n}: PublicationLayoutProps) {\n const hasSidebar = showSidebar && layout !== 'full-width'\n\n return (\n <div className={className}>\n {/* Hero Section */}\n {hero && (\n <section\n style={{\n padding: '60px 20px',\n backgroundColor: hero.backgroundColor || 'var(--sk-primary)',\n backgroundImage: hero.backgroundImage ? `url(${hero.backgroundImage})` : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n color: 'var(--sk-bg)',\n textAlign: 'center',\n }}\n >\n <div style={{ maxWidth, margin: '0 auto' }}>\n {hero.title && (\n <h1\n style={{\n fontSize: 'clamp(32px, 5vw, 48px)',\n fontWeight: 700,\n marginBottom: 16,\n }}\n >\n {hero.title}\n </h1>\n )}\n {hero.subtitle && (\n <p\n style={{\n fontSize: 'clamp(16px, 2vw, 20px)',\n opacity: 0.9,\n maxWidth: 600,\n margin: '0 auto',\n }}\n >\n {hero.subtitle}\n </p>\n )}\n </div>\n </section>\n )}\n\n {/* Main Content Area */}\n <div\n style={{\n maxWidth,\n margin: '0 auto',\n padding: '40px 20px',\n }}\n >\n <div\n style={{\n display: hasSidebar ? 'grid' : 'block',\n gridTemplateColumns: hasSidebar\n ? layout === 'sidebar-left'\n ? '300px 1fr'\n : '1fr 300px'\n : undefined,\n gap: 48,\n }}\n >\n {/* Sidebar (Left Position) */}\n {hasSidebar && layout === 'sidebar-left' && (\n <PublicationSidebar\n apiUrl={apiUrl}\n apiKey={apiKey}\n site={site}\n basePath={basePath}\n routing={routing}\n currentCategory={currentCategory}\n {...sidebarProps}\n />\n )}\n\n {/* Main Content */}\n <main style={{ minWidth: 0 }}>{children}</main>\n\n {/* Sidebar (Right Position) */}\n {hasSidebar && layout === 'sidebar-right' && (\n <PublicationSidebar\n apiUrl={apiUrl}\n apiKey={apiKey}\n site={site}\n basePath={basePath}\n routing={routing}\n currentCategory={currentCategory}\n {...sidebarProps}\n />\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// PUBLICATION PAGE WRAPPER\n// ============================================================================\n\n/**\n * Convenience wrapper for a complete publication index page\n */\nexport interface PublicationPageProps extends Omit<PublicationLayoutProps, 'children'> {\n /** List component to render */\n listComponent: React.ReactNode\n}\n\nexport async function PublicationPage({ listComponent, ...layoutProps }: PublicationPageProps) {\n return <PublicationLayout {...layoutProps}>{listComponent}</PublicationLayout>\n}\n\n/**\n * Convenience wrapper for a single article page\n */\nexport interface ArticlePageProps extends Omit<PublicationLayoutProps, 'children'> {\n /** Post component to render */\n postComponent: React.ReactNode\n}\n\nexport async function ArticlePage({ postComponent, ...layoutProps }: ArticlePageProps) {\n return (\n <PublicationLayout {...layoutProps} showSidebar={false} layout=\"full-width\">\n <div style={{ maxWidth: 800, margin: '0 auto' }}>{postComponent}</div>\n </PublicationLayout>\n )\n}\n\n// ============================================================================\n// CATEGORY PAGE WRAPPER\n// ============================================================================\n\nexport interface CategoryPageProps extends PublicationLayoutProps {\n /** Category slug being viewed */\n category: string\n /** Category display name */\n categoryName?: string\n /** List component */\n listComponent: React.ReactNode\n}\n\nexport async function CategoryPage({\n category,\n categoryName,\n listComponent,\n hero,\n ...layoutProps\n}: CategoryPageProps) {\n const categoryHero = hero || {\n title: categoryName || category,\n subtitle: `Browse all posts in ${categoryName || category}`,\n backgroundColor: 'var(--sk-primary)',\n }\n\n return (\n <PublicationLayout {...layoutProps} hero={categoryHero} currentCategory={category}>\n {listComponent}\n </PublicationLayout>\n )\n}\n","/**\n * @sonordev/site-kit/articles - Related articles component\n * \n * Fetches and displays related articles via Portal API\n */\n\nimport React from 'react'\nimport type { RelatedPostsProps, Article } from './types'\nimport { articleArtworkImageStyle, resolveArticleArtwork } from './artwork'\nimport { createPublicationRoutes, type PublicationRoutingOptions } from './routes'\nimport { fetchRelatedArticles } from './public-reads'\n\n// The related read lives in ./public-reads (shared with Article and\n// getRelatedInsights). This copy is where two bugs hid while the others were\n// fixed: it called `/api/public/articles/related` (the publication controller has no\n// `api/` segment, so it 404'd and rendered as \"no related posts\"), then sent\n// camelCase `currentPostId` (the controller reads `current_post_id`, so the\n// lookup matched nothing behind a clean 200).\n\ninterface RelatedPostsServerProps {\n apiUrl?: string\n apiKey?: string\n currentPostId: string\n limit?: number\n /** Sub-site host for multi-site projects. Omit to resolve from NEXT_PUBLIC_SITE_URL. */\n site?: string\n className?: string\n basePath?: string\n routing?: PublicationRoutingOptions\n renderItem?: (post: Article) => React.ReactNode\n}\n\nexport async function RelatedPosts({\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n apiKey = process.env.SONOR_API_KEY || '',\n currentPostId,\n limit = 3,\n site,\n className,\n basePath,\n routing,\n renderItem,\n}: RelatedPostsServerProps) {\n const routes = createPublicationRoutes({ basePath, ...routing })\n if (!apiKey) {\n console.warn('[Articles] No API key configured for RelatedPosts')\n return null\n }\n \n const posts = await fetchRelatedArticles({ apiUrl, apiKey, site }, currentPostId, limit)\n\n if (posts.length === 0) return null\n\n return (\n <section className={className}>\n <h3 style={{ marginBottom: 16 }}>Related articles</h3>\n <div style={{ display: 'grid', gap: 16 }}>\n {posts.map((post) => {\n const artwork = resolveArticleArtwork(post)\n return renderItem ? (\n renderItem(post)\n ) : (\n <article key={post.id} style={{ borderBottom: '1px solid var(--sk-border)', paddingBottom: 16 }}>\n {artwork.src && (\n <img\n src={artwork.src}\n alt={artwork.alt}\n data-sk-composed-card={artwork.composed || undefined}\n style={{\n width: '100%',\n height: 120,\n objectFit: 'cover',\n borderRadius: 8,\n marginBottom: 8,\n ...articleArtworkImageStyle(artwork),\n }}\n />\n )}\n <a href={routes.post(post)} style={{ textDecoration: 'none' }}>\n <h4 style={{ margin: 0, color: 'inherit' }}>{post.title}</h4>\n </a>\n {post.excerpt && (\n <p style={{ margin: '4px 0 0', fontSize: 14, color: 'var(--sk-text-secondary)' }}>\n {post.excerpt}\n </p>\n )}\n </article>\n )\n })}\n </div>\n </section>\n )\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-core.d.ts","sourceRoot":"","sources":["../../src/articles/server-core.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"server.js"}
@@ -1,11 +0,0 @@
1
- export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, SEO_LIMITS, buildNewsSitemapXml, cdata, generateAllArticleSchemas, generateArticleCategoryMetadata, generateArticleListSchema, generateArticleMetadata, generateArticleSchema, generateArticleSitemap, generateArticleStaticParams, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateNewsSitemap, generatePublicationMetadata, generateRssFeed, getAllArticleSlugs, getAllArticles, getAllAuthorSlugs, getArticle, getArticleCategories, getAuthorBySlug, getAuthorPosts, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, recentNewsPosts, requireArticle, sanitizeExcerpt, validateArticleSeo, validateMetaDescription, validateSeoTitle } from '../chunk-QAQTDHHT.mjs';
2
- export { articleTableCss, wrapArticleTables } from '../chunk-5F2FIM5A.mjs';
3
- export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, resolveArticleArtwork, withArticleAuthorIdentity } from '../chunk-GFSQMK35.mjs';
4
- export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-6C47333H.mjs';
5
- import '../chunk-AS2HUIDW.mjs';
6
- import '../chunk-6XNEGG5B.mjs';
7
- import '../chunk-KZVSB5WE.mjs';
8
- import '../chunk-ZN4HBK5C.mjs';
9
- import '../chunk-BEXTDHO4.mjs';
10
- //# sourceMappingURL=server.mjs.map
11
- //# sourceMappingURL=server.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"server.mjs"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/articles/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget-styles.d.ts","sourceRoot":"","sources":["../../src/articles/widget-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,aAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,aAKpC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-brand-profile.d.ts","sourceRoot":"","sources":["../../src/brand/extract-brand-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,cAAc,EAA6B,MAAM,iBAAiB,CAAA;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAEhD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,UAAU,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAA;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;CACpB;AAQD,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAM5F;AAcD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,SAAK,GAAG,OAAO,CAG/E;AA2QD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA2J5E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAoC9E"}
@@ -1,37 +0,0 @@
1
- import { createHmac, timingSafeEqual } from 'crypto';
2
-
3
- // src/slots/contract.ts
4
- var SLOTS_CONTRACT_VERSION = 1;
5
- var SLOT_CONTENT_TYPES = ["text"];
6
- var SLOT_CONTENT_MAX_LENGTH = 1e4;
7
- var SLOT_ID_PATTERN = /^[a-z0-9][a-z0-9-_.:]{0,127}$/;
8
- function isValidSlotId(id) {
9
- return SLOT_ID_PATTERN.test(id);
10
- }
11
- function slotSigningPayload(content) {
12
- return `sonor-slot.v${SLOTS_CONTRACT_VERSION}
13
- ${content.slot_id}
14
- ${content.type}
15
- ${content.content}`;
16
- }
17
- function signSlotContent(content, apiKey) {
18
- return createHmac("sha256", apiKey).update(slotSigningPayload(content), "utf8").digest("hex");
19
- }
20
- function verifySlotContent(content, apiKey) {
21
- if (!content || typeof content !== "object") return false;
22
- const c = content;
23
- if (typeof c.slot_id !== "string" || !isValidSlotId(c.slot_id) || typeof c.content !== "string" || c.content.length === 0 || c.content.length > SLOT_CONTENT_MAX_LENGTH || typeof c.signature !== "string" || !SLOT_CONTENT_TYPES.includes(c.type)) {
24
- return false;
25
- }
26
- const expected = signSlotContent(
27
- { slot_id: c.slot_id, type: c.type, content: c.content },
28
- apiKey
29
- );
30
- const a = Buffer.from(expected, "utf8");
31
- const b = Buffer.from(c.signature, "utf8");
32
- return a.length === b.length && timingSafeEqual(a, b);
33
- }
34
-
35
- export { SLOTS_CONTRACT_VERSION, SLOT_CONTENT_MAX_LENGTH, SLOT_CONTENT_TYPES, SLOT_ID_PATTERN, isValidSlotId, signSlotContent, slotSigningPayload, verifySlotContent };
36
- //# sourceMappingURL=chunk-2FEQ6TYD.mjs.map
37
- //# sourceMappingURL=chunk-2FEQ6TYD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/slots/contract.ts"],"names":[],"mappings":";;;AAgBO,IAAM,sBAAA,GAAyB;AAS/B,IAAM,kBAAA,GAAiD,CAAC,MAAM;AAG9D,IAAM,uBAAA,GAA0B;AAGhC,IAAM,eAAA,GAAkB;AA6CxB,SAAS,cAAc,EAAA,EAAqB;AACjD,EAAA,OAAO,eAAA,CAAgB,KAAK,EAAE,CAAA;AAChC;AAMO,SAAS,mBACd,OAAA,EACQ;AACR,EAAA,OAAO,eAAe,sBAAsB;AAAA,EAAK,QAAQ,OAAO;AAAA,EAAK,QAAQ,IAAI;AAAA,EAAK,QAAQ,OAAO,CAAA,CAAA;AACvG;AAMO,SAAS,eAAA,CACd,SACA,MAAA,EACQ;AACR,EAAA,OAAO,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA,CAAE,MAAA,CAAO,kBAAA,CAAmB,OAAO,CAAA,EAAG,MAAM,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAC9F;AAOO,SAAS,iBAAA,CAAkB,SAAkB,MAAA,EAAwC;AAC1F,EAAA,IAAI,CAAC,OAAA,IAAW,OAAO,OAAA,KAAY,UAAU,OAAO,KAAA;AACpD,EAAA,MAAM,CAAA,GAAI,OAAA;AACV,EAAA,IACE,OAAO,CAAA,CAAE,OAAA,KAAY,QAAA,IACrB,CAAC,aAAA,CAAc,CAAA,CAAE,OAAO,CAAA,IACxB,OAAO,CAAA,CAAE,OAAA,KAAY,YACrB,CAAA,CAAE,OAAA,CAAQ,MAAA,KAAW,CAAA,IACrB,CAAA,CAAE,OAAA,CAAQ,MAAA,GAAS,uBAAA,IACnB,OAAO,CAAA,CAAE,SAAA,KAAc,QAAA,IACvB,CAAC,kBAAA,CAAmB,QAAA,CAAS,CAAA,CAAE,IAAuB,CAAA,EACtD;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,QAAA,GAAW,eAAA;AAAA,IACf,EAAE,SAAS,CAAA,CAAE,OAAA,EAAS,MAAM,CAAA,CAAE,IAAA,EAAyB,OAAA,EAAS,CAAA,CAAE,OAAA,EAAQ;AAAA,IAC1E;AAAA,GACF;AACA,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,MAAM,CAAA;AACtC,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,IAAA,CAAK,CAAA,CAAE,WAAW,MAAM,CAAA;AACzC,EAAA,OAAO,EAAE,MAAA,KAAW,CAAA,CAAE,MAAA,IAAU,eAAA,CAAgB,GAAG,CAAC,CAAA;AACtD","file":"chunk-2FEQ6TYD.mjs","sourcesContent":["/**\n * @sonordev/site-kit/slots/contract — Managed Slots wire contract (v1)\n *\n * Single source of truth for the slot payload shape and content signing,\n * shared by site-kit (verify side) and sonor-api (sign side) — same pattern\n * as `@sonordev/site-kit/llms/contract`.\n *\n * Security model: every SlotContent is HMAC-signed with the project API key.\n * site-kit verifies before rendering and falls back to the developer's static\n * content on any mismatch, so platform-originated content carries provenance\n * end to end. See docs/SITE-KIT-3.0-SPEC-SLOTS.md.\n */\n\nimport { createHmac, timingSafeEqual } from 'crypto'\n\n/** Bump on breaking payload changes. */\nexport const SLOTS_CONTRACT_VERSION = 1\n\n/**\n * v1 supports plain text only — rendered as React text (escaped), never\n * dangerouslySetInnerHTML. 'markdown' / 'rich' are reserved for a future\n * contract version behind a real sanitizer decision.\n */\nexport type SlotContentType = 'text'\n\nexport const SLOT_CONTENT_TYPES: readonly SlotContentType[] = ['text'] as const\n\n/** Hard cap on managed content length; longer payloads are rejected → fallback. */\nexport const SLOT_CONTENT_MAX_LENGTH = 10_000\n\n/** Slot ids: lowercase, page-scoped by convention, e.g. \"home-hero-headline\". */\nexport const SLOT_ID_PATTERN = /^[a-z0-9][a-z0-9-_.:]{0,127}$/\n\nexport interface SlotContent {\n slot_id: string\n type: SlotContentType\n /** The managed text. Rendered escaped — never as HTML. */\n content: string\n /** Forward-compat: experiment/personalization variant that produced this content. */\n variant_id?: string | null\n experiment_id?: string | null\n /** ISO timestamp of the last content change. */\n updated_at?: string | null\n /** Hex HMAC-SHA256 over the canonical payload, keyed with the project API key. */\n signature: string\n}\n\nexport interface SlotResolveRequestEntry {\n id: string\n /**\n * The developer's current static text for this slot (when statically\n * extractable). Stored as `fallback_text` on registration so the dashboard\n * editor shows the live copy instead of a bare slot id. Never rendered by\n * the API anywhere — display + drafting context only.\n */\n fallback?: string\n /**\n * The route this slot renders on (e.g. \"/\" or \"/pricing\"). A static literal,\n * never derived from the request — it feeds the Copy Evidence Loop's\n * slot↔page mapping so Signal can judge the slot against its page's metrics.\n */\n page?: string\n}\n\nexport interface SlotsResolveRequest {\n contract_version: number\n slots: SlotResolveRequestEntry[]\n /** Multi-site sub-dimension: normalized lowercase host (see CLAUDE.md \"site\" convention). */\n site?: string\n}\n\nexport interface SlotsResolveResponse {\n contract_version: number\n slots: Record<string, SlotContent | null>\n}\n\nexport function isValidSlotId(id: string): boolean {\n return SLOT_ID_PATTERN.test(id)\n}\n\n/**\n * Canonical string both sides sign/verify. Exported separately from the HMAC\n * helpers so an edge-runtime resolver can reproduce it with WebCrypto.\n */\nexport function slotSigningPayload(\n content: Pick<SlotContent, 'slot_id' | 'type' | 'content'>,\n): string {\n return `sonor-slot.v${SLOTS_CONTRACT_VERSION}\\n${content.slot_id}\\n${content.type}\\n${content.content}`\n}\n\n/**\n * Sign slot content with the project API key (sonor-api side).\n * Returns the hex HMAC-SHA256 signature.\n */\nexport function signSlotContent(\n content: Pick<SlotContent, 'slot_id' | 'type' | 'content'>,\n apiKey: string,\n): string {\n return createHmac('sha256', apiKey).update(slotSigningPayload(content), 'utf8').digest('hex')\n}\n\n/**\n * Verify a slot payload's shape + signature (site-kit side).\n * Returns true only when the payload is well-formed, within limits, and the\n * signature matches the project API key. Constant-time comparison.\n */\nexport function verifySlotContent(content: unknown, apiKey: string): content is SlotContent {\n if (!content || typeof content !== 'object') return false\n const c = content as Partial<SlotContent>\n if (\n typeof c.slot_id !== 'string' ||\n !isValidSlotId(c.slot_id) ||\n typeof c.content !== 'string' ||\n c.content.length === 0 ||\n c.content.length > SLOT_CONTENT_MAX_LENGTH ||\n typeof c.signature !== 'string' ||\n !SLOT_CONTENT_TYPES.includes(c.type as SlotContentType)\n ) {\n return false\n }\n const expected = signSlotContent(\n { slot_id: c.slot_id, type: c.type as SlotContentType, content: c.content },\n apiKey,\n )\n const a = Buffer.from(expected, 'utf8')\n const b = Buffer.from(c.signature, 'utf8')\n return a.length === b.length && timingSafeEqual(a, b)\n}\n"]}
@@ -1,130 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkLVGSOW2F_js = require('./chunk-LVGSOW2F.js');
4
- var chunkPURI56RE_js = require('./chunk-PURI56RE.js');
5
- require('server-only');
6
-
7
- var MINT_PATH = "/api/public/site-token";
8
- var MINT_TIMEOUT_MS = 4e3;
9
- var SITE_TOKEN_PREFIX = "st1.";
10
- var MINT_MAX_ATTEMPTS = 4;
11
- var MINT_BACKOFF_BASE_MS = 500;
12
- var MINT_BACKOFF_CAP_MS = 8e3;
13
- var cache = /* @__PURE__ */ new Map();
14
- var inflight = /* @__PURE__ */ new Map();
15
- var sleep = (ms) => new Promise((r) => setTimeout(r, ms));
16
- function retryDelayMs(res, attempt) {
17
- const header = res?.headers?.get?.("retry-after");
18
- if (header) {
19
- const seconds = Number(header);
20
- const ms = Number.isFinite(seconds) ? seconds * 1e3 : Date.parse(header) - Date.now();
21
- if (Number.isFinite(ms) && ms > 0) return Math.min(ms, MINT_BACKOFF_CAP_MS);
22
- }
23
- return Math.min(MINT_BACKOFF_BASE_MS * 2 ** attempt, MINT_BACKOFF_CAP_MS);
24
- }
25
- var isRetryableStatus = (status) => status === 429 || status >= 500;
26
- function rawFallbackAllowed() {
27
- return typeof process !== "undefined" && process.env?.SONOR_SITE_TOKEN_FALLBACK === "raw";
28
- }
29
- function failClosed(reason, rawKey, now) {
30
- if (rawFallbackAllowed()) {
31
- console.warn(
32
- `[SiteKitLayout] Token mint failed (${reason}) and SONOR_SITE_TOKEN_FALLBACK=raw is set; injecting the RAW API KEY into page HTML. The key is publicly readable wherever this page is served \u2014 unset the escape hatch once the mint is healthy.`
33
- );
34
- cache.set(rawKey, { credential: rawKey, expiresAt: now + 6e4 });
35
- return rawKey;
36
- }
37
- throw new Error(
38
- `site-kit: could not mint a site token (${reason}). Refusing to publish the raw SONOR_API_KEY in page HTML, so this build fails instead. Check that the mint endpoint is reachable and the key is valid, then rebuild. To ship anyway \u2014 which publishes the project secret in public HTML \u2014 set SONOR_SITE_TOKEN_FALLBACK=raw.`
39
- );
40
- }
41
- function isFrameworkSignal(err) {
42
- if (!err || typeof err !== "object") return false;
43
- const e = err;
44
- if (e.digest === "DYNAMIC_SERVER_USAGE") return true;
45
- if (e.code === "NEXT_STATIC_GEN_BAILOUT") return true;
46
- if (typeof e.digest === "string" && e.digest.startsWith("NEXT_")) return true;
47
- if (e.$$typeof === /* @__PURE__ */ Symbol.for("react.postpone")) return true;
48
- return false;
49
- }
50
- async function resolveClientCredential(rawKey, apiUrl) {
51
- if (!rawKey) return "";
52
- if (rawKey.startsWith(SITE_TOKEN_PREFIX)) return rawKey;
53
- const cached = cache.get(rawKey);
54
- if (cached && cached.expiresAt > Date.now()) return cached.credential;
55
- const pending = inflight.get(rawKey);
56
- if (pending) return pending;
57
- const request = mintWithRetry(rawKey, apiUrl);
58
- inflight.set(rawKey, request);
59
- try {
60
- return await request;
61
- } finally {
62
- inflight.delete(rawKey);
63
- }
64
- }
65
- async function mintWithRetry(rawKey, apiUrl) {
66
- const base = (apiUrl || "https://api.sonor.io").replace(/\/+$/, "");
67
- let lastReason = "unknown error";
68
- for (let attempt = 0; attempt < MINT_MAX_ATTEMPTS; attempt++) {
69
- let res = null;
70
- try {
71
- const { fn: fetchFn, unpatched } = chunkLVGSOW2F_js.resolveFetch();
72
- res = await fetchFn(`${base}${MINT_PATH}`, {
73
- method: "POST",
74
- headers: {
75
- "content-type": "application/json",
76
- "x-api-key": rawKey,
77
- "x-sitekit-version": chunkPURI56RE_js.SITE_KIT_VERSION
78
- },
79
- // Only meaningful on the fallback path, where a future Next stopped
80
- // exposing `_nextOriginalFetch` and we're back on the patched fetch.
81
- // `revalidate: false` is the one setting that neither bails out of static
82
- // generation nor downgrades the route to ISR; a Data Cache entry is the
83
- // lesser evil versus shipping the raw key again.
84
- ...unpatched ? {} : { next: { revalidate: false } },
85
- signal: typeof AbortSignal !== "undefined" && AbortSignal.timeout ? AbortSignal.timeout(MINT_TIMEOUT_MS) : void 0
86
- });
87
- } catch (err) {
88
- if (isFrameworkSignal(err)) throw err;
89
- lastReason = err instanceof Error ? err.message : "network error";
90
- if (attempt < MINT_MAX_ATTEMPTS - 1) {
91
- await sleep(retryDelayMs(null, attempt));
92
- continue;
93
- }
94
- break;
95
- }
96
- if (res.ok) {
97
- const data = await res.json().catch(() => null);
98
- const token = data?.token;
99
- const expiresIn = typeof data?.expiresIn === "number" ? data.expiresIn : 3600;
100
- if (typeof token === "string" && token.startsWith(SITE_TOKEN_PREFIX)) {
101
- cache.set(rawKey, {
102
- credential: token,
103
- expiresAt: Date.now() + Math.min(expiresIn * 1e3 / 2, 30 * 6e4)
104
- });
105
- return token;
106
- }
107
- lastReason = "mint returned no usable token";
108
- break;
109
- }
110
- if (res.status === 404) {
111
- cache.set(rawKey, { credential: rawKey, expiresAt: Date.now() + 6e4 });
112
- return rawKey;
113
- }
114
- lastReason = `HTTP ${res.status}`;
115
- if (isRetryableStatus(res.status) && attempt < MINT_MAX_ATTEMPTS - 1) {
116
- const delay = retryDelayMs(res, attempt);
117
- console.warn(
118
- `[SiteKitLayout] Token mint returned ${res.status}; retrying in ${Math.round(delay)}ms (attempt ${attempt + 2}/${MINT_MAX_ATTEMPTS}).`
119
- );
120
- await sleep(delay);
121
- continue;
122
- }
123
- break;
124
- }
125
- return failClosed(lastReason, rawKey, Date.now());
126
- }
127
-
128
- exports.resolveClientCredential = resolveClientCredential;
129
- //# sourceMappingURL=chunk-34XL7TVH.js.map
130
- //# sourceMappingURL=chunk-34XL7TVH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/mint-site-token.ts"],"names":["resolveFetch","SITE_KIT_VERSION"],"mappings":"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","file":"chunk-34XL7TVH.js","sourcesContent":["/**\n * @sonordev/site-kit/server — Client-token minting (server-only)\n *\n * SiteKitLayout holds the raw `SONOR_API_KEY` server-side but must NOT ship it to\n * the browser. This mints a short-lived, project-scoped token (server-to-server,\n * authenticated with the raw key, no browser Origin so it passes domain-binding)\n * and returns THAT for the layout to inject instead.\n *\n * `import 'server-only'` makes importing this into a client bundle a hard build\n * error — the raw key stays on the server.\n *\n * FAILS CLOSED. If minting genuinely fails, this throws and the build fails —\n * it does NOT publish the raw key. A failed deploy is loud and recoverable; a\n * leaked project secret in public HTML is neither. The only paths that still\n * return the raw key are a 404 (an older API that predates the endpoint, an\n * expected state during rollout) and the explicit `SONOR_SITE_TOKEN_FALLBACK=raw`\n * escape hatch, for when shipping beats being blocked.\n *\n * That posture is not academic. Through 3.5.0 a throttled mint (HTTP 429)\n * returned the raw key AND cached it for 60s, so every page rendered in that\n * window shipped the secret: one real build came out with 180 of 272 prerendered\n * pages carrying it. The build \"succeeded\" and nothing downstream noticed.\n * Rate limiting is transient by definition — the fix is to wait and retry, not\n * to downgrade to publishing the key.\n *\n * Two things keep the request count low enough that throttling is rare:\n * - a module-level memo, so a worker mints once and every page reuses the seed;\n * - an in-flight map, because that memo is only populated AFTER the await. Next\n * renders pages concurrently, so without coalescing the first N concurrent\n * renders in a process all miss the cache and all fire a request — a\n * stampede per worker, multiplied by one worker per core. That is how a\n * single site exhausted a 60/min budget.\n *\n * SEED FRESHNESS: a static page's seed carries `iat` = build time, and the API\n * refuses to refresh a seed older than SITE_TOKEN_MAX_REFRESH_AGE_SECONDS\n * (sonor-api common/site-auth/site-token.util.ts — currently 400 days, raised\n * from 30 alongside this fix). A site not rebuilt within that window serves a\n * seed the client cannot refresh, and its forms/analytics/engage start failing\n * for new visitors. Keep that limit comfortably longer than the fleet's\n * realistic redeploy gap; marketing sites routinely go many months untouched.\n */\nimport 'server-only'\nimport { SITE_KIT_VERSION } from '../shared/version'\nimport { resolveFetch } from '../shared/fresh-fetch'\n\n// Re-exported for this module's unit tests; the helper lives in shared/fresh-fetch.\nexport { resolveFetch }\n\nconst MINT_PATH = '/api/public/site-token'\nconst MINT_TIMEOUT_MS = 4_000\nconst SITE_TOKEN_PREFIX = 'st1.'\n\n/**\n * Retry budget for transient failures (429 / 5xx / network). Rate limiting is\n * measured per minute, so a few seconds of backoff clears it; the whole ladder\n * costs at most ~20s once per build worker, and only when something is wrong.\n */\nconst MINT_MAX_ATTEMPTS = 4\nconst MINT_BACKOFF_BASE_MS = 500\nconst MINT_BACKOFF_CAP_MS = 8_000\n\ninterface CacheEntry {\n credential: string\n expiresAt: number\n}\nconst cache = new Map<string, CacheEntry>()\n\n/**\n * Requests already in flight, keyed by raw key. The `cache` above is only\n * written after the response lands, so concurrent renders would otherwise each\n * start their own mint. See the module header.\n */\nconst inflight = new Map<string, Promise<string>>()\n\nconst sleep = (ms: number) => new Promise<void>((r) => setTimeout(r, ms))\n\n/**\n * Honour `Retry-After` when the server sends it (delta-seconds or HTTP date),\n * otherwise exponential backoff. Capped so a misconfigured server cannot stall\n * a build indefinitely.\n */\nfunction retryDelayMs(res: Response | null, attempt: number): number {\n const header = res?.headers?.get?.('retry-after')\n if (header) {\n const seconds = Number(header)\n const ms = Number.isFinite(seconds)\n ? seconds * 1000\n : Date.parse(header) - Date.now()\n if (Number.isFinite(ms) && ms > 0) return Math.min(ms, MINT_BACKOFF_CAP_MS)\n }\n return Math.min(MINT_BACKOFF_BASE_MS * 2 ** attempt, MINT_BACKOFF_CAP_MS)\n}\n\n/** 429 and 5xx are transient; waiting is the correct response to both. */\nconst isRetryableStatus = (status: number) => status === 429 || status >= 500\n\n/**\n * The escape hatch, for when a broken mint must not block a release. Opt-in and\n * loud: it re-enables publishing the project secret in page HTML.\n */\nfunction rawFallbackAllowed(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.env?.SONOR_SITE_TOKEN_FALLBACK === 'raw'\n )\n}\n\nfunction failClosed(reason: string, rawKey: string, now: number): string {\n if (rawFallbackAllowed()) {\n console.warn(\n `[SiteKitLayout] Token mint failed (${reason}) and SONOR_SITE_TOKEN_FALLBACK=raw is set; ` +\n 'injecting the RAW API KEY into page HTML. The key is publicly readable wherever ' +\n 'this page is served — unset the escape hatch once the mint is healthy.',\n )\n cache.set(rawKey, { credential: rawKey, expiresAt: now + 60_000 })\n return rawKey\n }\n throw new Error(\n `site-kit: could not mint a site token (${reason}). Refusing to publish the raw ` +\n 'SONOR_API_KEY in page HTML, so this build fails instead. Check that the mint ' +\n 'endpoint is reachable and the key is valid, then rebuild. To ship anyway — ' +\n 'which publishes the project secret in public HTML — set SONOR_SITE_TOKEN_FALLBACK=raw.',\n )\n}\n\n/*\n * The mint uses Next's saved original fetch (resolveFetch, shared/fresh-fetch.ts,\n * which documents why). A credential is not page data: `cache: 'no-store'` would\n * bail a static route before the request goes out (verified on Next 16.2.9: the\n * mint endpoint received zero requests for a static build, and every page\n * shipped the raw key), and a Data Cache entry would let a fresh deploy re-bake a\n * months-old seed. The module-level memo above is the only cache we want: one\n * mint per build process, and a build-fresh seed on every deploy.\n */\n\n/**\n * Next signals \"this render must go dynamic\" by THROWING (DynamicServerError,\n * static-gen bailout, redirect/notFound digests, React's postpone). Those are\n * the framework's control flow, not a mint failure. Swallowing one makes Next\n * believe the render succeeded statically — which is precisely how the raw key\n * ended up stranded in prerendered HTML with no error anywhere. Let them\n * propagate; only real network/HTTP failures fall back to the raw key.\n *\n * @internal Exported for unit tests; not part of the package's public API.\n */\nexport function isFrameworkSignal(err: unknown): boolean {\n if (!err || typeof err !== 'object') return false\n const e = err as { digest?: unknown; code?: unknown; $$typeof?: unknown }\n if (e.digest === 'DYNAMIC_SERVER_USAGE') return true\n if (e.code === 'NEXT_STATIC_GEN_BAILOUT') return true\n if (typeof e.digest === 'string' && e.digest.startsWith('NEXT_')) return true\n if (e.$$typeof === Symbol.for('react.postpone')) return true\n return false\n}\n\nexport async function resolveClientCredential(\n rawKey: string,\n apiUrl: string,\n): Promise<string> {\n if (!rawKey) return ''\n // Env should hold a raw key; if it already looks like a token, pass it through.\n if (rawKey.startsWith(SITE_TOKEN_PREFIX)) return rawKey\n\n const cached = cache.get(rawKey)\n if (cached && cached.expiresAt > Date.now()) return cached.credential\n\n // Collapse concurrent renders onto one request rather than a stampede.\n const pending = inflight.get(rawKey)\n if (pending) return pending\n\n const request = mintWithRetry(rawKey, apiUrl)\n inflight.set(rawKey, request)\n try {\n return await request\n } finally {\n inflight.delete(rawKey)\n }\n}\n\nasync function mintWithRetry(rawKey: string, apiUrl: string): Promise<string> {\n const base = (apiUrl || 'https://api.sonor.io').replace(/\\/+$/, '')\n let lastReason = 'unknown error'\n\n for (let attempt = 0; attempt < MINT_MAX_ATTEMPTS; attempt++) {\n let res: Response | null = null\n try {\n const { fn: fetchFn, unpatched } = resolveFetch()\n res = await fetchFn(`${base}${MINT_PATH}`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n 'x-api-key': rawKey,\n 'x-sitekit-version': SITE_KIT_VERSION,\n },\n // Only meaningful on the fallback path, where a future Next stopped\n // exposing `_nextOriginalFetch` and we're back on the patched fetch.\n // `revalidate: false` is the one setting that neither bails out of static\n // generation nor downgrades the route to ISR; a Data Cache entry is the\n // lesser evil versus shipping the raw key again.\n ...(unpatched ? {} : ({ next: { revalidate: false } } as RequestInit)),\n signal:\n typeof AbortSignal !== 'undefined' && AbortSignal.timeout\n ? AbortSignal.timeout(MINT_TIMEOUT_MS)\n : undefined,\n })\n } catch (err) {\n // Never swallow the framework's own control flow — see isFrameworkSignal.\n if (isFrameworkSignal(err)) throw err\n lastReason = err instanceof Error ? err.message : 'network error'\n if (attempt < MINT_MAX_ATTEMPTS - 1) {\n await sleep(retryDelayMs(null, attempt))\n continue\n }\n break\n }\n\n if (res.ok) {\n const data: any = await res.json().catch(() => null)\n const token = data?.token\n const expiresIn = typeof data?.expiresIn === 'number' ? data.expiresIn : 3600\n if (typeof token === 'string' && token.startsWith(SITE_TOKEN_PREFIX)) {\n cache.set(rawKey, {\n credential: token,\n expiresAt: Date.now() + Math.min((expiresIn * 1000) / 2, 30 * 60_000),\n })\n return token\n }\n lastReason = 'mint returned no usable token'\n break\n }\n\n // 404 = an API older than the endpoint. Expected during rollout, and the raw\n // key is exactly what such an API still expects, so this stays a fallback\n // rather than a build failure.\n if (res.status === 404) {\n cache.set(rawKey, { credential: rawKey, expiresAt: Date.now() + 60_000 })\n return rawKey\n }\n\n lastReason = `HTTP ${res.status}`\n if (isRetryableStatus(res.status) && attempt < MINT_MAX_ATTEMPTS - 1) {\n const delay = retryDelayMs(res, attempt)\n console.warn(\n `[SiteKitLayout] Token mint returned ${res.status}; retrying in ${Math.round(delay)}ms ` +\n `(attempt ${attempt + 2}/${MINT_MAX_ATTEMPTS}).`,\n )\n await sleep(delay)\n continue\n }\n break\n }\n\n return failClosed(lastReason, rawKey, Date.now())\n}\n"]}